Чтобы заблокировать сканеры портов в Linux, я нашел некоторые правила в iptables для блокировки IP-адреса злоумышленника. Эти правила работают правильно, они блокируют злоумышленника и записывают IP-адрес злоумышленника в файл kernel.log. Возникает вопрос, почему эти правила блокируют порт TCP 139 (net-bios), чтобы предотвратить нападение? я прошел через захват трафика, и нет никаких доказательств того, что nmap
запускает сканирование портов с порта 139 по TCP.
iptables -A INPUT -m recent --name portscan --rcheck --seconds 86400 -j DROP
iptables -A FORWARD -m recent --name portscan --rcheck --seconds 86400 -j DROP
iptables -A INPUT -m recent --name portscan --remove
iptables -A FORWARD -m recent --name portscan --remove
iptables -A INPUT -p tcp -m tcp --dport 139 -m recent --name portscan --set -j LOG --log-prefix "portscan:"
iptables -A INPUT -p tcp -m tcp --dport 139 -m recent --name portscan --set -j DROP
iptables -A FORWARD -p tcp -m tcp --dport 139 -m recent --name portscan --set -j LOG --log-prefix "portscan:"
iptables -A FORWARD -p tcp -m tcp --dport 139 -m recent --name portscan --set -j DROP
Нетбиос является протоколом LAN, а не протоколом WAN, и трафик на этом порту в системе с выходом в Интернет почти всегда будет подозрительным / недействительным.
Таким образом, такой трафик можно использовать как индикация что удаленная система проверяет случайные порты на вашем интернет-сервере. Хотя логика, согласно которой трафик на одном недействительном порту соответствует сканированию портов, на мой взгляд, немного ошибочна.