LoginSignup
5
5

More than 5 years have passed since last update.

BIND9で権限しっかり変更してるのに「permission denied」が消えなかった件

Posted at

前提

BIND9で権限関係をどんなに調整しても、slaveのサーバーでzoneファイルが反映されなかった時のメモ。

今回ぶつかった壁

CentOS 7 のBINDを設定する (プライマリ コンテンツサーバー)
上記サイトを参考にしながらmaster1台、slave2台のDNSサーバーを構築していたところ、masterで作成したzoneの情報がslaveの方に反映されなくて涙目に…。

環境

OS DNS
CentOS 7.2 BIND 9.9.4-29

やったこと

yum -y install bind bind-utils bind-chroot

して、サイトの通りに色々やったができない…。
もちろん53番ポートも開けてある。

とりあえずログを見てみる

/var/log/messages
zone example.com/IN: transfer: could not set file modification time of 'slaves/example.com.zone': permission denied

ん?permission denied
権限が足りてないってか…。

ならNo permission deniedにしてやろう

chown -R named:named /var/named
chmod -R u+rwx /var/named

これで文句は無いだろう、とnamed-chrootを再起動してログを確認。

/var/log/messages
zone example.com/IN: transfer: could not set file modification time of 'slaves/example.com.zone': permission denied

うーん、寸分違わぬ感じで…。

エラー内容の精査

DNS(BIND9)   エラーと原因

セカンダリDNSサーバで出力されるエラーです。
セカンダリDNSサーバは、ゾーンのリフレッシュをするとゾーンファイルの更新を行います。(これによって最終更新時間が変わります)
しかし、namedサービスを起動しているユーザがそのゾーンファイルの更新を許可されていないためにゾーン転送に失敗してしまいます。
ゾーンファイルのあるディレクトリやゾーンファイルのパーミッションを、namedサービスを起動しているユーザが書き込めるように変更してください。

いや、書き込める様にしてるんだよなー、と思いつつ、ふと思い立ってgetenforceしてみる。

# getenforce
Enforcing

…うん、どう考えてもこれだ。
急いで環境構築したからSELINUX無効にし忘れてた…。

確認してみる

取り敢えず無効にして確認してみる。

# setenforce 0
# getenforce
Permissive
/var/log/messages
zone example.com/IN: transferred serial 2016102001

キマシタワァ・゜゚・:.。..。.:・゜(n'∀')η゚・:.。..。.:・゜゚・

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5