darktones1.jpgdarktones2.jpgdarktones3.jpgdarktones4.jpgdarktones5.jpgdarktones6.jpgimage1.jpg

Статьи о FreeBSD

Скрипт для удаленного редактирования правил ipfw

Скрипт для удаленного и безопасного редактирования правил ipfw

Часто необходимо внести изменения в цепочку правил ipwf какого-нибудь удаленного сервера и всегда это связано с небольшим риском потерять связь по ssh с этим сервером в случае ошибки. Чтобы избежать этого я знаю два способа.

 

Первый способ с помощью уже написанного скрипта.

Для безопасного внесения изменений в /etc/rc.firewall используем скрипт:

/usr/share/examples/ipfw/change_rules.sh

После запуска данного скрипта Вам в редакторе vi предлагается произвести изменения скрипта с правилами /etc/rc.firewall, после сохранения изменений (напомню в vi это :wq), скрипт спрашивает: применить ли данные изменения, сохраненные в файл /etc/rc.firewall.new, если мы жмем Y, то изменения применяются и в случае неудачи и отрубания от сервака ровно через 30 сек все откатывается назад, с помощью применения правил из оригинального /etc/rc.firewall .

В случае же успеха, скрипт спрашивает: сохранить ли изменения и дождавшись нашего Y, сохраняет все внесенные нами изменения в файл /etc/rc.firewall, а старый файл бекапит в файл вида  /etc/rc.firewall.ггггммддччмм.

Можно изменить, предлагаемый из переменной окружения EDITOR, редактор vi , это делается следующим способом:

printenv    -просмотр всех переменных окружения

export EDITOR="/usr/bin/ee"  -изменить переменную окружения, изменение "текстового редактора по умолчанию" на достаточно простой в освоении редактор ее .

Второй способ громоздкий и связаный с "изобретением велосипеда".

Для безопасного внесения изменений в /etc/rc.firewall:
1. Делаем копию rc.firewall и вносим туда необходимые изменения:
cp /etc/rc.firewall /etc/rc.firewall-test
2. Для перезагрузки через 15 мин делаем:
shutdown -r +15
Для перезагрузки в определенное время:
shutdown -r дата в формате yymmddhhmm
3. Выполняем тестовый список правил:
sh /etc/rc.firewall-test
4. Если все в порядке, то отменяем перезагрузку:
killall -9 shutdown
и удаляем файл /var/run/nologin для того, что бы можно было заходить по ssh (иначе хоть система и не перезагрузится, но по ssh не пустит):
rm -f /var/run/nologin
5. Копируем /etc/rc.firewall-test в /etc/rc.firewall для их автоматической загрузки:
cp /etc/rc.firewall-test  /etc/rc.firewall

www.KOTUROD.ru

All rights reserved ... possible.