iptables的SNAT和DNAT應用

首先開啓路由轉發功能:

# 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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章