При удаленной настройке файрволла на сервере велика цена ошибки. Если забыть добавить или убрать какое-нибудь правило, то запросто можно отрубить себе же самому SSH-доступ. Чтобы исправить ошибку, придется либо физически добираться до сервера (а он может быть в другой стране или даже на другом континенте), либо привлекать других людей, что также чревато затруднениями. Поэтому, чтобы не оказаться в такой глупой ситуации, давайте “постелим себе соломки”.
Мне нравится такой подход. Создаю файл /etc/iptables.0, в котором будут правила, разрешающие всё:
*filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] COMMIT
На время разработки правил файрволла, запихиваем загрузку этого файла в crontab (к примеру, обнуление каждую четную минуту):
*/2 * * * * root /sbin/iptables-restore < /etc/iptables.0
Разработку правил ведем на рабочем варианте iptables.save.
/sbin/iptables-restore < /etc/iptables.save
Если где-то накосячили, то сразу это поймем по зависшему терминалу, но подождав две минуты, вновь сможем подключиться (а если сессия не умерла, то даже продолжить работу в том же терминале). Настроив файрволл окончательно, фиксируем правила с помощью iptables-restore и убираем таск из crontab.
Дельный совет, спасибо!