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); }
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; } }
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"; }
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"); }
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"); }
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"]}"; } }
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; }
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; } }
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";} }
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; } }
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); }
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); }
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); } }
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; } }
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";} }
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;} }
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"); } }
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; } }
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; } }
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); } }
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; } }
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"); }