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