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


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