web-dev-qa-db-ja.com

Ubuntuでrootログインを無効にするにはどうすればよいですか?

しばらく前にrootにパスワードを与えたので、rootとしてログインし、いくつかのことを実行できました。サーブをインターネットに公開するので、セキュリティを強化するためにrootログインを無効にしたいと思います。私はこれを行ういくつかの方法(Sudo passwd -l root/etc/shadowをいじるなど)を見てきましたが、それを行うための最良/最も賢明な方法が何であるかを述べているところはありません。私はSudo passwd -l rootを実行しましたが、これはinitスクリプトに影響を与える可能性があり、ログインしようとするとパスワードを要求するためフラットアウトではなくパスワードを要求するため、見た目ほど安全ではないというアドバイスを見ましたアクセスを拒否します。それを達成する方法は何でしょうか?

編集:明確にするために、これはrootとしてローカルにログインするためのものです。 SSH経由のリモートログインはすでに無効になっています。 SSHを介してrootとしてログインしようとすると、rootのパスワードの入力を求められます(常に失敗します)。悪いですか?

31
Ben Hymers

ルートを無効にすることは潜在的な問題の価値があることは私には議論の余地があります。このように構成されたサーバーをテストしたことはありません。私の好みは、ルートローカルアクセスのみを許可することです。攻撃者がサーバーに物理的にアクセスできる場合は、インストールを「保護」するために行ったすべてのことを忘れることができます。

以下を含むように/etc/ssh/sshd_configを編集して、ルートsshアクセスを無効にします。

PermitRootLogin no

/etc/shadowchsh -s /bin/false rootをいじる操作はすべて、単純な起動可能なCD /サムドライブで元に戻すことができます。

コメントごとに更新:

help.ubuntu.com から:「デフォルトでは、ルートアカウントのパスワードはUbuntuでロックされています」。特に「ルートアカウントの再無効化」のセクションを参照してください。 rootのアカウントの状態をリセットするには、install-defaultに次のコマンドを使用します。

Sudo usermod -p '!' root
36
jscott

私はあなたがssh経由のリモートログインを参照していると思います。次の行を/etc/ssh/sshd_configに追加します。

PermitRootLogin no

sshサービスを再起動します

Sudo service ssh restart

これで問題は解決し、rootアカウントをそのまま維持できます(または、必要だと思われる場合は、とにかく無効にしてみてください)。

23
kynan

主な質問は何度か回答されていますが、副次的な質問には回答されていません。セキュリティ機能として無効にされた後、SSHはrootに入るとパスワードを要求します。 lkjfiejlksjiとしてログインしようとした場合にもトリガーされます。

これは、誰かがユーザー名の山をテストするのを防ぎ、システムで有効なものを見つけようとするためです。ただし、セキュリティの観点から、SSH経由でrootを無効にした場合は、ブルートフォース検出プログラム(fail2banなど)もセットアップし、誰かがrootとしてログインしようとした場合でもブロックされるように設定します追加の攻撃を試みます。

5
Ryan Gooler

暗号化されたパスワードを/ etc/shadowの*で置き換える(2番目のフィールド、最初の ':'の後に続く)のが最良の方法です。また、sshのrootログインを無効にし(この方法では、sshをrootとしてログインすることは不可能です)、sshを証明書によるログインに制限できます。これは、パスワードベースのログインよりもはるかに安全です。

ほとんどの場合、SSHは外部からアクセスできる唯一のサービスであり、ルートログインを潜在的に許可するため、このドアはロックされます。

これをさらに制限するために、fail2banのようなものをインストールできます。fail2banは、何度もログインに失敗した後、一定期間IPアドレスを禁止します。

2
Sven

JRら、

あなたのAllowUsersが私をこれに導きました https://help.ubuntu.com/community/SSH/OpenSSH/Configuring

Sudo vi/etc/ssh/sshd_config

PermitRootLogin yes(noに変更)

(ファイルの最後に行を追加)DenyUsers user1 user2

保存して終了してから

Sudoサービスssh再起動

私の問題を解決しました。ありがとうございます。

1
jeff

ローカルrootログインを無効にする場合は、/ etc/passwdを変更して、/ bin/bashを/ bin/falseに置き換えてみてください。ただし、まだテストしていないので、ルートセッションを開いたままにしてテストし、奇妙な副作用がある場合は元に戻します。

0
Julien Vehent

Re:セキュリティ。

IMHOできることは、セキュリティの観点から、ボックスのプラグを抜いてネットワークから切り離し、厚さ3インチの防弾型の超硬鋼製の箱の中に溶接するだけです。

このように考えてみてください。国防総省、CIA、FBI、およびシティバンクをハックできるとしたら、私たちの残りの人は単なる死すべき者にはあまり効果がありません。

Re:SSHセキュリティ。

Sshを介したrootアクセスを禁止するだけでなく、「AllowUsers」パラメーターを自分のユーザー名だけに設定しました。この方法では、私のユーザー以外の誰もssh経由でログインできません。私の場合と同様に、これは冗長になる可能性があります。とにかく1つの非rootユーザーのみを作成します。

残念ながら、他の人が以前に何度も言ったように、誰かがボックスに物理的にアクセスできるとすぐに、すべての賭けはオフになります!

Sshログインのための証明書交換?うーん。 。 。 。いいですね。どうやってやるの?

ジム(JR)

0
Jim