自宅で動いているTinker Board(ARM)を使ってVPNサーバーを構築してみた。
PPTPでVPNサーバーを構築するのは割と楽なんだが、セキュリティ上の理由から、Macではその認証経由では接続できない。ということで、L2TP/IPsecしかなく、YAMAHAのお高いルーターを買うべきか悩んでいたところだったのだが、SoftEtherというアプリケーションだと無料で構築できるらしい。
インストール
以下からダウンロード
http://www.softether-download.com/ja.aspx?product=softether
するとリンク一覧が出るので、一番最新のやつのリンクをコピってwget&make
# tar xzvf softether-vpnserver-v4.22-9634-beta-2016.11.27-linux-arm_eabi-32bit.tar.gz # cd vpnserver # make
途中ライセンス確認されるので1を入力してエンター
The preparation of SoftEther VPN Server is completed !
と表示されればビルド成功
/usr/localへ移動
cd ../ mv vpnserver /usr/local
実行権限付与
cd /usr/loca/vpnserver chmod +x vpncmd chmod +x vpnserver
起動
サービスと登録周りは自分でやらなくてはいけない
今回はsystemdを使ってみる。/etc/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 RestartSec=3s [Install] WantedBy=multi-user.target
でリロード
systemctl daemon-reload
起動
systemctl start vpnserver
うまく起動していればsystemctl status vpnserver
のときにstatusが activeになってるはず
マシン起動時に、自動起動させたい場合は
systemctl enable vpnserver
しておく
せっかくなので旧式のinit.dバージョンも載せておく 動作確認済み
/etc/init.d/vpnserverに以下
DAEMON=/usr/local/vpnserver/vpnserver LOCK=/var/lock/vpnserver test -x $DAEMON || exit 0 case "$1" in start) $DAEMON start touch $LOCK ;; stop) $DAEMON stop rm $LOCK ;; restart) $DAEMON stop sleep 3 $DAEMON start ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac exit 0
で実行権限付与
# chmod +x /etc/init.d/vpnserver
自動起動するようにする
# update-rc.d vpnserver defaults
起動
# /etc/init.d/vpnserver start
初期設定
以下で起動する
# /usr/local/vpnserver/vpncmd
# /usr/local/vpnserver/vpncmd vpncmd command - SoftEther VPN Command Line Management Utility SoftEther VPN Command Line Management Utility (vpncmd command) Version 4.27 Build 9667 (English) Compiled 2018/05/26 09:09:16 by yagi at pc33 Copyright (c) SoftEther VPN Project. All Rights Reserved. By using vpncmd program, the following can be achieved. 1. Management of VPN Server or VPN Bridge 2. Management of VPN Client 3. Use of VPN Tools (certificate creation and Network Traffic Speed Test Tool) # 設定をしたいので1を選択 Select 1, 2 or 3: 1 Specify the host name or IP address of the computer that the destination VPN Server or VPN Bridge is operating on. By specifying according to the format 'host name:port number', you can also specify the port number. (When the port number is unspecified, 443 is used.) If nothing is input and the Enter key is pressed, the connection will be made to the port number 8888 of localhost (this computer). # localhostと入力 Hostname of IP Address of Destination: localhost If connecting to the server by Virtual Hub Admin Mode, please input the Virtual Hub name. If connecting by server admin mode, please press Enter without inputting anything. # 空白のままエンター Specify Virtual Hub Name: Connection has been established with VPN Server "localhost" (port 443). You have administrator privileges for the entire VPN Server. VPN Server>
ユーザーの作成
まずはユーザーの作成から、とその前に設定対象のハブを選択。すでにDEFAULTというハブが作られているのでそれを使う
VPN Server>Hub DEFAULT Hub command - Select Virtual Hub to Manage The Virtual Hub "DEFAULT" has been selected. The command completed successfully. VPN Server/DEFAULT>
VPN Server/DEFAULT>UserCreate UserCreate command - Create User User Name: ユーザ名 # 空欄のままエンター Assigned Group Name: # 空欄のままエンター User Full Name: # 空欄のままエンター User Description: The command completed successfully.
パスワードを設定
VPN Server/DEFAULT>UserPasswordSet UserPasswordSet command - Set Password Authentication for User Auth Type and Set Password User Name: さっきのユーザ名 Please enter the password. To cancel press the Ctrl+D key. Password: ******************* Confirm input: ******************* The command completed successfully.
IPsec / L2TP での通信を有効化
IPsecEnableで設定に入れる。
VPN Server/DEFAULT>IPsecEnable IPsecEnable command - Enable or Disable IPsec VPN Server Function Enable L2TP over IPsec Server Function (yes / no): yes Enable Raw L2TP Server Function (yes / no): no Enable EtherIP / L2TPv3 over IPsec Server Function (yes / no): no Pre Shared Key for IPsec (Recommended: 9 letters at maximum): ******** Default Virtual HUB in a case of omitting the HUB on the Username: DEFAULT The command completed successfully.
VPNで接続するにあたってSecureNatEnable、NatEnable、DHCPEnableも有効しておく。
VPN Server/DEFAULT>SecureNatEnable SecureNatEnable command - Enable the Virtual NAT and DHCP Server Function (SecureNat Function) The command completed successfully. VPN Server/DEFAULT>NatEnable NatEnable command - Enable Virtual NAT Function of SecureNAT Function The command completed successfully. VPN Server/DEFAULT>DHCPEnable DhcpEnable command - Enable Virtual DHCP Server Function of SecureNAT Function The command completed successfully.
いざ接続
Mac OS X からの接続方法 - SoftEther VPN プロジェクト
やったね、これでブラクラ貼っても逮捕されないね!(?