LinuxサーバーにrootでSSHログインし続けるのをいい加減やめなさい

「rootでログインした方が楽だから」——この一言でLinuxサーバーのセキュリティが崩壊します。rootユーザーはシステム上のあらゆる操作が可能な神アカウントです。rootで直接SSHログインを許可することは、マスターキーを玄関ドアに挿しっぱなしにして外出するようなものです。いつ誰が使っても文句は言えません。

rootとsudoの関係をたとえで説明すると「会社のマスターキーと部門キー」のようなものです。マスターキー(root)はすべての部屋を開けられますが、常に持ち歩く必要はありません。必要なときだけ金庫から取り出す(sudo)——普段は部門キー(一般ユーザー)で十分です。しかもsudoには「誰が・いつ・何をした」という記録が残ります。

システム管理者M:「本番サーバーのファイルが突然消えたんですが、誰がやったかわからなくて」
セキュリティ担当N:「全員rootで作業していたんですか?」
M:「はい、共有のrootパスワードで…」
N:「それでは誰がやったか特定できません。全員に個別アカウントを作ってsudoで作業させる体制にしなかったことが根本原因です。sudoなら/var/log/auth.logに全操作記録が残ります」

rootでのSSHログインを禁止して一般ユーザーに切り替える手順です。

# 1. 一般ユーザーを作成してsudoグループに追加
useradd -m -s /bin/bash deployer
passwd deployer
usermod -aG sudo deployer

# 2. sudoの動作確認
su - deployer
sudo whoami  # rootと表示されればOK

# 3. SSHの設定でrootログインを無効化
sudo vi /etc/ssh/sshd_config
# PermitRootLogin no  に変更
# PermitRootLogin prohibit-password  でも可(鍵認証のみ許可)

sudo systemctl reload sshd
# sudoの操作ログを確認
grep sudo /var/log/auth.log | tail -20

# 特定ユーザーのsudo履歴
grep "deployer.*sudo" /var/log/auth.log

# sudoersファイルの安全な編集(visudoを必ず使う)
sudo visudo
# deployer ALL=(ALL:ALL) ALL  を追加

「rootで作業した方が速い」は短期的な楽さと引き換えに、長期的なリスクと監査不能を招きます。チームで運用しているサーバーならなおさら、誰が何をしたかを記録できる体制が必須です。今日、rootログインを無効化して一般ユーザー運用に切り替えましょう。

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です