目次
rootで直接ログインできないように設定
LinuxやUnix系OSならrootユーザーが存在していることは明らか。
rootでsshできるなんて気持ち悪すぎなんです。
パスワード認証が許されていれば、総当たり攻撃(ブルートフォースアタック)の餌食になりますよ。
デフォルト設定では、ログインしやすいようにセキュリティの強度が下げてあります。
ssh設定内容の確認
rootでのsshログインがどのように設定されているのか確認してみましょう。
su
設定ファイルを確認するためにはroot権限が必要です。
sshd -T | grep permitrootlogin
RHEL8やCentOS8の結果
RHEL8やCentOS8までのバージョンではこのように表示されると思います。
permitrootlogin yes
rootでのパスワード認証がデフォルトで許可されています。
DebianやUbuntu、RHEL9の結果
permitrootlogin prohibit-password
通常のパスワード認証は拒否されますが、公開鍵認証は許可されます。
rootによるsshログインを停止する設定
パスワード認証よりは安全、rootのsshを拒否することでより安全にします。
cd /etc/ssh
cpコマンドでsshd_configファイルをsshd_config.orgとしてバックアップします。
cp -p sshd_config sshd_config.org
viでsshd_configを編集します。
vi sshd_config
viのコマンドモード(escキーを押せばコマンドモード)で /PermitRootLogin でキーワード検索。
PermitRootLogin no
行頭の#を削除し「PermitRootLogin no」と書き換えます。
sudoできるユーザーを登録
今後は一般ユーザーでsshログインをして、管理者権限が必要な時はsudoします。
CentOSの場合は以下を参照してください。
usermodでsudoユーザーを登録
usermod -G sudo USER_NAME
ユーザーがsudoできるか確認
su - USER_NAME
rootから一般ユーザーになって、sudoします。
sudo -s
プロンプトが「#」に変われば管理者権限になったということです。
sshdの再起動
sshdを再起動すれば設定が反映されます。
service sshd restart
sshdプロセスの確認
再起動後はプロセスが起動しているか必ず確認しましょう。
ps aux | grep sshd
起動していれば以下のように表示されます。
root 2183431 0.0 0.2 12176 2912 ? Ss Dec19 0:00 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups
root 2192372 0.0 0.8 13828 8740 ? Ss 09:59 0:00 sshd: USER_ID [priv]
USER_ID 2192510 0.0 0.5 13972 5960 ? S 10:00 0:00 sshd: USER_ID@pts/0
sshログインの確認
もう一つ重要なのがsshログインチェックです。
今ログインしているターミナルはそのままの状態にして、別のターミナル起動してログイン確認をします。
- rootログインが無効化されている
- 一般ユーザーでログイン
- sudoで管理者権限になれるか
意図した設定になっているか必ず確認してください。
次に行うべき設定
rootのログインをできなくした後は、sshログインできるIPアドレスを絞ります。
コメント