LINUX.ORG.RU
ФорумAdmin

Порядок проверки правил iptables


0

2

Пара простых вопросов:

1) Если создать пользовательскую цепочку с правилами (например, ALLOWED_IN), но не добавить на нее ссылку в стандартной цепочке (INPUT), тогда эти правила не будут срабатывать?

2) Если у меня в цепочке INPUT такие правила:

Rule_1 xxx --jump ACCEPT
Rule_2 --jump ALLOWED_IN
Rule_3 xxx --jump ACCEPT

Но в конце цепочки ALLOWED_IN не прописано правило с --jump RETURN, то файерволл, не найдя в ALLOWED_IN подходящего правила, автоматом продолжит сверяться с правилами из вызывающией цепочки (INPUT)? Т.е. перескочит на Rule_3. Или закончит поиск и примет решение, основываясь на политике?

ОС Debian (если имеет значение).

Спасибо!


Ответ на: комментарий от post-factum

Ясно, спасибо!

А что с возвратом к поиску правила дальше по стандартной цепочке? Файер делает это сам или в конец своей цепочки нужно обязательно RETURN ставить?

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

Liber
() автор топика
Ответ на: комментарий от post-factum

Ну, RETURN предусмотрен для прерывания просмотра цепочки:

RETURN means stop traversing this chain and resume at the next rule in the previous (calling) chain. If the end of a built-in chain is reached or a rule in a built-in chain with target RETURN is matched, the target specified by the chain policy determines the fate of the packet.

Сказано, когда именно политика срабатывает... То есть подразумевается, что должен дальше искать и без ретурнов, вроде?..

Liber
() автор топика
Ответ на: комментарий от Liber

ИМХО, это значит: если достигнут конец встроенной цепочки или же во встроенной цепочке есть RETURN, применяется policy. Т.е., это касается только встроенных цепочек, а не пользовательских.

post-factum ★★★★★
()
Ответ на: комментарий от post-factum

Не подтвердилось, к сожалению (

Во-первых, подвернулась статейка, в которой сказано, что все-таки по окончанию просмотра пользовательской цепочки (если не нашлось совпадений) файер возвращается к просмотру вызывающей цепочки (встроенной или пользовательской).

Во-вторых, подтвердилось опытным путем. Сделал такой набор правил:

$iptables --new-chain ICMP_RULES
$iptables --flush ICMP_RULES
$iptables --append ICMP_RULES --protocol icmp --icmp-type destination-unreachable --jump ACCEPT

$iptables --append INPUT --protocol icmp --jump ICMP_RULES
$iptables --append INPUT --protocol icmp --jump ULOG --ulog-prefix "Surfaced ICMP:"
$iptables --append INPUT --protocol icmp --jump ACCEPT

# (и аналогичный набор в цепочке OUTPUT)

Проверяю лог файл - там куча записей «Surfaced ICMP». То есть, правила во встроенных цепочках, распложенные после ICMP_RULES, прекрасно отрабатывают и без ретурнов. А жаль ( Значит, не в этом дело.

P.S. Разобрался в чем дело. Запутался маленько с пользовательскими цепочками и в правиле фрагментации пакетов (--protocol tcp --tcp-flags SYN,RST SYN --jump TCPMSS --clamp-mss-to-pmtu) забыл указать таблицу mangle. Поправил - глюки прекратились.

Спасибо, за советы и что отозвался!

Liber
() автор топика
Ответ на: комментарий от Liber

по окончанию просмотра пользовательской цепочки (если не нашлось совпадений) файер возвращается к просмотру вызывающей цепочки

А я тебе о чём написал :)?

post-factum ★★★★★
()
Ответ на: комментарий от post-factum

Наверное, не так понял тебя )

Ну да ладно, главное, что заработало все. Просто у меня на ppp интерфейсе MTU 1460 выставлено, в этом все было дело.

Liber
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.