заблокировать определенный пакет udp с помощью iptables

Is it possible to block specific udp packet using iptables?

введите здесь описание изображения

например, я хочу заблокировать пакет, содержащий bd 65 как в строке 3, это порядковый номер пакета RTP


person kambing bersayap hitam    schedule 11.05.2013    source источник


Ответы (2)


Да, модуль iptables «u32» позволит вам выполнять действия со значениями битов/байтов при заданном смещении (даже с заголовками переменной длины). Синтаксис очень уродливый, но он сделает свою работу. Введите в поиск «iptables u32», и вы найдете подробности и примеры.

Строка будет выглядеть примерно так:

... -m u32 --u32 "44&0xFFFF=0xBD65" -j DROP

(возьмите 4-байтовый фрагмент, начинающийся со смещения 44, И с 0xFFFF, сравните с 0xBD65)

person user4085475    schedule 27.09.2014

Iptables не может блокировать пакет на основе его полезной нагрузки[1].

Вам нужна глубокая проверка пакетов (DPI), чтобы отфильтровать такой пакет.

Я никогда не использовал его, но кажется, что http://l7-filter.clearfoundation.com/ может помочь вам.

Примечание. DPI может снизить пропускную способность. и более того, в некоторых областях есть много правовых ограничений....

[1]: вы можете попросить iptables заблокировать пакет, соответствующий строке (попробуйте: iptables -m string --help )

person fred    schedule 04.06.2013