2015年11月2日月曜日

WRT54GS の Tomato ファームウェアで OpenVPN サーバを使う

リンクシス WRT54GS にインストールしている Shibby 版の Tomato ファームウェアにある OpenVPN サーバを使用してみました。先日ダイナミック DNS サービスの FreeDNS でサブドメインを取得しているため、これでインターネット側からアクセスすることができるようになりました。

何度か試験的に OpenVPN サーバを使用してきましたが、ちゃんとしたメモ(備忘録)を作っていなかったようで、過去の記事を探しても Tomato ファームウェアでの OpenVPN の設定方法が見当たらなかったため、今回記事にしておきました。


証明書の作成

まず最初に OpenVPN で使用する証明を作成します。これは過去の記事で FreeBSD 上で OpenVPN の設定を行った時と同じ内容のため割愛します。詳しくは当該記事をの「証明書の作成」の項目を参照してください。
FreeBSD の自宅サーバへ OpenVPN をインストール(ルーティング方式)
http://near-unix.blogspot.jp/2014/08/freebsd-openvpn.html

Tomato ファームウェアへの設定

Tomato ファームウェアの設定画面の中の [VPN Tunneling] - [OpenVPN Server] を選択して設定します。

[Basic]
一般的によく使用されるルーティング方式の場合 "Interface Type""TUN" を選択します。そしてプロトコルも "UDP" を選択します。 TCP の方が通信の信頼性は向上するようですが、通信速度が低下するそうです。今まで UDP で問題となったことはありません。そして "Port" は、標準の "1194" で問題はありませんが、念の為他のポートへ番号を変えておきました。

そして大切な部分としては "VPN subnet" の設定の部分で、ここでは VPN のサーバ側でも VPN のクライアント側でも使用されていないサブネットを使用する必要があります。我が家の場合、基本部分は 192.168.24.0 のサブネットを使用しており、独自に PPPoE 接続で外部のインターネットへ接続している WRT54GS のサブネットは 192.168.32.0 を使用しています。この二つのサブネットを避けて設定する必要があり、今回は VPN 用のサブネットに 192.168.33.0 を使用することとしました。

OpenVPN 設定 - Basic

[Advanced]
ここは基本的に初期値のままで OK の部分ですが、VPN の使用方法によっては設定を変更しなければなりません。

現在は、単純に WRT54GS の LAN の中にアクセスするだけで、インターネットへのアクセスはクライアント側の WAN ポートから行う設定となっています。これを VPN サーバ側の WRT54GS の WAN からインターネットへ接続するときには、 "Direct clients to redirect internet traffic" の部分を有効にしなければなりません。さらにインターネット上の名前の解決(ドメイン名から IP アドレスの取得)をするための DNS サーバにクライアント側で指定している DNS サーバを使用するのか、それとも VPN サーバ側で設定している DNS サーバを使用するのかを "Respond to DNS" で指定することができます。

OpenVPN 設定 - Advanced

[Keys]
ここでは最初に作った証明書を入力します。内容をまるごとコピー&ペーストで大丈夫でした。
Certificate Authority -- ca.crt
Server Certificate -- server.crt
Server Key -- server.key
Diffie Hellman parameters -- dh1024.pem
OpenVPN 設定 - Keys

[Status]
ここでは OpenVPN の接続状況を表示してくれます。ただしリアルタイムで表示するわけではないようで、OpenVPN で接続した直後に確認しても表示してくれないこともあります。しばらく時間をおいてアクセスしてください。

OpenVPN 設定 - Status

動作確認

以上で設定終了です。各ページの左下にある [Start Now] のボタンをクリックして OpenVPN をスタートさせてください。なお [Start Now] をクリックしても [Stop Now] にならず、元の [Start Now] になってしまう場合には、どこか設定の間違えがありますので見直してください。

そしてクライアント側から OpenVPN サーバ側へアクセスを行なって接続できれば成功です。

0 件のコメント:

コメントを投稿