function dumptype_save() { include_once dirname(__FILE__) . "/class.html.tools.inc"; $html = new htmltools_inc(); $_POST["dumpname"] = $html->StripSpecialsChars($_POST["dumpname"]); while (list($num, $ligne) = each($_POST)) { $field[] = "`{$num}`"; $ligne = addslashes($ligne); $vals[] = "'{$ligne}'"; $upd[] = "`{$num}`='{$ligne}'"; } $sql_add = "INSERT INTO amanda_dumptype (" . @implode(",", $field) . ") VALUES (" . @implode(",", $vals) . ")"; $sql_update = "UPDATE amanda_dumptype SET " . @implode(",", $upd) . " WHERE dumpname='{$_POST["dumpname"]}'"; $q = new mysql(); $sql = "SELECT * FROM amanda_dumptype WHERE dumpname='{$_POST["dumpname"]}'"; $ligne = @mysql_fetch_array($q->QUERY_SQL($sql, 'artica_backup')); $sql = $sql_add; if ($ligne["dumpname"] != null) { $sql = $sql_update; } $q->QUERY_SQL($sql, "artica_backup"); if (!$q->ok) { echo $q->mysql_error; return; } $sock = new sockets(); $sock->getFrameWork("amanda.php?save-server-config=yes"); }
function buildconfig() { $vpn = new openvpn(); $connection_name = trim(strtolower($_POST["connection_name"])); if ($connection_name == null) { $connection_name = time(); } $connection_name = str_replace(" ", "-", $connection_name); $connection_name = replace_accents($connection_name); $connection_name = str_replace("/", "-", $connection_name); $connection_name = str_replace('\\', "-", $connection_name); $tools = new htmltools_inc(); $connection_name = $tools->StripSpecialsChars($connection_name); $vpn->ComputerOS = $_POST["ComputerOS"]; $html_logs[] = "<div><code style='font-size:10px;color:black;'>Operating system : {$config->ComputerOS}</div>"; $html_logs[] = "<div><code style='font-size:10px;color:black;'>Connection name. : {$connection_name}</div>"; $config = $vpn->BuildClientconf($connection_name); $tbconfig = explode("\n", $config); $html_logs[] = htmlentities("VPN config -> " . strlen($config) . " bytes length (" . count($tbconfig) . " lines)"); $uid = $_SESSION["uid"]; writelogs("VPN config -> " . strlen($config) . " bytes length (" . count($tbconfig) . " lines)", __FUNCTION__, __FILE__, __LINE__); $sock = new sockets(); if (!$sock->SaveConfigFile($config, "{$connection_name}.ovpn")) { $html_logs[] = htmlentities("Framework error while saving -> {$connection_name}.ovpn;" . strlen($config) . " bytes length (" . count($tbconfig) . " lines)"); } writelogs("sockets() OK", __FUNCTION__, __FILE__, __LINE__); //$datas=$sock->getfile('OpenVPNGenerate:'.$uid); $datas = $sock->getFrameWork("openvpn.php?build-vpn-user={$connection_name}&basepath=" . dirname(__FILE__)); $tbl = explode("\n", $datas); $tbl = array_reverse($tbl); while (list($num, $line) = each($tbl)) { if (trim($line) == null) { continue; } $html_logs[] = "<div><code style='font-size:10px;color:black;'>" . htmlentities($line) . "</code></div>"; } if (is_file('ressources/logs/' . $connection_name . '.zip')) { $download = "\n\t\t<center>\n\t\t<div style='width:320px;border:2px solid #CCCCCC;padding:5px;margin:10px'>\n\t\t\t<div style='font-size:14px'>{click_here}</div>\n\t\t\t<a href='ressources/logs/" . $connection_name . ".zip'>\n\t\t\t\t<img src='img/download-64.png' title=\"{DOWNLOAD_CONFIG_FILES}\" style='padding:8Px;border:1px solid #055447;margin:3px'></a>\n\t\t\t\t<br>\n\t\t\t\t<a href='ressources/logs/" . $connection_name . ".zip' style='font-size:16px;text-decoration:underline'>{$connection_name}.zip</a>\n\t\t</div>\t\t\n\t\t\t\t\n\t\t</center>\n\t\t"; } $html = "\n\t\n\t{$download}\n\t<div style='font-size:16px'>{events}</div>\n\t<div style='width:100%;height:200px;overflow:auto'>" . implode("\n", $html_logs) . "</div>"; $tpl = new templates(); echo $tpl->_ENGINE_parse_body($html); }
function add_category_save() { $_POST["personal_database"] = url_decode_special_tool($_POST["personal_database"]); $_POST["category_text"] = url_decode_special_tool($_POST["category_text"]); $org = $_POST["personal_database"]; include_once dirname(__FILE__) . "/ressources/class.html.tools.inc"; $html = new htmltools_inc(); $dans = new dansguardian_rules(); $_POST["personal_database"] = strtolower($html->StripSpecialsChars($_POST["personal_database"])); if ($_POST["personal_database"] == null) { echo "No category set or wrong category name \"{$org}\"\n"; return; } if ($_POST["personal_database"] == "security") { $_POST["personal_database"] = "security2"; } if ($_POST["CatzByGroupA"] != null) { $_POST["CatzByGroupL"] = $_POST["CatzByGroupA"]; } $_POST["CatzByGroupL"] = mysql_escape_string2($_POST["CatzByGroupL"]); $_POST["category_text"] = url_decode_special_tool($_POST["category_text"]); $_POST["category_text"] = mysql_escape_string2($_POST["category_text"]); $q = new mysql_squid_builder(); $sql = "SELECT category FROM personal_categories WHERE category='{$_POST["personal_database"]}'"; $ligne = mysql_fetch_array($q->QUERY_SQL($sql)); if ($ligne["category"] != null) { $sql = "UPDATE personal_categories\n\t\tSET category_description='{$_POST["category_text"]}',\n\t\t`PublicMode`='{$_POST["PublicMode"]}',\n\t\tmaster_category='{$_POST["CatzByGroupL"]}'\n\t\tWHERE category='{$_POST["personal_database"]}'\n\t\t"; } else { if (isset($dans->array_blacksites[$_POST["personal_database"]])) { $tpl = new templates(); echo $tpl->javascript_parse_text("{$_POST["personal_database"]}:{category_already_exists}"); return; } $sql = "INSERT IGNORE INTO personal_categories (category,category_description,master_category,PublicMode)\n\t\tVALUES ('{$_POST["personal_database"]}','{$_POST["category_text"]}','{$_POST["CatzByGroupL"]}','{$_POST["PublicMode"]}');"; } $q->QUERY_SQL($sql); if (!$q->ok) { echo $q->mysql_error; return; } $q->CreateCategoryTable($_POST["personal_database"]); $sql = "TRUNCATE TABLE webfilters_categories_caches"; $dans->CategoriesTableCache(); $dans->CleanCategoryCaches(); }
function servername_tokey($servername) { $html = new htmltools_inc(); return $html->StripSpecialsChars($servername); }
function buildconfig() { $vpn = new openvpn(); $connection_name = trim(strtolower($_POST["connection_name"])); if ($connection_name == null) { $connection_name = time(); } $connection_name = str_replace(" ", "-", $connection_name); $connection_name = replace_accents($connection_name); $connection_name = str_replace("/", "-", $connection_name); $connection_name = str_replace('\\', "-", $connection_name); $tools = new htmltools_inc(); $connection_name = $tools->StripSpecialsChars($connection_name); $connection_name = mysql_escape_string2($connection_name); $q = new mysql(); $q->QUERY_SQL("INSERT IGNORE INTO `openvpn_clients` (uid,ComputerOS) VALUES ('{$connection_name}','{$_POST["ComputerOS"]}')", "artica_backup"); if (!$q->ok) { echo $q->mysql_error; return; } }
function cache_popup_save() { if (!AdminPrivs()) { echo "No rights!"; return; } $ID = $_POST["ID"]; unset($_POST["ID"]); $q = new mysql_squid_builder(); include_once dirname(__FILE__) . "/ressources/class.html.tools.inc"; $html = new htmltools_inc(); $_POST["keys_zone"] = $html->StripSpecialsChars($_POST["keys_zone"]); $_POST["directory"] = url_decode_special_tool($_POST["directory"]); $editF = false; if ($ID > 0) { $editF = true; } while (list($key, $value) = each($_POST)) { $fields[] = "`{$key}`"; $values[] = "'" . mysql_escape_string2($value) . "'"; $edit[] = "`{$key}`='" . mysql_escape_string2($value) . "'"; } if ($editF) { $sql = "UPDATE nginx_caches SET " . @implode(",", $edit) . " WHERE ID='{$ID}'"; } else { $sql = "INSERT IGNORE INTO nginx_caches (" . @implode(",", $fields) . ") VALUES (" . @implode(",", $values) . ")"; } $q->QUERY_SQL($sql); if (!$q->ok) { echo $q->mysql_error; return; } $sock = new sockets(); $sock->getFrameWork("squid.php?reverse-proxy-apply=yes"); }
function route_settings_save() { $q = new mysql(); $ID = $_POST["ID"]; unset($_POST["ID"]); include_once dirname(__FILE__) . "/ressources/class.html.tools.inc"; $html = new htmltools_inc(); $_POST["routename"] = $html->StripSpecialsChars($_POST["routename"]); while (list($key, $value) = each($_POST)) { $fields[] = "`{$key}`"; $values[] = "'" . mysql_escape_string2($value) . "'"; $edit[] = "`{$key}`='" . mysql_escape_string2($value) . "'"; } if ($ID > 0) { $sql = "UPDATE iproute_table SET " . @implode(",", $edit) . " WHERE ID='{$ID}'"; } else { $sql = "INSERT IGNORE INTO iproute_table (" . @implode(",", $fields) . ") VALUES (" . @implode(",", $values) . ")"; } $q->QUERY_SQL($sql, "artica_backup"); if (!$q->ok) { echo $q->mysql_error; return; } $sock = new sockets(); $sock->getFrameWork("cmd.php?ip-build-routes=yes"); }
function add_category_save() { $_POST["personal_database"] = url_decode_special_tool($_POST["personal_database"]); $_POST["category_text"] = url_decode_special_tool($_POST["category_text"]); $org = $_POST["personal_database"]; $html = new htmltools_inc(); $_POST["personal_database"] = strtolower($html->StripSpecialsChars($_POST["personal_database"])); if ($_POST["personal_database"] == null) { echo "No category set or wrong category name \"{$org}\"\n"; return; } if ($_POST["personal_database"] == "security") { $_POST["personal_database"] = "security2"; } if ($_POST["CatzByGroupA"] != null) { $_POST["CatzByGroupL"] = $_POST["CatzByGroupA"]; } $_POST["CatzByGroupL"] = mysql_escape_string2($_POST["CatzByGroupL"]); $_POST["category_text"] = url_decode_special_tool($_POST["category_text"]); $_POST["category_text"] = mysql_escape_string2($_POST["category_text"]); $q = new mysql_meta(); $sql = "CREATE TABLE IF NOT EXISTS `webfiltering_categories` (\n\t\t\t\t`category` VARCHAR( 15 ) NOT NULL ,\n\t\t\t\t`category_description` VARCHAR( 255 ) NOT NULL ,\n\t\t\t\t`PublicMode` smallint(1) NOT NULL,\n\t\t\t\tPRIMARY KEY (`category`),\n\t\t\t\tINDEX ( `category_description`) ,\n\t\t\t\tKEY `PublicMode` (`PublicMode`) ) ENGINE = MYISAM;"; $q->QUERY_SQL($sql); $sql = "SELECT category FROM webfiltering_categories WHERE category='{$_POST["personal_database"]}'"; $ligne = mysql_fetch_array($q->QUERY_SQL($sql)); if ($ligne["category"] == null) { $sql = "INSERT IGNORE INTO webfiltering_categories (category,category_description,PublicMode)\n\t\tVALUES ('{$_POST["personal_database"]}','{$_POST["category_text"]}','{$_POST["PublicMode"]}');"; } else { $sql = "UPDATE webfiltering_categories SET category_description='{$_POST["category_text"]}',\n\t\tPublicMode='{$_POST["PublicMode"]}' WHERE category='{$_POST["personal_database"]}'"; } $q->QUERY_SQL($sql); if (!$q->ok) { echo $q->mysql_error; return; } }
function ACTION_LVM_CREATE_LV(){ $sock=new sockets(); $vg=$_POST["VG"]; $dev=$_POST["lvcreate-perform"]; $lvname=$_POST["LVNAME"]; $lvsize=$_POST["LVSIZE"]; $t=new htmltools_inc(); $lvname=$t->StripSpecialsChars($lvname); $lvname=urlencode($lvname); $sock=new sockets(); writelogs("create \"$lvname\" in $vg for {$lvsize}M",__FUNCTION__,__FILE__,__LINE__); $datas=base64_decode($sock->getFrameWork("lvm.php?lvcreate=yes&lvname=$lvname&lvsize=$lvsize&dev=".urlencode($_GET["dev"])."&gpname=".urlencode($vg))); echo $datas; }
function disk_form_save() { if ($_POST["loop-dir"] == null) { $_POST["loop-dir"] = "/home/virtuals-disks"; } if ($_POST["loop-name"] == null) { $_POST["loop-name"] = time(); } $path = $_POST["loop-dir"] . "/" . time() . ".disk"; $size = $_POST["loop-size"]; $t = new htmltools_inc(); $sock = new sockets(); $_POST["loop-name"] = $t->StripSpecialsChars($_POST["loop-name"]); if (!is_numeric($size)) { $size = 10000; } $_POST["loop-name"] = addslashes($_POST["loop-name"]); $dir = $_POST["loop-dir"]; $HardDriveSizeMB = unserialize(base64_decode($sock->getFrameWork("system.php?HardDriveDiskSizeMB=" . base64_encode($dir)))); if (!is_array($HardDriveSizeMB)) { echo "Fatal Error Cannot retreive information for `{$dir}`"; return; } $AVAILABLEMB = $HardDriveSizeMB["AVAILABLE"]; if ($AVAILABLEMB < $size) { $T = $size - $AVAILABLEMB; echo "Fatal Error : Available: {$AVAILABLEMB}MB, need at least {$T}MB"; return; } $sql = "INSERT INTO loop_disks (`path`,`size`,`disk_name`,`maxfds`) VALUES ('{$path}','{$size}','{$_POST["loop-name"]}','{$_POST["maxfds"]}')"; $q = new mysql(); $q->QUERY_SQL($sql, "artica_backup"); if (!$q->ok) { echo $q->mysql_error; return; } $sock = new sockets(); if ($size < 110000) { echo base64_decode($sock->getFrameWork("lvm.php?loopcheck=yes&output=yes")); } else { $sock->getFrameWork("lvm.php?loopcheck=yes"); } }
function save_nic() { $DNS_1 = null; $DNS_2 = null; $sock = new sockets(); $tpl = new templates(); $ip = new networking(); $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 (isset($_GET["NICNAME"])) { $NICNAME = trim(url_decode_special_tool($_GET["NICNAME"])); } $nic = trim($_GET["save_nic"]); $sql = "UPDATE `nics` SET `enabled`='{$_GET["enabled"]}' WHERE `Interface`='{$nic}'"; $q = new mysql(); $q->QUERY_SQL($sql, "artica_backup"); if (!$q->ok) { echo $q->mysql_error; } if ($_GET["netzone"] == null) { echo "Network Zone must be defined\n"; return; } if ($_GET["netzone"] != null) { if (strlen($_POST["netzone"]) > 5) { echo "Network Zone {$_GET["netzone"]} at most 5 characters long\n"; return; } if (is_numeric(substr($_GET["netzone"], 0, 1))) { echo "Network Zone Must start with a letter\n"; return; } } $nic = trim($_GET["save_nic"]); $IPADDR = trim($_GET["IPADDR"]); $NETMASK = trim($_GET["NETMASK"]); $GATEWAY = trim($_GET["GATEWAY"]); $BROADCAST = trim($_GET["BROADCAST"]); if (isset($_GET["DNS_1"])) { $DNS_1 = $_GET["DNS_1"]; } if (isset($_GET["DNS_2"])) { $DNS_2 = $_GET["DNS_2"]; } $dhcp = trim($_GET["dhcp"]); $arrayNic = $ip->GetNicInfos($nic); $q = new mysql(); $sql = "SELECT ipaddr FROM nic_virtuals WHERE ipaddr='{$IPADDR}'"; $ligne = mysql_fetch_array($q->QUERY_SQL($sql, "artica_backup")); if ($ligne["ipaddr"] != null) { echo $tpl->javascript_parse_text("{already_used}: {$IPADDR} (Virtual)"); return; } $sql = "SELECT ipaddr FROM nics_vlan WHERE ipaddr='{$IPADDR}'"; $ligne = mysql_fetch_array($q->QUERY_SQL($sql, "artica_backup")); if ($ligne["ipaddr"] != null) { echo $tpl->javascript_parse_text("{already_used}: {$IPADDR} (VLAN)"); return; } $ROUTES = base64_encode(serialize($arrayNic["ROUTES"])); if (intval($_GET["enabled"]) == 1) { if ($_GET["dhcp"] != 1) { if (!$ip->checkIP($IPADDR)) { echo "CheckIP: Address: {$IPADDR} = False;\n"; return; } if (!$ip->checkIP($NETMASK)) { echo "CheckIP: NetMask {$NETMASK} = False;\n"; return; } if ($GATEWAY != "0.0.0.0") { if (!$ip->checkIP($GATEWAY)) { echo "CheckIP: Gateway {$GATEWAY} = False;\n"; return; } } } if ($DNS_1 != null) { if (!$ip->checkIP($DNS_1)) { echo "CheckIP: DNS 1 {$DNS_1} = False;\nOr set null value to remove this message"; return; } } if ($DNS_2 != null) { if (!$ip->checkIP($DNS_2)) { echo "CheckIP: DNS 2 {$DNS_2} = False;\nOr set null value to remove this message"; return; } } } $htmltools = new htmltools_inc(); $_GET["netzone"] = $htmltools->StripSpecialsChars($_GET["netzone"]); $tpl = new templates(); $nics = new system_nic($nic); $text[] = "{$NICNAME} {$nic} {$IPADDR}"; if ($NICNAME != null) { $nics->NICNAME = $NICNAME; } $nics->eth = $nic; $nics->IPADDR = $IPADDR; $nics->NETMASK = $NETMASK; $nics->GATEWAY = $GATEWAY; $nics->BROADCAST = $BROADCAST; if ($DNS_1 != null) { $nics->DNS1 = $DNS_1; } if ($DNS_2 != null) { $nics->DNS2 = $DNS_2; } $nics->dhcp = $_GET["dhcp"]; $nics->metric = $_GET["metric"]; $nics->enabled = intval($_GET["enabled"]); $nics->netzone = $_GET["netzone"]; $nics->mtu = $_GET["mtu"]; if (isset($_GET["defaultroute"])) { $nics->defaultroute = $_GET["defaultroute"]; } if (isset($_GET["Bridged"])) { $nics->Bridged = $_GET["Bridged"]; $text[] = "Bridged, "; } if (isset($_GET["BridgedTo"])) { $nics->BridgedTo = $_GET["BridgedTo"]; $text[] = "{$_GET["BridgedTo"]}"; } if (isset($_GET["defaultroute"])) { $nics->defaultroute = $_GET["defaultroute"]; } if ($_GET["noreboot"] == "noreboot") { $nics->NoReboot = true; if ($nics->SaveNic()) { return; } } $nics->SaveNic(); }
function pools_save() { $poolid = $_POST["poolid"]; unset($_POST["poolid"]); $revers = new squid_reverse(); include_once dirname(__FILE__) . "/class.html.tools.inc"; $html = new htmltools_inc(); $_POST["poolname"] = $html->StripSpecialsChars($_POST["poolname"]); while (list($key, $value) = each($_POST)) { $fields[] = "`{$key}`"; $values[] = "'" . mysql_escape_string2($value) . "'"; $edit[] = "`{$key}`='" . mysql_escape_string2($value) . "'"; } if ($poolid > 0) { $sql = "UPDATE nginx_pools SET " . @implode(",", $edit) . " WHERE ID={$poolid}"; } else { $sql = "INSERT IGNORE INTO nginx_pools (" . @implode(",", $fields) . ") VALUES (" . @implode(",", $values) . ")"; } $q = new mysql_squid_builder(); $q->QUERY_SQL($sql); if (!$q->ok) { echo $q->mysql_error; return; } $sock = new sockets(); $sock->getFrameWork("squid.php?reverse-proxy-apply=yes"); }
function disk_form_save() { if ($_POST["loop-dir"] == null) { $_POST["loop-dir"] = "/home/virtuals-disks"; } if ($_POST["loop-name"] == null) { $_POST["loop-name"] = time(); } $path = $_POST["loop-dir"] . "/" . time() . ".disk"; $size = $_POST["loop-size"]; $t = new htmltools_inc(); $_POST["loop-name"] = $t->StripSpecialsChars($_POST["loop-name"]); if (!is_numeric($size)) { $size = "10000"; } $_POST["loop-name"] = addslashes($_POST["loop-name"]); $sql = "INSERT INTO loop_disks (`path`,`size`,`disk_name`) VALUES ('{$path}','{$size}','{$_POST["loop-name"]}')"; $q = new mysql(); $q->QUERY_SQL($sql, "artica_backup"); if (!$q->ok) { echo $q->mysql_error; return; } $sock = new sockets(); $sock->getFrameWork("lvm.php?loopcheck=yes"); }