SUID権限 - どちらが正しいですか?

SUID権限 - どちらが正しいですか?

Linuxサーバーを保護しようとしており、SUIDの経験はほとんどありません。実行後

find / -perm +4000

多くのプログラムが発見されました。相反するアドバイスを見たことがあります。ここそしてここアクティブにする必要があるものとアクティブにしないでください。

SUIDが有効
/bin/su
/usr/bin/passwd
/usr/bin/gpasswd
/sbin/unix_chkpwd

SUIDが無効
/usr/bin/crontab
/usr/bin/newgrp
/bin/ping
/bin/ping6
/bin/umount
/bin/mount
/usr/bin/chsh
/usr/bin/chfn
/usr/libexec/pt_chown
/usr/bin/sudo
/usr/bin/sudoedit
/usr/bin/chage
/usr/sbin/userhelper
/usr/sbin/usernetctl
/usr/sbin/suexec

不確実な
/usr/libexec/openssh/ssh-keysign
/sbin/pam_timestamp_check

サーバーは、Linux / SFTPユーザーがほとんどいない複数のサイトをホストします。
何を変えるべきですか?また、テストはどうすればよいですか?

ベストアンサー1

自分が何をしているのかわからない場合は、ディストリビューションが好きなようにしてください。この質問をするなら、あなたが十分に知らないことを意味します。だから放っておいてください。

setuid が必要なプログラムは、ディストリビューションで setuid がどのように設定されているかによって異なります。たとえば、Fedoraほとんどのsetuidの使用をsetcapに置き換えました。。たとえば、pingにはCAP_NET_RAWIOrawソケットを開く機能が必要です。これsetcap CAP_NET_RAWIOにより、権限の分離が向上したり、setuidルート(従来の方法、setcap実行可能ファイルは不要)になってソケットを取得できます。

あなたがリストしたプログラムは一般ユーザーが実行するようになっていますが、実行するには追加の権限が必要です。 setuid ビットを削除すると、システムが破損します。たとえば、ping操作が停止します(rootとしてログインしていない場合)。あなたはルートになることができますが、suルートになることはできませんsudo。これは全体のポイントを崩しますsudo。ユーザーはcrontabを設定できません。など。

専用サーバーでは、壊れたものの一部が重要ではない可能性があります。ただし、正しいことをしていることがわかっている場合にのみ、ディストリビューションのデフォルト設定を変更する必要があり、その逆ではありません。可用性はセキュリティの一部であることを覚えておいてください。サーバーにアクセスできないようにロックするか、問題を診断して解決できない場合は、セキュリティが侵害されています。

おすすめ記事