Як скинути трафік, перш ніж він потрапить на існуюче правило континтрації iptables?


0

У мене запущено додаток, який вводить правила відстеження з'єднання iptables в ядро, щоб машина могла якомога швидше пересилати вхідний трафік UDP до місця призначення.

Частина трафіку, отриманого на цій машині, не зовсім відповідає специфікації, і приймаюча сторона не завжди обробляє цей трафік як слід. На жаль, постачальник апаратного забезпечення каже, що нічого поганого в тому, що вони надсилають, постачальник сторони каже, що відправник ніколи не повинен надсилати такий трафік, тому я потрапляю в середину, намагаючись вирішити проблему.

Сервер, на якому я маю повний контроль над трафіком, використовує відстеження з'єднання iptables для пересилання трафіку від однієї сторони, що відправляє, до приймаючої сторони, використовуючи введення з іншої програми. Трафік, який порушує правопорушення, легко впізнати, це єдиний трафік з використанням корисного навантаження UDP 0 довжиною, що надсилається стороною, що відправляє.

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

Використання iptables -A INPUT -p udp --dport 50000:60000 -m length --length 8 -j DROPне працює, пакети все ще проходять через машину. Я також спробував з довжиною 8 (розмір заголовка UDP), але результат той самий.

Відповіді:


0

Для фільтрування переадресованого трафіку вам потрібна ланцюг FORWARD, ланцюг INPUT призначений для трафіку, призначеного для системи, на якій діє правило.


Трафік направляється на локальну IP-адресу на сервері, правило conntrack потім пересилає його на нову IP-адресу призначення. Використання прямого ланцюга також, здається, нічого не робить, якщо я фільтрую IP-адресу сервера, як джерело або місце призначення
ramdyne

0

Як запропонував Тімоті Болдуін, фільтр повинен знаходитись у ланцюзі Вперед. Параметр length не працює на корисній навантаженні UDP або довжині пакета, але природно на довжині пакету IP

Отже, команда, яка працює, - iptables -A FORWARD -p udp --dport 50000:60000 -m length --length 28 -j DROPце довжина 20 байт для IP-програвача і 8 для заголовка UDP

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