今回はRaspberry PI 2にSoftEtherを入れてVPNサーバーにしてみようと思います。
VPNをご存知ない方は以下のホームページが参考になります。
5分で絶対に分かるVPN
http://www.atmarkit.co.jp/ait/articles/0204/27/news003.html
VPNサーバーがあると、外出先から自宅のPCにアクセスして、NASに格納した動画を見たりすることなども可能。他にも街中のフリーWiFiを安全に使うためにVPNを使う人なども少なくありません。しかし、私自身、こういった用途にあまり必要性は感じておらず、せっかく、ラズパイを買ったので何かサーバーを立ち上げてみたかったのが第一の理由(^^;
また、以前、出張で中国に行った際などに、検閲が厳しくてまともにネットサーフィンができなかったのですが、自宅にVPNサーバーがあれば、これが回避できるので、いつになるか分かりませんが、次の出張のために用意しておくというのが第二の理由です。
それでは前置きが長くなりましたが、設定に入ります。以降の作業は全てWindowsPCからRaspberry PI 2にSSHでログインして行いました。
bridge-utilsのインストール
apt-getでインストールするだけ。
$ sudo apt-get install bridge-utils
ネットワーク設定の変更
仮想ブリッジbr0にネットワークアダプタeth0をブリッジさせるよう、/etc/nework/interfacesを以下のように修正しました。
auto lo iface lo inet loopback auto eth0 allow-hotplug eth0 iface eth0 inet manual # SoftEther VPN auto br0 iface br0 inet static address 192.168.0.xx (ラズパイの固定IP) network 192.168.0.0 netmask 255.255.255.0 broadcast 192.168.0.255 gateway 192.168.0.1 dns-nameservers 192.168.0.1 # eh0 bridge setting bridge_port eth0 auto wlan0 allow-hotplug wlan0 iface wlan0 inet manual wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf auto wlan1 allow-hotplug wlan1 iface wlan1 inet manual wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
SoftEther VPN Serverのインストール
SoftEther公式サイト内の「SoftEther ダウンロードセンター」に行き、SoftEther VPN Serverをダウンロードしますが、以下のように、プラットフォームやCPUを設定して、最新ビルドのURLを確認します。
私が落とした時の最新版はVer.4.15, build 9546, betaでした。
$ cd $ wget http://jp.softether-download.com/files/softether/v4.15-9546-beta-2015.04.05-tree/Linux/SoftEther_VPN_Server/32bit_-_ARM_EABI/softether-vpnserver-v4.15-9546-beta-2015.04.05-linux-arm_eabi-32bit.tar.gz $ tar zxvf softether-vpnserver-v4.15-9546-beta-2015.04.05-linux-arm_eabi-32bit.tar.gz $ cd vpnserver $ make
makeをしようとすると、ライセンス許諾書についての質問が何度か行われますので、それぞれ1を選んで先に進めます。
「The preparation of SoftEther VPN Server is completed !」と出ていればOKです。
続いて、makeしたvpnserverディレクトリを丸ごと、/usr/local/に移動後、ファイルの属性を変更します。
$ cd.. $ sudo mv vpnserver /usr/local/ $ cd /usr/local/vpnserver $ chmod 600 * $ chmod 700 vpncmd $ chmod 700 vpnserver
インストールは完了ですが、今後、Raspberry PI 2を起動した際に、自動的にSoftEther VPNが起動するようにスクリプトを作成します。
/etc/init.d/vpserverというファイルをエディタを使って作成し、以下の内容を書きます。
$ sudo 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 # Short-Description: SoftEther VPN RTM # Description: Start vpnserver daemon SoftEther VPN Server ### END INIT INFO DAEMON=/usr/local/vpnserver/vpnserver LOCK=/var/lock/vpnserver # tun/tapモジュールのロード sudo modprobe tun . /lib/lsb/init-functions test -x $DAEMON || exit 0 case "$1" in start) sleep 3 log_daemon_msg "Starting SoftEther VPN Server" "vpnserver" $DAEMON start >/dev/null 2>&1 touch $LOCK log_end_msg 0 sleep 3 # SoftEther VPNで追加した仮想tapデバイス名を調べる tap=`/sbin/ifconfig -a| awk '$1 ~ /^tap/ {print $1}'` /sbin/brctl addif br0 $tap ;; stop) log_daemon_msg "Stopping SoftEther VPN Server" "vpnserver" $DAEMON stop >/dev/null 2>&1 rm $LOCK log_end_msg 0 sleep 2 ;; restart) $DAEMON stop sleep 2 $DAEMON start sleep 5 # SoftEther VPNで追加した仮想tapデバイス名を調べる tap=`/sbin/ifconfig -a| awk '$1 ~ /^tap/ {print $1}'` /sbin/brctl addif br0 $tap ;; status) if [ -e $LOCK ] then echo "vpnserver is running." else echo "vpnserver is not running." fi ;; *) echo "Usage: $0 {start|stop|restart|status}" exit 1 esac exit 0
最後に、このスクリプトに実行権限を与えて登録。 その後、ラズベリーパイを再起動します。
sudo chmod +x /etc/init.d/vpnserver sudo update-rc.d vpnserver defaults insserv vpnserver service vpnserver start sudo reboot
一応、vpnserverが動作しているかを確認しておきます。
$ service vpnserver status vpnserver is running.
VPNサーバーのセットアップ
ここではWindows用ソフトのSoftEther VPN Server Managerを使って、サーバーの設定を行います。
まずは先ほどと同様、公式ページからソフトをダウンロードします。
ダウンロードしソフトを実行すると、まずはセットアップウィザードのウィンドウが表示されるので、次へをクリック。
インストールするソフトウェアの選択画面になりますが、ここではSoftEther VPN サーバー管理マネージャだけを選んで次へをクリック。
その後、使用許諾契約書の確認やインストール先の確認などがありますので、問題ないことを確認して先に進めばインストールが完了します。
続いて、管理マネージャーを起動し、「新しい接続設定」をクリック。
接続設定名に適当な名称、ホスト名にはRaspberry PiのIPアドレスを指定して、「OK」をクリック。
「接続」ボタンを押すと、「管理者パスワードの設定」ウィンドウが出るので、パスワードを入力して「OK」をクリック。
「Bridge管理セットアップ」のウィンドウが表示されるので、リモートアクセスVPNサーバーにチェックを入れて「次へ」をクリック。
「簡易セットアップ」のウィンドウが表示されるので、適当な名称を入れて、「OK」をクリック。
「ダイナミックDNS機能」のウインドウが表示されるので、好きなサーバーの名前を記入し、「上記のDNSホスト名に変更する」をクリックし、その後、「閉じる」をクリック。デフォルトのホスト名でも構わない方は特に入力しなくても構いませんが、個人的には覚えやすいホスト名を付けたほうが良いと思います。
「IPsec/L2TP/EtherIP/L2TPv3設定」ウィンドウが開きますので、一番下のIPsec共通設定の欄に好きな文字列を記入して「OK」をクリック。
そろそろ疲れてきました、、「VPN Azure」ウィンドウが開きますが、無料とはいえ、今回は使いませんので、無効にするにチェックを入れて「OK」をクリック。
「簡易セットアップの実行」ウィンドウが表示されますので、「ユーザーを作成する」をクリック。
「ユーザーの新規作成」ウィンドウが表示されますので、ユーザー名とパスワードを設定して「OK」をクリック。
「ユーザーの管理」ウィンドウが表示され、今登録したユーザー情報がリストに入ってればOKです。「閉じる」をクリック。
以下のウィンドウが表示されたら、左下にある「ローカルブリッジ設定」をクリック。
「ローカルブリッジ設定」ウィンドウが表示されるので、新しいtapデバイスとのブリッジ接続にチェックを入れて、新しいtapデバイス名として、vlanと記入したら「ローカルブリッジを追加」をクリック。
すると、以下のようにリストに登録します。これで設定完了です。「閉じる」をクリック。
ルーター設定
今度はルーターのポート解放の設定です。我が家はADSLなので、今回はADSLモデムの設定を変更しました。
機種により設定方法が異なるので、詳細は割愛しますが、以下の4つのポートを開放してください。
TCPポート: 443 TCPポート: 992 UDPポート: 500 UDPポート: 4500
LAN側IPアドレスにはRapberry PiのIPアドレスを指定します。
以上で設定は全て完了です。
android端末のVPN設定
続いて、外出先のスマホから自宅のVPNサーバーに接続できるよう、スマホ側の設定を行います。
やり方は以下のページに詳しく書かれているので、割愛します(^^;
あとは外出先からスマホ側のVPN設定を有効にすればVPN経由でのネットサーフィンが可能になります。
他にも自宅のローカルネットにあるPCにアクセスしたりすることも可能になりますので、色々試してみましょう。
参考にさせていただいたページ
■VPNでiPhoneからラズパイに接続する
http://usicolog.nomaki.jp/engineering/raspberryPi/raspberryPi_VPN.html