diff options
Diffstat (limited to 'config/states-summary/diag_states_summary.php')
-rw-r--r-- | config/states-summary/diag_states_summary.php | 161 |
1 files changed, 0 insertions, 161 deletions
diff --git a/config/states-summary/diag_states_summary.php b/config/states-summary/diag_states_summary.php deleted file mode 100644 index 973c2630..00000000 --- a/config/states-summary/diag_states_summary.php +++ /dev/null @@ -1,161 +0,0 @@ -<?php -/* - diag_states_summary.php - Copyright (C) 2010 Jim Pingle - - Portions borrowed from diag_dump_states.php: - Copyright (C) 2005-2009 Scott Ullrich - Copyright (C) 2005 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. -*/ - -exec("/sbin/pfctl -s state", $states); - -$srcipinfo = array(); -$dstipinfo = array(); -$allipinfo = array(); -$pairipinfo = array(); - -function addipinfo(&$iparr, $ip, $proto, $srcport, $dstport) { - $iparr[$ip]['seen']++; - $iparr[$ip]['protos'][$proto]['seen']++; - if (!empty($srcport)) { - $iparr[$ip]['protos'][$proto]['srcports'][$srcport]++; - } - if (!empty($dstport)) { - $iparr[$ip]['protos'][$proto]['dstports'][$dstport]++; - } -} - -$row = 0; -if(count($states) > 0) { - foreach($states as $line) { - $line_split = preg_split("/\s+/", $line); - $type = array_shift($line_split); - $proto = array_shift($line_split); - $state = array_pop($line_split); - $info = implode(" ", $line_split); - - /* break up info and extract $srcip and $dstip */ - $ends = preg_split("/\<?-\>?/", $info); - - if (strpos($info, '->') === FALSE) { - $srcinfo = $ends[count($ends) - 1]; - $dstinfo = $ends[0]; - } else { - $srcinfo = $ends[0]; - $dstinfo = $ends[count($ends) - 1]; - } - - $parts = split(":", $srcinfo); - $srcip = trim($parts[0]); - $srcport = trim($parts[1]); - - $parts = split(":", $dstinfo); - $dstip = trim($parts[0]); - $dstport = trim($parts[1]); - - addipinfo($srcipinfo, $srcip, $proto, $srcport, $dstport); - addipinfo($dstipinfo, $dstip, $proto, $srcport, $dstport); - addipinfo($pairipinfo, "{$srcip} -> {$dstip}", $proto, $srcport, $dstport); - - addipinfo($allipinfo, $srcip, $proto, $srcport, $dstport); - addipinfo($allipinfo, $dstip, $proto, $srcport, $dstport); - - } -} - -function sort_by_ip($a, $b) { - return sprintf("%u", ip2long($a)) < sprintf("%u", ip2long($b)) ? -1 : 1; -} - -function build_port_info($portarr, $proto) { - $ports = array(); - asort($portarr); - foreach (array_reverse($portarr, TRUE) as $port => $count) { - $str = ""; - $service = getservbyport($port, strtolower($proto)); - $port = "{$proto}/{$port}"; - if ($service) - $port = "{$port} ({$service})"; - $ports[] = "{$port}: {$count}"; - } - return implode($ports, ', '); -} - -function print_summary_table($label, $iparr, $sort = TRUE) { ?> - -<h3><?php echo $label; ?></h3> -<table class="tabcont" width="100%" border="0" cellspacing="0" cellpadding="0"> - <tr> - <td class="listhdrr">IP</td> - <td class="listhdrr"># States</td> - <td class="listhdrr">Proto</td> - <td class="listhdrr"># States</td> - <td class="listhdrr">Src Ports</td> - <td class="listhdrr">Dst Ports</td> - </tr> -<?php if ($sort) - uksort($iparr, "sort_by_ip"); - foreach($iparr as $ip => $ipinfo) { ?> - <tr> - <td class='vncell'><?php echo $ip; ?></td> - <td class='vncell'><?php echo $ipinfo['seen']; ?></td> - <td class='vncell'> </td> - <td class='vncell'> </td> - <td class='vncell'> </td> - <td class='vncell'> </td> - </tr> - <?php foreach($ipinfo['protos'] as $proto => $protoinfo) { ?> - <tr> - <td class='list'> </td> - <td class='list'> </td> - <td class='listlr'><?php echo $proto; ?></td> - <td class='listr' align="center"><?php echo $protoinfo['seen']; ?></td> - <td class='listr' align="center"><span title="<?php echo build_port_info($protoinfo['srcports'], $proto); ?>"><?php echo count($protoinfo['srcports']); ?></span></td> - <td class='listr' align="center"><span title="<?php echo build_port_info($protoinfo['dstports'], $proto); ?>"><?php echo count($protoinfo['dstports']); ?></span></td> - </tr> - <?php } ?> -<?php } ?> - -</table> - -<? -} - -$pgtitle = "Diagnostics: State Table Summary"; -require_once("guiconfig.inc"); -include("head.inc"); -include("fbegin.inc"); -?> -<p class="pgtitle"><?=$pgtitle?></font></p> - -<? -print_summary_table("By Source IP", $srcipinfo); -print_summary_table("By Destination IP", $dstipinfo); -print_summary_table("Total per IP", $allipinfo); -print_summary_table("By IP Pair", $pairipinfo, FALSE); -?> - -<?php include("fend.inc"); ?> |