1. 程式人生 > >在阿里雲CentOS 7.4 簡單快速搭建Strongswan IKEv2型別 教程模板

在阿里雲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 這位博主的貢獻!