ラズベリーパイでVPNサーバー構成してみよう(L2tp/IPsec編)
スポンサーリンク
ラズベリーパイでVPNサーバーを構成してみようシリーズ第一回目。今回は、L2tp/IPsecのプロトコルを利用してVPNサーバーを構成する方法をご紹介します。
スポンサーリンク
今回ご紹介する方法は、SoftEther VPN Serverというソフトを利用します。設定に苦労する場面があるかと思いますが、焦らずゆっくり設定していきましょう。
※※ 本編を始める前にお持ちのルーターがL2tp/IPsecで接続対応なルーターであるかご確認ください。
ネットワークの設定
ラズベリーパイ本体のネットワーク設定を行います。
まず、仮想ブリッジを作成するためbridge-utilsを以下のコマンドを実行し、インストールします。
sudo apt-get install bridge-utils
次に以下のコマンドで/etc/network/interfacesを編集します。
sudo nano /etc/network/interfaces
以下のコードを追記します。
# SoftEther VPN auto br0 iface br0 inet static address 192.168.〇.〇 #ラズパイのIPアドレス netmask 255.255.255.0 gateway 192.168.〇.〇 #ゲートウェイIPアドレス #eth0をブリッジする bridge_ports eth0 #その他 allow-hotplug wlan0 iface wlan0 inet manual wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf iface default inet dhcp
ラズパイのIPアドレス確認は、”sudo ifconfig”を実行。更に”route”を実行するとゲートウェイIPアドレスを確認することができます。
SoftEther VPN Serverのインストール
SoftEther VPN Serverは、筑波大学の研究プロジェクトで開発された高機能で安全性に優れたVPN サーバーソフトウェアです。
wgetコマンドでパッケージをダウンロードします。
ダウンロードするデータは、コンポーネントが”SoftEther VPN Serve”、プラットフォーム”Linux”、CPUは、ARM EABI(32bit)を選択します。
wget http://jp.softether-download.com/files/softether/v4.21-9613-beta-2016.04.24-tree/Linux/SoftEther_VPN_Server/32bit_-_ARM_EABI/softether-vpnserver-v4.21-9613-beta-2016.04.24-linux-arm_eabi-32bit.tar.gz
ダウンロードしたファイルを、tarコマンドを利用し解凍します。
tar zxvf softether-vpnserver-v4.21-9613-beta-2016.04.24-linux-arm_eabi-32bit.tar.gz
次にvpnserver ディレクトリに移動して、makeコマンドを実行します。
cd vpnserver make
同意要求などありますが、すべて1を選択します。
最後に、vpnserverディレクトリを/usr/local/に移動させ
cd .. sudo mv vpnserver /usr/local/
以下のようにパーミッションを変更したら、SoftEther VPN Serverのインストールは完了です。
cd /usr/local/vpnserver chmod 600 * chmod 700 vpncmd chmod 700 vpnserver
SoftEther VPN Serverの自動起動スクリプト作成
ラズベリーパイを起動して自動的にSoftEther VPN Serverが立ち上がるように設定します。
以下のコマンドでスクリプトを作成します。
sudo nano /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 4.08 RTM # Description: Start vpnserver daemon SoftEther VPN 4.08 Server ### END INIT INFO DAEMON=/usr/local/vpnserver/vpnserver LOCK=/var/lock/vpnserver . /lib/lsb/init-functions test -x $DAEMON || exit 0 case "$1" in start) sleep 3 log_daemon_msg "Starting SoftEther VPN 4.08 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 4.08 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
スクリプト作成後、起動スクリプトに実行権限を与え、自動起動登録(insserv)を行います。
sudo chmod +x /etc/init.d/vpnserver sudo insserv vpnserver
最後にラズベリーパイを再起動して完了です。
sudo reboot
SoftEther VPN Server Managerのインストールと設定
SoftEther VPN Server ManagerからSoftEther VPN Serverの設定を行います。
以下のリンクから自身のお使いの環境に合った VPN Server Managerをダウンロードします。
VPN Server Manager
http://www.softether-download.com/ja.aspx?product=softether
インストール後、VPN Server Managerを立ち上げ、New Settingをクリックします。
Setting Name、Host Name(ラズパイのIPアドレス)、ポート番号は443のままに設定し、OKをクリックします。
すると、管理者用のパスワード作成要求がありますので、パスワード設定を行います。
セッティング画面が現れるので、Remote Access VPN Serverにチェックを入れ、Nextをクリックします。
仮想HUBの名前を設定します。
VPNサーバーにアクセスするために必要なアドレス、ダイナミックDNSを設定します。
ダイナミックDNSを変更したい場合は、右側のChange the DNS Hostnameに変更したいアドレス名を記載し、Set to Above Hostnameをクリックします。
設定が完了したら、Exitをクリックします。
IPsec/L2TPサーバ機能の設定は、Enable L2TP Server Functionにチェックし、IPsec common SettingにてIpsec共有キーを設定します。
次にSoftEther VPN Serverのユーザー作成を行います。ホーム画面の仮想HUBの欄をダブるクリックし、仮想HUBマネージメントを表示させます。
Manage Usersをクリックし、Newから新規ユーザーを作成します。
ユーザの新規作成画面でUser Name、Full Name(任意)、Note(任意)の入力し、パスワード認証のパスワードを入力し、OKをクリックします。
Manage Usersに新規ユーザーが追加されていれば完了です。
Manage Usersを閉じ、ホーム画面に戻り、左下にあるLocal Bridge Settingをクリックします。
Virtual HUBからVPNを選択し、Bridge with New Tap Deviceを選択します。
そして、New Tap Device Nameに”wlan”と入力し、Change Local Bridgeをクリックし、Local Bridge Settingを閉じます。
最後にラズベリーパイのターミナルで以下のコマンドを実行し、interfacesにeth0とtap_vlanがあることを確認します。
brctl show br0
ルータのポート設定
ルーターのポート設定を行います。前述しましたが、ルーターは、L2tp/IPsecで接続対応のものが必須です。
ブラウザから「192.168.11.1」にアクセスし、以下のポートを開放します。
(開放方法はルーターの取り扱い説明書を参照ください)
TCPポート: 443
TCPポート: 992
UDPポート: 500(L2TP over IPsec用)
UDPポート: 4500(L2TP over IPsec用)
最後に、ラズベリーパイターミナルから以下のコマンドを実行し、設定したTCPポートが反映されているか確認しましょう。LISTENと表示されていれば成功です。
sudo netstat -nlt
VPN接続設定
お疲れ様です。これで一通りラズベリーパイでVPNサーバー構成が完了しました。
最後に端末側からVPN接続を行ってみましょう。
Macでの設定
設定>ネットワークにて新規ネットワークを作成します。
インターフェイスは、VPN、VPNタイプはL2tp over IPsecを選択します。
サーバーアドレス : ダイナミックDNSで設定したサーバアドレス(○○.softether.net)
アカウント名 : Manage Usersで作成したユーザ名とハブ名(ユーザ名@ハブ名)
認証設定では、パスワードにManage Usersで作成したユーザーのパスワード。共有シークレットにIPsec共有キーを入力します。
そして、詳細をクリックし、オプションの”すべてのトラフィックをVPN接続経由で送信”にチェックを入れます。
あとは、接続ボタンを押して設定完了です。
iPhoneでの設定
設定>一般>VPN>VPN構成を追加から設定します。
タイプはL2TPを選択し、以下のように設定します。
参考記事 :
以下の記事を参考にさせていただきました。詳細な情報大変感謝です。
うしこlog様
http://usicolog.nomaki.jp/engineering/raspberryPi/raspberryPi_VPN.html
スポンサーリンク