function ufdbguard_remote() { include_once dirname(__FILE__) . "/ressources/class.ccurl.inc"; $users = new usersMenus(); $sock = new sockets(); $unix = new unix(); $trace = debug_backtrace(); if (isset($trace[1])) { $called = " called by " . basename($trace[1]["file"]) . " {$trace[1]["function"]}() line {$trace[1]["line"]}"; } $timeFile = "/etc/artica-postfix/pids/" . basename(__FILE__) . "." . __FUNCTION__ . ".time"; if ($unix->file_time_min($timeFile) < 5) { writelogs("too short time to change settings, aborting {$called}...", __FUNCTION__, __FILE__, __LINE__); return; } @unlink($timeFile); @file_put_contents($timeFile, time()); @mkdir("/etc/ufdbguard", null, true); $tar = $unix->find_program("tar"); $RemoteStatisticsApplianceSettings = unserialize(base64_decode($sock->GET_INFO("RemoteStatisticsApplianceSettings"))); if (!is_numeric($RemoteStatisticsApplianceSettings["SSL"])) { $RemoteStatisticsApplianceSettings["SSL"] = 1; } if (!is_numeric($RemoteStatisticsApplianceSettings["PORT"])) { $RemoteStatisticsApplianceSettings["PORT"] = 9000; } $GLOBALS["REMOTE_SSERVER"] = $RemoteStatisticsApplianceSettings["SERVER"]; $GLOBALS["REMOTE_SPORT"] = $RemoteStatisticsApplianceSettings["PORT"]; $GLOBALS["REMOTE_SSL"] = $RemoteStatisticsApplianceSettings["SSL"]; if ($GLOBALS["REMOTE_SSL"] == 1) { $refix = "https"; } else { $refix = "http"; } $DenyUfdbWriteConf = $sock->GET_INFO("DenyUfdbWriteConf"); if (!is_numeric($DenyUfdbWriteConf)) { $DenyUfdbWriteConf = 0; } $baseUri = "{$refix}://{$GLOBALS["REMOTE_SSERVER"]}:{$GLOBALS["REMOTE_SPORT"]}/ressources/databases"; if ($DenyUfdbWriteConf == 0) { $uri = "{$baseUri}/ufdbGuard.conf"; $curl = new ccurl($uri, true); if ($curl->GetFile("/tmp/ufdbGuard.conf")) { @file_put_contents("/etc/ufdbguard/ufdbGuard.conf", @file_get_contents("/tmp/ufdbGuard.conf")); @file_put_contents("/etc/squid3/ufdbGuard.conf", @file_get_contents("/tmp/ufdbGuard.conf")); } else { ufdbguard_admin_events("Failed to download ufdbGuard.conf aborting `{$curl->error}`", __FUNCTION__, __FILE__, __LINE__, "global-compile"); } } $uri = "{$baseUri}/blacklist.tar.gz"; $curl = new ccurl($uri, true); if ($curl->GetFile("/tmp/blacklist.tar.gz")) { $cmd = "{$tar} -xf /tmp/blacklist.tar.gz -C /var/lib/squidguard/"; writelogs($cmd, __FUNCTION__, __FILE__, __LINE__); shell_exec($cmd); } else { ufdbguard_admin_events("Failed to download blacklist.tar.gz aborting `{$curl->error}`", __FUNCTION__, __FILE__, __LINE__, "global-compile"); } $uri = "{$baseUri}/ftpunivtlse1fr.tar.gz"; $curl = new ccurl($uri, true); if ($curl->GetFile("/tmp/ftpunivtlse1fr.tar.gz")) { $cmd = "{$tar} -xf /tmp/ftpunivtlse1fr.tar.gz -C /var/lib/ftpunivtlse1fr/"; writelogs($cmd, __FUNCTION__, __FILE__, __LINE__); shell_exec($cmd); } else { ufdbguard_admin_events("Failed to download ftpunivtlse1fr.tar.gz aborting `{$curl->error}`", __FUNCTION__, __FILE__, __LINE__, "global-compile"); } Dansguardian_remote(); CheckPermissions(); ufdbguard_schedule(); if ($unix->Ufdbguard_remote_srvc_bool()) { ufdbguard_admin_events("Using a remote UfdbGuard service, aborting", __FUNCTION__, __FILE__, __LINE__, "config"); return; } ufdbguard_admin_events("Service will be rebuiled and restarted", __FUNCTION__, __FILE__, __LINE__, "config"); build_ufdbguard_HUP(); $nohup = $unix->find_program("nohup"); $php5 = $unix->LOCATE_PHP5_BIN(); if (is_file($GLOBALS["SQUIDBIN"])) { echo "Starting......: " . date("H:i:s") . " Squid reloading service\n"; shell_exec("{$nohup} {$php5} " . basename(__FILE__) . "/exec.squid.php --reconfigure-squid >/dev/null 2>&1"); } $datas = @file_get_contents("/etc/ufdbguard/ufdbGuard.conf"); send_email_events("SquidGuard/ufdbGuard/Dansguardian rules was rebuilded", basename(__FILE__) . "\nFunction:" . __FUNCTION__ . "\nLine:" . __LINE__ . "\n" . "This is new configuration file of the squidGuard/ufdbGuard:\n-------------------------------------\n{$datas}", "proxy"); shell_exec(LOCATE_PHP5_BIN2() . " " . dirname(__FILE__) . "/exec.c-icap.php --maint-schedule"); }
function build() { $users = new usersMenus(); $sock = new sockets(); $unix = new unix(); $chown = $unix->find_program("chown"); $chmod = $unix->find_program("chmod"); $squidbin = $unix->find_program("squid3"); if (!is_file($squidbin)) { $squidbin = $unix->find_program("squid"); } $GLOBALS["SQUIDBIN"] = $squidbin; $installed = false; if ($users->SQUIDGUARD_INSTALLED) { $installed = true; } if ($users->APP_UFDBGUARD_INSTALLED) { $installed = true; } if (!$installed) { return false; } $s = new squidguard(); $datas = $s->BuildConf(); @file_put_contents("/etc/squid/squidGuard.conf", $datas); @mkdir("/etc/ufdbguard", null, true); @file_put_contents("/etc/ufdbguard/ufdbGuard.conf", $datas); if ($users->APP_UFDBGUARD_INSTALLED) { BuildMissingUfdBguardDBS(); ufdbguard_schedule(); } $user = GetSquidUser(); if (!is_file("/squid/log/squid/squidGuard.log")) { @mkdir("/squid/log/squid", 755, true); @file_put_contents("/squid/log/squid/squidGuard.log", "#"); shell_exec("{$chown} {$user} /squid/log/squid/squidGuard.log"); } shell_exec("{$chown} -R {$user} /var/lib/squidguard/*"); shell_exec("{$chown} -R {$user} /var/log/squid/*"); shell_exec("{$chmod} -R 755 /var/lib/squidguard/*"); shell_exec("{$chmod} -R ug+x /var/lib/squidguard/*"); if (is_file("/var/log/ufdbguard/ufdbguardd.log")) { @chmod("/var/log/ufdbguard/ufdbguardd.log", 777); } if (is_file("/etc/init.d/ufdb")) { shell_exec("/etc/init.d/ufdb reconfig >/dev/null 2>&1"); } PersonalCategoriesRepair(); shell_exec("{$GLOBALS["SQUIDBIN"]} -k reconfigure"); send_email_events("SquidGuard/ufdbGuard rules was rebuilded", "This is new configuration file of the squidGuard/ufdbGuard:\n-------------------------------------\n{$datas}", "system"); shell_exec(LOCATE_PHP5_BIN2() . " " . dirname(__FILE__) . "/exec.c-icap.php --maint-schedule"); }
function build() { $users = new usersMenus(); $sock = new sockets(); $unix = new unix(); $chown = $unix->find_program("chown"); $chmod = $unix->find_program("chmod"); $squidbin = $unix->find_program("squid3"); if (!is_file($squidbin)) { $squidbin = $unix->find_program("squid"); } $GLOBALS["SQUIDBIN"] = $squidbin; $installed = false; if ($users->SQUIDGUARD_INSTALLED) { $installed = true; } if ($users->APP_UFDBGUARD_INSTALLED) { $installed = true; } if (!$installed) { return false; } $dans = new compile_dansguardian(); $dans->build(); $ufdb = new compile_ufdbguard(); $datas = $ufdb->buildConfig(); @mkdir("/etc/ufdbguard", null, true); @file_put_contents("/etc/ufdbguard/ufdbGuard.conf", $datas); if (is_file("/usr/sbin/ufdbguardd")) { if (!is_file("/usr/bin/ufdbguardd")) { $unix = new unix(); $ln = $unix->find_program("ln"); shell_exec("{$ln} -s /usr/sbin/ufdbguardd /usr/bin/ufdbguardd"); } } if ($users->APP_UFDBGUARD_INSTALLED) { ufdbguard_schedule(); } $user = GetSquidUser(); if (!is_file("/squid/log/squid/squidGuard.log")) { @mkdir("/squid/log/squid", 755, true); @file_put_contents("/squid/log/squid/squidGuard.log", "#"); shell_exec("{$chown} {$user} /squid/log/squid/squidGuard.log"); } shell_exec("{$chown} -R {$user} /var/lib/squidguard/*"); shell_exec("{$chown} -R {$user} /var/log/squid/*"); shell_exec("{$chmod} -R 755 /var/lib/squidguard/*"); shell_exec("{$chmod} -R ug+x /var/lib/squidguard/*"); if (!is_file("/var/log/ufdbguard/ufdbguardd.log")) { @mkdir("/var/log/ufdbguard", 755, true); @file_put_contents("/var/log/ufdbguard/ufdbguardd.log", "see /var/log/squid/ufdbguardd.log\n"); } shell_exec("chmod 777 /var/log/ufdbguard/ufdbguardd.log"); ufdbguard_admin_events("Service will be rebuiled and restarted", __FUNCTION__, __FILE__, __LINE__, "config"); if (is_file("/etc/init.d/ufdb")) { shell_exec("/etc/init.d/ufdb reconfig >/dev/null 2>&1"); } shell_exec("{$GLOBALS["SQUIDBIN"]} -k reconfigure"); send_email_events("SquidGuard/ufdbGuard rules was rebuilded", "This is new configuration file of the squidGuard/ufdbGuard:\n-------------------------------------\n{$datas}", "system"); shell_exec(LOCATE_PHP5_BIN2() . " " . dirname(__FILE__) . "/exec.c-icap.php --maint-schedule"); }