Я бы хотел, чтобы другие не видели мои порты как отфильтрованные в стандартном сканировании nmap (непривилегированном). Допустим, у меня открыты следующие порты: 22, 3306, 995 и брандмауэр настроен следующим образом:
-A INPUT -p tcp -m tcp --dport 22 -j DROP
-A INPUT -p tcp -m tcp --dport 3306 -j DROP
-A INPUT -p tcp -m tcp --dport 995 -j DROP
Это результат сканирования nmap:
[+] Nmap scan report for X.X.X.X
Host is up (0.040s latency).
Not shown: 90 closed ports
PORT STATE SERVICE
22/tcp filtered ssh
995/tcp filtered pop3s
3306/tcp filtered mysql
Он отображает эти порты как отфильтрованные, потому что мой сервер не ответил RST на SYN. Есть ли способ изменить это поведение? Например: если брандмауэр iptables блокирует порт, отвечать RST на SYN вместо того, чтобы оставаться в молчании (ничего не отвечать)?
Не используйте DROP, это легко идентифицировать как «отфильтрованный», если вы знаете, что окно открыто. Вместо этого вы можете использовать следующее для отправки RST. (как будто служба прослушивает, но не принимает от вас соединения)
-A INPUT -p tcp -m tcp --dport 22 -j REJECT --reject-with tcp-reset
Или просто используйте следующее, чтобы порт выглядел закрытым. (как будто его не слушает сервис)
-A INPUT -p tcp -m tcp --dport 22 -j REJECT
-A INPUT -p tcp -m tcp --dport 995 -j REJECT --reject-with tcp-reset
должен делать то, что вы хотите (ответьте RST).