先說明一下環境,這裡有四台主機,中間的Centos充當防火牆。右上角的win XP和右下角的Rhel7充當伺服器,最左邊的win7充當主機。四者之間的網卡都已經配置好。而且我們已經在Centos6.5上開啟了端口轉發功能。
- echo 1 > /proc/sys/net/ipv4/ip_forward
- sysctl -w net.ipv4.ip_forward=1
- vim /etc/sysctl.conf , 将net.ipv4.ip_forward=0 改為 =1,然後 sysctl -p /etc/sysctl.conf
防火牆開啟了IP轉發功能後,然後清空iptables裡面的所有規則,放行所有。win7、winXP、Rhel7都把防火牆給關了,然後四者之間就可以互相通信了。
配置防火牆使之禁止通路 ftp 服務
我們在win xp上開啟ftp服務,通過win7 和 Rhel7 可以 ftp WinXP。
現在我們要配置防火牆,使之禁止FTP服務的流量經過。因為Win7要想FTP通路WinXP,流量先經過防火牆,然後再由防火牆轉發。是以我們對防火牆的 filter 表的 FORWARD 鍊進行配置,使之拒絕FTP流量經過
iptables -t filter -A FORWARD -p tcp --dport 21 -j DROP
可以看到,filter表中的FORWARD鍊已經加了一條拒絕TCP的21号端口通過的 規則了。然後我們再從Win7 FTP WinXP,可以看到,已經不能FTP了。
配置防火牆使得指定網段的才可以通路FTP服務
我們在防火牆上配置,使得Rhel7的才可以通路FTP服務,而Win7不能通路FTP服務。
iptables -t filter -A FORWARD -s 10.0.0.2 -p tcp --dport 21 -j ACCEPT //filter表的FORWARD鍊允許源位址10.0.0.2的主機,目的端口21号的流量
iptables -t filter -A FORWARD -s 192.168.1.2 -p tcp --dport 21 -j DROP //filter表的FORWAARD鍊拒絕源位址192.168.1.2的主句,目的端口21号的流量
可以看到,filter表中的FORWARD鍊預設拒絕所有流量經過,放行源位址分别為10.0.0.0/24和20.0.0.0/24的ftp服務。
禁止PING
在防火牆上配置丢棄 icmp 協定的 request 包,也就是icmp-type為8的包
iptables -A FORWARD -p icmp --icmp-type 8 -j DROP
可以看到,已經ping不通了,Windows系統顯示請求逾時,而Linux系統則發不出去包
而當我們配置的是拒絕icmp協定的包通過
iptables -A FORWARD -p icmp --icmp-type 8 -j REJECT
拒絕的話,windows系統和Linux系統都是顯示目标端口不可達。
按網段禁止Ping
配置防火牆,丢棄192.168.1.0/24網段的icmp請求包,允許10.0.0.0/24網段的icmp請求包
iptables -A FORWARD -s 192.168.1.0/24 -p icmp --icmp-type 8 -j DROP
iptables -A FORWARD -s 10.0.0.0/24 -p icmp --icmp-type 8 -j ACCEPT
可以看到,Win7已經不能ping了,而Rhel7可以ping
禁止Telnet服務
其他的和上面的一模一樣,隻是過濾規則的端口改了
iptables -A FORWARD -p tcp --dport 23 -j DROP
按網段禁止Telnet服務
iptables -A FORWARD -s 192.168.1.0/24 -p tcp --dport 23 -j DROP
iptables -A FORWARD -s 20.0.0.0/24 -p tcp --dport 24 -j ACCEPT