カテゴリー
SugiBlog Webエンジニアのためのお役立ちTips

CGIでsendmailが使えない

この記事は最終更新日から1年以上経過しています。

# OS: Red Hat Enterprise Linux 5
# perl: 5.8.5
# qmail: 1.03
# apache: 2.2.8

apacheはプリインストールのものを廃止し、別途ソースからインストール。
sendmailを廃止し、qmailを導入したところ、CGIからメールが送れないという現象が発生。
別のサーバー(CentOS)では同じCGIを実行しても正常に送信できる。
perlで文法を確認してもエラーはなし。

CGIからのメール送信を実行すると、auditからセキュリティの警告が発生。

auditからのメッセージ
audit (1259217229.577:0): avc: denied { execute } for pid=15250 exe=/usr/bin/perl name=sendmail dev=dm-0 ino=13893837 scontext=root:system_r:httpd_sys_script_t tcontext=root:object_r:var_t tclass=file

テスト用のCGIでチェックすると、sendmailはあるが、実行可能ではないと出る。
調査の結果、原因はSELinuxの設定により拒否されていることがわかった。
おそらく原因はディストリビューションに含まれないソフトウェアをカスタムにインストールしたからではないかと推測される。

【解決法】※セキュアかどうか不明のため暫定
GUI上でSELinuxのポリシー設定の
「Allow HTTPD cgi support」のチェックを解除し、再起動
するとCGIからメールが送れるようになった。

【以下、メモ】
設定ファイルに追加しようと思った
allow httpd_sys_script_t var_t:file {execute};

設定ファイルがあると思った場所(見たがなかった)
domains/program/*.te

設定を変更し、反映させる
/etc/selinux/strict/src/policy/以下でmake reloadを実行

この記事がお役に立ちましたらシェアお願いします
3,112 views

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です