aboutsummaryrefslogtreecommitdiffstats
path: root/config/dansguardian/dansguardian.inc
diff options
context:
space:
mode:
authormarcelloc <marcellocoutinho@gmail.com>2012-09-21 16:55:58 -0300
committermarcelloc <marcellocoutinho@gmail.com>2012-09-21 16:55:58 -0300
commitcb095ccc599838a8afeaba6d511362fd20006962 (patch)
tree87cb529ed074a2fcc16dc0e78376281fbabacb1a /config/dansguardian/dansguardian.inc
parentd05507da5af503fcfad713c3ff24b1d849f951d0 (diff)
downloadpfsense-packages-cb095ccc599838a8afeaba6d511362fd20006962.tar.gz
pfsense-packages-cb095ccc599838a8afeaba6d511362fd20006962.tar.bz2
pfsense-packages-cb095ccc599838a8afeaba6d511362fd20006962.zip
dansguardian - add multiple select option to dansguardian group acl
Diffstat (limited to 'config/dansguardian/dansguardian.inc')
-rwxr-xr-xconfig/dansguardian/dansguardian.inc82
1 files changed, 69 insertions, 13 deletions
diff --git a/config/dansguardian/dansguardian.inc b/config/dansguardian/dansguardian.inc
index f61936a7..4bb30cce 100755
--- a/config/dansguardian/dansguardian.inc
+++ b/config/dansguardian/dansguardian.inc
@@ -29,7 +29,7 @@
*/
require_once("util.inc");
-require("globals.inc");
+require_once("globals.inc");
#require("guiconfig.inc");
$pf_version=substr(trim(file_get_contents("/etc/version")),0,3);
@@ -269,7 +269,7 @@ function sync_package_dansguardian() {
"/lists/exceptioniplist",
"/lists/pics");
- $dansguardian_dir="/usr/local/etc/dansguardian";
+ $dansguardian_dir= DANSGUARDIAN_DIR . "/etc/dansguardian";
foreach ($files as $file)
if (! file_exists($dansguardian_dir.$file.'.sample')){
$new_file="";
@@ -333,12 +333,12 @@ function sync_package_dansguardian() {
#phrase ACL
#create a default setup if not exists
if (!is_array($config['installedpackages']['dansguardianphraseacl']['config'])){
- $banned_file=file("/usr/local/etc/dansguardian/lists/bannedphraselist");
+ $banned_file=file(DANSGUARDIAN_DIR . "/etc/dansguardian/lists/bannedphraselist");
foreach($banned_file as $file_line)
if (preg_match ("/^.Include<(\S+)>/",$file_line,$matches))
$banned_includes .= $matches[1].",";
- $weighted_file=file("/usr/local/etc/dansguardian/lists/weightedphraselist");
+ $weighted_file=file(DANSGUARDIAN_DIR . "/etc/dansguardian/lists/weightedphraselist");
foreach($weighted_file as $file_line)
if (preg_match ("/^.Include<(\S+)>/",$file_line,$matches))
$weighted_includes .= $matches[1].",";
@@ -761,6 +761,62 @@ function sync_package_dansguardian() {
foreach ($groups as $group)
$dansguardian_groups[$group]=(preg_match("/$group/",$dansguardian_groups['group_options'])?"on":"off");
+ #create group list files
+ $lists=array("phraseacl" => array("bannedphrase","weightedphrase","exceptionphrase"),
+ "siteacl" => array("bannedsite","greysite","exceptionsite","exceptionfilesite","logsite"),
+ "urlacl" => array("bannedurl","greyurl","exceptionurl","exceptionregexpurl","bannedregexpurl","urlregexp","exceptionfileurl","logurl","logregexpurl"),
+ "contentacl" => array("contentregexp"),
+ "extensionacl"=> array("exceptionextension","exceptionmimetype","bannedextension","bannedmimetype"),
+ "headeracl" => array("headerregexp","bannedregexpheader"),
+ "searchacl" => array("searchengineregexp","bannedsearchterm","weightedsearchterm","exceptionsearchterm")
+ );
+ foreach ($lists as $list_key => $list_array){
+ foreach ($list_array as $list_value){
+ #read all access lists applied tho this group option
+ foreach (explode(",",$dansguardian_groups[$list_key]) as $dacl){
+ if (! is_array(${$list_value}))
+ ${$list_value}=array();
+ $file_temp=file_get_contents(DANSGUARDIAN_DIR . "/etc/dansguardian/lists/{$list_value}list.{$dacl}")."\n";
+ ${$list_value}=array_merge(explode("\n",$file_temp),${$list_value});
+ }
+ #add a package warning
+ array_unshift(${$list_value},"#Do not edit this file.","#It's created by dansguardian package and overwrited every config save.");
+ #save group file and unset array
+ file_put_contents(DANSGUARDIAN_DIR . "/etc/dansguardian/lists/{$list_value}list.g_{$dansguardian_groups['name']}",implode("\n",array_unique(${$list_value}))."\n",LOCK_EX);
+ unset(${$list_value});
+ }
+ }
+ /*
+ bannedphraselist = '/usr/local/etc/dansguardian/lists/bannedphraselist.{$dansguardian_groups['phraseacl']}'
+ weightedphraselist = '/usr/local/etc/dansguardian/lists/weightedphraselist.{$dansguardian_groups['phraseacl']}'
+ exceptionphraselist = '/usr/local/etc/dansguardian/lists/exceptionphraselist.{$dansguardian_groups['phraseacl']}'
+ bannedsitelist = '/usr/local/etc/dansguardian/lists/bannedsitelist.{$dansguardian_groups['siteacl']}'
+ greysitelist = '/usr/local/etc/dansguardian/lists/greysitelist.{$dansguardian_groups['siteacl']}'
+ exceptionsitelist = '/usr/local/etc/dansguardian/lists/exceptionsitelist.{$dansguardian_groups['siteacl']}'
+ bannedurllist = '/usr/local/etc/dansguardian/lists/bannedurllist.{$dansguardian_groups['urlacl']}'
+ greyurllist = '/usr/local/etc/dansguardian/lists/greyurllist.{$dansguardian_groups['urlacl']}'
+ exceptionurllist = '/usr/local/etc/dansguardian/lists/exceptionurllist.{$dansguardian_groups['urlacl']}'
+ exceptionregexpurllist = '/usr/local/etc/dansguardian/lists/exceptionregexpurllist.{$dansguardian_groups['urlacl']}'
+ bannedregexpurllist = '/usr/local/etc/dansguardian/lists/bannedregexpurllist.{$dansguardian_groups['urlacl']}'
+ contentregexplist = '/usr/local/etc/dansguardian/lists/contentregexplist.{$dansguardian_groups['contentacl']}'
+ urlregexplist = '/usr/local/etc/dansguardian/lists/urlregexplist.{$dansguardian_groups['urlacl']}'
+ exceptionextensionlist = '/usr/local/etc/dansguardian/lists/exceptionextensionlist.{$dansguardian_groups['extensionacl']}'
+ exceptionmimetypelist = '/usr/local/etc/dansguardian/lists/exceptionmimetypelist.{$dansguardian_groups['extensionacl']}'
+ bannedextensionlist = '/usr/local/etc/dansguardian/lists/bannedextensionlist.{$dansguardian_groups['extensionacl']}'
+ bannedmimetypelist = '/usr/local/etc/dansguardian/lists/bannedmimetypelist.{$dansguardian_groups['extensionacl']}'
+ exceptionfilesitelist = '/usr/local/etc/dansguardian/lists/exceptionfilesitelist.{$dansguardian_groups['siteacl']}'
+ exceptionfileurllist = '/usr/local/etc/dansguardian/lists/exceptionfileurllist.{$dansguardian_groups['urlacl']}'
+ logsitelist = '/usr/local/etc/dansguardian/lists/logsitelist.{$dansguardian_groups['siteacl']}'
+ logurllist = '/usr/local/etc/dansguardian/lists/logurllist.{$dansguardian_groups['urlacl']}'
+ logregexpurllist = '/usr/local/etc/dansguardian/lists/logregexpurllist.{$dansguardian_groups['urlacl']}'
+ headerregexplist = '/usr/local/etc/dansguardian/lists/headerregexplist.{$dansguardian_groups['headeracl']}'
+ bannedregexpheaderlist = '/usr/local/etc/dansguardian/lists/bannedregexpheaderlist.{$dansguardian_groups['headeracl']}'
+ searchengineregexplist = '/usr/local/etc/dansguardian/lists/searchengineregexplist.{$dansguardian_groups['searchacl']}'
+ bannedsearchtermlist = '/usr/local/etc/dansguardian/lists/bannedsearchtermlist.{$dansguardian_groups['searchacl']}'
+ weightedsearchtermlist = '/usr/local/etc/dansguardian/lists/weightedsearchtermlist.{$dansguardian_groups['searchacl']}'
+ exceptionsearchtermlist = '/usr/local/etc/dansguardian/lists/exceptionsearchtermlist.{$dansguardian_groups['searchacl']}'
+ */
+ $dg_dir=DANSGUARDIAN_DIR;
include("/usr/local/pkg/dansguardianfx.conf.template");
file_put_contents($dansguardian_dir."/dansguardianf".$count.".conf", $dgf, LOCK_EX);
@@ -833,7 +889,7 @@ EOF;
<fielddescr>Users</fielddescr>
<fieldname>info_checkbox</fieldname>
<type>checkbox</type>
- <description><![CDATA[Dansguardian users are required only when you have more then one group.<br>All unauthenticated users or unlisted uses will match first filter group.]]></description>
+ <description><![CDATA[Dansguardian users are required only when you have more then one group.<br>All unauthenticated users or unlisted users will match first filter group.]]></description>
</field>
EOF;
}
@@ -1050,7 +1106,7 @@ EOF;
$replace[0]='YES';
#clamdscan.conf dansguardian file
- $cconf="/usr/local/etc/dansguardian/contentscanners/clamdscan.conf";
+ $cconf=DANSGUARDIAN_DIR . "/etc/dansguardian/contentscanners/clamdscan.conf";
$cconf_file=file_get_contents($cconf);
if (preg_match('/#clamdudsfile/',$cconf_file)){
$cconf_file=preg_replace('/#clamdudsfile/','clamdudsfile',$cconf_file);
@@ -1115,8 +1171,8 @@ EOF;
chmod ($script,444);
}
- if (!file_exists('/usr/local/etc/dansguardian/lists/phraselists/pornography/weighted_russian_utf8'))
- file_put_contents('/usr/local/etc/dansguardian/lists/phraselists/pornography/weighted_russian_utf8',"",LOCK_EX);
+ if (!file_exists(DANSGUARDIAN_DIR . '/etc/dansguardian/lists/phraselists/pornography/weighted_russian_utf8'))
+ file_put_contents(DANSGUARDIAN_DIR . '/etc/dansguardian/lists/phraselists/pornography/weighted_russian_utf8',"",LOCK_EX);
#check ca certs hashes
check_ca_hashes();
@@ -1241,15 +1297,15 @@ function dansguardian_do_xmlrpc_sync($sync_to_ip, $password,$sync_type) {
$cli->setCredentials('admin', $password);
if($g['debug'])
$cli->setDebug(1);
- /* send our XMLRPC message and timeout after 250 seconds */
- $resp = $cli->send($msg, "250");
+ /* send our XMLRPC message and timeout after 30 seconds */
+ $resp = $cli->send($msg, "30");
if(!$resp) {
$error = "A communications error occurred while attempting dansguardian XMLRPC sync with {$url}:{$port}.";
log_error($error);
file_notice("sync_settings", $error, "dansguardian Settings Sync", "");
} elseif($resp->faultCode()) {
$cli->setDebug(1);
- $resp = $cli->send($msg, "250");
+ $resp = $cli->send($msg, "30");
$error = "An error code was received while attempting dansguardian XMLRPC sync with {$url}:{$port} - Code " . $resp->faultCode() . ": " . $resp->faultString();
log_error($error);
file_notice("sync_settings", $error, "dansguardian Settings Sync", "");
@@ -1272,14 +1328,14 @@ function dansguardian_do_xmlrpc_sync($sync_to_ip, $password,$sync_type) {
$msg = new XML_RPC_Message($method, $params);
$cli = new XML_RPC_Client('/xmlrpc.php', $url, $port);
$cli->setCredentials('admin', $password);
- $resp = $cli->send($msg, "250");
+ $resp = $cli->send($msg, "30");
if(!$resp) {
$error = "A communications error occurred while attempting dansguardian XMLRPC sync with {$url}:{$port} (pfsense.exec_php).";
log_error($error);
file_notice("sync_settings", $error, "dansguardian Settings Sync", "");
} elseif($resp->faultCode()) {
$cli->setDebug(1);
- $resp = $cli->send($msg, "250");
+ $resp = $cli->send($msg, "30");
$error = "An error code was received while attempting dansguardian XMLRPC sync with {$url}:{$port} - Code " . $resp->faultCode() . ": " . $resp->faultString();
log_error($error);
file_notice("sync_settings", $error, "dansguardian Settings Sync", "");