コード例 #1
0
function processQueues($altqstats, $level, $parent_name)
{
    global $g;
    global $if_queue_list;
    $parent_name = $parent_name . " queuerow" . $altqstats['name'] . $altqstats['interface'];
    $prev_if = $altqstats['interface'];
    foreach ($altqstats['queue'] as $q) {
        $if_name = "";
        foreach ($if_queue_list as $oif => $real_name) {
            if ($oif == $q['interface']) {
                $if_name = $real_name;
                break;
            }
        }
        if ($prev_if != $q['interface']) {
            echo "<tr><td colspan=\"8\"><b>Interface " . htmlspecialchars(convert_real_interface_to_friendly_descr($q['interface'])) . "</b></td></tr>\n";
            $prev_if = $q['interface'];
        }
        ?>
		<tr class="<?php 
        echo $parent_name;
        ?>
">
			<td class="<?php 
        echo $row_class;
        ?>
" style="padding-left:<?php 
        echo $level * 20;
        ?>
px;">
				<?php 
        if (is_array($q['queue'])) {
            echo "<a href=\"#\" onclick=\"StatsShowHide('queuerow{$q['name']}{$q['interface']}');return false\">+/-</a>";
        }
        if (strstr($q['name'], "root_")) {
            echo "<a href=\"firewall_shaper.php?interface={$if_name}&amp;queue={$if_name}&amp;action=show\">Root queue</a>";
        } else {
            echo "<a href=\"firewall_shaper.php?interface={$if_name}&amp;queue={$q['name']}&amp;action=show\">" . htmlspecialchars($q['name']) . "</a>";
        }
        ?>
			</td>
<?php 
        $cpuUsage = 0;
        print '<td>';
        print '<div class="progress" style="height: 7px;width: 170px;">';
        print '		<div class="progress-bar" role="progressbar" id="queue' . $q['name'] . $q['interface'] . 'width" aria-valuenow="70" aria-valuemin="0" aria-valuemax="100" style="width: ' . $cpuUsage * 100 . '%;\\"></div>';
        print '	  </div>';
        print '</td>';
        print '<td><input readonly style="border:0;width:70px;text-align:right;" name="queue' . $q['name'] . $q['interface'] . 'pps"      id="queue' . $q['name'] . $q['interface'] . 'pps"      value="(' . gettext("Loading") . ')" /></td>';
        print '<td><input readonly style="border:0;width:80px;text-align:right;" name="queue' . $q['name'] . $q['interface'] . 'bps"      id="queue' . $q['name'] . $q['interface'] . 'bps"      value="" /></td>';
        print '<td><input readonly style="border:0;width:70px;text-align:right;" name="queue' . $q['name'] . $q['interface'] . 'borrows"  id="queue' . $q['name'] . $q['interface'] . 'borrows"  value="" /></td>';
        print '<td><input readonly style="border:0;width:70px;text-align:right;" name="queue' . $q['name'] . $q['interface'] . 'suspends" id="queue' . $q['name'] . $q['interface'] . 'suspends" value="" /></td>';
        print '<td><input readonly style="border:0;width:70px;text-align:right;" name="queue' . $q['name'] . $q['interface'] . 'drops"    id="queue' . $q['name'] . $q['interface'] . 'drops"    value="" /></td>';
        print '<td><input readonly style="border:0;width:70px;text-align:right;" name="queue' . $q['name'] . $q['interface'] . 'length"   id="queue' . $q['name'] . $q['interface'] . 'length"   value="" /></td>';
        ?>
		</tr>
<?php 
        if (is_array($q['queue'])) {
            processQueues($q, $level + 1, $parent_name);
        }
    }
}
コード例 #2
0
ファイル: status_queues.php プロジェクト: OptimWIFI/pfsense
function processQueues($altqstats, $level, $parent_name)
{
    global $g;
    global $if_queue_list;
    $gray_value = 190 + $level * 10;
    if ($gray_value > 250) {
        $gray_value = 255;
    }
    $row_background = str_repeat(dechex($gray_value), 3);
    $parent_name = $parent_name . " queuerow" . $altqstats['name'] . $altqstats['interface'];
    $prev_if = $altqstats['interface'];
    foreach ($altqstats['queue'] as $q) {
        $if_name = "";
        foreach ($if_queue_list as $oif => $real_name) {
            if ($oif == $q['interface']) {
                $if_name = $real_name;
                break;
            }
        }
        if ($prev_if != $q['interface']) {
            echo "<tr><td colspan=\"8\" style=\"padding: 2px;\"><b>Interface " . htmlspecialchars(convert_real_interface_to_friendly_descr($q['interface'])) . "</b></td></tr>";
            $prev_if = $q['interface'];
        }
        ?>
		<tr class="<?php 
        echo $parent_name;
        ?>
">
			<td bgcolor="#<?php 
        echo $row_background;
        ?>
" style="padding-left: <?php 
        echo $level * 20;
        ?>
px;">
				<font color="#000000">
					<?php 
        if (strstr($q['name'], "root_")) {
            echo "<a href=\"firewall_shaper.php?interface={$if_name}&amp;queue={$if_name}&amp;action=show\">Root queue</a>";
        } else {
            echo "<a href=\"firewall_shaper.php?interface={$if_name}&amp;queue={$q['name']}&amp;action=show\">" . htmlspecialchars($q['name']) . "</a>";
        }
        ?>
				</font>
			</td>
			<?php 
        $cpuUsage = 0;
        echo "<td class=\"nowrap\" width=\"1%\" bgcolor=\"#{$row_background}\">";
        echo "<img src='./themes/" . $g['theme'] . "/images/misc/bar_left.gif' height='10' width='4' border='0' align='middle' alt='' />";
        echo "<img src='./themes/" . $g['theme'] . "/images/misc/bar_blue.gif' height='10' name='queue{$q['name']}{$q['interface']}widtha' id='queue{$q['name']}{$q['interface']}widtha' width='" . $cpuUsage . "' border='0' align='middle' alt='" . htmlspecialchars($q['name']) . "' />";
        echo "<img src='./themes/" . $g['theme'] . "/images/misc/bar_gray.gif' height='10' name='queue{$q['name']}{$q['interface']}widthb' id='queue{$q['name']}{$q['interface']}widthb' width='" . (150 - $cpuUsage) . "' border='0' align='middle' alt='" . htmlspecialchars($q['name']) . "' />";
        echo "<img src='./themes/" . $g['theme'] . "/images/misc/bar_right.gif' height='10' width='5' border='0' align='middle' alt='' /> ";
        if (is_array($q['queue'])) {
            echo "<a href=\"#\" onclick=\"StatsShowHide('queuerow{$q['name']}{$q['interface']}');return false\">+/-</a> ";
        }
        echo " </td>";
        echo "<td width=\"1%\" bgcolor=\"#{$row_background}\"><input style='border: 0px solid white; background-color:#{$row_background}; color:#000000;width:70px;text-align:right;' size='10' name='queue{$q['name']}{$q['interface']}pps' id='queue{$q['name']}{$q['interface']}pps' value='(" . gettext("Loading") . ")' align='left' /></td>";
        echo "<td width=\"1%\" bgcolor=\"#{$row_background}\"><input style='border: 0px solid white; background-color:#{$row_background}; color:#000000;width:80px;text-align:right;' size='10' name='queue{$q['name']}{$q['interface']}bps' id='queue{$q['name']}{$q['interface']}bps' value='' align='right' /></td>";
        echo "<td width=\"1%\" bgcolor=\"#{$row_background}\"><input style='border: 0px solid white; background-color:#{$row_background}; color:#000000;width:70px;text-align:right;' size='10' name='queue{$q['name']}{$q['interface']}borrows' id='queue{$q['name']}{$q['interface']}borrows' value='' align='right' /></td>";
        echo "<td width=\"1%\" bgcolor=\"#{$row_background}\"><input style='border: 0px solid white; background-color:#{$row_background}; color:#000000;width:70px;text-align:right;' size='10' name='queue{$q['name']}{$q['interface']}suspends' id='queue{$q['name']}{$q['interface']}suspends' value='' align='right' /></td>";
        echo "<td width=\"1%\" bgcolor=\"#{$row_background}\"><input style='border: 0px solid white; background-color:#{$row_background}; color:#000000;width:70px;text-align:right;' size='10' name='queue{$q['name']}{$q['interface']}drops' id='queue{$q['name']}{$q['interface']}drops' value='' align='right' /></td>";
        echo "<td width=\"1%\" bgcolor=\"#{$row_background}\"><input style='border: 0px solid white; background-color:#{$row_background}; color:#000000;width:70px;text-align:right;' size='10' name='queue{$q['name']}{$q['interface']}length' id='queue{$q['name']}{$q['interface']}length' value='' align='right' /></td>";
        ?>
		</tr>
		<?php 
        if (is_array($q['queue'])) {
            processQueues($q, $level + 1, $parent_name);
        }
    }
}
コード例 #3
0
<?php 
$row = 0;
/* get our states */
$grepline = isset($_POST['filter']) ? "| /usr/bin/egrep " . escapeshellarg(htmlspecialchars($_POST['filter'])) : "";
$fd = popen("/sbin/pfctl -s state {$grepline}", "r");
while ($line = chop(fgets($fd))) {
    if ($row >= 10000) {
        break;
    }
    $line_split = preg_split("/\\s+/", $line);
    $iface = array_shift($line_split);
    $proto = array_shift($line_split);
    $state = array_pop($line_split);
    $info = implode(" ", $line_split);
    // We may want to make this optional, with a large state table, this could get to be expensive.
    $iface = convert_real_interface_to_friendly_descr($iface);
    /* break up info and extract $srcip and $dstip */
    $ends = preg_split("/\\<?-\\>?/", $info);
    $parts = explode(":", $ends[0]);
    $srcip = trim($parts[0]);
    $parts = explode(":", $ends[count($ends) - 1]);
    $dstip = trim($parts[0]);
    ?>
		<tr>
			<td><?php 
    echo $iface;
    ?>
</td>
			<td><?php 
    echo $proto;
    ?>
コード例 #4
0
ファイル: status_queues.php プロジェクト: michaeleino/pfsense
function processQueues($altqstats, $level, $parent_name)
{
    global $g;
    global $if_queue_list;
    $gray_value = 190 + $level * 10;
    if ($gray_value > 250) {
        $gray_value = 255;
    }
    $row_background = str_repeat(dechex($gray_value), 3);
    $parent_name = $parent_name . " queuerow" . $altqstats['name'] . $altqstats['interface'];
    $prev_if = $altqstats['interface'];
    foreach ($altqstats['queue'] as $q) {
        $if_name = "";
        foreach ($if_queue_list as $oif => $real_name) {
            if ($oif == $q['interface']) {
                $if_name = $real_name;
                break;
            }
        }
        if ($prev_if != $q['interface']) {
            echo "<tr><td><b>Interface " . htmlspecialchars(convert_real_interface_to_friendly_descr($q['interface'])) . "</b></td></tr>";
            $prev_if = $q['interface'];
        }
        ?>
		<tr class="<?php 
        echo $parent_name;
        ?>
">
			<td bgcolor="#<?php 
        echo $row_background;
        ?>
" style="padding-left: <?php 
        echo $level * 20;
        ?>
px;">
				<font color="#000000">
					<?php 
        if (is_array($q['queue'])) {
            echo "<a href=\"#\" onclick=\"StatsShowHide('queuerow{$q['name']}{$q['interface']}');return false\">+/-</a> ";
        }
        if (strstr($q['name'], "root_")) {
            echo "<a href=\"firewall_shaper.php?interface={$if_name}&amp;queue={$if_name}&amp;action=show\">Root queue</a>";
        } else {
            echo "<a href=\"firewall_shaper.php?interface={$if_name}&amp;queue={$q['name']}&amp;action=show\">" . htmlspecialchars($q['name']) . "</a>";
        }
        ?>
				</font>
			</td>
<?php 
        $cpuUsage = 0;
        echo "<td bgcolor=\"#{$row_background}\">";
        echo "<div class='progress' style='height: 7px;width: 170px;'>\n\t\t\t\t<div class='progress-bar' role='progressbar' name='queue{$q['name']}{$q['interface']}width' id='queue{$q['name']}{$q['interface']}width' aria-valuenow='70' aria-valuemin='0' aria-valuemax='100' style='width: " . $cpuUsage * 100 . "%;'></div>\n\t\t\t  </div>";
        echo " </td>";
        echo "<td bgcolor=\"#{$row_background}\"><input style='border: 0px solid white; background-color:#{$row_background}; color:#000000;width:70px;text-align:right;' size='10' name='queue{$q['name']}{$q['interface']}pps' id='queue{$q['name']}{$q['interface']}pps' value='(" . gettext("Loading") . ")' align='left' /></td>";
        echo "<td bgcolor=\"#{$row_background}\"><input style='border: 0px solid white; background-color:#{$row_background}; color:#000000;width:80px;text-align:right;' size='10' name='queue{$q['name']}{$q['interface']}bps' id='queue{$q['name']}{$q['interface']}bps' value='' align='right' /></td>";
        echo "<td bgcolor=\"#{$row_background}\"><input style='border: 0px solid white; background-color:#{$row_background}; color:#000000;width:70px;text-align:right;' size='10' name='queue{$q['name']}{$q['interface']}borrows' id='queue{$q['name']}{$q['interface']}borrows' value='' align='right' /></td>";
        echo "<td bgcolor=\"#{$row_background}\"><input style='border: 0px solid white; background-color:#{$row_background}; color:#000000;width:70px;text-align:right;' size='10' name='queue{$q['name']}{$q['interface']}suspends' id='queue{$q['name']}{$q['interface']}suspends' value='' align='right' /></td>";
        echo "<td bgcolor=\"#{$row_background}\"><input style='border: 0px solid white; background-color:#{$row_background}; color:#000000;width:70px;text-align:right;' size='10' name='queue{$q['name']}{$q['interface']}drops' id='queue{$q['name']}{$q['interface']}drops' value='' align='right' /></td>";
        echo "<td bgcolor=\"#{$row_background}\"><input style='border: 0px solid white; background-color:#{$row_background}; color:#000000;width:70px;text-align:right;' size='10' name='queue{$q['name']}{$q['interface']}length' id='queue{$q['name']}{$q['interface']}length' value='' align='right' /></td>";
        ?>
		</tr>
<?php 
        if (is_array($q['queue'])) {
            processQueues($q, $level + 1, $parent_name);
        }
    }
}
コード例 #5
0
ファイル: firewall_nat_out.php プロジェクト: Toudix/core
 /* mutually exclusive settings - if user wants advanced NAT, we don't generate automatic rules */
 if ($_POST['mode'] == "advanced" && ($mode == "automatic" || $mode == "hybrid")) {
     /*
      *    user has enabled advanced outbound NAT and doesn't have rules
      *    lets automatically create entries
      *    for all of the interfaces to make life easier on the pip-o-chap
      */
     if (empty($GatewaysList)) {
         filter_generate_gateways();
     }
     $tonathosts = filter_nat_rules_automatic_tonathosts(true);
     $automatic_rules = filter_nat_rules_outbound_automatic("");
     foreach ($tonathosts as $tonathost) {
         foreach ($automatic_rules as $natent) {
             $natent['source']['network'] = $tonathost['subnet'];
             $natent['descr'] .= sprintf(gettext(' - %1$s to %2$s'), $tonathost['descr'], convert_real_interface_to_friendly_descr($natent['interface']));
             $natent['created'] = make_config_revision_entry(null, gettext("Manual Outbound NAT Switch"));
             /* Try to detect already auto created rules and avoid duplicate them */
             $found = false;
             foreach ($a_out as $rule) {
                 if ($rule['interface'] == $natent['interface'] && $rule['source']['network'] == $natent['source']['network'] && $rule['dstport'] == $natent['dstport'] && $rule['target'] == $natent['target'] && $rule['descr'] == $natent['descr']) {
                     $found = true;
                     break;
                 }
             }
             if ($found === false) {
                 $a_out[] = $natent;
             }
         }
     }
     $savemsg = gettext("Default rules for each interface have been created.");
コード例 #6
0
ファイル: status_queues.php プロジェクト: calvinbui/pfsense
function processQueues($altqstats, $level, $parent_name)
{
    global $g;
    global $if_queue_list;
    $gray_value = 190 + $level * 10;
    if ($gray_value > 250) {
        $gray_value = 255;
    }
    $row_background = str_repeat(dechex($gray_value), 3);
    $parent_name = $parent_name . " queuerow" . $altqstats['name'] . $altqstats['interface'];
    $prev_if = $altqstats['interface'];
    foreach ($altqstats['queue'] as $q) {
        $if_name = "";
        foreach ($if_queue_list as $oif => $real_name) {
            if ($oif == $q['interface']) {
                $if_name = $real_name;
                break;
            }
        }
        if ($prev_if != $q['interface']) {
            echo "<tr><td colspan=\"8\"><b>Interface " . htmlspecialchars(convert_real_interface_to_friendly_descr($q['interface'])) . "</b></td></tr>\n";
            $prev_if = $q['interface'];
        }
        ?>
		<tr class="<?php 
        echo $parent_name;
        ?>
">
			<td style="background-color:#<?php 
        echo $row_background;
        ?>
;padding-left:<?php 
        echo $level * 20;
        ?>
px;">
				<?php 
        if (is_array($q['queue'])) {
            echo "<a href=\"#\" onclick=\"StatsShowHide('queuerow{$q['name']}{$q['interface']}');return false\">+/-</a>";
        }
        if (strstr($q['name'], "root_")) {
            echo "<a href=\"firewall_shaper.php?interface={$if_name}&amp;queue={$if_name}&amp;action=show\">Root queue</a>";
        } else {
            echo "<a href=\"firewall_shaper.php?interface={$if_name}&amp;queue={$q['name']}&amp;action=show\">" . htmlspecialchars($q['name']) . "</a>";
        }
        ?>
			</td>
<?php 
        $cpuUsage = 0;
        echo "<td style=\"background-color:#{$row_background}\" >";
        echo "<div class=\"progress\" style=\"height: 7px;width: 170px;\">\n\t\t\t\t<div class=\"progress-bar\" role=\"progressbar\" id=\"queue{$q['name']}{$q['interface']}width\" aria-valuenow=\"70\" aria-valuemin=\"0\" aria-valuemax=\"100\" style=\"width: " . $cpuUsage * 100 . "%;\"></div>\n\t\t\t  </div>";
        echo "</td>";
        echo "<td style=\"background-color:#{$row_background}\"><input style=\"border:0;width:70px;text-align:right;\" size=\"10\" name=\"queue{$q['name']}{$q['interface']}pps\" id=\"queue{$q['name']}{$q['interface']}pps\" value=\"(" . gettext("Loading") . ")\" /></td>";
        echo "<td style=\"background-color:#{$row_background}\"><input style=\"border:0;width:80px;text-align:right;\" size=\"10\" name=\"queue{$q['name']}{$q['interface']}bps\" id=\"queue{$q['name']}{$q['interface']}bps\" value=\"\" /></td>";
        echo "<td style=\"background-color:#{$row_background}\"><input style=\"border:0;width:70px;text-align:right;\" size=\"10\" name=\"queue{$q['name']}{$q['interface']}borrows\" id=\"queue{$q['name']}{$q['interface']}borrows\" value=\"\" /></td>";
        echo "<td style=\"background-color:#{$row_background}\"><input style=\"border:0;width:70px;text-align:right;\" size=\"10\" name=\"queue{$q['name']}{$q['interface']}suspends\" id=\"queue{$q['name']}{$q['interface']}suspends\" value=\"\" /></td>";
        echo "<td style=\"background-color:#{$row_background}\"><input style=\"border:0;width:70px;text-align:right;\" size=\"10\" name=\"queue{$q['name']}{$q['interface']}drops\" id=\"queue{$q['name']}{$q['interface']}drops\" value=\"\" /></td>";
        echo "<td style=\"background-color:#{$row_background}\"><input style=\"border:0;width:70px;text-align:right;\" size=\"10\" name=\"queue{$q['name']}{$q['interface']}length\" id=\"queue{$q['name']}{$q['interface']}length\" value=\"\" /></td>";
        ?>
		</tr>
<?php 
        if (is_array($q['queue'])) {
            processQueues($q, $level + 1, $parent_name);
        }
    }
}
コード例 #7
0
ファイル: vnstati.php プロジェクト: MarkVLK/pfsense-packages
<?php

require_once "guiconfig.inc";
global $config;
include "head.inc";
include "fbegin.inc";
$aaaa = $config['installedpackages']['vnstat2']['config'][0]['vnstat_interface'];
$cccc = convert_real_interface_to_friendly_descr($aaaa);
$pgtitle = gettext("Vnstati info for {$cccc} ({$aaaa})");
echo "<a href={$myurl}/pkg_edit.php?xml=vnstati.xml&id=0>Go Back</a><br />";
echo "<center><p class=\"pgtitle\">{$pgtitle}</p>";
?>
<center><img src="vnstat2_img.php?image=newpicture1.png" style="border:1px solid black; center;"><br />
<center><img src="vnstat2_img.php?image=newpicture2.png" style="border:1px solid black; center;"><br />
<center><img src="vnstat2_img.php?image=newpicture3.png" style="border:1px solid black; center;"><br />
<center><img src="vnstat2_img.php?image=newpicture4.png" style="border:1px solid black; center;"><br />
<?php 
include "fend.inc";
?>

コード例 #8
0
function conv_log_filter_lite($logfile, $nentries, $tail, $pfbdenycnt, $pfbpermitcnt, $pfbmatchcnt)
{
    global $pfb, $rule_list, $filterfieldsarray;
    $fields_array = array();
    $logarr = "";
    $denycnt = 0;
    $permitcnt = 0;
    $matchcnt = 0;
    if (file_exists($logfile)) {
        exec("/usr/local/sbin/clog " . escapeshellarg($logfile) . " | grep -v \"CLOG\" | grep -v \"\" | /usr/bin/grep 'filterlog:' | /usr/bin/tail -r -n {$tail}", $logarr);
    } else {
        return;
    }
    if (!empty($logarr) && !empty($rule_list['id'])) {
        foreach ($logarr as $logent) {
            $pfbalert = array();
            $log_split = "";
            if (!preg_match("/(.*)\\s(.*)\\sfilterlog:\\s(.*)\$/", $logent, $log_split)) {
                continue;
            }
            list($all, $pfbalert[99], $host, $rule) = $log_split;
            $rule_data = explode(",", $rule);
            $pfbalert[0] = $rule_data[0];
            // Rulenum
            // Skip Alert if Rule is not a pfBNG Alert
            if (!in_array($pfbalert[0], $rule_list['id'])) {
                continue;
            }
            $pfbalert[1] = $rule_data[4];
            // Realint
            $pfbalert[3] = $rule_data[6];
            // Act
            $pfbalert[4] = $rule_data[8];
            // Version
            if ($pfbalert[4] == "4") {
                $pfbalert[5] = $rule_data[15];
                // Protocol ID
                $pfbalert[6] = $rule_data[16];
                // Protocol
                $pfbalert[7] = $rule_data[18];
                // SRC IP
                $pfbalert[8] = $rule_data[19];
                // DST IP
                $pfbalert[9] = $rule_data[20];
                // SRC Port
                $pfbalert[10] = $rule_data[21];
                // DST Port
                $pfbalert[11] = $rule_data[23];
                // TCP Flags
            } else {
                $pfbalert[5] = $rule_data[13];
                // Protocol ID
                $pfbalert[6] = $rule_data[12];
                // Protocol
                $pfbalert[7] = $rule_data[15];
                // SRC IP
                $pfbalert[8] = $rule_data[16];
                // DST IP
                $pfbalert[9] = $rule_data[17];
                // SRC Port
                $pfbalert[10] = $rule_data[18];
                // DST Port
                $pfbalert[11] = $rule_data[20];
                // TCP Flags
            }
            if ($pfbalert[5] == "6" || $pfbalert[5] == "17") {
                // skip
            } else {
                $pfbalert[9] = "";
                $pfbalert[10] = "";
                $pfbalert[11] = "";
            }
            // Skip Repeated Alerts
            if ($pfbalert[1] . $pfbalert[3] . $pfbalert[7] . $pfbalert[8] . $pfbalert[10] == $previous_alert) {
                continue;
            }
            $pfbalert[2] = convert_real_interface_to_friendly_descr($rule_data[4]);
            // Friendly Interface Name
            $pfbalert[6] = str_replace("TCP", "TCP-", strtoupper($pfbalert[6]), $pfbalert[6]) . $pfbalert[11];
            // Protocol Flags
            // If Alerts Filtering is selected, process Filters as required.
            if ($pfb['filterlogentries'] && !pfb_match_filter_field($pfbalert, $filterfieldsarray)) {
                continue;
            }
            if ($pfbalert[3] == "block") {
                if ($denycnt < $pfbdenycnt) {
                    $fields_array['Deny'][] = $pfbalert;
                    $denycnt++;
                }
            } elseif ($pfbalert[3] == "pass") {
                if ($permitcnt < $pfbpermitcnt) {
                    $fields_array['Permit'][] = $pfbalert;
                    $permitcnt++;
                }
            } elseif ($pfbalert[3] == "unkn(%u)" || $pfbalert[3] == "unkn(11)") {
                if ($matchcnt < $pfbmatchcnt) {
                    $fields_array['Match'][] = $pfbalert;
                    $matchcnt++;
                }
            }
            // Exit function if Sufficinet Matches found.
            if ($denycnt >= $pfbdenycnt && $permitcnt >= $pfbpermitcnt && $matchcnt >= $pfbmatchcnt) {
                unset($pfbalert, $logarr);
                return $fields_array;
            }
            // Collect Details for Repeated Alert Comparison
            $previous_alert = $pfbalert[1] . $pfbalert[3] . $pfbalert[7] . $pfbalert[8] . $pfbalert[10];
        }
        unset($pfbalert, $logarr);
        return $fields_array;
    }
}
コード例 #9
0
    $dstip = get_ip($res[$i]['dst']);
    if ($res[$i]['src-orig']) {
        $info .= " (" . $res[$i]['src-orig'] . ")";
    }
    $info .= " -> ";
    $info .= $res[$i]['dst'];
    if ($res[$i]['dst-orig']) {
        $info .= " (" . $res[$i]['dst-orig'] . ")";
        $killdstip = get_ip($res[$i]['dst-orig']);
    } else {
        $killdstip = $dstip;
    }
    ?>
					<tr>
						<td><?php 
    echo convert_real_interface_to_friendly_descr($res[$i]['if']);
    ?>
</td>
						<td><?php 
    echo $res[$i]['proto'];
    ?>
</td>
						<td><?php 
    echo $info;
    ?>
</td>
						<td><?php 
    echo $res[$i]['state'];
    ?>
</td>
						<td><?php 
コード例 #10
0
function conv_log_filter_lite($logfile, $nentries, $tail, $pfbdenycnt, $pfbpermitcnt, $pfbmatchcnt)
{
    global $pfb, $rule_list, $filterfieldsarray;
    $fields_array = array();
    $denycnt = $permitcnt = $matchcnt = 0;
    $logarr = '';
    if (file_exists($logfile)) {
        // Collect filter.log entries
        exec("/usr/local/sbin/clog {$logfile} | {$pfb['grep']} -v '\"CLOG\"\\|\"\"' | {$pfb['grep']} 'filterlog:' | /usr/bin/tail -r -n {$tail}", $logarr);
    } else {
        return;
    }
    if (!empty($logarr) && !empty($rule_list['id'])) {
        foreach ($logarr as $logent) {
            $pfbalert = array();
            $flog = explode(' ', $logent);
            // Remove 'extra space' from single date entry (days 1-9)
            if (empty($flog[1])) {
                array_splice($flog, 1, 1);
            }
            $rule_data = explode(',', $flog[5]);
            // Skip alert if rule is not a pfBNG alert
            if (!in_array($rule_data[3], $rule_list['id'])) {
                continue;
            }
            $pfbalert[0] = $rule_data[3];
            // Rulenum
            $pfbalert[1] = $rule_data[4];
            // Realint
            $pfbalert[3] = $rule_data[6];
            // Act
            $pfbalert[4] = $rule_data[8];
            // Version
            if ($pfbalert[4] == 4) {
                $pfbalert[5] = $rule_data[15];
                // Protocol ID
                $pfbalert[6] = $rule_data[16];
                // Protocol
                $pfbalert[7] = $rule_data[18];
                // SRC IP
                $pfbalert[8] = $rule_data[19];
                // DST IP
                $pfbalert[9] = $rule_data[20];
                // SRC Port
                $pfbalert[10] = $rule_data[21];
                // DST Port
                $pfbalert[11] = $rule_data[23];
                // TCP Flags
            } else {
                $pfbalert[5] = $rule_data[13];
                // Protocol ID
                $pfbalert[6] = $rule_data[12];
                // Protocol
                $pfbalert[7] = $rule_data[15];
                // SRC IP
                $pfbalert[8] = $rule_data[16];
                // DST IP
                $pfbalert[9] = $rule_data[17];
                // SRC Port
                $pfbalert[10] = $rule_data[18];
                // DST Port
                $pfbalert[11] = $rule_data[20];
                // TCP Flags
            }
            if ($pfbalert[5] == 6 || $pfbalert[5] == 17) {
                // skip
            } else {
                $pfbalert[9] = $pfbalert[10] = $pfbalert[11] = '';
            }
            $pfbalert[99] = "{$flog[0]} {$flog[1]} {$flog[2]}";
            // Date/Timestamp
            // Skip repeated alerts
            if ("{$pfbalert[1]}{$pfbalert[3]}{$pfbalert[7]}{$pfbalert[8]}{$pfbalert[10]}" == $previous_alert) {
                continue;
            }
            $pfbalert[2] = convert_real_interface_to_friendly_descr($rule_data[4]);
            // Friendly Interface Name
            $pfbalert[6] = str_replace('TCP', 'TCP-', strtoupper($pfbalert[6]), $pfbalert[6]) . $pfbalert[11];
            // Protocol Flags
            // If alerts filtering is selected, process filters as required.
            if ($pfb['filterlogentries'] && !pfb_match_filter_field($pfbalert, $filterfieldsarray)) {
                continue;
            }
            if ($pfbalert[3] == 'block') {
                if ($denycnt < $pfbdenycnt) {
                    $fields_array['Deny'][] = $pfbalert;
                    $denycnt++;
                }
            } elseif ($pfbalert[3] == 'pass') {
                if ($permitcnt < $pfbpermitcnt) {
                    $fields_array['Permit'][] = $pfbalert;
                    $permitcnt++;
                }
            } elseif ($pfbalert[3] == 'unkn(%u)') {
                if ($matchcnt < $pfbmatchcnt) {
                    $fields_array['Match'][] = $pfbalert;
                    $matchcnt++;
                }
            }
            // Exit function if sufficinet matches found.
            if ($denycnt >= $pfbdenycnt && $permitcnt >= $pfbpermitcnt && $matchcnt >= $pfbmatchcnt) {
                unset($pfbalert, $logarr);
                return $fields_array;
            }
            // Collect details for repeated alert comparison
            $previous_alert = "{$pfbalert[1]}{$pfbalert[3]}{$pfbalert[7]}{$pfbalert[8]}{$pfbalert[10]}";
        }
        unset($pfbalert, $logarr);
        return $fields_array;
    }
}
コード例 #11
0
ファイル: firewall_nat_out.php プロジェクト: noikiy/core-2
 /*
  *    user has enabled advanced outbound NAT and doesn't have rules
  *    lets automatically create entries
  *    for all of the interfaces to make life easier on the pip-o-chap
  */
 if (empty($GatewaysList)) {
     filter_generate_gateways();
 }
 /* XXX cranky low-level call, please refactor */
 $FilterIflist = filter_generate_optcfg_array();
 $tonathosts = filter_nat_rules_automatic_tonathosts($FilterIflist, true);
 $automatic_rules = filter_nat_rules_outbound_automatic($FilterIflist, '');
 foreach ($tonathosts as $tonathost) {
     foreach ($automatic_rules as $natent) {
         $natent['source']['network'] = $tonathost['subnet'];
         $natent['descr'] .= ' - ' . $tonathost['descr'] . ' -> ' . convert_real_interface_to_friendly_descr($natent['interface']);
         $natent['created'] = make_config_revision_entry(null, gettext("Manual Outbound NAT Switch"));
         /* Try to detect already auto created rules and avoid duplicate them */
         $found = false;
         foreach ($a_out as $rule) {
             // initialize optional values
             if (!isset($rule['dstport'])) {
                 $rule['dstport'] = "";
             }
             if (!isset($natent['dstport'])) {
                 $natent['dstport'] = "";
             }
             //
             if ($rule['interface'] == $natent['interface'] && $rule['source']['network'] == $natent['source']['network'] && $rule['dstport'] == $natent['dstport'] && $rule['target'] == $natent['target'] && $rule['descr'] == $natent['descr']) {
                 $found = true;
                 break;
コード例 #12
0
</th>
						<th><?php 
echo gettext("Description");
?>
</th>
						<th><?php 
echo gettext("Actions");
?>
</th>
					</tr>
				</thead>
				<tbody>
<?php 
foreach ($a_gres as $i => $gre) {
    if (substr($gre['if'], 0, 4) == "_vip") {
        $if = convert_real_interface_to_friendly_descr(get_real_interface($gre['if']));
    } else {
        $if = $gre['if'];
    }
    ?>
					<tr>
						<td>
							<?php 
    echo htmlspecialchars(convert_friendly_interface_to_friendly_descr($if));
    ?>
						</td>
						<td>
							<?php 
    echo htmlspecialchars($gre['remote-addr']);
    ?>
						</td>
コード例 #13
0
ファイル: status_queues.php プロジェクト: rdmenezes/pfsense
			<td class="listhdr" colspan="6"><?php 
echo gettext("Statistics");
?>
</td>
                      </tr>
                      <?php 
$i = 0;
foreach ($altqstats['queue'] as $q) {
    if (strstr($q['name'], "root_")) {
        continue;
    }
    ?>
		      <tr><td bgcolor="#DDDDDD" colspan="7">&nbsp;</td></tr>
                      <tr valign="top">
                        <td bgcolor="#DDDDDD">
                          <font color="#000000">&nbsp;&nbsp;&nbsp;<?echo "<a href=\"firewall_shaper.php?id={$q['name']}\">" . htmlspecialchars($q['name'] . " on " . convert_real_interface_to_friendly_descr($q['interface'])) . "</a>";?>&nbsp;&nbsp;&nbsp;</td>
			<td bgcolor="#DDDDDD">
			<nobr>
<?php 
    $cpuUsage = 0;
    echo "<img src='./themes/" . $g['theme'] . "/images/misc/bar_left.gif' height='10' width='4' border='0' align='absmiddle'>";
    echo "<img src='./themes/" . $g['theme'] . "/images/misc/bar_blue.gif' height='10' name='queue{$q['name']}{$q['interface']}widtha' id='queue{$q['name']}{$q['interface']}widtha' width='" . $cpuUsage . "' border='0' align='absmiddle'>";
    echo "<img src='./themes/" . $g['theme'] . "/images/misc/bar_gray.gif' height='10' name='queue{$q['name']}{$q['interface']}widthb' id='queue{$q['name']}{$q['interface']}widthb' width='" . (400 - $cpuUsage) . "' border='0' align='absmiddle'>";
    echo "<nobr><img src='./themes/" . $g['theme'] . "/images/misc/bar_right.gif' height='10' width='5' border='0' align='absmiddle'> ";
    echo "</nobr></td></tr>";
    echo "<tr><td bgcolor=\"#DDDDDD\" colspan=\"7\">";
    echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
    echo "<nobr>";
    echo "<input style='border: 0px solid white; background-color:#DDDDDD; color:#000000;' size='10' name='queue{$q['name']}{$q['interface']}pps' id='queue{$q['name']}{$q['interface']}pps' value='(" . gettext("Loading") . ")' align='left'>";
    echo "<input style='border: 0px solid white; background-color:#DDDDDD; color:#000000;' size='10' name='queue{$q['name']}{$q['interface']}bps' id='queue{$q['name']}{$q['interface']}bps' value='' align='right'>";
    echo "<input style='border: 0px solid white; background-color:#DDDDDD; color:#000000;' size='10' name='queue{$q['name']}{$q['interface']}borrows' id='queue{$q['name']}{$q['interface']}borrows' value='' align='right'>";
コード例 #14
0
		$dstip = get_ip($res[$i]['dst']);
		if ($res[$i]['src-orig']) {
			$info .= " (" . $res[$i]['src-orig'] . ")";
		}
		$info .= " -> ";
		$info .= $res[$i]['dst'];
		if ($res[$i]['dst-orig']) {
			$info .= " (" . $res[$i]['dst-orig'] . ")";
			$killdstip = get_ip($res[$i]['dst-orig']);
		} else {
			$killdstip = $dstip;
		}

?>
					<tr>
						<td><?= convert_real_interface_to_friendly_descr($res[$i]['if']) ?></td>
						<td><?= $res[$i]['proto'] ?></td>
						<td><?= $info ?></td>
						<td><?= $res[$i]['state'] ?></td>
						<td><?= format_number($res[$i]['packets in']) ?> /
						    <?= format_number($res[$i]['packets out']) ?></td>
						<td><?= format_bytes($res[$i]['bytes in']) ?> /
						    <?= format_bytes($res[$i]['bytes out']) ?></td>

						<td>
							<a class="btn fa fa-trash" data-entry="<?=$srcip?>|<?=$killdstip?>"
								title="<?=sprintf(gettext('Remove all state entries from %1$s to %2$s'), $srcip, $killdstip);?>"></a>
						</td>
					</tr>
<?
	}