Как правильно использовать диапазон портов в –sport и –dport в iptables с использованием multiport
Избавляемся от ошибки multiport can only have one option
Ситуация: нужно закрыть UDP-порты в трёх диапазонах: 1…52, 54…122, 124…1024. При этом если стук в порт идёт из привилегированного порта (то есть с номером 0…1023), то соединение нужно просто сбрасывать, если же стук идёт с непривилегированного порта, то расценивать это как сканирование и выполнять какие-то действия.
Например, обращение к порту 137 по протоколу UDP может быть как атакой какого-нибудь червя, так и безобидным запросом от NetBIOS. И если запросы, исходящие от NetBIOS, вполне безобидны («рабочий» трафик), то сканирование портов обычно не так безобидно.
Решение в лоб:
iptables -A INPUT -p udp -m multiport --dport 1:52,54:122,124:1024 -j do_something
Но такой вариант не сработает: iptables пожалуется на неверный синтаксис первой команды: iptables v1.4.4: multiport can only have one option. При этом манипуляции с с перестановкой параметров не помогают:
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, но в случае сложного скрипта это не выход.
Я нашел два более простых решения:
- Использовать multiport два раза:
iptables -A INPUT -p udp -m multiport --dport 1:52,54:122,124:1024 -m multiport --sport 0:1023 -j DROP - Использовать модуль 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.
Оба способа являются рабочими, надеюсь, они смогут кому-нибудь сохранить нервные клетки и сэкономить несколько минут.
Автор: Wandering Soul; опубликовано в: Linux; метки: iptables, Linux, multiportАвг
2010
Комментарии к статье «Как правильно использовать диапазон портов в –sport и –dport в iptables с использованием multiport» »
Пожалуйста, не используйте эту форму для комментирования! Данная форма предназначена исключительно для ботов.
Оставить комментарий к записи «Как правильно использовать диапазон портов в –sport и –dport в iptables с использованием multiport»
गते गते पारगते पारसंगते बोधि स्वाहा
Меня зовут Владимир, я программист-фрилансер, специализирующийся на Web-программировании и програмировании под Linux.
По совместительству занимаюсь администрированием LAMP/LNMP-серверов и техническим переводом.

