LinuxForum.Fans
Тема

Не работает правило (recent) iptables с непрослушиваемым портом

Автор: programmister 10 сообщений 3079 просмотров
#325637

Всем хорошего дня!

Стоит дебиан 7.1.

Есть правило:
iptables -A INPUT -m tcp -p tcp --dport 10000 -m recent --set --name SPISOK --rsource -j ACCEPT (или DROP)

Если стучаться на сервер по 10000 порту, то в списке ничего не появляется. Если на этот 10000 порт повесить, например, nginx, то в списке запись появится.
В чем может быть проблема?
Где-то месяц назад работало. Сегодня сделал update/upgrade, и перестало работать. Уж не знаю связано ли с этим.

#325939

Господа, есть предложения?

#325940
"programmister⇓" написал:
Есть правило:
iptables -A INPUT -m tcp -p tcp --dport 10000 -m recent --set --name SPISOK --rsource -j ACCEPT (или DROP)

предложения есть, первое что бросилось в глаза -m tcp. это неверно. а вот -p tcp верно, а ужедальше указываем критерий из ключа -m (то надо что-то типа multiport, dport,sport).

то есть поясню, общие критерии, а это (-p -s -d -i -o -f) не зависят от типа протокола и для их использования не требуется загрузка специальных моделей при помощи опции -m. А для этого уже применяются другие модули и называются явными критериями (-limit -mac -multiport -state). Поэтому надо исправить. Поэтому лучше сначала придерживаться такого правила пишем общие критерии, потом явные, например -p tcp -m multiport --dport 80,53 ... (так и читать легче и понимать).

А вот дальше надо подумать (я не все ключи и критерии знаю фаерволла, в частности не знаю SPISOK, --RSOURCE). советую ман почитать)

ACCEPT (или DROP) - хотелось бы понять, вам надо разрешить или запретить по этому правилу, что делать с пакетом? если разрешить, то ACCEPT, иначе DROP

#325943

Ман я читал :).
Дело в том, что если порт чем-нибудь прослушивается (например, nginx-ом), то правило срабатывает, а если НЕ прослушивается, то не срабатывает.

#325988

интересно форвардинг включен или нет?

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

#325989

Интересная мысль.
Chain FORWARD (policy DROP 0 packets, 0 bytes)

Если это так, то как можно наладить?

#325993
Bif написал:
интересно форвардинг включен или нет?

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

А при чём тут FORWARD и правило в INPUT

#325994
programmister написал:
Всем хорошего дня!

Стоит дебиан 7.1.

Есть правило:
iptables -A INPUT -m tcp -p tcp --dport 10000 -m recent --set --name SPISOK --rsource -j ACCEPT (или DROP)

Если стучаться на сервер по 10000 порту, то в списке ничего не появляется. Если на этот 10000 порт повесить, например, nginx, то в списке запись появится.
В чем может быть проблема?
Где-то месяц назад работало. Сегодня сделал update/upgrade, и перестало работать. Уж не знаю связано ли с этим.

А на фига вообще это надо? Мусором логи засорять?

#325999
Kettler написал:
[quote=Bif]интересно форвардинг включен или нет?

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

А при чём тут FORWARD и правило в INPUT[/quote]

Ну, Bif предположил, что если порт не прослушивается, то запрос не обрабатывается input-ами, а farward.

#326001
Kettler написал:
А на фига вообще это надо? Мусором логи засорять?

Это не для логов, а для специфической обработки запросов (с точки зрения безопасности).
И вопрос не в этом, а почему это правило не работает с не прослушиваемыми портами.

Войдите или зарегистрируйтесь, чтобы ответить.