Скрипт запуска RFW для ipfw
Скрипт запуска RFW для ipfw
Добый день.
Поскажите пожалуйста, может кто делал.
Система такая: ОС FreeBSD, UTM5, можно ли сделать так чтобы правила в ipfw добавлялись через скрипт запуска?
т.е. в rfw5.cfg
...
firewall_path=/netup/utm5/rfw_users.sh
...
в rfw_users.sh:
if [ "$3" == "ON"]; then
#правила на включение ipfw
...
exit 0;
fi
if [ "$3" == "OFF"]; then
#правила на выключение ipfw
...
exit 0;
fi
Заранее спасибо..
Поскажите пожалуйста, может кто делал.
Система такая: ОС FreeBSD, UTM5, можно ли сделать так чтобы правила в ipfw добавлялись через скрипт запуска?
т.е. в rfw5.cfg
...
firewall_path=/netup/utm5/rfw_users.sh
...
в rfw_users.sh:
if [ "$3" == "ON"]; then
#правила на включение ipfw
...
exit 0;
fi
if [ "$3" == "OFF"]; then
#правила на выключение ipfw
...
exit 0;
fi
Заранее спасибо..
В общем проблема обрисована, решается так.
Сначала конфиги
rfw5.cfg:
------------------------------------
rfw_name=X.X.X.X(localIP)
firewall_path=/netup/utm5/users.sh
dont_fork=yes
core_host=X.X.X.X(UTMCoreIP)
core_port=12758
rfw_login=rfw_login
rfw_password=rfw_pass
log_level=3
log_file_main=/netup/utm5/rfw.log
log_file_debug=/netup/utm5/rfw.log
log_file_critical=/netup/utm5/rfw.log
---------------------------------------------
/netup/utm5/users.sh:
---------------------------------------------
#!/bin/sh
#ON with mac
if [ "${2}" = "ON" ] ; then
/sbin/ipfw delete ${3}
exit 0;
fi
#OFF with mac
if [ "${2}" = "OFF" ] ; then
/sbin/ipfw delete ${3}
/sbin/ipfw add ${3} deny ip from "${1}" to any
/sbin/ipfw add ${3} deny ip from any to "${1}"
exit 0;
fi
------------------------------------------------------
это для sh оболочки.
В правилах firewall в UTM выстяавляем
вкл: UIP/UBITS ON ACCOUNT_ID
выкл: UIP/UBITS OFF ACCOUNT_ID
Теперь можно в этот скрипт вставлять всё что душа пожелает. И при включении и выключении все это будет выполняться.
Спасибо всем огомное за помошь...
Сначала конфиги
rfw5.cfg:
------------------------------------
rfw_name=X.X.X.X(localIP)
firewall_path=/netup/utm5/users.sh
dont_fork=yes
core_host=X.X.X.X(UTMCoreIP)
core_port=12758
rfw_login=rfw_login
rfw_password=rfw_pass
log_level=3
log_file_main=/netup/utm5/rfw.log
log_file_debug=/netup/utm5/rfw.log
log_file_critical=/netup/utm5/rfw.log
---------------------------------------------
/netup/utm5/users.sh:
---------------------------------------------
#!/bin/sh
#ON with mac
if [ "${2}" = "ON" ] ; then
/sbin/ipfw delete ${3}
exit 0;
fi
#OFF with mac
if [ "${2}" = "OFF" ] ; then
/sbin/ipfw delete ${3}
/sbin/ipfw add ${3} deny ip from "${1}" to any
/sbin/ipfw add ${3} deny ip from any to "${1}"
exit 0;
fi
------------------------------------------------------
это для sh оболочки.
В правилах firewall в UTM выстяавляем
вкл: UIP/UBITS ON ACCOUNT_ID
выкл: UIP/UBITS OFF ACCOUNT_ID
Теперь можно в этот скрипт вставлять всё что душа пожелает. И при включении и выключении все это будет выполняться.
Спасибо всем огомное за помошь...

-
- Сообщения: 1612
- Зарегистрирован: Пт ноя 10, 2006 15:23
Не запускаются правила фаервола. подскажите кто сталкивался с таким логом.
?Debug : Jun 30 14:24:54 FWCntl: Executing command </sbin/ipfw>
?Debug : Jun 30 14:24:54 FWCntl: Executing FW rule: /sbin/ipfw add 5006 allow ip from any to 192.168.0.41/24 is done.
?Debug : Jun 30 14:24:54 StreamConnection: Message id <0x4001>, handler returns 0
?Debug : Jun 30 14:25:13 StreamFirewall: Got ping from core. Sending reply...
?Debug : Jun 30 14:25:13 StreamConnection: Message id <0x4004>, handler returns 0
?Debug : Jun 30 14:25:15 StreamFirewall: Got 'exec' command...
?Debug : Jun 30 14:25:15 FWCntl: dont_fork disabled. Don't wait child process ...
?Debug : Jun 30 14:24:54 FWCntl: Executing command </sbin/ipfw>
?Debug : Jun 30 14:24:54 FWCntl: Executing FW rule: /sbin/ipfw add 5006 allow ip from any to 192.168.0.41/24 is done.
?Debug : Jun 30 14:24:54 StreamConnection: Message id <0x4001>, handler returns 0
?Debug : Jun 30 14:25:13 StreamFirewall: Got ping from core. Sending reply...
?Debug : Jun 30 14:25:13 StreamConnection: Message id <0x4004>, handler returns 0
?Debug : Jun 30 14:25:15 StreamFirewall: Got 'exec' command...
?Debug : Jun 30 14:25:15 FWCntl: dont_fork disabled. Don't wait child process ...
?Debug : Jul 01 11:46:17 ModFWMan: Exec [/sbin/ipfw add 5006 allow ip from any to 192.168.0.41/24] on 4
ERROR : Jul 01 11:46:17 ModFWMan: No info for FW 4 found
?Debug : Jul 01 11:46:17 BusLogic: hw_block_handler end bla_user_hw_unblock|bla_user_hw_block
?Debug : Jul 01 11:46:17 BusLogic: finished unknown
?Debug : Jul 01 11:46:17 DBCtx: SQL SELECT query: SELECT t_class_name,graph_color,is_display,is_fill,time_range_id,dont_save,local_t
raf_policy from t_class where id='10'
?Debug : Jul 01 11:46:17 DBCtx: SQL SELECT query: SELECT t_class_name,graph_color,is_display,is_fill,time_range_id,dont_save,local_t
raf_policy from t_class where id='1000'
ERROR : Jul 01 11:46:17 ModFWMan: No info for FW 4 found
?Debug : Jul 01 11:46:17 BusLogic: hw_block_handler end bla_user_hw_unblock|bla_user_hw_block
?Debug : Jul 01 11:46:17 BusLogic: finished unknown
?Debug : Jul 01 11:46:17 DBCtx: SQL SELECT query: SELECT t_class_name,graph_color,is_display,is_fill,time_range_id,dont_save,local_t
raf_policy from t_class where id='10'
?Debug : Jul 01 11:46:17 DBCtx: SQL SELECT query: SELECT t_class_name,graph_color,is_display,is_fill,time_range_id,dont_save,local_t
raf_policy from t_class where id='1000'
-
- Сообщения: 1612
- Зарегистрирован: Пт ноя 10, 2006 15:23
Конфиг RFW:
Правила имеют в таком случае вид:
Сам фаервол имеет вид:
Все при этом работает.
Настроено по мурзилке, которая зовется официальной документацией к биллингу.
Код: Выделить всё
ns# cat rfw5.cfg | grep -v '^#'
rfw_name=127.0.0.1
core_host=127.0.0.1
core_port=12758
rfw_login=<user>
rfw_password=<password>
firewall_path=/sbin/ipfw
log_level=0
log_file_main=/var/log/utm5/rfw_main.log
log_file_debug=/var/log/utm5/rfw_debug.log
log_file_critical=/var/log/utm5/rfw_crit.log
rotate_logs=yes
max_logfile_count=10
Код: Выделить всё
inet on: table 2 delete UIP/UBITS
inet off: table 2 add UIP/UBITS
Код: Выделить всё
ns# ipfw list | grep 'table(2)'
00200 deny ip from table(2) to not me
Настроено по мурзилке, которая зовется официальной документацией к биллингу.
rfw5.cfg:
rfw_name=local
core_host=192.168.28.26
core_port=12758
rfw_login=***
rfw_password=***
firewall_path=/sbin/ipfw
log_level=3
log_file_main=/var/log/utm5/rfw_main.log
log_file_debug=/var/log/utm5/rfw_debug.log
log_file_critical=/var/log/utm5/rfw_crit.log
rotate_logs=yes
max_logfile_count=10
********************
Брендмауэр заведен в админке с идентификатором 1.Везде указал где нужно этот ID.
Правила на открытие интернета:
sbin/ipfw add RULE_ID allow ip from UIP/UBITS to any
sbin/ipfw add RULE_ID allow ip from any to UIP/UBITS
rfw5.log
?Debug : Jul 02 16:22:18 FWCntl: dont_fork disabled. Don't wait child process ...
?Debug : Jul 02 16:22:18 FWCntl: Executing command </sbin/ipfw>
?Debug : Jul 02 16:22:18 FWCntl: Executing FW rule: /sbin/ipfw table 1 add 192.168.0.41/24 is done.
?Debug : Jul 02 16:22:18 StreamConnection: Message id <0x4001>, handler returns 0
ipfw: bad command `/sbin/ipfw'
?Debug : Jul 02 16:22:48 StreamFirewall: Got ping from core. Sending reply...
?Debug : Jul 02 16:22:48 StreamConnection: Message id <0x4004>, handler returns 0
?Debug : Jul 02 16:23:18 StreamFirewall: Got ping from core. Sending reply...
?Debug : Jul 02 16:23:18 StreamConnection: Message id <0x4004>, handler returns 0
?Debug : Jul 02 16:23:48 StreamFirewall: Got ping from core. Sending reply...
?Debug : Jul 02 16:23:48 StreamConnection: Message id <0x4004>, handler returns 0
?Debug : Jul 02 16:24:18 StreamFirewall: Got ping from core. Sending reply...
rfw_name=local
core_host=192.168.28.26
core_port=12758
rfw_login=***
rfw_password=***
firewall_path=/sbin/ipfw
log_level=3
log_file_main=/var/log/utm5/rfw_main.log
log_file_debug=/var/log/utm5/rfw_debug.log
log_file_critical=/var/log/utm5/rfw_crit.log
rotate_logs=yes
max_logfile_count=10
********************
Брендмауэр заведен в админке с идентификатором 1.Везде указал где нужно этот ID.
Правила на открытие интернета:
sbin/ipfw add RULE_ID allow ip from UIP/UBITS to any
sbin/ipfw add RULE_ID allow ip from any to UIP/UBITS
rfw5.log
?Debug : Jul 02 16:22:18 FWCntl: dont_fork disabled. Don't wait child process ...
?Debug : Jul 02 16:22:18 FWCntl: Executing command </sbin/ipfw>
?Debug : Jul 02 16:22:18 FWCntl: Executing FW rule: /sbin/ipfw table 1 add 192.168.0.41/24 is done.
?Debug : Jul 02 16:22:18 StreamConnection: Message id <0x4001>, handler returns 0
ipfw: bad command `/sbin/ipfw'
?Debug : Jul 02 16:22:48 StreamFirewall: Got ping from core. Sending reply...
?Debug : Jul 02 16:22:48 StreamConnection: Message id <0x4004>, handler returns 0
?Debug : Jul 02 16:23:18 StreamFirewall: Got ping from core. Sending reply...
?Debug : Jul 02 16:23:18 StreamConnection: Message id <0x4004>, handler returns 0
?Debug : Jul 02 16:23:48 StreamFirewall: Got ping from core. Sending reply...
?Debug : Jul 02 16:23:48 StreamConnection: Message id <0x4004>, handler returns 0
?Debug : Jul 02 16:24:18 StreamFirewall: Got ping from core. Sending reply...
спс большое разобрался. Еще хотел у вас спросить как у вас организованы правила для локальной сети. т.е. она у вас по умолчанию открыта выходит так? подскажите пожалуст.mikkey finn писал(а):Конфиг RFW:Правила имеют в таком случае вид:Код: Выделить всё
ns# cat rfw5.cfg | grep -v '^#' rfw_name=127.0.0.1 core_host=127.0.0.1 core_port=12758 rfw_login=<user> rfw_password=<password> firewall_path=/sbin/ipfw log_level=0 log_file_main=/var/log/utm5/rfw_main.log log_file_debug=/var/log/utm5/rfw_debug.log log_file_critical=/var/log/utm5/rfw_crit.log rotate_logs=yes max_logfile_count=10
Сам фаервол имеет вид:Код: Выделить всё
inet on: table 2 delete UIP/UBITS inet off: table 2 add UIP/UBITS
Все при этом работает.Код: Выделить всё
ns# ipfw list | grep 'table(2)' 00200 deny ip from table(2) to not me
Настроено по мурзилке, которая зовется официальной документацией к биллингу.
-
- Сообщения: 1612
- Зарегистрирован: Пт ноя 10, 2006 15:23
-
- Сообщения: 1612
- Зарегистрирован: Пт ноя 10, 2006 15:23
ipfw add 100 skipto 200 ip from <your-net> to any
ipfw add 101 skipto 200 ip from any to <your-net>
ipfw add 102 deny ip from any to any
ipfw add 200 allow all from table(1) to any
ipfw add 201 allow all from any to table(1)
ipfw add 202 deny ip from any to any
Примерно по такой схеме. Кого не убьет 102, того убьет 202. Ну и используйте наконец таблицы, их еще в пятой версии вам дали, а ныне уже седьмая вышла. Добавил адрес в таблицу - инет есть, убрал адрес - инета нет, и к чему всякий раз дергать набор правил?
Кстати, у меня фаер значительно сложнее построен, там разруливаются сначала общие потоки от интерфейса к интерфейсу, потом уже разруливается адресация, в частности глушатся левые адреса отправителя и немаршрутизируемые в инет сети, потом идет разграничение доступа по службам и т.д. Несмотря на значительные размеры, работает это все очень шустро - 40 мегабит видал скорость и шлюз не помер. Потому что фаер построен по схеме
1) "минимум правил на каждый поток"
2) "everybody jump, jump!"
ipfw add 101 skipto 200 ip from any to <your-net>
ipfw add 102 deny ip from any to any
ipfw add 200 allow all from table(1) to any
ipfw add 201 allow all from any to table(1)
ipfw add 202 deny ip from any to any
Примерно по такой схеме. Кого не убьет 102, того убьет 202. Ну и используйте наконец таблицы, их еще в пятой версии вам дали, а ныне уже седьмая вышла. Добавил адрес в таблицу - инет есть, убрал адрес - инета нет, и к чему всякий раз дергать набор правил?
Кстати, у меня фаер значительно сложнее построен, там разруливаются сначала общие потоки от интерфейса к интерфейсу, потом уже разруливается адресация, в частности глушатся левые адреса отправителя и немаршрутизируемые в инет сети, потом идет разграничение доступа по службам и т.д. Несмотря на значительные размеры, работает это все очень шустро - 40 мегабит видал скорость и шлюз не помер. Потому что фаер построен по схеме
1) "минимум правил на каждый поток"
2) "everybody jump, jump!"