diff options
author | Scott Ullrich <sullrich@pfsense.org> | 2010-06-10 17:49:59 -0400 |
---|---|---|
committer | Scott Ullrich <sullrich@pfsense.org> | 2010-06-10 17:49:59 -0400 |
commit | 7afae53f105c72240c50541f49bd7a1d9a6a84f3 (patch) | |
tree | d1e79c5693d6d29d78cfd3d60435059a541f50ce | |
parent | 2a63a07f3e25d25e8d6e33b554ce08ba5056bad2 (diff) | |
download | pfsense-7afae53f105c72240c50541f49bd7a1d9a6a84f3.zip pfsense-7afae53f105c72240c50541f49bd7a1d9a6a84f3.tar.gz |
Adding option to show the PF overload tables (sshlockout, virusprot) and the ability to delete individual or all entries
-rw-r--r-- | usr/local/www/diag_overload_tables.php | 138 | ||||
-rwxr-xr-x | usr/local/www/fbegin.inc | 1 |
2 files changed, 139 insertions, 0 deletions
diff --git a/usr/local/www/diag_overload_tables.php b/usr/local/www/diag_overload_tables.php new file mode 100644 index 0000000..702f977 --- /dev/null +++ b/usr/local/www/diag_overload_tables.php @@ -0,0 +1,138 @@ +<?php +/* + diag_overload_tables.php + Copyright (C) 2010 Jim Pingle + + Portions borrowed from diag_dump_states.php: + Copyright (C) 2010 Scott Ullrich + 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. +*/ + +/* + pfSense_BUILDER_BINARIES: /sbin/pfctl + pfSense_MODULE: filter +*/ + +##|+PRIV +##|*IDENT=page-diagnostics-tables +##|*NAME=Diagnostics: States Summary page +##|*DESCR=Allow access to the 'Diagnostics: States Summary' page. +##|*MATCH=diag_overload_tables.php* +##|-PRIV + +$pgtitle = array("Diagnostics", "Overload tables"); + +require_once("guiconfig.inc"); + +// Set default table +$tablename = "sshlockout"; + +if($_REQUEST['type'] == "sshlockout") + $tablename = "sshlockout"; + +if($_REQUEST['type'] == "virusprot") + $tablename = "virusprot"; + +if($_REQUEST['delete']) { + if(is_ipaddr($_REQUEST['delete'])) { + exec("/sbin/pfctl -t " . escapeshellarg($_REQUEST['type']) . " -T delete " . escapeshellarg($_REQUEST['delete']), $delete); + echo htmlentities($_REQUEST['delete']); + } + exit; +} + +if($_REQUEST['deleteall']) { + exec("/sbin/pfctl -t $tablename -T show", $entries); + if(is_array($entries)) { + foreach($entries as $entryA) { + $entry = trim($entryA); + exec("/sbin/pfctl -t " . escapeshellarg($tablename) . " -T delete " . escapeshellarg($entry), $delete); + } + } +} + +exec("/sbin/pfctl -t $tablename -T show", $entries); + +include("head.inc"); +include("fbegin.inc"); + +?> + +<form method='post'> +<script src="/javascript/scriptaculous/prototype.js" type="text/javascript"></script> + +<script language="javascript"> + function method_change(entrytype) { + window.location='diag_overload_tables.php?type=' + entrytype; + } + function del_entry(entry) { + new Ajax.Request("diag_overload_tables.php?type=<?php echo $tablename;?>&delete=" + entry, { + onComplete: function(response) { + if (200 == response.status) + new Effect.Fade($(response.responseText), { duration: 1.0 } ); + } + }); + } +</script> + +Table: +<select id='type' onChange='method_change($F("type"));' name='type'> + <option name='<?=$tablename?>' value='<?=$tablename?>'><?=$tablename?></option> + <option name='virusprot' value='virusprot'>virusprot</option> + <option name='sshlockout' value='sshlockout'>sshlockout</option> +</select> + +<p/> + +<table class="tabcont" width="100%" border="0" cellspacing="0" cellpadding="0"> + <tr> + <td class="listhdrr">IP Address</td> + </tr> +<?php $count = 0; foreach($entries as $entryA): ?> + <?php $entry = trim($entryA); ?> + <tr id='<?=$entry?>'> + <td> + <?php echo $entry; ?> + </td> + <td> + <a onClick='del_entry("<?=$entry?>");'> + <img img src="/themes/<?=$g['theme'];?>/images/icons/icon_x.gif"> + </a> + </td> + </tr> +<?php $count++; endforeach; ?> +<?php + if($count == 0) + echo "<tr><td>No entries exist in this table.</td></tr>"; +?> + +</table> + +<?php + if($count > 0) + echo "<p/>Delete <a href='diag_overload_tables.php?deleteall=true&type={$tablename}'>all</a> entries in this table;" + +?> + +<?php include("fend.inc"); ?> diff --git a/usr/local/www/fbegin.inc b/usr/local/www/fbegin.inc index acdd9b8..dfcc69a 100755 --- a/usr/local/www/fbegin.inc +++ b/usr/local/www/fbegin.inc @@ -187,6 +187,7 @@ $diagnostics_menu[] = array("DNS Lookup", "/diag_dns.php"); $diagnostics_menu[] = array("Edit File", "/edit.php"); $diagnostics_menu[] = array("Factory Defaults", "/diag_defaults.php"); $diagnostics_menu[] = array("Halt System", "/halt.php" ); +$diagnostics_menu[] = array("Overload tables", "/diag_overload_tables.php"); $diagnostics_menu[] = array("Ping", "/diag_ping.php"); $diagnostics_menu[] = array("pfTOP", "/diag_system_pftop.php"); $diagnostics_menu[] = array("Reboot", "/reboot.php"); |