RHEL7でsystemdサービスとして実行されているアプリケーションがあり、ログにsyslogを使用します。このアプリケーションの監視を簡単にするために、rsyslogd
このサービスのログを専用ログファイルに書き込むように設定しました。
httpd
このログファイルを使用して、ユーザーがアプリケーションを簡単に監視できるようにサービスを提供したいと思います。
私が直面している問題は、ファイルコンテキストをどのように設定しても、selinux
私が望むことができないということです。
rsyslog
書き込みを許可var_log_t
httpd
読み取りを許可httpd_sys_content_t
rsyslogd
私が知る限り、経由で書き込みと読み取りを許可するコンテキストはありませんhttpd
。
この問題を解決するにはどうすればよいですか?結局のところ、カスタムポリシーモジュールを作成する必要がありますか?
ベストアンサー1
使用を許可するブールがあることを確認できます。audit2why
、この場合、カスタムポリシーモジュールを作成する必要はありません。
そのブール値がない場合にApacheがログを読み取れるようにするには、ポリシーをリンクする必要があります。そしてaudit2allow
ポリシーモジュールを直接作成したり、モジュールテンプレートとして使用できる必須ルールを作成したりできます。
まず、アクセス違反を含むログを生成する必要があります。通常の使用中にすべてのアクセス違反を取得するには、次のように設定します。httpd_t許可モードで。許可モードでは、SELinuxポリシーは指定されたタイプに対しては適用されません(httpd_t)、しかし、ログはいつものように生成されます。
semanage permissive -a httpd_t
設定が有効で、Apacheを使用してログにアクセスできることを確認してから、適用モードを再びオンにします。
semanage permissive -d httpd_t
それではaudit2allow
、新しいモジュールを作成して挿入してみましょう。
audit2allow -a -M apache_logs
semodule -i apache_logs.pp
監査メッセージが次にのみ関連するようにする場合httpd_tモジュール生成のために、grep監査ログの関連行は audit2allow への入力として使用されます。たとえば、
grep "httpd_t" /var/log/audit/audit.log | audit2allow -M apache_logs
生成されたルールを手動で確認または変更する場合レビュー2が許可されています、ソース形式でモジュールを生成するオプションを使用します-m
。必要に応じて、生成されたモジュールソースを確認して編集できます。完了したら、モジュールをビルドする必要があります。ステップは次のとおりですマニュアルページはい。