誰かが私のサーバーにメールを送信したとき。
[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
SELinuxは学ぶのがかなり大変です。一体、私はまだすべてを完全に理解していません。しかし、私を助けてくれたのは、パッケージsetroubleshoot
をインストールし、sealert
およびaudit2allow
ツールの使用方法を学ぶことでした。監査ログを調べ、拒否されたものを見つけ、ブロックされた理由の基本的な説明を提供し、必要に応じて許可するルールを作成するのに役立ちます。 EPELリポジトリの一部だと思います。見てみな。
あなたは試すことができます:
semanage permissive -a postfix_local_t
プロセスタイプpostfix_local_t
に対してSELinuxを許容的に設定することになっています