LoginSignup
1
0

【VPN Server】Proxmox LXC Container を使って IKEv2 接続したい

Posted at

はじめに

ふと自宅で VPN サーバーを建てようと思った時に、SoftEther VPN を使ったら Android の標準機能だけで VPN 接続ができなかった。どうやら Android 12 から L2TP/IPsec 接続が作成できなくなったらしい。
そこで、調べたところ IKEv2 接続できるサーバーを建てればいいらしいということに行きついたので、やった工程のメモを記す。

自分の環境では Proxmox + LXC コンテナだったので、少し設定が必要だった。その設定も書いてみる。

環境

  • Proxmox Virtual Environment 7.4-17
  • ubuntu-22.04-standard_22.04-1_amd64
  • Android 14

使用するサーバー構築プログラム

ほとんどこの手順に沿ってコマンド実行するだけ。

LXC コンテナ環境で構築した際問題が起きた話

LXC コンテナでこの構築コマンドを実行すると、
Failed to start Internet Key Exchange (IKE) Protocol Daemon for IPsec.
というエラーが生じた。これと同じ症例の人が Issue で質問していて、そこに解決策があったのでそれを含めた構築手順を書く。

構築開始

Container 作成

いつも通りコンテナを作成するが、ここで一つ設定しなければいけない。
画像のとおり、Unprivileged container を切る必要がある。
後はご自由にコンテナ作成してください。
image.png

コンテナができたら、起動する前に以下の設定をコンテナのファイルに追記する。
ここでは /etc/pve/lxc/101.conf ファイルを例として挙げているが、コンテナの番号に応じてファイル名を変えましょう。

/etc/pve/lxc/101.conf
lxc.cgroup.devices.allow: c 108:0 rwm
lxc.mount.entry: /dev/ppp dev/ppp none bind,create=file

サーバー構築プログラムを実行する

GitHub にも書いてある通り、このコマンドを実行することで VPN サーバーの構築が完了する。
ここで後で使う証明書ファイル (vpnuser.p12) が発行される。
また、Server IP も出力されるのでメモしておくこと。

wget https://get.vpnsetup.net -O vpn.sh && sudo sh vpn.sh

ポート開放

ここで構築されるプログラムでは UDP 500UDP 4500 を使用するので、開ける必要がある。
今回は、Proxmox の管理画面から Firewall の設定と、ルーターのポートマッピング設定をすることでポート開放を行った。環境によってポート開放野やり方は違うと思うので割愛。

おわり

ここまでくればすでに VPN サーバーとしての機能を果たすことができる。次に Android 12 以降のデバイスで、組み込みの VPN を使用して接続できるかを検証する。

Android 端末で検証

手順はほぼ GitHub のガイド通り。

証明書 (.p12) をインストールする

  1. サーバー構築プログラムを実行する」で生成された .p12 ファイルを Android 端末に安全な方法で転送する。
  2. 設定アプリを開く。
  3. 「証明書」と検索し、「VPN とアプリユーザー証明書」を開く。
    image.png
  4. 先ほど転送したファイルを選択し、好きな名前を付けて端末にインストールする。

VPN の設定をする

  1. 「VPN」と検索し「VPN」を開く。
  2. 右下の + ボタンから「VPN プロファイルの編集」を行う。
    • 名前: プロファイル名 (自由)
    • タイプ: IKEv2/IPSec RSA
    • サーバーアドレス: Server IP (メモしたやつ)
    • IPSec ID: empty などの適当な文字列 (バグで何か入力しないと保存できない)
    • IPSec ユーザー証明書: vpnclient (インストールした証明書名)
    • IPSec CA 証明書: vpnclient (インストールした証明書名)
    • IPSec サーバー証明書: (サーバーから受信)
      image.png
  3. 保存すれば接続できるようになる!

おわり

これで Android の標準機能で VPN が接続できるサーバーを建てられた!
他の端末の手順も GitHub に書いてあるので Android 以外でもぜひお試しあれ~

参考文献

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0