實驗目的:web
使用iptables做爲公司內網的網關,使內網用戶能夠正常訪問外網。vim
內網有一臺web服務器須要對外提供bash
內網有兩臺服務器部署了samba,ftp和dns服務,給內網用戶使用服務器
對192.168.1.10-192.168.1.50的用戶限速併發
GWssh
192.168.1.200(鏈接外網) 192.168.2.1(鏈接內網)tcp
WEB Serveride
192.168.2.202spa
Other Serversrest
192.168.2.101
192.168.2.102
1、配置WEB Server的防火牆規則:
目的:
只開放本機的tcp80端口
只容許192.168.2.100-192.168.2.120使用ssh登陸
WEB服務器能夠ping其餘主機
添加規則:
192.168.2.202 上操做
iptables -t raw -A PREROUTING-d 192.168.2.202 -p tcp --dport 80 -j NOTRACK iptables -t raw -A OUTPUT -s192.168.2.202 -p tcp --sport 80 -j NOTRACK
//上面兩條規則對匹配到的流量關閉鏈接追蹤狀態
iptables -A INPUT -d192.168.2.202 -p tcp --dport 80 -j ACCEPT iptables -A INPUT -d192.168.2.202 -p tcp -m iprange --src-range 192.168.2.100-192.168.2.120 --dport22 -j ACCEPT iptables -A OUTPUT -s192.168.2.202 -p tcp -m multiport --sports 22,80 -j ACCEPT iptables -A INPUT -p icmp -d192.168.2.202 --icmp-type 0 -j ACCEPT iptables -A OUTPUT -p icmp -s192.168.2.202 --icmp-type 8 -j ACCEPT iptables -P INPUT DROP iptables -P OUTPUT DROP
2、配置Other Servers的防火牆規則:
目的:
開放samba,ftp和dns服務
dns服務器之間能夠實現主從複製
只容許192.168.2.100-192.168.2.120使用ssh登陸
服務器能夠ping其餘主機
添加規則:
在192.168.2.101和192.168.2.102上操做
vim/etc/sysconfig/iptables-config
service iptables restart //加載模塊
iptables -F //清空默認規則
添加規則:
在192.168.2.101上操做
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED-j ACCEPT iptables -A INPUT -m state --state ESTABLISHED,RELATED -jACCEPT iptables -A INPUT -d 192.168.2.101 -p tcp -m multiport--dports 21,53,139,145 -m state --state NEW -j ACCEPT iptables -A INPUT -d 192.168.2.101 -p udp -m multiport--dports 53,137:138 -m state --state NEW -j ACCEPT iptables -A INPUT -d 192.168.2.101 -p tcp -m iprange--src-range 192.168.2.100-192.168.2.120 --dport 22 -m state --state NEW -jACCEPT iptables -A INPUT -d 192.168.2.101 -p icmp --icmp-type 0-m state --state NEW -j ACCEPT iptables -A OUTPUT -p udp --dport 53 -m state --state NEW-j ACCEPT iptables -A OUTPUT -p tcp --dport 53 -m state --state NEW-j ACCEPT iptables -A OUTPUT -s 192.168.2.101 -p icmp --icmp-type 8-m state --state NEW -j ACCEPT iptables -A INPUT -s 127.0.0.1-p tcp --dport 953 -m state --state NEW -j ACCEPT iptables -A OUTPUT -p tcp -d 127.0.0.1 --dport 953 -jACCEPT iptables -P INPUT DROP iptables -P OUTPUT DROP
在192.168.2.102上操做
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED-j ACCEPT iptables -A INPUT -m state --state ESTABLISHED,RELATED -jACCEPT iptables -A INPUT -d 192.168.2.102 -p tcp -m multiport--dports 21,53,139,145 -m state --state NEW -j ACCEPT iptables -A INPUT -d 192.168.2.102 -p udp -m multiport--dports 53,137:138 -m state --state NEW -j ACCEPT iptables -A INPUT -d 192.168.2.102 -p tcp -m iprange--src-range 192.168.2.100-192.168.2.120 --dport 22 -m state --state NEW -jACCEPT iptables -A INPUT -d 192.168.2.102 -p icmp --icmp-type 0-m state --state NEW -j ACCEPT iptables -A OUTPUT -p udp --dport 53 -m state --state NEW-j ACCEPT iptables -A OUTPUT -p tcp --dport 53 -m state --state NEW-j ACCEPT iptables -A OUTPUT -s 192.168.2.102 -p icmp --icmp-type 8-m state --state NEW -j ACCEPT iptables -A INPUT -s 127.0.0.1-p tcp --dport 953 -m state --state NEW -j ACCEPT iptables -A OUTPUT -p tcp -d 127.0.0.1 --dport 953 -jACCEPT iptables -P INPUT DROP iptables -P OUTPUT DROP
3、配置GW:
確保已打開ip轉發
vim/etc/sysctl.d/99-sysctl.conf //使ip轉發永久生效
sysctl -p //當即生效
iptables -t nat -A POSTROUTING -s 192.168.2.0/24 ! -d192.168.2.0/24 -j SNAT --to-source 192.168.1.200 iptables -t nat -A PREROUTING -d 192.168.1.200 -p tcp--dport 80 -j DNAT --to-destination 192.168.2.202 iptables -A FORWARD -m iprange--src-range 192.168.1.10-192.168.1.50 -m connlimit --connlimit-above 10 -j DROP
//限制內網用戶發往外網的鏈接併發數(須要進一步驗證)
iptables -A FORWARD -m iprange--dst-range 192.168.1.10-192.168.1.50 -m limit --limit 300/minute -j ACCEPT
//限制內網用戶的下載速度(須要進一步驗證)