Example #1
0
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");
}
Example #3
0
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");
}