Linux 服务器--Iptables 端口转发
日常Iptables 端口转发
- 需求:公司是局域网络,通过一个外网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 -A POSTROUTING -d 10.8.88.88 -p tcp -m tcp --dport 22 -j SNAT --to-source 10.8.88.77 -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
注:PREROUTING 来自223.1.1.2 且目标是 101.1.1.3:9090端口的链接转发到 10.8.88.88:22端口上
注:POSTROUTING 回路的包,所有从内部机器C的22端口返回的包转发到B机器上的eth1网卡上
同上:
*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服务,现在可以测试一下。
每个人都应是守望者,守望我们的心智,我们的理想,以防它在生活中不知不觉地坠落、被操控和被自己遗忘。。。