CentOS6にSELinuxで便利なコマンドをインストール

CentOS6ではSELinuxを有効にして使いたいのですが、管理するにはそこそこ大変なので、便利なコマンドをインストールしておきたいところです。policycoreutils-python パッケージをインストールすれば、audit2allow、audit2why、chcat、semanage といったコマンドが使えるようになります。

インストールは次の通り。

$ sudo yum install policycoreutils-python

SELinuxをPermissiveモードにしてから動作させているときにログへ出力されるエラーから、audit2allowを使って必要なポリシーの情報が入手できます。

$ sudo audit2allow -a -l -r

require {
	type var_t;
	type httpd_sys_script_t;
	type boot_t;
	type postfix_postdrop_t;
	type httpd_t;
	type user_home_t;
	class dir getattr;
	class file { read getattr };
	class fifo_file getattr;
}

#============= httpd_sys_script_t ==============
allow httpd_sys_script_t var_t:file { read getattr };

#============= httpd_t ==============
allow httpd_t boot_t:dir getattr;
allow httpd_t user_home_t:file { read getattr };

#============= postfix_postdrop_t ==============
allow postfix_postdrop_t httpd_t:fifo_file getattr;

これを適用するには、次のようにします。audit2allowでpackage001.teとpackage001.ppが生成されます。

$ sudo audit2allow -i /var/log/audit.log -M package001
$ sudo semodule -i package001.pp

「sudo audit2allow -a -l -r」の表示内容をlocal.teに追加してから適用をすることもできます。

$ sudo checkmodule -M -m -o local.mod local.te
$ sudo semodule_package -o local.pp -m local.mod

新規インストールするときは、下記

$ sudo semodule -i local.pp

アップデートするときは、下記

$ semodule -u local.pp

組み込みを確認するには、下記

$ semodule -l | grep local.pp

ポリシー・モジュールを削除するのは次の通り。

$ semodule -r local

ポリシーを追加したら、SELinuxをEnforcingモードに戻します。動作しない場合は、動くまで設定の追加を繰り返します。

Linuxについては下記が参考になるかもしれません。

同じタグの記事: CentOS
同じタグの記事: Linux
同じタグの記事: SELinux
同じカテゴリの記事: Linux
関連書籍: CentOS