TCP/IP詳解 第七章 防火牆和網絡地址轉換(3) iptables防火牆的mangle表

mangle表的主要功能是根據規則修改數據包的一些標誌位,以便其他規則或程序可以利用這種標誌對數據包進行過濾或策略路由。

 內網的客戶機通過Linux主機連入Internet,而Linux主機與Internet連接時有兩條線路,它們的網關如圖所示。現要求對內網進行策略路由,所有通過TCP協議訪問80端口的數據包都從ChinaNet線路出去,而所有訪問UDP協議53號端口的數據包都從Cernet線路出去。

這是一個策略路由的問題,爲了達到目的,在對數據包進行路由前,要先根據數據包的協議和目的端口給數據包做上一種標誌,然後再指定相應規則,根據數據包的標誌進行策略路由。爲了給特定的數據包做上標誌,需要使用mangle表,mangle表共有5條鏈,由於需要在路由選擇前做標誌,因此應該使用PREROUTING鏈,下面是具體的命令。

iptables -t mangle -A PREROUTING -i eth0 -p tcp 
--dport 80 -j MARK --set-      mark 1  
iptables -t mangle -A PREROUTING -i eth0 -p udp 
--dprot 53 -j MARK --set-      mark 2 

以上命令在mangle表的PREROUTING鏈中添加規則,爲來自eth0接口的數據包做標誌,其匹配規則分別是TCP協議、目的端口號是80和UDP協議、目的端口號是53,標誌的值分別是1和2。數據包經過PREROUTING鏈後,將要進入路由選擇模塊,爲了對其進行策略路由,執行以下兩條命令,添加相應的規則。

ip rule add from all fwmark 1 table 10  
ip rule add from all fwmark 2 table 20 

以上兩條命令表示所有標誌是1的數據包使用路由表10進行路由,而所有標誌是2的數據包使用路由表20進行路由。路由表10和20分別使用了ChinaNet和Cernet線路上的網關作爲默認網關,具體設置命令如下所示。

ip route add default via 10.10.1.1 dev eth1 table 10  
ip route add default via 10.10.2.1 dev eth2 table 20 

以上兩條命令在路由表10和20上分別指定了10.10.1.1和10.10.2.1作爲默認網關,它們分別位於ChinaNet和Cernet線路上。於是,使用路由表10的數據包將通過ChinaNet線路出去,而使用路由表20的數據包將通過Cernet線路出去。

 

(2)

 

iptables網關服務器三塊網卡:eth0(網通ip:10.0.0.1)、eth1(電信ip:20.0.0.1);eth2:網關192.168.10.1。

要求:公司內網要求192.168.10.1---100以內的ip使用 10.0.0.1 網關上網(網通),其他IP使用 20.0.0.1 (電信)上網;

iptables網關服務器配置如下:

mangle應用順序要高於nat、filter哈。

案例2、

iptables網關服務器三塊網卡:eth0(網通ip:10.0.0.1)、eth1(電信ip:20.0.0.1);eth2:網關192.168.10.1。

要求:公司內網要求員工訪問外面的網站服務;使用 10.0.0.1 網關上網(網通),其他IP使用 20.0.0.1 (電信)上網;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章