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 サーバの動作確認手順は以下の通りです。
- クライアントデバイス(例: スマートフォンやコンピュータ)で VPN 接続を設定します。一般的には、L2TP/IPsec として設定し、サーバのパブリック IP アドレスまたはドメイン名、事前共有キーを入力します。
- クライアントデバイスで VPN 接続を開始します。接続が成功すると、VPN サーバへのトンネルが確立されます。
- VPN 接続が確立された後、クライアントデバイスのネットワーク設定を確認して、トンネル内の IP アドレスが割り当てられていることを確認します。通常、192.168.42.0/24 の範囲内から IP アドレスが割り当てられます。
- クライアントデバイスから VPN サーバのプライベート IP アドレスに ping コマンドを実行して、VPN 接続が正常に機能しているかどうかを確認します。例えば、以下のコマンドを使用します:
ping 192.168.42.1
VPN サーバへの ping 応答があれば、接続が正常に機能しています。
- 必要に応じて、クライアントデバイスからインターネット上の他のホストに対しても ping コマンドを実行して、トンネル内の通信が正常に行われているかどうかを確認します。
これらの手順に従って VPN サーバを構築し、クライアントデバイスからの接続と通信を確認することができます。