0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

さくらのVPS(CentOS8 x86_64)でWordPressやMediawiki、VPNなどをする話(2)

Last updated at Posted at 2021-09-09

今回は第2回。SoftEther VPN ServerのインストールとHTTPS化を行う。

(前回のお話:さくらのVPS(CentOS8 x86_64)でWordPressやMediawiki、VPNなどをする話(1)

#SoftEther VPN Serverインストール

command
[root@hogehoge ~]# wget http://jp.softether-download.com/files/softether/v4.38-9760-rtm-2021.08.17-tree/Linux/SoftEther_VPN_Server/64bit_-_Intel_x64_or_AMD64/softether-vpnserver-v4.38-9760-rtm-2021.08.17-linux-x64-64bit.tar.gz
[root@hogehoge ~]# tar zxvf softether-vpnserver-v4.38-9760-rtm-2021.08.17-linux-x64-64bit.tar.gz
[root@hogehoge ~]# ls
softether-vpnserver-v4.38-9760-rtm-2021.08.17-linux-x64-64bit.tar.gz  vpnserver
[root@hogehoge ~]# cd vpnserver/
[root@hogehoge vpnserver]# make

これでSoftEther VPN Serverのインストールが始まる。

command
SoftEther VPN コマンドライン管理ユーティリティ (vpncmd コマンド)
Version 4.38 Build 9760   (Japanese)
Compiled 2021/08/17 22:32:49 by buildsan at crosswin
Copyright (c) SoftEther VPN Project. All Rights Reserved.

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

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

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

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

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

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

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


--------------------------------------------------------------------
The preparation of SoftEther VPN Server is completed !

インストールが完了した。
ただこのままだとhomeディレクトリにvpnserverディレクトリが存在するのでやや邪魔である。/usr/localディレクトリに移動させる。
また、元のter.gzファイルはもう要らないので消してしまう。

command
[root@hogehoge ~]# mv /vpnservver /usr/local
[root@hogehoge ~]# rm -rf softether-vpnserver-v4.38-9760-rtm-2021.08.17-linux-x64-64bit.tar.gz
[root@hogehoge ~]#vi /etc/systemd/system/softethervpn.service

---
[Unit]
Description=SoftEther VPN Server
After=network.target auditd.service
ConditionPathExists=!/opt/vpnserver/do_not_run
[Service]
Type=forking
EnvironmentFile=-/opt/vpnserver
ExecStart=/opt/vpnserver/vpnserver start
ExecStop=/opt/vpnserver/vpnserver stop
KillMode=process
Restart=on-failure
# Hardening
PrivateTmp=yes
ProtectHome=yes
ProtectSystem=full
ReadOnlyDirectories=/
ReadWriteDirectories=-/opt/vpnserver
CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_BIND_SERVICE CAP_NET_BROADCAST CAP_NET_RAW CAP_SYS_NICE CAP_SYS_ADMIN CAP_SETUID
[Install]
WantedBy=multi-user.target
---

[root@hogehoge ~]# systemctl daemon-reload
[root@hogehoge ~]# systemctl enable softethervpn
[root@hogehoge ~]# systemctl start softethervpn
[root@hogehoge ~]# systemctl status softethervpn

Active: active(running) <--- active(runnning)になっていればOK

あとはvpnserverディレクトリを勝手に弄られないよう、所有者を変更しておく。

[root@hogehoge ~]# cd /usr/local/vpnserver
[root@hogehoge ~]# chmod 600 *
[root@hogehoge ~]# chmod 700 vpncmd
[root@hogehoge ~]# chmod 700 vpnserver

SoftEtherの通信がfirewalldに遮られないよう、firewalldを設定する。

command
[root@hogehoge ~]# vi /etc/firewalld/services/softether-vpn.xml

---
<service>
  <short>SoftetherVpnServer</short>
  <description>Softether VPN Server</description>

  <!-- TCP -->
  <port protocol="tcp" port="443"/>
  <port protocol="tcp" port="992"/>
  <port protocol="tcp" port="1194"/>
  <port protocol="tcp" port="5555"/>

  <!-- UDP -->
  <port protocol="udp" port="443"/>
  <port protocol="udp" port="992"/>
  <port protocol="udp" port="1194"/>
  <port protocol="udp" port="5555"/>

  <!-- UDP高速化 -->
  <port protocol="udp" port="40000-44999"/>
</service>
---
[root@hogehoge ~]# firewall-cmd --reload
[root@hogehoge ~]# firewall-cmd --permanent --zone=public --add-service=softether-vpn
[root@hogehoge ~]# firewall-cmd --permanent --zone=public --add-service=ipsec
[root@hogehoge ~]# firewall-cmd --reload
[root@hogehoge ~]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens3
  sources: 
  services: cockpit dhcpv6-client ipsec softether-vpn ssh ssh-no2 <---追加されている。

但し、このままだと次節から行うHTTPS対応化の際、SoftEtherとHTTPSで同じ443ポートを使用しようとして競合を起こしてしまう。443ポートは一般にHTTPSのwell-known Portであるので、SoftEther側での使用を停止する。
vpncmdからでも設定出来るがCUIで使い勝手が悪いので、私はノートPCにインストールしたSE-VPN管理ツールでサーバーにアクセスし設定した。

HTTPS対応化

このままWebページを公開するとHTTPのままで暗号化されていない。
そのためLet's Encryptという無料SSLツールで証明書を発行して貰いHTTPS化する。

command
[root@hogehoge]# yum install mod_ssl
Complete!

[root@hogehoge]# systemctl restart httpd
/* 上でSoftEtherの443番ポートを停止していないとエラーが出る */

[root@hogehoge]# httpd -M 
 ssl_module (shared)
/* 実行中のモジュールを確認出来る。ssl_moduleが稼働していることが分かる */

次にLet's Encryptの証明書を発行して貰うためのプログラム、「certbot」をインストールする。

command
[root@hogehoge]# yum install epel-release
[root@hogehoge]# rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-8.rpm <---必要ないかも?
[root@hogehoge]# yum -y install certbot
[root@hogehoge]# yum install python3-certbot-apache

ただこのままでは証明書を発行することが出来ないので、httpd.confを編集しこのサーバーのIPアドレスとドメインを紐付ける。なお、予めお名前ドットコム等ドメインを購入したサイト等でDNSレコードの設定をしておく必要がある。

command
[root@hogehoge]# cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.old
[root@hogehoge]# vi /etc/httpd/conf/httpd.conf

--- /* ファイルの最後尾に加える */
NameVirtualHost *:80

<VirtualHost *:80>
ServerAdmin root@hogehoge.com
DocumentRoot /var/www/html
ServerName hogehoge
</VirtualHost>

/* hogehogeにはドメイン名を入れる */
---
[root@hogehoge]# systemctl restart httpd
[root@hogehoge]# certbot --apache -d hogehoge.com

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Requesting a certificate for hogehoge.com

Successfully received certificate.
(略)

このままだと証明書が発行されたきりになり、証明書の有効期限が切れるとHTTPS接続時に不具合が発生する。このため、crontabで定期的に証明書を更新して貰う。

command
[root@hogehoge]# crontab -e
* * */7  *  * root /usr/bin/certbot renew <--- 7日毎にcertbotを実行し証明書が更新出来るか確認する

今回はここまで。

参考URL

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?