Linux 服務器--Iptables 端口轉發


日常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

-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服務,現在可以測試一下。

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM