私は現在、ハッキングに対するサーバーの強化に取り組んでいます-特に、sshを介してrootとしてログオンする試みが大量に発生しています。fail2banを実装しましたが、なぜデフォルトでrootログオンが許可されるのでしょうか?非sudoベースのディストリビューションでも、通常のユーザーとしてログオンして切り替えることができるので、sshでrootログオンを許可することには明らかな利点があるのでしょうか、それとも誰も変更する必要のないものですか?
私は現在、ハッキングに対するサーバーの強化に取り組んでいます-特に、sshを介してrootとしてログオンする試みが大量に発生しています。fail2banを実装しましたが、なぜデフォルトでrootログオンが許可されるのでしょうか?非sudoベースのディストリビューションでも、通常のユーザーとしてログオンして切り替えることができるので、sshでrootログオンを許可することには明らかな利点があるのでしょうか、それとも誰も変更する必要のないものですか?
回答:
sshでrootログオンを許可することには明らかな利点があります
バックアップを実際に実行するには、リモートシステムにrootが必要なバックアップシステムがいくつかあります。リモートシステムでメンテナンスタスクを実行するために、キーベースの認証を使用してセットアップされたものを見ることは珍しくありません。
デフォルトがからPermitRootLogin yes
に変更されることを強く希望しますPermitRootLogin without-password
。これにより、キーベースの認証のみが許可されます。rootアカウントへのリモートパスワード認証はほとんど必要ありません。
システム(Ubuntuなど)では、パスワードを無効にしたrootアカウントでシステムをセットアップすることが一般的になっています。パスワードが無効になっているアカウントに直接認証する方法がないため、デフォルトの設定ではそれほどリスクはありません。
また、十分に複雑なパスワードのrootアカウントがある場合、sshを介してリモートからrootにログインしようとするブルートフォース攻撃が成功する可能性は非常に低いことも考慮してください。rootアカウントを無効にするとセキュリティがさらに強化されますが、強力なパスワードを持っている場合は必要ない場合があります。強力なパスワードをdenyhostsやfail2banのような反応的なツールと組み合わせると、ルートパスワードをブルートフォースにしようとする試みが機能するリスクは通常ほとんどありません。
ネットワークのリスクと要件に基づいて、インストールの完了後にシステムを強化することは、常に良い習慣です。重要ではなく、ユーザーデータのないシステムでは、医療記録や銀行記録を保存するシステムと同じレベルの強化は実際には必要ありません。
確かではありませんが、海外からのインストールを行う人々がログインできるようにしたいと思います。他のユーザーがまだいないため、最初のログインはrootである必要がある場合があります。
ただし、ユーザーを作成してsudo権限を付与した後は、sshd構成でrootとしてログインオプションを無効にする必要があります。
また、SSHポートを22以外に変更することをお勧めします。これにより、マシンの安全性が向上するわけではありませんが、無駄な/迷惑な要求がすべて停止されます。
追加の保護策として、ルートログインを防止することを検討してください。数年前、ブルートフォースがピークに達していましたが、最近では、デーモン(apache、pureftpdなど)から見えるものを介して脆弱性を探す傾向があります。明日SSHDでエクスプロイトが見つかった場合、ルートログインの防止は優れたアイデアになります。SSHDは成熟していて安全ですが、決してわかりません。最近のエクスプロイトは、カーネルでの特権昇格、またはカーネルでのサードパーティ製アプリの使用に向けられているため、ルートログインを防止しても、状況は変わりません。
Debianベースのディストリビューションはすでに切り替えを行っていますが、RedHatベースのディストリビューションはそれを提案しています(ベストプラクティスのドキュメントを読んだ場合)。
まあ、rootは有効なユーザーであり、sshdはそれを許可してくれます。たとえば、OpenBSD(OpenSSHの同じ人)では、インストール中にユーザーを作成するように求められないため、ボックスにアクセスするにはrootを使用する必要があります。
一部のデスクトップベースのディストリビューションでは、追加のユーザーを作成する必要がありますが、サーバーでは実際には必要ありません。
また、sudoまたはsuがrootとしてログインするよりも安全であるというこれらの引数は、大きな神話です。たとえば、Ubuntuの場合、ユーザーはデフォルトでsudoを使用してANYコマンドを実行できるため、侵入したすべての攻撃者がANYコマンドをrootとして実行することもできます。セキュリティの観点からはかなり役に立たない。
これはディストリビューション固有のものです。許可する人もいれば許可しない人もいます。
ディストリビューションを管理している場合は、インストール時にシステムができるだけ強化されるように構成します。いくつかの機能を無効にすることを忘れることよりも、いくつかの機能を有効にすることを忘れることの方が良いです。