Синтаксис сценария проверки Iptables

11

Есть ли способ проверить / проверить синтаксис скрипта правил iptables без изменения фактической конфигурации брандмауэра (я думаю, что добавление и удаление каждого правила не лучший способ ...).

Я знаю о параметре -C, но он не проверяет параметры, такие как цепочки, и немного сложен с кодами возврата, потому что 1 не всегда означает, что синтаксис правильный.

Спасибо!

Дав ракс
источник

Ответы:

9

Как предложили diegows, вы можете использовать iptables-restore, однако вы можете использовать его с флагом --test, чтобы просто протестировать конфигурацию, а не тестировать ее как часть реальной установки.

iptables-restore --test [YOUR RULES AS A FILE]
ChrisW
источник
Кажется, это не всегда хорошо работает. В настоящее время я работаю над файлом iptables, который завершается с ошибкой при его фактической установке (iptables-restore <iptables-new), но с параметром --test ошибки не генерируются. Я бы опубликовал это, но это долго. m15440 @ NDC01P04CU2PNGA sysconfig # Iptables-восстановление --test <Iptables-новые m15440 @ NDC01P04CU2PNGA sysconfig # Iptables-восстановления <Iptables-новые Iptables-восстановления: строка 217 не удалось m15440 @ NDC01P04CU2PNGA sysconfig #
PatrickTaylor
1

Используйте iptables-save / iptables-restore. На мой взгляд, использование скрипта - плохая идея. Напишите свои первые правила из командной строки, затем сохраните их с помощью «iptables-save> file» и продолжите редактирование этого файла. «iptables-restore <файл» используется для применения правил. Эта команда проверит синтаксис и не будет применять правила в случае ошибки.

Диего Войтасен
источник
1
Кроме того, когда я играю с iptables на удаленном компьютере, я также настраиваю запускать задание cron каждые 5 или 10 минут, которое восстанавливает iptables в состояние по умолчанию «разрешить все», поэтому, если я сам себя заблокирую, я вернусь в в течение 5-10 минут. Только не забудьте снова заблокировать его и отключить работу cron;)
jwbensley