码迷,mamicode.com
首页 > 系统相关 > 详细

Linux 服务器--Iptables 端口转发

时间:2015-11-22 12:28:34      阅读:242      评论:0      收藏:0      [点我收藏+]

标签:

日常Iptables 端口转发

 

  1. 需求:公司是局域网络,通过一个外网ip,进行互联网的访问。公司的云平台服务器在公网中,虚拟化平台中有一台内部服务器,用于公司某部门的使用,上面运行www 服务,ssh端口,方便平时上传网站文件。现领导要求将此内部服务器交接给此部门,并只让其在公司内部访问,外面的公网是拒绝访问的。

 

结构图:

技术分享

 

2.解决方法:通过linux 服务器的iptables,利用端口转发,在公司内部通过A机器(或者说A代表某个部门),使其访问到B机器上的特定连接转发至内部机器C上。由于机房服务器只开放了特定端口,所以,利用B机器的9090端口和80端口分别转发到内部机器C上的22端口和80端口。

修改防火墙之前,需要先修改系统内核,开启ipv4转发功能:vim /etc/sysconfig,修改以下值 ipv4_net_forward = 1 ,之后运行 sysctl -p 命令生效。

先备份一下防火墙的配置文件,之后编辑防火墙:vim /etc/sysconfig/iptables,追加以下规则(做转发的四条规则必须写在nat表中):

*nat

:PREROUTING ACCEPT [888442:52703267]

:POSTROUTING ACCEPT [712676:42810839]

:OUTPUT ACCEPT [712676:42810839]

-A PREROUTING  -s 223.1.1.2 -d 101.1.1.3 -p tcp -m tcp --dport 9090 -j DNAT --to-destination 10.8.88.88:22

注:来自223.1.1.2 且目标是 101.1.1.3:9090端口的链接转发到 10.8.88.88:22端口上

-A POSTROUTING -d 10.8.88.88 -p tcp -m tcp --dport 22 -j SNAT --to-source 10.8.88.77

注:回路的包,所有从内部机器C的22端口返回的包转发到B机器上的eth1网卡上

-A PREROUTING  -s 223.1.1.2 -d 101.1.1.3 -p tcp -m tcp --dport 80 -j DNAT --to-destination 10.8.88.88:80

注:同上

-A POSTROUTING -d 10.8.88.88 -p tcp -m tcp --dport 80 -j SNAT --to-source 10.8.88.77

注:同上

 

*filter

-A INPUT -s 223.1.1.2 -p tcp -m tcp --dport 9090 -j ACCEPT

-A INPUT -s 223.1.1.2 -p tcp -m tcp --dport 80 -j ACCEPT

-A INPUT -j REJECT --reject-with icmp-host-prohibited

 

3.修改完成后,保存配置。重启iptables服务,现在可以测试一下。

  

Linux 服务器--Iptables 端口转发

标签:

原文地址:http://www.cnblogs.com/hanyifeng/p/4985514.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!