首先開啓路由轉發功能:
# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
# sysctl -p
(1)SNAT:內網主機 --訪問--> 外網服務器
<1> 搭建模擬環境
內網PC1:172.16.0.1/16(Host-Only)
網關PC2:192.168.1.8/24(橋接),172.16.0.8/16(Host-Only)
外網PC3:192.168.1.11/24(橋接)
<2> 設置源地址轉換規則
PC2:iptables -t nat -A POSTROUTING -s 172.16.0.0/16 -j SNAT --to-source 192.168.1.8
<3> 添加防火牆過濾規則(僅允許ping和訪問httpd、ftp服務)
PC2:
iptables -P FORWARD DROP
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -s 172.16.0.0/16 -p icmp --icmp-type 8 -m state --state NEW -j ACCEPT
iptables -A FORWARD -s 172.16.0.0/16 -p tcp --dport 80 -m state --state NEW -j ACCEPT
iptables -A FORWARD -s 172.16.0.0/16 -p tcp --dport 21 -m state --state NEW -j ACCEPT
注意:裝載ip_conntrack_ftp和ip_nat_ftp模塊
# vim /etc/sysconfig/iptables-config
IPTABLES_MODULES="ip_nat_ftp ip_conntrack_ftp"
<4> 測試並抓包分析
PC1:ping 192.168.1.11
PC3:tcpdump -i eth0 -nn -X icmp
(2)DNAT:外網主機 --訪問--> 內網服務器
<1> 搭建模擬環境
外網PC1:192.168.1.13/24(橋接)
網關PC2:192.168.1.8/24(橋接),172.16.0.8/16(Host-Only)
內網PC3:172.16.0.1/16(Host-Only)
<2> 設置目標地址轉換規則並測試
PC2:iptables -t nat -A PREROUTING -d 192.168.1.8 -p tcp --dport 80 -j DNAT --to-destination 172.16.0.1
PC1:訪問http://192.168.1.8
<3> 設置目標地址端口轉換規則並測試
PC2:iptables -t nat -A PREROUTING 1 -d 192.168.1.8 -p tcp --dport 80 -j DNAT --to-destination 172.16.0.1:8080
PC1:訪問http://192.168.1.8
<4> 添加防火牆過濾規則(基於字符串過濾)並測試
iptables -A FORWARD -m string --algo kmp --string "h7n9" -j DROP
PC1:訪問http://192.168.1.8