Ubuntu 20.04でSoftEther VPN Serverを建てる
自宅サーバーのUbuntuにSoftEther VPN Serverをインストールする備忘録的なものです。
サーバーを建てて不正アクセス等があった場合でも筆者は一切保証しないので自己責任で
参考サイト:
VPNサーバー構築(SoftEther VPN Server) - CentOSで自宅サーバー構築
やること
- SoftEhter VPN Serverを建てる
 - SoftEhter VPN ClientとOpen VPNで建てたサーバーに接続できるようにする
 - 接続した状態でSSHできるようにする
 
サーバーのスペック
OS: Ubuntu 20.04.2 LTS x86_64
CPU: Intel Pentium G4400 (2) @ 3.300GHz
Memory: 3824MiB
NIC: Realtek 1Gbps
Provider: Pikara 1Gbps
SoftEther VPN Serverのインストールと起動確認
GitHub:
SoftEtherVPN /SoftEtherVPN
PPA:
Dmitry Verkhoturov - SoftEtherVPN Daily Builds
Ubuntuの場合はPPAが配布されていて、楽にインストールとアップデートを行うことができます。
- PPAの追加
 
$ sudo apt-add-repository ppa:paskal-07/softethervpn
$ sudo apt-get update
$ sudo apt-get upgrade
- SoftEther VPN Serverのインストール
 
$ sudo apt-get install softether-vpnserver
- サーバーの起動確認
 
$ systemctl status softether-vpnserver.service
● softether-vpnserver.service - LSB: SoftEther VPN service
     Loaded: loaded (/etc/init.d/softether-vpnserver; generated)
     Active: active (running) since YYYY-MM-DD hh:mm:ss UTC; 1 months 4 days ago
       Docs: man:systemd-sysv-generator(8)
      Tasks: 47 (limit: 629145)
     Memory: 20.9M
     CGroup: /system.slice/softether-vpnserver.service
             ├─25165 /usr/libexec/softether/vpnserver/vpnserver execsvc
             └─25166 /usr/libexec/softether/vpnserver/vpnserver execsvc
- 起動できてなければ開始と恒久化
 
$ sudo systemctl start softether-vpnserver.service
$ sudo systemctl enable softether-vpnserver.service
これだけの手順でVPNサーバーが立ってます。
SoftEther VPN Server Manager for Windowsを使ってサーバー管理
Windows限定ですが、GUIでSoftEther VPN Serverの管理を行うことができます。
(写真を撮り忘れたのでノリで設定してください。)
- SoftEtherダウンロードセンターからSoftEther VPN Server Manager for Windowsをダウンロード
 - 適当にインストール
 - 接続先を適当に作る
 - 管理用パスワードを決める
 - 初期設定
- 
仮想HUB名: 適当
 - 
ユーザー: 適当
 - 
ダイナミックDNS: ON
- けしからん
hostname.softether.netが使えるようになる - DNS鍵を変えるときは、一度VPNサーバーを止めて
vpn_server.configのbyte keyをいじる 
$ sudo systemctl stop softether-vpnserver.service $ nano /usr/libexec/softether/vpnserver/vpn_server.config --- vpn_server.config declare root { uint ConfigRevision 30 bool IPsecMessageDisplayed true string Region JP declare DDnsClient { string CustomHttpHeader $ bool Disabled false byte Key < ここを書き換え > --- - けしからん
 - 
VPN Azure: 有効(どちらでもいい)
- VPN Azureは説明にある通り、ファイアウォールを貫通しまくってポート開けなくても直接接続できてしまうけしからんもの
 - Open VPNでは使用できないので注意
 
 - 
IPsec/L2TP: 使用しない
 - 
TCP/IPのリスナーポート: 443のみ
- ここは柔軟に設定してください。
 
 
 - 
 
ここまですると、作ったユーザーで接続できるようになります。
SoftEther VPN Clientから接続
こちらもWindows限定ですが、GUIでサーバーへ接続できます。
- SoftEtherダウンロードセンターからSoftEther VPN Server Manager for Windowsをダウンロード
 - 適当にインストール
 - 言われるがままに仮想LANカードの作成
 - 新しい接続先の設定から色々入力して接続
 - 家にDHCPサーバーがあればそこからIPアドレスが振られます
- 家のDHCPを使わない場合はSoftEther VPN ServerのSecure NAT機能を使えばSoftEther VPN ServerがDHCPサーバーを持つようになります。
 
 
Open VPNのクライアントから接続
- SoftEther VPN Server Manager for Windowsでサーバーに接続する
 - 
OpenVPN / MS-SSTP設定をクリック - 
OpenVPNサーバー機能を有効にするにチェック - UDPポートを決める
 - 
OpenVPNクライアント用のサンプル設定ファイルを生成をクリック - 
OKをクリック 
ZIPファイルにREADMEがあるのでそれを読みながらOpenVPNクライアントに.ovpnファイルを読み込ませれば接続できるはずです。
接続した状態でSSHできるようにする
VPNサーバーとだけ使用したい場合は初期の状態で問題ないですが、サーバーにSSHできなきゃ意味がない!けしからん!という人向けです。
今回はnetplanを使ってやります。
参考サイト:
Ubuntu 20.04 LTSで仮想サーバ用のbr0/ブリッジを追加しIPを固定する - 情報技術の四方山話
- ネットワーク関係
 
NIC: enp1s0
ゲートウェイ: 192.168.0.1
固定IP: 192.168.0.142
- ブリッジインターフェイスの作成
 
$ sudo nano /etc/netplan/00-installer-config.yaml
--- /00-installer-config.yaml
network:
  version: 2
  renderer: networkd
  ethernets:
    enp1s0:
      dhcp4: no
      dhcp6: no
    tap_vpn:
      dhcp4: no
      dhcp6: no
      addresses:
      - 192.168.0.142/24
      gateway4: 192.168.0.1
      nameservers:
        addresses:
        - 192.168.0.1
  bridges:
    br0:
      interfaces:
        - enp1s0
        - tap_vpn
      dhcp4: no
      dhcp6: yes
      addresses:
      - 192.168.0.142/24
      gateway4: 192.168.0.1
      nameservers:
        addresses:
        - 192.168.0.1
---
$ sudo netplan apply
- SoftEther VPN Server Manager for Windowsでサーバーに接続
 - 
ローカルブリッジ設定をクリック- 仮想HUB: 作成したもの
 - 作成する種類: 新しいtapデバイスとのブリッジ接続
 - 新しいtapデバイス名: vpn
 
 - 
ローカルブリッジを追加をクリック 
これでVPN接続時でもSSHが可能になります。
注意事項
これをするときはSecure NATをOFFにしてください。
Discussion
ありがとう