Files
pannello/firewall/firewall_gest.php
Claudio Maffioletti e1d86de73c Fix vari
2017-05-29 11:29:56 +02:00

186 lines
5.4 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 "macchina_rm":
$query = "DELETE FROM firewall_macchine WHERE id = $id";
$testo = "Confermate la rimozione della macchina da quelle disponibili?";
break;
case "macchina_up":
$query = "UPDATE firewall_macchine SET attivo = 1 WHERE id = $id";
$testo = "Confermate l'attivazione della macchina?";
break;
case "macchina_down":
$query = "UPDATE firewall_macchine SET attivo = 0 WHERE id = $id";
$testo = "Confermate la disattivazione della macchina?";
break;
case "macchina_ext_rm":
$query = "DELETE FROM firewall_macchine_ext WHERE id = $id";
$testo = "Confermate la rimozione della macchina da quelle disponibili?";
break;
case "macchina_ext_up":
$query = "UPDATE firewall_macchine_ext SET attivo = 1 WHERE id = $id";
$testo = "Confermate l'attivazione della macchina?";
break;
case "macchina_ext_down":
$query = "UPDATE firewall_macchine_ext SET attivo = 0 WHERE id = $id";
$testo = "Confermate la disattivazione della macchina?";
break;
case "regolaext_rm":
$query = "DELETE FROM firewall_versoesterno WHERE id = $id";
$testo = "Confermate la rimozione della regola da quelle disponibili?";
break;
case "regolaext_up":
$query = "UPDATE firewall_versoesterno SET attivo = 1 WHERE id = $id";
$testo = "Confermate l'attivazione della regola?";
break;
case "regolaext_down":
$query = "UPDATE firewall_versoesterno SET attivo = 0 WHERE id = $id";
$testo = "Confermate la disattivazione della regola?";
break;
case "regolaversoext_rm":
$query = "DELETE FROM firewall_versoesterno_regole WHERE id = $id";
$testo = "Confermate la rimozione della regola da quelle disponibili?";
break;
case "regolaversoext_up":
$query = "UPDATE firewall_versoesterno_regole SET attivo = 1 WHERE id = $id";
$testo = "Confermate l'attivazione della regola?";
break;
case "regolaversoext_down":
$query = "UPDATE firewall_versoesterno_regole SET attivo = 0 WHERE id = $id";
$testo = "Confermate la disattivazione della regola?";
break;
case "vpn_rm":
$query = "DELETE FROM firewall_vpn WHERE id = $id";
$testo = "Confermate la rimozione della regola da quelle disponibili?";
break;
case "vpn_up":
$query = "UPDATE firewall_vpn SET attivo = 1 WHERE id = $id";
$testo = "Confermate l'attivazione della regola?";
break;
case "vpn_down":
$query = "UPDATE firewall_vpn SET attivo = 0 WHERE id = $id";
$testo = "Confermate la disattivazione della regola?";
break;
case "regolaint_rm":
$query = "DELETE FROM firewall_versointerno WHERE id = $id";
$testo = "Confermate la rimozione della regola da quelle disponibili?";
break;
case "regolaint_up":
$query = "UPDATE firewall_versointerno SET attivo = 1 WHERE id = $id";
$testo = "Confermate l'attivazione della regola?";
break;
case "regolaint_down":
$query = "UPDATE firewall_versointerno SET attivo = 0 WHERE id = $id";
$testo = "Confermate la disattivazione della regola?";
break;
case "regolaversoint_rm":
$query = "DELETE FROM firewall_versointerno_regole WHERE id = $id";
$testo = "Confermate la rimozione della regola da quelle disponibili?";
break;
case "regolaversoint_up":
$query = "UPDATE firewall_versointerno_regole SET attivo = 1 WHERE id = $id";
$testo = "Confermate l'attivazione della regola?";
break;
case "regolaversoint_down":
$query = "UPDATE firewall_versointerno_regole SET attivo = 0 WHERE id = $id";
$testo = "Confermate la disattivazione della regola?";
break;
default:
$testo = "Regola non implementata";
break;
}
//print $query;
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']);
}
}
?>