Вопрос по структуре БД UTM5

Технические вопросы по UTM 5.0
Ответить
OxuMorron!
Сообщения: 5
Зарегистрирован: Пн авг 22, 2005 23:22

Вопрос по структуре БД UTM5

Сообщение OxuMorron! »

Вопрос уходит корнями в проблему связанную с пропаданием цепочек в iptables, шаманские танцы не помогают. Решил написать скрипт который будет выбирать из базы IP с включенным интернетом и с выключенным соответственно.
Возникла следующая проблема:
Статус Интернета (Включен/Выключен) хранится в accounts.int_status
IP хранится в ip_groups.ip

В SQL запросе хочется получить соответственно и то и это поле, но связки между ними найти так не смог! Бился битых 4 часа!

Может кто подскажет?

kurt
Сообщения: 10
Зарегистрирован: Пт янв 21, 2005 11:16

Сообщение kurt »

Вот небольшой скрипт для FreeBSD, занимается синхронизацией правил фаервола с БД, надеюсь будет полезен.

Код: Выделить всё

#!/usr/local/bin/perl -w

use DBI;


my $db_name="UTM5";
my $db_user_name="db_user"; 
my $db_user_pswd="*********";
my $rule_start_n=5000;
my $dbh=DBI->connect("DBI:mysql:$db_name",$db_user_name,$db_user_pswd,{ RaiseError => 1 }) or die "Can't connect: $DBI::errstr\n";
my @idList;
my $i=0;
my $sth=$dbh->prepare("select id from accounts where accounts.is_deleted=0 and accounts.int_status=1");;
$sth->execute or die "Can't execute query: ".$dbh->errstr."\n";

while ($idList[$i]=$sth->fetchrow_array){$i++};

$i--;
$temp=$i;

$sth=$dbh->prepare("select users.id, inet_ntoa( 4294967295 & ip_groups.ip) from users, ip_groups, service_links, iptraffic_service_links where ip_groups.is_deleted=0 and ip_groups.ip_group_id=iptraffic_service_links.ip_group_id and iptraffic_service_links.id=service_links.id and service_links.user_id=users.id");;
$sth->execute or die "Can't execute query: ".$dbh->errstr."\n";

while (my @ipList=$sth->fetchrow_array) {
   while($i){
      if ($ipList[0] eq $idList[$i]){
         #system("echo $ipList[1] $ipList[0]");
         system ("/sbin/ipfw add ".($rule_start_n+$ipList[0])." allow all from $ipList[1] to any");
         system ("/sbin/ipfw add ".($rule_start_n+$ipList[0])." allow all from any to $ipList[1]");
      }
      $i--;
   }
    if ($ipList[0] eq $idList[$i]){
      system ("/sbin/ipfw add ".($rule_start_n+$ipList[0])." allow all from $ipList[1] to any");
      system ("/sbin/ipfw add ".($rule_start_n+$ipList[0])." allow all from any to $ipList[1]");
      #system("echo $ipList[1] $ipList[0]");
   }

   $i=$temp;
}


$sth->finish;

exit 1;


FreeBSD4.9 UTM5.1.10-008

cm
NetUP Team
Сообщения: 17
Зарегистрирован: Ср фев 09, 2005 11:19

Re: Вопрос по структуре БД UTM5

Сообщение cm »

OxuMorron! писал(а):Вопрос уходит корнями в проблему связанную с пропаданием цепочек в iptables, шаманские танцы не помогают. Решил написать скрипт который будет выбирать из базы IP с включенным интернетом и с выключенным соответственно.
Возникла следующая проблема:
Статус Интернета (Включен/Выключен) хранится в accounts.int_status
IP хранится в ip_groups.ip

В SQL запросе хочется получить соответственно и то и это поле, но связки между ними найти так не смог! Бился битых 4 часа!

Может кто подскажет?
SELECT a.id,a.int_status,inet_ntoa(ig.ip&0xffffffff), inet_ntoa(ig.mask&0xffffffff) from accounts a,service_links sl,iptraffic_service_links il,ip_groups ig where sl.account_id=a.id and sl.id=il.id and il.ip_group_id=ig.ip_group_id and sl.is_deleted=0 and il.is_deleted=0 and ig.is_deleted=0;

При возникновении вопросов обращайтесь в техническую поддержку.

OxuMorron!
Сообщения: 5
Зарегистрирован: Пн авг 22, 2005 23:22

Сообщение OxuMorron! »

Спасибо!

ТехПоддержка это конечно хорошо, но к сожалению руководство это не я со всеми вытекающими =(

Ответить