rootユーザーを無効にする必要がありますか?


21

ルートパスワードを削除し、リモートログインを無効にし、基本的に管理者がsudoを使用して管理アクションを実行することを要求する必要がありますか?

代替テキスト

回答:


16

すべてのサーバーでルートアカウントが無効になっています(にsp_pwdp設定されています*)。これはsudo、すべてのルートアクセスに必要です。[1] これの目的は、すべてのスーパーユーザーアクティビティを監査することです。これにより、システムに対して行われたことを確認できます。

よりハードコアなオプションについてはsudo、ログファイルに書き込みを行って(ではなくsyslog)、ファイルを追加専用にする(chattrLinuxまたはchflagsBSDで使用)ことができます。この方法では、誰も監査を後で編集できません。

[1]ルートシェルを実行しない、またはルートプロセスからシェルエスケープを実行するというポリシーもあります。(sudo sh -c '...'ただし、パイプラインまたはリダイレクトを行うために使用しても構いません。)


3
「シェルも実行されていません!」ええと、「シェルにドロップ」コマンドが含まれているプログラムがいくつあるか知っていますか?シェルのジョブ制御を見始めるでも…
ウォンブル

sudoオプションとしてではなく、ポリシーとして「シェルなし」について説明しています。(sudoにはnoexecオプションがありますが、ユーザーが実行できる特定のプログラムを制限しない限り、明らかに防水ではありません。)
クリスジェスターヤング

「sudo -s」を使用できないようにsudoを構成することは可能ですか?個々のコマンドを構成するために、sudoersのみを使用しました。

@グラハム:できます。ただし、上記のコメントからわかるように、ユーザーが別の方法で実行できる場合でも、何も停止しません。唯一の防水ソリューションは、ユーザーが実行できる特定のプログラムをリストするホワイトリストアプローチです。すべてのプログラムを動的にリンクする必要があります(「noexec」オプションが機能するように)。
クリスジェスターヤング

管理者を信頼するポリシーとして、これは良いことです。人々が実行するコマンドを確認できます。これは、変更されたものを解決しようとするときに非常に役立ちます。
ハミッシュダウナー

15

rootユーザーを無効にすることを強くお勧めします。または無効にrootログインを制限する(securettyを経由し、 sshd_configファイルを経由し、 PAM経由して、あなたが持っているものを経由して)あなたのシステムがそれを許可する場合は、制限ルートの権限またはルートの役割を分割(どのように似RSBACはそれをしない。)しかし、してください、してください、やりますパスワードを削除してルートアカウントを無効にしないでください。無効にすると、経由でシステムにログインできなくなりますsuloginsuloginfsckによって報告された重大なエラーの場合に知っているすべてのinitscriptによって使用されます。つまり、ルートファイルシステムが破損した場合、システムからロックアウトされます。

明確にするために:「パスワードを削除してルートアカウントを無効にする」とは、最終的に!または/ etc / shadowなどのパスワードフィールドに*を付けます。「ルートログインメカニズムを変更して、パスワードの入力を求められないようにする」という意味ではありません。


これは、ルートパスワードを設定しないUbuntuなどのシステムで問題になりますか?「sudo sulogin」を実行できるようですが、おそらく重要な側面を理解していないでしょう。
jldugger 09年

残念ながら、Ubuntuがルートを処理する方法についてはよく知りません。しかし、「sudo sulogin」を実行して、rootパスワードの入力を求められることなくrootシェルを取得できれば、問題はありません。おそらく同じメカニズムがブート時に適用されるからです。起動スクリプトを介してsuloginのgreppingを探して、いつ、どのように起動されたかを確認することができます。
ミハイリンバザン2009年

1
Ubuntuはsuloginを使用しません。シングルユーザーモードに移行すると、すぐにルートシェルが取得されます。ただし、ほとんどの場合、これが問題ではない理由を確認するには、私の投稿(私の投稿)を読んでください。
クリスジェスターヤング

また、持つという主張があるsuか、sudoより多くのセキュリティはあなたが唯一の専用のrootユーザーを持っている場合は、避けることができるリスクのユーザ手段が利用できるお使いのシステムでは。それはフクロウ安全に配布(およびそれらの間の太陽のデザイナー)の著者が提唱する位置だ- unix.stackexchange.com/questions/8581/...参照して自分の位置を提示しようとします。
imz-イヴァンザカリヤシェフ

私はちょうどこの非常に問題がありました:私はルートユーザーをロックし、ハードリセットのためにfsckが強制されました。幸いなことに、fastbootオプションを使用して障害のあるLinuxをブートし、rootアカウントのロックを解除し、再起動して最終的にfsck手動で実行できました。
トミー

3

すべてのサーバーでルートアカウントを有効にしています。すべての管理者は独自のユーザーを持ち、それを介してログインする必要があります。そこからルートに切り替えます。(ルートsshは無効です)

管理者の数を少なくしてください。そのサーバーで実際にルートアクセスが必要な人だけがパスワードを持っています。

私はsudoのファンではありません。ルートシェルに対して 'sudo bash'を実行するのは簡単すぎます。私はこれを無効にできることを知っていますが、なぜ気にしますか?管理者タスクを実行し、互いに対話できるユーザーを制限するだけです。ルート端末を無人で開かないようにするポリシーがあります。ログインして、su、作業をして、ログアウトします。

注:私はかなり小さな会社(従業員数50人)で働いており、2人のパートタイム管理者(1 Windows / 1 Linux)だけで回ります。この方法は、桁違いに多くのユーザーがいる場合に最適ではない場合があります。個人的にはまだsudoを使用しないでしょう。ルートアクティビティを記録する方法は他にもあります。


コンソールからルートシェルが必要な場合は、sudo bashから開くのではなく、 'sudo -i'を実行するだけで済みます。個人的には、rootユーザーとして直接ログインするという考えは、悪意のある移動(つまり、rootシェルを開いたまま誤ってコンピューターのロックを解除したままにしておく)には危険すぎるため、あまり好きではありません。
スポイケ2009年

ただし、それによってロギング/監査が失われます。全員がsudoを使用するようにし、企業ポリシーでsudo bash、sudo -i、またはsudo -sを実行できないようにします。これにより、監査証跡が得られ、すべてのログを中央のログホストにプッシュしている場合、人々がポリシーに従っていることを簡単に確認できるためです。
クリストファーキャシェル2009年

それはフクロウのセキュアdistribuionの著者によって撮影したと主張したアプローチだ(およびそれらの間の太陽デザイナー) - unix.stackexchange.com/questions/8581/...を参照して自分の位置を提示しようとします。
imz-イヴァンザカリヤシェフ

2

ルートパスワードを無効にすることは、誤った「良いアイデア」です。あなたがそれを必要とする日、あなたは本当にそれを必要とします。(構成によっては、例としてシングルユーザーモードでログインする必要があります)

ルートリモートログインを無効にすることは、ローカルでログオンできる場合にのみ関係します。

はい、すべてのサーバーにsudoをインストールする必要があります。便利で設定も簡単です。なぜそれを使用したくないのですか?


シングルユーザーモードでの起動がgrubオプションの場合はどうなりますか?
jldugger

ルートアカウントを無効にする目的は何ですか?sudoバイナリまたは構成(または使用するツール)にブレーキをかけたらどうしますか?
ブノワ

Disabling root remote login might be relevant but only if you are able to log on locally.これは明らかに露骨に間違っています。任意のアカウントでリモートでログインできます。ルートリモートログインを無効にしても、ローカルアクセスに制限されることはありません。
ダン

2

ルートのSSHアクセスを無効にし、ユーザー(多くの場合は開発者)にsshキーの使用を要求します。辞書攻撃が多すぎるため、SSHポートを変更することは選択肢ではありません。

そうすれば、良いパスワードを書くために誰かの能力を信頼する必要はありません。内部に入ると、管理者だけがsudoの権限を持ちます。


とにかくSSHポートの変更は無意味です。単純なポートスキャンで簡単にそれを提供します。マシンのポート22にtelnetで接続すると、SSH-2.0-OpenSSH_4.7p1 Debian-8ubuntu1.2が取得されます
Matt Simmons

@MattSimmonsはい、ただしほとんどの辞書攻撃は自動化されており、非常に初歩的です。ポートスキャンは気にしません。ポート22でランダムなIPアドレスへの接続を試み、タイムアウトすると、リスト内の次のIPに進みます。これはセキュリティ対策ではなく、自動化されたポート22攻撃を取り除くのに役立ちます。明らかに、標的を絞った攻撃はまったく異なる球技です。
ダン

2

私はこのスレッドが本当に古いことを知っていますが、リンクされた記事のロジックにいくつかの重大な欠陥があり、「暴言」を感じています-sudoはホワイトリストとブラックリストの両方を許可します。リンクされた記事で指定されている黒だけではありません-これはAAA(認証、承認、および監査)の概念をスキップします-suおよびsudoは、段階的な認証と説明責任の両方を許可します。

シナリオ1管理者が誤っていくつかの不正なコードをシステムに導入し、rootとしてログインするとコードに完全なアクセス権が与えられ、管理者は何が起こったのかわからなくなる可能性があります。少なくとも段階的なログイン(例:su / sudo)では、不正なコードが昇格した権限を使用しようとした場合、管理者は認証を求められます。

シナリオ2不正な管理者が情報の取得/変更を希望しています。コンソールに接続し(物理コンソールアクセス、HP iLo / similar、またはvGuestコンソールアクセス)、rootとしてログインし、必要な操作を行います。コンソールアクセスを取得するために使用される名前付きのアカウント/アクセスカードがない限り、おそらく監査証跡の多くはありません。

  1. 彼らが本当に彼らが言っている人であることを確認してください。個人情報の盗難は問題ではなく、本人確認が問題です。
  2. 権限を確認し、その時点で必要なものだけを提供します。段階的な承認により、必要なときに昇格できます。
  3. すべてを監査し、記録を残して、誰が、何を、いつ、どこで行ったかを把握します。できれば理由も

1

ポリシーとして、すべてのrootコマンドにsudoを使用するよう全員に要求する必要があります。「sudo bash」などを実行する理由はありません。それは、無知のために、または自分のトラックをカバーするためだけに便利です。

ルートアカウントへのログインを直接無効にすると、重大な問題が発生したときにシステムを修正できなくなります。

管理者が自分でログインし、rootとして実行されるすべてのコマンドに対してsudoを実行し、シェルに分割しないように説得できない場合、技術的な解決策がない深刻な問題が発生します。


1

Owlセキュア配布の作成者(およびソーラー設計者)は、反対の慎重に正当化された視点を持っています。例えば、答えを参照してください/unix/8581/which-is-the-safest-way-to-get-root-privileges-sudo-su-or-login/8660#8660ため彼らの主張のプレゼンテーション。スーパーユーザーのアクション(誰が何をしたか)を監査する問題も、彼らの観点で対処されています(基本的に、解決策は、異なる名前を持つ複数のrootユーザーを持つことです)。

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