unlabeled_t を使用しない場合は、/etc/zabbix/ にカスタム ファイル コンテキスト タイプを作成する必要がありますか?

unlabeled_t を使用しない場合は、/etc/zabbix/ にカスタム ファイル コンテキスト タイプを作成する必要がありますか?

CentOS 7 マシンに zabbix (監視アプリケーション) をインストールしました。セキュリティ上の理由から、selinux を強制モードのままにしておきたいと考えています。そのため、zabbix が機能するには、いくつかの権限を付与する必要があります。以下を実行します。

ausearch -c zabbix_server -m AVC -i -ts today | audit2allow -m ztest

次のような出力が得られます。

...
require {
     type unlabeled_t;
     type zabbix_var_run_t;
     type zabbix_t;
     class sock_file { create unlink };
     class unix_stream_socket connectto;
     class file { getattr open read };
}

#========== zabbix_t ==============

#!!!!! This avc can be allowed using the boolean 'daemons_enable_cluster_mode'
allow zabbix_t self:unix_stream_socket connectto;

#!!!!! WARNING 'unlabeled_t' is a base type.
allow zabbix_t unlabeled_t:file { getattr open read };
allow zabbix_t zabbix_var_run_t:sock_file { create unlink };

少し調べたところ、/etc/zabbix/zabbix_server.conf ファイルにファイル コンテキスト タイプ unlabeled_t があることが分かりました。これが、audit2allow が zabbix_server に unlabeled_t を許可するよう提案する理由です。しかし、基本タイプを許可するのはよくないので、この問題を解決する方法を探しています。zabbix_selinux のマニュアル ページ (参考:) ですが、適切なコンテキスト ファイル タイプは実際にはありません。独自のファイル コンテキスト タイプを作成できることはわかっていますが、専門家ではないので、これが最善の解決策かどうかはわかりません。質問は、より良い方法があるかどうか、または基本タイプ unlabeled_t を使用しない場合は、独自のファイル コンテキスト タイプを作成する必要があるかどうかです。

答え1

おそらく、SELinux 非対応のソースから Zabbix をインストールしたか、インストール時に SELinux を無効にした状態でインストールした可能性があります。

Zabbix が SELinux 対応パッケージからインストールされていない場合、 を実行すると、ラベルが にrestorecon -R -v /etc自動的に変更される可能性があります。は の下にあるファイルとディレクトリのデフォルトのラベルであるためです。 を使用する前に、おそらくこれを行う必要があります。unlabeled_tetc_t/etcaudit2allow

etc_tほとんどの構成ファイルに適したコンテキスト タイプです。

RHEL/CentOS 7.x の SELinux ルールセットには、Zabbix 用の組み込み規定がいくつか含まれています。ディレクトリ/etc/zabbix/web/とその中のすべてのファイルにはラベルが付けられ、Zabbix の起動スクリプト (サーバーとエージェントの両方) にはそれぞれ適切なラベルとhttpd_sys_rw_content_tラベルが付けられます。zabbix_initrc_exec_tzabbix_agent_initrc_exec_t

以下は、Zabbix パッケージがまったくインストールされていない「標準」RHEL 7.7 テスト VM からのものです。

[root@localhost etc]# cat /etc/redhat-release 
Red Hat Enterprise Linux Server release 7.7 (Maipo)

[root@localhost etc]# semanage fcontext -l |grep zabbix
/var/log/zabbix.*                                  all files          system_u:object_r:zabbix_log_t:s0 
/etc/zabbix/web(/.*)?                              all files          system_u:object_r:httpd_sys_rw_content_t:s0 
/var/lib/zabbix(/.*)?                              all files          system_u:object_r:zabbix_var_lib_t:s0 
/var/run/zabbix(/.*)?                              all files          system_u:object_r:zabbix_var_run_t:s0 
/etc/rc\.d/init\.d/(zabbix|zabbix-server)          regular file       system_u:object_r:zabbix_initrc_exec_t:s0 
/var/lib/zabbixsrv(/.*)?                           all files          system_u:object_r:zabbix_var_lib_t:s0 
/usr/lib/zabbix/externalscripts(/.*)?              all files          system_u:object_r:zabbix_script_exec_t:s0 
/var/lib/zabbix/externalscripts(/.*)?              all files          system_u:object_r:zabbix_script_exec_t:s0 
/usr/bin/zabbix_server                             regular file       system_u:object_r:zabbix_exec_t:s0 
/usr/bin/zabbix_agentd                             regular file       system_u:object_r:zabbix_agent_exec_t:s0 
/usr/sbin/zabbix_proxy                             regular file       system_u:object_r:zabbix_exec_t:s0 
/usr/sbin/zabbix_agentd                            regular file       system_u:object_r:zabbix_agent_exec_t:s0 
/usr/sbin/zabbix_server                            regular file       system_u:object_r:zabbix_exec_t:s0 
/usr/sbin/zabbix_proxy_mysql                       regular file       system_u:object_r:zabbix_exec_t:s0 
/usr/sbin/zabbix_proxy_pgsql                       regular file       system_u:object_r:zabbix_exec_t:s0 
/usr/sbin/zabbix_server_mysql                      regular file       system_u:object_r:zabbix_exec_t:s0 
/usr/sbin/zabbix_server_pgsql                      regular file       system_u:object_r:zabbix_exec_t:s0 
/etc/rc\.d/init\.d/zabbix-agentd                   regular file       system_u:object_r:zabbix_agent_initrc_exec_t:s0 
/usr/sbin/zabbix_proxy_sqlite3                     regular file       system_u:object_r:zabbix_exec_t:s0 
/usr/sbin/zabbix_server_sqlite3                    regular file       system_u:object_r:zabbix_exec_t:s0 

関連情報