4) кто делал правила для iptables, к нему вопрос: в вышеприведенных правилах для 10.0.1.9 должен блокироваться инет или нет? Т.е. фаервол правильно отображает текущую ситуацию или нет?
Инет должен блокироваться, и блокировался при отключении, что и происходило до перехода на новый месяц: при отключении клиент авторизатором или разрыве ppp соединения.
Из nofire.pl
sub Deny
{
my $p=$_[0];
my ($auth,$dop_param,$i,$id,$ip,$mid,$n,$num,$num1,$num2,$opt,$options,$chnl);
my ($paket,$pipe2,$pipe_in,$pipe_out,$speed2,$speed_in,$speed_out,$name,$chnl);
$ip=$p->{ip};
$id=$p->{id};
$num=$p->{num};
$mid=$p->{mid};
$auth=$p->{auth};
$paket=$p->{paket};
$pr=$p->{speed2};
$options=$p->{options};
$main_num=$p->{main_num};
$speed_in=$p->{speed_in};
$speed_out=$p->{speed_out};
&Add_Tbl_Rule(0,$ip);
#Удаляем правила добавленые в Allow
while (!system("$IPT -t filter -D FORWARD -s $ip -d ! 10.0.0.0/8 -j ACCEPT")) {};
while (!system("$IPT -t filter -D FORWARD -d $ip -s ! 10.0.0.0/8 -j ACCEPT")) {};
while (!system("iptables -D FORWARD -s $ip -j ULOG --ulog-nlgroup 15 ")) {};
while (!system("iptables -D FORWARD -d $ip -j ULOG --ulog-nlgroup 15 ")) {};
}
В Allow
........
###### контрольная подчистка перед добавлением
while (!system("$IPT -t filter -D FORWARD -s $ip -d ! 10.0.0.0/8 -j ACCEPT")) {};
while (!system("$IPT -t filter -D FORWARD -d $ip -s ! 10.0.0.0/8 -j ACCEPT")) {};
while (!system("iptables -D FORWARD -s $ip -j ULOG --ulog-nlgroup 15 ")) {};
while (!system("iptables -D FORWARD -d $ip -j ULOG --ulog-nlgroup 15 ")) {};
######
#добавляем правила разрешающие доступ в инет
system("$IPT -t filter -A FORWARD -s $ip -d ! 10.0.0.0/8 -j ACCEPT");
system("$IPT -t filter -A FORWARD -d $ip -s ! 10.0.0.0/8 -j ACCEPT");
system("iptables -I FORWARD 1 -s $ip -j ULOG --ulog-nlgroup 15 ");
system("iptables -I FORWARD 1 -d $ip -j ULOG --ulog-nlgroup 15 ");
.....
После перехода на новый месяц решил перезагрузить билинг. И вот что он выдал в логе
01.08.2011 12:24:57 kernel: ! Остановка ядра
01.08.2011 12:24:59 kernel: ! ====== - СТАРТ ЯДРА NODENY - ======
01.08.2011 12:24:59 kernel: 783 записей в базе и 290 доступ в инет блокирован, 257 не нужна авторизация
01.08.2011 12:24:59 kernel: Для 1 записей включен режим детального сохранения трафика.
DBI connect('database=bill;host=localhost;mysql_connect_timeout=6;','bill_kernel',...) failed: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) at /usr/local/nodeny/nodeny.pl line 1808
DBD::mysql::db do failed: MySQL server has gone away at /usr/local/nodeny/nodeny.pl line 512.
DBI connect('database=bill;host=localhost;mysql_connect_timeout=6;','bill_kernel',...) failed: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) at /usr/local/nodeny/nodeny.pl line 488
DBD::mysql::st execute failed: MySQL server has gone away at /usr/local/nodeny/nodeny.pl line 1308.
Can't call method "do" on an undefined value at /usr/local/nodeny/nodeny.pl line 1965.
После перезагрузки сервера все заработало.