diff options
author | Scott Ullrich <sullrich@pfsense.org> | 2008-02-17 00:15:21 +0000 |
---|---|---|
committer | Scott Ullrich <sullrich@pfsense.org> | 2008-02-17 00:15:21 +0000 |
commit | 03dfcbc7a147bfaa0d4bd2477cee118791d8dc7b (patch) | |
tree | 339c8fa7a83b5fffb81708491110d7c238f287d6 | |
parent | e1aea2cda04d9c99759946c845a5cdf1100bbaa0 (diff) | |
download | pfsense-03dfcbc7a147bfaa0d4bd2477cee118791d8dc7b.zip pfsense-03dfcbc7a147bfaa0d4bd2477cee118791d8dc7b.tar.gz |
Importing OpenVPN status page form m0n0wall.
-rw-r--r-- | usr/local/www/status_ovpn.php | 122 |
1 files changed, 122 insertions, 0 deletions
diff --git a/usr/local/www/status_ovpn.php b/usr/local/www/status_ovpn.php new file mode 100644 index 0000000..1aee1a6 --- /dev/null +++ b/usr/local/www/status_ovpn.php @@ -0,0 +1,122 @@ +#!/usr/local/bin/php +<?php +/* + HEAD + status_ovpn.php + part of m0n0wall (http://m0n0.ch/wall) + + Copyright (C) 2003-2005 Manuel Kasper <mk@neon1.net>. + Copyright (C) 2005-2006 Peter Allgeyer <allgeyer@web.de>. + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, + OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. +*/ + +$pgtitle = array("Status", "OpenVPN"); +require("guiconfig.inc"); + +$client_list = array(); +$virtip_list = array(); + +function dump_log($type) { + global $g, $config; + + unset($client_list); + $client_list = array(); + + unset($virtip_list); + $virtip_list = array(); + + $max = ($type == 'tun') ? 17 : 4; + for ($i = 0; $i < $max; $i++) { + if (file_exists("/var/log/openvpn_{$type}{$i}.log")) { + + unset($string); + unset($logarr); + + exec("/bin/cat /var/log/openvpn_{$type}{$i}.log", $logarr); + + foreach ($logarr as $logent) { + $logent = preg_split("/,/", $logent, 5); + $string = preg_split("/:/", $logent[1]); + + /* search for ip address in second column */ + if (isset($string[0]) && is_ipaddr($string[0])) + array_push($client_list, $logent); + + /* search for ip address in first column */ + else if (is_ipaddr($logent[0])) + array_push($virtip_list, $logent); + } + } + } + + if (count($client_list > 1)) { + foreach ($client_list as $cent) { + echo "<tr>\n"; + echo "<td class=\"listlr\" nowrap>" . htmlspecialchars($cent[0]) . "</td>\n"; + echo "<td class=\"listr\">" . htmlspecialchars($cent[1]) . "</td>\n"; + + unset($found); + if (isset($virtip_list)) { + foreach ($virtip_list as $vent) { + if ($cent[1] == $vent[2]) { + $found = 1; + echo "<td class=\"listr\">" . htmlspecialchars($vent[0]) . " </td>\n"; + } + } + } + if (!isset($found)) + echo "<td class=\"listr\" align=\"center\">--</td>\n"; + + $date = preg_split("/\s+/", $cent[4]); + echo "<td nowrap class=\"listr\">" . htmlspecialchars($date[1]) . " " . htmlspecialchars($date[2]) . " " . htmlspecialchars($date[3]) . "</td>\n"; + echo "<td class=\"listr\">" . htmlspecialchars($cent[2]) . "</td>\n"; + echo "<td class=\"listr\">" . htmlspecialchars($cent[3]) . "</td>\n"; + echo "</tr>\n"; + } + } +} + +?> +<?php include("fbegin.inc"); ?> +<table width="100%" border="0" cellpadding="0" cellspacing="0"><tr> + <td colspan="6" class="listtopic"> + OpenVPN server status entries</td> + </tr> + <tr> + <td class="listhdrr">Common Name</td> + <td class="listhdrr">Real Address</td> + <td class="listhdrr">Virtual Address</td> + <td class="listhdrr">Connected Since</td> + <td class="listhdrr">Bytes Received</td> + <td class="listhdr">Bytes Sent</td> + </tr> + <?php dump_log(tun); ?> + <?php dump_log(tap); ?> +</table> +<br> +<strong class="red">Note:<br> +</strong>Please note that status entries are updated once every minute only. +So don't bother about entries on this page being possibly too old! +<?php include("fend.inc"); ?> + |