From 1ee0356a309e3837eb079f76ad03c5c886de5d83 Mon Sep 17 00:00:00 2001 From: cmaffio Date: Fri, 11 Aug 2017 14:46:38 +0200 Subject: [PATCH] Inizializzazione progetto pannello --- .gitignore | 1 - condes/index.php | 161 --------------- condes/script/condes.conf | 6 - condes/script/condes.pl | 96 --------- firewall/index.php | 318 ----------------------------- proxy/index.php | 74 ------- proxy/script/conntrack.conf | 6 - proxy/script/conntrack.pl | 215 ------------------- proxy/script/conntrack.sample.conf | 6 - routing/index.php | 14 -- 10 files changed, 897 deletions(-) delete mode 100644 condes/index.php delete mode 100644 condes/script/condes.conf delete mode 100755 condes/script/condes.pl delete mode 100755 firewall/index.php delete mode 100755 proxy/index.php delete mode 100644 proxy/script/conntrack.conf delete mode 100755 proxy/script/conntrack.pl delete mode 100644 proxy/script/conntrack.sample.conf delete mode 100755 routing/index.php diff --git a/.gitignore b/.gitignore index 278f463..485cf97 100644 --- a/.gitignore +++ b/.gitignore @@ -4,4 +4,3 @@ squid_pool.log script/*.sql squid_acl/listip .gitignore -whitefox/* diff --git a/condes/index.php b/condes/index.php deleted file mode 100644 index 24f020b..0000000 --- a/condes/index.php +++ /dev/null @@ -1,161 +0,0 @@ - $valore) { - if (preg_match ("/^new-(\d+)/", $id, $ris)) $new[$ris[1]] = $valore; - if (preg_match ("/^old-(\d+)/", $id, $ris)) $old[$ris[1]] = $valore; - } - - foreach ($new as $id => $valore) { - if ($new[$id] == $old[$id]) continue; - - if ($valore >1) - $stato = 1; - else - $stato = $valore; - - $query = " SELECT - condes_regole.id_condes_macchine, - condes_regole.id_proxy_acl_list, - condes_macchine.id_proxy_pool - FROM - condes_regole - JOIN - condes_macchine - ON - condes_regole.id_condes_macchine = condes_macchine.id - WHERE - condes_regole.id = $id - "; - $res = mysql_query( $query, $DB_ID ); - $dato = mysql_fetch_array ( $res ); - - $query = " UPDATE - condes_regole - SET - stato = $valore, - modifica = NOW() - WHERE - id_condes_macchine = ".$dato['id_condes_macchine']." - AND - id_proxy_acl_list = ".$dato['id_proxy_acl_list']; - $res = mysql_query( $query, $DB_ID ); - - $query = " INSERT INTO - proxy_acl_ip - SET - idacllist = ".$dato['id_proxy_acl_list'].", - idpool = ".$dato['id_proxy_pool'].", - stato = $stato, - data = NOW() - ON DUPLICATE KEY UPDATE - stato = $stato, - data = NOW() - "; - $res = mysql_query( $query, $DB_ID ); - - $query = " INSERT INTO - condes_logs - SET - id_utenti = ".$UTENTE['id'].", - id_condes_regole = $id, - stato = $valore, - data = NOW() - "; - $res = mysql_query( $query, $DB_ID ); - } -} - -$tabella = new html (0,"90%",array(15,2,20,2,15,2,5,0)); -?> -
- - - - - - -riga (); - -if ($DIRITTI < 10) { - $admin = " AND utenti.id = ".$UTENTE['id']; -} else { - $admin = ""; -} - -$query = " SELECT - condes_regole.id, - condes_regole.stato, - proxy_pool.nome, - proxy_pool.ip, - proxy_acl_list.nome AS acl, - condes_regole.permanente - FROM - condes_regole - JOIN - utenti - ON - condes_regole.id_utenti = utenti.id - $admin - JOIN - condes_macchine - ON - condes_regole.id_condes_macchine = condes_macchine.id - JOIN - proxy_pool - ON - condes_macchine.id_proxy_pool = proxy_pool.id - JOIN - proxy_acl_list - ON - condes_regole.id_proxy_acl_list = proxy_acl_list.id - WHERE - condes_regole.attivo = 1 - ORDER BY - -proxy_pool.nome DESC, - proxy_pool.ip - "; - -$res = mysql_query( $query, $DB_ID ); -while ($dato = mysql_fetch_array ( $res )) { -?> - - - - - - - Macchina - - ACL - - Perm - - - - - - - -riga (); -} ?> -
-close (); -view_footer(); -?> diff --git a/condes/script/condes.conf b/condes/script/condes.conf deleted file mode 100644 index 875246a..0000000 --- a/condes/script/condes.conf +++ /dev/null @@ -1,6 +0,0 @@ -our $DBhost = '127.0.0.1'; -our $DBname = 'pannello_vbc'; -our $DBuser = 'pannello_proxy'; -our $DBpass = 'CuQlM1lfF4VZDCIP'; - -return 1; diff --git a/condes/script/condes.pl b/condes/script/condes.pl deleted file mode 100755 index f033a69..0000000 --- a/condes/script/condes.pl +++ /dev/null @@ -1,96 +0,0 @@ -#!/usr/bin/perl -$|=1; - -use DBI; -use FindBin qw($Bin); - -my $param = shift @ARGV; - -our $verbose = 0; -if ($param eq '-v') { - $verbose = 1; -} elsif ($param eq '-vv') { - $verbose = 2; -} - -require "$Bin/condes.conf"; - -my $dbmysql = DBI->connect("DBI:mysql:;host=$DBhost", $DBuser, $DBpass) or die ($DBI::errstr); -$sts = $dbmysql->prepare("use $DBname"); -$sts->execute (); - -$query = " SELECT - condes_regole.id, - condes_regole.id_condes_macchine, - condes_regole.id_proxy_acl_list, - condes_macchine.id_proxy_pool, - proxy_pool.ip, - proxy_pool.nome, - proxy_acl_list.nome AS acl - FROM - condes_regole - JOIN - condes_macchine - ON - condes_regole.id_condes_macchine = condes_macchine.id - JOIN - proxy_pool - ON - condes_macchine.id_proxy_pool = proxy_pool.id - JOIN - proxy_acl_list - ON - condes_regole.id_proxy_acl_list = proxy_acl_list.id - WHERE - condes_regole.stato = 1 -"; - -$sts = $dbmysql->prepare($query); -$sts->execute (); -while ( $ref = $sts->fetchrow_hashref ) { - $id = $$ref{'id'}; - $condes_macchine = $$ref{'id_condes_macchine'}; - $proxy_acl_list = $$ref{'id_proxy_acl_list'}; - $proxy_pool = $$ref{'id_proxy_pool'}; - $proxy_pool_ip = $$ref{'ip'}; - $proxy_pool_nome = $$ref{'nome'}; - $acl = $$ref{'acl'}; - - printf "Rimosso %-15s (%-10s) con lista %s\n", $proxy_pool_ip, $proxy_pool_nome, $acl if ($verbose); - - $query = " UPDATE - proxy_acl_ip - SET - stato = 0, - data = NOW() - WHERE - idacllist = $proxy_acl_list - AND - idpool = $proxy_pool - "; - my $sts = $dbmysql->prepare($query); $sts->execute (); - - $query = " INSERT INTO - condes_logs - SET - id_utenti = 0, - id_condes_regole = $id, - stato = 0, - data = NOW() - "; - $sts = $dbmysql->prepare($query); $sts->execute (); - - $query = " UPDATE - condes_regole - SET - stato = 0, - modifica = NOW() - WHERE - id_condes_macchine = $condes_macchine - AND - id_proxy_acl_list = $proxy_acl_list - "; - $sts = $dbmysql->prepare($query); $sts->execute (); -} - -exit; diff --git a/firewall/index.php b/firewall/index.php deleted file mode 100755 index 912c569..0000000 --- a/firewall/index.php +++ /dev/null @@ -1,318 +0,0 @@ - $valore) { - if (preg_match ("/^new-(\d+)/", $id, $ris)) $new[$ris[1]] = $valore; - if (preg_match ("/^old-(\d+)/", $id, $ris)) $old[$ris[1]] = $valore; - } - - if ($_POST['regola'] == "intext") { - foreach ($new as $id => $valore) { - if ($new[$id] == $old[$id]) continue; - - $modificato = 1; - if ($valore >1) - $stato = 1; - else - $stato = $valore; - - $query = " SELECT - firewall_versoesterno_regole.id_firewall_versoesterno - FROM - firewall_versoesterno_regole - WHERE - firewall_versoesterno_regole.id = $id - "; - - $res = mysql_query( $query, $DB_ID ); - $dato = mysql_fetch_array ( $res ); - - $query = " UPDATE - firewall_versoesterno_regole - SET - stato = $valore, - modifica = NOW() - WHERE - id_firewall_versoesterno = ".$dato['id_firewall_versoesterno']; - $res = mysql_query( $query, $DB_ID ); - - $query = " INSERT INTO - firewall_logs - SET - id_utenti = ".$UTENTE['id'].", - tabella = 'versoesterno', - id_regole = $id, - stato = $valore, - data = NOW() - "; - $res = mysql_query( $query, $DB_ID ); - } - } else if ($_POST['regola'] == "extint") { - foreach ($new as $id => $valore) { - if ($new[$id] == $old[$id]) continue; - - $modificato = 1; - if ($valore >1) - $stato = 1; - else - $stato = $valore; - - $query = " SELECT - firewall_versointerno_regole.id_firewall_versointerno - FROM - firewall_versointerno_regole - WHERE - firewall_versointerno_regole.id = $id - "; - - $res = mysql_query( $query, $DB_ID ); - $dato = mysql_fetch_array ( $res ); - - $query = " UPDATE - firewall_versointerno_regole - SET - stato = $valore, - modifica = NOW() - WHERE - id_firewall_versointerno = ".$dato['id_firewall_versointerno']; - $res = mysql_query( $query, $DB_ID ); - - $query = " INSERT INTO - firewall_logs - SET - id_utenti = ".$UTENTE['id'].", - tabella = 'versointerno', - id_regole = $id, - stato = $valore, - data = NOW() - "; - $res = mysql_query( $query, $DB_ID ); - } - } - -// if ($modificato) genera(); - if ($modificato) attiva_aggiornamento(); -} - -$tabella = new html (0,"90%",array(15,2,20,2,50,2,5,0)); -?> -
- - - - - - Regole Esterno -> Interno - - -riga (10); - -if ($DIRITTI < 10) { - $admin = " AND utenti.id = ".$UTENTE['id']; -} else { - $admin = ""; -} - -$query = " SELECT - firewall_versointerno_regole.id, - firewall_versointerno_regole.permanente, - firewall_versointerno_regole.stato, - firewall_versointerno.nome, - firewall_versointerno.int_port, - firewall_versointerno.fw_port, - firewall_versointerno.proto, - proxy_pool.nome AS int_nome, - proxy_pool.ip AS int_ip, - firewall_vpn.utenza, - firewall_vpn.ip AS vpn_ip, - utenti.utente - FROM - firewall_versointerno_regole - JOIN - firewall_versointerno - ON - firewall_versointerno_regole.id_firewall_versointerno = firewall_versointerno.id - JOIN - firewall_macchine - ON - firewall_versointerno.id_firewall_macchine = firewall_macchine.id - JOIN - proxy_pool - ON - firewall_macchine.id_proxy_pool = proxy_pool.id - JOIN - firewall_vpn - ON - firewall_versointerno.id_firewall_vpn = firewall_vpn.id - JOIN - utenti - ON - firewall_versointerno_regole.id_utenti = utenti.id - $admin - WHERE - firewall_versointerno_regole.attivo = 1 - ORDER BY - firewall_versointerno.nome - "; - -$res = mysql_query( $query, $DB_ID ); -while ($dato = mysql_fetch_array ( $res )) { ?> - - - - - - - Utente - - Regola - - Perm - - - - - "; - if ($dato['int_nome'] != "") { - print $dato['int_nome']; - } else { - print $dato['int_ip']; - } - print ":".$dato['int_port']." (".$dato['proto'].")";; -?> - - -riga (5); -} ?> -
- -riga (30) ?> -
- - - - - - Regole Interno -> Esterno - - -riga (10); - -$query = " SELECT - firewall_versoesterno_regole.id, - firewall_versoesterno_regole.stato, - firewall_versoesterno.nome, - firewall_versoesterno.int_port, - firewall_versoesterno.ext_port, - firewall_versoesterno.proto, - firewall_versoesterno_regole.permanente, - proxy_pool.nome AS int_nome, - proxy_pool.ip AS int_ip, - firewall_macchine_ext.nome AS ext_nome, - firewall_macchine_ext.ip AS ext_ip, - utenti.utente - FROM - firewall_versoesterno_regole - JOIN - firewall_versoesterno - ON - firewall_versoesterno_regole.id_firewall_versoesterno = firewall_versoesterno.id - JOIN - firewall_macchine - ON - firewall_versoesterno.id_firewall_macchine = firewall_macchine.id - JOIN - proxy_pool - ON - firewall_macchine.id_proxy_pool = proxy_pool.id - JOIN - utenti - ON - firewall_versoesterno_regole.id_utenti = utenti.id - $admin - JOIN - firewall_macchine_ext - ON - firewall_versoesterno.id_firewall_macchine_ext = firewall_macchine_ext.id - WHERE - firewall_versoesterno_regole.attivo = 1 - ORDER BY - firewall_versoesterno.nome - "; - -$res = mysql_query( $query, $DB_ID ); -while ($dato = mysql_fetch_array ( $res )) { -?> - - - - - - - Utente - - Regola - - Perm - - - - - "; - if ($dato['ext_nome'] != "") { - print $dato['ext_nome']; - } else { - print $dato['ext_ip']; - } - print ":".$dato['ext_port']." (".$dato['proto'].")";; - - -?> - - -riga (5); -} ?> - - - - -
-close (); -view_footer(); -?> diff --git a/proxy/index.php b/proxy/index.php deleted file mode 100755 index 771e0fe..0000000 --- a/proxy/index.php +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - Utente limitato - - Utente non limitato - - Dettaglio - - - - Inviati - - - - - - - - Ricevuti - - - - - - -riga(); -} -$tabella->close(); -view_footer(); -?> diff --git a/proxy/script/conntrack.conf b/proxy/script/conntrack.conf deleted file mode 100644 index 875246a..0000000 --- a/proxy/script/conntrack.conf +++ /dev/null @@ -1,6 +0,0 @@ -our $DBhost = '127.0.0.1'; -our $DBname = 'pannello_vbc'; -our $DBuser = 'pannello_proxy'; -our $DBpass = 'CuQlM1lfF4VZDCIP'; - -return 1; diff --git a/proxy/script/conntrack.pl b/proxy/script/conntrack.pl deleted file mode 100755 index 0cfd78e..0000000 --- a/proxy/script/conntrack.pl +++ /dev/null @@ -1,215 +0,0 @@ -#!/usr/bin/perl -$|=1; - -use DBI; -use FindBin qw($Bin); -use threads; -use threads::shared; -use Thread::Semaphore; - -my $param = shift @ARGV; - -our $verbose = 0; -if ($param eq '-v') { - $verbose = 1; -} elsif ($param eq '-vv') { - $verbose = 2; -} - -require "$Bin/conntrack.conf"; - -`sysctl -w net.netfilter.nf_conntrack_acct=1`; - -my $dbmysql = DBI->connect("DBI:mysql:;host=$DBhost", $DBuser, $DBpass) or die ($DBI::errstr); -$sts = $dbmysql->prepare("use $DBname"); -$sts->execute (); - -$query = "SELECT valore FROM conf WHERE variabile = 'lthread'"; -$sts = $dbmysql->prepare($query); -$sts->execute (); -$ref = $sts->fetchrow_hashref; -our $limit_thread = $$ref{'valore'}; - -$query = "SELECT ip FROM proxy_pool GROUP BY ip"; -$sts = $dbmysql->prepare($query); -$sts->execute (); - -our @listaip = (); -while ( $ref = $sts->fetchrow_hashref ) { - push @listaip, $$ref{'ip'}; -} - -$query = " SELECT - id, - ip, - nome, - port - FROM - proxy_conn - WHERE - attivo = 1 - "; -$sts = $dbmysql->prepare($query); -$sts->execute (); - -$queryDB = ""; -share ($queryDB); -$sem1 = Thread::Semaphore->new(1); -$sem2 = Thread::Semaphore->new(0); - -my %proc; -# Generazione figli per DB -$proc{'database'} = threads->create(\&database); -# Generazione figli per cattura pacchetti -while ( $ref = $sts->fetchrow_hashref ) { - my $id = $$ref{'id'}; - my $ip = $$ref{'ip'}; - my $port = $$ref{'port'}; - my $nome = $$ref{'nome'}; - $proc{$nome} = threads->create(\&conntrack, $id, $ip, $port); - print "Attivato processo $nome\n" if ($verbose); -} - -while (1) { - sleep 30; - - foreach my $variabile (keys %proc) { - $puntatore = $proc{$variabile}; - if(!$puntatore or !$puntatore->is_running ) { - print "Rilevato termine processo $variabile\n" if ($verbose); - delete $proc{$variabile}; - #$puntatore->join(); - - if ($variabile eq "database") { - $proc{'database'} = threads->create(\&database); - } else { - $query = "SELECT id, ip, port FROM proxy_conn WHERE nome = '$variabile'"; - $sts = $dbmysql->prepare($query); - $sts->execute (); - $ref = $sts->fetchrow_hashref; - my $id = $$ref{'id'}; - my $ip = $$ref{'ip'}; - my $port = $$ref{'port'}; - $proc{$variabile} = threads->create(\&conntrack, $id, $ip, $port); - } - } - } -} -exit; - -sub conntrack { - my $sess_id = shift; - my $proxy_IP = shift; - my $proxy_PORT = shift; - - $SIG{INT} = \&end; - - my $conta = 0; - - print "Attivato agente $sess_id su $proxy_IP:$proxy_PORT\n" if ($verbose); - - my $proc_id = open CT, "/usr/sbin/conntrack -E -eNEW,DESTROY -otimestamp,id -p tcp -d $proxy_IP --dport $proxy_PORT 2>/dev/null |" or die "non va\n"; - - while () { - my $riga = $_; - - if ( $riga =~ /^\s*\[(\d+)\.\d+\]\s+\[NEW\] tcp\s+\d+ \d+ \S*\s*src=(\S+) dst=(\S+) sport=\d+ dport=(\d+)\s+\[\w+\] src=\S+ dst=\S+ sport=\d+ dport=\d+ id=(\d+)/ ) { - my $remote_START = $1; - my $remote_IP = $2; - my $local_IP = $3; - my $local_PORT = $4; - my $thread_ID = $5; - - my $query = " INSERT INTO - proxy_dati - (ip, thread, data_new) - VALUES - ('$remote_IP', $thread_ID, FROM_UNIXTIME($remote_START)) - "; - - $sem1->down(); - $queryDB = $query; - $sem2->up(); - print "Invio query INSERT\n" if ($verbose > 1); - - if (!grep( /^$remote_IP$/, @listaip )) { - $sem1->down(); - $queryDB = "INSERT INTO proxy_pool (ip,pool,attivo,ins) VALUE ('$remote_IP', 1, 0,now())"; - $sem2->up(); - push @listaip, $remote_IP; - print "Invio query INSERT in proxy_pool\n" if ($verbose > 1); - } - } - - if ( $riga =~ /^\s*\[(\d+)\.\d+\]\s+\[DESTROY\] tcp\s+\d+ src=(\S+) dst=(\S+) sport=\d+ dport=(\d+) packets=\d+ bytes=(\d+) src=\S+ dst=\S+ sport=\d+ dport=\d+ packets=\d+ bytes=(\d+) \[\w+\] id=(\d+)/) { - my $remote_DESTROY = $1; - my $remote_IP = $2; - my $local_IP = $3; - my $local_PORT = $4; - my $remote_SEND = $5; - my $remote_RECEIVE = $6; - my $thread_ID = $7; - - $conta++; - printf ("$conta/$limit_thread - $sess_id - IP: %-15s - ID: %-12s - Inviati: %10d - Ricevuti: %10d\n", $remote_IP, $thread_ID, $remote_SEND, $remote_RECEIVE) if ($verbose); - - my $query = " UPDATE - proxy_dati - SET - data_destroy = FROM_UNIXTIME($remote_DESTROY), - inviati = $remote_SEND, - ricevuti = $remote_RECEIVE, - tempo = TIMESTAMPDIFF(SECOND, data_new, FROM_UNIXTIME($remote_DESTROY)), - vel_inv = $remote_SEND / TIMESTAMPDIFF(SECOND, data_new, FROM_UNIXTIME($remote_DESTROY)), - vel_ric = $remote_RECEIVE / TIMESTAMPDIFF(SECOND, data_new, FROM_UNIXTIME($remote_DESTROY)) - WHERE - thread = $thread_ID - AND - ip = '$remote_IP' - AND - data_destroy = '1970-01-01 00:00:00' - "; - - $sem1->down(); - $queryDB = $query; - $sem2->up(); - print "Invio query UPDATE\n" if ($verbose > 1); - } - if ($conta >= $limit_thread) { - last; - } - } - kill 9, $proc_id; - return; -} - -sub database { - print "Attivato thread DB\n" if ($verbose); - - $dbmysql = DBConn (); - - while (1) { - print "DB in attesa\n" if ($verbose > 1); - $sem2->down(); - print "Query arrivata\n" if ($verbose > 1); - - if ( not $dbmysql->ping ) { - $dbmysql = DBConn (); - } - - my $sts = $dbmysql->prepare($queryDB); - $sts->execute (); - - $sts->finish; - $sem1->up(); - } -} - -sub DBConn { - print "Connessione DB\n" if ($verbose > 1); - my $dbmysql = DBI->connect("DBI:mysql:;host=$DBhost", $DBuser, $DBpass, {PrintError => 0, RaiseError => 0, AutoCommit =>1, mysql_auto_reconnect=>1} ) or die ($DBI::errstr); - $sts = $dbmysql->prepare("use $DBname"); - $sts->execute (); - - return $dbmysql; -} diff --git a/proxy/script/conntrack.sample.conf b/proxy/script/conntrack.sample.conf deleted file mode 100644 index b48b120..0000000 --- a/proxy/script/conntrack.sample.conf +++ /dev/null @@ -1,6 +0,0 @@ -our $DBhost = ''; -our $DBname = ''; -our $DBuser = ''; -our $DBpass = ''; - -return 1; diff --git a/routing/index.php b/routing/index.php deleted file mode 100755 index d01e1f6..0000000 --- a/routing/index.php +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - -