前々回の投稿で記載した内容で、nagiosのインストールを行い、SELinuxがPermissiveモードになった状態で動作が出来る様になっていると思います。
SELinuxがPermissiveな状態ですと、セキュリティ上はあまり宜しくない状態です。
SELinuxに設定を行うことで、SELinuxがEnforcingモードになっても動作出来る様に設定を施していきます。
Step1:環境確認と準備
色々と方法はあると思いますが、ここでは、SELinuxの設定を行うために、audit2allowコマンドを使用します。
audit2allowコマンドが使用可能かどうかを確認します。
1 2 |
# audit2allow --version audit2allow .1 |
上記の様に表示されれば、audit2allowコマンドは使用可能な状態にあります。
次のステップに進んでください。
audit2allowコマンドが見つからない場合には、インストールを行います。
1 |
yum install policycoreutils-python |
インストールが正常に終了したことを確認して次のステップへ進みます。
Step2:SELinuxへの設定用ファイルを作成する。
取り敢えず、SELinuxをPermissiveモードにしておきます。
1 |
# setenforce 0 |
この状態で、許可して欲しい操作を行います。
例えば、CRITICALな障害を開いて、通知を強制的に発行します。
操作を実行した後に、以下のコマンドを実行して許可を必要とする内容の確認を行います。
1 2 3 4 5 6 7 |
# audit2allow -i /var/log/audit/audit.log #============= httpd_sys_script_t ============== #!!!! This avc is allowed in the current policy allow httpd_sys_script_t httpd_sys_content_t:fifo_file { write getattr open }; |
私の環境で許可を必要としていたのは、どうも上記の1件だけだった様です。
環境により異なる様ですので、必要に応じて対応を考えてください。
なお、nagiosのサポートページには、この後説明するSELinuxの設定ファイルの記述例が記載されている様です。
使えるかどうかはご自身でご判断下さい。
私は、私の環境に合った方法で対応を試みます。
こちらも、対応が十分とは言えません。全ての操作でセキュリティの許可を取ったとは言えないからです。
ちなみに、何故か?nagiosのフォルダーとかファイルが直接影響していない感じなので、そこそこ上手く設定出来ていたと思いますが・・・その辺は自己責任でお願いします。オープンソースですから(^^ゞ
で、少し余談が入りましたが、以下のコマンドを実行して必要な設定ファイルを作成します。
1 2 3 4 5 6 |
# grep ":httpd_sys_content_t:" /var/log/audit/audit.log | audit2allow -M httpd_sys_content_t ******************** IMPORTANT *********************** To make this policy package active, execute: semodule -i httpd_sys_content_t.pp |
httpd_sys_content_tに関連する項目だけを抜き出して、許可ファイルを作成する例です。
コマンドの出力結果には、次に実施するべき操作が記載されています。
画面の操作に従って、操作を続けます。次のコマンドを実行します。
1 |
# semodule -i httpd_sys_content_t.pp |
この設定にはしばらく時間が掛かります。
私の環境では1分程度掛かったでしょうか?
止めたくなってしまったりしましたが、我慢して待ちます。
この後、正常に完了しましたら、SELinuxの設定を有効にします。
1 |
# setenforce 1 |
動作確認を行ってOKなら、作業は完了です。
これでセキュアな状態を維持しつつ、nagiosが使える様になりました。
このSELinuxの設定方法は、他でも利用できます。
ご自身の環境に合わせて設定を行ってみてください。