RaspberryPiでVPNサーバを構築する
接続が不安定になるのでWiFi?で繋がないこと。
RasPi?は有線LANで接続し、/etc/dhcpcd.conf内でIPアドレスをstaticにしておく。

SoftEther?をインストール

  • SoftEther?公式ページでプラットホームを指定してダウンロード先のリンクを調べる
    • SoftEther? VPN (Freeware)
    • SoftEther? VPN Server
    • Linux
    • ARM EABI(32bit)
  • ダウンロードリンクが分かったら、wgetでRasPi?にダウンロードする
  • 解凍する
    $ tar zxvf softether-vpnserver-[バージョン]-linux-arm_eabi-32bit.tar.gz
  • makeする
    $ cd vpnserver
    $ make
  • 日本語モードに設定する
    $ nano lang.config
  • アクセス権を設定する
    $ cd ..
    $ sudo bash
    # chown -R root.root ./vpnserver
    # chmod 700 vpnserver
    # cd vpnserver
    # chmod 600 *
    # chmod 700 vpncmd vpnserver
    # chmod 700 chain_certs code lib
    # cd /usr/local
  • vpnserverディレクトリを/usr/localにコピーする
    # cd ..
    # sudo cp -a ./vpnserver /usr/local

起動スクリプトを作って自動起動を設定する(Stretch以前)

  • 起動スクリプトを作る
    # nano /etc/init.d/vpnserver
    
    #!/bin/sh
    ### BEGIN INIT INFO
    # Provides:       vpnserver
    # Required-Start: $local_fs $network
    # Required-Stop:  $local_fs $network
    # Default-Start:  2 3 4 5
    # Default-Stop:   0 1 6
    # Description:    SoftEther VPN Server
    ### END INIT INFO
     
    DAEMON=/usr/local/vpnserver/vpnserver
    LOCK=/var/lock/vpnserver
     
    vpn_start() {
        ${DAEMON} start
    }
     
    vpn_stop() {
        ${DAEMON} stop
    }
     
    test -x ${DAEMON} || exit 0
     
    case "$1" in
    start)
        vpn_start
        touch ${LOCK}
        ;;
    stop)
        vpn_stop
        rm ${LOCK}
        ;;
    restart)
        vpn_stop
        sleep 3
        vpn_start
        ;;
    *)
        echo "Usage: $0 {start|stop|restart}"
        exit 1
    esac
     
    exit 0
  • サービス登録と起動
    # chmod 700 /etc/init.d/vpnserver
    # chkconfig --add vpnserver
    # /etc/init.d/vpnserver start
    Pi4BのRaspbian(Buster)では、chkconfigのところでエラーが出てうまくいかなかった。
    手動で起動は出来たので、その状態でパフォーマンス測定に進んだ。

起動スクリプトを作って自動起動を設定する(RaspberryPi4 Busterの場合)

systemdを使用して起動させる。
Busterのchkconfigはバグっているらしい。
さらに、最近の流れはinit.dではなくsystemdで管理する方法らしい。

  • 起動スクリプトの作成
    # nano /etc/systemd/system/vpnserver.service
    
    [Unit]
    Description=Softether VPN Server Service
    After=network.target network-online.ratget
    
    [Service]
    Type=forking
    User=root
    ExecStart=/usr/local/vpnserver/vpnserver start
    ExecStop=/usr/local/vpnserver/vpnserver stop
    RestartSec=3s
    WorkingDirectory=/usr/local/vpnserver/
    ExecStartPre=/sbin/ip link set dev eth0 promisc on
    
    [Install]
    WantedBy=multi-user.target
  • パーミッション設定
    # chmod 755 /etc/systemd/system/vpnserver.service
  • systemdをリロード
    # systemd daemon-reload
  • 起動テスト
    # systemd start vpnserver.service
  • 起動したか確認
    # sudo systemctl status vpnserver.service
    
    ● vpnserver.service - Softether VPN Server Service
       Loaded: loaded (/etc/systemd/system/vpnserver.service; enabled; vendor preset: enabled)
       Active: active (running) since Sat 2020-02-29 01:52:32 JST; 8min ago
      Process: 394 ExecStartPre=/sbin/ip link set dev eth0 promisc on (code=exited, status=0/SUCCESS)
      Process: 417 ExecStart=/usr/local/vpnserver/vpnserver start (code=exited, status=0/SUCCESS)
     Main PID: 738 (vpnserver)
        Tasks: 33 (limit: 4915)
       Memory: 17.8M
       CGroup: /system.slice/vpnserver.service
               tq738 /usr/local/vpnserver/vpnserver execsvc
               mq739 /usr/local/vpnserver/vpnserver execsvc
    
     2月 29 01:52:31 pi4 systemd[1]: Starting Softether VPN Server Service...
     2月 29 01:52:32 pi4 vpnserver[417]: The SoftEther VPN Server service has been started.
     2月 29 01:52:32 pi4 vpnserver[417]: Let's get started by accessing to the following URL from your PC:
     2月 29 01:52:32 pi4 vpnserver[417]: https://127.0.0.1:5555/
     2月 29 01:52:32 pi4 vpnserver[417]:   or
     2月 29 01:52:32 pi4 vpnserver[417]: https://127.0.0.1/
     2月 29 01:52:32 pi4 vpnserver[417]: Note: IP address may vary. Specify your server's IP address.
     2月 29 01:52:32 pi4 vpnserver[417]: A TLS certificate warning will appear because the server uses self signed certificate by default. That is natural. Continue with ignoring the TLS warning.
     2月 29 01:52:32 pi4 systemd[1]: Started Softether VPN Server Service.
  • いったん終了
    # systemd stop vpnserver.service
  • サービスの自動起動を設定
    # systemctl enable vpnserver.service

Windows機で設定ツールを使って詳細設定をする

  • SoftEther? VPN Server Manager for Windowsをダウンロードしてインストール
  • SoftEther? VPN Server Managerを起動
  • 新しい接続設定
    • 接続設定名:任意の名前
    • ホスト名:SofrEther? VPNをインストールしたRasPi?のIPアドレス
    • ポート番号:5555
    • ●サーバー管理モード(S) ○仮想HUB管理モード(U)
    • 管理者パスワード:(まだ入れない)
  • OKして、作成した接続名を選択して「接続」ボタンをクリック
  • 新しい管理パスワードの設定を求められるので設定する
  • 「リモートアクセスVPNサーバー」にチェックを付けて「次へ」
  • 仮想HUBの名前を付ける(デフォルトのVPNのままで良い)
  • ダイナミックDNSの名前は任意の名前に変えても良いが、とりあえずそのまま「閉じる」
  • VPN接続プロトコルの設定
    • 「L2TPサーバー機能を有効にする」にチェック
    • 「IPSec事前共有鍵」に任意の文字列を指定
    • OKする
  • VPN Azureを無効にするを選択してOK
  • ユーザーを作成する
    • ユーザー名とパスワードを設定する
  • ローカルブリッジの設定で「eth0」を指定する

パフォーマンス

OrangePi? ONE35MbpsAllwinner H3(ARM Cortex-A7 Quad core 1.2GHz)
RasPi3B+65MbpsBroadcom BCM2837B0(Cortex-A53 ARMv8 1.4GHz)
RasPi4B80MbpsBroadcom BCM2711 (Cortex-A72 ARMv8 1.5GHz)
Direct770Mbps-

iperf2 server : Corei5 530/2.93GHz, Centos6

参考ページ

https://nobuntu.jp/raspberrypi-vpn-server-softethervpn/


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2020-02-29 (土) 02:30:16 (42d)