diff options
Diffstat (limited to 'config/openvpn-status')
-rw-r--r-- | config/openvpn-status/openvpn-status.xml | 70 | ||||
-rw-r--r-- | config/openvpn-status/status_openvpn.php | 249 |
2 files changed, 0 insertions, 319 deletions
diff --git a/config/openvpn-status/openvpn-status.xml b/config/openvpn-status/openvpn-status.xml deleted file mode 100644 index cecd6952..00000000 --- a/config/openvpn-status/openvpn-status.xml +++ /dev/null @@ -1,70 +0,0 @@ -<?xml version="1.0" encoding="utf-8" ?> -<!DOCTYPE packagegui SYSTEM "../schema/packages.dtd"> -<?xml-stylesheet type="text/xsl" href="../xsl/package.xsl"?> -<packagegui> - <copyright> - <![CDATA[ -/* $Id$ */ -/* ========================================================================== */ -/* - status_openvpn.xml - part of pfSense (http://www.pfSense.com) - Copyright (C) 2010 to whom it may belong - All rights reserved. - - Based on m0n0wall (http://m0n0.ch/wall) - Copyright (C) 2003-2006 Manuel Kasper <mk@neon1.net>. - 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. - */ -/* ========================================================================== */ - ]]> - </copyright> - <description>OpenVPN Status Page</description> - <requirements>Management Port Defined in OpenVPN Config</requirements> - <faq>Currently there are no FAQ items provided.</faq> - <name>OpenVPN Status</name> - <version>1.3</version> - <title>Status: OpenVPN</title> - <menu> - <name>OpenVPN</name> - <tooltiptext></tooltiptext> - <section>Status</section> - <url>/status_openvpn.php</url> - </menu> - <additional_files_needed> - <prefix>/usr/local/www/</prefix> - <chmod>077</chmod> - <item>https://packages.pfsense.org/packages/config/openvpn-status/status_openvpn.php</item> - </additional_files_needed> - <custom_php_deinstall_command> - <![CDATA[ - $version = file_get_contents("/etc/version"); - if ($version[0] < 2) { - unlink_if_exists("/usr/local/www/status_openvpn.php"); - } - ]]> - </custom_php_deinstall_command> -</packagegui>
\ No newline at end of file diff --git a/config/openvpn-status/status_openvpn.php b/config/openvpn-status/status_openvpn.php deleted file mode 100644 index bd4178c0..00000000 --- a/config/openvpn-status/status_openvpn.php +++ /dev/null @@ -1,249 +0,0 @@ -<?php -/* - status_ovpenvpn.php - - Copyright (C) 2010 Jim Pingle - Copyright (C) 2008 Shrew Soft Inc. - - AJAX bits borrowed from diag_dump_states.php - Copyright (C) 2005 Scott Ullrich, Colin Smith - - 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 = "Status: OpenVPN"; -require("guiconfig.inc"); -require_once("vpn.inc"); -include("head.inc"); - -/* Handle AJAX */ -if($_GET['action']) { - if($_GET['action'] == "kill") { - $port = $_GET['port']; - $remipp = $_GET['remipp']; - if (!empty($port) and !empty($remipp)) { - $retval = kill_client($port, $remipp); - echo htmlentities("|{$port}|{$remipp}|{$retval}|"); - } else { - echo "invalid input"; - } - exit; - } -} - - -function kill_client($port, $remipp) { - $fp = @fsockopen("127.0.0.1", $port, $errval, $errstr, 1); - $killed = -1; - if ($fp) { - fputs($fp, "kill {$remipp}\n"); - while (!feof($fp)) { - $line = fgets($fp, 1024); - /* parse header list line */ - if (strpos($line, "INFO:")) - continue; - if (strpos($line, "UCCESS")) { - $killed = 0; - } - break; - } - fclose($fp); - } - return $killed; -} - -$servers = array(); - -$ovpnservers = $config['installedpackages']['openvpnserver']['config']; -if (is_array($ovpnservers)) { - foreach ($ovpnservers as $settings) { - - $prot = $settings['protocol']; - $port = $settings['local_port']; - - $server = array(); - $server['port'] = $settings['local_port']; - if ($settings['description']) - $server['name'] = "{$settings['description']} {$prot}:{$port}"; - else - $server['name'] = "Server {$prot}:{$port}"; - $server['conns'] = array(); - - $errval; - $errstr; - - /* open a tcp connection to the management port of each server */ - $fp = @fsockopen("127.0.0.1", $port, $errval, $errstr, 1); - if ($fp) { - - /* send our status request */ - fputs($fp, "status 2\n"); - - /* recv all response lines */ - while (!feof($fp)) { - - /* read the next line */ - $line = fgets($fp, 1024); - - /* parse header list line */ - if (strstr($line, "HEADER")) - continue; - - /* parse end of output line */ - if (strstr($line, "END")) - break; - - /* parse client list line */ - if (strstr($line, "CLIENT_LIST")) { - $list = explode(",", $line); - $conn = array(); - $conn['common_name'] = $list[1]; - $conn['remote_host'] = $list[2]; - $conn['virtual_addr'] = $list[3]; - $conn['bytes_recv'] = $list[4]; - $conn['bytes_sent'] = $list[5]; - $conn['connect_time'] = $list[6]; - $server['conns'][] = $conn; - } - } - - /* cleanup */ - fclose($fp); - } else { - $conn = array(); - $conn['common_name'] = "[error]"; - $conn['remote_host'] = "No Management Daemon"; - $conn['virtual_addr'] = "See Note Below"; - $conn['bytes_recv'] = 0; - $conn['bytes_sent'] = 0; - $conn['connect_time'] = 0; - $server['conns'][] = $conn; - } - - $servers[] = $server; - } -} ?> - -<body link="#0000CC" vlink="#0000CC" alink="#0000CC" onload="<?=$jsevents["body"]["onload"];?>"> -<script src="/javascript/sorttable.js" type="text/javascript"></script> -<script src="/javascript/scriptaculous/prototype.js" type="text/javascript"></script> -<script src="/javascript/scriptaculous/scriptaculous.js" type="text/javascript"></script> -<?php include("fbegin.inc"); ?> -<p class="pgtitle"><?php echo $pgtitle; ?></p> -<form action="status_openvpn.php" method="get" name="iform"> - -<script type="text/javascript"> - function killClient(mport, remipp) { - var busy = function(icon) { - icon.onclick = ""; - icon.src = icon.src.replace("\.gif", "_d.gif"); - icon.style.cursor = "wait"; - } - - $A(document.getElementsByName("i:" + mport + ":" + remipp)).each(busy); - - new Ajax.Request( - "<?=$_SERVER['SCRIPT_NAME'];?>" + - "?action=kill&port=" + mport + "&remipp=" + remipp, - { method: "get", onComplete: killComplete } - ); - } - - function killComplete(req) { - var values = req.responseText.split("|"); - if(values[3] != "0") { - alert('<?=gettext("An error occurred.");?>' + ' (' + values[3] + ')'); - return; - } - - $A(document.getElementsByName("r:" + values[1] + ":" + values[2])).each( - function(row) { Effect.Fade(row, { duration: 1.0 }); } - ); - } -</script> - - -<?php foreach ($servers as $server): ?> - -<table style="padding-top:0px; padding-bottom:0px; padding-left:0px; padding-right:0px" width="100%" border="0" cellpadding="0" cellspacing="0"> - <tr> - <td colspan="6" class="listtopic"> - Client connections for <?=$server['name'];?> - </td> - </tr> - <tr> - <td> - <table style="padding-top:0px; padding-bottom:0px; padding-left:0px; padding-right:0px" class="tabcont sortable" width="100%" border="0" cellpadding="0" cellspacing="0"> - <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 Sent</td> - <td class="listhdrr">Bytes Received</td> - </tr> - - <?php foreach ($server['conns'] as $conn): ?> - <tr name='<?php echo "r:{$server['port']}:{$conn['remote_host']}"; ?>'> - <td class="listlr"> - <?=$conn['common_name'];?> - </td> - <td class="listr"> - <?=$conn['remote_host'];?> - </td> - <td class="listr"> - <?=$conn['virtual_addr'];?> - </td> - <td class="listr"> - <?=$conn['connect_time'];?> - </td> - <td class="listr"> - <?=$conn['bytes_sent'];?> - </td> - <td class="listr"> - <?=$conn['bytes_recv'];?> - </td> - <td class='list'> - <img src='/themes/<?php echo $g['theme']; ?>/images/icons/icon_x.gif' height='17' width='17' border='0' - onclick="killClient('<?php echo $server['port']; ?>', '<?php echo $conn['remote_host']; ?>');" style='cursor:pointer;' - name='<?php echo "i:{$server['port']}:{$conn['remote_host']}"; ?>' - title='Kill client connection from <?php echo $conn['remote_host']; ?>' alt='' /> - </td> - </tr> - - <?php endforeach; ?> - <tr> - <td colspan="6" class="list" height="12"></td> - </tr> - - </table> - </td> - </tr> -</table> - -<?php endforeach; ?> -<br/> -<br/><b>NOTE:</b> You must enable the OpenVPN management interface for each server you want to monitor. You can do this by placing "management 127.0.0.1 <port>;" in the custom options box for the server, where <port> is the port number set for that server. - -<?php include("fend.inc"); ?> |