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


27

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

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


1
ルートのローカルアクセスを無効にしても、セキュリティ上の利点はほとんどありません。物理的にアクセスできるユーザーは、無数の方法でボックスを作成できます。
jscott

取られたポイント。ハードドライブを取り出すことができる場合は、rootとしてログインする必要はありません。ルートアカウントを変更する前の状態に戻す方法を知りたいのですが、今は好奇心からだけです。
ベンハイマーズ

以下の私の回答の更新をご覧ください。今、あなたが何を求めているのか理解できたと思います。
jscott

ルートを無効にしながら@jscottは侵入に対するセキュリティ上の利点を提供しない可能性がありますが、ルートとしてログインしないと、誤ったrmコマンドなどでシステムを破壊することに対する安全スイッチが提供されます。私が苦労して学んだこと。はい、単にルートとしてログインすることはできませんが、無効にすることはシステム管理者の観点から意味があります。
codechimp

VPSやホスティングに最適のようです。
jjxtra

回答:


33

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

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

PermitRootLogin no

をいじるだけで、簡単なブート可能なCD / thumbdrive /etc/shadowchsh -s /bin/false rootすべて元に戻すことができます。

コメントごとに更新:

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

sudo usermod -p '!' root

攻撃者がそのシステムに物理的にアクセスできる場合、システムは安全ではありません。/ etc / shadowを編集できる場合、何が/ etc / ssh / sshd_configの編集を妨げますか?
スヴェン

@SvenW:そのとおりです。だからこそ、ルートを「無効にする」ことさえ気にすることのセキュリティ面での有用性について議論します。はい、ルートのアクセスを制限します。アカウントを無効にします。
jscott

4
sudo service ssh restart .......これを実行した後。
Naweed Chougle

参照されるヘルプファイルは、次のコマンドを提供するようになりました
。sudo

21

ssh経由のリモートログインを参照していると仮定します。に次の行を追加します/etc/ssh/sshd_config

PermitRootLogin no

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

sudo service ssh restart

これでジョブが実行され、rootアカウントをそのままの状態に保つことができます(または、必要と思われる場合は、とにかく無効にしてみてください)。


申し訳ありませんが、これはローカルログイン用です。質問を更新しました。
ベンハイマーズ

4

主な質問は数回回答されましたが、二次回答は回答されていません。SSHは、セキュリティ機能として無効にされた後、rootを入力した後にパスワードの入力を求めます。また、lkjfiejlksjiとしてログインしようとするとトリガーされます。

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


良い答え、ありがとう!fail2banは既にセットアップされています。rootとしてログインする最初の試みでブロックするように設定しますが、良いアドバイスです。
ベンハイマーズ

2

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

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

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


受け入れられた回答によると、「*」は「!」と同じであると感じているため、この回答も投票します。
ベンハイマーズ

1

JR他

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

sudo vi / etc / ssh / sshd_config

PermitRootLogin yes(noに変更)

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

保存して終了してから

sudo service ssh restart

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


0

ローカルルートログインを無効にする場合は、/ etc / passwdを変更して、/ bin / bashを/ bin / falseに置き換えることができます。しかし、私はそれをテストしていないので、ルートセッションをサイドで開いたままにしてテストし、奇妙な副作用があればそれを元に戻します。


0

再:セキュリティ。

私見では、できる限り多くのことができます。セキュリティに関しては、ボックスのプラグを抜いてネットワークから切り離し、3インチ厚の防弾カーバイドスチールボックス内で溶接するだけです。

このように考えてください。もし人々が国防総省、CIA、FBI、およびシティバンクをハッキングできるなら、私たちの残りの人たちはあまり良くできません。

再:SSHセキュリティ。

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

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

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

ジム(JR)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.