Bacula NFS利用とSELinux設定¶
2018/4/25¶
Baculaの記事の最後に、NFSとSELinuxについて書いておきたい。
自分が今回構築した環境では、バックアップデータの書き込み先はNFSでマウントした場所にしている。
NFSサーバが別に用意されている。
SELinuxがEnforcingである場合、SELinuxのポリシーを変更しないと、バックアップデータを書き込むことができず、バックアップに失敗する。
過去に書いたSELinuxの設定方法について一通り書いた記事は以下
食わず嫌いのSELinux
設定方法について一通り記事にしておく。
ちなみにサーバOSはCentOS7となっている。
まずはSELinuxのブロッキング情報が記録されるaudit.logを確認してみる。
# audit2allow -a
#============= bacula_t ==============
#!!!! This avc is allowed in the current policy
allow bacula_t nfs_t:dir { add_name write };
#!!!! This avc is allowed in the current policy
allow bacula_t nfs_t:file { create write };
allow bacula_t nfs_t:filesystem getattr;
bacula_tとnfs_tについていくつか設定しないといけないことがわかる。
SELinuxの記事に書いたとおり、fstabに書くことで対処もできたが、めんどくさいのでaudit2allowでやってみる。
# audit2allow -a -M bacula
生成された.teファイルの中身を確認する。
# cat bacula.te
module bacula 1.0;
require {
type nfs_t;
type bacula_t;
class file { create write };
class dir { add_name write };
class filesystem getattr;
}
#============= bacula_t ==============
#!!!! This avc can be allowed using the boolean 'use_nfs_home_dirs'
allow bacula_t nfs_t:dir { add_name write };
#!!!! This avc can be allowed using the boolean 'use_nfs_home_dirs'
allow bacula_t nfs_t:file { create write };
allow bacula_t nfs_t:filesystem getattr;
見てみると、'use_nfs_home_dirs'のブール値を変えてあげることで解決できてしまうらしい。
調べてみるとnfsマウントしたものはこのブール値を変更すれば書き込み権限が与えられる。
参考(SELiinuxのマニュアルページ)
もし厳しく設定したいのであれば、いろいろ考える必要もあるが、今回はブール値変更で対応することにした。
# setsebool -P use_nfs_home_dirs on
設定変更結果を確認してみる。
# sesearch -A -C -s bacula_t | grep nfs
ET allow userdom_home_manager_type autofs_t : dir { getattr search open } ; [ use_nfs_home_dirs ]
ET allow userdom_home_manager_type autofs_t : dir { getattr search open } ; [ use_nfs_home_dirs ]
ET allow userdom_home_manager_type autofs_t : dir { getattr search open } ; [ use_nfs_home_dirs ]
ET allow userdom_home_manager_type autofs_t : dir { ioctl read getattr lock search open } ; [ use_nfs_home_dirs ]
ET allow userdom_home_manager_type nfs_t : dir { ioctl read write getattr lock add_name remove_name search open } ; [ use_nfs_home_dirs ]
ET allow userdom_home_manager_type nfs_t : dir { ioctl read write getattr lock add_name remove_name search open } ; [ use_nfs_home_dirs ]
ET allow userdom_home_manager_type nfs_t : dir { ioctl read write create getattr setattr lock unlink link rename add_name remove_name reparent search rmdir open } ; [ use_nfs_home_dirs ]
ET allow userdom_home_manager_type nfs_t : file { ioctl read write create getattr setattr lock append unlink link rename open } ; [ use_nfs_home_dirs ]
ET allow userdom_home_manager_type nfs_t : lnk_file { ioctl read write create getattr setattr lock append unlink link rename } ; [ use_nfs_home_dirs ]
許可設定が追加されていることがわかる。
この設定後、バックアップデータは問題なく書き込むことができるようになった。
SELinuxで詰まったらこんな感じで解決していくと良いですね。