iptables НОВІ з'єднання порівняно з --syn


13

Яка різниця між:

iptables ... -m state --state NEW

і

iptables ... --syn

Перший повинен вибрати НОВІ з'єднання, але нові з'єднання AFAIK здійснюються шляхом надсилання прапора синхронізу TCP. Інший означає саме це - пакети з прапором синхронізації.

Чи можете ви навести якісь практичні приклади, коли вищезазначені команди повертають різні результати?

Відповіді:


8

--synПрапор корисний для перевірки TCP трафіку, але NEWстан може бути використаний для інших протоколів ( в тому числі TCP) , як UDPі ICMP. Я можу сказати, що NEWце загальніший --synваріант, ніж TCP.

З посібника з iptables ви можете прочитати:

NEW    meaning that the packet has started a new connection,
       or otherwise associated with a connection which has not seen packets in both directions

Наприклад, запит DNS буде відповідати NEWстану, але він не буде відповідати правилу з --synопцією. Просто це дейтаграма UDP.

Також цей --synпараметр можна використовувати для перевірки наявності пакетів TCP з неправильною комбінацією прапорів для їх скидання.

Крім того, ви можете використовувати обидва ці варіанти разом, щоб перевірити наявність NEWпотоків TCP без --synпершого пакету та скинути їх, наприклад:

$ sudo iptables -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j LOG --log-prefix "New not syn:"

Тут ми додаємо ці типи пакетів до визначеної користувачем ланцюжка, яка називається bad_tcp_packetsдля відмови / реєстрації тощо ...

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