*時代は変遷するもの… [#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接続のアイコンができております。クリックして接続を押すと、設定がうまくできてれば、接続確立します!
(This host) = https://femt.ddo.jp