CentOS 8で立てるSoftether VPN Server

最近、Re:ステージのモチベーションが爆上がりしています。
2ndライブのあとくらいから段々とモチベーションが上がってきて、「INTERSECT」のツアーライブに参戦した時に完全にハマりました。
アニメを昨日、全話イッキ見をして良さみに浸っておりました。
柊かえちゃんかわいい。

今回の記事はリステの話ではないので、本題に入ります。

9/26にリリースされたばかりのCentOS 8を使ってSoftether VPN Serverを作っていきます。

注意

CentOS8は先日公開されたばかりです。
安定動作しない、見たことないエラーが出るなどなどまだ不安定なことがあるかもしれません。
何があっても自己責任です。

実際の工程

1. CentOSのインストール

とくに難しいことはないです。
実マシンだったり、ESXiなどの仮想基盤にインストールします。特に7のインストールと大きな違いはないです。
構成は「最小の構成」でインストールします。
一つ注意するべきところはboot.iso(サイズが小さいISO)を使う場合、まだリポジトリミラーのサイトが整備されてなくて、リポジトリの設定や、パッケージの設定ができないので、自分でリポジトリの設定するのが面倒な場合はdvd.iso(大きいサイズのISO)をオススメします。

2. OSの設定

2-1. とりあえずSELinuxを切ります。(あまりやりたくないけど)

次のファイルを編集して、SELinuxの設定を変更します。
/etc/selinux/config
6行目のenforcingpermissiveにします。

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=permissive
# SELINUXTYPE= can take one of these three values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

そして、現在のSELinuxの状態を変更するために、次のコマンドを実行します。
sudo setenforce permissive

2-2. SSHを有効化

SSHはないといろいろつらいので、有効化します。

# SSHサービスを有効化
sudo systemctl enable sshd
# SSHサービスを開始
sudo systemctl start sshd

2-3. 必要なパッケージをインストール

Softether VPNをビルドするのに必要なパッケージをインストールします。
– wget
– make
– gcc
– readline-devel
– openssl-devel
sudo dnf install wget make gcc readline-devel openssl-devel

3. SoftEther VPN Serverのインストール

3-1. softether VPNをビルドして設置

Softether VPNをビルドしていきます。

# まず、softether vpnのソースを落としてきます。
$ wget https://jp.softether-download.com/files/softether/v4.30-9700-beta-2019.07.13-tree/Source_Code/softether-src-v4.30-9700-beta.tar.gz

# 解凍します。
$ tar -xf softether-src-v4.30-9700-beta.tar.gz

# ディレクトリの移動
$ cd v4.30-9700

# configureする
$ ./configure

# makeする
$ make -j$(nproc)

# 設置する
$ sudo cp -r bin/vpnserver /opt/

3-2. systemd周りの設定

VPNサーバのサービスをsystemdで管理したいので、serviceファイルを書いていきます。
私は以下のように書きました。
/etc/systemd/system/softether-vpnserver.service

serviceファイルが書けたら、/etc/systemd/system/に設置して、systemdを再読込します。
sudo systemctl daemon-reload

3-3. フィアウォールのルール設定

CentOS 8ではfirewalldをiptablesのラッパーに使ってるので、firewalldのサービスルールを書きます。
私は以下のように書きました。
/etc/firewalld/services/softether-vpn.xml

サービスルールが書けたら、/etc/firewalld/services/に設置して、サービスを有効化します。

# SSL-VPNで使うポートを開放
$ sudo firewall-cmd --permanent --zone=public --add-service=softether-vpn
# IPSecで使うポートを開放
$ sudo firewall-cmd --permanent --zone=public --add-service=ipsec
# firewalldを再読込
$ firewall-cmd --reload

4. Softether VPN Serverの起動

4-1. サービスの有効化と起動

sudo systemctl enable softether-vpnserver
sudo systemctl start softether-vpnserver

ここまでくればあとはGUIポチポチでできるので、簡単ですね!

お疲れ様でした

みんなRe:ステージ!推していこう