web-dev-qa-db-ja.com

Linux Sudoコマンドのセキュリティ問題?

  1. Red Hat Enterprise 5Linuxボックスを使用しています。ユーザーが/ etc/sudoersファイルにあるかどうかを確認し、ユーザーがSudoでコマンドを実行すると、ユーザーはroot権限でこのコマンドを実行します(rootパスワードを知らなくても、ユーザーはSudoを実行するだけでユーザー自身のパスワードを入力する必要があります) Sudoでコマンドを実行するため)。それは正しい理解ですか?

    1. はいの場合、それはセキュリティホールですか? root以外のユーザーがroot特権で実行できるので?

よろしくお願いします、ジョージ

7
George2

これはセキュリティホールではなく、少なくともsu以下です。

Sudoは、管理者がルートシェルを使用せずにルートにすばやくアクセスするための方法です(これは危険な場合があります)。

Sudoは、ユーザーが自分のパスワードを入力することを要求するだけで、実際にルートアクセスを許可します($ Sudo whoamiを試してください)。ただし、全員が/etc/sudoersファイルに含まれている必要はありません。

Sudoのマンページを見ると、Sudoをいくつかの簡単なコマンドに制限する方法がわかります。

たとえば、ユーザーbob$ Sudo poweroffの実行を許可せずに、$ Sudo cat /etc/shadowの実行のみを許可することができます。

したがって、正しく構成して使用すれば、セキュリティホールではありません。ユーザーにルートシェルを持たせたくない場合は、$ Sudo suのようなコマンドを禁止することを検討してください。

19
ereOn

それがセキュリティホールだったとしたら、Sudoはすでに取り除かれていただろう。これは意図的なものであり、ユーザーのパスワード、rootのパスワード、またはパスワードをまったく要求しないように構成できます。

とにかくルートだけがそれを設定できるので、セキュリティホールはありません。ルートは、アクセスできるユーザー、ユーザーごと、グループごとに、誰がどのパスワードを入力する必要があるかを構成します。

また、最後の部分について:「root以外のユーザーはroot権限で実行できるため」:これがSudoプログラムの要点です。

11
Sadface

Sudoは安全です-一部のディストリビューション(Ubuntu)が使用し、デフォルトで推奨するのに十分な安全性があります。

とは言うものの、ユーザーに包括的なSudo権限を与えると、そのアカウントとrootアカウントの間の分離が大幅になくなります。たとえば、ユーザーtimmyに包括的なSudo権限を付与すると、timmyアカウントはrootアカウントと同じ特権になります。 timmyのアカウントに侵入した人は誰でも、rootとして何でもできます(ほとんどの場合、timmyのパスワードが必要です)。

Pro-Sudo引数

  • 通常、「root」というユーザーとして誰もログインできないように設定します。スーパーユーザーのログインをブルートフォース攻撃するのが難しくなる可能性があります。
  • ユーザーがスーパーユーザーとして実行できるコマンドをきめ細かく制御できます(ただし、通常は1つのアカウントにすべての特権を付与し、異なる名前の「root」と同じ役割を効果的に果たします)。
  • 実行するすべてのコマンドにスーパーユーザー権限が必要なわけではない場合に、rootとしてログインしたままにしたいという誘惑を取り除きます。

反Sudo引数

  • Sudoは、スーパーユーザーレベルの特権をユーザーに配布する慣行を奨励しているように見えるかもしれませんが、これはおそらく良い考えではありません。
  • Sudoは非常に柔軟であるため、セットアップが少し複雑です。これにより、安全性を高めることができますが、注意を怠ったり、何をしているのかわからない場合に、不注意でセキュリティギャップを開いてしまう可能性もあります。
  • 一般に、スーパーユーザー権限を持つアカウントを日常的に使用することは悪い考えと見なすことができ、Sudo権限を持つことは次善の策です。これに対する反論は、ユーザーパスワードが(ほとんどの場合)スーパーユーザーステータスに昇格する必要があることであり、これは、実行している侵入者/不正なプロセスには知られていない可能性があります。

本質的に、それらは2つの異なる考え方であり、どちらも独自のアプローチを支持するディストリビューション全体を持つのに十分有効です。

私は、Sudo以外のアプローチの方が快適です。これは、Debianユーザーとして私がより慣れているからです。須藤の柔軟性よりもrootアカウントを持つことの単純さが私にとって勝ちだと思います。私はrootログインをリモートで(つまりSSH経由で)許可していません。他の誰も許可しないことをお勧めします。

3
thomasrutter

Sudoは次の理由で安全です。

  1. rootユーザー、または別のSudo対応ユーザー(「visudo」または「$ EDITOR/etc/sudoers」を実行できるユーザー)は、/ etc/sudoersを変更して特権を付与する必要があります。

  2. Root権限で実行できるものを正確に制限および指定できます。これにより、サーバー上にさまざまなレベルの管理者ユーザーを配置できます。

  3. 特権ユーザーとして、既存の/ etc/sudoersファイルを表示して、どのユーザーが権限を持っているかを確認できます。

  4. 管理者のチーム間でrootパスワードを共有する必要はありません。

  5. 明確な監査証跡を提供して、Sudoコマンドで行われたことの完全な説明があります

2
cpbills

Rootとしてログインするのは便利ではないので、rootとしてログインするよりもセキュリティに優れていると思います。セキュリティの一部である説明責任にとっては確かに優れています。

だれがそれを使用するかを制限する必要があります。通常、ルートパスワードを知っている人に限定しますが、より巧妙になり、特定の人ができることを制限することもできます。

気になるセキュリティの問題は、すべてのSudoコマンドに自分のパスワードを入力する必要がないことです。同じ端末からもう少し時間をかけずに入力すると、パスワードなしでSudoを受け入れます。これはおそらく、パスワードを継続的に入力させないようにするためですが、悪意のあるユーザーランドソフトウェアがそれを悪用する可能性があると考えられます。個人的にリスクを評価するのに十分な知識がありません。

1
David Thornley

sudoersはrootとして自動的にアクセスできません。構成されたユーザーとしてアクセスできます。他の非ルートユーザーとして実行ツールへのアクセスをユーザーに提供することは可能であり、正しいことです。

シェルまたはシェルアクセスを許可できるコマンドを実行するためのアクセス権を持つすべてのユーザーは、rootパスワードで信頼できるユーザーである必要があります。 Sudoを使用すると、rootパスワードなしでシステムを実行できます。 Sudoのすべての使用がログに記録されますが、rootとして実行されるコマンドの場合はそうではありません。

前述のように、特定のコマンドへのアクセスを制限することが可能です。 sudoersの例には、root権限を必要とするタスクを実行する必要がある特定のユーザーに付与したいコマンドセットがいくつかあります。 Sudoを使用することにより、rootパスワードを与えずにこれを許可できます。

Root権限でスクリプトまたはコマンドを実行できるユーザーは、変更できるため、実質的にrootアクセスが付与されています。あなたはこれらの人々を信頼する必要があります、さもなければ彼らにアクセスを与えないでください。

Rootアクセスを必要とする多くのタスクがあります。 Sudoを使用すると、これらのタスクをバックアップオペレーター、ウェブマスターなどに安全に委任できます。

須藤は他の選択肢よりもはるかに安全です。設定を誤ると、または信頼できないユーザーに不正なアクセスが与えられると、セキュリティリスク(ホール)になります。

0
BillThor

Sudoコマンドを使用すると、あるユーザーが別のユーザーの権限でコマンドを実行できます。他のユーザーはrootにすることも、他のユーザーにすることもできますが、デフォルトはrootです。これはこの目的のために設計されており、さまざまな方法で物事をロックするのに役立つ多くの構成オプションがあり、多くの人々によって長年にわたって精査されてきました。すべてのセキュリティ問題に適しているわけではありませんが、適切に使用すると、非常に便利なツールになります。ただし、適切に使用しないと、解決するよりも多くの問題が発生する可能性があります。

0
Tekhne