iptables 詳細的使用指南
網關服務器安全策略
目標 : 網關服務器系統自生安全策略,只對內網用戶開放22端口(sshd服務)
#清空 filter table
[root@localhost]# iptables -F -t filter
[root@localhost]# iptables -X -t filter
[root@localhost]# iptables -Z -t filter
#清空 nat table
[root@localhost]# iptables -F -t nat
[root@localhost]# iptables -X -t nat
[root@localhost]# iptables -Z -t nat
#設置默認策略(INPUT鏈默認為DROP)
[root@localhost]# iptables -t filter -P INPUT drop
[root@localhost]# iptables -t filter -P OUTPUT ACCEPT
[root@localhost]# iptables -t filter -P FORWARD ACCEPT
#回環接口(lo),默認accept
[root@localhost]# iptables -A INPUT -p ALL -i lo -j ACCEPT
#只對內網用戶開放sshd服務
[root@localhost]# iptables -A INPUT -p tcp -s 192.168.138.0/24 --dport 22 -j ACCEPT
說明: 防火墻的策略順序一般都是 從 非信任 ==> 信任,默認關閉所有訪問權限,然后按照需要逐條開放訪問權限.
共享上網(nat)
目標:使局域網的用戶都可以訪問外網的服務器
[root@localhost]# echo 1 > /proc/sys/net/ipv4/ip_forward
[root@localhost]# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
說明: SNAT 和 MASQUERADE 區別
SNAT : 不管是幾個地址,必須明確的指定要SNAT的ip,適合網關服務器有固定地址或者是固定地址范圍. MASQUERADE : 是針對ADSL動態撥號這種場景而設計,從服務器的網絡接口上,自動獲取當前ip地址來做NAT,這樣就實現了動態SNAT地址轉換
內網的服務器對外服務(端口映射)
目標:使外網用戶可以訪問到局域網192.168.138.21這臺HTTP服務
[root@localhost]# echo 1 > /proc/sys/net/ipv4/ip_forward
[root@localhost]# iptables -t nat -A PREROUTING -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.138.21
[root@localhost]# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
在網關服務器進行透明代理
目標: 使局域網用戶,訪問外網web服務時,自動使用squid作web透明代理服務器。
[root@localhost]# echo 1 > /proc/sys/net/ipv4/ip_forward
[root@localhost]# iptables -t nat -A PREROUTING -s 192.168.138.0/24 -p tcp --dport 80 -i eth0 -j DNAT --to 192.168.138.1
[root@localhost]# iptables -t nat -A PREROUTING -s 192.168.138.0/24 -p tcp --dport 80 -i eth0 -j REDIRECT --to 3128
[root@localhost]# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE