VPS サーバー CentOS 7.4 の初期設定 1

VPSサーバーを初めて利用する際に最初にしたほうがいいこと書いてみました。
WebArenaのCentOS7.4のVPSサーバーとMacのターミナルを利用。

① 作業用ユーザーを作成して、rootログインを禁止する

デフォルトではrootログインしかできない状態ですが、rootログインできる状態という事は、もし誰かにrootログインされてしまうと、なんでもできてしまう非常に危険な状態なので これを禁止します。

まずRPMパッケージを最新に更新しておきましょう
sudo yum -y update
VPSにMACターミナルからSSHで接続してください(デフォルトではroot)
sudo ssh root@IPアドレス -i ./.ssh/デフォルトのroot用sshキー.pem

1. ユーザー作成 (ユーザー名hogeは自由に置き換えてください)
# useradd -G wheel hoge 
※グループ名のwheelはsudoコマンドが使える管理者グループ名として使われる

2. 作成したユーザーにパスワードを設定する 
# passwd hoge
→エンター後にパスワードを求められるので、そこで入力する

nanoエディタのインストール(デフォルトでvi入っているので、好きなエディタ使ってください)
# yum install nano

3. 作業用ユーザーにsudo権限を付与
# nano /etc/sudoers (もしくは sudo visudo )
設定ファイル中で下記がコメント(#)されていた場合はコメントを外して保存
%wheel  ALL=(ALL)       ALL

4. SSHの設定ファイル確認・変更
# nano /etc/ssh/sshd_config

下記2箇所がコメント(#)されていた場合はコメントを外して保存
PubkeyAuthentication yes
AuthorizedkeysFile .ssh/authorized_keys
念のため
PasswordAuthentication no
になっているかも確認

RSSAuthentication no
を設定する必要は2016年のopenSSH7.4から必要なくなりました。

5. sshdをリロードする
(CentOS7からはserviceコマンではなくsystemctlコマンドを使います)
# systemctl reload sshd

アクセス元(自分以外のIP1アドレスからのアクセス)を制限したい場合には下記に設定する
# nano /etc/hosts.allow
→sshd: IPアドレス
を追記する
6. 作業用ユーザー(hoge)の公開鍵保存ディレクトリ作成
(ユーザー名hogeは自由に置き換えてください)
# sudo -u hoge mkdir /home/hoge/.ssh

Macでキーペア作成するので一時SSH終了する
# exit

7. 作業用ユーザーSSH用のキーペアをMacで作成
ssh-keygen -t rsa -b 4096 -f id_rsa_filename
(filenameは他のキーと混同しないよう自由に変えてください、id_rsaだけでもOK)

パスフレーズを設定

8. キーペアがホームに作成されるのでsshを管理している.sshフォルダに移動させる
mv id_rsa_filename ~/.ssh 
mv id_rsa_filename.pub ~/.ssh

9. キーペアのうち公開鍵であるid_rsa_filename.pubファイルをVPSサーバーにSCP(rootの鍵認証を使ってリモートにコピーする)
sudo scp -i ~/.ssh/デフォルトのroot用sshキー.pem ~/.ssh/id_rsa_filename.pub root@IPアドレス:/home/hoge/.ssh/

10. アップロードした公開鍵の名前、所有者・グループ、パーミッション変更
VPSサーバーとssh接続してから下記を実行
# cd /home/hoge/.ssh/
# mv id_rsa_filename.pub authorized_keys
# chown hoge:hoge authorized_keys
# chmod 600 authorized_keys
# chmod 700 /home/hoge/.ssh
# exit

11. Macから作業用ユーザーでSSH
sudo ssh hoge@IPアドレス -i ./.ssh/id_rsa_filename
パスワードいれて接続できれば成功

12. root接続(rootログイン)を禁止する
# sudo nano /etc/ssh/sshd_config
PermitRootLogin without-password
↓
PermitRootLogin no
というように
"without-password → no"
に変更して、保存。

13. sshdリロードする
# systemctl reload sshd
これで最初できていた、rootログインを試して拒否されれば成功