個人用のホームページを作成しました。今後は、そちらの方に整理していきたいと思いますので、よろしくお願いします。
VPNサーバ構築
ラズパイにSoftEtherを利用してVPNサーバを構築する方法です。
1. ラズパイの用意
最初にRASPBIANをダウンロードしてMicroSDにコピーして、必要な設定を実施しておきます。最低限、タイムゾーンを日本標準時(Asia/Tokyo)にしておくのが良いでしょう。
2. SoftEtherのダウンロード
SoftEtherダウンロードセンターから、ファイルをダウンロードします。
項目 | 選択 |
---|---|
ダウンロードするソフトウェア | SoftEther VPN (Freeware) |
コンポーネントを選択 | SoftEther VPN Server |
プラットフォームを選択 | Linux |
CPUを選択 | ARM EABI (32bit) |
ダウンロード可能なファイル
からSoftEther VPN Server (Ver 4.21, Build 9613, beta)を選択してダウンロードします。
*企業環境で利用される際には、RTM 版ビルドを使用されることをお勧めします。*とされていますが、直近のRTM版ビルドの直後にSoftEther VPN Server Manager for Mac OS X
がサポートされていることから、このビルドを選択しています。
3. SoftEtherの展開とインストール
ダウンロードしたファイルを展開してmake
します。
tar zxvf softether-vpnserver-v4.21-9613-beta-2016.04.24-linux-arm_eabi-32bit.tar.gz
cd vpnserver
make
make
の最後で実行されるvpncmd
での確認結果が、全てPass
していることを確認しておきます。
VPN Tools>check
Check command - Check whether SoftEther VPN Operation is Possible
---------------------------------------------------
SoftEther VPN Operation Environment Check Tool
Copyright (c) SoftEther VPN Project.
All Rights Reserved.
If this operation environment check tool is run on a system and that system passes, it is most likely that SoftEther VPN software can operate on that system. This check may take a while. Please wait...
Checking 'Kernel System'...
Pass
Checking 'Memory Operation System'...
Pass
Checking 'ANSI / Unicode string processing system'...
Pass
Checking 'File system'...
Pass
Checking 'Thread processing system'...
Pass
Checking 'Network system'...
Pass
All checks passed. It is most likely that SoftEther VPN Server / Bridge can operate normally on this system.
The command completed successfully.
4. vpnserverのインストール
出来上がったvpnserver
を/usr/local
ディレクトリにコピーします。
rsync -av vpnserver /usr/local
ファイルのパミッションを整えておきます。
cd /usr/local
chmod 700 vpnserver
cd vpnserver
find . -type d -exec chmod 755 {} ¥;
find . -type f -exec chmod 644 {} ¥;
chmod 700 vpncmd vpnserver
5. vpnserverの起動設定
/usr/lib/systemd/system
ディレクトリにvpnserver.service
ファイルを作成します。
[Unit]
Description=SoftEther VPN Server
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/vpnserver/vpnserver start
ExecStop=/usr/local/vpnserver/vpnserver stop
KillMode=process
Restart=on-failure
[Install]
WantedBy=multi-user.target
作成したファイルを使用してvpnserverを起動・登録します。
systemctl start vpnserver.service
systemctl enable vpnserver.service
vpnserverの起動状況を確認します。
systemctl status vpnserver.service
ここで Active: active (running)
となっていることを確認します。
# systemctl status vpnserver.service
● vpnserver.service - SoftEther VPN Server
Loaded: loaded (/etc/systemd/system/vpnserver.service; enabled)
Active: active (running) since Thr 2017-06-15 13:42:54 JST; 53min ago
6. VPN Server Managerのインストール
vpnserverの設定には、VPN Server Manager
を利用します。ここで、MacまたはWindowsにVPN Server Manager
をダウンロードしてインストールします。
SoftEtherダウンロードセンターから、ファイルをダウンロードします。
項目 | 選択 |
---|---|
ダウンロードするソフトウェア | SoftEther VPN (Freeware) |
コンポーネントを選択 | SoftEther VPN Server Manager |
プラットフォームを選択 | Mac OS X |
CPUを選択 | Intel (x86 and x64) |
Macの場合、ダウンロード可能なファイルからSoftEther VPN Server Manager for Mac OS X (Ver 4.21, Build 9613, beta)を選択してダウンロードします。
7. vpnserverの設定
インストールしたVPN Server Manager
を使用して、vpnserverを設定します。
7.1 新しい接続設定の作成
項目名 | 入力値 |
---|---|
接続設定名 | xxxxxxxx |
ホスト名 | 192.168.xxx.xxx |
管理パスワード | xxxxxxxx |
接続設定名
を任意に入力、ホスト名
に、インストールするラズパイのeth0
に設定する固定IPアドレスを入力、管理パスワード
を任意に入力してOK
ボタンをクリックする。
7.2 管理接続用パスワードの設定
VPN Server Manager
のメイン画面から、作成した接続設定名を選択して接続
ボタンをクリックする。
表示された管理接続用パスワード
設定画面では、パスワードが空のままでOK
ボタンをクリックする。
次に表示される管理者パスワードの設定
画面で、パスワードを入力してOK
ボタンをクリックする。
項目名 | 入力値 |
---|---|
新しいパスワード | xxxxxxxx |
確認入力 | xxxxxxxx |
パスワードを変更しました。
画面でOK
ボタンをクリックする。
7.3 SoftEther VPN Server / Bridge 簡易セットアップ
SoftEther VPN Server / Bridge 簡易セットアップ
画面で、リモートアクセス VPN サーバー
にチェックを入れて次へ
をクリックする。
続行すると、この VPN Server または VPN Bridge の現在の設定内容は、簡易セットアップで指定した内容に初期化されます。よろしいですか?
の確認画面ではい
をクリックする。
7.4 仮想HUB名の設定
仮想HUB名
の設定でHUB名を入力してOK
ボタンをクリックする。
項目名 | 入力値 |
---|---|
仮想HUB名 | VPN |
7.5 ダイナミックDNS機能
ダイナミックDNS機能
の設定画面に表示されているダイナミックDNSホスト名
を控えて、閉じる
ボタンをクリックする。
項目名 | 入力値 |
---|---|
ダイナミックDNSホスト名 | vpnxxxxxxxxx.softether.net |
7.6 IPsec / L2TP / EtherIP / L2TPv3 サーバー機能の設定
IPsec / L2TP / EtherIP / L2TPv3 サーバー機能の設定
画面で、L2TP サーバー機能を有効にする (L2TP over IPsec)
にチェックを入れて、IPsec 事前共有鍵
にシークレットを入力してからOK
ボタンをクリックする。
項目名 | 入力値 |
---|---|
IPsec 事前共有鍵 | xxxxxxxx |
7.7 VPN Azure サービスの設定
VPN Azure サービスの設定
画面では、VPN Azure を無効にする
にチェックを入れて、OK
ボタンをクリックする。
7.8 ユーザーの作成
簡易セットアップの実行
画面で1. ユーザーを作成する
をクリックする。
ユーザーのプロパティ
画面で、必要な項目を入力してOK
ボタンをクリックする。
項目名 | 入力値 |
---|---|
ユーザー名 | xxxxxxxx |
パスワード | xxxxxxxx |
パスワードの確認入力 | xxxxxxxx |
ユーザーの作成確認
画面でOK
ボタンをクリックする。
ユーザーの管理
画面で、閉じる
ボタンをクリックする。
7.9 ローカルブリッジの設定
上記の内容でvpnserver
を使用可能ではあるが、vpnserverの稼働しているサーバにssh
したりして、直接使用するためにはローカルブリッジ
を設定する必要があるため、ここで設定をする。
3. ローカルブリッジの設定
をクリックする。
新しいローカルブリッジの定義
で 仮想HUB
を選択して、 新しい tap デバイスとのブリッジ接続
にチェックを入れ、LAN カード
でeth0
を選択する。新しい tap デバイス名
にvlan
を入力して、ローカルブリッジを追加
ボタンをクリックする。
項目名 | 入力値 |
---|---|
仮想 HUB | VPN |
新しい tap デバイスとのブリッジ接続 | <チェック> |
LAN カード | eth0 |
新しい tap デバイス名 | vlan |
ローカルブリッジ接続の定義を追加しました。
の画面でOK
ボタンをクリックする。
以上で、設定が終了したのでVPN Server Manager
を閉じる。
ifconfig
コマンドでtapデバイス
が作成されていることを確認する。
ifconfig
この例では、tap_vlan
が表示されている。
8. 固定 IP アドレスの設定
ラズパイで固定 IP アドレスを設定するには、/etc/dhcpcd.conf
ファイルに以下のような内容を追加する。
interface eth0
static ip_address=192.168.xxx.xxx/24
static routers=192.168.xxx.xxx
static domain_name_servers=192.168.xxx.xxx
ただし、今回はローカルブリッジ
設定をするため、上記の設定がある場合にはコメントアウトしておく。
9. bridge-utils のインストール
ブリッジを使用するために、bridge-utils
をインストールする。
apt install -y bridge-utils
10. ブリッジ接続の設定
ブリッジを構成するため、/etc/network/interfaces
に以下の設定を追加する。
auto eth0
iface eth0 inet manual # eth0 には IP アドレスを設定しない
# SoftEther VPN
auto br0
iface br0 inet static
address 192.168.xxx.xxx # 固定 IP アドレスを設定
netmask 255.255.255.0
network 192.168.xxx.0
broadcast 192.168.xxx.255
gateway 192.168.xxx.xxx # 使用するルータの IP アドレスを設定
bridge_ports eth0
bridge_maxwait 10
ここで、設定を反映させるためシステムを再起動する。
11. ブリッジ接続の確認
再起動したシステムで、ブリッジ接続を確認する。
ifconfig
デバイスとして br0
、eth0
、tap_vlan
が表示されて、br0
に固定IPアドレスが設定されていることを確認する。tap_vlan
は、169.254.188.223
のようなアドレスが設定されている。
正しくブリッジが構成されて入れば、以下のような内容が表示される。
# brctl show br0
bridge name bridge id STP enabled interfaces
br0 8000.00ac10acd354 no eth0
tap_vlan
12. ブリッジ用の起動ファイル
ローカルブリッジを有効にするため、起動ファイルを修正します。
[Unit]
Description=SoftEther VPN Server
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/vpnserver/vpnserver_start
ExecStop=/usr/local/vpnserver/vpnserver stop
KillMode=process
Restart=on-failure
[Install]
WantedBy=multi-user.target
ここでは、/usr/local/vpnserver/vpnserver
をstart
するのではなく、/usr/local/vpnserver/vpnserver_start
スクリプトを実行しています。
この/usr/local/vpnserver/vpnserver_start
スクリプトは、以下の内容となります。
#!/bin/bash
/usr/local/vpnserver/vpnserver start
tap=$(/sbin/ifconfig -a| awk '$1 ~ /^tap/ {print $1}')
/sbin/brctl addif br0 $tap
ここで設定ファイルを修正していますから、変更を反映してvpnserver
を再起動します。
systemctl daemon-reload
systemctl restart vpnserver.service
13. ルータの設定
ルータで NAT している場合には、グローバルIPアドレスに届いたパケットを VPN サーバに転送します。
タイプ | ポート |
---|---|
UDP | 500 |
UDP | 4500 |
ルータが1段構成の場合、グローバル IP を VPN サーバに転送します。ルータが 2段構成の場合には、1段目でグローバル IP を 2段目のルータに転送し、2段目のルータから VPN サーバに転送します。
詳細は、VPN Server 側での L2TP/IPsec 機能の有効化方法を参照して下さい。
以上で設定を終了です。VPNライフを満喫して行きましょう!