Защита от сканирования портов

Полезные ссылки:
http://linux-bsd.in.ua/debian/73-iptables-chast-2.html , интересно про recent

Для FreeBSD -  portsentry

Для Linux можно использовать  iptables :

Вначале конфига, там где разрешены установленные соединения

.............

 -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

пишем примерно следующее :

# Все новые соединения отправляем на проверку в цепочку SCAN_PORTS

-A INPUT -d aaa.bbb.ccc.ddd -i eth0 -p tcp -m state --state NEW -j SCAN_PORTS
-A INPUT -d aaa.bbb.ccc.ddd -i eth0 -p udp -m state --state NEW -j SCAN_PORTS

# Проверяем на соответствие ip адреса источника в списке SPORTS, если в течение 86400 сек имеется 3 и более совпадения, то пакет отбрасывается

-A SCAN_PORTS -d aaa.bbb.ccc.ddd/32 -i eth0 -p udp -m recent --update --seconds 86400 --hitcount 3 --name SPORTS --rsource -j DROP
-A SCAN_PORTS -d aaa.bbb.ccc.ddd/32 -i eth0 -p tcp -m recent --update --seconds 86400 --hitcount 3 --name SPORTS --rsource -j DROP

# Пропускаем пакеты на разрешенные порты

-A SCAN_PORTS -d aaa.bbb.ccc.ddd/32 -i eth0 -p udp -m udp --dport 53 -j ACCEPT
-A SCAN_PORTS -d aaa.bbb.ccc.ddd/32 -i eth0 -p tcp -m multiport --dports 21,22,25,53,80,110,143 -j ACCEPT

# Все ip адреса, подключающиеся на неразрешенные порты заносим в список SPORTS и отбрасываем ( возможно тут надо RETURN )

-A SCAN_PORTS -d aaa.bbb.ccc.ddd/32 -i eth0 -p udp -m recent --set --name SPORTS --rsource -j DROP
-A SCAN_PORTS -d aaa.bbb.ccc.ddd/32 -i eth0 -p tcp -m recent --set --name SPORTS --rsource -j DROP

#  Остальное возвращаем в цепочку INPUT для дальнейшей проверки

-A SCAN_PORTS -j RETURN

aaa.bbb.ccc.ddd - ip адрес сервера

В результате если в течение 24ч 3 и более раза пытались подключиться на запрещенные порты, то все попытки соединиться на любые порты, в том числе и разрешенные, будут пресекаться. Таким образом, будет затруднено определение слушающих портов на сервере.

Время и кол-во совпадений выставляется индивидуально. Список SPORTS -  /proc/net/xt_recent/SPORTS . Посмотреть список IP: 

cat /proc/net/xt_recent/SPORTS | cut -f 1 -d ' '

Для увеличения числа хостов, запоминающихся в SPORTS - см 

http://vova33.blogspot.com/2010/03/iptables.html

https://www.centos.org/modules/newbb/viewtopic.php?topic_id=24242

Прописать в  /etc/modprobe.d/xt_recent.conf

options ipt_recent ip_list_tot=1000

Обнулить список  /proc/net/xt_recent/SPORTS :

echo / /proc/net/xt_recent/SPORTS

Отправить комментарий

CAPTCHA
Чтобы убедиться в том что Вы не робот, ответьте, пожалуйста, на вопрос
Fill in the blank