在阿里雲CentOS 7.4 簡單快速搭建Strongswan IKEv2型別 教程模板
1、安裝strongswan
yum install strongswan
2、建立證書
strongswan pki --gen --outform pem > ca.key.pem strongswan pki --self --in ca.key.pem --dn "C=CN, O=one, CN=one t CA" --ca --lifetime 3650 --outform pem > ca.cert.pem strongswan pki --gen --outform pem > server.key.pem strongswan pki --pub --in server.key.pem --outform pem > server.pub.pem strongswan pki --pub --in server.key.pem | strongswan pki --issue --lifetime 3601 --cacert ca.cert.pem --cakey ca.key.pem --dn "C=CN, O=one, CN=one t CA" --san="你的伺服器公網ip" --flag serverAuth --flag ikeIntermediate --outform pem > server.cert.pem
3、安裝證書
cp -r ca.key.pem /etc/strongswan/ipsec.d/private/
cp -r ca.cert.pem /etc/strongswan/ipsec.d/cacerts/
cp -r server.cert.pem /etc/strongswan/ipsec.d/certs/
cp -r server.pub.pem /etc/strongswan/ipsec.d/certs/
cp -r server.key.pem /etc/strongswan/ipsec.d/private/
4、配置VPN
vi /etc/strongswan/ipsec.conf
config setup uniqueids=never #允許多個客戶端使用同一個證書 conn %default #定義連線項, 命名為 %default 所有連線都會繼承它 compress = yes #是否啟用壓縮, yes 表示如果支援壓縮會啟用. dpdaction = hold #當意外斷開後嘗試的操作, hold, 保持並重連直到超時. dpddelay = 30s #意外斷開後嘗試重連時長 dpdtimeout = 60s #意外斷開後超時時長, 只對 IKEv1 起作用 inactivity = 300s #閒置時長,超過後斷開連線. leftdns = 8.8.8.8,8.8.4.4 #指定服務端與客戶端的dns, 多個用","分隔 rightdns = 8.8.8.8,8.8.4.4 conn IKEv2-BASE leftca = "C=CN, O=one, CN=one t CA" #伺服器端根證書DN名稱,與 --dn 內容一致 leftsendcert = always #是否傳送伺服器證書到客戶端 rightsendcert = never #客戶端不傳送證書 conn IKEv2-EAP keyexchange=ikev2 #預設的金鑰交換演算法, ike 為自動, 優先使用 IKEv2 left=%any #伺服器端標識,%any表示任意 leftid= 你的伺服器公網ip #伺服器端ID標識,你的伺服器公網ip leftsubnet=0.0.0.0/0 #伺服器端虛擬ip, 0.0.0.0/0表示通配. leftcert = server.cert.pem #伺服器端證書 leftauth=pubkey #伺服器校驗方式,使用證書 right=%any #客戶端標識,%any表示任意 rightsourceip = 10.1.0.0/16 #客戶端IP地址分配範圍 rightauth=eap-mschapv2 #eap-md5#客戶端校驗方式#KEv2 EAP(Username/Password) also=IKEv2-BASE eap_identity = %any #指定客戶端eap id rekey = no #不自動重置金鑰 fragmentation = yes #開啟IKE 訊息分片 auto = add #當服務啟動時, 應該如何處理這個連線項. add 新增到連線表中.
5、修改 dns 配置
vi /etc/strongswan/strongswan.d/charon.conf
charon { duplicheck.enable = no #同時連線多個裝置,把冗餘檢查關閉. # windows 公用 dns dns1 = 8.8.8.8 dns2 = 8.8.4.4 #以下是日誌輸出, 生產環境請關閉. filelog { /var/log/charon.log { # add a timestamp prefix time_format = %b %e %T # prepend connection name, simplifies grepping ike_name = yes # overwrite existing files append = no # increase default loglevel for all daemon subsystems default = 1 # flush each line to disk flush_line = yes } } }
vi /etc/strongswan/strongswan.conf
charon {
load_modular = yes
duplicheck.enable = no
compress = yes
plugins {
include strongswan.d/charon/*.conf
}
dns1 = 8.8.8.8
nbns1 =8.8.4.4
}
include strongswan.d/*.conf
6、配置使用者和密碼
vi /etc/strongswan/ipsec.secrets
# ipsec.secrets - strongSwan IPsec secrets file
#使用證書驗證時的伺服器端私鑰
#格式 : RSA <private key file> [ <passphrase> | %prompt ]
: RSA server.key.pem
#使用預設加密金鑰, 越長越好
#格式 [ <id selectors> ] : PSK <secret>
oneTT : PSK "oneTT"
#EAP 方式, 格式同 psk 相同 (使用者名稱/密碼 例:oneAA/oneTT)
oneAA : EAP "oneTT"
#XAUTH 方式, 只適用於 IKEv1
#格式 [ <servername> ] <username> : XAUTH "<password>"
oneAA : XAUTH "oneTT"
7、開啟核心轉發
vi /etc/sysctl.conf
net.ipv4.ip_forward = 1
net.ipv6.conf.all.forwarding=1
8、配置防火
vi /etc/firewalld/zones/public.xml
<?xml version="1.0" encoding="utf-8"?>
<zone>
<short>Public</short>
<description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description>
<interface name="eth0"/>
<service name="ssh"/>
<service name="dhcpv6-client"/>
<service name="ipsec"/>
<port protocol="tcp" port="1723"/>
<port protocol="tcp" port="47"/>
<port protocol="tcp" port="1701"/>
<port protocol="tcp" port="22"/>
<masquerade/>
<rule family="ipv4">
<source address="10.1.0.0/16"/>
<masquerade/>
</rule>
<rule family="ipv4">
<source address="10.1.0.0/16"/>
<forward-port to-port="4500" protocol="udp" port="4500"/>
</rule>
<rule family="ipv4">
<source address="10.1.0.0/16"/>
<forward-port to-port="500" protocol="udp" port="500"/>
</rule>
<masquerade/>
</zone>
9、開啟 防火牆/strongswan 以及 自動啟動
systemctl enable firewalld
systemctl start firewalld
systemctl enable strongswan
systemctl start strongswan
10、阿里雲開放埠
登入阿里雲管理控制檯- -> 雲伺服器ECS- ->網路和安全- ->安全組- ->新增安全組規則:
授權策略:允許
協議型別:自定義UDP
埠範圍:500/4500
授權型別:地址段訪問
授權物件:0.0.0.0/0
優先順序:100
描述:隨便填
注意!新增完成後必須 重啟 伺服器
11、證書安裝及連線,用ftp工具(例:FileZilla)下載 ca.key.pem 證書到本地。
ios證書安裝:將之前建立的 ca.cert.pem 用 ftp 匯出 , 寫郵件以附件的方式發到郵箱, 在ios Safari瀏覽器登入郵箱, 下載附件, 安裝證書。
步驟:設定-->VPN- ->新增VPN配置
例:型別:IKEv2
描述:隨便填
伺服器:你的伺服器公網ip
遠端ID:你的伺服器公網ip
本地ID:不用填,空著
選擇- ->使用者名稱,填寫-使用者名稱-密碼 - ->點選--完成
回到VPN 介面- ->勾選你在描述裡填寫的內容顯示- ->點選--連線
mac證書安裝:雙擊 ca.cert.pem -->選中你的證書-->顯示簡介-->信任-->始終信任(然後會彈框填寫mac登入密碼)。
步驟:系統編好設定- ->網路- ->左側點選+號- ->介面:VPN - ->VPN型別:IKEv2 - ->服務名稱:隨便填- ->點選 建立。
接下來填寫賬戶密碼地址 例:伺服器地址:你的伺服器公網ip
遠端ID:你的伺服器公網ip
本地ID:不用填,空著
點選- -鑑定設定- ->選擇- ->使用者名稱,填寫-使用者名稱-密碼 - ->點選--連線
android:去strongswan官網下載安裝 例:https://download.strongswan.org/Android/strongSwan-1.9.6.apk
或:https://download.csdn.net/download/qq_29364417/10482582
或者編譯原始碼:https://github.com/strongswan/strongswan/tree/master/src/frontends/android
步驟:右上角選項-->CA證書-->再選擇右上角選項-->匯入證書-->找到ca.cert.pem點選即可。
回到主介面-->新增VPN配置-->例:伺服器地址:你的伺服器公網ip
VPN型別:IKEv2 EAP(使用者名稱/密碼),填寫使用者名稱和密碼
CA證書:選擇剛才匯入的ca.cert.pem證書
點選右上角--儲存
回到主介面--點選配置連線即可
window 本人沒有測試,具體可以參照:https://blog.csdn.net/wengzilai/article/details/78707134
至此,以上是本人根據網上教程所理解並實際運用的例子!
最後非常感謝 https://blog.csdn.net/wengzilai/article/details/78707134 這位博主的貢獻!