apacheがrsyslogd(selinux)で書かれたファイルを提供できるようにする方法

apacheがrsyslogd(selinux)で書かれたファイルを提供できるようにする方法

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。必要に応じて、生成されたモジュールソースを確認して編集できます。完了したら、モジュールをビルドする必要があります。ステップは次のとおりですマニュアルページはい。

おすすめ記事