[Time4VPS][CentOS] root での SSH ログインを無効にする

CentOS でログイン試行の攻撃を防ぐため、特定 IP アドレスからの接続をブロックする方法について書いた。

[Time4VPS][CentOS] 特定 IP アドレスをブロックする – with a Christian Wife
https://wacw.cf/2021/07/23/blocking-access-from-a-specific-ip-for-centos/

その後も攻撃は続いている。IP アドレスを調べて除外設定をすることを定期的にするのは手間だし、いたちごっこにすぎない。

他にも SSH のポート番号を変更してはいるが、あまり効果がないようだ。

[Time4VPS][CentOS] SSH ポートを変更する – with a Christian Wife
https://wacw.cf/2021/06/30/changing-ssh-port-number/

そこで、とりあえず root での SSH ログインを無効にすることにした。

root の SSH ログインを無効にしても、一般ユーザーで SSH ログインをした上で root になることはできる。でも、一端一般ユーザーでのログインを経由しなければいけないので、攻撃者にとっては一般ユーザーのユーザー名の特定というステップが踏む必要があり、より不正アクセスの難易度が上がるわけだ。

環境:
・Time4VPS「Linux 8」(CPU: 2 x 2.60 GHz、RAM: 8192 MB、Storage: 80 GB、Bandwidth: 8 TB、Port speed: 100 Mbps、Virtualization: KVM)、CentOS 7.8
・FileMaker Server for Linux 19.0.1.22(英語)
・macOS Catalina Version 10.15.6(英語環境) で SSH 接続
・Freenom のドメイン(サブドメイン)

(0)root でログインする。

(1)/etc/ssh/sshd_config を以下のように変更する。

変更前:#PermitRootLogin yes
変更後:PermitRootLogin no

(2)以下のコマンドで sshd のサービスを再起動する。

# systemctl restart sshd.service

これで root でログインしようとすると、パスワードを入力したあとに Permission denied, please try again. と表示されるようになる。

***

root でログインするには、一端一般ユーザーでログインした上で、以下のコマンドを実行、root パスワードを入力することで root になれる。

$ su -

参考:
CentOS で root の SSH ログインを制限する(PermitRootLogin=yes) | TURNING POINT
https://turningp.jp/server-client/linux/ssh-permitrootlogin

CentOS Linux: Start / Stop / Restart SSHD Command – nixCraft
https://www.cyberciti.biz/faq/centos-stop-start-restart-sshd-command/