Собственно сабж.
>Собственно сабж.например:
sh твой_скрипт_с_правилами_ipfwв срипте в начале:
ipfw -q flush
ipfw -q pipe flush
(если они есть)
далее твои правилаPS: не помню точно, но вроде если ты не на консоли, то может не прокатить - оборвет соединение и заткнется
тогда с консоли или в крон навесь
А, понятно, просто в Линуксе у меня правила для файрвола загружаются именно из sh-скрипта, а во FreeBSD я сделал файл firewall.conf и поставил на него ссылку в rc.conf. Можно ли в rc.conf указать тип файрвола как ссылку на sh-скрипт, или sh-скрипт отдельно написать и просто его запускать из системы оставив firewall.conf только для момента загрузки ОС?
>А, понятно, просто в Линуксе у меня правила для файрвола загружаются именно
>из sh-скрипта, а во FreeBSD я сделал файл firewall.conf и поставил
>на него ссылку в rc.conf. Можно ли в rc.conf указать тип
>файрвола как ссылку на sh-скрипт, или sh-скрипт отдельно написать и просто
>его запускать из системы оставив firewall.conf только для момента загрузки ОС?
>можно конечно :)
смотри в мане по rc.conf на предмет firewall_type:
это мб как тип из rc.firewall, так и путь к скрипту
либо firewall_script (там же - опять же путь к скрипту)
>>Собственно сабж.
>
>например:
>sh твой_скрипт_с_правилами_ipfw
>
>в срипте в начале:
>ipfw -q flush
>ipfw -q pipe flush
>(если они есть)
>далее твои правила
>
>PS: не помню точно, но вроде если ты не на консоли, то
>может не прокатить - оборвет соединение и заткнется
>тогда с консоли или в крон навесь
ага. веселое занятие через ssh сделать sh rc.firewall, особенно круто когда сервак гденить километров за .....цать от тебя !
reboot or cron адназначно !!! (с) Жирик
>>>Собственно сабж.
>>
>>например:
>>sh твой_скрипт_с_правилами_ipfw
>>
>>в срипте в начале:
>>ipfw -q flush
>>ipfw -q pipe flush
>>(если они есть)
>>далее твои правила
>>
>>PS: не помню точно, но вроде если ты не на консоли, то
>>может не прокатить - оборвет соединение и заткнется
>>тогда с консоли или в крон навесь
>ага. веселое занятие через ssh сделать sh rc.firewall, особенно крутоя вообще то о том и написала :)
это и в мане описано между прочим...когда сервак
>гденить километров за .....цать от тебя !
>reboot or cron адназначно !!! (с) Жирикну и зачем ребут? тем более от крон? ребут так и так прокатит... (результат то один)
sh firewall.conf в крон, а ребут не нужен
>>>>Собственно сабж.
>>>
>>>например:
>>>sh твой_скрипт_с_правилами_ipfw
>>>
>>>в срипте в начале:
>>>ipfw -q flush
>>>ipfw -q pipe flush
>>>(если они есть)
>>>далее твои правила
>>>
>>>PS: не помню точно, но вроде если ты не на консоли, то
>>>может не прокатить - оборвет соединение и заткнется
>>>тогда с консоли или в крон навесь
>>ага. веселое занятие через ssh сделать sh rc.firewall, особенно круто
>
>я вообще то о том и написала :)
>это и в мане описано между прочим...
>
>когда сервак
>>гденить километров за .....цать от тебя !
>>reboot or cron адназначно !!! (с) Жирик
>
>ну и зачем ребут? тем более от крон? ребут так и так
>прокатит... (результат то один)
>sh firewall.conf в крон, а ребут не нуженА вот так
sh firewall &
>А вот так
>sh firewall &похоже все разом забыли как это делается.
в /etc/rc.firewall совсем не зря везде пишут не ipfw а ${ipfw}.
делается так:
пишем в /etc/rc.conf
firewall_quiet="YES"
теперь каждая команда выполняется как
ipfw -q ...
соответственно по сети ничего не передается, соединение не обрывается.
это все!ну а если совсем боязно, можно запустить так:
nohup sh /etc/rc.firewall &
>>>>>Собственно сабж.
>>>>
>>>>например:
>>>>sh твой_скрипт_с_правилами_ipfw
>>>>
>>>>в срипте в начале:
>>>>ipfw -q flush
>>>>ipfw -q pipe flush
>>>>(если они есть)
>>>>далее твои правила
>>>>
>>>>PS: не помню точно, но вроде если ты не на консоли, то
>>>>может не прокатить - оборвет соединение и заткнется
>>>>тогда с консоли или в крон навесь
>>>ага. веселое занятие через ssh сделать sh rc.firewall, особенно круто
>>
>>я вообще то о том и написала :)
>>это и в мане описано между прочим...
>>
>>когда сервак
>>>гденить километров за .....цать от тебя !
>>>reboot or cron адназначно !!! (с) Жирик
>>
>>ну и зачем ребут? тем более от крон? ребут так и так
>>прокатит... (результат то один)
>>sh firewall.conf в крон, а ребут не нужен
>
>А вот так
>sh firewall &насколько следует из все того же мана, если команды ipfw в скрипте давать с ключом -q
(ipfw -q flush ... , ipfw -q add ... и тыды)
то должно прокатить и через ssh...см. описание опции -q...
PS: я не тестила, так что возможно это ошибочно :)
>насколько следует из все того же мана, если команды ipfw в скрипте
>давать с ключом -q
>(ipfw -q flush ... , ipfw -q add ... и тыды)
>
>то должно прокатить и через ssh...
>
>см. описание опции -q...
>
>PS: я не тестила, так что возможно это ошибочно :)и именно в скрипте. если давать по одной из командной строки то после flush связь отвалится (последнее правило никуда не денется и если файрволл скомпилен с опцией разрешать по умолчанию, то должно прокатить и так).
можно также отрубать правила по одному. вообще не стоит забывать что /etc/rc.firewall не единая программа а всего лишь набор команд ipfw.
Однозначно
юзать nohup /bin/sh /etc/rc.firewall
никогда и никак иначе, кроме как с консоли рядом.
Можно написать скрипт, УДАЛЯЮЩИЙ диапазон номеров правил, например на
perl.И правила раскидать по диапазонам.
_Я_ так делаю.
При работе с IPFW удаленно я придерживаюсь правил:1) в скриптах всегда очищаю правила через ipfw flush
2) оставляю возможность восстановить старую конфигурацию
3) весь вывод скрипта перенаправляю в файлТо есть примерно так:
cp firewall.sh newfirewall.sh
vi newfirewall.sh
echo sh firewall.sh | at now + 10 minutes
sh newfirewall.sh >OUT 2>&1Если все нормально, то быстренько удаляю из at запуск востановления правил. Если что то ненормально, то через 10 минут будут восстановлены старые.
>При работе с IPFW удаленно я придерживаюсь правил:
>
>1) в скриптах всегда очищаю правила через ipfw flush
>2) оставляю возможность восстановить старую конфигурацию
>3) весь вывод скрипта перенаправляю в файл
>
>То есть примерно так:
>
>cp firewall.sh newfirewall.sh
>vi newfirewall.sh
>echo sh firewall.sh | at now + 10 minutes
>sh newfirewall.sh >OUT 2>&1
>
>Если все нормально, то быстренько удаляю из at запуск востановления правил. Если
>что то ненормально, то через 10 минут будут восстановлены старые.Блин, ну что вы паритесь - ну удаленно, ну отвалиться соединение, ну переконнектишься, дальше-то чо?? Если ничо не накосячил все будет хорошо (а для этих целей надо всего лишь 2 сточки написать
ipfw add 1 allow ip from Admin to this_ip
ipfw add 2 allow ip from this_ip to Admin).
Хотя конечно указанный вариант выше более правильный.
>Блин, ну что вы паритесь - ну удаленно, ну отвалиться соединение, ну
>переконнектишься, дальше-то чо?? Если ничо не накосячил все будет хорошоУ меня был случай: добавил правило в скрипт, на все 200% был уверен в правильности. Запускаю скрипт. Локалка падает. В 12 часов ночи мчусь на работу. Запускаю тот же скрипт с консоли - все работает.
Косяк был в том, что если во время отработки ipfw будет вывод на экран,
то ipfw отваливается не отработав до конца все правила.
Так что при удаленной работе с ipfw используйте _ВСЕГДА_ перенаправление всего вывода в файл.
У меня работает ТАК:sleep 10 && ./filewall.sh &
exitЧерез 10 секунд заходи с новыми правилами. Но возможность автоматического отката нужна.