Files
pannello/proxy/proxy_gest.php
2016-05-13 17:02:01 +02:00

154 lines
4.0 KiB
PHP
Executable File

<?php
include_once ("../core/config.php");
$UTENTE = login();
$DIRITTI = diritti('Admin');
?>
<html>
<head>
<script type="text/javascript">
<!--
function confirmation(testo) {
alert(testo)
document.location.href='main.php'
}
//-->
</script>
<?php
if (isset($_GET['id'])) {
$id = $_GET['id'];
if (isset($_GET['azione'])) {
$azione = $_GET['azione'];
$genera = 0;
switch ($azione) {
case "net_up":
$query = "UPDATE proxy_net SET attivo = 1 WHERE id = $id";
$testo = "Confermate l'abilitazione della rete?";
break;
case "net_down":
$query = "UPDATE proxy_net SET attivo = 0 WHERE id = $id";
$testo = "Confermate la disabilitazione della rete?";
break;
case "net_rm":
$query = "DELETE FROM proxy_net WHERE id = $id";
$testo = "Confermate la rimozione della rete?";
break;
case "acl_up":
$query = "UPDATE proxy_acl_list SET attivo = 1, data = NOW() WHERE id = $id";
$testo = "Confermate l'abilitazione della ACL?";
break;
case "acl_down":
$query = "UPDATE proxy_acl_list SET attivo = 0, data = NOW() WHERE id = $id";
$testo = "Confermate la disabilitazione della ACL?";
break;
case "link_up":
$query = "UPDATE proxy_acl SET attivo = 1, data = NOW() WHERE id = $id";
$testo = "Confermate l'abilitazione dell'URL?";
break;
case "link_down":
$query = "UPDATE proxy_acl SET attivo = 0, data = NOW() WHERE id = $id";
$testo = "Confermate la disabilitazione dell'URL?";
break;
case "link_rm":
$query = "DELETE FROM proxy_acl WHERE id = $id";
$testo = "Confermate la cancellazione dell'URL?";
break;
case "pool_ins":
$query = "INSERT INTO proxy_pool (ip, pool, attivo, ins) VALUES ('$id', 1, 1, NOW()) ON DUPLICATE KEY UPDATE attivo = 1";
$testo = "Confermate l'inserimento dell'indirizzo IP nel pool di limitazione?";
$genera = 1;
break;
case "pool_rem":
$query = "INSERT INTO proxy_pool (ip, pool, attivo, ins) VALUES ('$id', 1, 0, NOW()) ON DUPLICATE KEY UPDATE attivo = 0";
$testo = "Confermate la rimozione dell'indirizzo IP dal pool di limitazione?";
$genera = 1;
break;
case "user_up":
$query = "UPDATE proxy_utenti SET attivo = 1 WHERE id = $id";
$testo = "Confermate l'abilitazione dell'utente?";
break;
case "user_down":
$query = "UPDATE proxy_utenti SET attivo = 0 WHERE id = $id";
$testo = "Confermate la disabilitazione dell'utente?";
break;
case "user_rm":
$query = "DELETE FROM proxy_utenti WHERE id = $id";
$testo = "Confermate la cancellazione dell'utente?";
break;
default:
$testo = "Regola non implementata";
break;
}
if (isset($_GET['ref'])) {
$ref = pack ('H*', $_GET['ref']);
mysql_query( $query, $DB_ID );
if ($genera) genera($DB_ID);
?>
<script type="text/javascript">
document.location.href="<?php print $ref ?>"
</script>
<?php } else {
$ref = unpack ('H*', $_SERVER["HTTP_REFERER"]);
?>
<script type="text/javascript">
var r = confirm("<?php print $testo ?>");
if (r == true) {
document.location.href="<?php print $_SERVER['REQUEST_URI']?>&ref=<?php print $ref[1] ?>"
} else {
document.location.href="<?php print $_SERVER['HTTP_REFERER']?>"
}
</script>
<?php }
}
}
?>
<?php
function genera ($DB_ID) {
$file = 'squid_acl/listip';
$fp = fopen($file, 'w');
$query = "SELECT ip FROM proxy_pool WHERE attivo = 1 AND pool = 1";
$res = mysql_query( $query, $DB_ID );
while ($dato = mysql_fetch_array ( $res )) {
fwrite($fp, $dato['ip']."\n");
}
fclose($fp);
exec ("sudo /opt/squid/sbin/squid -k reconfigure");
remote ($DB_ID);
}
function remote ($DB_ID) {
$query = " SELECT
host,
port,
usr,
pwd,
path,
command
FROM
proxy_remote
WHERE
attivo = 1
";
$res = mysql_query( $query, $DB_ID );
while ($dato = mysql_fetch_array ( $res )) {
$connection = ssh2_connect($dato['host'], $dato['port']);
ssh2_auth_password($connection, $dato['usr'], $dato['pwd']);
ssh2_scp_send($connection, 'squid_acl/listip', $dato['path'].'/listip', 0644);
$stream = ssh2_exec($connection, $dato['command']);
}
}
?>