【Linux】 VPNの設定(SoftEther VPN)
VPN
VPN(Virtual Private Network)とは、インターネットを利用して、プライベートな通信網を構築する技術です。
暗号化や認証技術を使用して、インターネット上での通信を安全かつ秘密に保ちます。
作業ログ
Centos7:3.10.0-1160.88.1.el7.x86_64
gcc:x86_64 4.8.5-44.el7
SoftEther:oftether-vpnserver-v4.41-9787-rtm-2023.03.14-linux-x64-64bit.tar
SoftEther VPNの設定例
SoftEtherのダウンロード
公式ページから環境に合ったパッケージで、最新の安定板(RTM)を一覧からダウンロードします。
仮想環境に構築する場合は、必要に応じてscpコマンドなどでダウンロードしたファイルの転送を行なってください。
gccインストール
GNUプロジェクトが開発し、オープンソースで提供されているプログラム言語コンパイラのコレクションです。GCCは、C、C++、Objective-C、Fortran、Ada、D、Goなど、多くのプログラミング言語に対応しており、さまざまなプラットフォーム(Unix、Linux、Windowsなど)で利用することができます。
yum -y install gcc
=====================================================================================================
インストール中:
gcc x86_64 4.8.5-44.el7 base 16 M
依存性関連でのインストールをします:
cpp x86_64 4.8.5-44.el7 base 5.9 M
glibc-devel x86_64 2.17-326.el7_9 updates 1.1 M
glibc-headers x86_64 2.17-326.el7_9 updates 691 k
kernel-headers x86_64 3.10.0-1160.88.1.el7 updates 9.1 M
libmpc x86_64 1.0.1-3.el7 base 51 k
mpfr x86_64 3.1.1-4.el7 base 203 k
トランザクションの要約
======================================================================================================
ファイルの解凍
scpで移動させたファイルの場所まで移動し、ダウンロードしたファイルの解答を行う。
cd /tmp
ls -al /tmp
=================================================================
合計 22820
drwxrwxrwt. 13 root root 4096 4月 6 16:35 .
dr-xr-xr-x. 18 root root 257 4月 5 21:47 ..
drwxrwxrwt. 2 root root 6 11月 23 00:58 .ICE-unix
drwxrwxrwt. 2 root root 6 11月 23 00:58 .Test-unix
drwxrwxrwt. 2 root root 6 11月 23 00:58 .X11-unix
drwxrwxrwt. 2 root root 6 11月 23 00:58 .XIM-unix
drwxrwxrwt. 2 root root 6 11月 23 00:58 .font-unix
-rw-r--r-- 1 root root 23363584 4月 6 16:34 softether-vpnserver-v4.41-9787-rtm-2023.03.14-linux-x64-64bit.tar
=================================================================
tar -xvf softether-vpnserver-v4.41-9787-rtm-2023.03.14-linux-x64-64bit.tar
=================================================================
vpnserver/
vpnserver/Makefile
vpnserver/.install.sh
vpnserver/ReadMeFirst_License.txt
vpnserver/Authors.txt
vpnserver/ReadMeFirst_Important_Notices_ja.txt
vpnserver/ReadMeFirst_Important_Notices_en.txt
vpnserver/ReadMeFirst_Important_Notices_cn.txt
vpnserver/code/
vpnserver/code/vpnserver.a
vpnserver/code/vpncmd.a
vpnserver/lib/
vpnserver/lib/libcharset.a
vpnserver/lib/libcrypto.a
vpnserver/lib/libedit.a
vpnserver/lib/libiconv.a
vpnserver/lib/libintelaes.a
vpnserver/lib/libncurses.a
vpnserver/lib/libssl.a
vpnserver/lib/libz.a
vpnserver/lib/License.txt
vpnserver/hamcore.se2
=================================================================
ソースのコンパイル
vpnserver/ ができるのでそこに移動し、makeコマンドでコンパイルする。
「コマンドは正常に終了しました。」を確認する。
※makeは、プログラムのソースコードから実行可能なバイナリファイルやライブラリを生成する
cd vpnserver/
make
=================================================================
・
・
・
'カーネル系' のチェック中...
[合格] ○
'メモリ操作系' のチェック中...
[合格] ○
'ANSI / Unicode 文字列処理系' のチェック中...
[合格] ○
'ファイルシステム' のチェック中...
[合格] ○
'スレッド処理システム' のチェック中...
[合格] ○
'ネットワークシステム' のチェック中...
[合格] ○
すべてのチェックに合格しました。このシステム上で SoftEther VPN Server / Bridge が正しく動作する可能性が高いと思われます。
コマンドは正常に終了しました。
--------------------------------------------------------------------
The preparation of SoftEther VPN Server is completed !
*** How to switch the display language of the SoftEther VPN Server Service ***
SoftEther VPN Server supports the following languages:
- Japanese
- English
・
・
・
=================================================================
実行ファイルの移動と権限の設定
cd ..
mv vpnserver /usr/local
cd /usr/local/vpnserver/
chmod 600 *
chmod 700 vpncmd
chmod 700 vpnserver
ls -al | grep vpn
=================================================================
-rwx------ 1 root root 6724240 4月 6 16:37 vpncmd
-rwx------ 1 root root 6724320 4月 6 16:37 vpnserver
=================================================================
起動スクリプトの作成
cd /etc/systemd/system
vi vpnserver.service
=================================================================
# 以下を追加
1 [Unit]
2 Description=SoftEther VPN Server
3 After=network.target
4
5 [Service]
6 Type=forking
7 ExecStart=/usr/local/vpnserver/vpnserver start
8 ExecStop=/usr/local/vpnserver/vpnserver stop
9
10 [Install]
11 WantedBy = multi-user.target
=================================================================
[Unit]セクション
Description: サービスの説明を提供します。この場合、「SoftEther VPN Server」となります。
After: このサービスが依存する他のユニットやターゲットを指定します。ここでは、network.targetが指定されているため、ネットワークが利用可能になった後でサービスが起動されます。
[Service]セクション
Type: サービスのタイプを指定します。forkingタイプは、サービスがバックグラウンドで実行される。
ExecStart: サービスの起動時に実行されるコマンド。この例では、/usr/local/vpnserver/vpnserver にあるvpnserverコマンドでSoftEther VPNサーバーを起動します。
ExecStop: サービスを停止する際に実行されるコマンドを指定します。この場合も、vpnserver コマンドでSoftEther VPNサーバーを停止します。
[Install]セクション
WantedBy: このサービスを自動的に起動するターゲットを指定します。この例では、multi-user.targetが指定されており、システムがマルチユーザーモードになった際にサービスが起動されます。
サービスの確認と起動
systemctl list-unit-files --type=service | grep vpn
=================================================================
vpnserver.service disabled
=================================================================
systemctl enable vpnserver
systemctl start vpnserver
systemctl status vpnserver
OŞパケット転送の有効化
デフォルトではパケット転送を拒否しているので有効化させる必要があります。
/proc/sys/net/ipv4/ip_forwardを変更すれば直ぐに設定が反映するが、再起動すると元に戻るので設定ファイルを修正する。
「net.ipv4.ip_forward = 1」を追加する。
vi /etc/sysctl.conf
=================================================================
1 # sysctl settings are defined through files in
2 # /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.
3 #
4 # Vendors settings live in /usr/lib/sysctl.d/.
5 # To override a whole file, create a new file with the same in
6 # /etc/sysctl.d/ and put new settings there. To override
7 # only specific settings, add a file with a lexically later
8 # name in /etc/sysctl.d/ and put new settings there.
9 #
10 # For more information, see sysctl.conf(5) and sysctl.d(5).
11 net.ipv6.conf.all.disable_ipv6 = 1
12 net.ipv6.conf.default.disable_ipv6 = 1
13 net.ipv4.ip_forward = 1
=================================================================
Firewalldの設定
firewall-cmd --permanent --add-port=443/tcp
success
firewall-cmd --reload
success
firewall-cmd --list-ports
80/tcp 443/tcp
よろしければサポートお願いします!よりいい情報を発信します。