From 17402c638d800441a16db7b5f5c2b8a373b9abca Mon Sep 17 00:00:00 2001 From: Ermal Date: Mon, 18 Aug 2014 22:33:38 +0200 Subject: Correct the ipsec status pages to show proper information as needed. --- usr/local/www/diag_ipsec.php | 55 ++++++++++++++++++++++++++++------------ usr/local/www/diag_ipsec_spd.php | 13 ---------- 2 files changed, 39 insertions(+), 29 deletions(-) (limited to 'usr/local') diff --git a/usr/local/www/diag_ipsec.php b/usr/local/www/diag_ipsec.php index ad6c463..33b0c85 100644 --- a/usr/local/www/diag_ipsec.php +++ b/usr/local/www/diag_ipsec.php @@ -52,16 +52,16 @@ require("guiconfig.inc"); include("head.inc"); require("ipsec.inc"); -if ($_GET['act'] == "connect") { - if (is_ipaddrv4($_GET['remoteid']) && is_ipaddrv4($_GET['source'])) { - exec("/sbin/ping -S " . escapeshellarg($_GET['source']) . " -c 1 " . escapeshellarg($_GET['remoteid'])); +if ($_GET['act'] == 'connect') { + if (ctype_digit($_GET['ikeid'])) { + mwexec("/usr/local/sbin/ipsec down con" . escapeshellarg($_GET['ikeid'])); + mwexec("/usr/local/sbin/ipsec up con" . escapeshellarg($_GET['ikeid'])); } - else if (is_ipaddrv6($_GET['remoteid']) && is_ipaddrv6($_GET['source'])) { - exec("/sbin/ping6 -S " . escapeshellarg($_GET['source']) . " -c 1 " . escapeshellarg($_GET['remoteid'])); +} else if ($_GET['act'] == 'ikedisconnect') { + if (ctype_digit($_GET['ikeid'])) { + mwexec("/usr/local/sbin/ipsec down con" . escapeshellarg($_GET['ikeid'])); } -} - -if ($_GET['act'] == "disconnect") { +} else if ($_GET['act'] == 'disconnect') { if (!empty($_GET['user'])) { ipsec_disconnect_mobile($_GET['user']); sleep(1); @@ -107,23 +107,31 @@ $status = ipsec_smp_dump_status(); + $ikesa) { + if (ipsec_phase1_status($status['query']['ikesalist']['ikesa'], $ikesa['id'])) { + $icon = "pass"; + } elseif(!isset($config['ipsec']['enable'])) { + $icon = "block"; + } else { + $icon = "reject"; + } ?> - + ' . htmlspecialchars($ikesa['local']['spi']); + echo htmlspecialchars($ikesa['local']['identification']); else echo 'Unknown'; } @@ -137,7 +145,7 @@ $status = ipsec_smp_dump_status(); echo htmlspecialchars($ikesa['local']['address']) . ':' . htmlspecialchars($ikesa['local']['port']); else echo 'Unknown'; - if ($ikesa['local']['nat']) + if ($ikesa['local']['nat'] != 'false') echo " NAT-T"; } ?> @@ -147,7 +155,7 @@ $status = ipsec_smp_dump_status(); echo "Unknown"; else { if (!empty($ikesa['remote']['identification'])) - echo htmlspecialchars($ikesa['remote']['identification']) . '
' . htmlspecialchars($ikesa['remote']['spi']); + echo htmlspecialchars($ikesa['remote']['identification']); else echo 'Unknown'; } @@ -161,7 +169,7 @@ $status = ipsec_smp_dump_status(); echo htmlspecialchars($ikesa['remote']['address']) . ':' . htmlspecialchars($ikesa['remote']['port']); else echo 'Unknown'; - if ($ikesa['remote']['nat']) + if ($ikesa['remote']['nat'] != 'false') echo " NAT-T"; } ?> @@ -170,10 +178,25 @@ $status = ipsec_smp_dump_status(); - +
+ +
+
- -   + + +
+ + Connect VPN + +
+ +
+ + Disconnect VPN + +
+ diff --git a/usr/local/www/diag_ipsec_spd.php b/usr/local/www/diag_ipsec_spd.php index 0a01565..3c854af 100644 --- a/usr/local/www/diag_ipsec_spd.php +++ b/usr/local/www/diag_ipsec_spd.php @@ -50,16 +50,6 @@ $pgtitle = array(gettext("Status"),gettext("IPsec"),gettext("SPD")); $shortcut_section = "ipsec"; include("head.inc"); -/* delete any SP? */ -if ($_GET['act'] == "del") { - $fd = @popen("/sbin/setkey -c > /dev/null 2>&1", "w"); - if ($fd) { - fwrite($fd, "spddelete {$_GET['srcid']} {$_GET['dstid']} any -P {$_GET['dir']} ;\n"); - pclose($fd); - sleep(1); - } -} - $spd = ipsec_dump_spd(); ?> @@ -106,9 +96,6 @@ $spd = ipsec_dump_spd(); $args .= "&dstid=".rawurlencode($sp['dstid']); $args .= "&dir=".rawurlencode($sp['dir']); ?> - ')"> - delete - -- cgit v1.1