Linux 服务器--Iptables 端口转发
2015-11-22 11:28
519 查看
日常Iptables 端口转发
需求:公司是局域网络,通过一个外网ip,进行互联网的访问。公司的云平台服务器在公网中,虚拟化平台中有一台内部服务器,用于公司某部门的使用,上面运行www 服务,ssh端口,方便平时上传网站文件。现领导要求将此内部服务器交接给此部门,并只让其在公司内部访问,外面的公网是拒绝访问的。
结构图:
![](http://images2015.cnblogs.com/blog/790056/201511/790056-20151122112639515-536213849.png)
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 -m state --state RELATED,ESTABLISHED -j ACCEPT
-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服务,现在可以测试一下。
需求:公司是局域网络,通过一个外网ip,进行互联网的访问。公司的云平台服务器在公网中,虚拟化平台中有一台内部服务器,用于公司某部门的使用,上面运行www 服务,ssh端口,方便平时上传网站文件。现领导要求将此内部服务器交接给此部门,并只让其在公司内部访问,外面的公网是拒绝访问的。
结构图:
![](http://images2015.cnblogs.com/blog/790056/201511/790056-20151122112639515-536213849.png)
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 -m state --state RELATED,ESTABLISHED -j ACCEPT
-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查看CPU个数
- 如何得到linux的pagesize
- Linux常用环境安装步骤
- linux虚拟机网卡启动失败问题处理
- Linux Advance--可重入的getenv
- CentOS6.2使用yum安装LAMP及phpMyadmin
- linux常用命令
- 练习--LINUX进程间通信之消息队列MSG
- Linux下编译的第一个程序
- Linux--Advance getenv的非可重入版本
- Linux可重入函数
- Linux 下配置网卡的别名即网卡子IP的配置
- linux读写ntfs
- linux下tar命令参数详解
- linux中系统性能监测工具包sysstat
- linux中磁盘IO相关信息统计工具iostat
- linux中CPU相关信息统计工具mpstat
- linux虚拟内存相关信息统计工具vmstat
- Linux多线程编程
- Linux下查看cpu数、内核数、线程数命令