Скрываем фильтрацию портов в Iptables

Скрытие отображения фильтрации порта при сканировании целевой системы

При сканировании часто попадаются порты в состоянии filtered, что означает что порт используется, но закрыт извне.

Not shown: 92 closed ports
PORT    STATE    SERVICE
21/tcp  open     ftp
22/tcp  open     ssh
25/tcp  filtered smtp
80/tcp  open     http
135/tcp filtered msrpc
139/tcp filtered netbios-ssn
443/tcp open     https
445/tcp filtered microsoft-ds

Для того, чтобы скрыть отображение состояния filtered в результатах nmap, то необходимо для всех входящих пакетов, кроме локального хоста (127.0.0.1/8), например по протоколу TCP на порт %YOUR_PORT% дать ответ ICMP уведомлением tcp-reset:

iptables -A INPUT ! -s 127.0.0.1/8 -p tcp --dport %YOUR_PORT% -j REJECT --reject-with tcp-reset

Доступные варианты ответа ICMP: icmp-net-unreachable, icmp-host-unreachable, icmp-port-unreachable, icmp-proto-unreachable, icmp-net-prohibited и icmp-host-prohibited

Не забываем сохранить текущую конфигурацию и перезагрузить сервис.