Как правильно использовать диапазон портов в –sport и –dport в iptables с использованием multiport

Избавляемся от ошибки multiport can only have one option

Ситуация: нужно закрыть UDP-порты в трёх диапазонах: 1…52, 54…122, 124…1024. При этом если стук в порт идёт из привилегированного порта (то есть с номером 0…1023), то соединение нужно просто сбрасывать, если же стук идёт с непривилегированного порта, то расценивать это как сканирование и выполнять какие-то действия.

Например, обращение к порту 137 по протоколу UDP может быть как атакой какого-нибудь червя, так и безобидным запросом от NetBIOS. И если запросы, исходящие от NetBIOS, вполне безобидны («рабочий» трафик), то сканирование портов обычно не так безобидно.

Решение в лоб:

[-]
View Code Bash
iptables -A INPUT -p udp -m multiport --sport 1:1024 --dport 1:52,54:122,124:1024 -j DROP
iptables -A INPUT -p udp -m multiport --dport 1:52,54:122,124:1024 -j do_something

Но такой вариант не сработает: пожалуется на неверный синтаксис первой команды: iptables v1.4.4: can only have one option. При этом манипуляции с с перестановкой параметров не помогают:

[-]
View Code Bash
$ iptables -A INPUT -p udp --sport 0:1023 -m multiport --dport 1:52,54:122,124:1024 -j DROP
iptables v1.4.4: invalid port/service `52,54:122,124:1024' specified
$ iptables -A INPUT -p udp --sport 0:1023 --dport 1:52,54:122,124:1024 -m multiport -j DROP
iptables v1.4.4: invalid port/service `52,54:122,124:1024'
specified

Мне советовали разбивать правила на несколько и обходиться без multiport, но в случае сложного скрипта это не выход.

Я нашел два более простых решения:

  1. Использовать multiport два раза: iptables -A INPUT -p udp -m multiport --dport 1:52,54:122,124:1024 -m multiport --sport 0:1023 -j DROP
  2. Использовать модуль udp (tcp для TCP-соединения): iptables -A INPUT -p udp -m udp --sport :1023 -m multiport --dports 1:52,54:122,124:1024 -j DROP; обращаю внимание на использование --dports вместо --dport.

Оба способа являются рабочими, надеюсь, они смогут кому-нибудь сохранить нервные клетки и сэкономить несколько минут.

Автор: ; опубликовано в: Linux; метки: iptables, Linux, multiport
31
Авг
2010

RSS Комментарии к статье «Как правильно использовать диапазон портов в –sport и –dport в iptables с использованием multiport»  »

К статье «Как правильно использовать диапазон портов в –sport и –dport в iptables с использованием multiport» комментариев пока нет. Не хотите ли стать первым?

Пожалуйста, не используйте эту форму для комментирования! Данная форма предназначена исключительно для ботов.

Оставить комментарий к записи «Как правильно использовать диапазон портов в –sport и –dport в iptables с использованием multiport»

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Оставляя комментарий, вы выражаете своё согласие с Правилами комментирования.

Подписаться, не комментируя

गते गते पारगते पारसंगते बोधि स्वाहा