web-dev-qa-db-ja.com

selinux Missing Type Enforcement(TE)許可ルール

FTPテストを実行して全機能をテストするとき、「mkdir」などの一般的なコマンドでavc拒否エラーが発生するのはなぜですか?

AVC拒否メッセージは次のとおりです。

type=AVC msg=audit(1365021919.400:283): avc:  denied  { create } for  pid=2210     comm="mkdir" name="64F77DCE-9C9F-11E2-90A8-39AEF085A14A"   scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:user_home_t:s0 tclass=dir
    Was caused by:
            Missing type enforcement (TE) allow rule.

            You can use audit2allow to generate a loadable module to allow this access.

FedoraのWebサイトによると、Missing Type Enforcementルールは通常、SELinuxポリシーのバグが原因で発生します。それで、これは本当にバグですか?

4
usa ims

Webサーバーをユーザーのホームディレクトリに書き込みしようとしているようです。この動作を許可するSELinuxリファレンスポリシーはありません。ユーザーのホームディレクトリからコンテンツを提供する必要があるかどうかを慎重に検討する必要があります。

このアクセスが本当に必要な場合、次のことができます audit2allowutility ロードしてアクセスを許可できるローカルポリシーモジュールを生成します。

3
Michael Hampton

私は混乱していますApache経由のFTPですか、それとも単なる古いFTPですか?

単純な古いFTPの場合は、新しいディレクトリを作成しようとしている場所のSELinuxコンテキストを確認してください。正しく設定されていない可能性があります。

Apache経由の場合:

次のようなコマンドを使用して、Apacheがホームディレクトリを使用できるようにすることができます。

setsebool -P httpd_enable_homedirs
chcon -R -t httpd_sys_content_t ~user/public_html

参照: http://fedoraproject.org/wiki/SELinux/Apache

1
user167729

追加するポートに異なるセキュリティコンテキストが指定されると、エラーが発生します。 Tomcat基本HTTPポート8080を使用している場合、ポートはhttp_cache_port_tタイプです。 nginxビルド8081を使用していて、transproxy_port_tまたはその両方のコンテキストを使用している場合、ApacheWebサーバーは接続できないためエラーを生成します。セキュリティコンテキストを変更する必要があり、-aオプションの代わりに-mオプションを追加で使用しない場合。

~# semanage port -l |grep 8081
transproxy_port_t   tcp      8081

その後

~# semanage port -l |grep http_port_t
http_port_t   tcp      80, 443, 488, 8008, 8009, 8443

追加

# semanage port -m -p tcp -t http_port_t  8081
1
AHashmi