Example #1
0
function Bridges_list(){
	
	
	$t=$_GET["t"];
	$tpl=new templates();
	$MyPage=CurrentPageName();
	$q=new mysql();
	$users=new usersMenus();
	$sock=new sockets();
	$xtime=$_GET["xtime"];
	$table="iptables_bridge";
	$search='%';
	$database="artica_backup";	
	$page=1;
	$FORCE_FILTER=null;
	$tcp=new networking();
	
	if(!$q->TABLE_EXISTS($table, $database)){json_error_show("`$table` doesn't exists...");}
	if($q->COUNT_ROWS($table, $database)==0){json_error_show("No rule");}

	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 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;
	$limitSql = "LIMIT $pageStart, $rp";
	
	$sql="SELECT *  FROM $table WHERE 1 $searchstring $FORCE_FILTER $ORDER $limitSql";	
	writelogs($sql,__FUNCTION__,__FILE__,__LINE__);
	$results = $q->QUERY_SQL($sql,$database);
	
	$data = array();
	$data['page'] = $page;
	$data['total'] = $total;
	$data['rows'] = array();
	
	if(!$q->ok){json_error_show($q->mysql_error);}	

	while ($ligne = mysql_fetch_assoc($results)) {
	$zmd5=md5(serialize($ligne));
	$color="black";
	$ipaddrinfos=VirtualNicInfosIPaddr($ligne["nics_virtuals_id"]);
	$nic_linked=$ligne["nic_linked"];
	$infos=$tcp->GetNicInfos($nic_linked);	
	$rulesIcon=imgsimple("script-32.png","{rules}","BridgeRules({$ligne["ID"]})");
	$delete=imgsimple("delete-24.png","{delete}","BridgeDelete({$ligne["ID"]},'$zmd5')");
	$data['rows'][] = array(
		'id' => "$zmd5",
		'cell' => array(
			"<span style='font-size:16px;color:$color'><img src='img/folder-network-32.png'></span>",
			"<span style='font-size:16px;color:$color'>{$ipaddrinfos["ETH"]} ({$ipaddrinfos["IPADDR"]})</span>",
			"<span style='font-size:16px;color:$color'><img src='img/arrow-right-32.png'></span>",
			"<span style='font-size:16px;color:$color'>$nic_linked ({$infos["IPADDR"]})</strong></span>",
			"<span style='font-size:16px;color:$color'>$rulesIcon</span>",
			"<span style='font-size:16px;color:$color'>$delete</span>",
			)
		);
	}
	
	
echo json_encode($data);

}
Example #2
0
function bridges_build()
{
    if (isset($GLOBALS["bridges_build_executed"])) {
        return;
    }
    $GLOBALS["bridges_build_executed"] = true;
    $unix = new unix();
    $iptables = $unix->find_program("iptables");
    $sysctl = $unix->find_program("sysctl");
    $php5 = $unix->LOCATE_PHP5_BIN();
    $iptables_rules = array();
    $sql = "SELECT * FROM iptables_bridge ORDER BY ID DESC";
    $q = new mysql();
    $results = $q->QUERY_SQL($sql, "artica_backup");
    if (!$q->ok) {
        return null;
    }
    $GLOBALS["SCRIPTS"][] = "";
    $GLOBALS["SCRIPTS"][] = "# [" . __LINE__ . "]";
    $GLOBALS["SCRIPTS"][] = "# [" . __LINE__ . "] *******************************";
    $GLOBALS["SCRIPTS"][] = "# [" . __LINE__ . "] ****   Iptables Bridges    ****";
    $GLOBALS["SCRIPTS"][] = "# [" . __LINE__ . "] *******************************";
    $GLOBALS["SCRIPTS"][] = "# [" . __LINE__ . "]";
    $GLOBALS["SCRIPTS"][] = "# [" . __LINE__ . "]:" . mysql_num_rows($results) . " rule(s)";
    $GLOBALS["SCRIPTS"][] = "{$php5} " . __FILE__ . " --iptables-bridge-delete";
    if (mysql_num_rows($results) == 0) {
        return;
    }
    $GLOBALS["SCRIPTS"][] = "{$sysctl} -w net.ipv4.ip_forward=1";
    $NetBuilder = new system_nic();
    $NetBuilder->LoadTools();
    while ($ligne = @mysql_fetch_array($results, MYSQL_ASSOC)) {
        if ($ligne["nics_virtuals_id"] > 0) {
            $array_virtual_infos = VirtualNicInfosIPaddr($ligne["nics_virtuals_id"]);
            $nicvirtual = $array_virtual_infos["IPADDR"];
            if ($nicvirtual == null) {
                continue;
            }
        }
        if ($ligne["nic_inbound"] != null) {
            $nicvirtual = $ligne["nic_inbound"];
            $nicvirtual = $NetBuilder->NicToOther($nicvirtual);
        }
        $nic_linked = trim($ligne["nic_linked"]);
        if (trim($nic_linked) == null) {
            continue;
        }
        if (trim($nicvirtual) == null) {
            continue;
        }
        if (preg_match("#(.+?):([0-9]+)#", $nic_linked, $re)) {
            $array_virtual_infos = VirtualNicInfosIPaddr($re[2]);
            $nic_linked = $array_virtual_infos["IPADDR"];
        }
        $id = $ligne["ID"];
        $nic_linked = $NetBuilder->NicToOther($nic_linked);
        $GLOBALS["SCRIPTS"][] = "# [" . __LINE__ . "]: [{$id}] Virtuals bridge {$nicvirtual} to {$nic_linked}";
        $GLOBALS["SCRIPTS"][] = "{$iptables} -A FORWARD -i {$nicvirtual} -o {$nic_linked} -m state --state ESTABLISHED,RELATED -j ACCEPT -m comment --comment \"ArticaBridgesVirtual:{$id}\" 2>&1";
        $GLOBALS["SCRIPTS"][] = "{$iptables} -A FORWARD -i {$nicvirtual} -o {$nic_linked} -j ACCEPT -m comment --comment \"ArticaBridgesVirtual:{$id}\" 2>&1";
        $GLOBALS["SCRIPTS"][] = "{$iptables} -t nat -A POSTROUTING -o {$nic_linked} -j MASQUERADE\t-m comment --comment \"ArticaBridgesVirtual:{$id}\" 2>&1";
    }
}
Example #3
0
function bridges_build()
{
    $unix = new unix();
    $iptables = $unix->find_program("iptables");
    $sysctl = $unix->find_program("sysctl");
    $sql = "SELECT * FROM iptables_bridge ORDER BY ID DESC";
    $q = new mysql();
    $results = $q->QUERY_SQL($sql, "artica_backup");
    if (!$q->ok) {
        return null;
    }
    while ($ligne = @mysql_fetch_array($results, MYSQL_ASSOC)) {
        $array_virtual_infos = VirtualNicInfosIPaddr($ligne["nics_virtuals_id"]);
        $nicvirtual = $array_virtual_infos["IPADDR"];
        if ($nicvirtual == null) {
            continue;
        }
        $nic_linked = trim($ligne["nic_linked"]);
        if (trim($nic_linked) == null) {
            continue;
        }
        if (preg_match("#(.+?):([0-9]+)#", $nic_linked, $re)) {
            $array_virtual_infos = VirtualNicInfosIPaddr($re[2]);
            $nic_linked = $array_virtual_infos["IPADDR"];
        }
        $id = $ligne["ID"];
        echo "Starting......: Virtuals bridge {$nicvirtual} to {$nic_linked}\n";
        $iptables_rules[] = "{$iptables} -A FORWARD -i {$nicvirtual} -o {$nic_linked} -m state --state ESTABLISHED,RELATED -j ACCEPT -m comment --comment \"ArticaBridgesVirtual:{$id}\" 2>&1";
        $iptables_rules[] = "{$iptables} -A FORWARD -i {$nicvirtual} -o {$nic_linked} -j ACCEPT -m comment --comment \"ArticaBridgesVirtual:{$id}\" 2>&1";
        $iptables_rules[] = "{$iptables} -t nat -A POSTROUTING -o {$nic_linked} -j MASQUERADE\t-m comment --comment \"ArticaBridgesVirtual:{$id}\" 2>&1";
    }
    bridges_delete();
    $rules = 0;
    if (count($iptables_rules) > 0) {
        while (list($index, $chain) = each($iptables_rules)) {
            unset($results);
            exec($chain, $results);
            if (count($results) > 0) {
                echo "Starting......: Virtuals bridge ERROR {$chain}\n";
                while (list($num, $line) = each($results)) {
                    echo "Starting......: Virtuals bridge ERROR {$line}\n";
                }
            } else {
                $rules = $rules + 1;
            }
        }
    }
    if ($rules > 0) {
        shell_exec("{$sysctl} -w net.ipv4.ip_forward=1");
    }
    echo "Starting......: Virtuals bridge adding iptables {$rules} rule(s)\n";
}
Example #4
0
function Bridges_list()
{
    $html = "<table cellspacing='0' cellpadding='0' border='0' class='tableView'>\n<thead class='thead'>\n\t<tr>\n\t<th colspan=2  nowrap>{from}</th>\n\t<th nowrap>&nbsp;</th>\n\t<th colspan=2 nowrap>{to}</th>\n\t<th>{rules}</th>\n\t<th nowrap>{delete}</th>\n\t</tr>\n</thead>";
    $sql = "SELECT * FROM iptables_bridge ORDER BY ID DESC";
    $q = new mysql();
    $results = $q->QUERY_SQL($sql, "artica_backup");
    if (!$q->ok) {
        if (preg_match("#doesn't exist#", $q->mysql_error)) {
            $q->BuildTables();
            echo "<script>BridgeRefresh();</script>";
        }
        echo "<H2>{$q->mysql_error}</H2>";
    }
    $tcp = new networking();
    while ($ligne = @mysql_fetch_array($results, MYSQL_ASSOC)) {
        if ($classtr == "oddRow") {
            $classtr = null;
        } else {
            $classtr = "oddRow";
        }
        $ipaddrinfos = VirtualNicInfosIPaddr($ligne["nics_virtuals_id"]);
        $nic_linked = $ligne["nic_linked"];
        $infos = $tcp->GetNicInfos($nic_linked);
        $html = $html . "\n\t\t<tr class={$classtr}>\n\t\t\t<td width=1% style='padding:3px'><img src='img/folder-network-32.png'></td>\n\t\t\t<td width=33%><strong style='font-size:14px'>{$ipaddrinfos["ETH"]} ({$ipaddrinfos["IPADDR"]})</strong></td>\n\t\t\t<td width=33% style='padding:3px' align='center'><img src='img/arrow-right-32.png'></td>\n\t\t\t<td width=1% style='padding:3px'><img src='img/folder-network-32.png'></td>\n\t\t\t<td width=33% nowrap><strong style='font-size:14px'>{$nic_linked} ({$infos["IPADDR"]})</strong></td>\n\t\t\t<td width=1% align=center>" . imgtootltip("script-32.png", "{rules}", "BridgeRules({$ligne["ID"]})") . "</td>\n\t\t\t<td width=1% align=center>" . imgtootltip("delete-24.png", "{delete}", "BridgeDelete({$ligne["ID"]})") . "</td>\n\t\t\t\n\t\t</tr>";
    }
    $html = $html . "</table>";
    $tpl = new templates();
    echo $tpl->_ENGINE_parse_body($html);
}