はじめに
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 でログインできなくなった事を確認します。