コンテンツへスキップ

SoftEther VPN をRaspberry Pi にインストールしてVPN Server 化する。

これを使ったら、Raspberry Pi に設定ができるんじゃないかなと。

SoftEther VPNをRaspberry Pi にインストールしてVPN Server 化する。

導入する手順。

下記のドキュメントに詳しく書いてあります。
わかりやすい言葉で書いてあって安心感があります。

https://ja.softether.org/4-docs/1-manual/7/7.3

Raspberry Pi VPN サーバーの構築。

はじめに、自分のRaspberry Pi OS が何ビットか確認しておきましょう。

「getconf LONG_BIT」で64 が返ってきたら64ビットです。

ファイルのダウンロードと展開

softEther のダウンロードページからARM 向けのファイルをダウンロードします。
確認したビット数のものを入手します。

https://www.softether-download.com/ja.aspx?product=softether

ダウンロードが終わったら、Paspberry Pi にコピーして、ファイルを展開。

「ここでファイルを展開」をクリックします。

実行ファイルの生成と配置

このフォルダパスを指定して、ビルドします。

make -C <フォルダパス>

※「C」は大文字です。

なんか、出来たけど使い方がわからない。。。orz

展開したvpnserver フォルダを/usr/local へ移動する。

uniuni@zapsrv01:~ $ sudo mv /home/uniuni/softether/vpnserver /usr/local 
uniuni@zapsrv01:~ $ 

ファイルの所有者は今のところ「uniuni」です。

パーミッションを変更します

所有者をroot に変更して、読み書きもroot のみ(600)、コンパイルしたvpnserver と、vpncmd だけ、700にする。

・所有者を変更
chown [OPTION]… [OWNER][:[GROUP]] FILE…

・パーミッションを変更
chmod [OPTION]… MODE[,MODE]… FILE…

この先、root での作業になるので、ユーザーも切り替えています。

uniuni@zapsrv01:~ $ sudo chown -R root /usr/local/vpnserver
uniuni@zapsrv01:~ $ su
パスワード:
root@zapsrv01:/home/uniuni# 
root@zapsrv01:/home/uniuni# chmod -R 600 /usr/local/vpnserver
root@zapsrv01:/home/uniuni# chmod -R 700 /usr/local/vpnserver/vpncmd
root@zapsrv01:/home/uniuni# chmod -R 700 /usr/local/vpnserver/vpnserver
root@zapsrv01:/home/uniuni# 
root@zapsrv01:/home/uniuni# ls -lh /usr/local/vpnserver
合計 12M
-rw------- 1 root uniuni   82  8月 17 22:43 Authors.txt
-rw------- 1 root uniuni 3.5K  8月 17 22:43 Makefile
-rw------- 1 root uniuni  32K  8月 17 22:43 ReadMeFirst_Important_Notices_cn.txt
-rw------- 1 root uniuni  37K  8月 17 22:43 ReadMeFirst_Important_Notices_en.txt
-rw------- 1 root uniuni  52K  8月 17 22:43 ReadMeFirst_Important_Notices_ja.txt
-rw------- 1 root uniuni 3.6K  8月 17 22:43 ReadMeFirst_License.txt
drw------- 2 root uniuni 4.0K 11月 19 00:40 chain_certs
drw------- 2 root uniuni 4.0K 11月 19 00:40 code
-rw------- 1 root uniuni 2.0M  8月 17 22:43 hamcore.se2
-rw------- 1 root uniuni  867 11月 19 00:40 lang.config
drw------- 2 root uniuni 4.0K 11月 19 00:40 lib
-rwx------ 1 root uniuni 4.9M 11月 19 00:40 vpncmd
-rwx------ 1 root uniuni 5.0M 11月 19 00:40 vpnserver
root@zapsrv01:/home/uniuni# 

VPN 機能のチェック。

VPN のユーティリティを使って、インストールした端末で「SoftEther VPN」が実行可能かどうかをチェックします。

チェックコマンドを実行する。

VPN Tools を実行する。

root@zapsrv01:/home/uniuni# cd /usr/local/vpnserver
root@zapsrv01:/usr/local/vpnserver# ./vpncmd

選択肢で「3」を選択するとツールが起動する。

vpncmd プログラムを使って以下のことができます。

1. VPN Server または VPN Bridge の管理
2. VPN Client の管理
3. VPN Tools コマンドの使用 (証明書作成や通信速度測定)

1 - 3 を選択: 3

VPN Tools を起動しました。HELP と入力すると、使用できるコマンド一覧が表示できます。

VPN Tools>

こうだな。

「check」を実行すると、システムのチェックが開始されます。

VPN Tools>check
Check コマンド - SoftEther VPN の動作が可能かどうかチェックする
---------------------------------------------------
SoftEther VPN 動作環境チェックツール

Copyright (c) SoftEther VPN Project.
All Rights Reserved.

この動作環境チェックツールを実行したシステムがテストに合格した場合は、SoftEther VPN ソフトウェアが動作する可能性が高いです。チェックにはしばらく時間がかかる場合があります。そのままお待ちください...

'カーネル系' のチェック中...
              [合格] ○
'メモリ操作系' のチェック中...
              [合格] ○
'ANSI / Unicode 文字列処理系' のチェック中...
              [合格] ○
'ファイルシステム' のチェック中...
              [合格] ○
'スレッド処理システム' のチェック中...
              [合格] ○
'ネットワークシステム' のチェック中...
              [合格] ○

すべてのチェックに合格しました。このシステム上で SoftEther VPN Server / Bridge が正しく動作する可能性が高いと思われます。

コマンドは正常に終了しました。

VPN Tools>

これ、ビルドするときにも実行されてたヤツやん。

ラズパイは合格らしいぜ。

スタートスクリプトへの登録

以下のファイルを作成する。

/etc/init.d/vpnserver

#!/bin/sh
# chkconfig: 2345 99 01
# description: SoftEther VPN Server
DAEMON=/usr/local/vpnserver/vpnserver
LOCK=/var/lock/subsys/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
テキストエディタで作る

ファイルの内容を貼り付けて整形。

cat コマンドで作る。

cat > /etc/init.d/vpnserver を入力してから、ファイルの中身を貼り付け、【ctrl】+【D】で終了。

Raspberry Pi OS のターミナルでコピペするには、
右クリックメニューを使うか、 【Shift】+【Ctrl】+【C】(コピー)/【V】(ペースト)を使用します。

権限を変更して、root 以外が書き換えないようにする。でも実行は許可する。

root@zapsrv01:/usr/local/vpnserver# chmod 755 /etc/init.d/vpnserver

root@zapsrv01:/usr/local/vpnserver# ls -lh /etc/init.d/vpnserver
-rwxr-xr-x 1 root root 353 11月 21 18:36 /etc/init.d/vpnserver
root@zapsrv01:/usr/local/vpnserver# 

VPN サービスの起動

systemd で起動。

VPN の設定

管理画面はWindows 版などを使うのが推奨とのことです。

マネージャーだけダウンロードできますね。

https://www.softether-download.com/ja.aspx?product=softether

Windows 版の管理ツールを使用して設定します。

接続先のVPN サーバーについての情報を入力します。

名前と、アドレス、接続ポートなんかを入力します。

接続をポチ

パスワーをド設定

今後、ログインするときに聞かれます。

簡易セットアップが起動。

リモートアクセスVPN サーバーにします。

仮想HUB の名前を決めます。

ホント、ダイナミックDNS は神だな。

これで行けそうなんじゃないか。

これは無効で。

ユーザー設定。

ユーザーを作成する をクリック。

とりあえず、ユーザー名とパスワード

閉じる。

ローカルブリッジ先を設定して閉じる。

この画面は関係ないのでそのまま閉じます。

余談ですが、、、
以前にVM で構築した時に出てきて欲しかったこの画面。(VM で構築している時には出てこなかった。)
「プロミスキャスト有効にする」の設定がおっしゃる通り無効だったのでしばらくハマりました^^。
でも、節々に親切設計な印象を受けますね、このソフトウェア。

VPN サーバーを公開する。

これで設定はOK なはずなので、WEB に公開して接続できるようにします。

Raspberry Pi をDMZ に設定します。

iPhone から接続テスト。

ファイアウォールを停止した状態でVPN 接続が出来ることを確認。

ファイアウォールで開けておくポートが、調べてもちょっと見つからなかったので、
firewalld のログを頼りに500番(UDP)と、4500番(UDP)を開放したところ、VPN 接続ができました。

※ファイアウォールの設定についてはこちら

Linux のファイアウォール(firewalld)設定について簡潔にまとめ。

今回はRaspberry Pi にVPN サーバーをインストールして設定しました。
スマホでなんとなくVPN 接続してほくそ笑んでおります。

今度は、OpenVPN に挑戦してみたいです。

以上です。

(Visited 1,771 times, 1 visits today)

「SoftEther VPN をRaspberry Pi にインストールしてVPN Server 化する。」への1件のフィードバック

  1. ピンバック: インターネット経由で、パソコン電源をONする。(ルーターに依存しない) - .zapping

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です