|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Vladimir V. Ivanov 2:5020/400 24 Dec 2003 15:11:30 To : Serge Subject : Re: так ли необходим сетевой экран? точнее где он необходим и какой? -------------------------------------------------------------------------------- Hi! On Wed, 24 Dec 2003 06:53:41 +0000 (UTC) Serge <genie@nsk.ru> wrote: > VVI> Hасколько я помню, в iptables на уровне ядра, можно заменить > VVI> атомарно целую таблицу, чем и пользуется iptables-restore. То > VVI> есть в iptables при изменении конфигурации штатными утилитами > VVI> таких сюрпризов быть не должно. > Т.е., как я понимаю, разбирается конфиг, и, если нет ошибок > синтаксиса, строится _альтернативная_ таблица, на которую минимально > возможной операцией (а.к.а. атомарной) производится переход. Точно. > VVI> Hе проверял для входного потока с несколькими COMMIT'ами (ну то > VVI> есть с несколькими транзакциями), но в пределах одной транзакции > VVI> iptables 1.2.9 распарсивает вход полностью и при обнаружении > VVI> синтаксической ошибки отменит её целиком, что даёт ещё один > VVI> плюс админу для случая (1). > > Соответственно очень интересует ответ на вопрос вот именно в таком > понимании... Э... на какой вопрос? Hа сабжевый? Или об "устойчивости процесса фильтрации в момент перестройки внутренней таблицы правил"? Кстати, проврил, что в случае нескольких транзакций (то есть нескольких таблиц) на входе iptables-restore (1.2.9) выполняет и коммитит все транзакции до встречи первой ошибки - при этом транзакция с ошибкой не коммитится, а последующие транзакции не рассматриваются. Для редких случаев, в которых правила в _разных_таблицах_ логически взаимосвязаны (то есть вышеописанное поведение не есть желательным) можно делать скриптом с примерно следующей идеей: check_wait_and_create_lock_file... iptables-save > iptables.$$.undo || { remove_lock_file; exit 333; } if generate_new_config | iptables-restore; then rm -f iptables.$$.undo remove_lock_file... exit 0 else echo "Error detected. Rolling back... " >&2 iptables-restore < iptables.$$.undo || \ echo "Critical error, should never happen!" >&2; rm -f iptables.$$.undo remove_lock_file... exit 666 fi -- Regards, Vladimir Ivanov --- ifmail v.2.15dev5.1 * Origin: Digital Generation (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор Архивное /ru.linux/14587dd1cdf33.html, оценка из 5, голосов 10
|