2018年4月4日水曜日

DD-WRTでSoftEther VPNを使ってみた。

iPhoneでVPNで自宅のネットワークに接続するためにDD-WRTでSoftEther VPNを有効化してL2TPで接続してみた。最近の市販ルータはPPTPぐらいには対応してるのが多いけど、せっかくDD-WRTなのでSoftEatherを使ってみた。

使用しているルータはDD-WRT化したWZR-1166DHP。NANDの容量が多いこともあって、公開されているROMでもいろんな機能が付加されている。
ServiceのVPNにはなんとOpenVPNはもちろん、SoftEther VPNの項目まであった。

ただこの項目からSoftEather VPNを有効にしても設定ファイルをコピペしたりしてもうまく動かない…
ということでSSHから手動で設定することに。

まずはSoftEatherの設定を保存するためにAdministration→ManagementでJFFS2を有効化する。

このルーターの場合は結構な容量がつかえるっぽい。

SSHからコマンドを実行したいのでServicesでSecure Shellを有効にしておいた。

SSHでルーターに接続したらとりあえずSoftEather VPNを起動してみる。

vpnserver start
でSoftEather VPNが起動する。

SoftEatherのダウンロードセンターからSoftEher VPN Server Managerをダウンロードしてきて実行する。このツールでサーバーの詳細設定をすることができる。

今回はGUIのvpnsmgr.exeを使用した。

新しい接続設定からルーターのIPアドレスを設定して、接続するとパスワードを設定するように促されるので、設定パスワードを設定し、そのままウイザード形式でVPNの設定を済ませる。このへんは普通のSoftEther VPNの設定と同様に設定できる。
とりあえず今回はL2TPを有効化しておいた。

ウイザードによる設定が完了したら、ローカルブリッジ設定を開く。

ここでは物理的な既存のLANカードとブリッジするのではなくて、新しいtapデバイスを作成した。先程L2TPを設定した仮想ハブにvpnという名前のtapデバイスを作成してローカルブリッジを設定した。

ローカルブリッジを設定したら、サーバーマネージャーを終了してSSHのターミナルに戻るって下記コマンドを実行する。

mkdir /jffs/etc (もしフォルダが存在する場合は不要)
cp /tmp/var/lib/vpn_server.config /jffs/etc


これでSoftEatherの設定ファイルがjffsにコピーされて再起動しても消えなくなる。
後はWebの設定画面からAdministrationのCommandsを開いて、下記のスクリプトをスタートアップに登録する。

#!/bin/sh

ln -s /jffs/etc/vpn_server.config /tmp/var/lib/vpn_server.config
vpnserver start
sleep 5
brctl addif br0 tap_vpn

これをCommandsのところに入力してSave Startupをクリックすればスタートアップスクリプトとして登録される。

あとはルーターを再起動すれば自動的にSoftEther VPNが起動して設定が読み込まれるはず。

最後に外部から接続できるようにNAT/QoSのPort ForwardingからL2TP用に500と4500番(UDP)を開けて完了。
ちなみにiPhoneからの場合は「L2TP-VPNサーバーが応答しませんでした。」というエラーはIPアドレスがちゃんと取得されてない場合も表示されるみたいなのでこのエラーが出た場合はポートがちゃんと開いてるかどうか以外にもブリッジ設定などによってちゃんとIPが取得できる状態になっているかどうかも確認する必要があるみたい…
(自分はこのエラーがでてポートが空いてないと思いこんでいろいろやっていたので)

とりあえずこれでDD-WRT上でL2TPが使えるようになった。L2TP以外の手段でSoftEther VPNに接続する場合はポートを開けておくのも忘れずに。



0 件のコメント:

コメントを投稿

Related Post

USB Type-C対応のSATA変換基板買ってみた

USB3.0からSATAに変換するアダプタとしてJMicronのJMS567のドングルを使っていたんだけれども、光学ドライブが使えないので試しにVIAのVL716搭載の基板を買ってみた。 Type-A→Type-C変換ケーブルもついてきた これでeBayで680円ぐら...