2020年4月1日 星期三

RouterOS-架設VPN-IKEV2, 用iOS連接


之前有搭建L2TP, 比較簡單, 也可以參考一下
     RouterOS-架設VPN-l2tp/Ipsec, 用iOS連接

趁最後一天有時間, 也來搭建一下IKEV2 VPN

Ref :
https://wiki.mikrotik.com/wiki/Manual:IP/IPsec#Road_Warrior_setup_using_IKEv2_with_RSA_authentication
https://www.mobile01.com/topicdetail.php?f=110&t=5394893

public ip : 2.2.2.2
ddns : test.routeros.net

憑證有3組,分別是: ca / server / client

新增憑證ca:
    Sign CA的時候, ca-crl-host=test.routeros.net
    這裡要填上你的public IP : 2.2.2.2
    或是你的DNS : test.routeros.net

    Winbox > system > certificate

    /certificate
    add common-name=ikev2_ca name=ikev2_ca days-valid=3650 trusted=yes
    sign ikev2_ca ca-crl-host=2.2.2.2

新增憑證server:
    新增cert. 的時候, common-name, subject-alt-name這兩欄要填你的public IP 或是DNS
        IP : common-name=2.2.2.2 subject-alt-name=IP:2.2.2.2
        DNS : common-name=test.routeros.net subject-alt-name=DNS:test.routeros.net
    key-usage只打勾tls-server
然後Sign的時候, 選ikev_ca來Sing server cert.

    Winbox > system > certificate

    /certificate
    add common-name=2.2.2.2 subject-alt-name=IP:2.2.2.2 key-usage=tls-server name=ikev2_server days-valid=3650 trusted=yes
    sign ikev2_server ca=ikev2_ca

新增憑證client:
    key-usage只打勾tls-client
然後Sign的時候, 選ikev_ca來Sing server cert.

    Winbox > system > certificate

    /certificate
    add common-name=ikev2_client key-usage=tls-client name=ikev2_client days-valid=3650 trusted=yes
    sign ikev2_client ca=ikev2_ca

新增ipsec profile/proposal
    profile是Phase 1的加解密, proposal是Phase 2
iOS支援的選項可以參考 : https://wiki.mikrotik.com/wiki/Manual:IP/IPsec#iOS_client_configuration

Winbox > ip > ipsec
    /ip ipsec profile
    add name=ikev2

    /ip ipsec proposal
    add name=ikev2 pfs-group=none

新增Mode config
    這是來分配ip給client端的
    /ip pool
    add name=ike2-pool ranges=192.168.77.2-192.168.77.254

    /ip ipsec mode-config
    add address-pool=ike2-pool address-prefix-length=32 name=ikev2-conf

新增policy group, policy給peer用
    /ip ipsec policy group
    add name=ikev2-policies

    /ip ipsec policy
    add dst-address=192.168.77.0/24 group=ikev2-policies proposal=ikev2 \
        src-address=0.0.0.0/0 template=yes
新增 peer
    /ip ipsec peer
    add exchange-mode=ike2 name=ikev2 passive=yes profile=ikev2

新增identity
    這邊無法跟官網一樣, 需要多指定remote-certificate
    /ip ipsec identity
    add auth-method=digital-signature certificate=ikev2_server generate-policy=\
        port-strict mode-config=ikev2-conf peer=ikev2 policy-template-group=\
        ikev2-policies remote-certificate=ikev2_client

    這裡有點怪, 我第一次設定, 這邊都會連線失敗
強制改為用match-by=certificate, 去用remote-certificate=ikev2_client就可以連上
但是我整個重新作一次, 又不需要這樣了.....
    /ip ipsec identity
    add auth-method=digital-signature certificate=ikev2_server generate-policy=\
        port-strict match-by=certificate mode-config=ikev2-conf peer=ikev2 policy-template-group=\
        ikev2-policies remote-certificate=ikev2_client

MSS轉換
 因為我對MSS不瞭, 所以都是上網爬文, 囫圇吞棗, 選做法1.
做法1. Ref: https://www.mobile01.com/topicdetail.php?f=110&t=5394893
    到Winbox > ip > firewall > mangle, 新增兩條rule, 並且拉到最上面
    /ip firewall mangle
    add action=change-mss chain=forward comment="ikev2-change MSS" new-mss=\
            clamp-to-pmtu passthrough=yes protocol=tcp tcp-flags=syn
    add action=change-mss chain=output comment="ikev2-change MSS" new-mss=\
            clamp-to-pmtu passthrough=yes protocol=tcp tcp-flags=syn

    做法2.
    Ref: https://forum.mikrotik.com/viewtopic.php?t=152831
Ref: https://forum.mikrotik.com/viewtopic.php?f=2&t=153825
        /ip firewall mangle
        add action=change-mss chain=forward comment="ikev2-change MSS" disabled=yes \
            ipsec-policy=in,ipsec new-mss=1382 passthrough=yes protocol=tcp \
            tcp-flags=syn

到這邊, RouterOS端算是都設定完成了
接下來換手機端(iOS)

先匯出ikev2_ca, ikev2_client
    匯出client憑證的時候, 可以選擇要不要加密, 我是follow官網做加密, 密碼範例:1234567890
    /certificate
    export-certificate ikev2_ca type=pem
export-certificate ikev2_client export-passphrase=1234567890 type=pkcs12

Winbox > Files
可以看到剛剛匯出的兩個檔案, 選擇兩個檔案後, 按Download, 可以存到電腦上
    將憑證用email寄給手機收的到的email

iOS匯入憑證
   1. 手機收信, 儲存附件ikev2_ca.crt, ikev2_client.p12到iphone上
   2. iphone > 檔案 > 找剛剛的ikev2_ca.crt, 按一下
   3. iphone > 設定 > 描述檔 > ikev2_ca > 安裝 > 安裝
   4. iphone > 設定 > 一般 > 關於本機 > 憑證信任設定 > ikev2_ca > 啟用
   5. iphone > 檔案 > 找剛剛的ikev2_client.p12, 按一下
   6. iphone > 設定 > 描述檔 > ikev2_client.p12> 安裝 > 輸入匯出時設定的密碼 > 安裝


iOS設定VPN連線
   設定 > 一般 > VPN > 加入VPN設定
   類型 : ikev2
   描述 : 自行取個名字, e.g. HomeVPN
   伺服器 : 輸入IP or 網址 (在建立憑證的時候, 看你是打DNS網址, 還是IP)
   遠端識別碼 : 輸入IP or 網址 (在建立憑證的時候, 看你是打DNS網址, 還是IP)
   本機識別碼 :
   使用者認證 : 無
   使用憑證 : 是, 啟用
   憑證 : ikev2_client

打完收工

沒有留言:

張貼留言

在Raspberry Pi 2B上跑Docker, AdguardHome, Bitwarden, RPi-Monitor

在Raspberry Pi 2B上跑Docker, AdguardHome, Bitwarden, RPi-Monitor 請先參考前置準備工作 安裝Raspberry Pi 2B 來跑docker 前置準備 安全性考量, 移除預設pi帳號 Ref :     h...