Як налаштувати iptables так, що про небажаний порт не повідомляється як про фільтрування


9

Я хотів би зупинити інших, щоб вони бачили мої порти відфільтровані в стандартному скануванні 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, замість того, щоб мовчати (нічого не відповідати)?

Відповіді:


18

Не використовуйте 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

9
-A INPUT -p tcp -m tcp --dport 995 -j REJECT --reject-with tcp-reset

слід робити те, що ви хочете (відповідь з RST).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.