裏紙に書く程度の内容

SELinux + Nginx ポリシー設定

前回のエントリでは nginx+wordpress 動作の際、SELinuxは無効にしました。

今回はちゃんとポリシー設定してみます。

SELinux有効化

SELinuxを有効化しておきます。

# 状態確認
$ getenforce
Permissive

# 無効になっているので有効化、再確認
$ sudo setenforce 1
$ getenforce
Enforcing

この状態でブラウザからサイトにアクセスすると”Access denied.”とか表示されていると思います。

ポリシー設定

一旦確認します。

$ sudo cat /var/log/audit/audit.log | grep nginx | audit2allow -m nginx

module nginx 1.0;

require {
        type httpd_t;
        type user_home_t;
        type usr_t;
        class file { write open };
        class dir { search open getattr };
}

# ============= httpd_t ==============

#!!!! This avc can be allowed using one of the these booleans:
#     httpd_read_user_content, httpd_enable_homedirs
allow httpd_t user_home_t:dir { search open getattr };

#!!!! This avc can be allowed using the boolean 'httpd_read_user_content'
allow httpd_t user_home_t:file open;
allow httpd_t user_home_t:file { write open };
allow httpd_t usr_t:file write;

内容がOKであればポリシーファイルを作成

$ sudo cat /var/log/audit/audit.log | audit2allow -M nginx
******************** IMPORTANT ***********************
To make this policy package active, execute:

semodule -i nginx.pp

nginx.pp というファイルが作成されます。これを適用します。

$ sudo semodule -i nginx.pp

完了後、再度サイトにアクセスすると今度はサイトが表示されます。

…とまあ、SELinux有効化しつつ、サイトの表示できましたが、実際のところあんまりよくわかっていません。。。

Index