時刻の同期-SELinuxでのラベル付とポリシー

提供: 雑廉堂Wiki

Windowsクライアントの時刻同期のポリシーをセット

# chcon -u system_u -t ntpd_t /usr/local/samba/var/lib/ntp_signd

ポリシーを永続的にする

# semanage -a -t ntpd_t "/usr/local/samba/var/lib/ntp_signd"

変更を確認

# cat /etc/selinux/targeted/contexts/files/file_contexts.local

次のような行が表示されます:

/usr/local/samba/var/lib/ntp_signd    system_u:object_r:ntpd_t:s0

以下のポリシーファイルは、RHEL 6.5の4.1.6に基づいており、参照用にしてください。 ベースポリシーファイルを作成した後は、常に以下のegrepコマンドを実行してください。 その後、システム上でntpdとSamba ADサービスを停止/起動し、競合するまで基本ポリシーに追加します。

egrep "samba|ntpd" /var/log/audit/audit.log | audit2allow

すべてがうまくいけば、ポリシーファイルの下の各 "allow"行にこれが表示されます。

#!!! This avc is allowed in the current policy
allow ntpd_t self:capability sys_admin;
etc.

samba4.te ポリシー:

module samba4 1.0;

require {
  type ntpd_t;
  type usr_t;
  type initrc_t;
  type fs_t;
  type setfiles_t;
  type lib_t;
  type unconfined_t;
  type locate_t;
  class dir write;
  class dir search;
  class dir open;
  class dir read;
  class dir getattr;
  class dir remove_name;
  class dir add_name;
  class dir relabelto;
  class unix_stream_socket connectto;
  class sock_file write;
  class sock_file create;
  class sock_file unlink;
  class filesystem associate;
  class capability sys_admin;
}

#============= initrc_t ==============
allow initrc_t ntpd_t:dir { write remove_name add_name };
allow initrc_t ntpd_t:sock_file create;
allow initrc_t ntpd_t:sock_file unlink;

#============= ntpd_t ==============
allow ntpd_t usr_t:sock_file write;
allow ntpd_t initrc_t:unix_stream_socket connectto;
allow ntpd_t fs_t:filesystem associate;
allow ntpd_t lib_t:sock_file write;
allow ntpd_t unconfined_t:unix_stream_socket connectto;
allow ntpd_t self:sock_file write;
allow ntpd_t self:capability sys_admin;

#============= locate_t ==============
allow locate_t ntpd_t:dir { read getattr open search };

#============= setfiles_t ==============
allow setfiles_t ntpd_t:dir relabelto;

ポリシーの確認と読み込み:

$ checkmodule -M -m -o samba4.mod samba4.te
$ semodule_package -o samba4.pp -m samba4.mod
$ semodule -i samba4.pp