URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 62460
[ Назад ]

Исходное сообщение
"Сохранение состояния в ipfw"

Отправлено ciscoios , 06-Дек-05 14:49 
Здравствуйте!
Есть проблема!
Надеюсь на подсказку!
Есть ipfw под freebsd и в нем постоянно меняются правила(billing).
Так вот после перезагрузки сервера надо чтоб он вспоминал последний список правил и устанавливал его!
Есть ли какие либо встроенные средства?
Или как еще можно?

Содержание

Сообщения в этом обсуждении
"Сохранение состояния в ipfw"
Отправлено newser , 06-Дек-05 16:37 
>Здравствуйте!
>Есть проблема!
>Надеюсь на подсказку!
>Есть ipfw под freebsd и в нем постоянно меняются правила(billing).
>Так вот после перезагрузки сервера надо чтоб он вспоминал последний список правил
>и устанавливал его!
>Есть ли какие либо встроенные средства?
>Или как еще можно?


man ipfw на предмет list.


"Сохранение состояния в ipfw"
Отправлено Lexleo , 06-Дек-05 17:19 
>Здравствуйте!
>Есть проблема!
>Надеюсь на подсказку!
>Есть ipfw под freebsd и в нем постоянно меняются правила(billing).
>Так вот после перезагрузки сервера надо чтоб он вспоминал последний список правил
>и устанавливал его!
>Есть ли какие либо встроенные средства?
>Или как еще можно?


Ну или проинсталлировать ipfw2  и работать с tables.
Подозреваю, что в Вашем случае логика правил не меняется, меняются только IP.
У меня это реализовано так: есть несколько файлов со списками IP, скрипт на perl, заталкивающий IP-шки в tables при рестарте.


"Сохранение состояния в ipfw"
Отправлено aliv , 06-Дек-05 17:38 
можно  /usr/local/etc/firewall.conf
вернее сказать тот что указан в /etc/rc.conf
постоянно переписывать на предмет меняющихся правил.
тогда при перезагрузке все старые правила восстановяться

"Сохранение состояния в ipfw"
Отправлено SES , 06-Дек-05 20:01 
>Здравствуйте!
>Есть проблема!
>Надеюсь на подсказку!
>Есть ipfw под freebsd и в нем постоянно меняются правила(billing).
>Так вот после перезагрузки сервера надо чтоб он вспоминал последний список правил
>и устанавливал его!
>Есть ли какие либо встроенные средства?
>Или как еще можно?


Можно так:
прописываешь в /etc/rc.conf скрипт с правилами для ipfw, который будет грузится после перезагрузки, например /etc/firewall/rules

Добавляешь в rc.conf: firewall_script="/etc/firewall/rules"

Далее создаешь файлик со скриптом или пишешь прямо в кроне для запуска каждую минуту примерно следующее:

touch /etc/firewall/rules1.sh | echo "#\!/bin/sh" > /etc/firewall/rules1.sh && ipfw -a list | awk '{print "/sbin/ipfw add " $4 " " $5 " " $6 " " $7 " " $8 " " $9 " " $10 " " $11 " " $12 " " $13}' > /etc/firewall/rules2.sh && cat /etc/firewall/rules1.sh /etc/firewall/rules2.sh > /etc/firewall/rules && chmod +x /etc/firewall/rules && rm /etc/firewall/rules1.sh && rm /etc/firewall/rules2.sh

Крон будет запускать этот скрипт каждую минуту, а скрипт будет сохранять все твои правила в файл /ect/firewall/rules. В итоге после ребута у тебя будут восстановленные правила ipfw.

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

Из скрипта выкини всё лишнее и замени на своё - писал находу.


"Сохранение состояния в ipfw"
Отправлено ciscoios , 14-Дек-05 14:31 
>>Здравствуйте!
>>Есть проблема!
>>Надеюсь на подсказку!
>>Есть ipfw под freebsd и в нем постоянно меняются правила(billing).
>>Так вот после перезагрузки сервера надо чтоб он вспоминал последний список правил
>>и устанавливал его!
>>Есть ли какие либо встроенные средства?
>>Или как еще можно?
>
>
>Можно так:
>прописываешь в /etc/rc.conf скрипт с правилами для ipfw, который будет грузится после
>перезагрузки, например /etc/firewall/rules
>
>Добавляешь в rc.conf: firewall_script="/etc/firewall/rules"
>
>Далее создаешь файлик со скриптом или пишешь прямо в кроне для запуска
>каждую минуту примерно следующее:
>
>touch /etc/firewall/rules1.sh | echo "#\!/bin/sh" > /etc/firewall/rules1.sh && ipfw -a list | awk '{print "/sbin/ipfw add " $4 " " $5 " " $6 " " $7 " " $8 " " $9 " " $10 " " $11 " " $12 " " $13}' > /etc/firewall/rules2.sh && cat /etc/firewall/rules1.sh /etc/firewall/rules2.sh > /etc/firewall/rules && chmod +x /etc/firewall/rules && rm /etc/firewall/rules1.sh && rm /etc/firewall/rules2.sh
>
>Крон будет запускать этот скрипт каждую минуту, а скрипт будет сохранять все
>твои правила в файл /ect/firewall/rules. В итоге после ребута у тебя
>будут восстановленные правила ipfw.
>
>-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
>
>Из скрипта выкини всё лишнее и замени на своё - писал находу.
>


Спасибо ОГРОМНОЕ помогло!


"Сохранение состояния в ipfw"
Отправлено Vic , 16-Сен-07 11:15 
>[оверквотинг удален]
>touch /etc/firewall/rules1.sh | echo "#\!/bin/sh" > /etc/firewall/rules1.sh && ipfw -a list | awk '{print "/sbin/ipfw add " $4 " " $5 " " $6 " " $7 " " $8 " " $9 " " $10 " " $11 " " $12 " " $13}' > /etc/firewall/rules2.sh && cat /etc/firewall/rules1.sh /etc/firewall/rules2.sh > /etc/firewall/rules && chmod +x /etc/firewall/rules && rm /etc/firewall/rules1.sh && rm /etc/firewall/rules2.sh
>
>Крон будет запускать этот скрипт каждую минуту, а скрипт будет сохранять все
>твои правила в файл /ect/firewall/rules. В итоге после ребута у тебя
>будут восстановленные правила ipfw.
>
>-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
>
>Из скрипта выкини всё лишнее и замени на своё - писал находу.
>

А как сохранить с номерами правил.
Дело в том, что в биллинге правила для кажого клиента нумерованы.