web-dev-qa-db-ja.com

「PermitRootLogin without-password」を使用してSSHでrootログインを許可することは安全な方法ですか?

ライブIPを/etc/hosts.allowに設定し、他のすべてのホストを拒否しました。 PermitRootLogin without-passwordにも/etc/ssh/sshd_configを設定しました。

安全な方法ですか?攻撃者は私のキーをクラックしてサーバーにログインできますか?はいの場合、それがどのように可能かを説明してください。

4
LOKESH

これは、PermitRootLogin機能に関する一般的な誤解です。 without-passwordオプションは、認証がないことを意味せず、誰もがパスワードなしで入ることができます。このすべてのオプションは、ログインが公開鍵認証などのフォールバック方法を使用してのみ可能であることを意味します。攻撃者がルートパスワードを知っていても、秘密鍵がないとログインできません。

ルートとしてログインする必要がある場合は、実際にwithout-passwordを使用するほうが良いです。これにより、ルートアカウントがブルートフォースされないことが保証されます。パスワードを使用してrootとしてログインすると、リモートから攻撃される可能性がありますが、公開鍵認証では、適切な資格情報ファイルを使用してのみログインできます。これは、別のユーザーとしてログインし、suを使用してrootに昇格するよりも優れています。ユーザーがシェルに入力されたすべてのキーストロークを監視できるため、他のユーザーが侵害されるとrootも侵害されるためです。これは root権限を取得する最も安全な方法はどれですか?Sudo、suまたはlogin? の回答で詳しく説明されています。

Rootを持つ必要がない必要がない場合は、別の専用ユーザーを使用することで問題ありません。この場合、PermitRootLogin noを設定することは、必要がない場合にrootアクセスを許可する理由がないため、有益です。

5
forest

はい、暗号鍵を総当たりすることはできないため、安全な方法です。

たとえば、RSAキーを使用する場合(ssh-keygen -t rsa) https://crypto.stackexchange.com/questions/3043/how-much-computing-resource-is-required-to-brute- force-rsa

ハッカーの唯一の解決策は、秘密鍵/公開鍵を盗むことです。

1
Nico

最初にそれが何を意味するか見てみましょう:

PermitRootLogin

Rootがssh(1)を使用してログインできるかどうかを指定します。引数は、「yes」、「without-password」、「forced-commands-only」、または「no」である必要があります。デフォルトは「yes」です。

このオプションを「without-password」に設定すると、rootのパスワード認証が無効になります。このオプションが「forced-commands-only」に設定されている場合、公開鍵認証によるルートログインが許可されますが、コマンドオプションが指定されている場合に限られます(ルートログインが通常許可されていない場合でも、リモートバックアップを取るのに役立ちます) )。他のすべての認証方法はrootでは無効になっています。

このオプションが「いいえ」に設定されている場合、rootはログインを許可されません。

PermitRootLogin noを使用することをお勧めします。これは、rootがシステムに直接認証されることを許可しないためです。

0
Mirsad