Скриптик для utm5_rfw при использовании iptables
-
- Сообщения: 1612
- Зарегистрирован: Пт ноя 10, 2006 15:23
а если подумать? Завести например таблицу номер 1, в нее заносить IP, которым разрешено ходить в интернет.
Включение интернет будет table 1 add UIP/UBITS
Отключение интернет будет table 1 delete UIP/UBITS
В скрипте запуска фаервола при старте системы добавить строку
ipfw add XXX allow ip from table\(1\) to any limit src-addr 100
ipfw add XXX allow ip from any to table\(1\)
Если у вас и так будут удваиваться правила фаервола, то у вас видимо особая сборка ipfw...
Включение интернет будет table 1 add UIP/UBITS
Отключение интернет будет table 1 delete UIP/UBITS
В скрипте запуска фаервола при старте системы добавить строку
ipfw add XXX allow ip from table\(1\) to any limit src-addr 100
ipfw add XXX allow ip from any to table\(1\)
Если у вас и так будут удваиваться правила фаервола, то у вас видимо особая сборка ipfw...
да как вы непоймете, что при каждом падении и поднятии ядра в любом случае нужно выполнить правило...mikkey finn писал(а):а если подумать? Завести например таблицу номер 1, в нее заносить IP, которым разрешено ходить в интернет.
Включение интернет будет table 1 add UIP/UBITS
Отключение интернет будет table 1 delete UIP/UBITS
В скрипте запуска фаервола при старте системы добавить строку
ipfw add XXX allow ip from table\(1\) to any limit src-addr 100
ipfw add XXX allow ip from any to table\(1\)
Если у вас и так будут удваиваться правила фаервола, то у вас видимо особая сборка ipfw...
ipfw add XXX allow ip from table\(1\) to any limit src-addr 100
ipfw add XXX allow ip from any to table\(1\)
а если подений ядра было 20 раз!!!
вот и щитайте
ipfw add XXX allow ip from table\(1\) to any limit src-addr 100
ipfw add XXX allow ip from any to table\(1\)
+
ipfw add XXX allow ip from table\(1\) to any limit src-addr 100
ipfw add XXX allow ip from any to table\(1\)
+
ipfw add XXX allow ip from table\(1\) to any limit src-addr 100
ipfw add XXX allow ip from any to table\(1\)
и т.д.
2lancelot:
Уважаемый, вы тупите )
ЭТО
То есть в тот скрипт, который запускается один раз при загрузке ОС FreeBSD, и прописывает все правила фаервольные.
А уже в rfw
вместо
ipfw add XXX allow ip from table\(1\) to any limit src-addr 100
ipfw add XXX allow ip from any to table\(1\)
прописать команды:
table 1 add UIP/UBITS
ну и соответственно на отключение инета
table 1 delete UIP/UBITS
В результате команды:
ipfw add XXX allow ip from table\(1\) to any limit src-addr 100
ipfw add XXX allow ip from any to table\(1\)
в фаерволле будут в одном экземпляре.
А добавление/удаление прав доступа на выход в интернет будет идти посредством удаления/добавления адресов в таблицу table 1.
А в таблице table дубликатов быть не может.
Ну а если при падении ядра у вас выполняется главный скрипт инициализации фаерволла, то вам ничего не мешает добавить в начало этого скрипта команду:
ipfw -f flush
Чтоб не дублировались правила.
Хотя она у вас там скорее всего есть и вы просто не догнали всей фишки использования таблиц.
Посему я и описал сий трюк с таблицами )
Уважаемый, вы тупите )
ЭТО
В скрипт инициализации фаерволла (обычно /etc/rc.firewall).ipfw add XXX allow ip from table\(1\) to any limit src-addr 100
ipfw add XXX allow ip from any to table\(1\)
То есть в тот скрипт, который запускается один раз при загрузке ОС FreeBSD, и прописывает все правила фаервольные.
А уже в rfw
вместо
ipfw add XXX allow ip from table\(1\) to any limit src-addr 100
ipfw add XXX allow ip from any to table\(1\)
прописать команды:
table 1 add UIP/UBITS
ну и соответственно на отключение инета
table 1 delete UIP/UBITS
В результате команды:
ipfw add XXX allow ip from table\(1\) to any limit src-addr 100
ipfw add XXX allow ip from any to table\(1\)
в фаерволле будут в одном экземпляре.
А добавление/удаление прав доступа на выход в интернет будет идти посредством удаления/добавления адресов в таблицу table 1.
А в таблице table дубликатов быть не может.
Ну а если при падении ядра у вас выполняется главный скрипт инициализации фаерволла, то вам ничего не мешает добавить в начало этого скрипта команду:
ipfw -f flush
Чтоб не дублировались правила.
Хотя она у вас там скорее всего есть и вы просто не догнали всей фишки использования таблиц.
Посему я и описал сий трюк с таблицами )
Я смею предположить, что для всей таблицы.
Хотя мне, если честно, вообще непонятен принцип работы сей опции:
limit {src-addr | src-port | dst-addr | dst-port} N
The firewall will only allow N connections with the same set of
parameters as specified in the rule. One or more of source and
destination addresses and ports can be specified. Currently,
only IPv4 flows are supported.
100 соединений одновременно или за какой-то период времени?
Если за период времени, то за какой?
Хотя мне, если честно, вообще непонятен принцип работы сей опции:
limit {src-addr | src-port | dst-addr | dst-port} N
The firewall will only allow N connections with the same set of
parameters as specified in the rule. One or more of source and
destination addresses and ports can be specified. Currently,
only IPv4 flows are supported.
100 соединений одновременно или за какой-то период времени?
Если за период времени, то за какой?
скорее всего не за период времени а вобщем.
limit scr-adr это динамическое правило (как keep-state)
установил соединение не более 100 и пока соединение активно оно не исчезает, если соединение не активно то оно исчезает.
если limit src-adr будет действовать на таблицу в целом.. , то это плохо...! очч плохо
потому что нет возможности ограничить какой то конкретный IP адрес на количество соединений
а это начит, что если у какого то IP из данной таблицы заведется вирусня... то она забъет все свободные соединения для данной таблици и ниукого интернет работать не будет!
хотя если подумать то src-ard это адрес источника, в нашем случае ИП адрес из данной таблица, следовательно у всех разные адреса источников ИП..
поэтому логически можно предположить что на каждый ип адрес будет своя динамическая таблица, и все будет работать ОК
limit scr-adr это динамическое правило (как keep-state)
установил соединение не более 100 и пока соединение активно оно не исчезает, если соединение не активно то оно исчезает.
если limit src-adr будет действовать на таблицу в целом.. , то это плохо...! очч плохо
потому что нет возможности ограничить какой то конкретный IP адрес на количество соединений
а это начит, что если у какого то IP из данной таблицы заведется вирусня... то она забъет все свободные соединения для данной таблици и ниукого интернет работать не будет!
хотя если подумать то src-ard это адрес источника, в нашем случае ИП адрес из данной таблица, следовательно у всех разные адреса источников ИП..
поэтому логически можно предположить что на каждый ип адрес будет своя динамическая таблица, и все будет работать ОК
limit src-addr работает применительно к каждому конкретному адресу из таблицы.
Помня что в таблицу можно запихнуть как 192.168.0.1, так и 192.168.0.0/24, я могу сделать смелое предположение что ограничение будет распространяться на каждую запись в таблице. В конце-концов /24 это тоже адрес.
С записями /32 в таблицах, такая конструкция:
allow tcp from table(99) to any dst-port 25 limit src-addr 1
работает вполне успешно.
Помня что в таблицу можно запихнуть как 192.168.0.1, так и 192.168.0.0/24, я могу сделать смелое предположение что ограничение будет распространяться на каждую запись в таблице. В конце-концов /24 это тоже адрес.

С записями /32 в таблицах, такая конструкция:
allow tcp from table(99) to any dst-port 25 limit src-addr 1
работает вполне успешно.
свои пятькопеек о скрипте-обертке для управления правилами огнестенки:
недавно несколько переделал скриптик включения-выключения и-нета пользователям.
в результате - для нескольких тысяч юзверей rfw отрабатывает все правила минут за пять, против 20-ти, в предыдущей вариации.
сам скриптик fw_ctl.sh:
в скриптике нет защиты "от дурака": нет проверки на существование переменной $2, да и обработку $1 можно было сделать иначе. также, идет жесткая привязка ко входящему интерфейсу. надо либо вынести в отдельную переменную, либо вообще убрать.
в циклах убиения повторяющихся записей выполняется задержка в 0,1 секунду, которая подобрана, фактически, эмперическим путем (ага, работает с этим значением.. а если поставтиь ещё меньше...?). если задержку саавсем открутить - возможны сообщения от iptables о том, что оно не может выполнить операцию.
немнога о правилах в iptables:
в FORWARD транзитный трафик от пользователей перекидывается в соответствующие цепочки:
$IPTABLES -A FORWARD -p ALL -d $PPPOE_IP_RANGE_EXT -j fwd_in
$IPTABLES -A FORWARD -p ALL -s $PPPOE_IP_RANGE_EXT -j fwd_out
fwd_in и fwd_out как раз разрешают пользователям выползать в и-нет, перекидывая пользователей в цепочки fwd_out_ppp и fwd_in_ppp, содержат правила типа:
$iptables -A fwd_in -i <i-iface> -d <userip> -j fwd_in_ppp
и
$iptables -A fwd_out -s <userip> -j fwd_out_ppp
в fwd_out_ppp и fwd_in_ppp закручена хитромудрая логика по снятию данных о проходящем трафике
+запущен ipcad с соответствующими настройками.
в биллинге:
настройки -> правила firewall:
благодаря "хитрому" скрипту fw_ctl.sh получили возможность использовать саавсем простые правила, типа (без ковычек):
включение:
"on UIP/UBITS"
выключение:
"off UIP/UBITS"
ну и маленькая добавочка:
/netup/utm5/rfw5.cfg
параметр:
firewall_path=/netup/utm5/bin/fw_ctl.sh
+добавочка в /etc/sudoers (если rfw крутится без прав root`а):
netup <hostname> = NOPASSWD: /netup/utm5/bin/fw_ctl.sh
недавно несколько переделал скриптик включения-выключения и-нета пользователям.
в результате - для нескольких тысяч юзверей rfw отрабатывает все правила минут за пять, против 20-ти, в предыдущей вариации.
сам скриптик fw_ctl.sh:
Код: Выделить всё
#!/bin/sh
log="/var/log/netup/fw_ctl.log"
iptables="/usr/sbin/iptables"
del_user() {
$iptables -D fwd_in -i eth0.36 -d $1 -j fwd_in_ppp >/dev/null 2>/dev/null
err=`echo $?`
# echo "deleting user: $1 res: $err" >> $log
while [ "0" -eq "$err" ]
do
sleep 0.1
$iptables -D fwd_in -i eth0.36 -d $1 -j fwd_in_ppp >/dev/null 2>/dev/null
err=`echo $?`
# echo "deleting user: $1 res: $err" >> $log
done
$iptables -D fwd_out -s $1 -j fwd_out_ppp >/dev/null 2>/dev/null
err=`echo $?`
# echo "deleting user: $1 res: $err" >> $log
while [ "0" -eq "$err" ]
do
sleep 0.1
$iptables -D fwd_out -s $1 -j fwd_out_ppp >/dev/null 2>/dev/null
err=`echo $?`
# echo "deleting user: $1 res: $err" >> $log
done
}
add_user() {
$iptables -A fwd_in -i eth0.36 -d $1 -j fwd_in_ppp >/dev/null 2>/dev/null
err=`echo $?`
# echo "adding user: $1 res: $err" >> $log
while [ "0" -lt "$err" ]
do
sleep 0.1
$iptables -A fwd_in -i eth0.36 -d $1 -j fwd_in_ppp >/dev/null 2>/dev/null
err=`echo $?`
# echo "adding user: $1 res: $err" >> $log
done
$iptables -A fwd_out -s $1 -j fwd_out_ppp >/dev/null 2>/dev/null
err=`echo $?`
# echo "adding user: $1 res: $err" >> $log
while [ "0" -lt "$err" ]
do
sleep 0.1
$iptables -A fwd_out -s $1 -j fwd_out_ppp >/dev/null 2>/dev/null
err=`echo $?`
# echo "adding user: $1 res: $err" >> $log
done
}
if [ "$1" == "off" ]; then {
del_user $2
}
elif [ "$1" == "on" ]; then {
#удаление возможных дублей
del_user $2
#добавление
add_user $2
}
fi
в циклах убиения повторяющихся записей выполняется задержка в 0,1 секунду, которая подобрана, фактически, эмперическим путем (ага, работает с этим значением.. а если поставтиь ещё меньше...?). если задержку саавсем открутить - возможны сообщения от iptables о том, что оно не может выполнить операцию.
немнога о правилах в iptables:
в FORWARD транзитный трафик от пользователей перекидывается в соответствующие цепочки:
$IPTABLES -A FORWARD -p ALL -d $PPPOE_IP_RANGE_EXT -j fwd_in
$IPTABLES -A FORWARD -p ALL -s $PPPOE_IP_RANGE_EXT -j fwd_out
fwd_in и fwd_out как раз разрешают пользователям выползать в и-нет, перекидывая пользователей в цепочки fwd_out_ppp и fwd_in_ppp, содержат правила типа:
$iptables -A fwd_in -i <i-iface> -d <userip> -j fwd_in_ppp
и
$iptables -A fwd_out -s <userip> -j fwd_out_ppp
в fwd_out_ppp и fwd_in_ppp закручена хитромудрая логика по снятию данных о проходящем трафике
+запущен ipcad с соответствующими настройками.
в биллинге:
настройки -> правила firewall:
благодаря "хитрому" скрипту fw_ctl.sh получили возможность использовать саавсем простые правила, типа (без ковычек):
включение:
"on UIP/UBITS"
выключение:
"off UIP/UBITS"
ну и маленькая добавочка:
/netup/utm5/rfw5.cfg
параметр:
firewall_path=/netup/utm5/bin/fw_ctl.sh
+добавочка в /etc/sudoers (если rfw крутится без прав root`а):
netup <hostname> = NOPASSWD: /netup/utm5/bin/fw_ctl.sh
у нас в качестве шлюза выступает nix машинко, доступ открывается\закрывается посредством FORWARD в iptables
час назад столкнулся с траблом- rfw начал добавлять кучу правил на открытие и одно на закрытие =) в следствии чего у кучи народа инет не выключался а для нас это критично...
вобщем "на коленке" накидал такой скриптик- на гениальность не претендую, но работает вроде, может кому понадобится:
есть конечно много сомнительных строк, но вроде пашет =)
час назад столкнулся с траблом- rfw начал добавлять кучу правил на открытие и одно на закрытие =) в следствии чего у кучи народа инет не выключался а для нас это критично...
вобщем "на коленке" накидал такой скриптик- на гениальность не претендую, но работает вроде, может кому понадобится:
есть конечно много сомнительных строк, но вроде пашет =)
Код: Выделить всё
add_log=/var/log/netup/iptables-add.log
remove_log=/var/log/netup/iptables-remove.log
limit=10
a=0
#DELETE iptables RULE#######################################################
if [ $1 == "-D" ]; then
echo "+---- Get remove request: $1 $2 $3 $4 $5 $6">>$remove_log
# make IP from IP/Mask
ip=${4%*/*}
flag=${3#*-*}
echo "Make IP from UIP/UBITS: $ip">>$remove_log
/sbin/iptables-save | grep $ip | grep $flag | while read rule
do
echo "Apply deleting rule: $1 $2 $3 $4 $5 $6">>$remove_log
/sbin/iptables $1 $2 $3 $4 $5 $6
done
echo "+--- Request: $1 $2 $3 $4 $5 $6 Finished">>$remove_log
echo "">>$remove_log
fi
#ADD NEW RULE################################################################
if [ $1 == "-A" ]; then
echo "+---- Get add request: $1 $2 $3 $4 $5 $6">>$add_log
# make IP from IP/Mask
ip=${4%*/*}
flag=${3#*-*}
echo "Make IP from UIP/UBITS: $ip">>$add_log
count=$(/sbin/iptables-save | grep $ip | grep $flag | wc -l)
echo "Already found $count rules.">>$add_log
if [ "$count" -le "0" ]
then
/sbin/iptables $1 $2 $3 $4 $5 $6
echo "Apply rule $1 $2 $3 $4 $5 $6">>$add_log
fi
echo "Try to find rule in iptables...">>$add_log
while [ $a -le "$limit" ]
do
a=$(($a+1))
count=$(/sbin/iptables-save | grep $ip | grep $flag | wc -l)
if [ "$count" -gt "0" ]
then
echo "pass ($a) found $count matches...">>$add_log
break
fi
echo "pass ($a) not found, lets do it again">>$add_log
/sbin/iptables $1 $2 $3 $4 $5 $6
echo "Apply rule $1 $2 $3 $4 $5 $6">>$add_log
done
echo "+--- Request: $1 $2 $3 $4 $5 $6 Finished">>$add_log
echo "">>$add_log
fi
exit 0
итить =)))) только скриптик запустил сразу косяк нашел ))))
при добавлении правил строка:
благодаря грепу считает что к примеру 192.168.6.55 и 192.168.6.5 одно и тоже =)
релшил добавив пробел к конце грепа-
кто тут спец в баше? как сделать покрасивше?
при добавлении правил строка:
Код: Выделить всё
count=$(/sbin/iptables-save | grep $ip | grep $flag | wc -l)
релшил добавив пробел к конце грепа-
Код: Выделить всё
count=$(/sbin/iptables-save | grep "$ip " | grep $flag | wc -l)
-
- Сообщения: 1612
- Зарегистрирован: Пт ноя 10, 2006 15:23
Добавлю и я свои пять копеек
Я проблему дублирования правил решил так:
- ставим ipset http://ipset.netfilter.org/
- создаем ipset -N BLOCKED iphash
- добавляем правила для блокирования траффика:
iptables -A FORWARD -m set --set BLOCKED dst -j REJECT --reject-with icmp-admin-prohibited
iptables -A FORWARD -m set --set BLOCKED src -j REJECT --reject-with icmp-admin-prohibited
- в rfw5.cfg правим firewall_path=/usr/sbin/ipset
- в админке добавляем правило файрвола: включение: -D BLOCKED UIP, выключение: -A BLOCKED UIP
И все, проблемы больше не существует.
- ставим ipset http://ipset.netfilter.org/
- создаем ipset -N BLOCKED iphash
- добавляем правила для блокирования траффика:
iptables -A FORWARD -m set --set BLOCKED dst -j REJECT --reject-with icmp-admin-prohibited
iptables -A FORWARD -m set --set BLOCKED src -j REJECT --reject-with icmp-admin-prohibited
- в rfw5.cfg правим firewall_path=/usr/sbin/ipset
- в админке добавляем правило файрвола: включение: -D BLOCKED UIP, выключение: -A BLOCKED UIP
И все, проблемы больше не существует.
Давайте всё таки вернёмся к теме "IPTABLES"!
У меня пользователи выходят в интернет по средству цепочки POSTROUTING в таблице *nat
Примерно так:
В "правила фаервола" в utm_Admin прописываю следующее:
в результате в логе написано:
rfw.log
rfw5.log
main.log
debug.log
IP-шник я конечно спрятал.
поглядите пожалуйста, может я что-то неправильно сделал?
Заранее благодарен!
У меня пользователи выходят в интернет по средству цепочки POSTROUTING в таблице *nat
Примерно так:
Код: Выделить всё
-A POSTROUTING -s 192.168.0.10 -o eth0 -j SNAT --to-source 80.х.х.х
Код: Выделить всё
iptables -t nat -A POSTROUTONG -s UIP -o eth0 SNAT --to-source 80.x.x.x
rfw.log
Код: Выделить всё
Info : Apr 14 04:01:48 UTM5 Logger: New ` Info : ' stream: /netup/utm5/log/rfw.log
Info : Apr 14 04:01:48 UTM5 Logger: New `?Debug : ' stream: /netup/utm5/log/rfw.log
Info : Apr 14 04:01:48 UTM5 Logger: New `?Debug : ' stream: /netup/utm5/log/rfw.log
Info : Apr 14 04:01:48 StreamConnection: Connection thread started. Peer 127.0.0.1:11758
Info : Apr 14 04:01:48 StreamConnection: Connection thread started. Peer 127.0.0.1:11758
ERROR : Apr 14 04:01:48 StreamConnection: Unable to maintain connection. Error code <22>
ERROR : Apr 14 04:01:48 StreamConnection: Unable to maintain connection. Error code <22>
Info : Apr 14 04:01:48 StreamConnection: Connection from 127.0.0.1:11758 closed
Info : Apr 14 04:01:48 StreamConnection: Connection from 127.0.0.1:11758 closed
ERROR : Apr 14 04:01:48 StreamManager: set_auth: connection closed
ERROR : Apr 14 04:01:48 StreamManager: set_auth: connection closed
*CRIT : Apr 14 04:01:48 RFW Config: Unable to login, check you configuration file settings
*CRIT : Apr 14 04:01:48 RFW Config: Unable to login, check you configuration file settings
*CRIT : Apr 14 04:01:48 RFW Config: Unable to login, check you configuration file settings
Notice: Apr 14 04:01:48 RFW Config: Pid file found: /var/run/utm5_rfw.pid; Overwriting
Notice: Apr 14 04:01:48 RFW Config: Pid file found: /var/run/utm5_rfw.pid; Overwriting
-Stats : Apr 14 04:01:48 StreamManager: Stats: Uptime: 00:00:00. Events: 0; Errors: 0
Код: Выделить всё
Info : Apr 14 04:01:48 StreamManager: Registering message handlers..
Info : Apr 14 04:01:48 StreamManager: ID <0x4003> handler <0x09be25a8>
Info : Apr 14 04:01:48 StreamManager: ID <0x4000> handler <0x09be25a8>
Info : Apr 14 04:01:48 StreamManager: ID <0x4001> handler <0x09be25a8>
Info : Apr 14 04:01:48 StreamManager: ID <0x4004> handler <0x09be25a8>
Info : Apr 14 04:01:48 StreamManager: ID <0x4002> handler <0x09be25a8>
Notice: Apr 14 04:01:48 UTM5 RFW: Version 5.2.1-005-rhel5 starting
Notice: Apr 14 04:01:48 RFW Config: Processing config file: /netup/utm5/rfw5.cfg
Info : Apr 14 04:01:48 UTM5 Logger: New `*CRIT : ' stream: /netup/utm5/log/rfw.log
Info : Apr 14 04:01:48 UTM5 Logger: New ` Info : ' stream: /netup/utm5/log/rfw.log
Код: Выделить всё
ERROR : Apr 14 03:41:08 ModFWMan: No info for FW 1 found
ERROR : Apr 14 03:42:06 ModFWMan: No info for FW 1 found
ERROR : Apr 14 03:50:52 ModFWMan: No info for FW 1 found
ERROR : Apr 14 03:50:55 ModFWMan: No info for FW 1 found
ERROR : Apr 14 03:51:47 ModFWMan: No info for FW 1 found
ERROR : Apr 14 03:51:53 ModFWMan: No info for FW 1 found
Код: Выделить всё
?Debug : Apr 14 03:51:47 RPCConn<init@192.168.0.5>: Stream cleared
?Debug : Apr 14 03:51:53 RPCConn<init@192.168.0.5>: Call: 0x2003 (rpcf_change_intstat_for_user)
?Debug : Apr 14 03:51:53 RPCConn<init@192.168.0.5>: Real Call: 0x2003 (rpcf_change_intstat_for_user)
?Debug : Apr 14 03:51:53 DBCtx: SQL query: UPDATE accounts SET int_status='1' WHERE id='1'
?Debug : Apr 14 03:51:53 BusLogic: BLM(39) pushed (comment: )
?Debug : Apr 14 03:51:53 UTM5 DBA: hw unblock for account 1
?Debug : Apr 14 03:51:53 RPCConn<init@192.168.0.5>: Call 0x2003 (rpcf_change_intstat_for_user) finished...
?Debug : Apr 14 03:51:53 RPCConn<init@192.168.0.5>: Stream cleared
?Debug : Apr 14 03:51:53 BusLogic: try to execute 39
?Debug : Apr 14 03:51:53 BusLogic: hw_block_handler with code 39
?Debug : Apr 14 03:51:53 BusLogic: hw_block_handler start bla_user_hw_unblock|bla_user_hw_block
?Debug : Apr 14 03:51:53 DBCtx: SQL SELECT query: SELECT is_for_all, uid, group_id, tariff_id, rule_on, rule_off, rule_block, router_id, and_logic, add_user, edit_user, del_user FROM firewall_rules WHERE is_deleted='0'
?Debug : Apr 14 03:51:53 UTM5 DBA: Rule on <iptables -t nat -A POSTROUTONG -s UIP -o eth0 SNAT --to-source 80.x.x.x> off <iptables -t nat -A POSTROUTONG -s UIP -o eth0 DROP --to-source 80.x.x.x>. User check <1> tariffs check <0> groups check <0>. And logic <enabled>
?Debug : Apr 14 03:51:53 UTM5 DBA: Rule added to final list!
?Debug : Apr 14 03:51:53 ModFWMan: Ready to execute 1 FW rules for UID 1. State:1...
?Debug : Apr 14 03:51:53 ModFWMan: FW rule parse. Setting RULE_ID to <5001> uid <1>
?Debug : Apr 14 03:51:53 DBA:Ctx: Looking for free context
?Debug : Apr 14 03:51:53 DBCtx: SQL SELECT query: SELECT login, password, basic_account, is_blocked, create_date, last_change_date, who_create, who_change, is_juridical, full_name, juridical_address, actual_address, work_telephone, home_telephone, mobile_telephone, web_page, icq_number, tax_number, kpp_number, bank_id, bank_account, comments, discount_period_id, email, house_id, flat_number, entrance, floor, district, building, passport, personal_manager, connect_date, is_send_invoice, advance_payment FROM users WHERE id='1' AND is_deleted=0
?Debug : Apr 14 03:51:53 DBCtx: SQL SELECT query: SELECT group_id FROM users_groups_link WHERE user_id='1'
?Debug : Apr 14 03:51:53 DBCtx: SQL SELECT query: SELECT paramid, value FROM user_additional_params WHERE userid='1'
?Debug : Apr 14 03:51:53 DBCtx: SQL SELECT query: SELECT group_name FROM groups WHERE id='1'
?Debug : Apr 14 03:51:53 DBCtx: SQL SELECT query: SELECT remote_switch_id, port_number FROM users WHERE id='1'
?Debug : Apr 14 03:51:53 ModFWMan: FW rule parse. Substituting ACCOUNT_ID with value <1> original value <0>
?Debug : Apr 14 03:51:53 ModFWMan: FW rule parse. Substituting empty ULOGIN with value <nops>
?Debug : Apr 14 03:51:53 ModFWMan: FW rule parse. Substituting UBITS with value <32> original value <-1>
?Debug : Apr 14 03:51:53 ModFWMan: FW rule parse. Substituting EMAIL with value <> (obtained from user data)
?Debug : Apr 14 03:51:53 ModFWMan: FW rule parse. Substituting TRAFFIC_LIMIT with value <0>
?Debug : Apr 14 03:51:53 DBA:Ctx: Pushing back free context
-Stats : Apr 14 03:51:53 DBA Groups: Stats: Uptime: 00:00:00. Events: 0; Errors: 0
?Debug : Apr 14 03:51:53 ModFWMan: Exec [iptables -t nat -A POSTROUTONG -s 192.168.0.5 -o eth0 SNAT --to-source 80.x.x.x] on 1
ERROR : Apr 14 03:51:53 ModFWMan: No info for FW 1 found
?Debug : Apr 14 03:51:53 BusLogic: hw_block_handler end bla_user_hw_unblock|bla_user_hw_block
?Debug : Apr 14 03:51:53 BusLogic: finished unknown
?Debug : Apr 14 03:51:53 RPCConn<init@192.168.0.5>: Call: 0x2011 (rpcf_get_users_count)
?Debug : Apr 14 03:51:53 RPCConn<init@192.168.0.5>: Real Call: 0x2011 (rpcf_get_users_count)
?Debug : Apr 14 03:51:53 RPCConn<init@192.168.0.5>: Call 0x2011 (rpcf_get_users_count) finished...
?Debug : Apr 14 03:51:53 RPCConn<init@192.168.0.5>: Stream cleared
?Debug : Apr 14 03:51:53 RPCConn<init@192.168.0.5>: Call: 0x2400 (rpcf_get_groups_list)
?Debug : Apr 14 03:51:53 RPCConn<init@192.168.0.5>: Real Call: 0x2400 (rpcf_get_groups_list)
?Debug : Apr 14 03:51:53 DBA:Ctx: Looking for free context
?Debug : Apr 14 03:51:53 DBCtx: SQL SELECT query: SELECT id, group_name FROM groups
?Debug : Apr 14 03:51:53 DBA:Ctx: Pushing back free context
-Stats : Apr 14 03:51:53 DBA Groups: Stats: Uptime: 00:00:00. Events: 0; Errors: 0
?Debug : Apr 14 03:51:53 RPCConn<init@192.168.0.5>: Call 0x2400 (rpcf_get_groups_list) finished...
?Debug : Apr 14 03:51:53 RPCConn<init@192.168.0.5>: Stream cleared
?Debug : Apr 14 03:51:53 RPCConn<init@192.168.0.5>: Call: 0x2001 (rpcf_get_users_list)
?Debug : Apr 14 03:51:53 RPCConn<init@192.168.0.5>: Real Call: 0x2001 (rpcf_get_users_list)
?Debug : Apr 14 03:51:53 RPCConn<init@192.168.0.5>: Call 0x2001 (rpcf_get_users_list) finished...
?Debug : Apr 14 03:51:53 RPCConn<init@192.168.0.5>: Stream cleared
?Debug : Apr 14 03:51:54 RPCConn<init@192.168.0.5>: Call: 0x2011 (rpcf_get_users_count)
?Debug : Apr 14 03:51:54 RPCConn<init@192.168.0.5>: Real Call: 0x2011 (rpcf_get_users_count)
?Debug : Apr 14 03:51:54 RPCConn<init@192.168.0.5>: Call 0x2011 (rpcf_get_users_count) finished...
?Debug : Apr 14 03:51:54 RPCConn<init@192.168.0.5>: Stream cleared
?Debug : Apr 14 03:51:54 RPCConn<init@192.168.0.5>: Call: 0x2400 (rpcf_get_groups_list)
?Debug : Apr 14 03:51:54 RPCConn<init@192.168.0.5>: Real Call: 0x2400 (rpcf_get_groups_list)
?Debug : Apr 14 03:51:54 DBA:Ctx: Looking for free context
?Debug : Apr 14 03:51:54 DBCtx: SQL SELECT query: SELECT id, group_name FROM groups
?Debug : Apr 14 03:51:54 DBA:Ctx: Pushing back free context
-Stats : Apr 14 03:51:54 DBA Groups: Stats: Uptime: 00:00:00. Events: 0; Errors: 0
?Debug : Apr 14 03:51:54 RPCConn<init@192.168.0.5>: Call 0x2400 (rpcf_get_groups_list) finished...
?Debug : Apr 14 03:51:54 RPCConn<init@192.168.0.5>: Stream cleared
?Debug : Apr 14 03:51:55 RPCConn<init@192.168.0.5>: Call: 0x2001 (rpcf_get_users_list)
?Debug : Apr 14 03:51:55 RPCConn<init@192.168.0.5>: Real Call: 0x2001 (rpcf_get_users_list)
?Debug : Apr 14 03:51:55 RPCConn<init@192.168.0.5>: Call 0x2001 (rpcf_get_users_list) finished...
?Debug : Apr 14 03:51:55 RPCConn<init@192.168.0.5>: Stream cleared
поглядите пожалуйста, может я что-то неправильно сделал?
Заранее благодарен!