Linux · 2012-03-19

用iptables做端口转发

本机端口转发:

代码如下: iptables -t nat -A PREROUTING -p tcp –dport 80 -j REDIRECT –to-ports 8080 估计适当增加其它的参数也可以做不同IP的端口转发。 如果需要本机也可以访问,则需要配置OUTPUT链: iptables -t nat -A OUTPUT -p tcp –dport 80 -j REDIRECT –to-ports 8080 原因: 外网访问需要经过PREROUTING链,但是localhost不经过该链,因此需要用OUTPUT,或者POSTROUTING。 POSTROUTING不行,需要看看。

 

转发到其它电脑:

机器A和机器B通过内网地址相连,两台机器的ip分别如下

机器A:eth0 123.123.123.123
eth1 192.168.0.1

机器B:eth0 192.168.0.2

现在要把 机器A 123.123.123.123的81端口,映射到机器B的80端口

在机器A上需要做如下操作
vi /etc/sysctl.conf
将 net.ipv4.ip_forward 的值修改为 1
然后执行 sysctl -p
然后执行两条命令

iptables -t nat -A PREROUTING -d 123.123.123.123 -p tcp -m tcp –dport 81 -j DNAT –to-destination 192.168.0.2:80

iptables -t nat -A POSTROUTING -d 192.168.0.2 -p tcp -m tcp –dport 80 -j SNAT –to-source 192.168.0.1

 

 

只允许指定IP访问指定端口设置
iptables -I INPUT -p TCP –dport 3306 -j DROP
iptables -I INPUT -s 10.10.10.1 -p TCP –dport 3306 -j ACCEPT
iptables -I INPUT -s 127.0.0.1 -p TCP –dport 3306 -j ACCEPT

注意:以上限制IP在nat范围是无效的,如果需要在nat影射端口做限制,可以在做影射时加参数-s限制指定ip实现

最后记得要在重启时加载iptables的设置。

 

portmap 端口转发

Linux 版的lcx,内网端口转发工具。

(1)下载地址:

http://www.vuln.cn/wp-content/uploads/2016/06/lcx_vuln.cn_.zip

(2)监听本地1234端口,转发给192.168.172.131的22端口

./portmap -m 1 -p1 1234 -h2 192.168.172.131 -p2 22