BIND9 DLZ AppArmorとSELinux統合
AppArmorまたはSELinuxとの相互作用
samba_dnsupdateとnsupdateが'return dns_tkey_negotiategss: TKEY is unacceptable'を返してきた場合は、次を試してみてください:
AppArmorまたはSELinuxを使用している場合は、BINDプロセスが次のファイルへの読み取りアクセス権を持っていることを確認する必要がありま す。
- /usr/local/samba/private/dns.keytab
- /usr/local/samba/private/named.conf
同様に読み書き可能なアクセス権として
- /usr/local/samba/private/dns/
ディレクトリとそれ自身のゾーンファイルです。
Sambaのプロビジョニングでは、これらのファイルのアクセス権を正しく設定しようとしていますが、いずれかを実行している場合は、AppArmor またはSELinuxの設定を変更する必要があります。 AppArmorを使用している場合は、 'aa-logprof'コマンドを使用して、SambaとBINDを設定した後初めて追加する必要がある不足しているアクセス権を追加できます。
パーミッション、SELinuxラベリングとポリシー
これらの手順はRHEL6を対象としていますが、他のディストリビューション/バージョンのガイドとしても役立つかもしれません。
Samba4固有のSELinuxポリシーの作成に関してはまだまだ多くの作業が必要ですが、SELinuxを無効にしなくてもすべての作業を実行できるはずです。
以下のすべてのコマンドについて、次の環境変数を設定していることを確認してください。
MYREALM="samdom.example.com"
パーミッションをセット(SELinux):
chown named:named /usr/local/samba/private/dns chgrp named /usr/local/samba/private/dns.keytab chmod g+r /usr/local/samba/private/dns.keytab chmod 775 /usr/local/samba/private/dns
ファイルにラベルをつける(SELinux):
chcon -t named_conf_t /usr/local/samba/private/dns.keytab chcon -t named_conf_t /usr/local/samba/private/named.conf.update chcon -t named_var_run_t /usr/local/samba/private/dns chcon -t named_var_run_t /usr/local/samba/private/dns/${MYREALM}.zone
永続的なラベルをつける(SELinux):
semanage fcontext -a -t named_conf_t /usr/local/samba/private/dns.keytab semanage fcontext -a -t named_conf_t /usr/local/samba/private/named.conf semanage fcontext -a -t named_conf_t /usr/local/samba/private/named.conf.update semanage fcontext -a -t named_var_run_t /usr/local/samba/private/dns semanage fcontext -a -t named_var_run_t /usr/local/samba/private/dns/${MYREALM}.zone semanage fcontext -a -t named_var_run_t /usr/local/samba/private/dns/${MYREALM}.zone.jnl
AppArmorの設定:
/etc/apparmor.d/local/usr.sbin.named
(もしファイルがない場合は作成してください)に以下を追加
# Samba4 DLZ and Active Directory Zones (default source installation) /usr/local/samba/lib/** rm, /usr/local/samba/private/dns.keytab r, /usr/local/samba/private/named.conf r, /usr/local/samba/private/dns/** rwk,
加えて、一部のディストリビューションでは、追加のパスが必要になる場合があります。詳細については、AppArmorのログを確認して下さい。
例えば:
Ubuntu14.04.1 LTSでは、BINDが/var/tmp/DNS_110
などのファイルを作成しようとしていたので、さらにエントリが必要でした:
/var/tmp/** rwmk,
Sambaを使用しているUbuntu 14.04.3 LTSでも見つかっています。バージョン4.1.17(ソースからビルドされています)とBIND 9.9.5-3ubuntu0.5-Ubuntuでは、さらに追加する必要があります。
/usr/local/samba/etc/smb.conf r,