首页 > Linux安全防护 > iptables做两机之间的端口转发

iptables做两机之间的端口转发

2016年11月9日

iptables做两机之间的端口转发
http://blog.sina.com.cn/s/blog_702eef650101moqb.html

两机:192.168.0.54和192.168.0.61,最终结果就是在指定端口上,54相当于61的代理。

IP包来到之后,修改目的地址,使之转向目标机器的目标端口,在54这个机器上:

iptables -t nat -A PREROUTING -d 192.168.0.54 -p tcp –dport 9000 -j DNAT –to 192.168.0.61:9000

IP包出去的时候,修改源地址(源端口),使之符合IP协议,可以正确返回,还是在54这个机器上:

iptables -t nat -A POSTROUTING -d 192.168.0.61 -p tcp –dport 9000 -j SNAT –to 192.168.0.54:9000

然后我们需要在54操作系统上打开IP转发:

echo ‘1’ > /proc/sys/net/ipv4/ip_forward

最后再设置54防火墙将这两个端口放行:

iptables -A FORWARD -i eth0 -s 192.168.0.61 -p tcp –sport 9000 -m state –state ESTABLISHED -j ACCEPT
iptables -A FORWARD -o eth0 -d 192.168.0.54 -p tcp –dport 9000 -j ACCEPT

保存iptables配置,完成。

service iptables save

**************20140911增加**************
在某两台机器上配置时,POSTROUTING表不起作用,或者说,iptables似乎对这种转发性能不“够”?10次里成功1次,一段时间里只成功1次,很奇怪,在iptables日志里看不出来异常。后来尝试如下配置,成功率目前看来100%,第一条不变,第二条换一种方式:
#iptables -t nat -A PREROUTING -d 192.168.0.54 -p tcp –dport 9000 -j LOG –log-prefix “*** IN ***” –log-level 4
iptables -t nat -A PREROUTING -d 192.168.0.54 -p tcp –dport 9000 -j DNAT –to 192.168.0.61:9000
#iptables -t nat -A POSTROUTING -d 192.168.0.61 -p tcp –dport 9000 -j LOG –log-prefix “*** IN ***” –log-level 4
iptables -t nat -A POSTROUTING -d 192.168.0.61 -p tcp –dport 9000 -j MASQUERADE
**************20140911增加结束**************
==========================================================================================
附其它文章:http://xmmok.blog.sohu.com/260275436.html
本机端口转发

转发8081到3306

iptables -t nat -A PREROUTING -p tcp –dport 8081 -j REDIRECT –to-ports 3306

转发所有端口

配置单网卡PPTP VPN的时候需要用到此条配置
转发所有tcp访问到外网ip

iptables -t nat -A POSTROUTING -s 192.168.0.0/16 -o eth0 -j MASQUERADE

端口转发跳板

单网卡通过 192.168.1.100:8081 访问 192.168.1.101:3306

iptables -t nat -A PREROUTING -d 192.168.1.100 -p tcp –dport 8081 -j DNAT –to-destination 192.168.1.101:3306
iptables -t nat -A POSTROUTING -d 192.168.1.101 -p tcp –dport 3306 -j SNAT –to 192.168.1.100
顺便说说SNAT, DNAT与MASQUERADE区别

SNAT: source nat 源网络地址转换
数据包从网卡发送出去的时候,把数据包中的源地址部分替换为指定的IP
接收方就认为数据包的来源是被替换的那个IP的主机
在目标机连接外部时要用到这种转换, 例如上面192.168.1.101数据返回到外部访问

分类: Linux安全防护 标签:
本文的评论功能被关闭了.