web-dev-qa-db-ja.com

SELinuxが/ etc / aliasesのメールパイプからスクリプトへの動作を妨げている

誰かが私のサーバーにメールを送信したとき。

[email protected]

PHPスクリプトにパイプしたいので、

/etc/aliases

私が持っているファイル:

somestringthatisnotnecessarilyauser: "|/path/to/php/script.php"

SELinuxを無効にすると、電子メールがPHPスクリプトに完全に送信されます。

SElinuxを有効にすると、メールログにア​​クセス許可エラーが表示されます。

local[19660]: fatal: execvp /path/to/php/script.php: Permission denied

私はSELinuxを初めて使用しますが、問題をSELinuxに固定しました。これを無効にすると、正常に動作するためです。

SELinuxを有効にしてこれを機能させるために適用する必要があるsemanageコマンドやその他のポリシーを誰かが知っていますか?

OSはCentos6.564ビットです

アドレスに電子メールを送信するときに/var/log/audit/audit.logが言っていることは次のとおりです。

type=AVC msg=audit(1395174916.444:476603): avc:  denied  { search } for  pid=25396 comm="local" name="web" dev=dm-0 ino=522246 scontext=unconfined_u:system_r:postfix_local_t:s0 tcontext=unconfined_u:object_r:httpd_sys_content_t:s0 tclass=dir
type=SYSCALL msg=audit(1395174916.444:476603): Arch=c000003e syscall=59 success=no exit=-13 a0=7feaddb404a0 a1=7feaddb40470 a2=7feaddb3b2d0 a3=7fffa4fe93d0 items=0 ppid=21187 pid=25396 auid=500 uid=99 gid=99 euid=99 suid=99 fsuid=99 egid=99 sgid=99 fsgid=99 tty=(none) ses=69836 comm="local" exe="/usr/libexec/postfix/local" subj=unconfined_u:system_r:postfix_local_t:s0 key=(null)

これがgetseboolhttpd_can_sendmailの出力です

$ getsebool httpd_can_sendmail
httpd_can_sendmail --> on
2
Daniel Procter

SELinuxは学ぶのがかなり大変です。一体、私はまだすべてを完全に理解していません。しかし、私を助けてくれたのは、パッケージsetroubleshootをインストールし、sealertおよびaudit2allowツールの使用方法を学ぶことでした。監査ログを調べ、拒否されたものを見つけ、ブロックされた理由の基本的な説明を提供し、必要に応じて許可するルールを作成するのに役立ちます。 EPELリポジトリの一部だと思います。見てみな。

5
Safado

あなたは試すことができます:

semanage permissive -a postfix_local_t

プロセスタイプpostfix_local_tに対してSELinuxを許容的に設定することになっています

1
krisFR