個人用のホームページを作成しました。今後は、そちらの方に整理していきたいと思いますので、よろしくお願いします。
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ライフを満喫して行きましょう!