これは何
CentOS 7のサポート終了に伴い、外出先からの私的VPNサーバとして利用していたSoftEtherサーバを再構築した際の、個人的な作業メモになります。SoftEtherの設定情報は、すべてvpn_server.configファイルに格納されているので、必ず作業開始前にバックアップをVPS外に取得して下さい。また、定期実行していたスクリプトや、cronの設定なども必要に応じて設定を退避させておきましょう。
作業手順
さくらのVPSの再作成
サーバーの管理ユーザ情報
- OSインストール方法:標準OS
- OSを選択してください:Rocky Linux
- バージョン:9 x86_64
- 管理ユーザー名:rocky
- 管理ユーザーのパスワード:******
- SSHキー登録:(任意)
サーバーに関する設定
- スタートアップスクリプト:(なし)
- パケットフィルター設定:カスタム/TCP/1**** すべて許可(作業時SSH用。VPN用は最後に追加)
sshに関する設定
- sshキーペア(ECDSAやED25519)を作成し、それぞれ配置します(省略)。
- 必要に応じてsshd_configを編集し、サービスをリスタートします。
$ sudo vi /etc/ssh/sshd_config
Port 1****
PermitRootLogin no
PasswordAuthentication no
$ sudo systemctl restart sshd
$ sudo systemctl status sshd
その他、必要に応じてパッケージの更新など初期作業を行います。
$ sudo dnf clean all
$ sudo dnf update rpm
$ sudo dnf -y update
…
Docker CE環境の構築
古いバージョンが存在する場合は、アンインストールします(無いはずですが…)。
$ sudo dnf remove docker \
docker-common \
docker-selinux \
docker-engine
リポジトリを追加して、必要なパッケージをインストールして、dockerを起動します。
$ sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
$ sudo dnf -y install docker-ce docker-ce-cli containerd.io
$ sudo systemctl enable docker
$ sudo systemctl start docker
dockerコンテナを起動します。設定情報はvpn_server.configから戻すので、PKSやUSERSなどのeオプションは付けなくても大丈夫です。server_logをホスト側から簡単に見られるようにvオプションを付けていますが、このあたりの運用は、お好みで。。
$ sudo docker run -d --cap-add NET_ADMIN --name vpnserver \
--restart always \
-p 500:500/udp -p 1194:1194/udp -p 4500:4500/udp -p 443:443/tcp -p 1701:1701/tcp -p 5555:5555/tcp \
-v /var/log/vpn_server_log:/usr/vpnserver/server_log \
--security-opt="no-new-privileges:true" \
siomiz/softethervpn:latest
方針次第ですが、コンテナのタイムゾーンをJSTにしたい場合は以下を実行します。
$ sudo docker ps
$ sudo docker exec -it <コンテナID> /bin/bash
bash-5.1# apk --no-cache add tzdata
bash-5.1# cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
$ sudo docker restart <コンテナID>
バックアップしておいた、vpn_server.configを戻してリスタートします。
$ sudo docker ps
$ sudo docker cp vpn_server.config <コンテナid>:/usr/vpnserver
$ sudo docker restart <コンテナid>
最後に
さくらのVPSのパケットフィルターを設定
先ほどのオプションで追加した分のポートをすべて許可します。
その他設定の復旧
VPN接続があった時に、Slackで通知する等の仕組みを構築していた場合は、その仕組を再度構築します。cronに登録している場合は、忘れずにcronを再設定しましょう。
コメント