Is it possible to block specific udp packet using iptables?
например, я хочу заблокировать пакет, содержащий bd 65
как в строке 3, это порядковый номер пакета RTP
Is it possible to block specific udp packet using iptables?
например, я хочу заблокировать пакет, содержащий bd 65
как в строке 3, это порядковый номер пакета RTP
Да, модуль iptables «u32» позволит вам выполнять действия со значениями битов/байтов при заданном смещении (даже с заголовками переменной длины). Синтаксис очень уродливый, но он сделает свою работу. Введите в поиск «iptables u32», и вы найдете подробности и примеры.
Строка будет выглядеть примерно так:
... -m u32 --u32 "44&0xFFFF=0xBD65" -j DROP
(возьмите 4-байтовый фрагмент, начинающийся со смещения 44, И с 0xFFFF, сравните с 0xBD65)
Iptables не может блокировать пакет на основе его полезной нагрузки[1].
Вам нужна глубокая проверка пакетов (DPI), чтобы отфильтровать такой пакет.
Я никогда не использовал его, но кажется, что http://l7-filter.clearfoundation.com/ может помочь вам.
Примечание. DPI может снизить пропускную способность. и более того, в некоторых областях есть много правовых ограничений....
[1]: вы можете попросить iptables заблокировать пакет, соответствующий строке (попробуйте: iptables -m string --help )