Files
pannello/firewall/index.php
2017-04-19 14:11:31 +02:00

305 lines
8.2 KiB
PHP
Executable File

<?php
include_once ("../core/config.php");
include_once ("firewall_library.php");
$UTENTE = login();
$DIRITTI = diritti('Utente');
view_top();
if (isset($_POST['regola'])) {
$utente = $_POST['utente'];
$modificato = 0;
$old = $new = array();
foreach ($_POST as $id => $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,30,2,5,0));
?>
<form name="" method="post">
<input type="hidden" name="utente" value="<?php print $UTENTE['id'] ?>">
<input type="hidden" name="regola" value="extint">
<tr>
<td><input type="submit" value="Applica"></td>
<td colspan="1" class="spazioh"></td>
<td colspan="3" class="descrizione_c">Regole Esterno -> Interno</td>
<td colspan="1" class="spazioh"></td>
</tr>
<?php
$tabella->riga (10);
$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
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
AND
utenti.id = ".$UTENTE['id']."
WHERE
firewall_versointerno_regole.attivo = 1
ORDER BY
firewall_versointerno.nome
";
$res = mysql_query( $query, $DB_ID );
while ($dato = mysql_fetch_array ( $res )) { ?>
<tr>
<td rowspan=2 class="textl">
<input type="hidden" name="old-<?php print $dato['id'] ?>" value="<?php print $dato['stato'] ?>">
<select name="new-<?php print $dato['id'] ?>">
<option value="0" <?php if ($dato['stato'] == 0 ) print "selected" ?>>Disattivo</option>
<option value="1" <?php if ($dato['stato'] == 1 ) print "selected" ?>>Attivo</option>
<?php if ($dato['permanente']) { ?>
<option value="2" <?php if ($dato['stato'] == 2 ) print "selected" ?>>Permanente</option>
<?php } ?>
</select>
</td>
<td rowspan=2 class="spazioh"><img src="<?php print $CONF['base_url'] ?>/img/spazio.gif"></td>
<td class="descrizione">Regola</td>
<td rowspan=2 class="spazioh"><img src="<?php print $CONF['base_url'] ?>/img/spazio.gif"></td>
<td class="radio">Perm</td>
<td rowspan=2 class="spazioh"><img src="<?php print $CONF['base_url'] ?>/img/spazio.gif"></td>
</tr>
<tr>
<td class="textl"><?php
print $dato['nome'].": ";
print $dato['utenza'];
print ":".$dato['fw_port']." -> ";
if ($dato['int_nome'] != "") {
print $dato['int_nome'];
} else {
print $dato['int_ip'];
}
print ":".$dato['fw_port']." (".$dato['proto'].")";;
?></td>
<td class="textc"><?php if ($dato['permanente']) print "Si"; else print "No"; ?></td>
</tr>
<?php
$tabella->riga (5);
} ?>
</form>
<?php $tabella->riga (30) ?>
<form name="" method="post">
<input type="hidden" name="utente" value="<?php print $UTENTE['id'] ?>">
<input type="hidden" name="regola" value="intext">
<tr>
<td><input type="submit" value="Applica"></td>
<td colspan="1" class="spazioh"></td>
<td colspan="3" class="descrizione_c">Regole Interno -> Esterno</td>
<td colspan="1" class="spazioh"></td>
</tr>
<?php
$tabella->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
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
AND
utenti.id = ".$UTENTE['id']."
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 )) {
?>
<tr>
<td rowspan=2 class="textl">
<input type="hidden" name="old-<?php print $dato['id'] ?>" value="<?php print $dato['stato'] ?>">
<select name="new-<?php print $dato['id'] ?>">
<option value="0" <?php if ($dato['stato'] == 0 ) print "selected" ?>>Disattivo</option>
<option value="1" <?php if ($dato['stato'] == 1 ) print "selected" ?>>Attivo</option>
<?php if ($dato['permanente']) { ?>
<option value="2" <?php if ($dato['stato'] == 2 ) print "selected" ?>>Permanente</option>
<?php } ?>
</select>
</td>
<td rowspan=2 class="spazioh"><img src="<?php print $CONF['base_url'] ?>/img/spazio.gif"></td>
<td class="descrizione">Regola</td>
<td rowspan=2 class="spazioh"><img src="<?php print $CONF['base_url'] ?>/img/spazio.gif"></td>
<td class="radio">Perm</td>
<td rowspan=2 class="spazioh"><img src="<?php print $CONF['base_url'] ?>/img/spazio.gif"></td>
</tr>
<tr>
<td class="textl"><?php
print $dato['nome'].": ";
if ($dato['int_nome'] != "") {
print $dato['int_nome'];
} else {
print $dato['int_ip'];
}
print ":".$dato['int_port']." -> ";
if ($dato['ext_nome'] != "") {
print $dato['ext_nome'];
} else {
print $dato['ext_ip'];
}
print ":".$dato['ext_port']." (".$dato['proto'].")";;
?></td>
<td class="textc"><?php if ($dato['permanente']) print "Si"; else print "No"; ?></td>
</tr>
<?php
$tabella->riga (5);
} ?>
</form>
<?php
$tabella->close ();
view_footer();
?>