代码改变世界

linux端口映射

2015-08-26 09:56  AlfredZhao  阅读(1401)  评论(0)    收藏  举报

参考文章:
http://jingyan.baidu.com/article/ed15cb1b2a332e1be36981ed.html
http://www.myhack58.com/Article/48/66/2011/31462.htm

1、 net.ipv4.ip_forward参数修改

首先应该做的是/etc/sysctl.conf配置文件的net.ipv4.ip_forward = 1 默认是0 这样允许iptalbes FORWARD。

生效配置:
sysctl -p

2、 清空iptables默认规则

对应的配置文件/etc/sysconfig/iptables

iptables -F
iptables -X
iptables -Z
/etc/rc.d/init.d/iptables save

3、 重新配置iptables规则

server-A (Linux)
eth0      192.168.99.159  内网
eth1      192.168.9.159   外网 
server-B (Windows)
eth0      192.168.99.99   内网

需求:将server-A的3389端口映射到server-B的3389端口,实现通过server-A的外网地址访问server-B内网的3389端口。

iptables -t nat -A PREROUTING -d 192.168.9.159 -p tcp --dport 3389 -j DNAT --to-destination 192.168.99.99:3389
iptables -t nat -A POSTROUTING -d 192.168.99.99 -p tcp --dport 3389 -j SNAT --to 192.168.99.159

/etc/rc.d/init.d/iptables save

关于DNAT和SNAT,可参见转载文章:
【转载】Iptables实现公网IP DNAT/SNAT

防火墙策略(这里不用做):
这里是配置eth1还是eth0呢?

iptables -A FORWARD -o eth1 -d 192.168.99.99 -p tcp --dport 3389 -j ACCEPT
iptables -A FORWARD -i eth1 -s 192.168.99.99 -p tcp --sport 3389 -j ACCEPT

4、 iptables服务启动,设置为开机启动

service iptables start
chkconfig iptables on