LinuxでSSHルートログインを無効にする方法


ある[ルートのアカウントは、Linuxの下で SSH を介してクラッカーによって最も標的にされたアカウントです。ネットワークに公開されている、またはさらに悪いことにはインターネットに公開されているLinuxサーバでSSHルートアカウントを有効にすると、システム管理者が高度なセキュリティ問題を引き起こす可能性があります。

サーバのセキュリティを強化するために、LinuxのSSHルートアカウントはすべての場合で無効にする必要があります。通常のユーザーアカウントでのみリモートサーバーにSSH経由でログインしてから、sudoまたはsuコマンドで特権をrootアカウントに変更してください。

SSHのrootアカウントを無効にするには、まず以下のコマンドを発行してroot権限を持つ通常のアカウントでサーバーコンソールにログインします。

$ su tecmint
$ sudo su -   # Drop privileges to root account

コンソールにログインした後、下記のコマンドを発行してメインのSSH設定ファイルを開き、お気に入りのテキストエディタで編集します。 SSHメイン設定ファイルは通常、ほとんどのLinuxディストリビューションの/etc/ssh/ディレクトリにあります。

# vi /etc/ssh/sshd_config

このファイルで、「 PermitRootLogin 」という行を検索し、以下のファイルの抜粋のように行を更新します。一部のLinuxディストリビューションでは、「 PermitRootLogin 」行の前にハッシュタグ記号(#)が付いていますが、これはその行がコメント化されていることを意味します。この場合、ハッシュタグ記号を削除して行をコメント解除し、行をnoに設定します。

PermitRootLogin no

上記の変更を行ったら、ファイルを保存して閉じ、SSHデーモンを再起動して、使用しているLinuxディストリビューション固有の以下のいずれかのコマンドを発行して変更を適用します。

# systemctl restart sshd
# service sshd restart
# /etc/init.d/ssh restart

新しい設定が正常に適用されたかどうかテストするためには、下記のコマンドの発行によってリモートシステムからSSHによってサーバにrootアカウントでログインすることを試みて下さい。

以下のスクリーンショットに示すように、rootアカウントのリモートSSHログインプロセスは、当社のSSHサーバーによって自動的に拒否されるはずです。

それで全部です! SSHアカウントにrootアカウントでパスワードまたは公開鍵認証メカニズムを介してリモートログインすることはできません。