ページへ戻る

− Links

 印刷 

Gentoo Linuxな生活​/IKEv2 VPNで悩む のソース :: Nest Of Hawk

xpwiki:Gentoo Linuxな生活/IKEv2 VPNで悩むのソース

  
*時代は変遷するもの… [#x50a1efe]
2017年からLibreSwanによるIPsec/L2TP VPNを構築しておりましたが、LibreSwanも、L2TPを噛ます方式ももうオワコンらしいです。

今やStrongSwanを使って、IKEv2によるIPsec VPNてのが流行らしいです。Android12もIKEv2が標準らしいので、そちらに以降してみます。

*IKEv2ってなんぞ [#gab2583d]
CiscoとMicrosoftで規定した、IPsecの鍵交換方式らしい。ネットワークが移動してもトンネルを維持できるので、モバイル機器に向いている、らしい。また、Microsoftが規定しているということは、Windowsとも相性がいい、らしい。


*設定 [#c71e3626]
**StrongSwanのインストール [#c4cd5791]

package.useファイルに以下の設定を追記。

 net-vpn/strongswan eap farp

で、パッケージをインストールします。

 # emerge strongswan

**StrongSwanの設定 [#fba2ebcc]

***サーバ証明書の設定 [#h9bfa9b1]
StrongSwanにはサーバ証明書が必要です。サーバ証明書には、
- サーバ認証局証明書
- サーバ公開鍵
- サーバ秘密鍵

これらは、ドメインを公開しているLet's encryptの証明書が使えるので、それをStorongSwanでも使えるように設定します。

 # cd /etc/ipsec.d/cacerts
 # ln -sfn /etc/letsencrypt/live/ドメイン名/chain.pem
 # cd /etc/ipsec.d/certs
 # ln -sfn /etc/letsencrypt/live/ドメイン名/cert.pem
 # cd /etc/ipsec.d/private
 # ln -sfn /etc/letsencrypt/live/ドメイン名/privkey.pem

また、ipsec.d以下はStrongSwanのユーザ/グループ名でしかアクセスできないように権限設定注意してくださいね。秘密鍵だだもれは恐ろしいので…

今回は、MSCHAPv2という、ユーザー/パスワードを入力する方式で行きます。
 # vi /etc/ipsec.conf


 # ipsec.conf - strongSwan IPsec configuration file
 
 # basic configuration
 
 config setup
        # strictcrlpolicy=yes
        # uniqueids = no
 
 # Add connections here.
 
 conn %default
      keyexchange=ikev2
      ike=aes128-sha256-ecp256,aes256-sha384-ecp384,aes128-sha256-modp2048,aes128-sha1-modp2048,aes256-sha384-modp4096,aes256-sha256-modp4096,aes256-sha1-modp4096,aes128-sha256-modp1536,aes128-sha1-modp1536,aes256-sha384-modp2048,aes256-sha256-modp2048,aes256-sha1-modp2048,aes128-sha256-modp1024,aes128-sha1-modp1024,aes256-sha384-modp1536,aes256-sha256-modp1536,aes256-sha1-modp1536,aes256-sha384-modp1024,aes256-sha256-modp1024,aes256-sha1-modp1024!
      esp=aes128gcm16-ecp256,aes256gcm16-ecp384,aes128-sha256-ecp256,aes256-sha384-ecp384,aes128-sha256-modp2048,aes128-sha1-modp2048,aes256-sha384-modp4096,aes256-sha256-modp4096,aes256-sha1-modp4096,aes128-sha256-modp1536,aes128-sha1-modp1536,aes256-sha384-modp2048,aes256-sha256-modp2048,aes256-sha1-modp2048,aes128-sha256-modp1024,aes128-sha1-modp1024,aes256-sha384-modp1536,aes256-sha256-modp1536,aes256-sha1-modp1536,aes256-sha384-modp1024,aes256-sha256-modp1024,aes256-sha1-modp1024,aes128gcm16,aes256gcm16,aes128-sha256,aes128-sha1,aes256-sha384,aes256-sha256,aes256-sha1!
      dpdaction=clear
      dpddelay=300s
      rekey=no
 
 conn IPSec-IKEv2
      keyexchange=ikev2
      left=%any
      leftsubnet=0.0.0.0/0
      leftid=Let's encryptで届け出ているドメイン名
      leftcert=cert.pem
      leftsendcert=always
      right=%any
      rightid=%any
      rightdns=DNSサーバアドレス
      rightsourceip=端末に割り振るIPアドレス
      auto=add
 
 conn IPSec-IKEv2-EAP
      also="IPSec-IKEv2"
      rightauth=eap-mschapv2
      eap_identity=%any
      auto=add
最後に、パスフレーズを設定します。

 # vi /etc/ipsec.secrets

 # ipsec.secrets - strongSwan IPsec secrets file
 
 : RSA privkey.pem
 
 ユーザ名 : EAP "パスワード"

このipsec.secretsもStrongSwanのユーザしかアクセスできないようにしておいてくださいね…

さて…サーバの設定は終了

*IPフィルタの設定 [#r1c0ae3d]

 iptables -t filter -A INPUT  -p udp -m udp --dport 500 -j ACCEPT
 iptables -t filter -A INPUT  -p udp -m udp --dport 4500 -j ACCEPT
 iptables -t filter -A OUTPUT -p udp -m udp --sport 4500 -j ACCEPT
 iptables -t filter -A OUTPUT -p udp -m udp --sport 500 -j ACCEPT

IKE鍵交換プロトコルと、IPsecのESP((Encapseled Security Payload))を受信するためのポートをオープンします。

更に、NAPTなブロードバンドルータに、UDP 4500 とUDP 500をサーバにNAT変換するアドレス変換テーブルを設定します。

*接続してみよう [#ddafd69c]
**サーバ群起動 [#b694e07a]
 # /etc/init.d/ipsec start

**Android側設定 [#q9b2cffb]
端末設定→その他→VPN→VPNの追加 選択
:名前|適当につけて
:タイプ|IKEv2/IPSec mschapv2
:サーバアドレス|IPsecサーバのIPアドレス若しくはホスト名
:ユーザ名|/etc/ipsec.secretsに設定したユーザ名
:パスワード|/etc/ipsec.secretsに設定したパスワード

んで、保存。接続するときは

で接続をタップ。

**Windows側設定 [#v85d9007]
Windows10は『設定』→ネットワークとインターネット→VPN→VPN接続を追加する
:VPNプロバイダ|Windowsビルドイン
:名前|適当につけて
:サーバアドレス|IPsecサーバのIPアドレス若しくはホスト名
:サインイン情報の種類|ユーザ名とパスワード
:ユーザ名(オプション)|/etc/ipsec.secretsに設定したユーザ名
:パスワード(オプション)|/etc/ipsec.secretsに設定したパスワード

でVPN接続が作られます。タスクバーの通知アイコンのネットワークを開くと、VPN接続のアイコンができております。クリックして接続を押すと、設定がうまくできてれば、接続確立します!

  

  • Gentoo Linuxな生活/IKEv2 VPNで悩む のバックアップソース(No. All)
    • 現: 2022-02-20 (日) 21:15:31 maruo[3]