基于Linux系统Firewall实现SNAT+DNAT

举报
夏侯曹曹 发表于 2019/12/13 17:18:38 2019/12/13
【摘要】 1. 开启系统的转发功能vi /etc/sysctl.conf 将 net.ipv4.ip_forward=0 修改成 net.ipv4.ip_forward=1编辑后使用命令让配置马上生效 sysctl -p开启目标服务器/中转服务器端口**(本例仅限于http服务) python -m SimpleHTTPServer 1024查询端口**状态 netstat -tupln2. ...

1.    开启系统的转发功能
vi /etc/sysctl.conf 将 net.ipv4.ip_forward=0 修改成 net.ipv4.ip_forward=1
编辑后使用命令让配置马上生效 sysctl -p
开启目标服务器/中转服务器端口**(本例仅限于http服务) python -m SimpleHTTPServer 1024
查询端口**状态 netstat -tupln

2.     iptables 的命令
iptables -t nat -A PREROUTING -p tcp --dport [端口号] -j DNAT --to-destination [目标IP]
iptables -t nat -A PREROUTING -p udp --dport [端口号] -j DNAT --to-destination [目标IP]
iptables -t nat -A POSTROUTING -p tcp -d [目标IP] --dport [端口号] -j SNAT --to-source [本地服务器IP]
iptables -t nat -A POSTROUTING -p udp -d [目标IP] --dport [端口号] -j SNAT --to-source [本地服务器IP]

中转服务器添加如下规则:
DNAT
iptables -t nat -D PREROUTING -p tcp --dport {外部端口} -j DNAT --to-destination {内部IP:内部端口}
SNAT
iptables -t nat -A POSTROUTING -p tcp -d {内部IP} --dport {内部端口} -j SNAT --to-source {外部IP:外部端口}

3.    重启 iptables 使配置生效
service iptables save
service iptables restart

4.    验证规则生效
在第三方节点 curl http://{外部IP}:{外部端口}
在中转服务器抓包观察IP转发情况

5.    扩展需求
多端口转发修改方案: ( 将本地服务器的 50000~65535 转发至目标 IP 为 1.1.1.1 的 50000~65535 端口 )
-A PREROUTING -p tcp -m tcp --dport 50000:65535 -j DNAT --to-destination 1.1.1.1
-A PREROUTING -p udp -m udp --dport 50000:65535 -j DNAT --to-destination 1.1.1.1
-A POSTROUTING -d 1.1.1.1/32 -p tcp -m tcp --dport 50000:65535 -j SNAT --to-source [本地服务器IP]
-A POSTROUTING -d 1.1.1.1/32 -p udp -m udp --dport 50000:65535 -j SNAT --to-source [本地服务器IP]
非同端口号修改方案:(使用本地服务器的 60000 端口来转发目标 IP 为 1.1.1.1 的 50000 端口)
-A PREROUTING -p tcp -m tcp --dport 60000 -j DNAT --to-destination 1.1.1.1:50000
-A PREROUTING -p udp -m udp --dport 60000 -j DNAT --to-destination 1.1.1.1:50000
-A POSTROUTING -d 1.1.1.1/32 -p tcp -m tcp --dport 50000 -j SNAT --to-source [本地服务器IP]
-A POSTROUTING -d 1.1.1.1/32 -p udp -m udp --dport 50000 -j SNAT --to-source [本地服务器IP]

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。