diff --git a/src/etc/inc/filter.inc b/src/etc/inc/filter.inc index 88a4434a9..f2945a92f 100644 --- a/src/etc/inc/filter.inc +++ b/src/etc/inc/filter.inc @@ -92,25 +92,6 @@ function filter_rules_sort() } } -function filter_pflog_start($verbose = false) -{ - if ($verbose) { - echo 'Starting PFLOG...'; - flush(); - } - - killbypid('/var/run/filterlog.pid', 'TERM', true); - - /* enable permanent promiscuous mode to avoid dmesg noise */ - mwexec('/sbin/ifconfig pflog0 promisc'); - - mwexec('/usr/local/sbin/filterlog -i pflog0 -p /var/run/filterlog.pid'); - - if ($verbose) { - echo "done.\n"; - } -} - function filter_configure() { /* @@ -282,12 +263,13 @@ function filter_configure_sync($verbose = false, $load_aliases = true) if (substr($ifcfg['if'], 0, 4) != 'ovpn' && !empty($ifcfg['gateway'])) { foreach (array(500, null) as $dstport) { $rule = array( - "interface" => $intf, - "dstport" => $dstport, - "staticnatport" => !empty($dstport), - "destination" => array("any" => true), - "ipprotocol" => 'inet', - "descr" => "Automatic outbound rule" + 'descr' => 'Automatic outbound rule', + 'destination' => array('any' => true), + 'dstport' => $dstport, + 'interface' => $intf, + 'ipprotocol' => 'inet', + 'log' => !empty($config['syslog']['logoutboundnat']), + 'staticnatport' => !empty($dstport), ); foreach ($intfv4 as $network) { $rule['source'] = array("network" => $network); @@ -544,10 +526,20 @@ function filter_configure_sync($verbose = false, $load_aliases = true) } if ($verbose) { - echo "done.\n"; + echo '.'; + flush(); } - filter_pflog_start($verbose); + /* enable permanent promiscuous mode to avoid dmesg noise */ + mwexec('/sbin/ifconfig pflog0 promisc'); + + /* bring up new instance of filterlog to load new rules */ + killbypid('/var/run/filterlog.pid', 'TERM', true); + mwexec('/usr/local/sbin/filterlog -i pflog0 -p /var/run/filterlog.pid'); + + if ($verbose) { + echo "done.\n"; + } unlock($filterlck); } diff --git a/src/www/diag_logs_settings.php b/src/www/diag_logs_settings.php index 9df516a08..866f8c1da 100644 --- a/src/www/diag_logs_settings.php +++ b/src/www/diag_logs_settings.php @@ -65,6 +65,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'GET') { $pconfig['logdefaultpass'] = empty($config['syslog']['nologdefaultpass']); $pconfig['logbogons'] = empty($config['syslog']['nologbogons']); $pconfig['logprivatenets'] = empty($config['syslog']['nologprivatenets']); + $pconfig['logoutboundnat'] = !empty($config['syslog']['logoutboundnat']); $pconfig['loglighttpd'] = empty($config['syslog']['nologlighttpd']); $pconfig['disablelocallogging'] = isset($config['syslog']['disablelocallogging']); } elseif ($_SERVER['REQUEST_METHOD'] === 'POST') { @@ -110,10 +111,12 @@ if ($_SERVER['REQUEST_METHOD'] === 'GET') { $oldnologbogons = isset($config['syslog']['nologbogons']); $oldnologprivatenets = isset($config['syslog']['nologprivatenets']); $oldnologlighttpd = isset($config['syslog']['nologlighttpd']); + $oldlogoutboundnat = isset($config['syslog']['logoutboundnat']); $config['syslog']['nologdefaultblock'] = empty($pconfig['logdefaultblock']); $config['syslog']['nologdefaultpass'] = empty($pconfig['logdefaultpass']); $config['syslog']['nologbogons'] = empty($pconfig['logbogons']); $config['syslog']['nologprivatenets'] = empty($pconfig['logprivatenets']); + $config['syslog']['logoutboundnat'] = !empty($pconfig['logoutboundnat']); $config['syslog']['nologlighttpd'] = empty($pconfig['loglighttpd']); write_config(); @@ -123,6 +126,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'GET') { if (($oldnologdefaultblock !== isset($config['syslog']['nologdefaultblock'])) || ($oldnologdefaultpass !== isset($config['syslog']['nologdefaultpass'])) || ($oldnologbogons !== isset($config['syslog']['nologbogons'])) + || ($oldlogoutboundnat !== isset($config['syslog']['logoutboundnat'])) || ($oldnologprivatenets !== isset($config['syslog']['nologprivatenets']))) { filter_configure(); } @@ -134,8 +138,6 @@ if ($_SERVER['REQUEST_METHOD'] === 'GET') { configd_run('webgui restart 2', true); $savemsg .= "
" . gettext("WebGUI process is restarting."); } - - filter_pflog_start(); } } } @@ -261,6 +263,13 @@ $(document).ready(function() { + + + + /> + + +