1. 概要

Linux管理者として、SSHを介したルートログインを許可することは非常に悪い習慣でありセキュリティ上の欠陥であると教えられています。 しかし、これを悪い習慣にしているのは何ですか?

このチュートリアルでは、最初にSSH経由でrootログインを許可することがセキュリティの問題である理由を説明します。 その知識を基に、使用するいくつかのベストプラクティスを示します。

2. 悪い人

ルートは、UnixおよびLinuxベースのシステムのスーパーユーザーアカウントです。 rootアカウントにアクセスできるようになると、完全なシステムアクセスが可能になります。 ユーザー名は常にrootであり、アクセス権は無制限であるため、このアカウントはハッカーにとって最も価値のあるターゲットです。

SSHポートが公開されているシステムをインターネットでスキャンしているボットはたくさんあります。 見つかった場合は、一般的なユーザー名を使用してログインし、パスワードを推測しようとします。

ボットが幸運に恵まれ、ルートパスワードを推測すると想像してみてください。 ルートはマシン全体へのアクセスを提供するため、この時点でマシンは失われたと見なす必要があります。

侵害されたユーザーが特権のないアクセス権を持っていれば、影響ははるかに少なかったでしょう。 その場合、違反は封じ込められ、このユーザーのみに限定されます。

一般的なユーザー名はrootだけではないことに注意してください。 同じことがApacheMySQLなどの他の一般的なユーザー名にも当てはまります。

3. ベストプラクティス

SSH経由でrootログインを許可するのは悪いことであることがわかったので、次はいくつかの測定を行います。 いくつかのベストプラクティスを見ていきましょう。

3.1. ルートSSHを無効にする

まず、SSHルートログインを無効にします。 これを行うには、SSHデーモン構成を編集します。これは通常、次の場所にあります。 / etc / ssh/sshd_config。 次の行が含まれていることを確認する必要があります。

PermitRootLogin no

さらに、自分自身をロックアウトしたくないので、通常のユーザーが引き続きユーザー名でログインできるようにします。

AllowUsers username

またはグループ別:

AllowGroups groupname

変更を保存したら、再起動する必要があります sshd それらを効果的にするためのサービス。

3.2. sudoを使用します

管理上の目的で、時々、rootとして特定のタスクを実行する必要があります。 これには、sudoを使用する習慣を身に付ける必要があります。

sudo を使用すると、rootになることなくrootとして機能できます。 これにもそれほど明白な利点はありません。 sudo を介して実行するすべてのタスクは、汎用rootアカウントではなく独自の使用で実行されるため、ログには独自のユーザー名で表示されます。

3.3. SSHキーを使用する

珍しいユーザー名のために可能性は低くなりますが、通常のユーザーアカウントは、ボットによるパスワード推測に対して脆弱です。 また、人々は弱いパスワードを選択したり、覚えやすくするためにパスワードを再利用したりする傾向があります。

パスワードの推測は、強力なパスワード(見た目よりも難しい)を選択するか、失敗したログイン試行を制限することで軽減できますが、パスワードを完全に取り除くことが最善です。

パスワードの代わりに、SSHキーを使用してログインできます。 設定したら、 / etc /sshd_configでパスワードログインを無効にする必要があります。

PasswordAuthentication no

sshdサービスを再起動します。

パスワードとは異なり、秘密鍵を推測することは事実上不可能です。 秘密鍵を盗むことは(弱い)パスワードを推測することよりもはるかに難しいため、SSH鍵を使用することは本質的に安全な選択です。

4. 結論

この記事では、SSH経由でrootログインを有効にすることがなぜ悪いのかを見てきました。 ルートログインを無効にするだけでなく、パスワードログインを完全に無効にしてシステムを保護することも検討する必要があります。

SSHキーを使用し、 sudo を使用することは、システムをより安全にするための優れたステップです。