diff options
-rw-r--r-- | config/squidGuard/squidguard.inc | 339 | ||||
-rw-r--r-- | config/squidGuard/squidguard.xml | 210 | ||||
-rw-r--r-- | config/squidGuard/squidguard_acl.xml | 126 | ||||
-rw-r--r-- | config/squidGuard/squidguard_configurator.inc | 357 | ||||
-rw-r--r-- | config/squidGuard/squidguard_default.xml | 108 | ||||
-rw-r--r-- | config/squidGuard/squidguard_dest.xml | 112 | ||||
-rw-r--r-- | config/squidGuard/squidguard_log.xml | 72 | ||||
-rw-r--r-- | config/squidGuard/squidguard_rewr.xml | 17 | ||||
-rw-r--r-- | config/squidGuard/squidguard_time.xml | 9 |
9 files changed, 757 insertions, 593 deletions
diff --git a/config/squidGuard/squidguard.inc b/config/squidGuard/squidguard.inc index 025e5b50..1c681497 100644 --- a/config/squidGuard/squidguard.inc +++ b/config/squidGuard/squidguard.inc @@ -69,7 +69,6 @@ define('F_EXPRESSIONS', 'expressions'); define('F_DOMAINS', 'domains'); define('F_URLS', 'urls'); define('F_DISABLED', 'disabled'); -define('F_ENABLELOG', 'enablelog'); define('F_SQUIDGUARDENABLE','squidguard_enable'); define('F_BLACKLIST', 'blacklist'); @@ -147,6 +146,10 @@ function squidguard_validate_acl($post, $input_errors) if (!sg_check_unique_name(F_ACLS, $name)) $input_errors[] = "Name '$name' already exists."; + # check reserved + if (!sg_check_reserved_name($name)) + $input_errors[] = "Name '$name' is reserved."; + # check source $sgx = array(); $sgx[F_NAME] = $post[F_NAME]; @@ -218,6 +221,10 @@ function squidguard_validate_times($post, $input_errors) # check unique name if (!sg_check_unique_name(F_TIMES, $name)) $input_errors[] = "Name '$name' already exists"; + + # check reserved + if (!sg_check_reserved_name($name)) + $input_errors[] = "Name '$name' is reserved."; } # --- check format --- @@ -261,6 +268,10 @@ function squidguard_validate_destination($post, $input_errors) { # check unique name if (!sg_check_unique_name(F_DESTINATIONS, $name)) $input_errors[] = "Name '$name' already exists"; + + # check reserved + if (!sg_check_reserved_name($name)) + $input_errors[] = "Name '$name' is reserved."; } # --- check format --- @@ -282,12 +293,16 @@ function squidguard_validate_rewrite($post, $input_errors) { # check name $name = trim($post[F_NAME]); if(!empty($name)) { - # check name format <char><symbols without space> - Ab123 - check_name_format($name, &$input_errors); + # check name format <char><symbols without space> - Ab123 + check_name_format($name, &$input_errors); - # check unique name - if (!sg_check_unique_name(F_REWRITES, $name)) + # check unique name + if (!sg_check_unique_name(F_REWRITES, $name)) $input_errors[] = "Name '$name' already exists"; + + # check reserved + if (!sg_check_reserved_name($name)) + $input_errors[] = "Name '$name' is reserved."; } } @@ -304,6 +319,8 @@ function squidguard_resync() { $url = isset($_POST['blacklist_url']) ? $_POST['blacklist_url'] : $_GET['blacklist_url']; $proxy = isset($_POST['blacklist_proxy']) ? $_POST['blacklist_proxy'] : $_GET['blacklist_proxy']; + sg_init(convert_pfxml_to_sgxml()); + # blacklist upload if ($submit == BLACKLIST_BTN_URL) { if ($url) @@ -319,8 +336,11 @@ function squidguard_resync() { //if ($submit == APPLY_BTN) { # write_config('Update squidGuard options.'); # store, if not 'Save' button # перенести в validate для детектирования ошибок? + sg_reconfigure(); //} + + squidguard_cron_install(); } # ----------------------------------------------------------------------------- @@ -410,11 +430,6 @@ function squidguard_before_form($pkg) { $fld = &$pkg['fields']['field'][$i]; $fld['description'] .= make_grid_general_items(); # insert to description custom controls break; - # GUI log - case 'view_gui_log': - $fld = &$pkg['fields']['field'][$i]; - $fld['description'] .= make_grid_general_items('gui_log'); # insert to description custom controls - break; } $i++; } @@ -587,140 +602,13 @@ function squidguard_before_form_acl($pkg, $is_acl=true) { } # ----------------------------------------------------------------------------- -# squidguard_before_form_log +# squidguard_before_form_log - must be deleted # ----------------------------------------------------------------------------- define('LOGSHOW_BUFSIZE', 16384); -function squidguard_before_form_log($pkg) { - # ! nothing for config - only report. Possible use global $config ! - global $config; - $i=0; - $move_pos = 0; - $move_step = 50; - - foreach($pkg['fields']['field'] as $field) { - if ($field['fieldname'] == 'logtype') { - $slog = ''; - $mlog = $config['installedpackages'][MODULE_LOG]['config'][0]; - - $filename = ''; - $fld = &$pkg['fields']['field'][$i]; - $move_pos = ($move_pos) ? $move_pos : 0; - - switch ($mlog['logtype']) { - case 'block_log': - { - $filename = SQUIDGUARD_LOGDIR . "/" . SQUIDGUARD_ACCESSBLOCK_FILE; - $fh = ''; - if (file_exists($filename)) { - $fh = fopen($filename, "r"); - if ($fh) { - $fsize = filesize($filename); - # take LOGSHOW_BUFSIZE bytes from end - if ($fsize > LOGSHOW_BUFSIZE) - fseek($fh, -LOGSHOW_BUFSIZE, SEEK_END); - $s = fread($fh, LOGSHOW_BUFSIZE); - fclose($fh); - - $slog .= "<tr><td colspan='7'>Block log '$filename'. Last 100:<td><tr>"; - - $s = explode("\n", $s); - unset($s[0]); # unset us'nt complete string - - $slog .= "<tr><th>Num</th><th>DateTime</th><th>IP</th><th>URL</th><th>Filter</th><th>ID</th><th>Mtd</th></tr>"; - foreach($s as $key => $vs) { - $nkey = $move_pos + intval($key); - $slog .= "<tr>"; - $sx = $vs; - $sx = str_replace(array("/- -", "/-", "Request", "request","(", ")", "[", "]"), "", $sx); - $sx = explode(" ", $sx); - - # formatting url - $spos =0; - $stmp = ''; - while($spos + 81 < strlen($sx[4])) { - $stmp .= substr($sx[4], $spos, 81) . "<br>"; - $spos += 81; - } - $stmp .= substr($sx[4], $spos, strlen($sx[4]) - $spos); - $sx[4] = $stmp; - - if (!empty($vs)) - $slog .= "<tr> - <td style='vertical-align: top; white-space: nowrap;'>" . strval($nkey) . "</td> - <td style='vertical-align: top; white-space: nowrap;'>$sx[0] $sx[1]</td> - <td style='vertical-align: top;'>$sx[5]</td> - <td style='vertical-align: top;'>$sx[4]</td> - <td style='vertical-align: top;'>$sx[3]</td> - <td style='vertical-align: top;'>$sx[2]</td> - <td style='vertical-align: top;'>$sx[6]</td></tr>"; - } - } - } - - } - break; - case 'configurator_log': - { - $filename = SQUIDGUARD_LOGDIR . SQUIDGUARDCONF_LOGFILE; - $slog .= "<b>$filename</b><br>"; - if (file_exists($filename)) { - $slog .= file_get_contents($filename); - $slog = str_replace("\n", "<br>", $slog); - $slog = "<tr><td>$slog</td></tr>"; - } - } - break; - case 'squidguard_log': - { - $slog .= 'squidguard_log report disabled'; -/* - $filename = SQUIDGUARD_LOGDIR . '/squidGuard.log'; - $slog .= "<b>$filename</b><br>"; - if (file_exists($filename)) { - $slog .= file_get_contents($filename); - $slog = explode("\n", $slog); - while (count($slog) > 500) array_shift($slog); - $slog = implode("\n", $slog); - $slog = str_replace("\n", "<br>", $slog); - $slog = "<tr><td>$slog</td></tr>"; - } -*/ - } - break; - case 'squid_config': - { - $filename = SQUID_CONFIGFILE; - $slog .= "<b>$filename</b><br>"; - if (file_exists($filename)) { - $slog .= file_get_contents($filename); - $slog = str_replace("\n", "<br>", $slog); - $slog = str_replace("\t", " ", $slog); - $slog = "<tr><td>$slog</td></tr>"; - } - } - break; - case 'squidguard_config': - { - $filename = SQUIDGUARD_WORKDIR . "/squidGuard.conf"; - $slog .= "<b>$filename</b><br>"; - if (file_exists($filename)) { - $slog .= file_get_contents($filename); - $slog = str_replace("\n", "<br>", $slog); - $slog = str_replace("\t", " ", $slog); - $slog = "<tr><td>$slog</td></tr>"; - } - } - break; - } # switch - - $fld['description'] .= - "<INPUT class=formbtn type=submit value='Get log' name=Submit> - </tr><tr> - <td colspan='2'><table width='100%' class=tabcont cellSpacing=0 cellPadding=1 border=1>$slog</table>"; - } - $i++; - } +function squidguard_before_form_log($pkg) +{ +# delete me } # ----------------------------------------------------------------------------- @@ -749,14 +637,6 @@ function make_grid_general_items($id = '') $sgstate .= "<br><span style='color: #800000;'>Wait: began updating the blacklist.<br>New data will be available after some time.<br>After the upgrade, it is necessary to check the configuration.</span>"; $res .= "<tr $bg_color><td><big>SquidGuard service state: <b>$sgstate</b></big></td></tr>"; } - elseif ($id === 'gui_log') { - if ($squidguard_config['view_gui_log'] == 'on') { - $log_content = sg_getlog(50); - $log_content = str_replace("\n","<br>", $log_content); - $res .= "<tr $bg_color><td><font size='-1'><b>Web GUI log (Latest 50)</b></font></td></tr>"; - $res .= "<tr $bg_color><td vAlign=top width='100%'><font size='-2'>$log_content</font></td></tr>"; - } - } $res .= "</table>"; return $res; @@ -925,6 +805,20 @@ function sg_check_unique_name($module_id, $name, $log='') { return $res; } +# ----------------------------------------------------------------------------- +# check unique name +# ----------------------------------------------------------------------------- +function sg_check_reserved_name($name, $log='') +{ + $res = true; + $reserved = array("acl", "all", "dbhome", "default", "dest", "in-addr", "log", "logdir", "none", "pass", "rew", "src", "url", "user"); + + if (in_array(strtolower(trim($name)), $reserved)) { + $res = false; + } + + return $res; +} # ------------------------------------------------------------------------------ # Install & deinstall # ------------------------------------------------------------------------------ @@ -1011,36 +905,6 @@ function squidGuard_print_javascript() { $javascript .= "\n</script>"; } - if ($xml === "squidguard_src.xml") { ### will deleted ### - $javascript .= "\n<script language='JavaScript'>"; - $javascript .= "\n<!--"; - $javascript .= "\n function on_updatecontrols() {"; - $javascript .= "\n document.iform.elements['order'].disabled = 0;"; - $javascript .= "\n document.iform.elements['order'].onfocus = on_orderfocus;"; - $javascript .= "\n }"; - $javascript .= "\n function on_orderfocus() {"; - $javascript .= "\n document.iform.elements['order'].blur();"; - $javascript .= "\n }"; - $javascript .= "\n function on_moveup() {"; - $javascript .= "\n var order = parseInt(document.iform.elements['order'].value)"; - $javascript .= "\n if (order > 0)"; - $javascript .= "\n order = order - 1;"; - $javascript .= "\n else order = 0;"; - $javascript .= "\n document.iform.elements['order'].value = order;"; - $javascript .= "\n }"; - $javascript .= "\n function on_movedown() {"; - $javascript .= "\n var order = parseInt(document.iform.elements['order'].value)"; - $javascript .= "\n if (order >= 0)"; - $javascript .= "\n order = order + 1;"; - $javascript .= "\n else order = 0;"; - $javascript .= "\n document.iform.elements['order'].value = order;"; - $javascript .= "\n }"; - $javascript .= "\n on_updatecontrols();"; - $javascript .= "\n "; - $javascript .= "\n//-->"; - $javascript .= "\n</script>"; - } - print($javascript); } @@ -1072,8 +936,14 @@ function convert_pfxml_to_sgxml() { $sgxml[F_ACLS] = convert_pfxml_to_sgxml_acl($config); $sgxml[F_DEFAULT] = convert_pfxml_to_sgxml_default($config); - # other - $sgxml['view_gui_log'] = $pfxml['view_gui_log']; + + + # log + $sgxml[F_ENABLELOG] = $pfxml['enable_log'] == 'on' ? 'on' : 'off'; + $sgxml[F_ENABLEGUILOG] = $pfxml['enable_guilog'] == 'on' ? 'on' : 'off'; + $sgxml[F_LOGROTATION] = $pfxml['log_rotation'] == 'on' ? 'on' : 'off'; + + # other $lanip = $config['interfaces']['lan']['ipaddr']; $sgxml[F_CURRENT_LAN_IP] = $lanip; @@ -1084,7 +954,7 @@ function convert_pfxml_to_sgxml() { $guiprotocol = $config['system']['webgui']['protocol']; $sgxml[F_SQUID_TRANSPARENT_MODE] = 'on'; - $sgxml[F_CURRENT_GUI_PORT] = $guiport; + $sgxml[F_CURRENT_GUI_PORT] = $guiport; $sgxml[F_CURRENT_GUI_PROTO] = $guiprotocol; } else { unset($sgxml[F_SQUID_TRANSPARENT_MODE]); @@ -1394,4 +1264,109 @@ function squidguard_adt_safesrch_add($rewrite_item) return $rewrite_item; } + +# get squid config list +function squidguard_squid_conflist( ) +{ + $fname = SQUID_CONFIGFILE; + $res = ""; + + if (file_exists( $fname )) + $res = file_get_contents( $fname ); + else $res = "File '$fname' not found."; + + return $res; +} + +# get squidguard config list +function squidguard_conflist( ) +{ + $fname = SQUIDGUARD_CONFBASE_DEF . SQUIDGUARD_CONFIGFILE; + $res = ""; + + if (file_exists( $fname )) + $res = file_get_contents( $fname ); + else $res = "File '$fname' not found."; + + return $res; +} + +# get squidguard log report + +define('LOGSHOW_BUFSIZE', '16384'); + +function squidguard_logrep( $filename, $lncount, $reverse ) +{ + $res = ""; + + $lncount = $lncount ? $lncount : 50; + $reverse = $reverse ? $reverse : false; + + if (file_exists($filename)) { + $fh = fopen($filename, "r"); + if ($fh) { + $fsize = filesize($filename); + # take LOGSHOW_BUFSIZE bytes from end + if ($fsize > LOGSHOW_BUFSIZE) + fseek($fh, -LOGSHOW_BUFSIZE, SEEK_END); + $cont = fread($fh, LOGSHOW_BUFSIZE); + fclose($fh); + } + + $cont = explode( "\n", $cont ); + $cont = array_slice($cont, -$lncount); + + if ($reverse) $cont = array_reverse( $cont ); + + $res .= "<table class='tabcont' width='100%' border='0' cellpadding='0' cellspacing='0'>\n"; + $res .= "<tr><td nowrap class='listtopic' colspan='2'>Last {$lncount} entries</td></tr>\n"; + foreach($cont as $cn) { + $cn = trim($cn); + if ($cn) { + $cn = explode(" ", $cn, 4); + + # split strings + $st = str_split ($cn[3], 25); + $cn[3] = ""; + foreach( $st as $s ) $cn[3] .= $s . "<wbr/>"; + + $res .= "<tr><td nowrap class='listlr'>{$cn[0]} {$cn[1]}</td><td class='listr'>{$cn[3]}</td></tr>"; + } + } + $res .= "</table>"; + } + + return $res; +} + +# get blacklist list +function squidguard_blacklist_list() +{ + $res = ""; + $fname = "/var/squidGuard/blacklist.files"; + + $res .= "<table class='tabcont' width='100%' border='0' cellpadding='0' cellspacing='0'>\n"; + $res .= "<tr><td class='listtopic'>Name</td><td class='listtopic'>Domains</td><td class='listtopic'>Urls</td><td class='listtopic'>Expressions</td></tr>\n"; + if (file_exists($fname)) { + $cont = explode("\n", file_get_contents($fname)); + foreach($cont as $cn) { + $ph = "/var/db/squidGuard/$cn"; + + if (file_exists($ph)) { + $dm = " "; + $ur = " "; + $ex = " "; + + if (file_exists("$ph/domains")) $dm = "domains"; + if (file_exists("$ph/urls")) $ur = "urls"; + if (file_exists("$ph/expressions")) $ex = "expressions"; + + $res .= "<tr><td class='listlr'>$cn</td><td class='listr'>$dm</td><td class='listr'>$ur</td><td class='listr'>$ex</td></tr>"; + } + } + } + $res .= "</table>"; + + return $res; +} ?> diff --git a/config/squidGuard/squidguard.xml b/config/squidGuard/squidguard.xml index 572efb97..9f0ed9fb 100644 --- a/config/squidGuard/squidguard.xml +++ b/config/squidGuard/squidguard.xml @@ -2,108 +2,102 @@ <!DOCTYPE packagegui SYSTEM "../schema/packages.dtd"> <?xml-stylesheet type="text/xsl" href="../xsl/package.xsl"?> <packagegui> - <description>Describe your package here</description> - <requirements>Describe your package requirements here</requirements> - <faq>Currently there are no FAQ items provided.</faq> - - <name>squidguardgeneral</name> - <version>1.2.0_2</version> - <title>Proxy filter SquidGuard: General settings</title> - <include_file>/usr/local/pkg/squidguard.inc</include_file> - - <!-- Installation --> - <menu> - <name>Proxy filter</name> - <tooltiptext>Modify the proxy server's filter settings</tooltiptext> - <section>Services</section> - <url>/pkg_edit.php?xml=squidguard.xml&id=0</url> - </menu> - - <tabs> - <tab> - <text>General settings</text> - <url>/pkg_edit.php?xml=squidguard.xml&id=0</url> - <active/> - </tab> - <tab> - <text>Default</text> - <url>/pkg_edit.php?xml=squidguard_default.xml&id=0</url> - </tab> - <tab> - <text>ACL</text> - <url>/pkg.php?xml=squidguard_acl.xml</url> - </tab> - <tab> - <text>Destinations</text> - <url>/pkg.php?xml=squidguard_dest.xml</url> - </tab> - <tab> - <text>Times</text> - <url>/pkg.php?xml=squidguard_time.xml</url> - </tab> - <tab> - <text>Rewrites</text> - <url>/pkg.php?xml=squidguard_rewr.xml</url> - </tab> - <tab> - <text>Log</text> - <url>/pkg_edit.php?xml=squidguard_log.xml&id=0</url> - </tab> - </tabs> - - <service> + <description>Describe your package here</description> + <requirements>Describe your package requirements here</requirements> + <faq>Currently there are no FAQ items provided.</faq> + <name>squidguardgeneral</name> + <version>1.2.0_2</version> + <title>Proxy filter SquidGuard: General settings</title> + <include_file>/usr/local/pkg/squidguard.inc</include_file> + <!-- Installation --> + <menu> + <name>Proxy filter</name> + <tooltiptext>Modify the proxy server's filter settings</tooltiptext> + <section>Services</section> + <url>/pkg_edit.php?xml=squidguard.xml&id=0</url> + </menu> + <tabs> + <tab> + <text>General settings</text> + <url>/pkg_edit.php?xml=squidguard.xml&id=0</url> + <active/> + </tab> + <tab> + <text>Default</text> + <url>/pkg_edit.php?xml=squidguard_default.xml&id=0</url> + </tab> + <tab> + <text>ACL</text> + <url>/pkg.php?xml=squidguard_acl.xml</url> + </tab> + <tab> + <text>Destinations</text> + <url>/pkg.php?xml=squidguard_dest.xml</url> + </tab> + <tab> + <text>Times</text> + <url>/pkg.php?xml=squidguard_time.xml</url> + </tab> + <tab> + <text>Rewrites</text> + <url>/pkg.php?xml=squidguard_rewr.xml</url> + </tab> + <tab> + <text>Log</text> + <url>/squidGuard/squidguard_log.php</url> + </tab> + </tabs> + <service> <name>squidGuard</name> <description>Proxy server filter Service</description> <executable>squidGuard</executable> - </service> - - <additional_files_needed> + </service> + <additional_files_needed> <prefix>/usr/local/pkg/</prefix> <chmod>0755</chmod> <item>http://www.pfsense.org/packages/config/squidGuard/squidguard.inc</item> - </additional_files_needed> - <additional_files_needed> + </additional_files_needed> + <additional_files_needed> <prefix>/usr/local/pkg/</prefix> <chmod>0755</chmod> <item>http://www.pfsense.org/packages/config/squidGuard/squidguard_configurator.inc</item> - </additional_files_needed> - <additional_files_needed> + </additional_files_needed> + <additional_files_needed> <prefix>/usr/local/pkg/</prefix> <chmod>0755</chmod> <item>http://www.pfsense.org/packages/config/squidGuard/squidguard_acl.xml</item> - </additional_files_needed> - <additional_files_needed> + </additional_files_needed> + <additional_files_needed> <prefix>/usr/local/pkg/</prefix> <chmod>0755</chmod> <item>http://www.pfsense.org/packages/config/squidGuard/squidguard_default.xml</item> - </additional_files_needed> - <additional_files_needed> + </additional_files_needed> + <additional_files_needed> <prefix>/usr/local/pkg/</prefix> <chmod>0755</chmod> <item>http://www.pfsense.org/packages/config/squidGuard/squidguard_dest.xml</item> - </additional_files_needed> - <additional_files_needed> + </additional_files_needed> + <additional_files_needed> <prefix>/usr/local/pkg/</prefix> <chmod>0755</chmod> <item>http://www.pfsense.org/packages/config/squidGuard/squidguard_rewr.xml</item> - </additional_files_needed> - <additional_files_needed> + </additional_files_needed> + <additional_files_needed> <prefix>/usr/local/pkg/</prefix> <chmod>0755</chmod> <item>http://www.pfsense.org/packages/config/squidGuard/squidguard_time.xml</item> - </additional_files_needed> - <additional_files_needed> - <prefix>/usr/local/pkg/</prefix> - <chmod>0755</chmod> - <item>http://www.pfsense.org/packages/config/squidGuard/squidguard_log.xml</item> - </additional_files_needed> - <additional_files_needed> + </additional_files_needed> + <additional_files_needed> + <prefix>/usr/local/www/squidGuard/</prefix> + <chmod>0755</chmod> + <item>http://www.pfsense.org/packages/config/squidGuard/squidguard_log.php</item> + </additional_files_needed> + <additional_files_needed> <prefix>/usr/local/www/</prefix> <chmod>0755</chmod> <item>http://www.pfsense.org/packages/config/squidGuard/sgerror.php</item> - </additional_files_needed> - - <fields> + </additional_files_needed> + <fields> <field> <fielddescr>Enable</fielddescr> <fieldname>squidguard_enable</fieldname> @@ -111,6 +105,28 @@ <type>checkbox</type> </field> <field> + <fielddescr>Enable GUI log</fielddescr> + <fieldname>enable_guilog</fieldname> + <description>Check this for enable GUI log.</description> + <type>checkbox</type> + </field> + <field> + <fielddescr>Enable log</fielddescr> + <fieldname>enable_log</fieldname> + <description>Check this for enable log of the proxy filter. Usually log used for testing filter settings.</description> + <type>checkbox</type> + </field> + <field> + <fielddescr>Enable log rotation</fielddescr> + <fieldname>log_rotation</fieldname> + <description>Check this for enable daily rotate a log of the proxy filter. Use this option for limit log file size.</description> + <type>checkbox</type> + </field> + <field> + <name>Blacklist options</name> + <type>listtopic</type> + </field> + <field> <fielddescr>Blacklist</fielddescr> <fieldname>blacklist</fieldname> <description>Check this for enable blacklist</description> @@ -134,31 +150,25 @@ <type>input</type> <size>100</size> </field> - <field> - <fielddescr>View GUI log</fielddescr> - <fieldname>view_gui_log</fieldname> - <description>Check this for view GUI log</description> - <type>checkbox</type> - </field> - </fields> - <custom_add_php_command/> - <custom_php_validation_command> + </fields> + <custom_add_php_command/> + <custom_php_validation_command> squidguard_validate(&$_POST, &$input_errors); - </custom_php_validation_command> - <custom_php_command_before_form> + </custom_php_validation_command> + <custom_php_command_before_form> squidguard_before_form(&$pkg); - </custom_php_command_before_form> - <custom_php_after_form_command> - squidGuard_print_javascript(); - </custom_php_after_form_command> - <custom_php_resync_config_command> - squidguard_resync(); - </custom_php_resync_config_command> - <custom_php_install_command> - squidguard_install_command(); - squidguard_resync(); - </custom_php_install_command> - <custom_php_deinstall_command> - squidguard_deinstall_command(); - </custom_php_deinstall_command> + </custom_php_command_before_form> + <custom_php_after_form_command> + squidGuard_print_javascript(); + </custom_php_after_form_command> + <custom_php_resync_config_command> + squidguard_resync(); + </custom_php_resync_config_command> + <custom_php_install_command> + squidguard_install_command(); + squidguard_resync(); + </custom_php_install_command> + <custom_php_deinstall_command> + squidguard_deinstall_command(); + </custom_php_deinstall_command> </packagegui>
\ No newline at end of file diff --git a/config/squidGuard/squidguard_acl.xml b/config/squidGuard/squidguard_acl.xml index 03755b8e..04bb8553 100644 --- a/config/squidGuard/squidguard_acl.xml +++ b/config/squidGuard/squidguard_acl.xml @@ -2,51 +2,47 @@ <!DOCTYPE packagegui SYSTEM "../schema/packages.dtd"> <?xml-stylesheet type="text/xsl" href="../xsl/package.xsl"?> <packagegui> - <description>Describe your package here</description> - <requirements>Describe your package requirements here</requirements> - <faq>Currently there are no FAQ items provided.</faq> - - <name>squidguardacl</name> - <version>none</version> - <title>Proxy filter SquidGuard: Access Control List (ACL)</title> - <include_file>/usr/local/pkg/squidguard.inc</include_file> - - <delete_string>A proxy server user has been deleted.</delete_string> - <addedit_string>A proxy server user has been created/modified.</addedit_string> - - <tabs> - <tab> - <text>General settings</text> - <url>/pkg_edit.php?xml=squidguard.xml&id=0</url> - </tab> - <tab> - <text>Default</text> - <url>/pkg_edit.php?xml=squidguard_default.xml&id=0</url> - </tab> - <tab> - <text>ACL</text> - <url>/pkg.php?xml=squidguard_acl.xml</url> - <active/> - </tab> - <tab> - <text>Destinations</text> - <url>/pkg.php?xml=squidguard_dest.xml</url> - </tab> - <tab> - <text>Times</text> - <url>/pkg.php?xml=squidguard_time.xml</url> - </tab> - <tab> - <text>Rewrites</text> - <url>/pkg.php?xml=squidguard_rewr.xml</url> - </tab> - <tab> - <text>Log</text> - <url>/pkg_edit.php?xml=squidguard_log.xml&id=0</url> - </tab> - </tabs> - - <adddeleteeditpagefields> + <description>Describe your package here</description> + <requirements>Describe your package requirements here</requirements> + <faq>Currently there are no FAQ items provided.</faq> + <name>squidguardacl</name> + <version>none</version> + <title>Proxy filter SquidGuard: Access Control List (ACL)</title> + <include_file>/usr/local/pkg/squidguard.inc</include_file> + <delete_string>A proxy server user has been deleted.</delete_string> + <addedit_string>A proxy server user has been created/modified.</addedit_string> + <tabs> + <tab> + <text>General settings</text> + <url>/pkg_edit.php?xml=squidguard.xml&id=0</url> + </tab> + <tab> + <text>Default</text> + <url>/pkg_edit.php?xml=squidguard_default.xml&id=0</url> + </tab> + <tab> + <text>ACL</text> + <url>/pkg.php?xml=squidguard_acl.xml</url> + <active/> + </tab> + <tab> + <text>Destinations</text> + <url>/pkg.php?xml=squidguard_dest.xml</url> + </tab> + <tab> + <text>Times</text> + <url>/pkg.php?xml=squidguard_time.xml</url> + </tab> + <tab> + <text>Rewrites</text> + <url>/pkg.php?xml=squidguard_rewr.xml</url> + </tab> + <tab> + <text>Log</text> + <url>/squidGuard/squidguard_log.php</url> + </tab> + </tabs> + <adddeleteeditpagefields> <columnitem> <fielddescr>Disabled</fielddescr> <fieldname>disabled</fieldname> @@ -71,9 +67,8 @@ <fielddescr>Description</fielddescr> <fieldname>description</fieldname> </columnitem> - </adddeleteeditpagefields> - - <fields> + </adddeleteeditpagefields> + <fields> <field> <fielddescr>Disabled</fielddescr> <fieldname>disabled</fieldname> @@ -250,30 +245,29 @@ <size>100</size> </field> <field> - <fielddescr>Enable log</fielddescr> + <fielddescr>Log</fielddescr> <fieldname>enablelog</fieldname> - <description>Check this for enable log.</description> + <description>Check this for log this item.</description> <type>checkbox</type> </field> - </fields> - - <custom_php_validation_command> + </fields> + <custom_php_validation_command> squidguard_validate_acl(&$_POST, &$input_errors); - </custom_php_validation_command> - <custom_php_command_before_form> + </custom_php_validation_command> + <custom_php_command_before_form> squidguard_before_form_acl(&$pkg); - </custom_php_command_before_form> - <custom_php_after_form_command> + </custom_php_command_before_form> + <custom_php_after_form_command> squidGuard_print_javascript(); - </custom_php_after_form_command> - <custom_php_resync_config_command> + </custom_php_after_form_command> + <custom_php_resync_config_command> squidguard_resync_acl(); - </custom_php_resync_config_command> - <custom_delete_php_command> + </custom_php_resync_config_command> + <custom_delete_php_command> squidguard_resync_acl(); - </custom_delete_php_command> - <custom_add_php_command> - </custom_add_php_command> - <custom_add_php_command_late> - </custom_add_php_command_late> + </custom_delete_php_command> + <custom_add_php_command> + </custom_add_php_command> + <custom_add_php_command_late> + </custom_add_php_command_late> </packagegui>
\ No newline at end of file diff --git a/config/squidGuard/squidguard_configurator.inc b/config/squidGuard/squidguard_configurator.inc index 71724c90..035ab734 100644 --- a/config/squidGuard/squidguard_configurator.inc +++ b/config/squidGuard/squidguard_configurator.inc @@ -55,13 +55,18 @@ ini_set('max_execution_time', '3600'); ini_set('max_input_time', '3600'); ini_set('memory_limit', '100M'); +# +# ToDo ! Must use all settings via $squidguard_config ! +# Add check names for reserved words 'none, all, default, no-ip, block' +# Sdelat rewrite dlya smeny skachivaniya + # ------------------------------------------------------------------------------ # files header # ------------------------------------------------------------------------------ define('FILES_DB_HEADER', ' # ------------------------------------------------------------------------------ # File created by squidGuard package GUI -# (C)2006-2008 Serg Dvoriancev +# (C)2006-2010 Serg Dvoriancev # ------------------------------------------------------------------------------ '); @@ -107,17 +112,19 @@ define('SQUID_CONFIGFILE', '/usr/local/etc/squid/squid.conf'); define('TMP_DIR', '/var/tmp'); define('SQUIDGUARD_CONFIGFILE', '/squidGuard.conf'); -define('SQUIDGUARDCONF_LOGFILE', '/sg_configurator.log'); -define('SQUIDGUARD_ACCESSBLOCK_FILE', 'block.log'); +define('SQUIDGUARD_CONFLOGFILE', '/sg_configurator.log'); +define('SQUIDGUARD_LOGFILE', 'block.log'); define('SQUIDGUARD_CONFBASE_DEF', '/usr/local/etc/squid'); define('SQUIDGUARD_LOGDIR_DEF', '/tmp'); define('SQUIDGUARD_WORKDIR_DEF', '/usr/local/etc/squidGuard'); define('SQUIDGUARD_BINPATH_DEF', '/usr/local/bin'); -define('SQUIDGUARD_TMP', '/var/tmp/squidGuard'); # SG temp -define('SQUIDGUARD_VAR', '/var/squidGuard'); # SG variables +define('SQUIDGUARD_TMP', '/var/tmp/squidGuard'); # SG temp +define('SQUIDGUARD_VAR', '/var/squidGuard'); # SG variables define('SQUIDGUARD_STATE', '/squidGuard.state'); define('SQUIDGUARD_REBUILD', '/squidGuard.rebuild'); +define('SQUIDGUARD_SCR_LOGROTATE', '/usr/local/etc/rc.d/squidGuard_logrotate'); # Logrotate script + # DB home catalog contains 'Blacklist' and 'User' sub-catalogs define('SQUIDGUARD_DBHOME_DEF', '/var/db/squidGuard'); define('SQUIDGUARD_DB_BLACKLIST', '/bl'); @@ -139,6 +146,9 @@ define('SG_INFO_FILE', '/var/squidGuard/sg_db_upd.inf'); # error_res define('SG_ERR0', "Error! Check squidGuard configuration data."); +# ============================================================================== +# DEFINES +# ============================================================================== # redirect mode define('RMOD_NONE', 'rmod_none'); define('RMOD_INT_ERRORPAGE', 'rmod_int'); @@ -150,11 +160,19 @@ define('RMOD_EXT_RDR', 'rmod_ext_rdr'); define('RMOD_EXT_MOVED', 'rmod_ext_mov'); define('RMOD_EXT_FOUND', 'rmod_ext_fnd'); -# GUI options -define('SQUIDGUARD_LOG_MAXCOUNT', 500); # max log lines +# 0-error, 1-warning; 2-info +define('SQUIDGUARD_INFO', 2); +define('SQUIDGUARD_WARNING', 1); +define('SQUIDGUARD_ERROR', 0); -# 0-all, 1-medium; 2-low -define('SQUIDGUARD_LOG_LEVEL', 0); +# ============================================================================== +# OPTIONS +# ============================================================================== +# Log +define('SQUIDGUARD_GUILOG_LEVEL', SQUIDGUARD_INFO); # log level +define('SQUIDGUARD_GUILOG_MAXCOUNT', 500); # log max lines +define('SQUIDGUARD_GUILOG_ENABLE', true); # on/off gui log - option override GUI settings +define('SQUIDGUARD_LOG_ENABLE', true); # on/off SG log - option override GUI settings # define('FLT_DEFAULT_ALL', 'all'); @@ -166,6 +184,7 @@ define('OWNER_NAME', 'proxy'); # Debug define('DEBUG_ON', 'true'); + # ============================================================================== # black list # ============================================================================== @@ -186,10 +205,6 @@ define('FLT_WAREZ', 'warez'); # ============================================================================== # SquidGuard Configurator # ============================================================================== -$squidguard_config = array(); # squidGuard config array - -# call default init -sg_init(); # ------------------------------------------------------------------------------ # squidguard system fields @@ -244,6 +259,11 @@ define('F_NOTALLOWINGIP', 'notallowingip'); # not allo define('F_USERNAME', 'username'); define('F_ORDER', 'order'); +# log +define('F_ENABLELOG', 'enablelog'); +define('F_ENABLEGUILOG', 'enableguilog'); +define('F_LOGROTATION', 'logrotation'); + # transparent mode define('F_SQUID_TRANSPARENT_MODE', 'squid_transparent_mode'); define('F_CURRENT_LAN_IP', 'current_lan_ip'); @@ -251,6 +271,14 @@ define('F_CURRENT_GUI_PORT', 'current_gui_port'); define('F_CURRENT_GUI_PROTO', 'current_gui_protocol'); # ------------------------------------------------------------------------------ +# Globals +# ------------------------------------------------------------------------------ +$squidguard_config = array(); # squidGuard config array + +# call default init +sg_init(); + +# ------------------------------------------------------------------------------ # sg_init - initialize config array # ------------------------------------------------------------------------------ function sg_init($init = '') @@ -265,9 +293,11 @@ function sg_init($init = '') $squidguard_config[F_WORKDIR] = SQUIDGUARD_WORKDIR_DEF; $squidguard_config[F_BINPATH] = SQUIDGUARD_BINPATH_DEF; $squidguard_config[F_SQUIDCONFIGFILE] = SQUID_CONFIGFILE; - $squidguard_config[F_PROCCESSCOUNT] = REDIRECTOR_PROCESS_COUNT; + $squidguard_config[F_PROCCESSCOUNT] = REDIRECTOR_PROCESS_COUNT; } else { - $squidguard_config = $init; + # copy config from $init + foreach($init as $key => $in) + $squidguard_config[$key] = $in; } return $squidguard_config; @@ -286,11 +316,11 @@ function sg_load_configxml($filename) if (!empty($xmlconf)) { $squidguard_config = $xmlconf[F_SQUIDGUARD]; - sg_addlog("sg_load_configxml: Success update from '$filename'.", 1); + sg_addlog("sg_load_configxml", "Success update from '$filename'.", SQUIDGUARD_INFO); } else - sg_addlog("sg_load_configxml: Error, file '$filename' is empty.", 2); + sg_addlog("sg_load_configxml", "File '$filename' is empty.", SQUIDGUARD_ERROR); } else - sg_addlog("sg_load_configxml: Error, file '$filename' does not exists.", 2); + sg_addlog("sg_load_configxml", "File '$filename' does not exists.", SQUIDGUARD_ERROR); } # ------------------------------------------------------------------------------ @@ -328,9 +358,9 @@ function sg_reconfigure() file_put_contents('/usr/local/etc/squid' . SQUIDGUARD_CONFIGFILE, $conf); # << squidGuard want config '/usr/local/etc/squid' by default set_file_access($squidguard_config[F_WORKDIR], OWNER_NAME, 0755); conf_mount_ro(); - sg_addlog("sg_reconfigure: save squidGuard config to '$conf_file'.", 1); + sg_addlog("sg_reconfigure", "Save squidGuard config to '$conf_file'.", SQUIDGUARD_INFO); } else - sg_addlog("sg_reconfigure: error make squidGuard config.", 2); + sg_addlog("sg_reconfigure", "Can't create squidGuard config.", SQUIDGUARD_ERROR); # 4. reconfigure squid squid_reconfigure(); @@ -361,7 +391,7 @@ function squid_reconfigure($remove_only = '') (strpos($t_opt, REDIRECT_CHILDREN_OPT) === 0)) unset($conf[$key]); } - sg_addlog("squid_reconfigure: Remove old redirector options from Squid config.", 1); + sg_addlog("squid_reconfigure", "Remove old redirector options from Squid config.", SQUIDGUARD_INFO); } # add new options - if squidGuard enabled @@ -373,7 +403,7 @@ function squid_reconfigure($remove_only = '') $conf[] = REDIRECT_BYPASS_OPT . " on"; $conf[] = REDIRECT_CHILDREN_OPT . " " . REDIRECTOR_PROCESS_COUNT; - sg_addlog("squid_reconfigure: Add new redirector options to Squid config.", 1); + sg_addlog("squid_reconfigure", "Add new redirector options to Squid config.", SQUIDGUARD_INFO); } # update config @@ -400,36 +430,40 @@ function sg_check_system() if (!file_exists($work_dir)) { mwexec("mkdir -p $work_dir"); set_file_access($work_dir, OWNER_NAME, 0755); - sg_addlog("sg_check_system: Create work dir '$work_dir'.", 1); + sg_addlog("sg_check_system", "Create work dir '$work_dir'.", SQUIDGUARD_WARNING); } } - unset($work_dir); # check log_dir & create if not exists $log_dir = $squidguard_config[F_LOGDIR]; if (!empty($log_dir)) { if (!file_exists($log_dir)) { mwexec("mkdir -p $log_dir"); - sg_addlog("sg_check_system: Create log dir '$log_dir'.", 1); + sg_addlog("sg_check_system", "Create log dir '$log_dir'.", SQUIDGUARD_WARNING); } # set access right - need start any time; # (SG possible start from console and log file will have only root access) set_file_access($log_dir, OWNER_NAME, 0755); } - unset($log_dir); # check db dir $db_dir = $squidguard_config[F_DBHOME]; if (!empty($db_dir)) { if (!file_exists($db_dir)) { mwexec("mkdir -p $db_dir"); - sg_addlog("sg_check_system: Create db dir '$db_dir'.", 1); + sg_addlog("sg_check_system", "Create db dir '$db_dir'.", SQUIDGUARD_WARNING); } # set access right set_file_access($db_dir, OWNER_NAME, 0755); } - unset($db_dir); conf_mount_ro(); + + # logrotate + if (file_exists(SQUIDGUARD_SCR_LOGROTATE)) unlink(SQUIDGUARD_SCR_LOGROTATE); + if ($squidguard_config[F_LOGROTATION] == 'on') { + file_put_contents(SQUIDGUARD_SCR_LOGROTATE, sg_script_logrotate()); + set_file_access (SQUIDGUARD_SCR_LOGROTATE, OWNER_NAME, 0755); + } } # ============================================================================== # squidGuard DB @@ -442,16 +476,16 @@ function sg_reconfigure_user_db() conf_mount_rw(); $dbhome = $squidguard_config[F_DBHOME]; - sg_addlog("sg_reconfigure_user_db: Begin with '$dbhome'", 1); + sg_addlog("sg_reconfigure_user_db", "Begin with '$dbhome'", SQUIDGUARD_INFO); # create user DB catalog, if not extsts if (!file_exists($dbhome)) { if (!mkdir($dbhome, 0755)) { - sg_addlog("sg_reconfigure_user_db: Error create user DB directory '$dbhome'.", 2); + sg_addlog("sg_reconfigure_user_db", "Can't create user DB directory '$dbhome'.", SQUIDGUARD_ERROR); return; } set_file_access($dbhome, OWNER_NAME, 0755); - sg_addlog("sg_reconfigure_user_db: Create user DB directory '$dbhome'.", 1); + sg_addlog("sg_reconfigure_user_db", "Create user DB directory '$dbhome'.", SQUIDGUARD_INFO); } # update destinations to db @@ -460,7 +494,7 @@ function sg_reconfigure_user_db() $dst_names = Array(); $dst_list = Array(); - sg_addlog("sg_reconfigure_user_db: Add user entries", 1); + sg_addlog("sg_reconfigure_user_db", "Add user entries", SQUIDGUARD_INFO); foreach($dests[F_ITEM] as $dst) { $path = "$dbhome/" . $dst[F_NAME]; $dst_names[] = $path; @@ -469,10 +503,10 @@ function sg_reconfigure_user_db() # 1. check destination catalog and create them, if need if (!file_exists($path)) { if (!mkdir ($path, 0755)) { - sg_addlog("sg_reconfigure_user_db: Error create dir '$path'.", 2); + sg_addlog("sg_reconfigure_user_db", "Can't create dir '$path'.", SQUIDGUARD_ERROR); return; } - sg_addlog("sg_reconfigure_user_db: Create dir '$path'.", 1); + sg_addlog("sg_reconfigure_user_db", "Create dir '$path'.", SQUIDGUARD_INFO); } # 2. build domains file @@ -480,7 +514,7 @@ function sg_reconfigure_user_db() if (!empty($domains)) { $content = trim(str_replace(" ", "\n", $domains)); file_put_contents($path . '/domains', $content); - sg_addlog("sg_reconfigure_user_db: -- add {$dst[F_NAME]} domains '$domains';", 1); + sg_addlog("sg_reconfigure_user_db", "Add {$dst[F_NAME]} domains '$domains';", SQUIDGUARD_INFO); } unset($domains); @@ -489,7 +523,7 @@ function sg_reconfigure_user_db() if (!empty($urls)) { $content = trim(str_replace(" ", "\n", $urls)); file_put_contents($path . '/urls', $content); - sg_addlog("sg_reconfigure_user_db: -- add {$dst[F_NAME]} urls '$content';", 1); + sg_addlog("sg_reconfigure_user_db", "Add {$dst[F_NAME]} urls '$content';", SQUIDGUARD_INFO); } unset($urls); @@ -499,7 +533,7 @@ function sg_reconfigure_user_db() $content = trim(str_replace("|", " ", $expr)); # delete first and last unnecessary '|' symbol $content = str_replace(" ", "|", $content); file_put_contents($path . '/expressions', $content); - sg_addlog("sg_reconfigure_user_db: -- add {$dst[F_NAME]} expressions '$content';", 1); + sg_addlog("sg_reconfigure_user_db", "Add {$dst[F_NAME]} expressions '$content';", SQUIDGUARD_INFO); } unset($expr); } @@ -510,7 +544,7 @@ function sg_reconfigure_user_db() # 6. rebuild user db ('/var/db/squidGuard') sg_rebuild_db("_usrdb", $dbhome, $dst_list); } else - sg_addlog("sg_reconfigure_user_db: Nothing. User destinations list empty.", 2); + sg_addlog("sg_reconfigure_user_db", "User destinations list empty.", SQUIDGUARD_WARNING); # 7. remove unused db entries sg_remove_unused_db_entries(); @@ -557,9 +591,9 @@ function sg_remove_unused_db_entries() if (!empty($fd) && ($fd != ".") && ($fd != "..")) { if (file_exists($file_fd)) { mwexec("rm -R $file_fd"); - sg_addlog("sg_remove_unused_db_entries: Removed file '$file_fd'.", 1); + sg_addlog("sg_remove_unused_db_entries", "Removed file '$file_fd'.", SQUIDGUARD_INFO); } else - sg_addlog("sg_remove_unused_db_entries: File'$file_fd' not found.", 2); + sg_addlog("sg_remove_unused_db_entries", "File'$file_fd' not found.", SQUIDGUARD_ERROR); } } } @@ -586,7 +620,7 @@ function sg_rebuild_db($shtag, $rdb_dbhome, $rdb_itemslist) # current dbhome dir if (!empty($rdb_dbhome)) $dbhome = $rdb_dbhome; - sg_addlog("sg_rebuild_db: Begin with path '$dbhome'.", 1); + sg_addlog("sg_rebuild_db", "Begin with path '$dbhome'.", SQUIDGUARD_INFO); # define - where config will placed $conf_path = "/tmp/squidGuard_rebuild.conf" . $shtag; @@ -595,7 +629,7 @@ function sg_rebuild_db($shtag, $rdb_dbhome, $rdb_itemslist) $conf = sg_create_simple_config($dbhome, $rdb_itemslist); file_put_contents($conf_path, $conf); set_file_access($conf_path, OWNER_NAME, 0750); - sg_addlog("sg_rebuild_db: Create temporary config '$conf_path'.", 1); + sg_addlog("sg_rebuild_db", "Create temporary config '$conf_path'.", SQUIDGUARD_INFO); # *** SH script *** $sh_scr = Array(); @@ -617,7 +651,7 @@ function sg_rebuild_db($shtag, $rdb_dbhome, $rdb_itemslist) set_file_access($shfile, OWNER_NAME, 0750); # ! not background exec ! mwexec($shfile); - sg_addlog("sg_rebuild_db: Started SH script '$shfile'.", 1); + sg_addlog("sg_rebuild_db", "Started SH script '$shfile'.", SQUIDGUARD_INFO); conf_mount_ro(); } @@ -626,15 +660,27 @@ function sg_rebuild_db($shtag, $rdb_dbhome, $rdb_itemslist) # ------------------------------------------------------------------------------ # sg_addlog # ------------------------------------------------------------------------------ -function sg_addlog($log, $level = 0) +function sg_addlog($module, $log, $level = 0) { global $squidguard_config; + # log disabled + if ( SQUIDGUARD_GUILOG_ENABLE === false || $squidguard_config[F_ENABLEGUILOG] != 'on' ) return; + # log level - if ($level < SQUIDGUARD_LOG_LEVEL) return; + if ($level > SQUIDGUARD_GUILOG_LEVEL) return; + + if ($module) $module = "[$module]"; + + $leveltext = ""; + switch($level) { + case SQUIDGUARD_INFO: $leveltext = ""; break; + case SQUIDGUARD_WARNING: $leveltext = "Warning"; break; + default: $leveltext = "Error"; break; + } $logfile = ''; - $logfile = SQUIDGUARD_LOGDIR_DEF . SQUIDGUARDCONF_LOGFILE; + $logfile = SQUIDGUARD_LOGDIR_DEF . SQUIDGUARD_CONFLOGFILE; $log_content = array(); setlocale(LC_TIME, ''); @@ -643,9 +689,9 @@ function sg_addlog($log, $level = 0) # define logfile if (!empty($squidguard_config)) { if (file_exists($squidguard_config[F_LOGDIR])) - $logfile = $squidguard_config[F_LOGDIR] . SQUIDGUARDCONF_LOGFILE; + $logfile = $squidguard_config[F_LOGDIR] . SQUIDGUARD_CONFLOGFILE; } else - $log_content[] = "$dt : " . "sg_addlog: Error: squidguard_config is empty"; + $log_content[] = "$dt : " . "[sg_addlog] Error: squidguard_config is empty"; $tmplog = ''; if (file_exists($logfile)) @@ -654,9 +700,9 @@ function sg_addlog($log, $level = 0) unset($tmplog); # shrink to MAXCOUNT log entries - $log_content[] = "$dt : $log"; - if (count($log_content) > SQUIDGUARD_LOG_MAXCOUNT) - array_splice($log_content, 0, SQUIDGUARD_LOG_MAXCOUNT - count($log_content)); + $log_content[] = "$dt : $module $leveltext $log"; + if (count($log_content) > SQUIDGUARD_GUILOG_MAXCOUNT) + array_splice($log_content, 0, SQUIDGUARD_GUILOG_MAXCOUNT - count($log_content)); file_put_contents($logfile, implode("\n", $log_content)); } @@ -667,11 +713,11 @@ function sg_getlog($last_entries_count) { global $squidguard_config; $log_content = ''; - $logfile = SQUIDGUARD_LOGDIR_DEF . SQUIDGUARDCONF_LOGFILE; + $logfile = SQUIDGUARD_LOGDIR_DEF . SQUIDGUARD_CONFLOGFILE; # define logfile if (!empty($squidguard_config) && file_exists($squidguard_config[F_LOGDIR])) - $logfile = $squidguard_config[F_LOGDIR] . SQUIDGUARDCONF_LOGFILE; + $logfile = $squidguard_config[F_LOGDIR] . SQUIDGUARD_CONFLOGFILE; # get log last 100 entries if (file_exists($logfile)) { @@ -702,14 +748,14 @@ function sg_create_config() $temp_str = ''; if(!is_array($squidguard_config) || empty($squidguard_config)) { - sg_addlog("sg_create_config: Error squidguard config data.", 2); + sg_addlog("sg_create_config", "Bad squidGuard config data.", SQUIDGUARD_ERROR); return sg_create_simple_config('', '', SG_ERR0 . " (sg_create_config: [1])."); } # check configuration data if (!sg_check_config_data(&$error_res)) { - sg_addlog("sg_create_config: Error config data. It's all error_res: \n$error_res", 2); - sg_addlog("sg_create_config: Terminated.", 2); + sg_addlog("sg_create_config", "Bad config data. It's all error_res: $error_res", SQUIDGUARD_ERROR); + sg_addlog("sg_create_config", "Terminated.", SQUIDGUARD_ERROR); return sg_create_simple_config('', '', SG_ERR0 . " (sg_create_config: [2])."); } @@ -737,7 +783,7 @@ function sg_create_config() } # log $temp_str = !empty($temp_str) ? $temp_str : "Nothing."; - sg_addlog("sg_create_config: add times: \n $temp_str", 1); + sg_addlog("sg_create_config", "Add times: $temp_str", SQUIDGUARD_INFO); } # --- Sources --- @@ -756,7 +802,10 @@ function sg_create_config() elseif (is_domain_valid($sr)) $sg_tag->items[] = "domain $sr"; elseif (is_username($sr)) $sg_tag->items[] = "user " . str_replace("'", "", $sr); } - if ($src[F_LOG]) $sg_tag->items[] = "log " . SQUIDGUARD_ACCESSBLOCK_FILE; + + if ($squidguard_config[F_ENABLELOG] == 'on' ) { + if ($src[F_LOG]) $sg_tag->items[] = "log " . SQUIDGUARD_LOGFILE; + } $sgconf[] = ""; $sgconf[] = $sg_tag->tag_text(); @@ -766,7 +815,7 @@ function sg_create_config() } # log $temp_str = !empty($temp_str) ? $temp_str : "Nothing."; - sg_addlog("sg_create_config: add sources: \n $temp_str", 1); + sg_addlog("sg_create_config", "Add sources: $temp_str", SQUIDGUARD_INFO); } # --- Blacklist --- @@ -776,7 +825,7 @@ function sg_create_config() if (($squidguard_config[F_BLACKLISTENABLED] === 'on') and $db_entries) { $log_entr_added = ''; $log_entr_ignored = ''; - sg_addlog("sg_create_config: add blacklist entries", 1); + sg_addlog("sg_create_config", "Add blacklist entries", SQUIDGUARD_INFO); foreach($db_entries as $key => $ent) { $ent_state = array(); $file_dms = "{$squidguard_config[F_DBHOME]}/$ent/domains"; @@ -805,7 +854,9 @@ function sg_create_config() if ($ent_state[F_DOMAINS]) $sg_tag->items[] = "domainlist $ent/domains"; if ($ent_state[F_EXPRESSIONS]) $sg_tag->items[] = "expressionlist $ent/expressions"; if ($ent_state[F_URLS]) $sg_tag->items[] = "urllist $ent/urls"; - $sg_tag->items[] = "log ". SQUIDGUARD_ACCESSBLOCK_FILE; + if ($squidguard_config[F_ENABLELOG] == 'on' ) { + $sg_tag->items[] = "log ". SQUIDGUARD_LOGFILE; + } $sgconf[] = ""; $sgconf[] = $sg_tag->tag_text(); @@ -819,8 +870,8 @@ function sg_create_config() } # log 'added' and 'ignored' - if (!empty($log_entr_added)) sg_addlog("sg_create_config: added: \n $log_entr_added \n", 1); - if (!empty($log_entr_ignored)) sg_addlog("sg_create_config: ignored: \n $log_entr_ignored \n", 2); + if (!empty($log_entr_added)) sg_addlog("sg_create_config", "Added: $log_entr_added .", SQUIDGUARD_INFO); + if (!empty($log_entr_ignored)) sg_addlog("sg_create_config", "Ignored: $log_entr_ignored .", SQUIDGUARD_WARNING); } # --- Destinations --- @@ -839,8 +890,10 @@ function sg_create_config() $sg_tag->items[] = "urllist $dstname/urls"; if ($dst[F_RMOD] != RMOD_NONE) $sg_tag->items[] = "redirect " . sg_redirector_base_url($dst[F_REDIRECT], $dst[F_RMOD]); - if ($dst[F_LOG]) - $sg_tag->items[] = "log " . SQUIDGUARD_ACCESSBLOCK_FILE; + if ($squidguard_config[F_ENABLELOG] == 'on' ) { + if ($dst[F_LOG]) + $sg_tag->items[] = "log " . SQUIDGUARD_LOGFILE; + } $sgconf[] = ""; $sgconf[] = $sg_tag->tag_text(); @@ -850,7 +903,7 @@ function sg_create_config() } # log $temp_str = !empty($temp_str) ? $temp_str : "Nothing."; - sg_addlog("sg_create_config: add destinations: \n $temp_str", 1); + sg_addlog("sg_create_config", "Add destinations: $temp_str", SQUIDGUARD_INFO); } # --- Rewrites --- @@ -866,8 +919,10 @@ function sg_create_config() foreach ($rew[F_ITEM] as $rw) $sg_tag->items[] = "s@{$rw[F_TARGETURL]}@{$rw[F_REPLACETO]}@{$rw[F_MODE]}"; - if ($rew[F_LOG]) - $sg_tag->items[] = "log " . SQUIDGUARD_ACCESSBLOCK_FILE; + if ($squidguard_config[F_ENABLELOG] == 'on' ) { + if ($rew[F_LOG]) + $sg_tag->items[] = "log " . SQUIDGUARD_LOGFILE; + } $sgconf[] = ""; $sgconf[] = $sg_tag->tag_text(); @@ -883,8 +938,8 @@ function sg_create_config() } # log - if (!empty($log_entr_added)) sg_addlog("sg_create_config: add rewrites: success $log_entr_added", 1); - if (!empty($log_entr_err)) sg_addlog("sg_create_config: add rewrites: error $log_entr_err", 1); + if (!empty($log_entr_added)) sg_addlog("sg_create_config", "Add rewrites: $log_entr_added", SQUIDGUARD_INFO); + if (!empty($log_entr_err)) sg_addlog("sg_create_config", "Add rewrites error $log_entr_err", SQUIDGUARD_ERROR); } # ---------------------------------------- @@ -923,8 +978,10 @@ function sg_create_config() $sg_acltag->items[] = "redirect " . sg_redirector_base_url($acl[F_REDIRECT], $acl[F_RMOD]); if ($acl[F_REWRITENAME]) $sg_acltag->items[] = "rewrite {$acl[F_REWRITENAME]}"; - if ($acl[F_LOG]) - $sg_acltag->items[] = "log " . SQUIDGUARD_ACCESSBLOCK_FILE; + if ($squidguard_config[F_ENABLELOG] == 'on' ) { + if ($acl[F_LOG]) + $sg_acltag->items[] = "log " . SQUIDGUARD_LOGFILE; + } # overtime if ($acl[F_TIMENAME]) { @@ -934,8 +991,10 @@ function sg_create_config() $sg_acltag->items[] = "redirect " . sg_redirector_base_url($acl[F_OVERREDIRECT], $acl[F_RMOD]); if ($acl[F_OVERREWRITENAME]) $sg_acltag->items[] = "rewrite {$acl[F_OVERREWRITENAME]}"; - if ($acl[F_LOG]) - $sg_acltag->items[] = "log " . SQUIDGUARD_ACCESSBLOCK_FILE; + if ($squidguard_config[F_ENABLELOG] == 'on' ) { + if ($acl[F_LOG]) + $sg_acltag->items[] = "log " . SQUIDGUARD_LOGFILE; + } } $sg_tag->items[] = $sg_acltag; } @@ -943,14 +1002,14 @@ function sg_create_config() } # log $log_entr_added = !empty($log_entr_added) ? $log_entr_added : "Nothing."; - sg_addlog("sg_create_config: add ACL's: \n $log_entr_added", 1); + sg_addlog("sg_create_config", "Add ACL's: $log_entr_added", SQUIDGUARD_INFO); } # --- Default --- $sg_tag_def = new TSgTag; $sg_tag_def->set("default", "", "", ""); $def = $squidguard_config[F_DEFAULT]; - sg_addlog("sg_create_config: add Default", 1); + sg_addlog("sg_create_config", "Add Default", SQUIDGUARD_INFO); if ($def) { $temp_str = ''; @@ -971,16 +1030,17 @@ function sg_create_config() $sg_tag_def->items[] = "redirect " . sg_redirector_base_url($def[F_REDIRECT], $def[F_RMOD]); if ($def[F_REWRITENAME]) $sg_tag_def->items[] = "rewrite {$def[F_REWRITENAME]}"; - if ($def[F_LOG]) - $sg_tag_def->items[] = "log " . SQUIDGUARD_ACCESSBLOCK_FILE; - + if ($squidguard_config[F_ENABLELOG] == 'on' ) { + if ($def[F_LOG]) + $sg_tag_def->items[] = "log " . SQUIDGUARD_LOGFILE; + } } # <- if def else { - $msg = "Error: ACL 'default' is empty, will use default 'block all'"; + $msg = "ACL 'default' is empty, will use default 'block all'"; $sg_tag_def->items[] = "# $msg"; $sg_tag_def->items[] = "pass none"; $sg_tag_def->items[] = "redirect " . sg_redirector_base_url('', RMOD_INT_ERRORPAGE); - sg_addlog("sg_create_config: $msg.", 2); + sg_addlog("sg_create_config", "$msg.", SQUIDGUARD_ERROR); } # --- ACL end --- @@ -1014,7 +1074,7 @@ function sg_create_simple_config($blk_dbhome, $blk_destlist, $redirect_to = "404 # current dbhome dir if (!empty($blk_dbhome)) $dbhome = $blk_dbhome; - sg_addlog("sg_create_simple_config: Begin with dbhome='$dbhome'.", 1); + sg_addlog("sg_create_simple_config", "Begin with dbhome='$dbhome'.", SQUIDGUARD_INFO); # header $sgconf[] = CONFIG_SG_HEADER; @@ -1038,9 +1098,9 @@ function sg_create_simple_config($blk_dbhome, $blk_destlist, $redirect_to = "404 if (!empty($tmp_s)) { $tmp_s = implode("\n", $tmp_s); $sgconf[] = "dest $dst {\n $tmp_s \n}\n"; - sg_addlog("sg_create_simple_config: -- added item '$dst' = '$dbhome/$dpath'."); + sg_addlog("sg_create_simple_config", "Added item '$dst' = '$dbhome/$dpath'.", SQUIDGUARD_INFO); } else - sg_addlog("sg_create_simple_config: -- ignored empty item '$dst' = '$dbhome/$dpath'."); + sg_addlog("sg_create_simple_config", "Ignored empty item '$dst' = '$dbhome/$dpath'.", SQUIDGUARD_WARNING); } } @@ -1075,8 +1135,8 @@ function sg_redirector_base_url($rdr_info, $redirect_mode) $errmsg = ''; if (!sg_check_redirect($redirect_mode, $rdr_info, &$errmsg)) { $redirect_mode = RMOD_INT_ERRORPAGE; - $rdr_info = "Redirect settings error. $errmsg Check you configuration."; - sg_addlog("sg_redirector_base_url: ERROR: $errmsg"); + $rdr_info = "Bad redirect settings. $errmsg Check you configuration."; + sg_addlog("sg_redirector_base_url", "$errmsg", SQUIDGUARD_ERROR); } switch($redirect_mode) { @@ -1091,7 +1151,7 @@ function sg_redirector_base_url($rdr_info, $redirect_mode) default: $rdr_path .= "?url=" . rawurlencode("403 $rdr_info") . REDIRECT_URL_ARGS; break; } - sg_addlog("sg_redirector_base_url: Select redirector base url ($rdr_path)"); + sg_addlog("sg_redirector_base_url", "Select redirector base url ($rdr_path)", SQUIDGUARD_INFO); return $rdr_path; } @@ -1376,30 +1436,30 @@ function sg_reconfigure_blacklist($source_filename, $opt = '') $sf = trim($source_filename); $sf_contents = ''; - sg_addlog("sg_reconfigure_blacklist: Begin with '$sf'.", 1); + sg_addlog("sg_reconfigure_blacklist", "Begin with '$sf'.", SQUIDGUARD_INFO); # 1. check system sg_check_system(); # 2. upload if ($sf[0] === "/") { # local file - example '/tmp/blacklists.tar' - sg_addlog("sg_reconfigure_blacklist: Update from file '$sf'.", 1); + sg_addlog("sg_reconfigure_blacklist", "Update from file '$sf'.", SQUIDGUARD_INFO); if (file_exists($sf)) { $sf_contents = file_get_contents($sf); } else { - sg_addlog("sg_reconfigure_blacklist: Error, file '$sf' not found.", 2); + sg_addlog("sg_reconfigure_blacklist", "File '$sf' not found.", SQUIDGUARD_ERROR); return; } } # from url else { - sg_addlog("sg_reconfigure_blacklist: Upload from url '$sf'.", 1); + sg_addlog("sg_reconfigure_blacklist", "Upload from url '$sf'.", SQUIDGUARD_INFO); $sf_contents = sg_uploadfile_from_url($sf, BLK_LOCALFILE, $opt); } # 3. update if (empty($sf_contents)) { - sg_addlog("sg_reconfigure_blacklist: Error content from '$sf'.", 2); + sg_addlog("sg_reconfigure_blacklist", "Bad content from '$sf'.", SQUIDGUARD_ERROR); return; } # save black list archive content to local file @@ -1430,7 +1490,7 @@ function sg_update_blacklist($from_file) $tmp_unpack_dir = SQUIDGUARD_TMP . SQUIDGUARD_BL_UNPACK; $arc_db_dir = SQUIDGUARD_VAR . SG_BLK_ARC; - sg_addlog("sg_update_blacklist: Begin with '$from_file'.", 1); + sg_addlog("sg_update_blacklist", "Begin with '$from_file'.", SQUIDGUARD_INFO); if (file_exists($from_file)) { # check work and DB dir's @@ -1446,7 +1506,7 @@ function sg_update_blacklist($from_file) # 1. unpack archive mwexec("tar zxvf $from_file -C $tmp_unpack_dir"); set_file_access($tmp_unpack_dir, OWNER_NAME, 0755); - sg_addlog("sg_update_blacklist: Unpack uploaded file '$from_file' -> '$tmp_unpack_dir'.", 1); + sg_addlog("sg_update_blacklist", "Unpack uploaded file '$from_file' -> '$tmp_unpack_dir'.", SQUIDGUARD_INFO); # 2. copy blacklist to squidGuard base & create entries list if (file_exists($tmp_unpack_dir)) { @@ -1470,7 +1530,7 @@ function sg_update_blacklist($from_file) if (file_exists($current_dbpath)) mwexec("rm -R $current_dbpath"); mwexec("mv -f {$val['path']}/ $current_dbpath"); - sg_addlog("sg_update_blacklist: Move {$val['path']}/ -> $current_dbpath.", 1); + sg_addlog("sg_update_blacklist", "Move {$val['path']}/ -> $current_dbpath.", SQUIDGUARD_INFO); } } set_file_access($arc_db_dir, OWNER_NAME, 0755); @@ -1490,14 +1550,14 @@ function sg_update_blacklist($from_file) # $blklist_file = "{$squidguard_config[F_WORKDIR]}/" . SQUIDGUARD_BLK_ENTRIES; # file_put_contents($blklist_file, implode("\n", array_keys($blk_items))); # set_file_access ($blklist_file, OWNER_NAME, 0755); - sg_addlog("sg_update_blacklist: Create DB entries list '$blklist_file'.", 1); + sg_addlog("sg_update_blacklist", "Create DB entries list '$blklist_file'.", SQUIDGUARD_INFO); } # make rebuild config (included all found dest items) & save to work dir $conf_path = SQUIDGUARD_VAR . DB_REBUILD_BLK_CONF; # "/tmp/squidGuard_rebuild_blk.conf"; file_put_contents($conf_path, sg_create_simple_config($arc_db_dir, $blk_list)); set_file_access($conf_path, OWNER_NAME, 0755); - sg_addlog("sg_update_blacklist: Create rebuild config '$conf_path'.", 1); + sg_addlog("sg_update_blacklist", "Create rebuild config '$conf_path'.", SQUIDGUARD_INFO); # *** SH script *********************************************** $sh_scr = Array(); @@ -1537,7 +1597,7 @@ function sg_update_blacklist($from_file) # mwexec("kill `ps auxw | grep \"$shfile\" | grep -v \"grep\" | awk '{print $2}'`"); # sh script mwexec("kill `ps auxw | grep \"squidGuard_blk_rebuild\" | grep -v \"grep\" | awk '{print $2}'`"); # squidGuard process mwexec_bg("nice -n 5 $shfile"); - sg_addlog("sg_update_blacklist: Started sh script '$shfile'.", 1); + sg_addlog("sg_update_blacklist", "Started sh script '$shfile'.", SQUIDGUARD_INFO); # clearing temp # mwexec("rm -R $bl_temp"); @@ -1574,7 +1634,7 @@ function sg_blacklist_rebuild_db() $workdir = $squidguard_config[F_WORKDIR]; # current dbhome and work dir's - sg_addlog("sg_blacklist_rebuild_db: Start with path '$dbhome'.", 1); + sg_addlog("sg_blacklist_rebuild_db", "Start with path '$dbhome'.", SQUIDGUARD_INFO); # make dest list $blklist_file = "$workdir/" . SQUIDGUARD_BLK_ENTRIES; @@ -1597,7 +1657,7 @@ function sg_uploadfile_from_url($url_file, $destination_file, $proxy = '') { conf_mount_rw(); # open destination file - sg_addlog("sg_uploadfile_from_url: begin url'$url_file' proxy'$proxy'", 1); + sg_addlog("sg_uploadfile_from_url", "Begin url'$url_file' proxy'$proxy'", SQUIDGUARD_INFO); $result = ''; $ch = curl_init(); @@ -1622,7 +1682,7 @@ function sg_uploadfile_from_url($url_file, $destination_file, $proxy = '') curl_close ($ch); if (!empty($destination_file)) file_put_contents($destination_file, $result); - else sg_addlog("sg_uploadfile_from_url: Error upload file", 2); + else sg_addlog("sg_uploadfile_from_url", "Can't upload file", SQUIDGUARD_ERROR); # for test file_put_contents(BLK_LOCALFILE, $result); @@ -1676,15 +1736,15 @@ function restore_arc_blacklist() # copy arc blacklist to work DB with permissions mwexec("cp -R -p $arc_db_dir/ $dbhome"); set_file_access($dbhome, OWNER_NAME, 0755); - sg_addlog("restore_arc_blacklist: Restore blacklist archive from '$arc_db_dir'.", 1); + sg_addlog("restore_arc_blacklist", "Restore blacklist archive from '$arc_db_dir'.", SQUIDGUARD_INFO); # copy black list file copy($arc_blklist_file, $blklist_file); set_file_access($blklist_file, OWNER_NAME, 0755); - sg_addlog("restore_arc_blacklist: Restore black list file from '$arc_blklist_file' to '$blklist_file'.", 1); + sg_addlog("restore_arc_blacklist", "Restore black list file from '$arc_blklist_file' to '$blklist_file'.", SQUIDGUARD_INFO); conf_mount_ro(); } else { - sg_addlog("restore_arc_blacklist: Error, file '$arc_db_dir' or '$blklist_file' not found.", 2); + sg_addlog("restore_arc_blacklist", "File '$arc_db_dir' or '$blklist_file' not found.", SQUIDGUARD_ERROR); } } @@ -2076,6 +2136,95 @@ function acl_remove_blacklist_items($items) return $items; } +# ----------------------------------------------------------------------------- +# sg_script_logrotate +# ----------------------------------------------------------------------------- +function sg_script_logrotate() +{ + global $squidguard_config; + $sglogname = $squidguard_config[F_LOGDIR] . "/" . SQUIDGUARD_LOGFILE; + $res = +<<<EOD +#!/bin/sh +# +# This file generated automaticly with SquidGuard configurator +rm -f {$sglogname}.0 +mv -f {$sglogname} {$sglogname}.0 +EOD; + return $res; +} + +# ------------------------------------------------------------------------------ +# squidguard_setup_cron +# ------------------------------------------------------------------------------ +function squidguard_cron_install() +{ + global $squidguard_config; + + $on_off = $squidguard_config[F_LOGROTATION] == 'on'; + + $opt = ""; + if ($on_off) { + $opt = array("0", "0", "*", "*", "*", "root", "/usr/bin/nice -n20 " . SQUIDGUARD_SCR_LOGROTATE); + } + squidguard_setup_cron("squidGuard_logrotate", $opt, $on_off); +} + +# ------------------------------------------------------------------------------ +# squidguard_setup_cron +# ------------------------------------------------------------------------------ +# $options: [0]='minute', [1]='hour', [2]='mday', [3]='month', [4]='wday', [5]='who', [6]='command' +# ------------------------------------------------------------------------------ +function squidguard_setup_cron($task_key, $options, $on_off) +{ + global $config; + $cron_item = array(); + + # $on_off = TRUE/FALSE - install/deinstall cron task: + # prepare new cron item + if (is_array($options)) { + $cron_item['minute'] = $options[0]; + $cron_item['hour'] = $options[1]; + $cron_item['mday'] = $options[2]; + $cron_item['month'] = $options[3]; + $cron_item['wday'] = $options[4]; + $cron_item['who'] = ($options[5]) ? $options[5] : 'nobody'; + $cron_item['command'] = $options[6]; + } + + # unset old cron task with $task_key + if (!empty($task_key)) { + $flag_cron_upd = false; + # delete old cron task if exists + if (is_array($config['cron']['item'])) { + foreach($config['cron']['item'] as $key => $val) { + if (strpos($config['cron']['item'][$key]['command'], $task_key) !== false) { + unset($config['cron']['item'][$key]); + $flag_cron_upd = true; + break; + } + } + } + + # set new cron task + if (($on_off === true) and !empty($cron_item)) { + $config['cron']['item'][] = $cron_item; + $flag_cron_upd = true; + } + + # write config and configure cron only if cron task modified + if ($flag_cron_upd === true) { + write_config("Installed cron task '$task_key' for 'squidGuard' package"); + configure_cron(); + } + } + else { + # ! error $name ! + return; + } +} + + # @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ # classes # @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ diff --git a/config/squidGuard/squidguard_default.xml b/config/squidGuard/squidguard_default.xml index 6c9c4c95..bcb6d41b 100644 --- a/config/squidGuard/squidguard_default.xml +++ b/config/squidGuard/squidguard_default.xml @@ -2,48 +2,45 @@ <!DOCTYPE packagegui SYSTEM "../schema/packages.dtd"> <?xml-stylesheet type="text/xsl" href="../xsl/package.xsl"?> <packagegui> - <description>Describe your package here</description> - <requirements>Describe your package requirements here</requirements> - <faq>Currently there are no FAQ items provided.</faq> - - <name>squidguarddefault</name> - <version>none</version> - <title>Proxy filter SquidGuard: Default</title> - <include_file>/usr/local/pkg/squidguard.inc</include_file> - - <tabs> - <tab> - <text>General settings</text> - <url>/pkg_edit.php?xml=squidguard.xml&id=0</url> - </tab> - <tab> - <text>Default</text> - <url>/pkg_edit.php?xml=squidguard_default.xml&id=0</url> - <active/> - </tab> - <tab> - <text>ACL</text> - <url>/pkg.php?xml=squidguard_acl.xml</url> - </tab> - <tab> - <text>Destinations</text> - <url>/pkg.php?xml=squidguard_dest.xml</url> - </tab> - <tab> - <text>Times</text> - <url>/pkg.php?xml=squidguard_time.xml</url> - </tab> - <tab> - <text>Rewrites</text> - <url>/pkg.php?xml=squidguard_rewr.xml</url> - </tab> - <tab> - <text>Log</text> - <url>/pkg_edit.php?xml=squidguard_log.xml&id=0</url> - </tab> - </tabs> - - <fields> + <description>Describe your package here</description> + <requirements>Describe your package requirements here</requirements> + <faq>Currently there are no FAQ items provided.</faq> + <name>squidguarddefault</name> + <version>none</version> + <title>Proxy filter SquidGuard: Default</title> + <include_file>/usr/local/pkg/squidguard.inc</include_file> + <tabs> + <tab> + <text>General settings</text> + <url>/pkg_edit.php?xml=squidguard.xml&id=0</url> + </tab> + <tab> + <text>Default</text> + <url>/pkg_edit.php?xml=squidguard_default.xml&id=0</url> + <active/> + </tab> + <tab> + <text>ACL</text> + <url>/pkg.php?xml=squidguard_acl.xml</url> + </tab> + <tab> + <text>Destinations</text> + <url>/pkg.php?xml=squidguard_dest.xml</url> + </tab> + <tab> + <text>Times</text> + <url>/pkg.php?xml=squidguard_time.xml</url> + </tab> + <tab> + <text>Rewrites</text> + <url>/pkg.php?xml=squidguard_rewr.xml</url> + </tab> + <tab> + <text>Log</text> + <url>/squidGuard/squidguard_log.php</url> + </tab> + </tabs> + <fields> <field> <fielddescr>Default destination</fielddescr> <fieldname>dest</fieldname> @@ -120,24 +117,23 @@ <type>select</type> </field> <field> - <fielddescr>Enable log</fielddescr> + <fielddescr>Log</fielddescr> <fieldname>enablelog</fieldname> - <description>Check this for enable log.</description> + <description>Check this for log this item.</description> <type>checkbox</type> </field> - </fields> - - <custom_php_validation_command> + </fields> + <custom_php_validation_command> squidguard_validate_acl(&$_POST, &$input_errors); - </custom_php_validation_command> - <custom_php_command_before_form> + </custom_php_validation_command> + <custom_php_command_before_form> squidguard_before_form_acl(&$pkg, false); - </custom_php_command_before_form> - <custom_php_after_form_command> - squidGuard_print_javascript(); - </custom_php_after_form_command> - <custom_add_php_command/> - <custom_php_resync_config_command> + </custom_php_command_before_form> + <custom_php_after_form_command> + squidGuard_print_javascript(); + </custom_php_after_form_command> + <custom_add_php_command/> + <custom_php_resync_config_command> // squidguard_resync(); - </custom_php_resync_config_command> + </custom_php_resync_config_command> </packagegui>
\ No newline at end of file diff --git a/config/squidGuard/squidguard_dest.xml b/config/squidGuard/squidguard_dest.xml index 97f87167..bf252661 100644 --- a/config/squidGuard/squidguard_dest.xml +++ b/config/squidGuard/squidguard_dest.xml @@ -2,51 +2,47 @@ <!DOCTYPE packagegui SYSTEM "../schema/packages.dtd"> <?xml-stylesheet type="text/xsl" href="../xsl/package.xsl"?> <packagegui> - <description>Describe your package here</description> - <requirements>Describe your package requirements here</requirements> - <faq>Currently there are no FAQ items provided.</faq> - - <name>squidguarddest</name> - <version>none</version> - <title>Proxy filter SquidGuard: Destinations</title> - <include_file>/usr/local/pkg/squidguard.inc</include_file> - - <delete_string>A proxy server user has been deleted.</delete_string> - <addedit_string>A proxy server user has been created/modified.</addedit_string> - - <tabs> - <tab> - <text>General settings</text> - <url>/pkg_edit.php?xml=squidguard.xml&id=0</url> - </tab> - <tab> - <text>Default</text> - <url>/pkg_edit.php?xml=squidguard_default.xml&id=0</url> - </tab> - <tab> - <text>ACL</text> - <url>/pkg.php?xml=squidguard_acl.xml</url> - </tab> - <tab> - <text>Destinations</text> - <url>/pkg.php?xml=squidguard_dest.xml</url> - <active/> - </tab> - <tab> - <text>Times</text> - <url>/pkg.php?xml=squidguard_time.xml</url> - </tab> - <tab> - <text>Rewrites</text> - <url>/pkg.php?xml=squidguard_rewr.xml</url> - </tab> - <tab> - <text>Log</text> - <url>/pkg_edit.php?xml=squidguard_log.xml&id=0</url> - </tab> - </tabs> - - <adddeleteeditpagefields> + <description>Describe your package here</description> + <requirements>Describe your package requirements here</requirements> + <faq>Currently there are no FAQ items provided.</faq> + <name>squidguarddest</name> + <version>none</version> + <title>Proxy filter SquidGuard: Destinations</title> + <include_file>/usr/local/pkg/squidguard.inc</include_file> + <delete_string>A proxy server user has been deleted.</delete_string> + <addedit_string>A proxy server user has been created/modified.</addedit_string> + <tabs> + <tab> + <text>General settings</text> + <url>/pkg_edit.php?xml=squidguard.xml&id=0</url> + </tab> + <tab> + <text>Default</text> + <url>/pkg_edit.php?xml=squidguard_default.xml&id=0</url> + </tab> + <tab> + <text>ACL</text> + <url>/pkg.php?xml=squidguard_acl.xml</url> + </tab> + <tab> + <text>Destinations</text> + <url>/pkg.php?xml=squidguard_dest.xml</url> + <active/> + </tab> + <tab> + <text>Times</text> + <url>/pkg.php?xml=squidguard_time.xml</url> + </tab> + <tab> + <text>Rewrites</text> + <url>/pkg.php?xml=squidguard_rewr.xml</url> + </tab> + <tab> + <text>Log</text> + <url>/squidGuard/squidguard_log.php</url> + </tab> + </tabs> + <adddeleteeditpagefields> <columnitem> <fielddescr>Destination name</fielddescr> <fieldname>name</fieldname> @@ -71,9 +67,8 @@ <fielddescr>Description</fielddescr> <fieldname>description</fieldname> </columnitem> - </adddeleteeditpagefields> - - <fields> + </adddeleteeditpagefields> + <fields> <field> <fielddescr>Name</fielddescr> <fieldname>name</fieldname> @@ -164,10 +159,10 @@ <rows>2</rows> </field> <field> - <fielddescr>Enable log</fielddescr> + <fielddescr>Log</fielddescr> <fieldname>enablelog</fieldname> <type>checkbox</type> - <description>Check this for enable log.</description> + <description>Check this for log this item.</description> </field> <field> <fielddescr>Description</fielddescr> @@ -176,15 +171,14 @@ <type>input</type> <size>90</size> </field> - </fields> - - <custom_delete_php_command/> - <custom_php_validation_command> + </fields> + <custom_delete_php_command/> + <custom_php_validation_command> squidguard_validate_destination($_POST, &$input_errors); - </custom_php_validation_command> - <custom_php_resync_config_command> - </custom_php_resync_config_command> - <custom_php_after_form_command> + </custom_php_validation_command> + <custom_php_resync_config_command> + </custom_php_resync_config_command> + <custom_php_after_form_command> squidGuard_print_javascript(); - </custom_php_after_form_command> + </custom_php_after_form_command> </packagegui>
\ No newline at end of file diff --git a/config/squidGuard/squidguard_log.xml b/config/squidGuard/squidguard_log.xml index ed3c7a9d..654c0917 100644 --- a/config/squidGuard/squidguard_log.xml +++ b/config/squidGuard/squidguard_log.xml @@ -5,15 +5,12 @@ <description>Describe your package here</description> <requirements>Describe your package requirements here</requirements> <faq>Currently there are no FAQ items provided.</faq> - <name>squidguardlog</name> <version>none</version> <title>Proxy filter SquidGuard: Log</title> <include_file>/usr/local/pkg/squidguard.inc</include_file> - <delete_string>A proxy server user has been deleted.</delete_string> <addedit_string>A proxy server user has been created/modified.</addedit_string> - <tabs> <tab> <text>General settings</text> @@ -41,17 +38,17 @@ </tab> <tab> <text>Log</text> - <url>/pkg_edit.php?xml=squidguard_log.xml&id=0</url> + <url>/squidGuard/squidguard_log.php</url> <active/> </tab> </tabs> - +<advanced_options>enabled</advanced_options> <fields> <field> <fielddescr>Log type</fielddescr> <fieldname>logtype</fieldname> <description></description> - <type>select</type> + <type>input</type> <value>access_log</value> <options> <option><name>Blocked URL's log</name><value>block_log</value></option> @@ -61,8 +58,67 @@ <option><name>squidGuard config</name><value>squidguard_config</value></option> </options> </field> + <field> + <fielddescr>Log type</fielddescr> + <fieldname>logtype</fieldname> + <description></description> + <type>listtopic</type> +<name>Ext</name> + <value>access_log</value> + <options> + <option><name>Blocked URL's log</name><value>block_log</value></option> + <option><name>Configurator log</name><value>configurator_log</value></option> + <option><name>squidGuard log</name><value>squidguard_log</value></option> + <option><name>squid config</name><value>squid_config</value></option> + <option><name>squidGuard config</name><value>squidguard_config</value></option> + </options> + </field> + <field> + <fielddescr>Log type</fielddescr> + <fieldname>logtype</fieldname> + <description></description> + <type>input</type> + <value>access_log</value> + <options> + <option><name>Blocked URL's log</name><value>block_log</value></option> + <option><name>Configurator log</name><value>configurator_log</value></option> + <option><name>squidGuard log</name><value>squidguard_log</value></option> + <option><name>squid config</name><value>squid_config</value></option> + <option><name>squidGuard config</name><value>squidguard_config</value></option> + </options> +<advancedfield/> + </field> + <field> + <fielddescr>Log type</fielddescr> + <fieldname>logtype2</fieldname> + <description></description> + <type>input</type> + <value>access_log</value> + <options> + <option><name>Blocked URL's log</name><value>block_log</value></option> + <option><name>Configurator log</name><value>configurator_log</value></option> + <option><name>squidGuard log</name><value>squidguard_log</value></option> + <option><name>squid config</name><value>squid_config</value></option> + <option><name>squidGuard config</name><value>squidguard_config</value></option> + </options> +<advancedfield/> + </field> + <field> + <fielddescr>Log type</fielddescr> + <fieldname>logtype1</fieldname> + <description></description> + <type>input</type> + <value>access_log</value> + <options> + <option><name>Blocked URL's log</name><value>block_log</value></option> + <option><name>Configurator log</name><value>configurator_log</value></option> + <option><name>squidGuard log</name><value>squidguard_log</value></option> + <option><name>squid config</name><value>squid_config</value></option> + <option><name>squidGuard config</name><value>squidguard_config</value></option> + </options> +<advancedfield/> + </field> </fields> - <custom_php_command_before_form> squidguard_before_form_log(&$pkg); </custom_php_command_before_form> @@ -73,4 +129,4 @@ </custom_php_validation_command> <custom_php_resync_config_command> </custom_php_resync_config_command> -</packagegui> +</packagegui>
\ No newline at end of file diff --git a/config/squidGuard/squidguard_rewr.xml b/config/squidGuard/squidguard_rewr.xml index f92a855b..4a2a71f3 100644 --- a/config/squidGuard/squidguard_rewr.xml +++ b/config/squidGuard/squidguard_rewr.xml @@ -5,12 +5,10 @@ <description>Describe your package here</description> <requirements>Describe your package requirements here</requirements> <faq>Currently there are no FAQ items provided.</faq> - <name>squidguardrewrite</name> <version>none</version> <title>Proxy filter SquidGuard: Rewrites</title> <include_file>/usr/local/pkg/squidguard.inc</include_file> - <tabs> <tab> <text>General settings</text> @@ -39,10 +37,9 @@ </tab> <tab> <text>Log</text> - <url>/pkg_edit.php?xml=squidguard_log.xml&id=0</url> + <url>/squidGuard/squidguard_log.php</url> </tab> </tabs> - <adddeleteeditpagefields> <columnitem> <fielddescr>Name</fielddescr> @@ -53,7 +50,6 @@ <fieldname>description</fieldname> </columnitem> </adddeleteeditpagefields> - <fields> <field> <fielddescr>Name</fielddescr> @@ -77,13 +73,13 @@ <fielddescr>Target URL or regular expression</fielddescr> <fieldname>targeturl</fieldname> <type>input</type> - <size>45</size> + <size>35</size> </rowhelperfield> <rowhelperfield> <fielddescr>Replace to URL</fielddescr> <fieldname>replaceto</fieldname> <type>input</type> - <size>45</size> + <size>35</size> </rowhelperfield> <rowhelperfield> <fielddescr>Opt.</fielddescr> @@ -111,9 +107,9 @@ </rowhelper> </field> <field> - <fielddescr>Enable log</fielddescr> + <fielddescr>Log</fielddescr> <fieldname>enablelog</fieldname> - <description>Check this for enable log.</description> + <description>Check this for log this item.</description> <type>checkbox</type> </field> <field> @@ -129,7 +125,6 @@ <size>100</size> </field> </fields> - <custom_php_after_form_command> squidGuard_print_javascript(); </custom_php_after_form_command> @@ -139,4 +134,4 @@ <custom_php_resync_config_command> // squidguard_resync_rewrite(); </custom_php_resync_config_command> -</packagegui> +</packagegui>
\ No newline at end of file diff --git a/config/squidGuard/squidguard_time.xml b/config/squidGuard/squidguard_time.xml index f4d7ee06..83347fad 100644 --- a/config/squidGuard/squidguard_time.xml +++ b/config/squidGuard/squidguard_time.xml @@ -5,15 +5,12 @@ <description>Describe your package here</description> <requirements>Describe your package requirements here</requirements> <faq>Currently there are no FAQ items provided.</faq> - <name>squidguardtime</name> <version>none</version> <title>Proxy filter SquidGuard: Times</title> <include_file>/usr/local/pkg/squidguard.inc</include_file> - <delete_string>A proxy server user has been deleted.</delete_string> <addedit_string>A proxy server user has been created/modified.</addedit_string> - <tabs> <tab> <text>General settings</text> @@ -42,10 +39,9 @@ </tab> <tab> <text>Log</text> - <url>/pkg_edit.php?xml=squidguard_log.xml&id=0</url> + <url>/squidGuard/squidguard_log.php</url> </tab> </tabs> - <adddeleteeditpagefields> <columnitem> <fielddescr>Timename</fielddescr> @@ -130,7 +126,6 @@ <size>80</size> </field> </fields> - <custom_php_after_form_command> squidGuard_print_javascript(); </custom_php_after_form_command> @@ -140,4 +135,4 @@ <custom_php_resync_config_command> // squidguard_resync_time(); </custom_php_resync_config_command> -</packagegui> +</packagegui>
\ No newline at end of file |