#把環境搭建好,測試相鄰設備之間的連通性。
#在LINUX服務器上開啓路由功能
# echo 1 >/proc/sys/net/ipv4/ip_forward
#開啓路由後,2個網段之間就能夠互相通訊了。
#定義三條防火牆策略,拒絕全部的訪問。
iptables –P INPUT DROP
iptables –P OUTPUT DROP
iptables –P FORWARD DROP
//定義後,無論內網仍是外網都不能訪問iptables防火牆了。
//防火牆也不能訪問其餘的PC了(內網和外網都不能訪問了)
#如何容許防火牆訪問其餘PC了,又要防火牆權限開到最小。
iptables –t filter –A OUTPUT –d 0.0.0.0/0 –j ACCEPT
//容許防火牆本地流量能夠出去到任何網絡
iptables –A INPUT –p icmp --icmp-type echo-reply –j ACCEPT
//容許全部的網絡回顯到防火牆自己接口(這樣就能夠看到ping通的回顯了)
#假如還有不少服務,防火牆有一條默認規則出去,但有些服務必須還有回來訪問到本地(Telnet、ssh)怎樣容許服務到本地防火牆呢?
iptables –A INPUT –p tcp –sport 22 –j ACCEPT
(1).容許PC1能夠ping通外網的服務器,而PC2的拒絕ping通外網?
源 目標 協議
# iptables –t filter –A FORWARD –s 192.168.10.1 –d 202.103.100.0/24 –p icmp
請求 容許
--icmp-type echo-request –j ACCEPT //容許pc1的ping請求到外網服務器。
源 目標 協議
# iptables –t filter –A FORWARD –s 202.103.100.0/24 –d 192.168.10.1 –p icmp -–icmp-type
echo-reply –j ACCEPT //容許外網ping的回顯到內網PC1
#作完這兩步後,pc1就能夠ping通外網了,而pc2不能ping通外網
(2).容許PC1能夠查看外網web服務,而pc2不能夠訪問外網web服務器?
iptables –t filter –A FORWARD –s 192.168.10.1 –d 202.103.100.0/24 –p tcp
--dport 80 –j ACCEPT //容許pc1訪問外網的http服務器
iptables –t filter –A FORWARD –s 202.103.100.0/24 –d 192.168.10.1 –p tcp
--sport 80 –j ACCEPT //容許外網Web服務器到內網
#作完2步後,PC1能夠訪問外網web服務器了,而PC2就不能夠訪問外網web。
(3).容許pc1能夠訪問外網DNS服務器,而PC2不能夠訪問?
iptables –t filter –A FORWARD –s 192.168.10.1 –d 202.103.100.0/24 –p udp
--dport 53 –j ACCEPT //容許pc1訪問外網的DNS服務器。
iptables –t filter –A FORWARD –s 202.103.100.0/24 –d 192.168.10.1 –p udp
--sport 53 –j ACCEPT //容許外網的53端口訪問PC1。
(4).容許pc1能夠訪問外網FTP服務器,而PC2不能夠訪問?
iptables –t filter –A FORWARD –s 192.168.10.1 –d 202.103.100.0/24 –p
tcp –m multiport - -dport 20,21 –j ACCEPT
//容許內網PC1訪問到外網的ftp服務器20.21號端口
iptables –t filter –A FORWARD –s 202.103.100.0/24 –d 192.168.10.1 –p tcp –m multiport
--sport 20,21 –j ACCEPT
//容許外網FTP服務器訪問到內網PC
(5).拒絕外網PC、服務器ping通iptables防火牆的eth1接口IP?
只要開啓了三條鏈的默認規則DORP,默認外網就不能訪問、ping通
防火牆接口了。
(6).容許外網100.1能夠ping通IPTABLES的公網IP,而100.2不能夠ping通?
iptables –t filter –A INPUT –s 202.103.100.1 –d 202.103.100.200 –p icmp
--icmp-request –j ACCEPT
//容許100.1的ping請求進站到達iptables防火牆。
iptables –t filter –A OUTPUT –s 202.103.100.200 –d 202.103.100.1 –p icmp
--icmp-reply –j ACCEPT
//容許iptables的回顯出站到100.1服務器
iptables上容許被開放的服務
iptables -A INPUT -p tcp --sport 80 -j ACCEPT //容許開放TCP的80端口
iptables -A INPUT -p udp --sport 53 -j ACCEPT //容許開啓udp的53端口
iptables -A INPUT -p tcp --sport 25 -j ACCEPT //容許開啓TCP的25號端口
iptables – NAT轉換規則
iptables -t nat -L //查看NAT鏈中全部的規則
iptables -t nat -F //清除NAT裏全部的規則
iptables -t nat -L -n --line-number //以序號顯示NAT中的規則
iptables -t nat -D PREROUTING 1 //刪除PREROUTING中的第1條鏈
把內網的服務器發佈到外網接口
#DNAT重定向,容許訪問公網接口重定向到內網的服務器(53、80、443、25等)
一.Web服務器的發佈:
鏈 入站 協議 防火牆公網接口 服務端口 目NAT 重定向到內網的80接口
iptables -t nat -A PREROUTING -p tcp -d 202.103.100.1 --dport 80 -j DNAT --to 192.168.1.11:80
#在防火牆默認的狀況下,這樣作後,全部的外網用戶在訪問eth1接口時,Linux服務器都會把該請求轉交給2003web服務器。
#若是咱們把全部的策略都設置成了拒絕(DROP),那還要寫2條規則容許外網PC訪問內網PC,規則以下:
1. 容許全部外網的IP訪問到內網服務器。
iptables –t filter –A FORWARD –s 0.0.0.0/0 –d 192.168.1.11 –p tcp –dport 80 –j ACCEPT
2. 容許內網web服務器的數據出去。
iptables –t filter –A FORWARD –s 192.168.1.11 –d 0.0.0.0/0 –p tcp –sport 80 –j ACCEPT