Ejemplo n.º 1
0
function time_save()
{
    $ID = $_POST["time-save"];
    $array_days = array(1 => "monday", 2 => "tuesday", 3 => "wednesday", 4 => "thursday", 5 => "friday", 6 => "saturday", 7 => "sunday");
    while (list($num, $maks) = each($array_days)) {
        if ($_POST["D{$num}"] == 1) {
            $TTIME["D{$num}"] = 1;
        }
    }
    $TTIME["ttime"] = $_POST["ttime"];
    $TTIME["ftime"] = $_POST["ftime"];
    $rule1 = strtotime(date("Y-m-d") . " {$TTIME["ftime"]}");
    $rule2 = strtotime(date("Y-m-d") . " {$TTIME["ttime"]}");
    if ($rule1 > $rule2) {
        $tpl = new templates();
        echo $tpl->javascript_parse_text("{fwtime_explain}");
        return;
    }
    $TTIMEZ = mysql_escape_string2(serialize($TTIME));
    $q = new mysql();
    if (!$q->FIELD_EXISTS("iptables_main", "time_restriction", "artica_backup")) {
        $sql = "ALTER TABLE `iptables_main` ADD `time_restriction` TEXT";
        $q->QUERY_SQL($sql, "artica_backup");
    }
    if (!$q->FIELD_EXISTS("iptables_main", "enablet", "artica_backup")) {
        $sql = "ALTER TABLE `iptables_main` ADD `enablet` smallint( 1 ) NOT NULL DEFAULT '0',ADD INDEX ( enablet ) ";
        $q->QUERY_SQL($sql, "artica_backup");
    }
    $sql = "UPDATE iptables_main SET `enablet`='{$_POST["enablet"]}',`time_restriction`='{$TTIMEZ}' WHERE ID='{$ID}'";
    $q->QUERY_SQL($sql, "artica_backup");
    if (!$q->ok) {
        echo $q->mysql_error . "\n{$sql}";
    }
}
function save()
{
    $_POST["relay_password"] = url_decode_special_tool($_POST["relay_password"]);
    $q = new mysql();
    if (!$q->FIELD_EXISTS("relay_host", "enabledauth", "artica_backup")) {
        $sql = "ALTER TABLE `relay_host` ADD `enabledauth` smallint( 1 ) NOT NULL ";
        $q->QUERY_SQL($sql, "artica_backup");
    }
    if (!$q->FIELD_EXISTS("relay_host", "username", "artica_backup")) {
        $sql = "ALTER TABLE `relay_host` ADD `username` VARCHAR( 128 ) NOT NULL ";
        $q->QUERY_SQL($sql, "artica_backup");
    }
    if (!$q->FIELD_EXISTS("relay_host", "password", "artica_backup")) {
        $sql = "ALTER TABLE `relay_host` ADD `password` VARCHAR( 128 ) NOT NULL ";
        $q->QUERY_SQL($sql, "artica_backup");
    }
    if (!$q->FIELD_EXISTS("relay_host", "lookups", "artica_backup")) {
        $sql = "ALTER TABLE `relay_host` ADD `lookups` smallint(1) NOT NULL ";
        $q->QUERY_SQL($sql, "artica_backup");
    }
    if ($_POST["relay_address"] == null) {
        echo "relay address: not set...\n";
        return;
    }
    if ($_POST["relay_port"] == 0) {
        $_POST["relay_port"] = 25;
    }
    $q->QUERY_SQL("DELETE FROM `relay_host` WHERE hostname='{$_POST["hostname"]}'", "artica_backup");
    $sql = "INSERT IGNORE INTO relay_host\n\t(`hostname`,`enabled`,`enabledauth`,`relay`,`relay_port`,`username`,`password`,`lookups`)\n\tVALUES('{$_POST["hostname"]}','{$_POST["enabled"]}','{$_POST["enabledauth"]}','{$_POST["relay_address"]}',\n\t'{$_POST["relay_port"]}','{$_POST["relay_username"]}','{$_POST["relay_password"]}','{$_POST["lookups"]}')";
    $q->QUERY_SQL($sql, "artica_backup");
    if (!$q->ok) {
        echo $q->mysql_error;
    }
}
function Save()
{
    $q = new mysql();
    if (!$q->FIELD_EXISTS("squid_parents", "WanProxyMemory", "artica_backup")) {
        $q->QUERY_SQL("ALTER TABLE `squid_parents` ADD `WanProxyMemory` SMALLINT(10) NOT NULL DEFAULT '256'", "artica_backup");
        if (!$q->ok) {
            echo $q->mysql_error . "\n";
        }
    }
    if (!$q->FIELD_EXISTS("squid_parents", "WanProxyCache", "artica_backup")) {
        $q->QUERY_SQL("ALTER TABLE `squid_parents` ADD `WanProxyCache` SMALLINT(10) NOT NULL DEFAULT '1'", "artica_backup");
        if (!$q->ok) {
            echo $q->mysql_error . "\n";
        }
    }
    $q->QUERY_SQL("UPDATE squid_parents SET\n\tWanProxyMemory={$_POST["WanProxyMemory"]},\n\tWanProxyCache={$_POST["WanProxyCache"]}\n\tWHERE ID='{$_POST["ID"]}'", "artica_backup");
    if (!$q->ok) {
        echo $q->mysql_error;
    }
    $sock = new sockets();
    $sock->getFrameWork("wanproxy.php?reconfigure-silent=yes");
}
function popup()
{
    $page = CurrentPageName();
    $tpl = new templates();
    $sock = new sockets();
    $CPU_NUMBER = $sock->getFrameWork("services.php?CPU-NUMBER=yes");
    $q = new mysql();
    $t = time();
    $ARRAY_CPU[0] = "{all}";
    for ($i = 1; $i < $CPU_NUMBER + 1; $i++) {
        $ARRAY_CPU[$i] = "CPU #{$i}";
    }
    if (!$q->FIELD_EXISTS("squid_caches_center", "CPUAF", "artica_backup")) {
        $sql = "ALTER TABLE `squid_caches_center` ADD `CPUAF` smallint(2) NOT NULL DEFAULT 0";
        $q->QUERY_SQL($sql, "artica_backup");
    }
    $sql = "SELECT cpu,CPUAF FROM squid_caches_center GROUP BY cpu,CPUAF ORDER BY cpu";
    $results = $q->QUERY_SQL($sql, "artica_backup");
    $html[] = "<div style='width:98%' class=form>";
    $html[] = "<table style='width:100%'>";
    while ($ligne = mysql_fetch_assoc($results)) {
        $html[] = "<tr>";
        $html[] = "<td class=legend style='font-size:26px'>{process} {$ligne["cpu"]}:<td>";
        $html[] = "<td style='font-size:26px'>" . Field_array_Hash($ARRAY_CPU, "CPUFOR-{$ligne["cpu"]}", $ligne["CPUAF"], "style:font-size:26px") . "</td>";
        $html[] = "<td>" . button("{apply}", "SaveCPU{$ligne["cpu"]}()", 26) . "</td>";
        $html[] = "</tR>";
        $js[] = "function SaveCPU{$ligne["cpu"]}(){";
        $js[] = "\tvar XHR = new XHRConnection();";
        $js[] = "\tXHR.appendData('affectprocess','{$ligne["cpu"]}');";
        $js[] = "\tXHR.appendData('affectcpu',document.getElementById('CPUFOR-{$ligne["cpu"]}').value);";
        $js[] = "\tXHR.sendAndLoad('{$page}', 'POST',xSave{$t});";
        $js[] = "}";
    }
    $html[] = "</table>\n\t\t<center style='margin:20px;margin-top:50px'>" . button("{restart}", "Loadjs('squid.restart.php');", 28) . "\n\t\t</center>";
    $html[] = "</div>";
    $html[] = "<script>";
    $html[] = "var xSave{$t}= function (obj) {";
    $html[] = "\tvar results=obj.responseText;";
    $html[] = "\tif(results.length>0){alert(results);}";
    $html[] = "\tif(document.getElementById('CACHE_CENTER_TABLEAU')){";
    $html[] = "\t\tvar CACHE_CENTER_TABLEAU=document.getElementById('CACHE_CENTER_TABLEAU').value;";
    $html[] = "\t\t\$('#'+CACHE_CENTER_TABLEAU).flexReload();";
    $html[] = "\t}";
    $html[] = "}";
    $html[] = @implode("\n", $js);
    $html[] = "</script>";
    $html_final = @implode("\n", $html);
    echo $tpl->_ENGINE_parse_body($html_final);
}
function search()
{
    $tpl = new templates();
    $MyPage = CurrentPageName();
    $q = new mysql();
    $database = "artica_backup";
    $t = $_GET["t"];
    $search = '%';
    $table = "routing_rules_dest";
    $page = 1;
    $fontsize = 16;
    $FORCE_FILTER = "AND ruleid='{$_GET["ruleid"]}'";
    $total = 0;
    if (!$q->FIELD_EXISTS("routing_rules_dest", "zOrder", "artica_backup")) {
        $q->QUERY_SQL("ALTER TABLE `routing_rules_dest` ADD `zOrder` INT(10) NOT NULL, ADD INDEX (`zOrder`)", "artica_backup");
        if (!$q->ok) {
            json_error_show($q->mysql_error, 1);
        }
    }
    if (!$q->FIELD_EXISTS("routing_rules_dest", "metric", "artica_backup")) {
        $q->QUERY_SQL("ALTER TABLE `routing_rules_dest` ADD `metric` INT(10) NOT NULL, ADD INDEX (`metric`)", "artica_backup");
    }
    if (isset($_POST["sortname"])) {
        if ($_POST["sortname"] != null) {
            $ORDER = "ORDER BY {$_POST["sortname"]} {$_POST["sortorder"]}";
        }
    }
    if (isset($_POST['page'])) {
        $page = $_POST['page'];
    }
    $searchstring = string_to_flexquery();
    if ($searchstring != null) {
        $search = $_POST["query"];
        $sql = "SELECT COUNT(*) as TCOUNT FROM `{$table}` WHERE 1 {$FORCE_FILTER} {$searchstring}";
        $ligne = mysql_fetch_array($q->QUERY_SQL($sql, $database));
        $total = $ligne["TCOUNT"];
    } else {
        $sql = "SELECT COUNT(*) as TCOUNT FROM `{$table}` WHERE 1 {$FORCE_FILTER}";
        $ligne = mysql_fetch_array($q->QUERY_SQL($sql, $database));
        $total = $ligne["TCOUNT"];
    }
    if (isset($_POST['rp'])) {
        $rp = $_POST['rp'];
    }
    $pageStart = ($page - 1) * $rp;
    if (!is_numeric($rp)) {
        $rp = 50;
    }
    $limitSql = "LIMIT {$pageStart}, {$rp}";
    $data = array();
    $data['page'] = $page;
    $data['total'] = $total;
    $data['rows'] = array();
    $types[1] = $tpl->_ENGINE_parse_body("{network_nic}");
    $types[2] = $tpl->_ENGINE_parse_body("{host}");
    $types[3] = $tpl->_ENGINE_parse_body("{default_gateway}");
    $style = "style='font-size:{$fontsize}px;color:black;'";
    $ligne = mysql_fetch_array($q->QUERY_SQL("SELECT * FROM routing_rules WHERE ID='{$_GET["ruleid"]}'", "artica_backup"));
    $nic = new system_nic($ligne["nic"]);
    if ($nic->GATEWAY != null) {
        if ($nic->GATEWAY != "0.0.0.0") {
            $data['total'] = $total + 1;
            $data['rows'][] = array('id' => $ligne['ID'], 'cell' => array("<span {$style}>0</a></span>", "<span {$style}>0.0.0.0/0</a></span>", "<span {$style}>" . $types[3] . "</a></span>", "<span {$style}>{$nic->GATEWAY}</span>", "<center {$style}>-</center>", "<center {$style}>-</center>", "<center {$style}>-</center>"));
        }
    }
    $sql = "SELECT *  FROM `{$table}` WHERE 1 {$searchstring} {$FORCE_FILTER} {$ORDER} {$limitSql}";
    $results = $q->QUERY_SQL($sql, $database);
    if (!$q->ok) {
        json_error_show($q->mysql_error, 1);
    }
    while ($ligne = mysql_fetch_assoc($results)) {
        $color = "black";
        //if($ligne["enabled"]==0){$color="#8a8a8a";}
        $style = "style='font-size:{$fontsize}px;color:{$color};'";
        $delete = imgsimple("delete-24.png", null, "Loadjs('{$MyPage}?route-delete-js=yes&ID={$ligne["ID"]}&ruleid={$_GET["ruleid"]}&t={$t}');");
        $js = "<a href=\"javascript:blur();\" OnClick=\"javascript:Loadjs('{$MyPage}?route-js=yes&ID={$ligne["ID5"]}&t={$t}');\"\n\t\tstyle='font-size:{$fontsize}px;color:{$color};text-decoration:underline'>";
        $down = imgsimple("arrow-down-18.png", null, "Loadjs('{$MyPage}?route-move-js=yes&ID={$ligne["ID"]}&ruleid={$_GET["ruleid"]}&t={$t}&dir=down');");
        $up = imgsimple("arrow-up-18.png", null, "Loadjs('{$MyPage}?route-move-js=yes&ID={$ligne["ID"]}&ruleid={$_GET["ruleid"]}&t={$t}&dir=up');");
        if ($ligne["gateway"] == null) {
            $ligne["gateway"] = "-";
        }
        if ($ligne["type"] == 3) {
            $ligne["pattern"] = "0.0.0.0/0";
        }
        $data['rows'][] = array('id' => $ligne['ID'], 'cell' => array("<span {$style}>{$js}{$ligne["zOrder"]}</a></span>", "<span {$style}>{$js}{$ligne["pattern"]}</a></span>", "<span {$style}>{$js}" . $types[$ligne["type"]] . "</a></span>", "<span {$style}>{$ligne["gateway"]}</span>", "<center {$style}>{$up}</center>", "<center {$style}>{$down}</center>", "<center {$style}>{$delete}</center>"));
    }
    echo json_encode($data);
}
Ejemplo n.º 6
0
function add_website()
{
    if ($_GET["ID"] == 0) {
        $sqlSource = "INSERT INTO squid_accel (website_name,website_ip,website_port,`UseSSL`,`certificate`,`UseVirtualHosts`,`enabled`) \n\t\tVALUES('{$_GET["website"]}','{$_GET["website_ip"]}','{$_GET["website_port"]}','{$_GET["UseSSL"]}','{$_GET["certificate"]}','{$_GET["UseVirtualHosts"]}','{$_GET["enabled"]}')";
    } else {
        $sqlSource = "UPDATE squid_accel SET website_name='{$_GET["website"]}',\n\t\twebsite_ip='{$_GET["website_ip"]}',\n\t\twebsite_port='{$_GET["website_port"]}',\n\t\tUseSSL='{$_GET["UseSSL"]}',\n\t\tcertificate='{$_GET["certificate"]}',\n\t\tUseVirtualHosts='{$_GET["UseVirtualHosts"]}',\n\t\tenabled='{$_GET["enabled"]}'\n\t\tWHERE ID={$_GET["ID"]}";
    }
    $q = new mysql();
    if (!$q->FIELD_EXISTS("squid_accel", "UseSSL", "artica_backup")) {
        $q->QUERY_SQL("ALTER TABLE `squid_accel` ADD `UseSSL` smallint( 1 ) NOT NULL DEFAULT '0',ADD INDEX ( `UseSSL` )", "artica_backup");
        if (!$q->ok) {
            echo "{$q->mysql_error}\n";
        }
    }
    if (!$q->FIELD_EXISTS("squid_accel", "enabled", "artica_backup")) {
        $q->QUERY_SQL("ALTER TABLE `squid_accel` ADD `enabled` smallint( 1 ) NOT NULL DEFAULT '1',ADD INDEX ( `enabled` )", "artica_backup");
        if (!$q->ok) {
            echo "{$q->mysql_error}\n";
        }
    }
    if (!$q->FIELD_EXISTS("squid_accel", "certificate", "artica_backup")) {
        $q->QUERY_SQL("ALTER TABLE `squid_accel` ADD `certificate`VARCHAR(255) NOT NULL", "artica_backup");
        if (!$q->ok) {
            echo "{$q->mysql_error}\n";
        }
    }
    if (!$q->FIELD_EXISTS("squid_accel", "UseVirtualHosts", "artica_backup")) {
        $sql = "ALTER TABLE `squid_accel` ADD `UseVirtualHosts` smallint(1) NOT NULL,ADD INDEX ( `UseVirtualHosts` )";
        $q->QUERY_SQL($sql, "artica_backup");
        if (!$q->ok) {
            echo "{$q->mysql_error}\n";
        }
    }
    if (!$q->FIELD_EXISTS("squid_accel", "virtualhosts", "artica_backup")) {
        $sql = "ALTER TABLE `squid_accel` ADD `virtualhosts` TEXT NOT NULL";
        $q->QUERY_SQL($sql, "artica_backup");
        if (!$q->ok) {
            echo "{$q->mysql_error}\n";
        }
    }
    $q->QUERY_SQL($sqlSource, "artica_backup");
    if (!$q->ok) {
        echo $q->mysql_error;
        return;
    }
}
Ejemplo n.º 7
0
function build()
{
    $unix = new unix();
    $q = new mysql();
    $sock = new sockets();
    $FireHolEnable = intval($sock->GET_INFO("FireHolEnable"));
    if ($FireHolEnable == 1) {
        @unlink("/bin/artica-firewall.sh");
        iptables_delete_all();
        return;
    }
    iptables_delete_all();
    $FINAL_LOG_DROP = array();
    if (!$q->FIELD_EXISTS("nics", "isFWAcceptNet", "artica_backup")) {
        $sql = "ALTER TABLE `nics` ADD `isFWAcceptNet` smallint( 1 ) NOT NULL DEFAULT '0'";
        $q->QUERY_SQL($sql, 'artica_backup');
        if (!$q->ok) {
            echo "[" . __LINE__ . "]: {$q->mysql_error}\n";
        }
    }
    if (!$q->FIELD_EXISTS("nics", "isFWAcceptArtica", "artica_backup")) {
        $sql = "ALTER TABLE `nics` ADD `isFWAcceptArtica` smallint( 1 ) NOT NULL DEFAULT '0'";
        $q->QUERY_SQL($sql, 'artica_backup');
        if (!$q->ok) {
            echo "[" . __LINE__ . "]: {$q->mysql_error}\n";
        }
    }
    $sql = "SELECT `Interface`,`Bridged`,`BridgedTo`,`isFWAcceptNet`,`isFWAcceptArtica`,`isFWLogBlocked` FROM `nics` WHERE `isFW`=1 AND `Bridged`=0";
    if ($GLOBALS["VERBOSE"]) {
        echo "[" . __LINE__ . "] {$sql}\n";
    }
    $echo = $unix->find_program("echo");
    $php = $unix->LOCATE_PHP5_BIN();
    $SCRIPT[] = "#! /bin/sh";
    $SCRIPT[] = "{$php} /usr/share/artica-postfix/exec.syslog-engine.php --buildconf";
    $SCRIPT[] = "if [ ! -f /var/log/iptables.log ]; then";
    $SCRIPT[] = "\t{$echo} \"/var/log/iptables.log doesn't exists...\"";
    $SCRIPT[] = "\t" . $unix->LOCATE_SYSLOG_INITD() . " restart";
    $SCRIPT[] = "fi";
    $SCRIPT[] = "{$echo} \"Removing Firewall rules...\"";
    $SCRIPT[] = $php . " " . __FILE__ . " --remove || true";
    $SCRIPT[] = "# -------------- Q . O . S --------------";
    $SCRIPT[] = build_qos();
    $results = $q->QUERY_SQL($sql, "artica_backup");
    $CountDeInterface = mysql_num_rows($results);
    $SCRIPT[] = "{$echo} \"Firewall enabled on {$CountDeInterface} Interface(s)\"";
    $iptables = $unix->find_program("iptables");
    $MARKLOG = "-m comment --comment \"ArticaFireWall\"";
    $net = new networkscanner();
    while (list($num, $maks) = each($net->networklist)) {
        if (trim($maks) == null) {
            continue;
        }
        $SCRIPT[] = "# Accept potential Network {$maks}";
        $hash[$maks] = $maks;
    }
    $ALL_RULES = 0;
    if ($CountDeInterface > 0) {
        while ($ligne = mysql_fetch_array($results, MYSQL_ASSOC)) {
            $ALL_RULES++;
            $isFWAcceptNet = intval($ligne["isFWAcceptNet"]);
            $J_LOGPRX = "--j LOG --log-level debug --log-prefix \"AID=0/INPUT/REJECT \"";
            $InInterface = " -i {$ligne["Interface"]} ";
            $SCRIPT_FINAL[] = "{$iptables} -A INPUT {$InInterface} {$MARKLOG} -j REJECT || true";
            if ($ligne["isFWLogBlocked"] == 1) {
                $FINAL_LOG_DROP["{$iptables} -A INPUT {$InInterface} {$MARKLOG} {$J_LOGPRX} || true"] = true;
            }
            $SCRIPT[] = "{$iptables} -I INPUT {$InInterface} -s 127.0.0.1 {$MARKLOG} -j ACCEPT || true";
            $SCRIPT[] = "{$iptables} -I INPUT {$InInterface} -d 127.0.0.1 {$MARKLOG} -j ACCEPT || true";
            $SCRIPT[] = "# {$InInterface} Accept local network ? = {$isFWAcceptNet}";
            if ($isFWAcceptNet == 1) {
                reset($hash);
                while (list($num, $maks) = each($hash)) {
                    $SCRIPT[] = "{$iptables} -I INPUT {$InInterface} -d {$maks} {$MARKLOG} -j ACCEPT || true";
                    $SCRIPT[] = "{$iptables} -I INPUT {$InInterface} -s {$maks} {$MARKLOG} -j ACCEPT || true";
                }
            }
            $SCRIPT[] = BuilFWdRules($ligne["Interface"], "INPUT", $ligne["isFWLogBlocked"]);
            $SCRIPT[] = BuilFWdRules($ligne["Interface"], "OUTPUT", $ligne["isFWLogBlocked"]);
            $SCRIPT[] = BuilFWdRules_FORWARD($ligne["Interface"], $ligne["isFWLogBlocked"]);
        }
    }
    $sql = "SELECT * FROM `nics_bridge` WHERE `isFW`=1";
    if ($GLOBALS["VERBOSE"]) {
        echo "[" . __LINE__ . "] {$sql}\n";
    }
    $results = $q->QUERY_SQL($sql, "artica_backup");
    if (!$q->ok) {
        $SCRIPT[] = "#" . str_replace("\n", " ", $q->mysql_error);
    }
    $CountDeInterface = mysql_num_rows($results);
    $SCRIPT[] = "{$echo} \"Firewall enabled on {$CountDeInterface} Bridge(s)\"";
    if ($CountDeInterface > 0) {
        while ($ligne = mysql_fetch_array($results, MYSQL_ASSOC)) {
            $ALL_RULES++;
            $J_LOGPRX = "--j LOG --log-level debug --log-prefix \"AID={$ligne["ID"]}/INPUT/REJECT \"";
            $SCRIPT[] = "{$echo} \"Apply rules on bridge br{$ligne["ID"]} log block={$ligne["isFWLogBlocked"]}\"";
            $interface = "br{$ligne["ID"]}";
            $InInterface = " -i {$interface} ";
            $SCRIPT[] = "{$iptables} -I INPUT {$InInterface} -s 127.0.0.1 {$MARKLOG} -j ACCEPT || true";
            reset($hash);
            while (list($num, $maks) = each($hash)) {
                $SCRIPT[] = "{$iptables} -I INPUT {$InInterface} -d {$maks} {$MARKLOG} -j ACCEPT || true";
                $SCRIPT[] = "{$iptables} -I INPUT {$InInterface} -s {$maks} {$MARKLOG} -j ACCEPT || true";
            }
            $SCRIPT[] = BuilFWdRules($interface, "INPUT", $ligne["isFWLogBlocked"]);
            $SCRIPT[] = BuilFWdRules($interface, "OUTPUT", $ligne["isFWLogBlocked"]);
            $SCRIPT[] = BuilFWdRules_FORWARD($interface, $ligne["isFWLogBlocked"]);
            $SCRIPT[] = BuilFWdRules_MARK($interface);
            if ($ligne["isFWLogBlocked"] == 1) {
                $FINAL_LOG_DROP["{$iptables} -A INPUT {$InInterface} {$MARKLOG} {$J_LOGPRX} || true"] = true;
            }
            $SCRIPT_FINAL[] = "{$iptables} -A INPUT {$InInterface} {$MARKLOG} -j REJECT || true";
        }
    }
    $SCRIPT_FINAL[] = ProtectArtica();
    $SCRIPT[] = "#Final step, block necessaries connections";
    if (count($FINAL_LOG_DROP) > 0) {
        while (list($itemSRC, $b) = each($FINAL_LOG_DROP)) {
            if (is_array($itemSRC)) {
                continue;
            }
            $SCRIPT[] = $itemSRC;
        }
    }
    $SCRIPT[] = @implode("\n", $SCRIPT_FINAL);
    $SCRIPT[] = "exit 0\n";
    @file_put_contents("/bin/artica-firewall.sh", @implode("\n", $SCRIPT));
    @chmod("/bin/artica-firewall.sh", 0755);
    echo "[" . __LINE__ . "]: /bin/artica-firewall.sh done...\n";
}
Ejemplo n.º 8
0
function caches_center($aspid = false)
{
    $unix = new unix();
    $umount = $unix->find_program("umount");
    if (!$aspid) {
        $pidfile = "/etc/artica-postfix/pids/" . basename(__FILE__) . "." . __FUNCTION__ . ".pid";
        $pid = $unix->get_pid_from_file($pidfile);
        if ($unix->process_exists($pid, basename(__FILE__))) {
            $time = $unix->PROCCESS_TIME_MIN($pid);
            if ($GLOBALS["OUTPUT"]) {
                echo "Stopping......: " . date("H:i:s") . "Already `task` running PID {$pid} since {$time}mn\n";
            }
            system_admin_events("stop_squid::Already task running PID {$pid} since {$time}mn", __FUNCTION__, __FILE__, __LINE__, "proxy");
            return;
        }
        @file_put_contents($pidfile, getmypid());
    }
    if (system_is_overloaded(__FILE__)) {
        return;
    }
    $rm = $unix->find_program("rm");
    $q = new mysql();
    if (!$q->FIELD_EXISTS("squid_caches_center", "percenttext", "artica_backup")) {
        $sql = "ALTER TABLE `squid_caches_center` ADD `percenttext` VARCHAR(10)";
        $q->QUERY_SQL($sql, "artica_backup");
        if (!$q->ok) {
            writelogs("{$this->mysql_error}\n{$sql}", __CLASS__ . '/' . __FUNCTION__, __FILE__, __LINE__);
        }
    }
    $sql = "SELECT * FROM squid_caches_center WHERE `remove`=1";
    $results = $q->QUERY_SQL($sql, "artica_backup");
    if (!$q->ok) {
        squid_admin_mysql(1, "MySQL error {$q->mysql_error}", "{$q->mysql_error}");
        return;
    }
    while ($ligne = mysql_fetch_assoc($results)) {
        $ID = $ligne["ID"];
        $cache_dir = $ligne["cache_dir"];
        $cache_type = $ligne["cache_type"];
        if ($cache_type == "Cachenull") {
            $q->QUERY_SQL("DELETE FROM squid_caches_center WHERE ID={$ID}", "artica_backup");
            continue;
        }
        if ($cache_type == "tmpfs") {
            $cache_dir = "/home/squid/cache/MemBooster{$ID}";
        }
        if (is_link($cache_dir)) {
            $cache_dir = readlink($cache_dir);
        }
        shell_exec("{$rm} -rf {$cache_dir}");
        squid_admin_mysql(1, "Cache {$cache_dir} was deleted from DISK", "ID={$ID}\ndirectory={$cache_dir}");
        $q->QUERY_SQL("DELETE FROM squid_caches_center WHERE ID={$ID}", "artica_backup");
        if ($cache_type == "tmpfs") {
            shell_exec("{$umount} -l {$cache_dir}");
        }
        if (!$q->ok) {
            squid_admin_mysql(1, "MySQL error {$q->mysql_error}", "ID={$ID}\ndirectory={$cache_dir}");
        }
    }
    if ($GLOBALS["VERBOSE"]) {
        echo "Cache Center done\n";
    }
}
function smtp_generic_map_add()
{
    $ou = base64_decode($_POST["ou"]);
    $ID = intval($_POST["ID"]);
    $md5 = md5($_POST["source_pattern"] . "{$ou}{$_POST["smtp_generic_maps"]}{$_POST["recipient_canonical_maps"]}{$_POST["sender_canonical_maps"]}");
    $q = new mysql();
    if (!$q->FIELD_EXISTS("smtp_generic_maps", "smtp_generic_maps", "artica_backup")) {
        $sql = "ALTER TABLE `smtp_generic_maps` ADD `smtp_generic_maps` smallint(1)  NOT NULL DEFAULT '1',\n\t\t\t\tADD INDEX ( `smtp_generic_maps` )";
        $q->QUERY_SQL($sql, 'artica_backup');
    }
    if (!$q->FIELD_EXISTS("smtp_generic_maps", "recipient_canonical_maps", "artica_backup")) {
        $sql = "ALTER TABLE `smtp_generic_maps` ADD `recipient_canonical_maps` smallint(1)  NOT NULL DEFAULT '0',\n\t\t\t\tADD INDEX ( `recipient_canonical_maps` )";
        $q->QUERY_SQL($sql, 'artica_backup');
    }
    if (!$q->FIELD_EXISTS("smtp_generic_maps", "sender_canonical_maps", "artica_backup")) {
        $sql = "ALTER TABLE `smtp_generic_maps` ADD `sender_canonical_maps` smallint(1)  NOT NULL DEFAULT '0',\n\t\t\t\tADD INDEX ( `sender_canonical_maps` )";
        $q->QUERY_SQL($sql, 'artica_backup');
    }
    if ($ID == 0) {
        $sql = "INSERT INTO smtp_generic_maps (generic_from,generic_to,ou,zmd5,smtp_generic_maps,recipient_canonical_maps,sender_canonical_maps)\n\t\tVALUES('{$_POST["source_pattern"]}','{$_POST["destination_pattern"]}','{$ou}','{$md5}',\n\t\t'{$_POST["smtp_generic_maps"]}','{$_POST["recipient_canonical_maps"]}','{$_POST["sender_canonical_maps"]}'\n\t\t\n\t\t);";
    } else {
        $sql = "UPDATE smtp_generic_maps SET generic_from='{$_POST["source_pattern"]}',\n\t\tgeneric_to='{$_POST["destination_pattern"]}',\n\t\tzmd5='{$md5}',\n\t\tsender_canonical_maps='{$_POST["sender_canonical_maps"]}',\n\t\trecipient_canonical_maps='{$_POST["recipient_canonical_maps"]}',\n\t\tsmtp_generic_maps='{$_POST["smtp_generic_maps"]}'\n\t\tWHERE ID={$ID}";
    }
    $q->QUERY_SQL($sql, "artica_backup");
    if (!$q->ok) {
        echo $q->mysql_error;
        return;
    }
    //$sock=new sockets();
    //$sock->getFrameWork("cmd.php?postfix-hash-smtp-generic=yes");
}
Ejemplo n.º 10
0
function save()
{
    $sock = new sockets();
    $FireHolConf = unserialize(base64_decode($sock->GET_INFO("FireHolConf")));
    while (list($index, $ligne) = each($_POST)) {
        $FireHolConf[$index] = $ligne;
    }
    $sock->SaveConfigFile(base64_encode(serialize($FireHolConf)), "FireHolConf");
    //$FireHolConf=unserialize(base64_decode(@file_get_contents("/etc/artica-postfix/settings/Daemons/FireHolConf")));
    $IF_WAN = $FireHolConf["IF_WAN"];
    $IF_LAN = $FireHolConf["IF_LAN"];
    if ($IF_WAN == null) {
        return;
    }
    $zMD5 = md5($IF_LAN . $IF_WAN);
    if ($IF_LAN == null) {
        echo "No LAN interface defined !";
        return;
    }
    if ($IF_WAN == null) {
        echo "No WAN interface defined !";
        return;
    }
    $q = new mysql();
    $sql = "CREATE TABLE IF NOT EXISTS `pnic_bridges` (\n\t\t`ID` INT(10) NOT NULL AUTO_INCREMENT,\n\t\t`zMD5` varchar(90) NOT NULL,\n\t\t`nic_from` varchar(50) NOT NULL,\n\t\t`nic_to` varchar(50) NOT NULL,\n\t\t`enabled` smallint(1) NOT NULL DEFAULT 1,\n\t\t`DenyDHCP` smallint(1) NOT NULL DEFAULT 1,\n\t\tPRIMARY KEY (`ID`),\n\t\tUNIQUE KEY (`zMD5`),\n\t\tKEY `nic_from` (`nic_from`),\n\t\tKEY `nic_to` (`nic_to`),\n\t\tKEY `DenyDHCP` (`DenyDHCP`),\n\t\tKEY `enabled` (`enabled`)\n\t\t) ENGINE=MYISAM;";
    $q->QUERY_SQL($sql, "artica_backup");
    if (!$q->FIELD_EXISTS("pnic_bridges", "zMD5", "artica_backup")) {
        $q->QUERY_SQL("ALTER TABLE pnic_bridges ADD zMD5 varchar(90), ADD UNIQUE KEY (`zMD5`)", "artica_backup");
        if (!$q->ok) {
            echo "ALTER TABLE pnic_bridges failed\n{$q->mysql_error}\n";
            return;
        }
    }
    if (!$q->FIELD_EXISTS("pnic_bridges", "STP", "artica_backup")) {
        $q->QUERY_SQL("ALTER TABLE pnic_bridges ADD STP smallint(1) DEFAULT 1", "artica_backup");
        if (!$q->ok) {
            echo "ALTER TABLE STP failed\n{$q->mysql_error}\n";
            return;
        }
    }
    if (!$q->FIELD_EXISTS("pnic_bridges", "DenyDHCP", "artica_backup")) {
        $q->QUERY_SQL("ALTER TABLE pnic_bridges ADD DenyDHCP smallint(1) DEFAULT 1", "artica_backup");
        if (!$q->ok) {
            echo "ALTER TABLE DenyDHCP failed\n{$q->mysql_error}\n";
            return;
        }
    }
    if (!$q->FIELD_EXISTS("pnic_bridges", "DenyCountries", "artica_backup")) {
        $q->QUERY_SQL("ALTER TABLE pnic_bridges ADD DenyCountries smallint(1) DEFAULT 0", "artica_backup");
        if (!$q->ok) {
            echo "ALTER TABLE DenyCountries failed\n{$q->mysql_error}\n";
            return;
        }
    }
    if (!$q->FIELD_EXISTS("pnic_bridges", "masquerading", "artica_backup")) {
        $q->QUERY_SQL("ALTER TABLE pnic_bridges ADD masquerading smallint(1) DEFAULT 0", "artica_backup");
        if (!$q->ok) {
            echo "ALTER TABLE masquerading failed\n{$q->mysql_error}\n";
            return;
        }
    }
    if (!$q->FIELD_EXISTS("pnic_bridges", "masquerading_invert", "artica_backup")) {
        $q->QUERY_SQL("ALTER TABLE pnic_bridges ADD masquerading_invert smallint(1) DEFAULT 0", "artica_backup");
        if (!$q->ok) {
            echo "ALTER TABLE masquerading_invert failed\n{$q->mysql_error}\n";
            return;
        }
    }
    $sql = "INSERT INTO pnic_bridges (zMD5,nic_from,nic_to,enabled,STP,DenyDHCP,masquerading,masquerading_invert)\n\tVALUES ('{$zMD5}','{$IF_LAN}','{$IF_WAN}','1','1','1','1','0')";
    $q->QUERY_SQL($sql, "artica_backup");
    if (!$q->ok) {
        echo $q->mysql_error;
        return;
    }
    $nic = new system_nic($IF_WAN);
    $nic->firewall_policy = "reject";
    $nic->firewall_behavior = 2;
    $nic->firewall_masquerade = 1;
    $nic->firewall_artica = 1;
    $nic->SaveNic();
    $nic = new system_nic($IF_LAN);
    $nic->firewall_policy = "accept";
    $nic->firewall_behavior = 1;
    $nic->SaveNic();
    $sock->GET_INFO("FireHolConfigured", 1);
    $sock->SET_INFO("FireHolEnable", 1);
    $sock->SET_INFO("FireHolRouter", 1);
    $sock->SET_INFO("FireHolConfigured", 1);
    $sock->SaveConfigFile(base64_encode(serialize(array())), "FireHolConf");
}
Ejemplo n.º 11
0
function sender_canonical_maps_build()
{
    $ldap = new clladp();
    $filter = "(&(objectClass=userAccount)(mail=*))";
    $attrs = array("mail", "SenderCanonical");
    $dn = "{$ldap->suffix}";
    $hash = $ldap->Ldap_search($dn, $filter, $attrs);
    for ($i = 0; $i < $hash["count"]; $i++) {
        $mail = $hash[$i]["mail"][0];
        if (!isset($hash[$i][strtolower("SenderCanonical")])) {
            continue;
        }
        $canonical = $hash[$i][strtolower("SenderCanonical")][0];
        if ($canonical == null) {
            continue;
        }
        $GLOBALS["sender_canonical_maps"][] = "{$mail}\t{$canonical}";
        $GLOBALS["smtp_generic_maps"][] = "{$mail}\t{$canonical}";
    }
    $q = new mysql();
    if (!$q->FIELD_EXISTS("smtp_generic_maps", "sender_canonical_maps", "artica_backup")) {
        $sql = "ALTER TABLE `smtp_generic_maps` ADD `sender_canonical_maps` smallint(1)  NOT NULL DEFAULT '0',ADD INDEX ( `sender_canonical_maps` )";
        $q->QUERY_SQL($sql, 'artica_backup');
    }
    $sql = "SELECT * FROM smtp_generic_maps WHERE ou='POSTFIX_MAIN' AND sender_canonical_maps=1 ORDER BY generic_from";
    $results = $q->QUERY_SQL($sql, "artica_backup");
    while ($ligne = @mysql_fetch_array($results, MYSQL_ASSOC)) {
        if (trim($ligne["generic_from"]) == null) {
            continue;
        }
        if (trim($ligne["generic_to"]) == null) {
            continue;
        }
        $GLOBALS["sender_canonical_maps"][] = "{$ligne["generic_from"]}\t{$ligne["generic_to"]}";
    }
}
Ejemplo n.º 12
0
function status_squid_left($asroot=false){
	
	if(GET_CACHED(__FILE__, __FUNCTION__,__FUNCTION__)){return;}
	$page=CurrentPageName();
	$tpl=new templates();
	$users=new usersMenus();

	include_once(dirname(__FILE__)."/ressources/class.status.inc");
	$sock=new sockets();
	$SquidBinIpaddr=$sock->GET_INFO("SquidBinIpaddr");
	if($SquidBinIpaddr==null){$SquidBinIpaddr="0.0.0.0";}
	$urgency_mode_img="20-check-grey.png";
	if($SquidBinIpaddr=="0.0.0.0"){$SquidBinIpaddr="{all}";}
	$CacheManagement2=$sock->GET_INFO("CacheManagement2");
	if(!is_numeric($CacheManagement2)){$CacheManagement2=0;}
	$squid=new squidbee();
	$q=new mysql();
	$master_version=$squid->SQUID_VERSION;
	$text_kavicap_error=null;
	$text_script=null;
	$cache_mem=$squid->global_conf_array["cache_mem"];	
	$users=new usersMenus();
	
	$As32=false;
	if(!isset($_GET["uuid"])){$_GET["uuid"]=$sock->getframework("cmd.php?system-unique-id=yes");}
	

	$EnableKavICAPRemote=$sock->GET_INFO("EnableKavICAPRemote");
	$KavICAPRemoteAddr=$sock->GET_INFO("KavICAPRemoteAddr");
	$KavICAPRemotePort=$sock->GET_INFO("KavICAPRemotePort");	
	if(!is_numeric($EnableKavICAPRemote)){$EnableKavICAPRemote=0;}
	$CPU_NUMBER=$sock->getFrameWork("services.php?CPU-NUMBER=yes");
	
	if($EnableKavICAPRemote==1){
		$fp=@fsockopen($KavICAPRemoteAddr, $KavICAPRemotePort, $errno, $errstr, 1);
			if(!$fp){
				$text_kavicap_error="<div>{kavicap_unavailable_text}<br><strong>
				<a href=\"javascript:blur();\" OnClick=\"javascript:Loadjs('squid.kavicap.php');\" style='font-size:12px;color:#D70707;text-decoration:underline'>$KavICAPRemoteAddr:$KavICAPRemotePort</a><br>$errstr</div>";				
			}
		
		@fclose($fp);			
	}
	
	$q=new mysql_squid_builder();
	
	$text_error_sql="<div id='db-status-infos'></div>
	<script>LoadAjax('db-status-infos','$page?db-status-infos=yes',true);</script>
	";
	
	
	
	$q=new mysql_squid_builder();
	$requests=$q->EVENTS_SUM();
	$requests=numberFormat($requests,0,""," ");
	
	
	$tableblock=date('Ymd')."_blocked";
	$ligneW=$q->COUNT_ROWS($tableblock);
	$blocked_today=numberFormat($ligneW,0,""," ")." {blocked_websites} {this_day}";
	
	$q=new mysql_squid_builder();
	$websitesnums=$q->COUNT_ROWS("dansguardian_sitesinfos","artica_backup");
	$websitesnums=numberFormat($websitesnums,0,""," ");	
	
	$q=new mysql_squid_builder();
	$categories=$q->COUNT_ROWS("dansguardian_community_categories");
	$categories=numberFormat($categories,0,""," ");		
	
	$sock=new sockets();
	$sock->SET_INFO("squidStatsCategoriesNum",$categories);
	$sock->SET_INFO("squidStatsWebSitesNum",$websitesnums);
	$sock->SET_INFO("squidStatsBlockedToday",$blocked_today);
	$sock->SET_INFO("squidStatsRequestNumber",$requests);
	$styleText="font-size:12px;font-weight:bold";
	$migration_pid=unserialize(base64_decode($sock->getFrameWork("squid.php?migration-stats=yes")));
	if(is_array($migration_pid)){
		$text_script="<span style='color:#B80000;font-size:13px'>{migration_script_run_text} PID:{$migration_pid[0]} {since}:{$migration_pid[1]}Mn</span>";
	}	
	
	
	$DisableSquidSNMPModeText="{disabled}";
	$DisableSquidSNMPModeCK="20-check-grey.png";
	$SquidEnableRockStoreCK="20-check-grey.png";
	if(preg_match("#^([0-9]+)\.([0-9]+)#", $master_version,$re)){
		$MAJOR=$re[1];
		$MINOR=$re[2];
		if($MAJOR>2){if($MINOR>1){$As32=true;}}
		$master_version_text="$MAJOR.$MINOR";
	}	
	
	if(preg_match("#^([0-9]+)\.([0-9]+)\.([0-9]+)#", $master_version,$re)){
		$MAJOR=$re[1];
		$MINOR=$re[2];
		$REV=$re[3];
		$master_version_text="$MAJOR.$MINOR.$REV";
	}
	
	
	if($master_version_text==null){$master_version_text="Unknown";}
	
	
	
	if($As32){
		if($CPU_NUMBER>1){
			$SquidEnableRockStore=$sock->GET_INFO("SquidEnableRockStore");
			$SquidRockStoreSize=$sock->GET_INFO("SquidRockStoreSize");
			if(!is_numeric($SquidEnableRockStore)){$SquidEnableRockStore=0;}
			if(!is_numeric($SquidRockStoreSize)){$SquidRockStoreSize=2000;}
			
			
				$DisableSquidSNMPModeText=$CPU_NUMBER." cpu(s)";
				$DisableSquidSNMPModeCK="20-check.png";
			
			
			
			
			if($SquidEnableRockStore==1){
				$SquidRockStoreSize=FormatBytes($SquidRockStoreSize*1024);
				$SquidEnableRockStoreCK="20-check.png";
			}else{
				$SquidRockStoreSize="{disabled}";
			}
			
			$smptr="		
			<tr>
				<td width=1%><img src='img/$DisableSquidSNMPModeCK'></td>
				<td class=legend nowrap style='font-size:12px'>SMP:</td>
				<td style='font-size:14px'>
				<a href=\"javascript:blur();\"
				OnClick=\"javascript:Loadjs('squid.caches32.php?smp-js=yes&uuid={$_GET["uuid"]}');\"
				style='$styleText;text-decoration:underline'>$DisableSquidSNMPModeText</a></span></td>
			</tr>
			<tr>
				<td width=1%><img src='img/$SquidEnableRockStoreCK'></td>
				<td class=legend nowrap style='font-size:12px'>Rock store:</td>
				<td style='font-size:14px'>
				<a href=\"javascript:blur();\"
				OnClick=\"javascript:Loadjs('squid.rockstore.php');\"
				style='$styleText;text-decoration:underline'>$SquidRockStoreSize</a></td>
			</tr>";			
			
		}
	}
	
	
	$qs=new mysql();
	if(!$qs->FIELD_EXISTS("nics","ucarp-enable","artica_backup")){$qs->QUERY_SQL("ALTER TABLE `nics` ADD `ucarp-enable` smallint( 1 ) NULL DEFAULT '0'",'artica_backup'); }
	$sql="SELECT COUNT(*) as tcount FROM nics WHERE `ucarp-enable`=1";
	$ligne2=mysql_fetch_array($qs->QUERY_SQL($sql,"artica_backup"));
	$failover_icon="20-check-grey.png";
	if($ligne2["tcount"]==0){
		$failover_text="{disabled}";
	}else{
		$failover_text="{enabled}";
		$failover_icon="20-check.png";
	}
	if(!$users->UCARP_INSTALLED){
		$failover_text="-";
		$failover_icon="20-check-grey.png";
	}
	
	if($CacheManagement2==1){$smptr=null;}
	$DisableAnyCache=$sock->GET_INFO("DisableAnyCache");
	if(!is_numeric($DisableAnyCache)){$DisableAnyCache=0;}
	$SquidCacheLevel=$sock->GET_INFO("SquidCacheLevel");
	if(!is_numeric($SquidCacheLevel)){$SquidCacheLevel=4;}
	if($SquidCacheLevel==0){$DisableAnyCache=1;}
	
	
	$hasProxyTransparent=$sock->GET_INFO("hasProxyTransparent");
	if(!is_numeric($hasProxyTransparent)){$hasProxyTransparent=0;}
	
	$hasProxyTransparentText="{disabled}";
	$hasProxyTransparentCheck="20-check-grey.png";
	
	$DisableAnyCacheText="{enabled}";
	$DisableAnyCacheCheck="20-check.png";
	
	if($hasProxyTransparent==1){
		$hasProxyTransparentText="{enabled}";
		$hasProxyTransparentCheck="20-check.png";
	}
	
	if($DisableAnyCache==1){
		$DisableAnyCacheText="{disabled}";
		$DisableAnyCacheCheck="20-check-grey.png";
		
	}else{
		$qN=new mysql();
		$ligne=mysql_fetch_array($qN->QUERY_SQL("SELECT SUM(cache_size) as size FROM squid_caches_center WHERE enabled=1","artica_backup"));
		$size=$ligne["size"];
		$DisableAnyCacheText=FormatBytes($size*1024);
	}	
	
	
	
	if(preg_match("#^([0-9]+)\s+#", $cache_mem)){
		$cache_mem2=$re[1];
		$cache_mem2=($cache_mem*1024);
		$cache_mem2=FormatBytes($cache_mem2);
	}
	$EnableCNTLM=$sock->GET_INFO("EnableCNTLM");
	$CNTLMPort=$sock->GET_INFO("CnTLMPORT");
	$EnableRDPProxy=$sock->GET_INFO("EnableRDPProxy");
	$SquidUrgency=$sock->GET_INFO("SquidUrgency");
	if(!is_numeric($SquidUrgency)){$SquidUrgency=0;}
	$urgency_mode_color=null;
	$urgency_text="{disabled}";
	
	if($SquidUrgency==1){
		$urgency_mode_color=";color:#BE0303";
		$urgency_mode_img="20-check-red.png";
		$urgency_text="{enabled}";
	}
	
	
	
	if(!is_numeric($EnableRDPProxy)){$EnableRDPProxy=0;}
	if(!is_numeric($EnableCNTLM)){$EnableCNTLM=0;}
	if(!is_numeric($CNTLMPort)){$CNTLMPort=3155;}
	
	$PP[]=$squid->listen_port;
	
	if(!is_numeric($squid->second_listen_port)){$squid->second_listen_port=0;}
	if($squid->second_listen_port>0){
		$PP[]=$squid->second_listen_port;
	}
	
	if($EnableCNTLM==0){
		if($CNTLMPort>0){
			$PP[]=$CNTLMPort;
		}
	}
	
	$transparent_mode="
		<tr>
			<td width=1%><img src='img/$hasProxyTransparentCheck'></td>
			<td class=legend nowrap style='font-size:12px'>{transparent}:</td>
			<td style='font-size:14px'>
			<a href=\"javascript:blur();\"
			OnClick=\"Loadjs('squid.newbee.php?squid-transparent-js=yes');\"
			style='$styleText;text-decoration:underline'>$hasProxyTransparentText</a></td>
		</tr>";	
	
	$DisableAnyCache="
		<tr>
			<td width=1%><img src='img/$DisableAnyCacheCheck'></td>
			<td class=legend nowrap style='font-size:12px'>{caches} {disk}:</td>
			<td style='font-size:14px'>
			<a href=\"javascript:blur();\"
			
			style='$styleText'>$DisableAnyCacheText</a></td>
		</tr>";	
	
	
	
	
	
	$CacheMemory="<tr>
			<td width=1%><img src='img/20-check.png'></td>
			<td class=legend nowrap style='font-size:12px'>{cache_memory}:</td>
			<td style='font-size:14px'><a href=\"javascript:blur();\" 
			OnClick=\"javascript:Loadjs('squid.cache_mem.php');\" 
			style='$styleText;text-decoration:underline'>{$cache_mem2}</a></td>
		</tr>";
	
	if($CacheManagement2==1){$CacheMemory=null;}
	$squidversion="	
	<center>
	<div class=form style='width:93%'>
	<table style='width:250px;margin-top:10px;' class='TableRemove TableMarged'>
	<tbody>
		<tr>
			<td colspan=3 style='font-size:14px;text-align:center;padding-bottom:10px'><a href=\"javascript:blur();\"
		OnClick=\"javascript:Loadjs('squid.popups.php?script=visible_hostname');\"
		style='font-size:14px;text-decoration:underline;'>$squid->visible_hostname</a>
			</td>
		</tr>	
	
	
		<tr>
			<td width=1%><img src='img/20-check.png'></td>
			<td class=legend nowrap style='font-size:12px'>Proxy {version}:</td>
			<td style='$styleText'><a href=\"javascript:blur();\" 
			OnClick=\"javascript:Loadjs('squid.compilation.status.php');\" 
			style='$styleText;text-decoration:underline'>$master_version_text</a></td>
		</tr>
		<tr>
			<td width=1%><img src='img/20-check.png'></td>
			<td class=legend nowrap style='font-size:12px'>{listen_addr}:</td>
			<td style='font-size:14px'><a href=\"javascript:blur();\" 
			OnClick=\"javascript:Loadjs('squid.nic.php');\" 
			style='$styleText;text-decoration:underline'>$SquidBinIpaddr</a></td>
		</tr>	

		<tr>
			<td width=1%><img src='img/$urgency_mode_img'></td>
			<td class=legend nowrap style='font-size:12px$urgency_mode_color'>{urgency_mode}:</td>
			<td style='$styleText'><a href=\"javascript:blur();\" 
			OnClick=\"javascript:Loadjs('squid.urgency.php');\" 
			style='$styleText;text-decoration:underline$urgency_mode_color'>$urgency_text</a></td>
		</tr>		
		
		$smptr
		$transparent_mode
		$DisableAnyCache
		$CacheMemory

		<tr>
			<td width=1%><img src='img/$failover_icon'></td>
			<td class=legend nowrap style='font-size:12px'>{failover2}:</td>
			<td style='font-size:14px'><a href=\"javascript:blur();\" 
			OnClick=\"javascript:Loadjs('squid.failover.php');\" 
			style='$styleText;text-decoration:underline'>{$failover_text}</a></td>
		</tr>	
		
		
		</tbody>
	</table>
	</div>
	</center>
	";
	
	if($users->WEBSTATS_APPLIANCE){$squidversion=null;}
	
	$design="
	$text_error_sql
	$text_script
	$text_kavicap_error
	$squidversion
	<div id='squid-plugins-activated'></div>
	<div style='width:100%;text-align:right'>". 
	imgtootltip("refresh-24.png","{refresh}",
			"LoadAjax('squid-status','squid.main.quicklinks.php?status=yes');")."
	</div>
	
	";
	
	$classform="class=form";
	$sock=new sockets();
	$EnableRemoteStatisticsAppliance=$sock->GET_INFO("EnableRemoteStatisticsAppliance");
	if(!is_numeric($EnableRemoteStatisticsAppliance)){$EnableRemoteStatisticsAppliance=0;}
	$UnlockWebStats=$sock->GET_INFO("UnlockWebStats");
	if(!is_numeric($UnlockWebStats)){$UnlockWebStats=0;}
	if($UnlockWebStats==1){$EnableRemoteStatisticsAppliance=0;}	
	
	
	if($EnableRemoteStatisticsAppliance==1){$classform=null;}	
	
	$html="
	$design
	<center>
	
		<div id='squid-status-stats' $classform style='width:90%'></div>
	</center>
	
	
	<script>
		LoadAjax('squid-status-stats','squid.traffic.statistics.php?squid-status-stats=yes');	
		LoadAjax('squid-services','$page?squid-services=yes');
		LoadAjax('squid-plugins-activated','dansguardian2.php?dansguardian-status=yes');
	</script>
	";
	

	if($asroot){
		SET_CACHED(__FILE__, __FUNCTION__, __FUNCTION__, $html);
		return;
	}
	
	$html=$tpl->_ENGINE_parse_body($html);
	SET_CACHED(__FILE__, __FUNCTION__, __FUNCTION__, $html);
	echo $html;
	
	
}
Ejemplo n.º 13
0
function rule_new_save()
{
    $rulename = mysql_escape_string2(url_decode_special_tool($_POST["rule-new"]));
    $eth = $_POST["eth"];
    $sql = "INSERT IGNORE INTO iptables_main (`rulename`,`eth`,`accepttype`,`enabled`) \n\tVALUES ('{$rulename}','{$eth}','ACCEPT','1')";
    $q = new mysql();
    if (!$q->FIELD_EXISTS("iptables_main", "service", "artica_backup")) {
        $q->QUERY_SQL("ALTER TABLE `iptables_main` ADD `service` varchar(50) NULL ,ADD INDEX ( service );", "artica_backup");
    }
    $q->QUERY_SQL($sql, "artica_backup");
    if (!$q->ok) {
        echo $q->mysql_error;
    }
}
Ejemplo n.º 14
0
function rule_save(){
	$ID=$_POST["rule-save"];
	$_POST["rulename"]=mysql_escape_string2(url_decode_special_tool($_POST["rulename"]));
	
	
	$FADD_FIELDS[]="`rulename`";
	$FADD_FIELDS[]="`proto`";
	$FADD_FIELDS[]="`accepttype`";
	$FADD_FIELDS[]="`enabled`";
	$FADD_FIELDS[]="`OverideNet`";
	$FADD_FIELDS[]="`MOD`";
	$FADD_FIELDS[]="`eth`";
	$FADD_FIELDS[]="`source_group`";
	$FADD_FIELDS[]="`dest_group`";
	$FADD_FIELDS[]="`destport_group`";
	$FADD_FIELDS[]="`zOrder`";
	$FADD_FIELDS[]="`ForwardTo`";
	$FADD_FIELDS[]="`ForwardNIC`";
	$FADD_FIELDS[]="`L7Mark`";
	$FADD_FIELDS[]="`jlog`";
	
	
	
	$FADD_VALS[]=$_POST["rulename"];
	$FADD_VALS[]=$_POST["proto"];
	$FADD_VALS[]=$_POST["accepttype"];
	$FADD_VALS[]=$_POST["enabled"];
	$FADD_VALS[]=$_POST["OverideNet"];
	$FADD_VALS[]=$_POST["table"];
	$FADD_VALS[]=$_POST["interface"];
	$FADD_VALS[]=$_POST["source_group"];
	$FADD_VALS[]=$_POST["dest_group"];
	$FADD_VALS[]=$_POST["destport_group"];
	$FADD_VALS[]=$_POST["zOrder"];
	$FADD_VALS[]=$_POST["ForwardTo"];
	$FADD_VALS[]=$_POST["ForwardNIC"];
	$FADD_VALS[]=$_POST["L7Mark"];
	$FADD_VALS[]=$_POST["jlog"];
	
	
	
	if(isset($_POST["MARK"])){
		$FADD_FIELDS[]="`MARK`";
		$FADD_VALS[]=$_POST["MARK"];
	
	}
	
	if(isset($_POST["QOS"])){
		$FADD_FIELDS[]="`QOS`";
		$FADD_VALS[]=$_POST["QOS"];
	
	}

	while (list ($num, $field) = each ($FADD_FIELDS)){
		$EDIT_VALS[]="$field ='".$FADD_VALS[$num]."'";
	}
	
	reset($FADD_VALS);
	while (list ($num, $field) = each ($FADD_VALS)){
		$ITEMSADD[]="'$field'";
	}
	
	$q=new mysql();
	if(!$q->FIELD_EXISTS("iptables_main","MARK","artica_backup")){
		$sql="ALTER TABLE `iptables_main` ADD `MARK` INT( 10 ) NOT NULL DEFAULT 0";
		$q->QUERY_SQL($sql,"artica_backup");
	}
	
	if(!$q->FIELD_EXISTS("iptables_main","QOS","artica_backup")){
		$sql="ALTER TABLE `iptables_main` ADD `QOS` INT( 10 ) NOT NULL DEFAULT 0";
		$q->QUERY_SQL($sql,"artica_backup");
	}
	
	if(!$q->FIELD_EXISTS("iptables_main","L7Mark","artica_backup")){
		$sql="ALTER TABLE `iptables_main` ADD `L7Mark` INT( 10 ) NULL DEFAULT 0,ADD INDEX ( L7Mark ) ";
		$q->QUERY_SQL($sql,"artica_backup");
	}
	if(!$q->FIELD_EXISTS("iptables_main","jlog","artica_backup")){
		$sql="ALTER TABLE `iptables_main` ADD `jlog` smallint( 1 ) NOT NULL DEFAULT 0,ADD INDEX ( jlog )";
		$q->QUERY_SQL($sql,"artica_backup");
	}

	
	if($ID==0){
		$sql="INSERT IGNORE INTO iptables_main ( ". @implode(",", $FADD_FIELDS).") VALUES (".@implode(",", $ITEMSADD).")";
		
	}else{
		$sql="UPDATE iptables_main SET  ". @implode(",", $EDIT_VALS)." WHERE ID='$ID'";
		
	}
	
	
	

	
	
	$q->QUERY_SQL($sql,"artica_backup");
	if(!$q->ok){echo $q->mysql_error."\n$sql";}
}
Ejemplo n.º 15
0
function Save()
{
    $q = new mysql();
    $sql = "CREATE TABLE IF NOT EXISTS `artica_backup`.`artica_webdav` (\n\t\t\t\t`ID` BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,\n\t\t\t\t`directory` VARCHAR(128) NOT NULL,\n\t\t\t\t`write` smallint(1),\n\t\t\t\tUNIQUE KEY `directory` (`directory`)\n\t\t\n\t\t\t\t) ENGINE=MYISAM;";
    $q->QUERY_SQL($sql, 'artica_backup');
    if (!$q->FIELD_EXISTS("artica_webdav", "write", "artica_backup")) {
        $sql = "ALTER TABLE `artica_webdav` ADD `write` smallint( 1 ) NOT NULL DEFAULT 0";
        $q->QUERY_SQL($sql, "artica_backup");
    }
    $q->QUERY_SQL("INSERT IGNORE INTO artica_webdav (`directory`,`write`) VALUES ('{$_POST["directory"]}','{$_POST["write"]}')", "artica_backup");
    if (!$q->ok) {
        echo $q->mysql_error;
    }
}
Ejemplo n.º 16
0
function openssl_pkcs12($CommonName)
{
    $unix = new unix();
    $sock = new sockets();
    $CommonName_source = $CommonName;
    $openssl = $unix->find_program("openssl");
    $rm = $unix->find_program("rm");
    $CommonName = str_replace("_ALL_", "*", $CommonName);
    $directory = "/etc/openssl/certificate_center/" . md5($CommonName);
    mkdir($directory, 0755, true);
    if ($GLOBALS["VERBOSE"]) {
        echo "pkcs12...\n";
    }
    build_progress_pkcs12("{$CommonName}...", 15);
    $q = new mysql();
    $sql = "SELECT * FROM sslcertificates WHERE CommonName='{$CommonName}'";
    $ligne = mysql_fetch_array($q->QUERY_SQL($sql, "artica_backup"));
    $subj = GetSubj($CommonName);
    $CertificateMaxDays = intval($ligne["CertificateMaxDays"]);
    if ($CertificateMaxDays < 5) {
        $CertificateMaxDays = 730;
    }
    build_progress_pkcs12("Create a Certificate Signing Request (CSR)", 20);
    @unlink("{$directory}/server.key");
    $cmd = "{$openssl} genrsa -des3 -passout pass:{$ligne["password"]} -out {$directory}/server.key {$ligne["levelenc"]}";
    system($cmd);
    if (!is_file("{$directory}/server.key")) {
        build_progress_pkcs12("{$directory}/server.key no such file..", 110);
    }
    @unlink("{$directory}/server.csr");
    $cmd = "{$openssl} req -new -passin pass:{$ligne["password"]} {$subj} -key {$directory}/server.key -out {$directory}/server.csr";
    system($cmd);
    if (!is_file("{$directory}/server.csr")) {
        build_progress_pkcs12("{$directory}/server.csr no such file..", 110);
    }
    build_progress_pkcs12("Create own Certificate Authority (CA)", 40);
    @unlink("{$directory}/ca.key");
    $cmd = "{$openssl} genrsa -des3 -passout pass:{$ligne["password"]} -out {$directory}/ca.key {$ligne["levelenc"]}";
    system($cmd);
    if (!is_file("{$directory}/ca.key")) {
        build_progress_pkcs12("{$directory}/ca.key no such file..", 110);
    }
    @unlink("{$directory}/ca.crt");
    $cmd = "{$openssl} req -new -x509 -passin pass:{$ligne["password"]} {$subj} -days 365 -key {$directory}/ca.key -out {$directory}/ca.crt";
    system($cmd);
    if (!is_file("{$directory}/ca.crt")) {
        build_progress_pkcs12("{$directory}/ca.crt no such file..", 110);
    }
    build_progress_pkcs12("Sign the CSR using the CA", 50);
    @unlink("{$directory}/server.crt");
    $cmd = "{$openssl} x509 -req -days {$CertificateMaxDays} -passin pass:{$ligne["password"]} -in {$directory}/server.csr -CA {$directory}/ca.crt -CAkey {$directory}/ca.key -set_serial 01 -out {$directory}/server.crt";
    system($cmd);
    if (!is_file("{$directory}/server.crt")) {
        build_progress_pkcs12("{$directory}/server.crt no such file..", 110);
    }
    build_progress_pkcs12("Remove password from private key", 70);
    @unlink("{$directory}/server.key.org");
    @copy("{$directory}/server.key", "{$directory}/server.key.org");
    $cmd = "{$openssl} rsa -in {$directory}/server.key.org -passin pass:{$ligne["password"]} -out {$directory}/server.key";
    system($cmd);
    build_progress_pkcs12("Convert the certificate into pkcs12 format", 75);
    @unlink("{$directory}/pkcs12.p12");
    $cmd = "openssl pkcs12 -export -in {$directory}/server.crt -inkey {$directory}/server.key -certfile {$directory}/ca.crt -name \"{$CommonName} Certificate\" -out {$directory}/pkcs12.p12 -passout pass:{$ligne["password"]}";
    system($cmd);
    if (!is_file("{$directory}/pkcs12.p12")) {
        build_progress_pkcs12("{$directory}/pkcs12.p12 no such file..", 110);
    }
    // $directory/pkcs12.p12 = pkcs12
    // $directory/ca.key = privkey
    //
    //ssl_certificate      ssl/server.crt = SquidCert
    //ssl_certificate_key  ssl/server.key = Squidkey
    //ssl_client_certificate  ssl/ca.crt = srca
    $Squidkey = mysql_escape_string2(@file_get_contents("{$directory}/server.key"));
    $SquidCert = mysql_escape_string2(@file_get_contents("{$directory}/server.crt"));
    $SquidSrca = mysql_escape_string2(@file_get_contents("{$directory}/ca.crt"));
    $privkey = mysql_escape_string2(@file_get_contents("{$directory}/ca.key"));
    $pks12 = mysql_escape_string2(@file_get_contents("{$directory}/pkcs12.p12"));
    $csr = mysql_escape_string2(@file_get_contents("{$directory}/server.csr"));
    build_progress_pkcs12("Saving content into Certificate Center", 80);
    if (!$q->FIELD_EXISTS("sslcertificates", "pkcs12", "artica_backup")) {
        $sql = "ALTER TABLE `sslcertificates` ADD `pkcs12` TEXT NOT NULL";
        $q->QUERY_SQL($sql, 'artica_backup');
    }
    if (!$q->FIELD_EXISTS("sslcertificates", "Squidkey", "artica_backup")) {
        $sql = "ALTER TABLE `sslcertificates` ADD `Squidkey` TEXT NOT NULL";
        $q->QUERY_SQL($sql, 'artica_backup');
    }
    if (!$q->FIELD_EXISTS("sslcertificates", "SquidCert", "artica_backup")) {
        $sql = "ALTER TABLE `sslcertificates` ADD `SquidCert` TEXT NOT NULL";
        $q->QUERY_SQL($sql, 'artica_backup');
    }
    if (!$q->FIELD_EXISTS("sslcertificates", "privkey", "artica_backup")) {
        $sql = "ALTER TABLE `sslcertificates` ADD `privkey` TEXT NOT NULL";
        $q->QUERY_SQL($sql, 'artica_backup');
    }
    if (!$q->FIELD_EXISTS("sslcertificates", "IsClientCert", "artica_backup")) {
        $sql = "ALTER TABLE `sslcertificates` ADD `IsClientCert` smallint(1) NOT NULL,ADD INDEX ( `IsClientCert` )";
        $q->QUERY_SQL($sql, 'artica_backup');
    }
    $sql = "UPDATE sslcertificates SET\n\t`Squidkey`='{$Squidkey}',\n\t`SquidCert`='{$SquidCert}',\n\t`privkey`='{$privkey}',\n\t`srca`='{$SquidSrca}',\n\t`pkcs12`='{$pks12}',\n\t`csr`='{$csr}',\n\t`IsClientCert`=1\n\tWHERE CommonName='{$CommonName}'";
    $q->QUERY_SQL($sql, "artica_backup");
    if (!$q->ok) {
        build_progress_pkcs12("Creating certificates {failed}", 110);
        echo $q->mysql_error . "\n";
        die;
    }
    $q = new mysql_squid_builder();
    $results = $q->QUERY_SQL("SELECT servername,zOrder FROM reverse_www WHERE certificate='{$CommonName_source}' ORDER BY zOrder");
    $php = $unix->LOCATE_PHP5_BIN();
    $c = 0;
    while ($ligne = @mysql_fetch_array($results, MYSQL_ASSOC)) {
        $c++;
        build_progress_pkcs12("Rebuild {$ligne["servername"]} webiste", 90);
        system("{$php} /usr/share/artica-postfix/exec.nginx.single.php \"{$ligne["servername"]}\"");
    }
    // http://rynop.wordpress.com/2012/11/26/howto-client-side-certificate-auth-with-nginx/
    //https://gist.github.com/mtigas/952344
    //http://myonlineusb.wordpress.com/2011/06/19/what-are-the-differences-between-pem-der-p7bpkcs7-pfxpkcs12-certificates/
    build_progress_pkcs12("Creating certificates {success}", 100);
}
Ejemplo n.º 17
0
function rules_list()
{
    $q = new mysql();
    $tpl = new templates();
    $database = "artica_backup";
    $table = "pnic_bridges";
    $MyPage = CurrentPageName();
    $t = $_GET["t"];
    $sock = new sockets();
    $FireHoleTrue = false;
    $FireHolConf = unserialize(base64_decode($sock->GET_INFO("FireHolConf")));
    if (!isset($FireHolConf["IF_LAN"])) {
        $FireHolConf["IF_LAN"] = null;
    }
    if (!isset($FireHolConf["IF_WAN"])) {
        $FireHolConf["IF_WAN"] = null;
    }
    if ($FireHolConf["IF_LAN"] != null && $FireHolConf["IF_WAN"] != null) {
        $FireHoleTrue = true;
    }
    if (!$q->TABLE_EXISTS("pnic_bridges", "artica_backup")) {
        $sql = "CREATE TABLE IF NOT EXISTS `pnic_bridges` (\n\t\t`ID` INT(10) NOT NULL AUTO_INCREMENT,\n\t\t`zMD5` varchar(90) NOT NULL,\n\t\t`nic_from` varchar(50) NOT NULL,\n\t\t`nic_to` varchar(50) NOT NULL,\n\t\t`enabled` smallint(1) NOT NULL DEFAULT 1,\n\t\t`DenyDHCP` smallint(1) NOT NULL DEFAULT 1,\n\t\tPRIMARY KEY (`ID`),\n\t\tUNIQUE KEY (`zMD5`),\n\t\tKEY `nic_from` (`nic_from`),\n\t\tKEY `nic_to` (`nic_to`),\n\t\tKEY `DenyDHCP` (`DenyDHCP`),\n\t\tKEY `enabled` (`enabled`)\n\t\t) ENGINE=MYISAM;";
        $q->QUERY_SQL($sql, $database);
    }
    if (!$q->FIELD_EXISTS("pnic_bridges", "DenyDHCP", "artica_backup")) {
        $q->QUERY_SQL("ALTER TABLE pnic_bridges ADD DenyDHCP smallint(1) DEFAULT 1", "artica_backup");
        if (!$q->ok) {
            echo "ALTER TABLE DenyDHCP failed\n{$q->mysql_error}\n";
            return;
        }
    }
    if (!$q->FIELD_EXISTS("pnic_bridges", "masquerading", "artica_backup")) {
        $q->QUERY_SQL("ALTER TABLE pnic_bridges ADD masquerading smallint(1) DEFAULT 0", "artica_backup");
        if (!$q->ok) {
            echo "ALTER TABLE masquerading failed\n{$q->mysql_error}\n";
            return;
        }
    }
    if (!$q->FIELD_EXISTS("pnic_bridges", "masquerading_invert", "artica_backup")) {
        $q->QUERY_SQL("ALTER TABLE pnic_bridges ADD masquerading_invert smallint(1) DEFAULT 0", "artica_backup");
        if (!$q->ok) {
            echo "ALTER TABLE masquerading_invert failed\n{$q->mysql_error}\n";
            return;
        }
    }
    if (!$q->TABLE_EXISTS("pnic_bridges", "artica_backup")) {
        json_error_show("Unable to create table...", 1);
    }
    $sock = new sockets();
    $net = new networking();
    $ip = new IP();
    $interfaces = unserialize(base64_decode($sock->getFrameWork("cmd.php?ifconfig-interfaces=yes")));
    $ERROR_NO_PRIVS = $tpl->javascript_parse_text("{ERROR_NO_PRIVS}");
    $DisableNetworksManagement = $sock->GET_INFO("DisableNetworksManagement");
    if ($DisableNetworksManagement == null) {
        $DisableNetworksManagement = 0;
    }
    $EnableIpBlocks = intval($sock->GET_INFO("EnableIpBlocks"));
    if (isset($_POST["sortname"])) {
        if ($_POST["sortname"] != null) {
            $ORDER = "ORDER BY {$_POST["sortname"]} {$_POST["sortorder"]}";
        }
    }
    if (isset($_POST['page'])) {
        $page = $_POST['page'];
    }
    $searchstring = string_to_flexquery();
    $sql = "SELECT COUNT( * ) AS tcount FROM {$table} WHERE 1 {$searchstring}";
    $ligne = mysql_fetch_array($q->QUERY_SQL($sql, $database));
    if (!$q->ok) {
        json_error_show($q->mysql_error . "<hr>" . $sql, 1);
    }
    $total = intval($ligne["tcount"]);
    if (isset($_POST['rp'])) {
        $rp = $_POST['rp'];
    }
    $pageStart = ($page - 1) * $rp;
    $limitSql = "LIMIT {$pageStart}, {$rp}";
    $deny_dhcp_requests = $tpl->_ENGINE_parse_body("{deny_dhcp_requests}");
    $sql = "SELECT * FROM `{$table}` WHERE 1 {$searchstring} {$ORDER} {$limitSql}";
    $results = $q->QUERY_SQL($sql, $database);
    if (!$q->ok) {
        json_error_show($q->mysql_error . "<hr>" . $sql, 1);
    }
    $data = array();
    $data['page'] = $page;
    $data['total'] = $total;
    $data['rows'] = array();
    if (mysql_num_rows($results) == 0) {
        if (!$FireHoleTrue) {
            json_error_show("No rule set...", 1);
        }
    }
    if ($searchstring == null) {
        if ($FireHoleTrue) {
            $data['total']++;
            $nic_from = $FireHolConf["IF_LAN"];
            $nic_to = $FireHolConf["IF_WAN"];
            $arrow = "arrow-right-32.png";
            $color = "black";
            $delete = imgsimple("delete-32.png", null, "Loadjs('{$MyPage}?bridge-wizard-delete-js={$ligne['ID']}&t={$t}',true)");
            $data['rows'][] = array('id' => $ligne['ID'], 'cell' => array("<span style='font-size:18px;font-weight:bold;color:{$color}'>0</span>", "<span style='font-size:18px;font-weight:normal;color:{$color}'>{$nic_from} - LAN -</a></span>", "<center><img src=\"img/{$arrow}\"></center>", "<span style='font-size:18px;font-weight:normal;color:{$color}'>{$nic_to} - WAN -</span>", "<center>{$delete}</center>"));
        }
    }
    $BEHA["reject"] = "{strict_mode}";
    $BEHA["accept"] = "{trusted_mode}";
    $BEHA2[0] = "{not_defined}";
    $BEHA2[1] = "{act_as_lan}";
    $BEHA2[2] = "{act_as_wan}";
    while ($ligne = mysql_fetch_assoc($results)) {
        $color = "black";
        $deny_dhcp_requeststxt = null;
        $arrow = "arrow-right-32.png";
        if ($ligne["enabled"] == 0) {
            $color = "#ABABAB";
            $arrow = "arrow-right-32-grey.png";
        }
        $ip = new IP();
        $nic_from = $ligne["nic_from"];
        $nic_to = $ligne["nic_to"];
        $masquerading = null;
        $DenyCountries = null;
        if ($ligne["DenyDHCP"] == 1) {
            $deny_dhcp_requeststxt = $deny_dhcp_requests;
        }
        if ($ligne["masquerading"] == 1) {
            $masquerading = $tpl->javascript_parse_text(", {masquerading}");
        }
        if ($ligne["masquerading_invert"] == 1) {
            $masquerading = $tpl->javascript_parse_text(", {masquerading_invert}");
        }
        if ($EnableIpBlocks == 1) {
            if ($ligne["DenyCountries"] == 1) {
                $DenyCountries = $tpl->javascript_parse_text(", {enable_ipblocks}");
            }
        }
        $nic = new system_nic($nic_from);
        $b0 = $BEHA2[$nic->firewall_behavior] . "/" . $BEHA[$nic->firewall_policy];
        $nic_from_text = "<strong style='color:{$color}'>{$nic_from}</strong> {$nic->IPADDR}/{$nic->NETMASK} {$nic->NICNAME}";
        $b0 = $tpl->_ENGINE_parse_body($b0);
        $nic = new system_nic($nic_to);
        $b1 = $BEHA2[$nic->firewall_behavior] . "/" . $BEHA[$nic->firewall_policy];
        $nic_to_text = "<strong style='color:{$color}'>{$nic_to}</strong> {$nic->IPADDR}/{$nic->NETMASK} {$nic->NICNAME}";
        $b1 = $tpl->_ENGINE_parse_body($b1);
        $delete = imgsimple("delete-32.png", null, "Loadjs('{$MyPage}?network-bridge-delete-js={$ligne['ID']}&t={$t}',true)");
        $js = "Loadjs('{$MyPage}?network-bridge-js=yes&ID={$ligne['ID']}&t={$t}',true);";
        $href = "<a href=\"javascript:blur();\" OnClick=\"javascript:{$js}\" style='font-size:18px;color:{$color};font-weight:normal;text-decoration:underline'>";
        $data['rows'][] = array('id' => $ligne['ID'], 'cell' => array("<span style='font-size:18px;font-weight:bold;color:{$color}'>{$ligne['ID']}</span>", "<span style='font-size:18px;font-weight:normal;color:{$color}'>{$href}{$nic_from_text}</a>\n\t\t\t\t\t\t<br></span><span style='font-size:14px;font-weight:bold'>{$b0}</span>", "<center><img src=\"img/{$arrow}\"></center>", "<span style='font-size:18px;font-weight:normal;color:{$color}'>{$nic_to_text}<br><span style='font-size:14px;font-weight:bold'>{$b1}</span><br><span style='font-size:18px'><i>{$deny_dhcp_requests}{$masquerading}</span></span>", "<center>{$delete}</center>"));
    }
    echo json_encode($data);
}
Ejemplo n.º 18
0
function metaevents_client_scan($uuid)
{
    $unix = new unix();
    $sock = new sockets();
    $q = new mysql();
    if (!$q->test_mysql_connection()) {
        return;
    }
    $ArticaMetaStorage = $sock->GET_INFO("ArticaMetaStorage");
    if ($ArticaMetaStorage == null) {
        $ArticaMetaStorage = "/home/artica-meta";
    }
    $destdir = "{$ArticaMetaStorage}/{$uuid}/META_EVENTS";
    $files = $unix->DirFiles($destdir);
    if (!$q->FIELD_EXISTS("meta_admin_mysql", "zmd5", "artica_events")) {
        meta_events("Patching meta_admin_mysql");
        $meta = new mysql_meta();
        $q->QUERY_SQL("DROP TABLE `meta_admin_mysql`", "artica_events");
        $meta->create_table_meta_admin_mysql();
    }
    while (list($filename, $ARRAY) = each($files)) {
        $sourcefile = "{$destdir}/{$filename}";
        $destfile = "{$destdir}/{$filename}.sql";
        meta_events("{$uuid}: Uncompress {$sourcefile}...");
        $unix->uncompress($sourcefile, $destfile);
        if (!is_file($destfile)) {
            continue;
        }
        $q->QUERY_SQL(@file_get_contents($destfile), "artica_events");
        if (!$q->ok) {
            meta_events("{$uuid}:{$q->mysql_error}");
            @unlink($destfile);
            continue;
        }
        @unlink($sourcefile);
        @unlink($destfile);
    }
}
Ejemplo n.º 19
0
function items_enable()
{
    $aclid = $_POST["aclid"];
    $num = $_POST["acl-rule-link-enable"];
    $q = new mysql();
    $ligne = mysql_fetch_array($q->QUERY_SQL("SELECT dscp FROM `qos_containers` WHERE ID='{$aclid}'", "artica_backup"));
    $array = unserialize($ligne["dscp"]);
    if (!isset($array[$num])) {
        $array[$num] = true;
    } else {
        unset($array[$num]);
    }
    $newarray = mysql_escape_string2(serialize($array));
    if (!$q->FIELD_EXISTS("qos_containers", "dscp", "artica_backup")) {
        $sql = "ALTER TABLE `qos_containers` ADD `dscp` TEXT";
        $q->QUERY_SQL($sql, "artica_backup");
        if (!$q->ok) {
            echo $q->mysql_error;
            return false;
        }
    }
    $q->QUERY_SQL("UPDATE qos_containers SET dscp='{$newarray}' WHERE ID='{$aclid}'", "artica_backup");
    if (!$q->ok) {
        echo $q->mysql_error;
    }
}
Ejemplo n.º 20
0
function virtuals_add(){
	$sock=new sockets();
	$tpl=new templates();
	$ERROR_NO_PRIVS=$tpl->javascript_parse_text("{ERROR_NO_PRIVS}");
	$DisableNetworksManagement=$sock->GET_INFO("DisableNetworksManagement");
	if($DisableNetworksManagement==null){$DisableNetworksManagement=0;}		
	if($DisableNetworksManagement==1){echo $ERROR_NO_PRIVS;return;}	

	
	if($_GET["nic"]==null){echo $tpl->_ENGINE_parse_body("{nic}=null");exit;}
	$PING=trim($sock->getFrameWork("cmd.php?ping=".urlencode($_GET["virt-ipaddr"])));
	
	if($PING=="TRUE"){
		echo $tpl->javascript_parse_text("{$_GET["virt-ipaddr"]}:\n{ip_already_exists_in_the_network}");
		return;
	}
	
	if($_GET["failover"]==1){
		$_GET["gateway"]=$_GET["virt-ipaddr"];
		$_GET["netmask"]="255.255.255.255";
		$_GET["ForceGateway"]=0;
		
	}
	
	if($_GET["metric"]==0){$_GET["metric"]=lastmetric();}
	
	$NoGatewayForVirtualNetWork=$sock->GET_INFO("NoGatewayForVirtualNetWork");
	if(!is_numeric($NoGatewayForVirtualNetWork)){$NoGatewayForVirtualNetWork=0;}	
	
	if($NoGatewayForVirtualNetWork==1){$_GET["gateway"]=null;}
	$q=new mysql();
	if(!$q->FIELD_EXISTS("nics_virtuals","ForceGateway","artica_backup")){$sql="ALTER TABLE `nics_virtuals` ADD `ForceGateway` TINYINT( 1 ) NOT NULL";$q->QUERY_SQL($sql,'artica_backup');if(!$q->ok){echo $q->mysql_error."\n$sql\n";return;}}		
	if(!$q->FIELD_EXISTS("nics_virtuals","failover","artica_backup")){$sql="ALTER TABLE `nics_virtuals` ADD `failover` TINYINT( 1 ) NOT NULL,ADD INDEX ( `failover` )";$q->QUERY_SQL($sql,'artica_backup');if(!$q->ok){echo $q->mysql_error."\n$sql\n\n";return;}}
	
	$sql="INSERT INTO nics_virtuals (nic,org,ipaddr,netmask,cdir,gateway,ForceGateway,failover,metric)
	VALUES('{$_GET["nic"]}','{$_GET["org"]}','{$_GET["virt-ipaddr"]}','{$_GET["netmask"]}',
	'{$_GET["cdir"]}','{$_GET["gateway"]}',{$_GET["ForceGateway"]},{$_GET["failover"]},{$_GET["metric"]});
	";
	
	if($_GET["ID"]>0){
		$sql="UPDATE nics_virtuals SET nic='{$_GET["nic"]}',
		org='{$_GET["org"]}',
		ipaddr='{$_GET["virt-ipaddr"]}',
		netmask='{$_GET["netmask"]}',
		cdir='{$_GET["cdir"]}',
		gateway='{$_GET["gateway"]}',
		ForceGateway='{$_GET["ForceGateway"]}',
		failover='{$_GET["failover"]}',
		metric='{$_GET["metric"]}'
		WHERE ID={$_GET["ID"]}";
	}
	writelogs("$sql",__FUNCTION__,__FILE__,__LINE__);
	
	$q->QUERY_SQL($sql,"artica_backup");
	if(!$q->ok){if(preg_match("#Unknown col#i", $q->mysql_error)){$q->BuildTables();$q->QUERY_SQL($sql,"artica_backup");}}
	if(!$q->ok){echo $q->mysql_error."\n$sql\n";}
	
}
Ejemplo n.º 21
0
function certificate_edit_settings()
{
    $commonName = $_GET["CommonName"];
    $commonNameADD = null;
    $q = new mysql();
    $db = file_get_contents(dirname(__FILE__) . '/ressources/databases/ISO-3166-Codes-Countries.txt');
    $tbl = explode("\n", $db);
    while (list($num, $ligne) = each($tbl)) {
        if (preg_match('#(.+?);\\s+([A-Z]{1,2})#', $ligne, $regs)) {
            $regs[2] = trim($regs[2]);
            $regs[1] = trim($regs[1]);
            $array_country_codes["{$regs[1]}_{$regs[2]}"] = $regs[1];
        }
    }
    $ENC[1024] = 1024;
    $ENC[2048] = 2048;
    $ENC[4096] = 4096;
    if (!$q->FIELD_EXISTS("sslcertificates", "UsePrivKeyCrt", "artica_backup")) {
        $sql = "ALTER TABLE `sslcertificates` ADD `UsePrivKeyCrt` smallint(1) DEFAULT 0";
        $q->QUERY_SQL($sql, 'artica_backup');
    }
    $tpl = new templates();
    $choose_UsePrivKeyCrt = $tpl->javascript_parse_text("{choose_UsePrivKeyCrt}");
    $sql = "SELECT * FROM sslcertificates WHERE CommonName='{$commonName}'";
    $ligne = mysql_fetch_array($q->QUERY_SQL($sql, "artica_backup"));
    if ($ligne["UseGodaddy"] == 1) {
        $ligne["UsePrivKeyCrt"] = 1;
        $commonNameADD = " (Godaddy)";
    }
    if ($ligne["UsePrivKeyCrt"] == 0) {
        if ($ligne["CountryName"] == null) {
            $ligne["CountryName"] = "UNITED STATES_US";
        }
        if ($ligne["stateOrProvinceName"] == null) {
            $ligne["stateOrProvinceName"] = "New York";
        }
        if ($ligne["localityName"] == null) {
            $ligne["localityName"] = "Brooklyn";
        }
        if ($ligne["emailAddress"] == null) {
            $ligne["emailAddress"] = "*****@*****.**";
        }
        if ($ligne["OrganizationName"] == null) {
            $ligne["OrganizationName"] = "MyCompany Ltd";
        }
        if ($ligne["OrganizationalUnit"] == null) {
            $ligne["OrganizationalUnit"] = "IT service";
        }
        if (!is_numeric($ligne["CertificateMaxDays"])) {
            $ligne["CertificateMaxDays"] = 730;
        }
        if (!is_numeric($ligne["levelenc"])) {
            $ligne["levelenc"] = 1024;
        }
    }
    $page = CurrentPageName();
    $tpl = new templates();
    $sock = new sockets();
    $hostname = $sock->GET_INFO("myhostname");
    $choose_UsePrivKeyCrt = $tpl->javascript_parse_text("{choose_UsePrivKeyCrt}");
    $t = time();
    $ENC[1024] = 1024;
    $ENC[2048] = 2048;
    $ENC[4096] = 4096;
    $commonNameEnc = urlencode($commonName);
    $bt_name = "{apply}";
    if (strlen($ligne["pkcs12"]) > 50) {
        $cleint_certificate = "<div style='float:right;width:30%;text-align:right;margin:5px'>\n\t\t\t<center>\n\t\t\t<a href=\"{$page}?pkcs12=yes&CommonName=" . urlencode($_GET["CommonName"]) . "\">\n\t\t\t\t<img src='img/certificate-128.png'>\n\t\t\t</a><br>\n\t\t\t<span style='font-size:18px'>PKCS12 {client_certificate}</span> \n\t\t\t</center>\n\t\t\t</div>";
    }
    if ($ligne["UsePrivKeyCrt"] == 0) {
        $bt_name = "{generate_x509}";
    }
    $html[] = "<div style='font-size:42px;margin-bottom:15px'>{$commonName}{$commonNameADD}</div>";
    $html[] = "<div style='width:98%' class=form>";
    $html[] = "<table style='width:100%'>";
    if ($ligne["UsePrivKeyCrt"] == 0) {
        $html[] = "<tr><td colspan=2>{$cleint_certificate}" . Paragraphe_switch_img("{UsePrivKeyCrt}", "{UsePrivKeyCrt_text}", "UsePrivKeyCrt", $ligne["UsePrivKeyCrt"], null, 820) . "</td></tr>";
        $html[] = Field_list_table("CountryName-{$t}", "{countryName}", $ligne["CountryName"], 22, $array_country_codes);
        $html[] = Field_text_table("stateOrProvinceName", "{stateOrProvinceName}", $ligne["stateOrProvinceName"], 22, null, 400);
        $html[] = Field_text_table("localityName", "{localityName}", $ligne["localityName"], 22, null, 400);
        $html[] = Field_text_table("OrganizationName", "{organizationName}", $ligne["OrganizationName"], 22, null, 400);
        $html[] = Field_text_table("OrganizationalUnit", "{organizationalUnitName}", $ligne["OrganizationalUnit"], 22, null, 400);
        $html[] = Field_text_table("emailAddress", "{emailAddress}", $ligne["emailAddress"], 22, null, 400);
        $html[] = Field_text_table("CertificateMaxDays", "{CertificateMaxDays} ({days})", $ligne["CertificateMaxDays"], 22, null, 150);
        $html[] = Field_list_table("levelenc", "{level_encryption}", $ligne["levelenc"], 22, $ENC);
        $html[] = Field_password_table("password-{$t}", "{password}", $ligne["password"], 22, null, 300);
        $html[] = Field_button_table_autonome($bt_name, "Submit{$t}", 30);
    } else {
        $html[] = "<tr>\n\t\t<td class=legend style='font-size:22px'>{countryName}:</td>\n\t\t<td style='font-size:22px;font-weight:bold'>{$ligne["CountryName"]}</td>\n\t\t</tr>\n\t\t<tr>\n\t\t<td class=legend style='font-size:22px'>{stateOrProvinceName}:</td>\n\t\t<td style='font-size:22px;font-weight:bold'>{$ligne["stateOrProvinceName"]}</td>\n\t\t</tr>\t\t\n\t\t<tr>\n\t\t<td class=legend style='font-size:22px'>{localityName}:</td>\n\t\t<td style='font-size:22px;font-weight:bold'>{$ligne["localityName"]}</td>\n\t\t</tr>\t\t\t\n\t\t<tr>\n\t\t<td class=legend style='font-size:22px'>{organizationName}:</td>\n\t\t<td style='font-size:22px;font-weight:bold'>{$ligne["OrganizationName"]}</td>\n\t\t</tr>\t\n\t\t<tr>\n\t\t<td class=legend style='font-size:22px'>{organizationalUnitName}:</td>\n\t\t<td style='font-size:22px;font-weight:bold'>{$ligne["OrganizationalUnit"]}</td>\n\t\t</tr>\n\t\t<tr>\n\t\t<td class=legend style='font-size:22px'>{emailAddress}:</td>\n\t\t<td style='font-size:22px;font-weight:bold'>{$ligne["emailAddress"]}</td>\n\t\t</tr>\n\t\t<tr>\n\t\t<td class=legend style='font-size:22px'>{level_encryption}:</td>\n\t\t<td style='font-size:22px;font-weight:bold'>{$ligne["levelenc"]}</td>\n\t\t</tr>\t\t";
    }
    $html[] = "</table>";
    $html[] = "</div>\n\t<script>\n\t\tvar xSubmit{$t}= function (obj) {\n\t\tvar results=obj.responseText;\n\t\tif(results.length>3){alert(results);return;}\n\t\t\$('#TABLE_CERTIFICATE_CENTER_MAIN').flexReload();\n\t\tvar UsePrivKeyCrt=document.getElementById('UsePrivKeyCrt').value;\n\t\tif(UsePrivKeyCrt==1){\n\t\t\tLoadjs('openssl.x509.progress.php?generate-x509={$commonNameEnc}');\n\t\t}else{\n\t\t\tLoadjs('openssl.CSR.progress.php?generate-csr={$commonNameEnc}');\n\t\t}\n\t\tYahooWin6Hide();\n\t}\n\t\n\t\n\tfunction Submit{$t}(){\n\tvar XHR = new XHRConnection();\n\t\n\tXHR.appendData('CommonName',encodeURIComponent('{$_GET["CommonName"]}'));\n\tXHR.appendData('UsePrivKeyCrt',document.getElementById('UsePrivKeyCrt').value);\n\tXHR.appendData('CountryName',document.getElementById('CountryName-{$t}').value);\n\t\n\tXHR.appendData('CertificateMaxDays',document.getElementById('CertificateMaxDays').value);\n\tXHR.appendData('stateOrProvinceName',document.getElementById('stateOrProvinceName').value);\n\tXHR.appendData('localityName',document.getElementById('localityName').value);\n\tXHR.appendData('OrganizationName',document.getElementById('OrganizationName').value);\n\tXHR.appendData('OrganizationalUnit',document.getElementById('OrganizationalUnit').value);\n\tXHR.appendData('emailAddress',document.getElementById('emailAddress').value);\n\tXHR.appendData('levelenc',document.getElementById('levelenc').value);\n\tXHR.appendData('password',encodeURIComponent(document.getElementById('password-{$t}').value));\n\tXHR.sendAndLoad('{$page}', 'POST',xSubmit{$t});\n\t}\n\n\n\t</script>\n\t\n\t";
    echo $tpl->_ENGINE_parse_body(@implode("\n", $html));
}
function network_bridge_save(){
	$ID=$_POST["ID"];
	unset($_POST["ID"]);
	unset($_POST["Create"]);
	$q=new mysql();
	if(!isset($_POST["STP"])){$_POST["STP"]=1;}
	if(!$q->FIELD_EXISTS("nics_bridge", "STP", "artica_backup")){
		$q->QUERY_SQL("ALTER TABLE nics_bridge ADD STP smallint(1) DEFAULT 1","artica_backup");
		if(!$q->ok){echo "ALTER TABLE STP failed\n$q->mysql_error\n";return;}
	}

	if($_POST["netmask"]=='___.___.___.___'){$_POST["netmask"]="0.0.0.0";}
	if($_POST["gateway"]=='___.___.___.___'){$_POST["gateway"]="0.0.0.0";}
	if($_POST["ipaddr"]=='___.___.___.___'){$_POST["ipaddr"]="0.0.0.0";}


	while (list ($key, $value) = each ($_POST) ){
		$fields[]="`$key`";
		$values[]="'".mysql_escape_string2($value)."'";
		$edit[]="`$key`='".mysql_escape_string2($value)."'";

	}

	if($ID>0){
		$sql="UPDATE nics_bridge SET ".@implode(",", $edit)." WHERE ID=$ID";
	}else{
		$sql="INSERT IGNORE INTO nics_bridge (".@implode(",", $fields).") VALUES (".@implode(",", $values).")";

	}

	$q=new mysql();
	$q->QUERY_SQL($sql,"artica_backup");
	if(!$q->ok){echo $q->mysql_error;return;}
	
}
Ejemplo n.º 23
0
function Checks($nopid = false)
{
    $unix = new unix();
    if (!$nopid) {
        $timefile = "/etc/artica-postfix/pids/" . basename(__FILE__) . "." . __FUNCTION__ . ".time";
        $pidfile = "/etc/artica-postfix/pids/" . basename(__FILE__) . "." . __FUNCTION__ . ".pid";
        $pid = @file_get_contents($pidfile);
        if ($GLOBALS["VERBOSE"]) {
            echo "Time file: {$timefile}\n";
        }
        if ($unix->process_exists($pid)) {
            echo "Starting......: " . date("H:i:s") . " Already process exists pid {$pid}\n";
            return;
        }
        $time = $unix->file_time_min($timefile);
        if ($time < 15) {
            return;
        }
        @unlink($timefile);
        @file_put_contents($timefile, time());
    }
    $ARRAY = array();
    $CHECKS = array();
    $CHECKS2 = array();
    if ($GLOBALS["VERBOSE"]) {
        echo "Checks mounted containers...\n";
    }
    $ls = $unix->find_program("ls");
    $q = new mysql();
    $sql = "SELECT * FROM users_containers WHERE created=1 AND onerror=0";
    $results = $q->QUERY_SQL($sql, "artica_backup");
    while ($ligne = @mysql_fetch_array($results, MYSQL_ASSOC)) {
        $directory = trim($ligne["directory"]);
        $ID = $ligne["container_id"];
        $ContainerFullPath = $directory . "/{$ID}.disk";
        $MountedPath = "/media/artica_containers/membersdisks/disk{$ID}";
        if ($GLOBALS["VERBOSE"]) {
            echo __LINE__ . "] Chock: {$MountedPath}\n";
        }
        if (!is_file($ContainerFullPath)) {
            $q->QUERY_SQL("UPDATE users_containers SET `created`='0' WHERE container_id={$ID}", "artica_backup");
            continue;
        }
        shell_exec("{$ls} {$MountedPath}/*");
    }
    $f = explode("\n", @file_get_contents("/proc/mounts"));
    while (list($num, $ligne) = each($f)) {
        if (!preg_match("#^(.+)?\\s+\\/media\\/artica_containers\\/membersdisks\\/disk([0-9]+)#", $ligne, $re)) {
            continue;
        }
        $mounted = $re[1];
        $ID = $re[2];
        if ($GLOBALS["VERBOSE"]) {
            echo __LINE__ . "] ID: {$ID} mounted on `{$mounted}` ->DF_SATUS_K({$mounted}) \n";
        }
        $DF_SATUS = $unix->DF_SATUS_K($mounted);
        if ($GLOBALS["VERBOSE"]) {
            while (list($num, $ligne) = each($DF_SATUS)) {
                echo __LINE__ . "] ID: {$ID} Key `{$num}` => \"{$ligne}\"\n";
            }
            reset($DF_SATUS);
        }
        $ARRAY[$ID]["MOUNTED"] = $mounted;
        $ARRAY[$ID]["STATUS"] = $DF_SATUS;
        $ARRAY[$ID]["TIME"] = time();
        $CHECKS[$ID] = true;
        if ($GLOBALS["VERBOSE"]) {
            echo "*****************\n";
        }
    }
    $q = new mysql();
    $sql = "SELECT * FROM users_containers WHERE created=1 AND onerror=0";
    $results = $q->QUERY_SQL($sql, "artica_backup");
    $count = mysql_num_rows($results);
    $mount = $unix->find_program("mount");
    $umount = $unix->find_program("umount");
    $mkfs_ext4 = $unix->find_program("mkfs.ext4");
    $typ = "ext4";
    if (!is_file($mkfs_ext4)) {
        $typ = "ext3";
    }
    if (!$q->FIELD_EXISTS("users_containers", "status", "artica_backup")) {
        $sql = "ALTER TABLE `users_containers` ADD `status` TEXT";
        $q->QUERY_SQL($sql, "artica_backup");
    }
    while ($ligne = @mysql_fetch_array($results, MYSQL_ASSOC)) {
        $directory = trim($ligne["directory"]);
        $ID = $ligne["container_id"];
        $ContainerFullPath = $directory . "/{$ID}.disk";
        if (!isset($ARRAY[$ID])) {
            if ($GLOBALS["VERBOSE"]) {
                __LINE__ . "] ID: {$ID} `No data...`\n";
            }
            continue;
        }
        if (count($ARRAY[$ID]) == 0) {
            if ($GLOBALS["VERBOSE"]) {
                __LINE__ . "] ID: {$ID} `No data...`\n";
            }
            continue;
        }
        if ($GLOBALS["VERBOSE"]) {
            echo "ID: {$ID} `{$ContainerFullPath}`\n";
        }
        $CHECKS2[$ID] = $ContainerFullPath;
        $status = mysql_escape_string2(base64_encode(serialize($ARRAY[$ID])));
        $q->QUERY_SQL("UPDATE users_containers SET `status`='{$status}' WHERE container_id={$ID}", "artica_backup");
    }
}
Ejemplo n.º 24
0
function smtp_sasl_password_maps_build()
{
    $ldap = new clladp();
    $smtp_sasl_password_maps = array();
    $main = new maincf_multi();
    $filter = "(&(objectClass=PostfixSmtpSaslPaswordMaps)(cn=*))";
    $attrs = array("cn", "SmtpSaslPasswordString");
    $dn = "cn=smtp_sasl_password_maps,cn=artica,{$ldap->suffix}";
    $hash = $ldap->Ldap_search($dn, $filter, $attrs);
    for ($i = 0; $i < $hash["count"]; $i++) {
        $mail = $hash[$i]["cn"][0];
        $value = trim($hash[$i][strtolower("SmtpSaslPasswordString")][0]);
        if ($value == null) {
            if ($GLOBALS["VERBOSE"]) {
                echo "Starting......: " . date("H:i:s") . " skip  {$mail} (no password)\n";
            }
            continue;
        }
        if ($value == ":") {
            continue;
        }
        if ($GLOBALS["VERBOSE"]) {
            echo "Starting......: " . date("H:i:s") . " adding  {$mail}\n";
        }
        $smtp_sasl_password_maps[$mail] = $value;
    }
    $filter = "(&(objectClass=SenderDependentSaslInfos)(cn=*))";
    $attrs = array("cn", "SenderCanonicalRelayPassword");
    $dn = "{$ldap->suffix}";
    $hash = $ldap->Ldap_search($dn, $filter, $attrs);
    for ($i = 0; $i < $hash["count"]; $i++) {
        $mail = $hash[$i]["cn"][0];
        $value = trim($hash[$i][strtolower("SenderCanonicalRelayPassword")][0]);
        if ($value == null) {
            if ($GLOBALS["VERBOSE"]) {
                echo "Starting......: " . date("H:i:s") . " skip  {$mail} (no password)\n";
            }
            continue;
        }
        if ($value == ":") {
            continue;
        }
        if ($GLOBALS["VERBOSE"]) {
            echo "Starting......: " . date("H:i:s") . " adding  {$mail}\n";
        }
        $smtp_sasl_password_maps[$mail] = $value;
    }
    if (is_array($smtp_sasl_password_maps)) {
        while (list($mail, $value) = each($smtp_sasl_password_maps)) {
            $GLOBALS["smtp_sasl_password_maps"][] = "{$mail}\t{$value}";
        }
    }
    $q = new mysql();
    $results = $q->QUERY_SQL("SELECT * FROM relay_host WHERE enabledauth=1", "artica_backup");
    while ($ligne = mysql_fetch_assoc($results)) {
        $relay_text = $main->RelayToPattern($ligne["relay"], $ligne["relay_port"], $ligne["lookups"]);
        $username = $ligne["username"];
        $password = $ligne["password"];
        $GLOBALS["smtp_sasl_password_maps"][] = "{$relay_text}\t{$username}:{$password}";
    }
    $q = new mysql();
    if (!$q->FIELD_EXISTS("sender_dependent_relay_host", "enabledauth", "artica_backup")) {
        $sql = "ALTER TABLE `sender_dependent_relay_host` ADD `enabledauth` smallint(1) NULL,\n\t\tADD INDEX ( `enabledauth` )";
        $q->QUERY_SQL($sql, "artica_backup");
    }
    $results = $q->QUERY_SQL("SELECT * FROM relay_host WHERE enabledauth=1", "artica_backup");
    while ($ligne = mysql_fetch_assoc($results)) {
        $relay_text = $main->RelayToPattern($ligne["relay"], $ligne["relay_port"], $ligne["lookups"]);
        $username = $ligne["username"];
        $password = $ligne["password"];
        $GLOBALS["smtp_sasl_password_maps"][] = "{$relay_text}\t{$username}:{$password}";
    }
    $results = $q->QUERY_SQL("SELECT * FROM sender_dependent_relay_host WHERE enabledauth=1", "artica_backup");
    while ($ligne = mysql_fetch_assoc($results)) {
        if ($ligne["relay"] == "*") {
            continue;
        }
        $relay_text = $main->RelayToPattern($ligne["relay"], $ligne["relay_port"], $ligne["lookups"]);
        $username = $ligne["username"];
        $password = $ligne["password"];
        $GLOBALS["smtp_sasl_password_maps"][] = "{$relay_text}\t{$username}:{$password}";
    }
}
function wizard_certificate_save()
{
    $password = url_decode_special_tool($_POST["wizard-certificate-password"]);
    $password = mysql_escape_string2($password);
    $CommonName = url_decode_special_tool($_POST["wizard-certificate-commonname"]);
    $CommonName = strtolower(trim($CommonName));
    if ($CommonName == null) {
        echo "CommonName, no such data";
        return;
    }
    $q = new mysql();
    $AsProxyCertificate = intval($_POST["wizard-certificate-proxy"]);
    if (!$q->FIELD_EXISTS("sslcertificates", "AsProxyCertificate", "artica_backup")) {
        $sql = "ALTER TABLE `sslcertificates` ADD `AsProxyCertificate` smallint(1) NOT NULL,ADD INDEX ( `AsProxyCertificate` )";
        $q->QUERY_SQL($sql, 'artica_backup');
    }
    $sql = "SELECT CommonName  FROM sslcertificates WHERE CommonName='{$CommonName}'";
    $ligne = mysql_fetch_array($q->QUERY_SQL($sql, "artica_backup"));
    if ($ligne["CommonName"] != null) {
        echo "{$CommonName} Already exists...\n";
        return;
    }
    $levelenc = intval($_POST["wizard-certificate-levelenc"]);
    if ($levelenc == 0) {
        $levelenc = 2048;
    }
    $sql = "INSERT IGNORE INTO sslcertificates (CommonName,keyPassword,password,AsProxyCertificate,levelenc) VALUES ('{$CommonName}','{$password}','{$password}','{$AsProxyCertificate}','{$levelenc}')";
    $q->QUERY_SQL($sql, "artica_backup");
    if (!$q->ok) {
        echo "MySQL Error:\n" . $q->mysq_error . "\n{$sql}";
        return;
    }
}
Ejemplo n.º 26
0
function Save()
{
    $ID = $_POST["ID"];
    $ip = new IP();
    if (!$ip->isIPAddress($_POST["gateway"])) {
        $_POST["gateway"] = "";
    }
    if (!$ip->isIPAddress($_POST["ipaddr"])) {
        echo "{$_POST["ipaddr"]} -> FALSE\n";
        return;
    }
    if (!preg_match("#(.+?)\\/(.+)#", $_POST["cdir"])) {
        echo "CDIR: {$_POST["cdir"]} -> FALSE\n";
        return;
    }
    $q = new mysql();
    $q->QUERY_SQL("CREATE TABLE IF NOT EXISTS `nics_vde` (`ID` int(11) NOT NULL AUTO_INCREMENT,  `nic` varchar(20) NOT NULL,`ipaddr` varchar(128) NOT NULL,`netmask` varchar(25) NOT NULL,`cdir` varchar(30) NOT NULL,`gateway` varchar(30) NOT NULL,`metric` INT( 5 ) NOT NULL,PRIMARY KEY (`ID`),KEY `nic` (`nic`),KEY `ipaddr` (`ipaddr`),KEY `metric` (`metric`),KEY `cdir` (`cdir`)) ENGINE=MYISAM;", "artica_backup");
    if (!$q->ok) {
        echo $q->mysql_error;
    }
    if (!$q->FIELD_EXISTS("nics_vde", "port", "artica_backup")) {
        $q->QUERY_SQL("ALTER TABLE `nics_vde` ADD `port` smallint( 2 ) NOT NULL,ADD INDEX (`port`)", "artica_backup");
    }
    if (!$q->FIELD_EXISTS("nics_vde", "vlan", "artica_backup")) {
        $q->QUERY_SQL("ALTER TABLE `nics_vde` ADD `vlan` smallint( 2 ) NOT NULL,ADD INDEX (`vlan`)", "artica_backup");
    }
    $sql = "INSERT INTO nics_vde (`nic`, `ipaddr`,`netmask`,`cdir`,`gateway`,`metric`,`port`,`vlan`) VALUES \n\t\t\t('{$_POST["nic"]}','{$_POST["ipaddr"]}','{$_POST["netmask"]}','{$_POST["cdir"]}',\n\t\t\t'{$_POST["gateway"]}','{$_POST["metric"]}','{$_POST["port"]}','{$_POST["vlan"]}')";
    $sql_edit = "UPDATE nics_vde SET `nic`='{$_POST["nic"]}',\n\t\t`ipaddr`='{$_POST["ipaddr"]}',\n\t\t `netmask`='{$_POST["netmask"]}',\n\t\t `cdir`='{$_POST["cdir"]}',\n\t\t `gateway`='{$_POST["gateway"]}',\n\t\t `port`='{$_POST["port"]}',\n\t\t `vlan`='{$_POST["vlan"]}',\n\t\t `metric`='{$_POST["metric"]}' WHERE ID='{$_POST["ID"]}'";
    if ($_POST["ID"] > 0) {
        $sql = $sql_edit;
    }
    $q->QUERY_SQL($sql, "artica_backup");
    if (!$q->ok) {
        echo $q->mysql_error;
    }
}
Ejemplo n.º 27
0
function inject_blacklists_tomysql($uid, $contacts)
{
    $q = new mysql();
    if (!$q->FIELD_EXISTS("contacts_blacklist", "Junk", "artica_backup")) {
        $sql = "ALTER TABLE `contacts_blacklist` ADD `Junk` smallint( 1 ) NOT NULL DEFAULT '0',ADD INDEX ( `Junk` )";
        $q->QUERY_SQL($sql, 'artica_backup');
    }
    while (list($emailAddress_str, $none) = each($contacts)) {
        $ligne2 = mysql_fetch_array($q->QUERY_SQL("SELECT uid FROM `contacts_whitelist` WHERE sender='{$emailAddress_str}'", "artica_backup"));
        if ($ligne2["uid"] != null) {
            continue;
        }
        $md5 = md5("{$emailAddress_str}{$uid}");
        $ligne2 = mysql_fetch_array($q->QUERY_SQL("SELECT uid FROM `contacts_blacklist` WHERE md5='{$md5}'", "artica_backup"));
        if ($ligne2["uid"] != null) {
            if ($GLOBALS["VERBOSE"]) {
                echo "{$md5} {$emailAddress_str} Already added in contacts_blacklist for [{$ligne2["uid"]}]\n";
            }
            continue;
        }
        $f[] = "('{$emailAddress_str}','{$uid}','{$md5}','1','1')";
        if ($GLOBALS["VERBOSE"]) {
            echo "{$uid} -> {$emailAddress_str} {$md5}\n";
        }
    }
    if (count($f) > 0) {
        system_user_events($uid, count($f) . " are added to the blacklist database..", __FUNCTION__, __FILE__, __LINE__, "blacklist");
        $sql = "INSERT IGNORE INTO contacts_blacklist (`sender`,`uid`,`md5`,`enabled`,`Junk`) VALUES " . @implode(",", $f);
        $q->QUERY_SQL($sql, "artica_backup");
        if (!$q->ok) {
            if ($GLOBALS["VERBOSE"]) {
                echo "{$q->mysql_error}\n";
            }
            system_admin_events("Fatal: {$q->mysql_error}", __FUNCTION__, __FILE__, __LINE__, "zarafa");
            return;
        }
        $GLOBALS["ITEMSC"] = $GLOBALS["ITEMSC"] + count($f);
    }
}
Ejemplo n.º 28
0
function proxies_list()
{
    //ini_set('html_errors',0);ini_set('display_errors', 1);ini_set('error_reporting', E_ALL);ini_set('error_prepend_string','');ini_set('error_append_string','');
    $tpl = new templates();
    $MyPage = CurrentPageName();
    $q = new mysql();
    $database = "artica_backup";
    $t = $_GET["t"];
    $search = '%';
    $table = "squid_balancers";
    if (!$q->FIELD_EXISTS("squid_balancers", "portid", "artica_backup")) {
        $q->QUERY_SQL("ALTER TABLE `squid_balancers` ADD `portid` INT(100) NOT NULL DEFAULT '0',ADD INDEX( `portid` )", "artica_backup");
        if (!$q->ok) {
            echo $q->mysql_error . "\n";
        }
    }
    $FORCE_FILTER = null;
    $page = 1;
    if ($q->COUNT_ROWS($table, $database) == 0) {
        json_error_show("No rules....");
    }
    if (isset($_POST["sortname"])) {
        if ($_POST["sortname"] != null) {
            $ORDER = "ORDER BY {$_POST["sortname"]} {$_POST["sortorder"]}";
        }
    }
    if (isset($_POST['page'])) {
        $page = $_POST['page'];
    }
    $searchstring = string_to_flexquery();
    if ($searchstring != null) {
        $sql = "SELECT COUNT(*) as TCOUNT FROM `{$table}` WHERE portid='{$_GET["ID"]}' {$FORCE_FILTER} {$searchstring}";
        $ligne = mysql_fetch_array($q->QUERY_SQL($sql, $database));
        $total = $ligne["TCOUNT"];
    } else {
        $sql = "SELECT COUNT(*) as TCOUNT FROM `{$table}` WHERE portid='{$_GET["ID"]}' {$FORCE_FILTER}";
        $ligne = mysql_fetch_array($q->QUERY_SQL($sql, $database));
        $total = $ligne["TCOUNT"];
    }
    if (isset($_POST['rp'])) {
        $rp = $_POST['rp'];
    }
    $pageStart = ($page - 1) * $rp;
    $limitSql = "LIMIT {$pageStart}, {$rp}";
    $sql = "SELECT *  FROM `{$table}` WHERE portid='{$_GET["ID"]}' {$searchstring} {$FORCE_FILTER} {$ORDER} {$limitSql}";
    writelogs($sql, __FUNCTION__, __FILE__, __LINE__);
    $results = $q->QUERY_SQL($sql, $database);
    if (!$q->ok) {
        json_error_show("{$q->mysql_error}");
    }
    $data = array();
    $data['page'] = $page;
    $data['total'] = $total;
    $data['rows'] = array();
    if (mysql_num_rows($results) == 0) {
        json_error_show("No data....");
    }
    while ($ligne = mysql_fetch_assoc($results)) {
        $val = 0;
        $icon = "42-server.png";
        $color = "black";
        $disable = Field_checkbox("ProxyClient_{$ligne['ID']}", 1, $ligne["enabled"], "EnableDisableProxyClient('{$ligne['ID']}')");
        $delete = imgsimple("delete-42.png", null, "DeleteSquidChild('{$ligne['ID']}')");
        if ($ligne["enabled"] == 0) {
            $color = "#8a8a8a";
            $icon = "42-server-grey.png";
        }
        $data['rows'][] = array('id' => "TSC{$ligne['ID']}", 'cell' => array("<center><img src='img/{$icon}'></center>", "<span style='font-size:26px;color:{$color};margin-top:4px'>{$ligne['ipsrc']}</span>", "<center style='margin-top:4px'>{$disable}</center>", "{$delete}"));
    }
    echo json_encode($data);
}
function item_auth_save()
{
    $_POST["password"] = url_decode_special_tool($_POST["password"]);
    $q = new mysql();
    if (!$q->FIELD_EXISTS("sender_dependent_relay_host", "enabledauth", "artica_backup")) {
        $sql = "ALTER TABLE `sender_dependent_relay_host` ADD `enabledauth` smallint(1) NULL,\n\t\tADD INDEX ( `enabledauth` )";
        $q->QUERY_SQL($sql, "artica_backup");
    }
    if (!$q->FIELD_EXISTS("sender_dependent_relay_host", "password", "artica_backup")) {
        $sql = "ALTER TABLE `sender_dependent_relay_host` ADD `password` varchar(128) NULL";
        $q->QUERY_SQL($sql, "artica_backup");
    }
    if (!$q->FIELD_EXISTS("sender_dependent_relay_host", "username", "artica_backup")) {
        $sql = "ALTER TABLE `sender_dependent_relay_host` ADD `username` varchar(128) NULL";
        $q->QUERY_SQL($sql, "artica_backup");
    }
    $sql = "UPDATE `sender_dependent_relay_host` SET\n\t`enabledauth`='{$_POST["enabledauth"]}',\n\t`password`='{$_POST["password"]}',\n\t`username`='{$_POST["username"]}'\n\tWHERE `zmd5`='{$_POST["zmd5"]}'";
    $q->QUERY_SQL($sql, "artica_backup");
    if (!$q->ok) {
        echo $q->mysql_error;
    }
}
Ejemplo n.º 30
0
function acl_save()
{
    $zmd5 = $_POST["zmd5"];
    $type = $_POST["type"];
    $zDate = date("Y-m-d H:i:s");
    $instance = $_POST["hostname"];
    if ($instance == null) {
        $instance = "master";
    }
    $method = $_POST["method"];
    $enabled = $_POST["enabled"];
    $reverse = $_POST["reverse"];
    $extended = $_POST["extended"];
    $description = mysql_escape_string(trim(url_decode_special_tool($_POST["infos"])));
    $pattern = mysql_escape_string(trim(url_decode_special_tool($_POST["pattern"])));
    $description = trim($description);
    $description = str_replace("\n", " ", $description);
    $pattern = trim($pattern);
    $pattern = str_replace("\n", " ", $pattern);
    if ($zmd5 == null) {
        $zmd5 = md5("{$type}{$method}{$pattern}{$instance}");
        $sql = "INSERT INTO `milterregex_acls` \n\t\t\t(`zmd5`,`zDate`,`instance`,`method`,`type`,`pattern`,`description`,`enabled`,`reverse`,`extended`) VALUES \n\t\t\t('{$zmd5}','{$zDate}','{$instance}','{$method}','{$type}','{$pattern}','{$description}',{$enabled},{$reverse},{$extended});";
    } else {
        $sql = "UPDATE `milterregex_acls` \n\tSET method='{$method}',\n\t`type`='{$type}',\n\t`pattern`='{$pattern}',\n\t`description`='{$description}',\n\t`reverse`='{$reverse}',\n\t`extended`='{$extended}',\n\t`enabled`='{$enabled}'\n\tWHERE zmd5='{$zmd5}'\n\t";
    }
    $q = new mysql();
    if (!$q->FIELD_EXISTS("milterregex_acls", "reverse", "artica_backup")) {
        $sql = "ALTER TABLE `milterregex_acls` ADD `reverse` smallint(1) NOT NULL,ADD INDEX ( `reverse` )";
        $q->QUERY_SQL($sql, 'artica_backup');
    }
    if (!$q->FIELD_EXISTS("milterregex_acls", "extended", "artica_backup")) {
        $sql = "ALTER TABLE `milterregex_acls` ADD `extended` smallint(1) NOT NULL,ADD INDEX ( `extended` )";
        $q->QUERY_SQL($sql, 'artica_backup');
    }
    $q->QUERY_SQL($sql, "artica_backup");
    if (!$q->ok) {
        echo $q->mysql_error;
        return;
    }
    $sock = new sockets();
    $sock->getFrameWork("milter-regex.php?restart=yes");
}