これを使ったら、Raspberry Pi に設定ができるんじゃないかなと。
SoftEther VPNをRaspberry Pi にインストールしてVPN Server 化する。
Contents
導入する手順。
下記のドキュメントに詳しく書いてあります。
わかりやすい言葉で書いてあって安心感があります。
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 に挑戦してみたいです。
以上です。
ピンバック: インターネット経由で、パソコン電源をONする。(ルーターに依存しない) - .zapping