Raspberry Pi 2 Model B で L2TP/IPSec VPNサーバを構築してみた(その2)
本記事は、Raspberry Pi 3に対応しています。
Raspberry Pi 2 Model B で L2TP/IPSec VPNサーバを構築してみた(その1)ではブリッジデバイスへのIPアドレスの付与、Raspbian jessieへのSoftEtherインストールを実施しました。
その2では、引き続きSoftEther VPN Serverの設定を進めていきます。
SoftEther VPN Serverの管理ソフトウェアをダウンロードする
「Raspberry Pi 2 MODEL BでVPNサーバを構築」と思い立った時点で、「Linuxで設定する!」という考えになっていると思いますが、ここからは、なんと、WindowsOSから管理プログラムを起動して設定します。
SoftEtherのダウンロードサイトから、「SoftEther VPN Server Manager for Windows」をダウンロードします。
http://www.softether-download.com/ja.aspx
ダウンロードする際の選択肢は、画像を参考にしてください。
SoftEther VPN サーバー管理マネージャを起動する
ダウンロードしたファイルを解凍して、vpnsmgr.exeを起動します。SoftEther VPN サーバー管理マネージャが起動します。
新しい接続設定をする
新しい接続設定 をクリックします。
接続設定名 と ホスト名(ラズベリーパイのIPアドレス)を入力してOKをクリックします。
SoftEther VPN Serverに接続する
登録した名前とIPアドレスを選択して 接続 をクリックします。
簡単セットアップを実施する
Wizardが起動してきますので、以下のように進めます。
リモートアクセスVPNサーバーを選択して次へをクリックします。
はい をクリックします。
任意の名前ですので、VPNとでも入力してOKを押します。
ダイナミックDNS名を好きに決めて、閉じるをクリックします。
L2TPサーバー機能を有効にする (L2TP over IPsec)を選択します。
先ほど入力したVPNを選択します。
事前共有鍵(パスワードみたいなもの)を決めて、OKをクリックします。
VPN Azureは使わないので、無効にする を選択してOKをクリックします。
ユーザを作成するをクリックします。
VPN接続時のユーザ名とパスワードを決めます。
確認画面でOKをクリックします。
作成したユーザが表示されますので、閉じる をクリックします。
ローカルブリッジの設定で、eth0とかbr0を選択して 閉じる をクリックします。(この設定は後で消すので何でもいいです。)
初期設定が終わって、メニュー画面が出てきました。
これから仮設定だったところ等を本番の設定に変更していきます。
本番設定
仮想HUBを作り直す
画面左下らへんの、ローカルブリッジ設定をクリックします。
先ほど設定したVPNを選択し、ローカルブリッジの削除をクリックします。(今までのは仮設定だったため)
「Linuxの残念な仕様を回避し、VPN接続しながらラズベリーパイにネットワーク接続するために、ブリッジデバイスに仮想HUBをブリッジする」ということをしたいので、以下のように設定して、ローカルブリッジを追加 をクリックします。
- 仮想HUB名:VPN
- 作成する種類:新しいtapデバイスとのブリッジ接続
- 新しいtapデバイス名:vlan
仮想HUB名:VPN ブリッジ先:vlan 状態:動作中 と表示されればOKですので、閉じる をクリックします。
確認画面が出たらOKをクリックします。
確認画面が出たらOKをクリックします。
仮想HUBの管理画面を開く
管理画面に戻って、作り直した仮想HUB「VPN」をクリックして、「仮想HUBの管理」をクリックします。
管理画面がでてきました。以後、ユーザ追加や設定変更はこの画面から実施する感じです。
仮想HUBのプロパティ
仮想HUBの管理画面の、左上から4個下の、「仮想HUBのプロパティ」を開くとこんな設定メニューが出ます。
メッセージの設定をクリックするとメッセージを設定できます。(任意です)
ログ保存設定
仮想HUBの管理 画面の中央少し右の「ログ保存設定」をクリックします。
期間や、保存したいログの設定を実施します。
セキュリティ強化(暗号化)設定
管理マネージャまで戻って、中央少し右の、「暗号化と通信関係の設定」をクリックします。
デフォルトの暗号化アルゴリズムは弱いので、暗号化アルゴリズム名を「DHE-RSA-AES256-SHA」に変更しておくと良いです。
OpenVPN/MS-SSTP設定
管理マネージャまで戻って、右下の、「OpenVPSN/MS-SSTP設定」をクリックします。
使わないので、チェックを外してOKを押します。
以上でWindowsOS側での設定は完了です。
ここからRaspberryPi(Raspbian jessie)側での操作に戻ります。
起動スクリプトを作り直す
先ほど、WindowsOSで、SoftEtherの管理ツールを使って、tapデバイスを使った仮想HUBを作りましたので、vpnserverの起動スクリプト内に、tapデバイスをブリッジデバイスbr0にブリッジする設定を追記します。
(これをしないと、VPN接続時しながらRaspberryPi上のリソースに接続できない)
chkconfigからの削除
編集する前に、chkconfig から解除しておきます。
1 |
# chkconfig --del vpnserver |
/etc/init.d/vpnserverを編集
/etc/init.d/vpnserverを以下のように編集します。重要なのは、vpn_start()内の、tap= の部分ですが、今まで記事のとおりに設定している場合は、コピペでイイです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# vi /etc/init.d/vpnserver #!/bin/sh ### BEGIN INIT INFO # Provides: vpnserver # Required-Start: $local_fs $network # Required-Stop: $local_fs $network # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Description: SoftEther VPN Server ### END INIT INFO DAEMON=/usr/local/vpnserver/vpnserver LOCK=/var/lock/vpnserver vpn_start()
{
${DAEMON}
start
sleep
2
tap=`/sbin/ifconfig
-a|
awk
'$1 ~ /^tap/ {print $1}'`
tap=`/sbin/ifconfig
-a|
awk
'$1 ~ /^tap/ {print $1}'`
brctl
addif
br0
${tap} } vpn_stop()
{
${DAEMON}
stop } test
-x
${DAEMON}
||
exit
0 case
"$1"
in start)
vpn_start
touch
${LOCK}
;; stop)
vpn_stop
rm
${LOCK}
;; restart)
vpn_stop
sleep
3
vpn_start
;; *)
echo
"Usage: $0 {start|stop|restart}"
exit
1 esac exit
0 |
chkconfigに再登録
再度chkconfig に登録して、有効化します。
1 2 3 |
# chkconfig --add vpnserver # chkconfig vpnserver on |
OSを再起動
動作確認をするために、OSを再起動します。
1 |
# reboot |
tapデバイスtap_vlanの確認
softetherが起動したら、tap_vlanもbr0にブリッジされます。(起動スクリプトにそのように仕込んでいます)
br0に、eth0とtap_vlanがブリッジされているので、結果として、vpn接続時のtap_vlanのネットワークからeth0のネットワークに接続できるようになっているはずです。
ifconfig -a コマンドで確認すると、tap_vlanが存在することが分かります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
root@raspberry:~# ifconfig -a br0 Link
encap:イーサネット
ハードウェアアドレス
00:xx:xx:xx:xx:xx inetアドレス:192.168.0.20
ブロードキャスト:192.168.0.255
マスク:255.255.255.0 UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500
メトリック:1 RXパケット:3665
エラー:0
損失:0
オーバラン:0
フレーム:0 TXパケット:3691
エラー:0
損失:0
オーバラン:0
キャリア:0 衝突(Collisions):0
TXキュー長:0 RXバイト:483577
(472.2
KiB)
TXバイト:596296
(582.3
KiB) eth0 Link
encap:イーサネット
ハードウェアアドレス
00:xx:xx:xx:xx:xx inetアドレス:169.254.xx.xx
ブロードキャスト:169.254.255.255
マスク:255.255.0.0 UP BROADCAST RUNNING MULTICAST MTU:1500
メトリック:1 RXパケット:3665
エラー:0
損失:0
オーバラン:0
フレーム:0 TXパケット:3800
エラー:0
損失:0
オーバラン:0
キャリア:0 衝突(Collisions):0
TXキュー長:1000 RXバイト:483577
(472.2
KiB)
TXバイト:659163
(643.7
KiB) tap_vlan Link
encap:イーサネット
ハードウェアアドレス
00:xx:xx:xx:xx:xx UP BROADCAST RUNNING MULTICAST MTU:1500
メトリック:1 RXパケット:0
エラー:0
損失:0
オーバラン:0
フレーム:0 TXパケット:18
エラー:0
損失:0
オーバラン:0
キャリア:0 衝突(Collisions):0
TXキュー長:500 RXバイト:0
(0.0
B)
TXバイト:3380
(3.3
KiB) |
長かったですが、これでL2TP/IPSecのVPNサーバの構築が完了です。
早速スマホ等を使って接続テストをしてみたいところですが、まだルータのポート開放設定が残っていますので、実施しましょう。
ルーターの設定
L2TP/IPSec を使用する場合は、500(UDP) と4500(UDP) の2つのポートを開放する必要があります。
この2つのポートに対する通信をRaspberryPiのIPアドレスにポートフォワーディングするように設定をルーター側で実施します。
ルーターによって設定方法が違うので、ここでは解説できませんが、ルーターにログインすれば、フィーリングで設定できると思います。
「ポートマッピング」や、「ポートフォワーディング」等のキーワードの設定を探して、設定しましょう。
設定後は、ルーターも再起動しておきましょう。
さて、これで設定が全て終わりました。
スマホからの接続テスト
最後はスマホ等からの接続テストを実施します。
Raspberry Pi 2 Model B で L2TP/IPSec VPNサーバを構築してみた(その3)の記事に続きます!
ディスカッション
コメント一覧
まだ、コメントがありません