Всем хорошего дня!
Стоит дебиан 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, и перестало работать. Уж не знаю связано ли с этим.
Не работает правило (recent) iptables с непрослушиваемым портом
Господа, есть предложения?
Есть правило:
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
Ман я читал :).
Дело в том, что если порт чем-нибудь прослушивается (например, nginx-ом), то правило срабатывает, а если НЕ прослушивается, то не срабатывает.
интересно форвардинг включен или нет?
Предполагаю, если порт на серваке не слушается, следовательно пакет транзитный и следовательно пакет не попадает в цепочку INPUT..
может в обновлениях логику подкорректировали...
Интересная мысль.
Chain FORWARD (policy DROP 0 packets, 0 bytes)
Если это так, то как можно наладить?
интересно форвардинг включен или нет?
Предполагаю, если порт на серваке не слушается, следовательно пакет транзитный и следовательно пакет не попадает в цепочку INPUT..
может в обновлениях логику подкорректировали...
А при чём тут FORWARD и правило в INPUT
Всем хорошего дня!
Стоит дебиан 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, и перестало работать. Уж не знаю связано ли с этим.
А на фига вообще это надо? Мусором логи засорять?
[quote=Bif]интересно форвардинг включен или нет?
Предполагаю, если порт на серваке не слушается, следовательно пакет транзитный и следовательно пакет не попадает в цепочку INPUT..
может в обновлениях логику подкорректировали...
А при чём тут FORWARD и правило в INPUT[/quote]
Ну, Bif предположил, что если порт не прослушивается, то запрос не обрабатывается input-ами, а farward.
А на фига вообще это надо? Мусором логи засорять?
Это не для логов, а для специфической обработки запросов (с точки зрения безопасности).
И вопрос не в этом, а почему это правило не работает с не прослушиваемыми портами.