selinux は pam_exec コマンドの実行を防ぎます。

selinux は pam_exec コマンドの実行を防ぎます。

私はユーザーがログインするたびに(ssh、gdm、またはttyを介して)私に知らせるようにコンピュータを設定しようとしています。次に、sshdを設定して次に追加します/etc/pam.d/sshd

session optional pam_exec.so /etc/pam_scripts/notify.sh

何らかの理由でコマンドが失敗しても ssh でログインしたいので、これはオプションです。

まず:この行を配置しました。後ろに pam_selinux closeそして今後 pam_selinux open、ようにここで提案

whoamiスクリプトにaを配置して実行, I can see that the command is run asルートを記録すると、具体的には次のようになります。

uid=0(root) gid=0(root) groups=0(root) context=system_u:system_r:sshd_t:s0-s0:c0.c1023

問題は、ログを見ると、selinuxがcurl内部で使用されているスクリプトの実行をブロックすることがわかるということです。

AVC avc:  denied  { name_connect } for  pid=1810 comm="curl" dest=443 scontext=system_u:system_r:sshd_t:s0-s0:c0.c1023 tcontext=system_u:object_r:http_port_t:s0 tclass=tcp_socket permissive=0

私のスクリプトには次のタグがあります。

unconfined_u:object_r:etc_t:s0

Change contextを試しましたが、chcon常に権限が拒否されました(rootを使用しても)。それで、おそらく私が完全に理解していないことをしているようです。

ところで、私もseteuidpamルールを使ってみましたが、何も変わりませんでした。

通常、selinuxが実行アクセスを許可するために必要なスクリプトコンテキストを決定する方法を理解していません。

また、スクリプトはうまく実行されますが、selinuxはカールを停止するため、スクリプト自体よりもカールに関連しているようです。

この問題をどのように解決できますか?

ベストアンサー1

すでに答えを見つけましたが、この問題を解決しているので、子孫のためにここに残しておきます。


これらの selinux 拒否が発生した場合は、このaudit2allowツールを使用して、その操作を許可する更新された selinux ポリシーを作成できます。まず、selinuxを許可モードに切り替えることができます。

setenforce 0

ログインして、PAM設定が期待どおりに機能していることを確認してください。私たちはその可能性が非常に高いので、これを行います。追加selinuxは最初の後に拒否され、許可モードで実行するとすべて記録されます。

これで selinux を強制モードに戻すことができます。

setenforce 1

ランニングaudit2allow -a。これにより、次の内容が生成されます。

#============= sshd_t ==============

#!!!! This avc can be allowed using one of the these booleans:
#     authlogin_yubikey, nis_enabled
allow sshd_t http_port_t:tcp_socket name_connect;

私が「いいね」と言ったのは、(a)以前に述べたように、現在のPAM設定に関連する他の拒否がある可能性があり、(b)このコマンドは監査ログのすべてのエントリを確認するため、以前の拒否結果を取得できるためです。 。実際、現在の問題とは関係ありません。

この場合、既存の selinux ブール値を設定すると、拒否された操作を許可できることがわかります。それは次のとおりです。

setsebool nis_enabled=1

これがあなたに必要な場合があります。または、次のようにselinuxポリシーの更新を作成できます。

audit2allow -a -M local

これにより、新しいポリシーファイルが作成されますlocal.pp。次のコマンドを実行してアクティブにできます。

semodule -i local.pp

selinuxの使用に関する良い情報があります。ここ、より詳細な使用法の概要が含まれていますaudit2allow

おすすめ記事