「bin」ユーザーにログインシェルが必要なのはなぜですか?


27

/var/log/auth.logパブリックWebサーバーの1つでの監査中に、これを見つけました。

Jan 10 03:38:11 Bucksnort sshd[3571]: pam_unix(sshd:auth): authentication failure; 
    logname= uid=0 euid=0 tty=ssh ruser= rhost=61.19.255.53  user=bin
Jan 10 03:38:13 Bucksnort sshd[3571]: Failed password for bin from 61.19.255.53 
    port 50647 ssh2

一見したところ、これはsshランダムなハッカーからの典型的なログインスパムのように見えます。しかし、よく見ると何か他のものに気づきました。ほとんどの失敗した/var/log/auth.logエントリはinvalid user、次のようにそれらで言います:

Jan  9 10:45:23 Bucksnort sshd[3006]: Failed password for invalid user sales 
    from 123.212.43.5 port 10552 ssh2

以下のためにその失敗したログインメッセージに関する不穏な事はbin、それがあるということである有効なユーザ/etc/passwdあっても持っているログインシェルは:

[mpenning@Bucksnort ~]$ grep ^bin /etc/passwd
bin:x:2:2:bin:/bin:/bin/sh

で無効にPermitRootLoginしたときにリモートでログインできるすべてのデフォルトのユーザー名をカバーしたと思いました/etc/ssh/sshd_config。このエントリを発見することは、私の妄想心に新しい可能性を開きました。何らかの方法でサービスが実行された場合bin、誰かが何らかの方法でbinボックスで実行中のサービスからユーザーのディレクトリにsshキーを挿入できる可能性があるためbin、可能であればユーザーのログインを完全に無効にしたいと思います。

ご質問

  • このサーバーはリモートであり、修正するのに費用がかかります(つまり、KVMを接続するためにリモートの手にお金を払うことになります)。/etc/passwdエントリを次のように変更すると、壊れる可能性があるものを見つけようとしbinています:

    bin:x:2:2:bin:/bin:/bin/false

  • 次のコマンドを実行して、何binが必要かを調べました...しかし、これらのコマンドにはファイルがなく、が所有するプロセスは見つかりませんでしたbinbinとにかくユーザーは何をしますか?

    $ sudo find / -group bin

    $ sudo find / -user bin

  • ログインシェルを設定する必要がある他のユーザーはいます/bin/falseか?/bin/false参考までに、私はすでに持っていますwww-data

  • 私は妄想しすぎていますか?

それが重要であれば、Debianを実行しています。


関連する質問はunix.stackexchange.com/questions/485505です。
JdeBP

回答:


22

有効なシェルを持ち、パスワードを持たないユーザーは、パスワードベースではない方法でログインできます。最も一般的な方法はsshキーです。cronジョブを実行するには、有効なシェルが必要です。動作するには有効なシェルも必要ですsu bin -c 'wibble'(少なくともLinuxでは動作しsu bin -s /bin/sh -c 'wibble'ます)。

の場合bin、ほとんどのシステムはbin通常の操作のようにコマンドを実行しないため、シェルを設定しても/bin/false問題ありません。

ユーザーまたはルートとしてbin作成する必要があるため、SSHを介したログインを許可する直接攻撃のリスクはありません。言い換えれば、侵入する唯一の方法は、侵入することです。しかし、有効なシェルを持っていると、設定ミスのリスクが高まります。また、SSH以外のサービスを使用したリモート攻撃を許可することもできます。たとえば、攻撃者がリモートでSambaを介してパスワードを設定し、そのパスワードを使用してSSH経由でログインできるとユーザーが報告したとします。/bin/.ssh/authorized_keysbindaemon

システムユーザーの名前をDenyUsersディレクティブにリストすることにより、SSHホールを塞ぐことができ/etc/ssh/sshd_configます(残念ながら、数値範囲を使用することはできません)。または、逆に、AllowGroupsディレクティブを入れて、物理ユーザーを含むグループのみを許可することができます(たとえばusers、すべての物理ユーザーにグループメンバーシップを付与する場合)。

Debianにはこの問題に関して提出されたバグ(#274229#330882#581899)があり、現在オープンで「ウィッシュリスト」として分類されています。これらはバグであり、システムユーザーは/bin/false、特に必要がない限りシェルとして使用する必要があることに同意する傾向があります。


6

ユーザーとしてそれらについて心配する必要はありません。セキュリティグループという意味では「ユーザー」であり、「ログインして使用」という意味でのユーザーではありません。"/ etc / shadow"を見ると、これらすべての "ユーザー"にパスワード(長いソルトハッシュではなく "x"または "!")がないことがわかります。これは、これらのユーザーが何をしてもログインできないことを意味します。

そうは言っても、これらすべてのユーザーの「/ bin / sh」を「/ bin / false」に変更するのが良いかどうかはわかりません。プログラムはこれらのグループの下で実行されるため、必要なコマンドを実行できない場合があります。「/ bin / sh」のままにしておきます。

これらのユーザーについて心配する必要はありません。作成するユーザー(および「/ etc / shadow」にハッシュを持つユーザー)のみを心配する


1
ハッシュなしについての公正なポイント/etc/shadowですが、サービスがユーザーとして実行される場合、誰かがsshログインキーを挿入することは理論的には可能ですか?
マイクペニントン

彼らはすでに、これらのユーザーがあなたの悩み:-Pの少なくともである場合には、ルート権限...と自分のアカウントにログインしている場合にのみ
クリス・

今挙げたすべての制約に同意するかどうかはわかりません。それが本当なら、開いているrpcdポートは問題になりません。しかし、私は個人的に、古いSolarisマシンでのリモートエクスプロイトの結果を目撃しました。攻撃者はrpcボックスのエクスプロイトを介してアクセスを取得しました。 rhostsそのrpcユーザーによって有効になり、書き込み可能になりました(それ以上の詳細を思い出せません...それは何年も前のことです...)同様に、~/.ssh/authorized_keysログインできるユーザーを作成できる場合、これはリスクのように見えます(パスワード入力/etc/shadow
マイクペニントン

はい。ただし、そのエクスプロイトはSSHを介したものではありません。プログラムは通常、自分のユーザーで実行されます(あなたが言ったように)。プログラムのエクスプロイト(たとえば、バッファオーバーフローエクスプロイト)により、悪意のあるユーザーは、そのプログラムがアクセスできるシェルにアクセスできます。ただし、そのプログラムは、そのプログラムが行うことを意図したものを実行するためにそのアクセスを必要とします(そうでなければ、必要なものにアクセスできません)。このため、アクセス許可が正しく設定されていることを確認することが重要です。rpcデーモンの悪用は非常に大きな問題であり、ソフトウェアを更新する(または制限する)ことで解決できます。
クリス

1
申し訳ありませんが、部屋を使い果たしました。プログラムがDOESにアクセスできるシェルを変更すると、その問題は修正されますが、プログラムが実際に行うことになっているものにより多くの問題が生じます。元々、悪意のあるユーザーはそのユーザーを介してSSHで接続できると考えていましたが、それはできません(キーを設定しない限り、あなたが言ったように信じています)。この小さな問題を解決するには、sshd_configで「AllowUsers <username> <username> ...」を指定して、特定のユーザーのSSHアクセスのみを許可します。
クリス

1

これは問題ではないと思います。bin'のホームディレクトリ(/bin)にSSH公開キーを設定するためには、攻撃者はファイルシステムへのルートアクセス権を持っている必要があります。

必要にbin応じて、MatchUserブロックを使用してsshdの構成でユーザーのすべての認証方法を無効にすることができます。

そうは言っても、binユーザーは、最近のDebian派生システムでは使用されておらず、純粋に伝統にうなずいている、またはいくつかの標準に準拠するために存在しているように見えます。

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