さくらのVPSのOSをCentOS7.4に再インストールした直後の設定
さくらのVPSにRails5
が動くproduction
(本番)環境の構築を行ったときの記録。現時点では、デフォルトのOSがCentOS6.9
だったが、3つの理由でさくらのコントロールパネルからOSの再インストールを行いCentOS7.4
で環境を再構築することにした。
CentOS7.4に乗り換えた理由
- rbenvで
ruby2.5.0
がインストールできなかった
Bug #14234 - gitのデフォルトバージョンが
1.7.1
(ユーザ名を含めないcloneができなかった) - そもそもテスト環境は
CentOS7.4
なので合わせるべき
「OSの再インストール」〜「rails5
が動くproduction
環境の構築」までの手順のため、記事をOSの再インストール後のサーバ設定編
とRails設定編
に分けて記載することとした。
OSの再インストール
さくらVPSのコントロールパネルにログインし、
各種設定 > OSインストール
から、「標準OS」を選び「CentOS7 x86_64」を選択。rootのパスワードも設定して、ボタン押下。速攻でOSがCentOS6.9からCentOS7.4になりました。
※手順はこちら
OS再インストール
確認
SSHでログイン後
# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
CentOS 7.4になっていることが確認できた。
CentOS7作成直後のサーバ設定
※参考手順はこちら
チュートリアル:CentOS 7(さくらのVPS)サーバ作成直後に設定しておくべき初期セキュリティ設定
参考サイトには必要な手順は以下となっているが、
・ 一般ユーザの作成 ・ 公開鍵認証の設定 ・ sudo 設定 ・ SSH 接続時、root でのログインを禁止 ・ SSH 接続時、パスワード認証を禁止
今回は、公開鍵認証ではなくパスワード認証で進めるかわりに、SSHできるユーザの制限を加え、さらに参考サイトの応用編であるSSH接続用ポート番号の変更も行う以下の設定を行うこととした。
・ 一般ユーザの作成 ・ sudo 設定 ・ SSH 接続時、root でのログインを禁止 ・ SSH ログインできるユーザを制限 ・ SSH 接続用ポート番号の変更
初期状態ではrootでログインできるため、以下はroot
ユーザでログインし、設定した。
一般ユーザの追加
# useradd owani
# passwd owani
Changing password for user owani.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
sudo設定
「wheel」グループに所属させます。
# usermod -G wheel owani
CentOS6よりも設定が簡単になっている。
SSHログイン認証の設定
sshの設定ファイルを編集
# vim /etc/ssh/sshd_config
- root アカウントでのログインを許可しない
PermitRootLogin no
- ログインできるユーザを制限
AllowUsers owani
- Portの変更
22
⇒2022
# Port 22 コメントアウト Port 2022
ファイアーウォールの設定変更
/etc/firewalld/services/以下の設定が優先されるのでファイルをコピーして作成する。
# cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/ssh.xml
# vim /etc/firewalld/services/ssh.xml
22の部分を2022に変更。
ファイアーウォール再起動
# systemctl reload firewalld
sshdの再起動
# systemctl restart sshd
firewallの設定
CentOS7からはファイアーウォールはiptable
ではなく、firewalld
というサービスに変わってます。
ステータスの確認
# systemctl status firewalld
いま適用されているゾーンは何かを確認
# firewall-cmd --get-default-zone
public
public
というゾーンが使われてる。
httpの追加
デフォルトの状態だと、ファイアーフォールに登録されているサービスはSSHのみだったので、追加する。
# firewall-cmd --add-service=http --zone=public --permanent
success
httpsの追加
# firewall-cmd --add-service=https --zone=public --permanent
success
設定状態の確認
# firewall-cmd --list-services --zone=public --permanent
dhcpv6-client ssh http https
これで必要なサービスが登録できた。
ミドルウェア更新
# yum update -y
700以上のupdateがあった。
OSの再インストール後の設定はここまで。次は、Rails5
のProduction
環境をApache2.4+Passenger5.2
で構築していく手順だ。
CentOS7.2だったはずなんだけど、7.4になってるのは気のせいか。。