Raspberry Pi 上で StrongSwan  L2TP/IPsec を使用して VPN サーバを構築する手順と、その後の動作確認手順を示します。

手順1: 必要なパッケージのインストール

sudo apt update

sudo apt install strongswan xl2tpd


手順2: 設定ファイルの編集


sudo nano /etc/ipsec.conf


以下の内容を追加します


config setup

    charondebug="ike 2, knl 2, cfg 2"


conn %default

    keyexchange=ikev1

    authby=secret


conn L2TP-PSK

    ike=aes256-sha1-modp2048!

    phase2=esp

    keyexchange=ikev1

    authby=secret

    type=transport

    left=%any

    leftprotoport=17/1701

    right=%any

    rightprotoport=17/%any

    dpdaction=clear

    dpddelay=300s

    dpdtimeout=300s

    dpdretry=5

    auto=add


次に、以下のコマンドを実行して設定ファイルを保存します:


sudo nano /etc/ipsec.secrets


以下の内容を追加します:


%any %any : PSK "your_pre_shared_key"


your_pre_shared_key の部分には自分で設定した事前共有キーを入力してください。

手順3: xl2tpd の設定ファイルを編集します。


sudo nano /etc/xl2tpd/xl2tpd.conf


以下の内容に変更します:


[global]

port = 1701


[lns default]

ip range = 192.168.42.100-192.168.42.200

local ip = 192.168.42.1

require chap = yes

refuse pap = yes

require authentication = yes

name = RaspberryPiVPN

ppp debug = yes

pppoptfile = /etc/ppp/options.xl2tpd

length bit = yes


次に、以下のコマンドを実行して設定ファイルを保存します


sudo nano /etc/ppp/options.xl2tpd


以下の内容を追加します:


ipcp-accept-local

ipcp-accept-remote

ms-dns 8.8.8.8

ms-dns 8.8.4.4

auth

crtscts

idle 1800

mtu 1410

mru 1410

nodefaultroute

debug

lock

proxyarp

connect-delay 5000

name l2tpd


手順4: サービスを再起動します。


sudo systemctl restart strongswan

sudo systemctl restart xl2tpd


手順5: ファイアウォールの設定を変更します。


sudo iptables -t nat -A POSTROUTING -s 192.168.42.0/24 -o eth0 -j MASQUERADE

sudo ipt


VPN サーバの動作確認手順は以下の通りです。

  1. クライアントデバイス(例スマートフォンやコンピュータ)で VPN 接続を設定します。一般的には、L2TP/IPsec として設定し、サーバのパブリック IP アドレスまたはドメイン名、事前共有キーを入力します。
  2. クライアントデバイスで VPN 接続を開始します。接続が成功すると、VPN サーバへのトンネルが確立されます。
  3. VPN 接続が確立された後、クライアントデバイスのネットワーク設定を確認して、トンネル内の IP アドレスが割り当てられていることを確認します。通常、192.168.42.0/24 の範囲内から IP アドレスが割り当てられます。
  4. クライアントデバイスから VPN サーバのプライベート IP アドレスに ping コマンドを実行して、VPN 接続が正常に機能しているかどうかを確認します。例えば、以下のコマンドを使用します:


ping 192.168.42.1


VPN サーバへの ping 応答があれば、接続が正常に機能しています。

  1. 必要に応じて、クライアントデバイスからインターネット上の他のホストに対しても ping コマンドを実行して、トンネル内の通信が正常に行われているかどうかを確認します。

これらの手順に従って VPN サーバを構築し、クライアントデバイスからの接続と通信を確認することができます。