参考文章:
【iptables&icmp】iptables默认策略中关于icmp协议的说明
0. 前置
- 需要在 Linux 上开启路由转发
- [可选]安装
net-tools curl
等工具
实现步骤
- 编辑
/etc/sysctl.conf
文件,取消注释net.ipv4.ip_forward=1
- 使用
sysctl -p
载入配置
1. SNAT
1.1 配置 iptables
iptables -t nat -A POSTROUTING -o ens33 -j SNAT --to 47.119.161.30
- ens33:此端口为外网端口
- 若要指定网段在 -o 前添加
-s xx.xx.xx.xx/xx
1.2 添加缺省路由
- 此操作需要安装
net-tools
route add default gw 47.119.161.30
2. DNAT
1.1 配置 iptables
iptables -t nat -A PREROUTING -d 47.119.161.30 -p tcp -j DNAT --to 172.16.0.101
3. 使用icmp-host-prohibited响应禁用其他所有INPUT和FORWARD数据流量
iptables -A INPUT -j REJECT --reject-with icmp-host-prohibited
iptables -A FORWARD -j REJECT --reject-with icmp-host-prohibited
# 根据 iptables 策略匹配即停止原则
# 这两条表示在INPUT表和FORWARD表中拒绝所有其他不符合上述任何一条规则的数据包,并且发送一条host prohibited的消息给被拒绝的主机
Comments | NOTHING