VPS借りた時にやるべき最低限の初期設定
個人ページの証明書が切れていたんだけど、過去の自分が設定した諸々がわからなくなっててうまく更新できなかった。
なので改めてVPS立ち上げ直して、その設定も諸々残しとこうと思います。この記事はその中の初期設定編。
環境
今回のサーバーはこんなスペックです。
ちなみに利用しているサービスはConoHaです。
OS | CentOS 8.0(64bit) |
CPU | 2Core |
メモリ | 1GB |
SSD | 50GB |
一般ユーザの作成とrootでのログインの無効化
普段からrootでログインするのは危険なので無効化します。
その代わりに、普段使う用のユーザを作成し、root権限が必要なコマンドはsudoを使うようにします。
まずはサーバへ入り、ユーザの作成とパスワードを設定。
[root@ip ~]$ useradd hoge [root@ip ~]$ passwd hoge Changing password for user hoge. New password: Retype new password: passwd: all authentication tokens updated successfully.
次に、sudo権限を持たせるためにwheelグループへ追加。
[root@ip ~]$ usermod -G wheel hoge
wheelグループのユーザーはすべてのコマンドをsudoで実行できるように visudo
コマンドで設定を書き換えます。
[root@ip ~]$ visudo
ここの #
を一つ消すだけ。
## Allows people in group wheel to run all commands # %wheel ALL=(ALL) ALL
ConoHaのVSPの場合は初めから有効になってました。
最後にrootユーザでのログインを禁止します。
[root@ip ~]$ vi /etc/ssh/sshd_config PermitRootLogin yes ← ここを no に変更
sshdを再起動します。
[root@ip ~]$ systemctl restart sshd.service
これでrootユーザでログインできなくなっているはずなので、別窓で確認してみるといいと思います。
ついでに作成したユーザでログインして、sudoが使えるかもみてみるといいかもしれません。
パッケージのアップデート
起動した際のパッケージが最新かどうかわからないので、アップデートします。
CentOS 8になって、パッケージ管理がyumからdnfに変更されたそうです。
[hoge@ip ~]$ sudo dnf -y update
SSH接続できるようにする
公開鍵の設定
パスワードで接続するのもセキュリティ上やりたくないので、鍵で接続できるようにします。
ぼくはMacを使っているので、Macでの設定を書きます。
ConoHaは画面上で作成できますが、ほかのVPSでも対応できるようにコマンドで作成します。
$ cd ~/.ssh $ ssh-keygen -t rsa -f conoha_rsa
作成したら、ssh接続をするユーザ(今回はhoge)でサーバへログインします。
その後、Macで作成した公開鍵の方をサーバに登録します。
[hoge@ip ~]$ mkdir .ssh [hoge@ip ~]$ chmod 700 .ssh [hoge@ip ~]$ vi .ssh/authorized_keys
ここで、Macで作成した公開鍵(~/.ssh/conoha_rsa.pub)の内容を貼り付けます。catコマンドとか使えば内容を確認できます。
保存したら、権限を変更します。
[hoge@ip ~]$ chmod 600 .ssh/authorized_keys
Firewallの設定
sshは22番ポートを使いますが、デフォルトのままだと攻撃のリスクがあるため、port番号を変更します。 今回は例として、60022番に設定します。
まず、firewallコマンドで、ポート60022番を解放します。
--permanent
オプションを忘れると、再起動時に設定が消えるので注意です。
[hoge@ip ~]$ sudo firewall-cmd --add-port=60022/tcp --zone=public --permanent
ポートの解放状況は、以下のコマンドで確認できます。
[hoge@ip ~]$ sudo firewall-cmd --list-all
SELinuxの設定
次に、SELinuxの設定を変更します。
[hoge@ip ~]$ sudo dnf install -y policycoreutils-python-utils [hoge@ip ~]$ sudo semanage port -a -t ssh_port_t -p tcp 60022
sshdの設定
sshデーモンの設定を書き換えます。
また、鍵を使ってログインするので、パスワードによるログインも禁止します。
[hoge@ip ~]$ sudo vi /etc/ssh/sshd_config
変更前
(略) #Port 22 (略) PasswordAuthentication yes
変更後
(略) Port 60022 (略) PasswordAuthentication no
設定したら、またsshdを再起動します。
[hoge@ip ~]$ sudo systemctl restart sshd.service
Macからログインできるか試します。
$ ssh hoge@ip -p 60022 -i ~/.ssh/conoha_rsa
Firewallの設定(HTTP、HTTPS)
最後にFirewalldの設定を行います。
先ほどはsshのためのポートだけ設定しましたが、ここではHTTP、HTTPSも追加します。
[hoge@ip ~]$ sudo firewall-cmd --add-service=http --permanent [hoge@ip ~]$ sudo firewall-cmd --add-service=https --permanent
設定を反映させるため、reloadします。
[hoge@ip ~]$ sudo firewall-cmd --reload
これで一通りの設定は終わりです。
ここからWebサーバー用の設定なんかを追加していきます。