$reqdfieldsn = array(gettext("Zone name"));
    do_input_validation($_POST, $reqdfields, $reqdfieldsn, &$input_errors);
    foreach ($a_cp as $cpkey => $cpent) {
        if ($cpent['zone'] == $_POST['zone']) {
            $input_errors[] = sprintf("[%s] %s.", $_POST['zone'], gettext("already exists"));
            break;
        }
    }
    if (!$input_errors) {
        $cpzone = strtolower($_POST['zone']);
        $a_cp[$cpzone] = array();
        $a_cp[$cpzone]['zone'] = str_replace(" ", "", $_POST['zone']);
        $a_cp[$cpzone]['descr'] = $_POST['descr'];
        write_config();
        /* make sure ipfw is loaded */
        if (!is_module_loaded("ipfw.ko")) {
            filter_load_ipfw();
        }
        mwexec("/usr/local/sbin/ipfw_context -a {$cpzone}", true);
        header("Location: services_captiveportal.php?zone={$cpzone}");
        exit;
    }
}
include "head.inc";
include "fbegin.inc";
?>
<body link="#0000CC" vlink="#0000CC" alink="#0000CC">
<?php 
if ($input_errors) {
    print_input_errors($input_errors);
}
        if ($_POST['disablescrub'] == "yes") {
            $config['system']['disablescrub'] = $_POST['disablescrub'];
        } else {
            unset($config['system']['disablescrub']);
        }
        if ($_POST['tftpinterface']) {
            $config['system']['tftpinterface'] = implode(",", $_POST['tftpinterface']);
        } else {
            unset($config['system']['tftpinterface']);
        }
        write_config();
        /* 
         * XXX: This is a kludge here but its the better place than on every filter reload.
         * NOTE: This is only for setting the ipfw state limits. 
         */
        if ($_POST['maximumstates'] && is_numeric($_POST['maximumstates']) && is_module_loaded("ipfw.ko")) {
            filter_load_ipfw();
        }
        $retval = 0;
        $retval = filter_configure();
        if (stristr($retval, "error") != true) {
            $savemsg = get_std_save_message($retval);
        } else {
            $savemsg = $retval;
        }
    }
}
$pgtitle = array(gettext("System"), gettext("Advanced: Firewall and NAT"));
include "head.inc";
?>
     $ip['bw_down'] = $_POST['bw_down'];
 }
 if (isset($id) && $a_allowedips[$id]) {
     $oldip = $a_allowedips[$id]['ip'];
     if (!empty($a_allowedips[$id]['sn'])) {
         $oldmask = $a_allowedips[$id]['sn'];
     } else {
         $oldmask = 32;
     }
     $a_allowedips[$id] = $ip;
 } else {
     $a_allowedips[] = $ip;
 }
 allowedips_sort();
 write_config();
 if (isset($a_cp[$cpzone]['enable']) && is_module_loaded("ipfw.ko")) {
     $rules = "";
     $cpzoneid = $a_cp[$cpzone]['zoneid'];
     unset($ipfw);
     if (isset($oldip) && isset($oldmask)) {
         $ipfw = pfSense_ipfw_getTablestats($cpzoneid, IP_FW_TABLE_XLISTENTRY, 3, $oldip);
         $rules .= "table 3 delete {$oldip}/{$oldmask}\n";
         $rules .= "table 4 delete {$oldip}/{$oldmask}\n";
         if (is_array($ipfw)) {
             $rules .= "pipe delete {$ipfw['dnpipe']}\n";
             $rules .= "pipe delete " . ($ipfw['dnpipe'] + 1 . "\n");
         }
     }
     $rules .= captiveportal_allowedip_configure_entry($ip);
     if (is_array($ipfw)) {
         captiveportal_free_dn_ruleno($ipfw['dnpipe']);
Exemplo n.º 4
0
function execCmds()
{
    global $commands;
    for ($i = 0; isset($commands[$i]); $i++) {
        doCmdT($commands[$i][0], $commands[$i][1]);
    }
}
global $g, $config;
/* Set up all of the commands we want to execute. */
defCmdT("System uptime", "uptime");
defCmdT("Interfaces", "/sbin/ifconfig -a");
defCmdT("PF Info", "/sbin/pfctl -s info");
defCmdT("Routing tables", "netstat -nr");
defCmdT("top | head -n5", "/usr/bin/top | /usr/bin/head -n5");
defCmdT("sysctl hw.physmem", "/sbin/sysctl hw.physmem");
if (is_module_loaded('ipfw')) {
    defCmdT('ipfw queue show', '/sbin/ipfw queue show');
    defCmdT('ipfw pipe show', '/sbin/ipfw pipe show');
    defCmdT('ipfw show', '/sbin/ipfw show');
}
defCmdT("pfctl -sn", "/sbin/pfctl -sn");
defCmdT("pfctl -sr", "/sbin/pfctl -sr");
defCmdT("pfctl -ss", "/sbin/pfctl -ss");
defCmdT("pfctl -si", "/sbin/pfctl -si");
defCmdT("pfctl -sa", "/sbin/pfctl -sa");
defCmdT("pfctl -s rules -vv", "/sbin/pfctl -s rules -vv");
defCmdT("pfctl -s queue -v", "/sbin/pfctl -s queue -v");
defCmdT("pfctl -s nat -v", "/sbin/pfctl -s nat -v");
defCmdT("PF OSFP", "/sbin/pfctl -s osfp");
defCmdT("netstat -s -ppfsync", "netstat -s -ppfsync");
defCmdT("pfctl -vsq", "/sbin/pfctl -vsq");