iptables фильтрация udp пакетов по содержимому [РЕШЕНО]

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модератор: SLEDopit

Ответить
lubitelunix
Сообщения: 5

iptables фильтрация udp пакетов по содержимому [РЕШЕНО]

Сообщение lubitelunix »

Пытаюсь ограничить количеcтво UDP пакетов по содержимому 'TSource Engine Query' (к примеру 100 в секунду)

# tcpdump -n -vv -XX -s 0 'udp' and dst port myport

srcip:port > dstip:port: [bad udp cksum 0x2ab0 -> 0x7666!] UDP, length 25
0x0000: c860 00ca c04a a8f9 4b4e 0c82 0800 4500 .`...J..KN....E.
0x0010: 0035 e4f4 0000 a611 3cf3 bc35 748e c0a8 .5......<..5t...
0x0020: 0164 1a74 bd47 0021 2ab0 ffff ffff 5453 .d.t.G.!*.....TS
0x0030: 6f75 7263 6520 456e 6769 6e65 2051 7565 ource.Engine.Que
0x0040: 7279 00 ry.

Написал правило, оно дропает все эти пакеты, но не учитывает количество в единицу времени.
iptables -I INPUT -p udp --dport -m string --algo bm --string 'TSource Engine Query' -m hashlimit --hashlimit 100/s --hashlimit-burst 100 --hashlimit-mode srcip --hashlimit-name limit -j DROP
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: iptables фильтрация udp пакетов по содержимому [РЕШЕНО]

Сообщение Bizdelnick »

А что за опция --hashlimit? В мане такой нет, есть --hashlimit-above.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
lubitelunix
Сообщения: 5

Re: iptables фильтрация udp пакетов по содержимому [РЕШЕНО]

Сообщение lubitelunix »

Bizdelnick писал(а):
05.04.2017 12:09
А что за опция --hashlimit? В мане такой нет, есть --hashlimit-above.

hashlimit ограничивает пакеты, нашел в каком-то справочнике по iptables давным давно.

заменил --hashlimit на --hashlimit-above разницы не обнаружил, как дропался весь трафик, так и дропается.

--hashlimit-above и --hashlimit не помог в этой задаче. Сработала такая комбинация правил:

iptables -A INPUT -p udp --dport myport -m string --algo bm --string 'TSource Engine Query' -m limit --limit 100/sec --limit-burst 100 -j ACCEPT
iptables -A INPUT -p udp --dport myport -m string --algo bm --string 'TSource Engine Query' -j DROP
Спасибо сказали:
Institut
Сообщения: 281
ОС: mint

Re: iptables фильтрация udp пакетов по содержимому [РЕШЕНО]

Сообщение Institut »

Сработала такая комбинация правил:
iptables -A INPUT -p udp --dport myport-m string --algo bm --string 'TSource Engine Query' -m limit --limit 100/sec --limit-burst 100 -j ACCEPT
iptables -A INPUT 2 -p udp --dport myport-m string --algo bm --string 'TSource Engine Query' -j DROP

Видимо Вы после dport не указали номер порта, поэтому (имхо) и дропался весь udp,
Да и не понятно, если не указывать порт после dport , то например в debiane сервис netfilter-persistent не поднялся-бы.
Спасибо сказали:
lubitelunix
Сообщения: 5

Re: iptables фильтрация udp пакетов по содержимому [РЕШЕНО]

Сообщение lubitelunix »

Institut писал(а):
05.04.2017 13:41
Сработала такая комбинация правил:
iptables -A INPUT -p udp --dport myport -m string --algo bm --string 'TSource Engine Query' -m limit --limit 100/sec --limit-burst 100 -j ACCEPT
iptables -A INPUT -p udp --dport myport -m string --algo bm --string 'TSource Engine Query' -j DROP

Видимо Вы после dport не указали номер порта, поэтому (имхо) и дропался весь udp,
Да и не понятно, если не указывать порт после dport , то например в debiane сервис netfilter-persistent не поднялся-бы.


Порт я на форуме указывать не стал, вместо порта написал myport

Приведу пример, допустим буду фильтровать такой трафик для порта 5000, тогда правила будут такие:

iptables -A INPUT -p udp --dport 5000 -m string --algo bm --string 'TSource Engine Query' -m limit --limit 100/sec --limit-burst 100 -j ACCEPT
iptables -A INPUT -p udp --dport 5000 -m string --algo bm --string 'TSource Engine Query' -j DROP

В случаях когда стоит --hashlimit, либо --hashlimit-above, то трафик почему-то дропается(так и не понял в чем дело).
Спасибо сказали:
Institut
Сообщения: 281
ОС: mint

Re: iptables фильтрация udp пакетов по содержимому [РЕШЕНО]

Сообщение Institut »

Как вариант
iptables -A INPUT -m hashlimit -m udp -p udp --dport myport -m string --algo bm --string 'TSource Engine Query' --hashlimit-above 100/s --hashlimit-burst 100 --hashlimit-mode srcip,dstport --hashlimit-name badudp -m conntrack --ctstate NEW -j DROP
Попробуйте :rolleyes:

PS
Ещё то-же самое
iptables -A INPUT -m udp -p udp --dport myport -m string --algo bm --string 'TSource Engine Query' -m conntrack --ctstate NEW -m hashlimit --hashlimit-above 100/s --hashlimit-burst 100 --hashlimit-mode srcip,dstport --hashlimit-name badudp -j DROP


Посмотреть потом, что туда попадает
cat /proc/net/ipt_hashlimit/badudp
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: iptables фильтрация udp пакетов по содержимому [РЕШЕНО]

Сообщение Bizdelnick »

lubitelunix писал(а):
05.04.2017 13:45
iptables -A INPUT -p udp --dport 5000 -m string --algo bm --string 'TSource Engine Query' -m limit --limit 100/sec --limit-burst 100 -j ACCEPT
iptables -A INPUT -p udp --dport 5000 -m string --algo bm --string 'TSource Engine Query' -j DROP

Попробуйте сделать по аналогии:

Код: Выделить всё

iptables -A INPUT -p udp --dport 5000 -m string --algo bm --string 'TSource Engine Query' -m hashlimit --hashlimit-upto 100/sec --hashlimit-burst 100 -j ACCEPT
iptables -A INPUT -p udp --dport 5000 -m string --algo bm --string 'TSource Engine Query' -j DROP
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
lubitelunix
Сообщения: 5

Re: iptables фильтрация udp пакетов по содержимому [РЕШЕНО]

Сообщение lubitelunix »

Institut писал(а):
05.04.2017 15:09
Как вариант
iptables -A INPUT -m hashlimit -m udp -p udp --dport myport -m string --algo bm --string 'TSource Engine Query' --hashlimit-above 100/s --hashlimit-burst 100 --hashlimit-mode srcip,dstport --hashlimit-name badudp -m conntrack --ctstate NEW -j DROP
Попробуйте :rolleyes:

PS
Ещё то-же самое
iptables -A INPUT -m udp -p udp --dport myport -m string --algo bm --string 'TSource Engine Query' -m conntrack --ctstate NEW -m hashlimit --hashlimit-above 100/s --hashlimit-burst 100 --hashlimit-mode srcip,dstport --hashlimit-name badudp -j DROP


Посмотреть потом, что туда попадает
cat /proc/net/ipt_hashlimit/badudp

Сработало, фильтруется.

Тоже работает, забыли добавить --hashlimit-name

Код: Выделить всё

iptables -A INPUT -p udp --dport 5000 -m string --algo bm --string 'TSource Engine Query' -m hashlimit --hashlimit-upto 100/sec --hashlimit-burst 100 --hashlimit-name badudp -j ACCEPT
iptables -A INPUT -p udp --dport 5000 -m string --algo bm --string 'TSource Engine Query' -j DROP
Спасибо сказали:
Institut
Сообщения: 281
ОС: mint

Re: iptables фильтрация udp пакетов по содержимому [РЕШЕНО]

Сообщение Institut »

Сработало, фильтруется
:rolleyes:
hashlimit - изначально препологает использование всего одной строки.

А какое правило использовали 1 или 2?

Зы Можно дописать в названии темы - РЕШЕНО.
Спасибо сказали:
lubitelunix
Сообщения: 5

Re: iptables фильтрация udp пакетов по содержимому [РЕШЕНО]

Сообщение lubitelunix »

Institut писал(а):
05.04.2017 16:06
Сработало, фильтруется
:rolleyes:
hashlimit - изначально препологает использование всего одной строки.

А какое правило использовали 1 или 2?

Зы Можно дописать в названии темы - РЕШЕНО.

Оба работают, спасибо!
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: iptables фильтрация udp пакетов по содержимому [РЕШЕНО]

Сообщение Bizdelnick »

Institut писал(а):
05.04.2017 16:06
какое правило использовали 1 или 2?

Какая разница, если они одинаковые?
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Institut
Сообщения: 281
ОС: mint

Re: iptables фильтрация udp пакетов по содержимому [РЕШЕНО]

Сообщение Institut »

Какая разница, если они одинаковые?

Не совсем, правильние сначала подгружать модуль conntrack и после него уже модуль hashlimit - тогда будет работать немного быстрее. ИМХО.
Спорить не хочу. :laugh:
Спасибо сказали:
Ответить