INDEX
Windows 環境 (Visual Studio) でのビルド Win32/SoftEther5/Build も参照。
Apache License 2.0 で公開されてる SoftEther VPN を、GitHub で公開されているソースからビルドし OpenBSD で動かす。
SoftEther VPN
SoftEther VPN は、SoftEther プロジェクトによって、オープンソースで開発と配布が行われてる、複数プラットフォームおよび複数プロトコル対応に対応した VPN ソフトウェアです。筑波大学における研究プロジェクトとして開発されて、ソフトイーサ株式会社の PacketiX VPN のオープンソース版になる。
SoftEther VPN は、Windows、Linux、Mac OS X、FreeBSD および Solaris 上で動作し、既存の VPN プロトコル(IPsec、OpenVPN および MS-SSTP)および独自の SoftEther VPN (SSL-VPN) プロトコルに対応する。
- SoftEther VPN プロジェクト - SoftEther VPN プロジェクト
SoftEther VPN on OpenBSD (6.8 ARMv7 on BBB 版)
ソースは、GitHub で公開されている master リポジトリから入手(Commits on Dec 11, 2020)、BeagleBone Black に入れた、ARMv7 アーキテクチャの OpenBSD 6.8 (GENERIC) でビルドする。
- 対象
- GitHub コミットログ
- Commits on Dec 11, 2020
- ビルド後、VPN Server のバージョン情報
- Version 5.01 Build 9674
- GitHub コミットログ
- 環境
- BeagleBone Black
- OpenBSD/ARMv7 6.8 (GENERIC)
- BeagleBone Black
ソース入手
git リポジトリから取得すればよいが、git コマンドがないので、ZIP でダウンロードし、展開して BBB へ転送する。
ビルド手順
必要ライブラリ・ビルドツールの追加
Ver.5 は、cmake でビルドされるので、事前にインストールしておく。
bbb$ su - Password: bbb# pkg_add cmake quirks-3.439 signed on 2020-11-19T20:10:24Z quirks-3.439: ok cmake-3.17.2p0v0:jsoncpp-1.8.4p2: ok cmake-3.17.2p0v0:xz-5.2.5: ok cmake-3.17.2p0v0:lz4-1.9.2p0: ok cmake-3.17.2p0v0:zstd-1.4.5p0: ok cmake-3.17.2p0v0:libiconv-1.16p0: ok cmake-3.17.2p0v0:libb2-0.98.1v0: ok cmake-3.17.2p0v0:bzip2-1.0.8: ok cmake-3.17.2p0v0:libarchive-3.4.3: ok cmake-3.17.2p0v0:libuv-1.30.1: ok cmake-3.17.2p0v0:nghttp2-1.41.0p1: ok cmake-3.17.2p0v0:curl-7.72.0: ok cmake-3.17.2p0v0:rhash-1.4.0: ok cmake-3.17.2p0v0: ok bbb#
※おそらく、iconv も必要だが、cmake と共に入るので、個別には不要。また、OpenSSL や ZLIB も標準で入っていると思う。
Makefile の作成
bbb$ cd SoftEtherVPN-master bbb$ chmod +x ./configure bbb$ ./configure --------------------------------------------------------------------- SoftEther VPN for Unix Copyright (c) all contributors on SoftEther VPN project in GitHub. Copyright (c) Daiyuu Nobori, SoftEther Project at University of Tsukuba, and SoftEther Corporation. Licensed under the Apache License, Version 2.0 (the License). Read and understand README, LICENSE and WARNING before use. --------------------------------------------------------------------- Welcome to the corner-cutting configure script ! 'rpm' executable not found, CPack will generate DEB packages. -- The C compiler identification is Clang 10.0.1 -- Check for working C compiler: /usr/bin/cc -- Check for working C compiler: /usr/bin/cc - works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Detecting C compile features -- Detecting C compile features - done -- Looking for sys/auxv.h -- Looking for sys/auxv.h - not found -- Build date: 11/01/2021 -- Build time: 11:29:49 -- Found Curses: /usr/lib/libcurses.so.14.0 -- Found OpenSSL: /usr/lib/libcrypto.so.46.1 (found version "2.0.0") -- Found ZLIB: /usr/lib/libz.so.5.0 (found version "1.2.3") -- Looking for pthread.h -- Looking for pthread.h - found -- Performing Test CMAKE_HAVE_LIBC_PTHREAD -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed -- Looking for pthread_create in pthreads -- Looking for pthread_create in pthreads - not found -- Looking for pthread_create in pthread -- Looking for pthread_create in pthread - found -- Found Threads: TRUE -- Configuring done -- Generating done -- Build files have been written to: /home/username/SoftEtherVPN-master/build The Makefile is generated. Run 'make -C build' to build SoftEther VPN. bbb$
ビルド・インストールする
bbb$ make -C build bbb$ su Password: bbb# make -C build install bbb# vpnserver start The SoftEther VPN Server service has been started. bbb#
VPNサーバの設定
VPNサーバが起動したら、サーバ管理ツールから接続して、設定を行う。
tap ディバイスとブリッジ
Linux (UNIX系) の場合、SoftEther VPN Server がローカルネットワークと通信するためには、ローカル通信用の物理NICと別の物理NIC もしくは、tap ディバイスを仮想HUBに割り当てる必要がある。そして、ローカルネットワークのNICとブリッジ接続して、通信を行う。
tap ディバイスは、SoftEther VPN Server のローカルブリッジで作成されるが、それだけでは物理NICとはつながらない。このため、ブリッジ接続の設定を行う。
tap ディバイスの作成
サーバ管理マネージャーで、VPNサーバに接続し、ローカルブリッジ設定画面で、接続する仮想HUBを選択し、新しい tap ディバイス(例 ディバイス名:tap0)を追加する。
ブリッジの作成
ifconfig コマンドでブリッジを作成し、物理NICと作成したtap ディバイスをつなげる。
bbb# ifconfig bridge0 create bbb# ifconfig bridge0 add cpsw0 add tap0 up
自動起動設定
OS が立ち上がる際に、VPNサーバも立ち上がるように、/etc/rc.local に記載する。
bbb# cat /etc/rc.local #!/bin/sh :中略 echo starting SoftEther VPN Server /usr/local/bin/vpnserver start bbb#
また、ブリッジも作成されるように、/etc/hostname.XXX も作成する。
bbb# cat /etc/hostname.tap0 up bbb#
bbb# cat /etc/hostname.bridge0 add cpsw0 add tap0 up bbb#
VPN プロトコル別
SoftEther VPN (SSL-VPN)
L2TP/IPsec
ESP と AH が、デフォルトで有効になっているので、止める必要がある。SoftEther は、ESP,AH は使わず、UDP 500 のみを利用する。ESP,AH が有効だとこっちが反応して応答なし(接続に失敗)になる。
bbb# sysctl net.inet.esp.enable=0 bbb# sysctl net.inet.ah.enable=0
起動時に反映させるには、/etc/sysctl.conf に記載する。
bbb# cat /etc/sysctl.conf # use SoftEther VPN L2TP/IPSec net.inet.esp.enable=0 # disable the ESP IPsec protocol net.inet.ah.enable=0 # disable the AH IPsec protocol bbb#
OpenVPN
MS-SSTP
MS-SSTP を自己署名証明書で利用する
Windows Vista Service Pack 1 以降でOS標準で利用出来る VPN の Secure Sockets Tunneling Protocol(SSTP) は、証明書のチェーンが正しくないと利用出来ない。そのため自己署名証明書で利用するためには、PEM形式の証明書を「信頼されたルート証明機関」に登録する必要がある。
証明書は、管理者でコンピュータアカウントにインポートする必要がある。証明書ファイルのコンテキストメニューなどでインストール(インポート)を行っても「ユーザーアカウント」にインポートされるので注意。
コンピュータアカウントのルート証明にインポート
- mmc.exe を起動する
- Microsoft管理コンソールが起動するので、証明書のスナップインを追加する
- メニューの「ファイル」-「スナップインの追加と削除」を選択
- 利用できるスナップインから「証明書」を選択して、「追加」を押下
- 「コンピュータアカウント」を選択し、「次へ」を押下
- コンピューターの選択が開くので「ローカルコンピューター」を選択し、「完了」を押下
- スナップインの追加と削除に戻ったら、「OK」を押下
- 証明書のインポートする
- 「証明書(ローカルコンピュータ)」「信頼されたルート証明機関」を展開
- 証明書を右クリックして、「すべてのタスク」-「インポート」を選択
- 証明書のインポートウィザードが開くので、インポートする証明書を選択して、「次へ」を押下
- 「証明書をすべて次のストアに配置する」が選択され、証明書ストアが「信頼されたルート証明機関」となっていることを確認して、「次へ」を押下
- 確認画面が表示されるので、内容を確認して、「完了」を押下
- 正常にインポートが完了すれば、証明書の一覧に証明書が表示され、状態の確認が出来る
※ローカルコンピューターの証明書マネージャーは、mmc で追加する他に、certlm.msc (CERTificates Local Machine)でも呼び出せる。 certmgr.msc だと現在ユーザになるので注意
最終更新時間:2025年11月05日 21時36分20秒 指摘や意見などあればSandBoxのBBSへ。