Linux 服務器--Iptables 端口轉發

平常Iptables 端口轉發linux

 

  1. 需求:公司是局域網絡,經過一個外網ip,進行互聯網的訪問。公司的雲平臺服務器在公網中,虛擬化平臺中有一臺內部服務器,用於公司某部門的使用,上面運行www 服務,ssh端口,方便平時上傳網站文件。現領導要求將此內部服務器交接給此部門,並只讓其在公司內部訪問,外面的公網是拒絕訪問的。

 

結構圖:vim

 

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表中):ssh

*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端口上tcp

注: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服務,如今能夠測試一下。spa

相關文章
相關標籤/搜索