見出し画像

【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                                   
=================================================================
  1. [Unit]セクション

    • Description: サービスの説明を提供します。この場合、「SoftEther VPN Server」となります。

    • After: このサービスが依存する他のユニットやターゲットを指定します。ここでは、network.targetが指定されているため、ネットワークが利用可能になった後でサービスが起動されます。

  2. [Service]セクション

    • Type: サービスのタイプを指定します。forkingタイプは、サービスがバックグラウンドで実行される。

    • ExecStart: サービスの起動時に実行されるコマンド。この例では、/usr/local/vpnserver/vpnserver にあるvpnserverコマンドでSoftEther VPNサーバーを起動します。

    • ExecStop: サービスを停止する際に実行されるコマンドを指定します。この場合も、vpnserver コマンドでSoftEther VPNサーバーを停止します。

  3. [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




この記事が参加している募集

仕事について話そう

よろしければサポートお願いします!よりいい情報を発信します。