Назад | Перейти на главную страницу

Блокируйте атаку методом перебора с помощью lastb и iptables

Использование linux lastb я обнаружил, что мой сервер атакован грубой силой с разных IP-адресов по всему миру! Я разработал сценарий для обнаружения злоумышленников методом перебора. lastb и заблокировать их iptables. Вот сценарий:

#!/bin/bash

cd /root/
windowSize=100
tresh=10
lastb | head -n $windowSize | awk '{print $3}' | uniq -c > .ips
nlines=`wc .ips -l | awk '{print $1}'`
END=`expr $nlines - 1 `
for i in `seq 0 $END`;
do
        range=`expr $nlines - $i`
        count=`tail .ips -n $range | head -n 1 | awk '{print $1}'`
        if [ $count -gt $tresh ] ; then
                IP=`tail .ips -n $range | head -n 1 | awk '{print $2}'`
                if [ ! -z .blips ] ; then
                        touch .blips
                fi ;
                blocked=`cat .blips | grep $IP -c`
                if [ $blocked = '0' ] ; then
                        echo blocking $IP
                        iptables -A INPUT -s $IP -j DROP
                        echo $IP >> .blips
                fi ;
        fi;
done
rm .ips

Может ли это вызвать какие-либо проблемы, если я буду запускать этот скрипт с помощью crond каждый час?

Да, вы не принимаете никаких мер для исключения IP-адресов, с которых вы подключаетесь к системе, чтобы вы могли заблокировать себя из системы.

Лучшее решение - установить fail2ban который широко используется для того, что вы пытаетесь сделать.

Предлагаемое решение отсутствует (или разумно) в том смысле, что оно не сохраняет IPTABLES, поэтому изменения, внесенные в IPTABLES, будут потеряны при следующей загрузке.

Вы должны сохранить свои заблокированные IP-адреса, зафиксировав их: / sbin / service iptables save

ИЗМЕНЕНИЕ выполнено / sbin / service iptables сохранить rm .ips

С другой стороны, поскольку система является автоматизированной, возможно, имеет смысл выполнить фиксацию вручную только после того, как вы увидите изменения в .blips.

DenyHosts или Fail2ban будут работать лучше, чем большинство самодельных пользовательских скриптов.

http://en.wikipedia.org/wiki/DenyHosts

http://en.wikipedia.org/wiki/Fail2ban