Cur: 2022-02-20 (Sun) 21:15:31 maruo source
Line 1: Line 1:
 +*時代は変遷するもの… [#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接続のアイコンができております。クリックして接続を押すと、設定がうまくできてれば、接続確立します!
  

  • Backup diff of Gentoo Linuxな生活/IKEv2 VPNで悩む(No. All)
    • Cur: 2022-02-20 (Sun) 21:15:31 maruo

Front page   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: 592, today: 4, yesterday: 6
ページ内検索

ログイン

ユーザー名:


パスワード:





パスワード紛失

メインメニュー

サブメニュー
自宅鯖計画

Gentoo Linuxな生活

玄箱HGにGentoo格闘記

航空ショーへ行こう

モータースポーツな世界

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

我思う ゆえに我あり



携帯用QRコード