フリーで利用でき、高機能な「SoftEther VPN」を導入する。
SoftEther VPN プロジェクト公式サイトから「SoftEther VPN Server」「Linux」「Intel x64 / AMD64 (64bit)」で検索して、作業フォルダへダウンロードする。
ビルドを実行するために必要なパッケージを導入する。
※執筆時点では、両パッケージは導入済みだった。
$ sudo apt install gcc make
ダウンロードしたファイルを展開し、ビルドを実行する。
$ cd 作業フォルダ $ tar xvf softether-vpnserver-xxxx-linux-x64-64bit.tar.gz $ cd vpnserver $ make $ cd ../ $ sudo chown -R root:root vpnserver $ sudo mv vpnserver /opt
設定ファイル「vpn_server.config」が用意できる場合は、下記手順でコピーしておく。
$ cd 作業フォルダ $ cp vpn_server.config /opt/vpnserver $ sudo chown -R root:root /opt/vpnserver/vpn_server.config $ sudo chmod 755 /opt/vpnserver/vpn_server.config
systemd用ユニットファイルを作成する。
$ sudo nano /etc/systemd/system/vpnserver.service
[Unit] Description=SoftEther VPN Server After=network-online.target [Service] Type=forking ← 「Type」は必ず「forking」を指定する(これ以外だと起動できない) ExecStart=/opt/vpnserver/vpnserver start ExecStop=/opt/vpnserver/vpnserver stop KillMode=control-group Restart=on-failure [Install] WantedBy=multi-user.target
systemdへ登録して起動する。
$ sudo systemctl daemon-reload $ sudo systemctl enable vpnserver $ sudo systemctl start vpnserver
新規にセットアップする場合は、コマンドライン管理ユーティリティの「vpncmd」やWindows版GUIサーバー管理ツールで設定する。
公式サイトから「SoftEther VPN Client」「Linux」「Intel x64 / AMD64 (64bit)」で検索して、作業フォルダへダウンロードする。
※古いバージョンだとビルドに失敗するため「Ver 4.28, Build 9669, beta」以降のバージョンを利用する。
ダウンロードしたファイルを展開し、ビルドを実行する。
$ cd 作業フォルダ $ tar xvf softether-vpnclient-xxxx-linux-x64-64bit.tar.gz $ cd vpnclient $ make $ cd ../ $ sudo chown -R root:root vpnclient $ sudo mv vpnclient /opt
設定ファイル「vpn_client.config」が用意できる場合は下記手順でコピーしておく。
$ cd 作業フォルダ $ cp vpn_client.config /opt/vpnclient $ sudo chown -R root:root /opt/vpnclient/vpn_client.config $ sudo chmod 755 /opt/vpnclient/vpn_client.config
※この後「起動スクリプトの作成」手順へ進む。
新規にセットアップする場合は、一度「vpnclient」を起動してから、コマンドライン管理ユーティリティ「vpncmd」で初期設定を行う。
$ sudo /opt/vpnclient/vpnclient start $ sudo /opt/vpnclient/vpncmd ... vpncmd プログラムを使って以下のことができます。 1. VPN Server または VPN Bridge の管理 2. VPN Client の管理 3. VPN Tools コマンドの使用 (証明書作成や通信速度測定) 1 - 3 を選択: 2 接続先の VPN Client が動作しているコンピュータの IP アドレスまたはホスト名を指定してください。 何も入力せずに Enter を押すと、localhost (このコンピュータ) に接続します。 接続先のホスト名または IP アドレス: [Enter] VPN Client "localhost" に接続しました。 VPN Client>RemoteEnable ← コマンドは、全て小文字でも良い(以下同様) RemoteEnable コマンド - VPN Client サービスのリモート管理の許可 コマンドは正常に終了しました。 VPN Client>NicCreate ← 仮想LANカードを作成する NicCreate コマンド - 新規仮想 LAN カードの作成 仮想 LAN カードの名前: nic1 ← 仮想LANカード名を指定する コマンドは正常に終了しました。 VPN Client>NicList ← 仮想LANカードの一覧表示 NicList コマンド - 仮想 LAN カード一覧の取得 項目 |値 -----------------+------------------------------------ 仮想 LAN カード名|nic1 状態 |有効 (使用可能) MAC アドレス |xxxxxxxxxxxx バージョン |Version 4.xx Build xxxx (Japanese) コマンドは正常に終了しました。 VPN Client>exit
※仮想LANカード「nic1」を作成すると、仮想デバイス名は「vpn_nic1」となる。
一旦、vpnclientを終了する。
$ sudo /opt/vpnclient/vpnclient stop
起動スクリプトの作成
仮想LANカードが作成された後にIPアドレスを割り当てるため、起動スクリプトを作成する。
$ sudo nano /opt/vpnclient/start_vpnclient.sh
#!/usr/bin/bash /opt/vpnclient/vpnclient start sleep 3 ip a add 192.168.yyy.1/24 dev vpn_nic1 ← 仮想デバイス名を指定する
$ sudo chmod +x /opt/vpnclient/start_vpnclient.sh
systemd用ユニットファイルを作成する。
$ sudo nano /etc/systemd/system/vpnclient.service
[Unit] Description=SoftEther VPN Client After=network-online.target [Service] Type=forking ← 「Type」は必ず「forking」を指定する(これ以外だと起動できない) ExecStart=/opt/vpnclient/start_vpnclient.sh ← 作成した起動スクリプトを指定する ExecStop=/opt/vpnclient/vpnclient stop KillMode=control-group Restart=on-failure [Install] WantedBy=multi-user.target
systemdへ登録して起動する。
$ sudo systemctl daemon-reload $ sudo systemctl enable vpnclient $ sudo systemctl start vpnclient
以降、引き続き「vpncmd」または、Windows版GUIクライアントリモート管理ツールで、仮想HUBへの接続設定を進める。