平常Iptables 端口轉發linux
結構圖: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