背景
近日在調試阿里雲的vpn網關應用同IDC服務器上strongswan進行雙向互通 。
由於IDC沒有硬件出口網關設備,配置iptables網關代替。
主要步驟:
一、雲上ecs已經可以正常ping通並連接上IDC內網服務器。此處參靠阿里雲上配置即可輕松完成,不在贅述。
二、IDC內網通過iptables策略聯通ecs的方式
思路:
我在隧道模式下使用IPSEC.
如何制定一個iptables規則,它只匹配通過IPSEC隧道到達的數據包(即在IPSEC解密它們之后 – 當它們到達時和解密之前不是IPSEC數據包).
關鍵是要有一個只能通過IPSEC訪問並且世界其他地方無法訪問的端口
需要使用策略模塊,並指定ipsec策略以匹配此流量.例如,以下規則允許所有入站流量到tcp端口1580.不要忘記規則順序在iptables中很重要,並且您可能還需要允許返回半數據包,具體取決於您當前的OUTPUT限制.
iptables -A INPUT -m policy --pol ipsec --dir in -p tcp --dport 1580 -j ACCEPT
我的具體配置如下:
iptables -I INPUT -s SIP -p esp -j ACCEPT iptables -I INPUT -s SIP -p udp --dport 500 -j ACCEPT iptables -I INPUT -s SIP -p udp --dport 4500 -j ACCEPT iptables -I INPUT -m policy --pol ipsec --dir in -j ACCEPT iptables -I FORWARD -m policy --pol ipsec --dir in -j ACCEPT iptables -t nat -I POSTROUTING -o eth0 -s LIP -m policy --dir out --pol ipsec -j ACCEPT SIP為雲vpn網關的地址; LIP為IDC內網的地址;
在網關的服務器上增加以上的iptabels策略后,IDC和ecs的內網可以雙向互通。
感謝內容
https://lauri.xn--vsandi-pxa.com/2017/04/strongswan-config-examples.html
http://www.voidcn.com/article/p-xntcuooj-btx.html