時代は変遷するもの… anchor.png

2017年からLibreSwanによるIPsec/L2TP VPNを構築しておりましたが、LibreSwanも、L2TPを噛ます方式ももうオワコンらしいです。

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

Page Top

IKEv2ってなんぞ anchor.png

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

Page Top

設定 anchor.png

Page Top

StrongSwanのインストール anchor.png

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

net-vpn/strongswan eap farp

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

# emerge strongswan
Page Top

StrongSwanの設定 anchor.png

Page Top

サーバ証明書の設定 anchor.png

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のユーザしかアクセスできないようにしておいてくださいね…

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

Page Top

IPフィルタの設定 anchor.png

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*1を受信するためのポートをオープンします。

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

Page Top

接続してみよう anchor.png

Page Top

サーバ群起動 anchor.png

# /etc/init.d/ipsec start
Page Top

Android側設定 anchor.png

端末設定→その他→VPN→VPNの追加 選択

名前
適当につけて
タイプ
IKEv2/IPSec mschapv2
サーバアドレス
IPsecサーバのIPアドレス若しくはホスト名
ユーザ名
/etc/ipsec.secretsに設定したユーザ名
パスワード
/etc/ipsec.secretsに設定したパスワード

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

で接続をタップ。

Page Top

Windows側設定 anchor.png

Windows10は『設定』→ネットワークとインターネット→VPN→VPN接続を追加する

VPNプロバイダ
Windowsビルドイン
名前
適当につけて
サーバアドレス
IPsecサーバのIPアドレス若しくはホスト名
サインイン情報の種類
ユーザ名とパスワード
ユーザ名(オプション)
/etc/ipsec.secretsに設定したユーザ名
パスワード(オプション)
/etc/ipsec.secretsに設定したパスワード

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


*1 Encapseled Security Payload

Front page   Freeze Diff Backup Copy Rename ReloadPrint View   New Page Page list Search Recent changes   Help   RSS of recent changes (RSS 1.0) RSS of recent changes (RSS 2.0) RSS of recent changes (RSS Atom) Powered by xpWiki
Counter: 5396, today: 1, yesterday: 1
Princeps date: 2022-02-20 (Sun) 21:15:31
Last-modified: 2022-02-20 (Sun) 21:15:31 (JST) (961d) by maruo
ページ内検索

ログイン

ユーザー名:


パスワード:





パスワード紛失

メインメニュー

サブメニュー
自宅鯖計画

Gentoo Linuxな生活

玄箱HGにGentoo格闘記

航空ショーへ行こう

モータースポーツな世界

奥深き写真の世界への誘い

我思う ゆえに我あり



携帯用QRコード