はじめに
DTI VPS の初期設定では、root アカウントにパスワードでリモートログインできるため、下記 3 点をセキュリティ対策として実施したいと思います。
- リモートログインができる作業用の一般ユーザーを作成して、パスワードではなく SSH Key を使ったログインにする
- root でのリモートログインを禁止する
- SSHサーバーのポート番号を変更する
SSH サーバー設定調整
root で直接ログインさせないようにするかわりに、root と同等の権限を持つ wheel グループに属する一般ユーザーを作成します。また、パスワードでのログインを禁止し、SSH Key のログインを必須とするよう設定します。
wheelグループに属する一般ユーザーの作成
# useradd user1 -G wheel
# sudo su - user1
$ ssh-keygen
(Enterキーを何度か押下して完了する。秘密鍵にパスワードを設定する場合はここで入力する)
$ cat ~/.ssh/id_rsa
(この文字列(秘密鍵)をローカルPCに id_rsa-server などと名前をつけたファイルとして保存する)
$ cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
(SSH サーバーに、この公開鍵と対になる秘密鍵からのログインを受け入れるよう、authorized_keys に登録する)
$ rm ~/.ssh/id_rsa
(秘密鍵はサーバーから削除しておく)
$ logout
ログイン動作確認
ここで、一度一般ユーザー user1 でログインしてみます。
ID: user1 SSH Key: 先ほど作成した id_rsa ファイル
SSH サーバー設定調整
root での直接ログインを禁止し、またパスワードでの認証も無効にします。SSH ポート番号も初期のものから変更して、ボットなどによるログインチャレンジの頻度を下げます。
# cp /etc/ssh/sshd_config /etc/ssh/sshd_config.org
# vi /etc/ssh/sshd_config
# diff /etc/ssh/sshd_config.org /etc/ssh/sshd_config
17c17
< Port 3843
---
> Port 13843
48c48
< #PermitRootLogin yes
---
> PermitRootLogin no
78c78
< PasswordAuthentication yes
---
> PasswordAuthentication no
ログイン動作確認
root でログインできなくなった事を確認します。