コード例 #1
0
ファイル: exec.squidguard.php プロジェクト: BillTheBest/1.6.x
function build_ufdbguard_config()
{
    checksVersion();
    $sock = new sockets();
    $DenyUfdbWriteConf = $sock->GET_INFO("DenyUfdbWriteConf");
    if (!is_numeric($DenyUfdbWriteConf)) {
        $DenyUfdbWriteConf = 0;
    }
    $EnableRemoteStatisticsAppliance = $sock->GET_INFO("EnableRemoteStatisticsAppliance");
    if (!is_numeric($EnableRemoteStatisticsAppliance)) {
        $EnableRemoteStatisticsAppliance = 0;
    }
    if ($EnableRemoteStatisticsAppliance == 1) {
        return;
    }
    $unix = new unix();
    $chmod = $unix->find_program("chmod");
    $chown = $unix->find_program("chown");
    $ln = $unix->find_program("ln");
    $trace = debug_backtrace();
    if (isset($trace[1])) {
        $called = " called by " . basename($trace[1]["file"]) . " {$trace[1]["function"]}() line {$trace[1]["line"]}";
    }
    $unix->send_email_events("Order to rebuild ufdbGuard config", $called, "proxy");
    $sock = new sockets();
    $EnableRemoteStatisticsAppliance = $sock->GET_INFO("EnableRemoteStatisticsAppliance");
    $EnableWebProxyStatsAppliance = $sock->GET_INFO("EnableWebProxyStatsAppliance");
    if (!is_numeric($EnableRemoteStatisticsAppliance)) {
        $EnableRemoteStatisticsAppliance = 0;
    }
    if (!is_numeric($EnableWebProxyStatsAppliance)) {
        $EnableWebProxyStatsAppliance = 0;
    }
    $users = new usersMenus();
    @mkdir("/var/tmp", 0775, true);
    @mkdir("/etc/ufdbguard", 0777, true);
    @mkdir("/etc/squid3", 0755, true);
    @mkdir("/var/log/squid", 0755, true);
    @mkdir("/var/lib/ufdbartica", 0755, true);
    @unlink("/etc/ufdbguard/ufdbGuard.conf");
    @unlink("/etc/squid3/ufdbGuard.conf");
    remove_bad_files();
    build_progress("Building parameters", 10);
    $ufdb = new compile_ufdbguard();
    $datas = $ufdb->buildConfig();
    if (is_file("/var/log/squid/UfdbguardCache.db")) {
        @unlink("/var/log/squid/UfdbguardCache.db");
    }
    if ($EnableWebProxyStatsAppliance == 1) {
        @file_put_contents("/usr/share/artica-postfix/ressources/databases/ufdbGuard.conf", $datas);
    }
    if ($DenyUfdbWriteConf == 0) {
        build_progress("Saving configuration", 60);
        @file_put_contents("/etc/ufdbguard/ufdbGuard.conf", $datas);
        @file_put_contents("/etc/squid3/ufdbGuard.conf", $datas);
        $sock->TOP_NOTIFY("{webfiltering_parameters_was_saved}");
    }
    shell_exec("{$chmod} 755 /etc/squid3/ufdbGuard.conf");
    shell_exec("{$chmod} -R 755 /etc/squid3/ufdbGuard.conf");
    shell_exec("{$chmod} -R 755 /etc/ufdbguard");
    shell_exec("chown -R squid:squid /etc/ufdbguard");
    shell_exec("chown -R squid:squid /var/log/squid");
    shell_exec("chown -R squid:squid /etc/squid3");
    shell_exec("chown -R squid:squid /var/lib/ufdbartica");
    build_progress("Saving configuration {done}", 65);
}
コード例 #2
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");
}