diff options
author | Chris Buechler <cmb@pfsense.org> | 2015-08-16 00:00:34 -0500 |
---|---|---|
committer | Chris Buechler <cmb@pfsense.org> | 2015-08-16 00:00:34 -0500 |
commit | a63d14f745e43f66835b1bc18c0383b1f108f374 (patch) | |
tree | 188a2dd7a74b8a54c4cb848ea3dbc3bc940e89d8 /config | |
parent | c3608aae058265e7ac220817a90ca774b0c5e1e7 (diff) | |
parent | 250771d854b8fecce8e7812c44ea5d42781f6365 (diff) | |
download | pfsense-packages-a63d14f745e43f66835b1bc18c0383b1f108f374.tar.gz pfsense-packages-a63d14f745e43f66835b1bc18c0383b1f108f374.tar.bz2 pfsense-packages-a63d14f745e43f66835b1bc18c0383b1f108f374.zip |
Merge pull request #991 from doktornotor/patch-2
Diffstat (limited to 'config')
-rw-r--r-- | config/syslog-ng/syslog-ng.inc | 262 | ||||
-rw-r--r-- | config/syslog-ng/syslog-ng.xml | 97 | ||||
-rw-r--r-- | config/syslog-ng/syslog-ng_advanced.xml | 74 | ||||
-rw-r--r-- | config/syslog-ng/syslog-ng_log_viewer.php | 114 |
4 files changed, 284 insertions, 263 deletions
diff --git a/config/syslog-ng/syslog-ng.inc b/config/syslog-ng/syslog-ng.inc index 56decfad..f0c17ff1 100644 --- a/config/syslog-ng/syslog-ng.inc +++ b/config/syslog-ng/syslog-ng.inc @@ -1,8 +1,9 @@ <?php -/* $Id$ */ /* syslog-ng.inc + part of pfSense (https://www.pfSense.org/) Copyright (C) 2012 Lance Leger + Copyright (C) 2015 ESF, LLC All rights reserved. Redistribution and use in source and binary forms, with or without @@ -26,7 +27,6 @@ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - require_once('globals.inc'); require_once('config.inc'); require_once('util.inc'); @@ -34,29 +34,31 @@ require_once('pfsense-utils.inc'); require_once('pkg-utils.inc'); require_once('service-utils.inc'); -if(!function_exists("filter_configure")) +if (!function_exists("filter_configure")) { require_once("filter.inc"); +} -$pf_version=substr(trim(file_get_contents("/etc/version")),0,3); -if ($pf_version == "2.1" || $pf_version == "2.2") +$pf_version = substr(trim(file_get_contents("/etc/version")), 0, 3); +if ($pf_version == "2.1" || $pf_version == "2.2") { define("SYSLOGNG_BASEDIR", "/usr/pbi/syslog-ng-" . php_uname("m") . "/"); -else +} else { define("SYSLOGNG_BASEDIR", "/usr/local/"); +} function syslogng_get_real_interface_address($interface) { $interface = convert_friendly_interface_to_real_interface_name($interface); - $line = trim(shell_exec("ifconfig $interface | grep inet | grep -v inet6 | awk '{ print \$2, \$4 }'")); - list($ip, $netmask) = explode(" ", $line); - - return array($ip, long2ip(hexdec($netmask))); + $ip = get_interface_ip($interface); + return array($ip); } function syslogng_install_command() { conf_mount_rw(); - if (is_link("/usr/local/lib/syslog-ng")) - unlink_if_exists("/usr/local/lib/syslog-ng"); - if (!file_exists("/usr/local/lib/syslog-ng")) + if (is_link("/usr/local/lib/syslog-ng")) { + unlink("/usr/local/lib/syslog-ng"); + } + if (!file_exists("/usr/local/lib/syslog-ng")) { @symlink(SYSLOGNG_BASEDIR . "local/lib/syslog-ng", "/usr/local/lib/syslog-ng"); + } syslogng_install_cron(true); conf_mount_ro(); syslogng_resync(); @@ -64,10 +66,10 @@ function syslogng_install_command() { function syslogng_deinstall_command() { conf_mount_rw(); - exec("/usr/local/etc/rc.d/syslog-ng.sh stop"); + service_stop("syslog-ng"); unlink_if_exists("/usr/local/etc/rc.d/syslog-ng.sh"); if (is_link("/usr/local/lib/syslog-ng")) - unlink_if_exists("/usr/local/lib/syslog-ng"); + unlink("/usr/local/lib/syslog-ng"); syslogng_install_cron(false); unlink_if_exists("/usr/local/etc/logrotate.conf"); unlink_if_exists("/usr/local/etc/syslog-ng.conf"); @@ -77,88 +79,95 @@ function syslogng_deinstall_command() { function syslogng_validate_general($post, &$input_errors) { global $config; - + $objects = $config['installedpackages']['syslogngadvanced']['config']; - - if(empty($post['interfaces'])) { + + if (empty($post['interfaces'])) { $input_errors[] = 'You must select at least one interface in \'Interfaces\' field'; } else { $post['interfaces'] = implode(",", $post['interfaces']); } - - if(!is_port($post['default_port'])) + + if (!is_port($post['default_port'])) { $input_errors[] = 'You must enter a valid port number in the \'Default Port\' field'; - + } + $sockstat = trim(shell_exec("sockstat -l -P " . $post['default_protocol'] . " -p " . $post['default_port'] . " | grep -v ^USER | grep -v syslog-ng")); - if(!empty($sockstat)) + if (!empty($sockstat)) { $input_errors[] = 'The port specified in the \'Default Port\' field is already in use'; - - if(!preg_match("/^\\/[^?*:;{}\\\\]+[^\\/]$/", $post['default_logdir'])) { + } + + if (!preg_match("/^\\/[^?*:;{}\\\\]+[^\\/]$/", $post['default_logdir'])) { $input_errors[] = 'You must enter a valid directory in the \'Default Log Directory\' field'; - } elseif($post['default_logdir'] == "/var/log") { + } elseif ($post['default_logdir'] == "/var/log") { $input_errors[] = 'You must enter a valid directory in the \'Default Log Directory\' field -- /var/log is reserved for pfSense'; } - - if(!preg_match("/^[^\\/?*:;{}\\\\]+$/", $post['default_logfile'])) + + if (!preg_match("/^[^\\/?*:;{}\\\\]+$/", $post['default_logfile'])) { $input_errors[] = 'You must enter a valid file in the \'Default Log File\' field'; - + } + $default_objects = syslogng_build_default_objects($post); - - if(empty($objects)) { + + if (empty($objects)) { $objects = $default_objects; } else { $objects = syslogng_merge_objects($objects, $default_objects); } - - if($errors = syslogng_test_object_syntax($objects)) + + if ($errors = syslogng_test_object_syntax($objects)) { $input_errors[] = "Syslog-ng syntax test failed:\n" . $errors; + } } function syslogng_validate_advanced($post, &$input_errors) { global $config; - + $objects = $config['installedpackages']['syslogngadvanced']['config']; - if($post['objectname'] == '_DEFAULT') { + if ($post['objectname'] == '_DEFAULT') { $input_errors[] = 'Creation or modification of \'_DEFAULT\' objects not permitted. Change default settings under \'General\' tab.'; } - + $post['objectparameters'] = base64_encode($post['objectparameters']); $new_object[] = array("objecttype"=>$post['objecttype'], "objectname"=>$post['objectname'], "objectparameters"=>$post['objectparameters']); - - if(empty($objects)) { + + if (empty($objects)) { $objects = $new_object; } else { $objects = syslogng_merge_objects($objects, $new_object); } - - if($errors = syslogng_test_object_syntax($objects)) + + if ($errors = syslogng_test_object_syntax($objects)) { $input_errors[] = "Syslog-ng syntax test failed:\n" . $errors; + } } function syslogng_install_cron($should_install) { - global $config, $g; - - if($g['booting']==true) + global $config; + + if (platform_booting()) { return; - - if(!$config['cron']['item']) + } + + if (!$config['cron']['item']) { return; + } $x=0; $rotate_job_id=-1; $rotate_is_installed = false; - - foreach($config['cron']['item'] as $item) { - if(strstr($item['task_name'], "syslogng_rotate_logs")) { + + foreach ($config['cron']['item'] as $item) { + if (strstr($item['task_name'], "syslogng_rotate_logs")) { $rotate_job_id = $x; } $x++; } $need_write = false; - switch($should_install) { + switch ($should_install) { case true: - if($rotate_job_id < 0) { + if ($rotate_job_id < 0) { $cron_item = array(); $cron_item['task_name'] = "syslogng_rotate_logs"; $cron_item['minute'] = "0"; @@ -167,21 +176,21 @@ function syslogng_install_cron($should_install) { $cron_item['month'] = "*"; $cron_item['wday'] = "*"; $cron_item['who'] = "root"; - $cron_item['command'] = "/usr/bin/nice -n20 " . SYSLOGNG_BASEDIR . "local/sbin/logrotate /usr/local/etc/logrotate.conf"; + $cron_item['command'] = "/usr/bin/nice -n20 " . SYSLOGNG_BASEDIR . "local/sbin/logrotate /usr/local/etc/logrotate.conf"; $config['cron']['item'][] = $cron_item; $need_write = true; } - if($need_write) { + if ($need_write) { parse_config(true); write_config("Adding syslog-ng Cron Jobs"); } break; case false: - if($rotate_job_id >= 0) { + if ($rotate_job_id >= 0) { unset($config['cron']['item'][$rotate_job_id]); $need_write = true; } - if($need_write) { + if ($need_write) { parse_config(true); write_config("Removing syslog-ng Cron Jobs"); } @@ -192,17 +201,17 @@ function syslogng_install_cron($should_install) { function syslogng_build_default_objects($settings) { $default_objects = array(); - + $interfaces = $settings['interfaces']; $default_protocol = $settings['default_protocol']; $default_port = $settings['default_port']; $default_logdir = $settings['default_logdir']; $default_logfile = $settings['default_logfile']; - + $default_objects[0] = array("objecttype"=>"source", "objectname"=>"_DEFAULT", "objectparameters"=>"{ internal(); syslog(transport($default_protocol) port($default_port)"); foreach (explode(",", $interfaces) as $interface) { $interface_address = syslogng_get_real_interface_address($interface); - if($interface_address[0]) { + if ($interface_address[0]) { $default_objects[0]['objectparameters'] .= " ip({$interface_address[0]})"; } } @@ -212,51 +221,52 @@ function syslogng_build_default_objects($settings) { $default_objects[1]['objectparameters'] = base64_encode($default_objects[1]['objectparameters']); $default_objects[2] = array("objecttype"=>"log", "objectname"=>"_DEFAULT", "objectparameters"=>"{ source(_DEFAULT); destination(_DEFAULT); };"); $default_objects[2]['objectparameters'] = base64_encode($default_objects[2]['objectparameters']); - + return $default_objects; } -function syslogng_merge_objects($objects1, $objects2) -{ - foreach($objects2 as $object2) { +function syslogng_merge_objects($objects1, $objects2) { + + foreach ($objects2 as $object2) { $match = 0; - foreach($objects1 as &$object1) { - if(($object2['objecttype'] == $object1['objecttype']) && ($object2['objectname'] == $object1['objectname'])) { + foreach ($objects1 as &$object1) { + if (($object2['objecttype'] == $object1['objecttype']) && ($object2['objectname'] == $object1['objectname'])) { $object1 = $object2; $match = 1; } } - if($match == 0) + if ($match == 0) { array_push($objects1, $object2); + } } return $objects1; } function syslogng_test_object_syntax($objects) { - exec("mv /usr/local/etc/syslog-ng.conf /usr/local/etc/syslog-ng.conf.backup"); + rename("/usr/local/etc/syslog-ng.conf", "/usr/local/etc/syslog-ng.conf.backup"); syslogng_build_conf($objects); $errors = trim(shell_exec('/usr/local/sbin/syslog-ng --syntax-only 2>&1')); - exec("mv /usr/local/etc/syslog-ng.conf /usr/local/etc/syslog-ng.conf.tested"); - exec("mv /usr/local/etc/syslog-ng.conf.backup /usr/local/etc/syslog-ng.conf"); - + rename("/usr/local/etc/syslog-ng.conf", "/usr/local/etc/syslog-ng.conf.tested"); + rename("/usr/local/etc/syslog-ng.conf.backup", "/usr/local/etc/syslog-ng.conf"); + return $errors; } function syslogng_get_log_files($objects) { $log_files = array(); - - foreach($objects as $object) { - if($object['objecttype'] == 'destination') { + + foreach ($objects as $object) { + if ($object['objecttype'] == 'destination') { preg_match("/\bfile\b\(['\"]([^'\"]*)['\"]/", base64_decode($object['objectparameters']), $match); - if($match) { + if ($match) { $log_file = $match[1]; array_push($log_files, $log_file); } } } - + return $log_files; } @@ -264,15 +274,15 @@ function syslogng_build_conf($objects) { $conf = "# This file is automatically generated by pfSense\n"; $conf .= "# Do not edit manually !\n"; $conf .= "@version:3.6\n"; - - foreach($objects as $object) { - if($object['objecttype'] == 'log' || $object['objecttype'] == 'options') { + + foreach ($objects as $object) { + if ($object['objecttype'] == 'log' || $object['objecttype'] == 'options') { $conf .= $object['objecttype'] . " " . base64_decode($object['objectparameters']) . "\n"; } else { $conf .= $object['objecttype'] . " " . $object['objectname'] . " " . base64_decode($object['objectparameters']) . "\n"; } } - + file_put_contents('/usr/local/etc/syslog-ng.conf', $conf); } @@ -287,7 +297,7 @@ function syslogng_build_logrotate_conf($settings, $objects) { $log_files = syslogng_get_log_files($objects); - foreach($log_files as $log_file) { + foreach ($log_files as $log_file) { $conf .= "$log_file "; } @@ -295,9 +305,9 @@ function syslogng_build_logrotate_conf($settings, $objects) { $conf .= "\trotate $max_archives\n"; $conf .= "\t$archive_frequency\n"; - if($compress_archives == 'on') { + if ($compress_archives == 'on') { $conf .= "\tcompress\n"; - if($compress_type == 'bz2') { + if ($compress_type == 'bz2') { $conf .= "\tcompresscmd bzip2\n"; } } @@ -312,103 +322,113 @@ function syslogng_build_logrotate_conf($settings, $objects) { function syslogng_generate_rules($type) { global $config; - + $settings = $config['installedpackages']['syslogng']['config'][0]; - + $interfaces = ($settings['interfaces'] ? $settings['interfaces'] : 'lan'); $default_protocol = ($settings['default_protocol'] ? $settings['default_protocol'] : 'udp'); $default_port = ($settings['default_port'] ? $settings['default_port'] : 5140); - + $rules = ""; - switch($type) { + switch ($type) { case 'rule': foreach ($interfaces as $interface) { $rules .= "pass in quick on $interface proto $default_protocol from any to !($interface) port $default_port no state label\n"; } break; } - + return $rules; } - + function syslogng_resync() { global $config; conf_mount_rw(); - + $settings = $config['installedpackages']['syslogng']['config'][0]; $objects = $config['installedpackages']['syslogngadvanced']['config']; - - if(!isset($settings['enable'])) + + if (!isset($settings['enable'])) { $settings['enable'] = 'off'; - if(!isset($settings['interfaces'])) + } + if (!isset($settings['interfaces'])) { $settings['interfaces'] = 'lan'; - if(!isset($settings['default_protocol'])) + } + if (!isset($settings['default_protocol'])) { $settings['default_protocol'] = 'udp'; - if(!isset($settings['default_port'])) + } + if (!isset($settings['default_port'])) { $settings['default_port'] = 5140; - if(!isset($settings['default_logdir'])) + } + if (!isset($settings['default_logdir'])) { $settings['default_logdir'] = '/var/syslog-ng'; - if(!isset($settings['default_logfile'])) + } + if (!isset($settings['default_logfile'])) { $settings['default_logfile'] = 'default.log'; - if(!isset($settings['archive_frequency'])) + } + if (!isset($settings['archive_frequency'])) { $settings['archive_frequency'] = 'daily'; - if(!isset($settings['compress_archives'])) + } + if (!isset($settings['compress_archives'])) { $settings['compress_archives'] = 'on'; - if(!isset($settings['compress_type'])) + } + if (!isset($settings['compress_type'])) { $settings['compress_type'] = 'gz'; - if(!isset($settings['max_archives'])) + } + if (!isset($settings['max_archives'])) { $settings['max_archives'] = 30; - + } + $default_objects = syslogng_build_default_objects($settings); - - if(empty($objects)) { + + if (empty($objects)) { $objects = $default_objects; } else { $objects = syslogng_merge_objects($objects, $default_objects); } - - $sort = array(); - foreach($objects as $k=>$v) { - $sort['objecttype'][$k] = $v['objecttype']; - $sort['objectname'][$k] = $v['objectname']; - } - array_multisort($sort['objecttype'], SORT_ASC, $sort['objectname'], SORT_ASC, $objects); + + $sort = array(); + foreach ($objects as $k=>$v) { + $sort['objecttype'][$k] = $v['objecttype']; + $sort['objectname'][$k] = $v['objectname']; + } + array_multisort($sort['objecttype'], SORT_ASC, $sort['objectname'], SORT_ASC, $objects); syslogng_build_conf($objects); syslogng_build_logrotate_conf($settings, $objects); $config['installedpackages']['syslogng']['config'][0] = $settings; $config['installedpackages']['syslogngadvanced']['config'] = $objects; - - if($settings['enable'] == 'on') { - if(!file_exists($settings['default_logdir'])) { + + if ($settings['enable'] == 'on') { + if (!file_exists($settings['default_logdir'])) { exec("mkdir -p " . $settings['default_logdir']); } - + syslogng_write_rcfile(); - - if(!is_service_running('syslog-ng')) { + + if (!is_service_running('syslog-ng')) { log_error("Starting syslog-ng"); - exec("/usr/local/etc/rc.d/syslog-ng.sh start"); + start_service("syslog-ng"); } else { log_error("Reloading syslog-ng for configuration sync"); - exec("/usr/local/etc/rc.d/syslog-ng.sh restart"); + restart_service("syslog-ng"); } - + // Sleep for a couple seconds to give syslog-ng a chance to fire up fully. for ($i=0; $i < 10; $i++) { - if(!is_service_running('syslog-ng')) + if (!is_service_running('syslog-ng')) { sleep(1); + } } } else { - if(is_service_running('syslog-ng')) { + if (is_service_running('syslog-ng')) { log_error("Stopping syslog-ng"); - exec("/usr/local/etc/rc.d/syslog-ng.sh stop"); - + stop_service("syslog-ng"); unlink_if_exists("/usr/local/etc/rc.d/syslog-ng.sh"); } } - + write_config(); conf_mount_ro(); filter_configure(); diff --git a/config/syslog-ng/syslog-ng.xml b/config/syslog-ng/syslog-ng.xml index 7d58a2ef..9b0ccffc 100644 --- a/config/syslog-ng/syslog-ng.xml +++ b/config/syslog-ng/syslog-ng.xml @@ -2,47 +2,47 @@ <!DOCTYPE packagegui SYSTEM "../schema/packages.dtd"> <?xml-stylesheet type="text/xsl" href="../xsl/package.xsl"?> <packagegui> - <copyright> - <![CDATA[ + <copyright> +<![CDATA[ /* $Id$ */ -/* ========================================================================== */ +/* ====================================================================================== */ /* - syslog-ng.xml - part of pfSense (http://www.pfSense.com) - Copyright (C) 2012 Lance Leger - All rights reserved. - */ -/* ========================================================================== */ + syslog-ng.xml + part of pfSense (https://www.pfSense.org/) + Copyright (C) 2012 Lance Leger + Copyright (C) 2015 ESF, LLC + All rights reserved. +*/ +/* ====================================================================================== */ /* - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: + 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. + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. - 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. - */ -/* ========================================================================== */ - ]]> - </copyright> - <description>Describe your package here</description> - <requirements>Describe your package requirements here</requirements> - <faq>Currently there are no FAQ items provided.</faq> + 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. +*/ +/* ====================================================================================== */ + ]]> + </copyright> <name>Syslog-ng</name> - <version>3.5.4.1_1 pkg.v.1.0.1</version> + <version>1.0.8</version> <title>Services: Syslog-ng</title> <include_file>/usr/local/pkg/syslog-ng.inc</include_file> <menu> @@ -72,18 +72,15 @@ </tab> </tabs> <additional_files_needed> - <prefix>/usr/local/pkg/</prefix> - <chmod>0755</chmod> - <item>https://packages.pfsense.org/packages/config/syslog-ng/syslog-ng.inc</item> + <prefix>/usr/local/pkg/</prefix> + <item>https://packages.pfsense.org/packages/config/syslog-ng/syslog-ng.inc</item> </additional_files_needed> <additional_files_needed> - <prefix>/usr/local/pkg/</prefix> - <chmod>0755</chmod> + <prefix>/usr/local/pkg/</prefix> <item>https://packages.pfsense.org/packages/config/syslog-ng/syslog-ng_advanced.xml</item> - </additional_files_needed> + </additional_files_needed> <additional_files_needed> - <prefix>/usr/local/www/</prefix> - <chmod>0755</chmod> + <prefix>/usr/local/www/</prefix> <item>https://packages.pfsense.org/packages/config/syslog-ng/syslog-ng_log_viewer.php</item> </additional_files_needed> <fields> @@ -108,8 +105,8 @@ <type>select</type> <value>udp</value> <options> - <option><name>UDP</name><value>udp</value></option> - <option><name>TCP</name><value>tcp</value></option> + <option><name>UDP</name><value>udp</value></option> + <option><name>TCP</name><value>tcp</value></option> </options> <required/> </field> @@ -144,7 +141,7 @@ <type>select</type> <value>daily</value> <options> - <option><name>Daily</name><value>daily</value></option> + <option><name>Daily</name><value>daily</value></option> <option><name>Weekly</name><value>weekly</value></option> <option><name>Monthly</name><value>monthly</value></option> </options> @@ -163,8 +160,8 @@ <type>select</type> <value>gz</value> <options> - <option><name>Gzip</name><value>gz</value></option> - <option><name>Bzip2</name><value>bz2</value></option> + <option><name>Gzip</name><value>gz</value></option> + <option><name>Bzip2</name><value>bz2</value></option> </options> </field> <field> @@ -175,7 +172,7 @@ <default_value>30</default_value> <required/> </field> - </fields> + </fields> <custom_php_validation_command> syslogng_validate_general($_POST, $input_errors); </custom_php_validation_command> @@ -188,5 +185,7 @@ <custom_php_deinstall_command> syslogng_deinstall_command(); </custom_php_deinstall_command> - <filter_rules_needed>syslogng_generate_rules</filter_rules_needed> + <filter_rules_needed> + syslogng_generate_rules(); + </filter_rules_needed> </packagegui> diff --git a/config/syslog-ng/syslog-ng_advanced.xml b/config/syslog-ng/syslog-ng_advanced.xml index b1290544..94067580 100644 --- a/config/syslog-ng/syslog-ng_advanced.xml +++ b/config/syslog-ng/syslog-ng_advanced.xml @@ -1,48 +1,48 @@ <?xml version="1.0" encoding="utf-8" ?> -<!DOCTYPE packagegui SYSTEM "./schema/packages.dtd"> -<?xml-stylesheet type="text/xsl" href="./xsl/package.xsl"?> +<!DOCTYPE packagegui SYSTEM "../schema/packages.dtd"> +<?xml-stylesheet type="text/xsl" href="../xsl/package.xsl"?> <packagegui> - <copyright> - <![CDATA[ + <copyright> +<![CDATA[ /* $Id$ */ -/* ========================================================================== */ +/* ====================================================================================== */ /* - syslog-ng_advanced.xml - part of pfSense (http://www.pfSense.com) - Copyright (C) 2012 Lance Leger - All rights reserved. - */ -/* ========================================================================== */ + syslog-ng_advanced.xml + part of pfSense (https://www.pfSense.org/) + Copyright (C) 2012 Lance Leger + Copyright (C) 2015 ESF, LLC + All rights reserved. +*/ +/* ====================================================================================== */ /* - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: + 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. + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. - 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. - */ -/* ========================================================================== */ - ]]> - </copyright> - <description>Describe your package here</description> - <requirements>Describe your package requirements here</requirements> - <faq>Currently there are no FAQ items provided.</faq> + 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. +*/ +/* ====================================================================================== */ + ]]> + </copyright> <name>Syslog-ng Advanced</name> - <version>0.1.0</version> + <version>1.0.8</version> <title>Services: Syslog-ng Advanced</title> <include_file>/usr/local/pkg/syslog-ng.inc</include_file> <delete_string>An object has been deleted.</delete_string> @@ -133,4 +133,4 @@ <custom_php_resync_config_command> syslogng_resync(); </custom_php_resync_config_command> -</packagegui>
\ No newline at end of file +</packagegui> diff --git a/config/syslog-ng/syslog-ng_log_viewer.php b/config/syslog-ng/syslog-ng_log_viewer.php index c8183f14..c914110a 100644 --- a/config/syslog-ng/syslog-ng_log_viewer.php +++ b/config/syslog-ng/syslog-ng_log_viewer.php @@ -1,37 +1,32 @@ <?php -/* $Id$ */ -/* ========================================================================== */ /* - syslog-ng_log_viewer.xml - part of pfSense (http://www.pfSense.com) - Copyright (C) 2012 Lance Leger - 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. - */ -/* ========================================================================== */ + syslog-ng_log_viewer.php + part of pfSense (https://www.pfSense.org/) + Copyright (C) 2012 Lance Leger + Copyright (C) 2015 ESF, LLC + 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. +*/ require("guiconfig.inc"); require("/usr/local/pkg/syslog-ng.inc"); @@ -41,50 +36,56 @@ $default_logfile = $config['installedpackages']['syslogng']['config'][0]['defaul $compress_archives = $config['installedpackages']['syslogng']['config'][0]['compress_archives']; $compress_type = $config['installedpackages']['syslogng']['config'][0]['compress_type']; -if($_POST['logfile']) +if ($_POST['logfile']) { $logfile = $_POST['logfile']; -else +} else { $logfile = $default_logdir . "/" . $default_logfile; - -if($_POST['limit']) +} + +if ($_POST['limit']) { $limit = intval($_POST['limit']); -else +} else { $limit = "10"; +} -if($_POST['archives']) +if ($_POST['archives']) { $archives = true; +} -if($_POST['filter']) +if ($_POST['filter']) { $filter = $_POST['filter']; +} -if($_POST['not']) +if ($_POST['not']) { $not = true; +} $log_messages = array(); -if(file_exists($logfile) && (filesize($logfile) > 0)) { +if (file_exists($logfile) && (filesize($logfile) > 0)) { $grep = "grep -ih"; - - if(($compress_archives == 'on') && glob($logfile . "*" . $compress_type) && $archives) { + + if (($compress_archives == 'on') && glob($logfile . "*" . $compress_type) && $archives) { if($compress_type == 'bz2') { $grep = "bzgrep -ih"; } else { $grep = "zgrep -ih"; } } - - if(isset($filter) && $not) { + + if (isset($filter) && $not) { $grepcmd = "$grep -v '$filter' $logfile"; } else { $grepcmd = "$grep '$filter' $logfile"; } - - if($archives) + + if ($archives) { $grepcmd = $grepcmd . "*"; - + } + $log_lines = trim(shell_exec("$grepcmd | wc -l")); $log_output = trim(shell_exec("$grepcmd | sort -M | tail -n $limit")); - - if(!empty($log_output)) { + + if (!empty($log_output)) { $log_messages = explode("\n", $log_output); $log_messages_count = sizeof($log_messages); } @@ -92,7 +93,7 @@ if(file_exists($logfile) && (filesize($logfile) > 0)) { $pgtitle = "Services: Syslog-ng Log Viewer"; include("head.inc"); -?> +?> <body link="#000000" vlink="#000000" alink="#000000"> <?php include("fbegin.inc"); ?> <?php if ($savemsg) print_info_box($savemsg); ?> @@ -107,11 +108,11 @@ include("head.inc"); display_top_tabs($tab_array); ?> </td></tr> - <tr><td> + <tr><td> <div id="mainarea"> - <table id="maintable" name="maintable" class="tabcont" width="100%" border="0" cellpadding="0" cellspacing="0"> + <table id="maintable" class="tabcont" width="100%" border="0" cellpadding="0" cellspacing="0"> <tr><td> - + <table> <tr><td width="22%">Log File</td><td width="78%"><select name="logfile"> <?php @@ -143,7 +144,7 @@ include("head.inc"); <?php if(!empty($log_messages)) { echo "<tr><td class=\"listtopic\">Showing $log_messages_count of $log_lines messages</td></tr>\n"; - foreach($log_messages as $log_message) { + foreach($log_messages as $log_message) { echo "<tr><td class=\"listr\">$log_message</td></tr>\n"; } } else { @@ -156,7 +157,7 @@ include("head.inc"); <tr><td width="22%">Inverse Filter (NOT)</td><td width="78%"><input type="checkbox" name="not" <?php if($not) echo " CHECKED"; ?> /></td></tr> <tr><td colspan="2"><input type="submit" value="Refresh" /></td></tr> </table> - + </td></tr> </table> </div> @@ -164,4 +165,5 @@ include("head.inc"); </table> </form> <?php include("fend.inc"); ?> -</body>
\ No newline at end of file +</body> +</html> |