Данная «народная примета» возникла не на пустом месте и в целом правильно отражает реальность. Одно неверное движение, ошибка, опечатка и вы остаетесь без связи с удаленным узлом и хорошо если есть окольные пути.
Но не все так плохо, если знаешь где упасть, то можно и не только соломки подстелить. Для работ по изменению настроек брандмауэра мы используем простые скрипты, которые если что-то пойдет не так просто сбросят его конфигурацию.
Создадим в укромном месте, например в /root, скрипт flush.sh и добавим в него следующее содержимое.
▫️Для iptables:
#!/bin/bash
iptables-save > /root/iptables_backup.bak
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -t filter -F
iptables -t nat -F
iptables -t mangle -F
iptables -t raw -F
iptables -X
▫️Для nftables:
#!/bin/bash
nft list ruleset > /root/nftables_backup.nft
nft flush ruleset
Оба скрипта делают одно и тоже: сохраняют текущие настройки брандмауэра и сбрасывают его состояние. Это дает возможность гарантированно подключиться к удаленному узлу если в процессе настройки что-то пошло не так.
Для его запуска нам потребуется утилита at, установим ее если не установлена:
apt install at
Сделаем скрипт исполняемым:
chmod +x /root/ flush.sh
И перед выполнением работ настроим отложенный запуск:
at now + 15 minutes -f /root/flush.sh
Теперь через 15 минут, даже при обрыве сессии, планировщик выполнит наш скрипт и сбросит состояние брандмауэра.
Какой временной промежуток выбрать решаете вы сами, в зависимости от задач и потребностей. Но общий смысл ясен – если что-то пошло не так, и вы потеряли управление, то скрипт сработает и удалит все изменения.
Если же все работает нормально, и вы окончательно убедились в этом (не забудьте отключиться и снова подключиться), то просто удаляем отложенное задание.
Для этого сначала узнаем его идентификатор командой:
atq
А затем удаляем командой:
atrm <ID_задания>
Главное – не забыть это сделать, иначе ваш узел останется полностью без брандмауэра.
