web-dev-qa-db-ja.com

パスワードなしのSSHによる認証時のSudoパスワード

Amazon EC2でネットワーク化されたいくつかのボックスを用意しました。それぞれのボックスは、SSH(rsyncなど)を介して互いに自動通信しています。そのため、これらの各マシンでSSHキーを作成して、パスワードを要求せずにSSHが互いにSSH接続できるようにしました。同様に、私の個人アカウントもキーベースでパスワードなしです。

私の知る限り、十分に文書化された方法を使用してSSHを適切に保護しています。

この構成では、Sudoを使用するためにパスワードを入力する必要がないことに気付きました。 su rootを試しても、rootにはパスワードがないため、どこにも行きません。ただし、Sudo -iを実行すると、パスワードを要求されず、すぐにrootが許可されます。それは少し心配です。

したがって、2つの質問:

  1. すべきこれは私を心配させますか、それとも私は偏執的過ぎですか?
  2. キーベースのSSH認証を使用するときにSudoパスワードを設定することは可能ですか?

これらのボックスのいくつかはWebサーバーであり、私が疑わしい品質であると恐れるもののWebアプリケーションをホストしています。 (私はそれらを記述しなかったので、それらは疑わしいです!)very非特権ユーザー(www-data)がファイルを提供するように構成されたサーバーのアクセス許可とサーバーの権限を持っています。しかし、私の恐れは-どういうわけか-攻撃者がWebアプリケーションを危険にさらし、特権をより特権のあるユーザーにエスカレートし、単純にrootにSudo -iする可能性があることです。

Www-dataが権限を昇格させる可能性のある私のソフトウェアの脆弱性については知りませんが、何らかの理由でSudoを使用するためのパスワードを設定することをお勧めします。

また、記録のために、SSH経由でログインしてからpasswdを実行してパスワードを設定しようとしましたが、エラーが発生しました。正確な言い回しは覚えていませんが、「トークン」のようなものでした。どちらにしても、パスワードが付かなかったので、根本的なレベルで何か誤解しているように思います。

被写体に照明を当てていただければ幸いです。ありがとう。

-更新:2011年12月7日-

すべての思慮深い説明をありがとう。実際、問題は/etc/sudoersにあるようです。その方向を教えてくれてありがとう。

議論を完了するために、これを文書化すると思いました。 /etc/sudoersを調べたところ、次の行が見つかりました。

# ubuntu user is default user in ec2-images.  
# It needs passwordless Sudo functionality.
ubuntu  ALL=(ALL) NOPASSWD:ALL

実際、私は特権操作にubuntuユーザーを使用しています(ここでも、Webサーバーはwww-dataとしてのみ実行されています)。そのため、私が抱えていた問題を説明していると思います。

誰かが推測でフォローアップしたい場合はwhy ubuntuユーザーにパスワードなしのSudo機能が必要な場合は、ぜひ聞いてください。そうでなければ、少なくとも当分の間、私は一人で十分にまかせて、設定をそのままにしておこうと思います。存在しない問題を予防的に解決しようとしているときに、稼働中のシステムを壊したくありません。

あなたの時間と専門知識を貸してくれてありがとう。

27

Sudoパスワードの入力を求められない理由は、ユーザー(またはユーザーグループ)の/ etc/sudoersでNOPASSWDが有効になっているためです。このファイルは、ルートとしてvisudoを使用して編集できます。

パスワードなしの認証については、公開鍵認証がサーバーの認証に推奨される方法であることは間違いありません。推測するパスワードがない場合、ブルートフォース攻撃は成功しません。

Rootパスワードがないという事実はいくつかのベストプラクティスに違反しますが、正しく述べたように、ボックスに入るのにキーが必要な場合、それはおそらく大丈夫です。 rootパスワードがあると、SSHを使用してrootとしてログインすることを奨励できます。これは、sshd_configで無効にする必要があります。

私の唯一の質問は、あなたの最後の段落の1つに関連しています。

また、記録のために、私はSSH経由でログインしてからpasswdを実行してパスワードを設定しようとしましたが、エラーが発生しました。正確な言い回しは覚えていませんが、「トークン」のようなものでした。どちらにしても、パスワードが付かなかったので、根本的なレベルで何か誤解しているように思います。

Sudoでrootになっているときにパスワードを設定できませんでしたか?それとも通常のユーザーと同じですか?公開鍵認証を実施しても、ユーザースペースのパスワードやルートパスワードの設定が妨げられることはありません。 この問題はSuperUserで説明されています が発生している可能性があるため、少し役立つと思います。

私はあなたの質問のセキュリティ面に答えたと思います。さらに情報が必要な場合は、コメントやフォローアップを追加してください。

14
dshaw

SSH鍵認証を有効にしているときに、パスワードをrootに設定できます。たとえば、Ubuntu disrtoでは、rootアカウントが「無効」になっています。 root権限で実行される、インストール中に作成されたアカウントにSudoを実行できます。

www-data$Sudo -iを実行すると、次のメッセージが表示されます。

www-data is not in the sudoers file.  This incident will be reported.

Ubuntuで言及されているdshawは通常無効になっています

# %Sudo ALL=NOPASSWD: ALL

したがって、パスワードを入力せずにSudo -iを実行してrootを取得することはできないはずなので、チェックアウトすることをお勧めします。

お役に立てれば。

3
Bassec