/etc/named.confの設定
Linux LPIC編。(第7章 DNS)
BINDの基本設定ファイル/etc/named.confについて。
/etc/named.confは、いくつかの「ステートメント」とオプションから成る。
ステートメントで指定した内容が、namedの動作や働きを定義づけている、らしい。
ステートメントとなる項目は以下。
ステートメント
zone ゾーンの定義
controls namedを操作できるホストの指定
key 認証情報の設定
include 外部ファイルの読み込み
acl アクセス制御の定義
options namedの動作における詳細を設定
名ステートメントの内容についてまとめてみる。
zoneステートメント
このステートメントでは、ゾーン名、ゾーンタイプ、ゾーンファイルの場所等を指定する。
ゾーンタイプ例
hint(ルートDNSサーバを指定)
master(指定したゾーンに対してマスターDNSサーバである)
slave(指定したゾーンに対してスレーブDNSサーバである)
正引きと逆引きの設定の記述方法は覚えておきたい。
例:name.jpドメインの正引き設定
zone “name.jp” { ←ドメイン名を記述
type master ; ←ゾーンタイプを指定
file “name.jp.zone” ; ←ゾーンファイル名
} ;
例:name.jpドメインの逆引き設定
zone “33.22.11.in-addr.arpa” { ←ドメインに対応するIPアドレスを記述
type master ;
file “sub_name.jp.zone” ;
} ;
マスターDNSの場合、allow-transfer { スレーブのIPアドレス} ;と記述して、
ゾーン転送をスレーブDNSサーバに限定するのが望ましいようだ。
(これにより、ゾーン全体の情報を外部から問い合わせることができなくなる)
controlsステートメント
ここでは、rndcコマンドでnamedを操作できるホストのIPやポート番号を定義する。
controls {
inet 127.0.0.1 allow { localhost ; } ;
} ;
keyステートメント
認証の設定を行った場合に適宜情報を記述
key “name.jp” { ←鍵の名前
algorithm hmac-md5 ; ←アルゴリズムを記述
secret “xxxxxxxxxxxxxxxxxxxx==” ; ←共有秘密鍵を記述
} ;
incluedeステートメント
書式 include “file” ; で、指定した外部ファイルを読み込む
inclede “/etc/rndc.key” ;
aclステートメント
IPアドレスやネットワークアドレスを指定して、ACL(アクセス制御リスト)を定義する。
acl locals {
192.168.120.0/24;
192.168.121.0/24;
};
optionsステートメント
ここはなにかと重要そうな気が・・・
各種オプション
recursion 再帰的問合せ受付の可否を指定
recursive-clients 再帰的問合せの最大同時接続数を適宜指定
allow-recursion 再帰的な問合せを受け付けるホスト
allow-query 問合せを受け付けるホスト
allow-transfer ゾーン転送を許可するホスト
allow-update ゾーン情報の動的なアップデートを受け付けるホスト
blackhole 問合せを受け付けないホスト
forward 転送方式をfirst / onlyで指定
fowrders 問合せ転送先DNSサーバ
directory ゾーンファイルを格納するディレクトリを指定
datasize データセグメントサイズの上限
coresize コアファイルサイズの上限
max-cache-size 最大キャッシュサイズをバイト単位で指定
notify ゾーンデータの更新をスレーブサーバに通知するか否か
version バージョン表示。
※セキュリティのためバージョン番号を隠蔽するには例えば”Unknown”等と記述
特に気をつけたいのは、recursionなど再帰的問合せに関する辺りや、forwardなど転送
関連だろうか。
recursionは、yes/noで再帰的問合せの受付可否を指定。
キャッシュサーバであればyes、ゾーンサーバであればnoとする。これは、ゾーンサーバ
は自ゾーンにおける回答のみ返し、他ゾーンDNSサーバへの再帰的問合せは行わないため。
それとallow-recursionとallow-queryの違いにも注意、かな。
どちらにしても、問合を受け付ける範囲を限定することで、不要なDNSサーバの利用を
阻止することになる。
次にフォワード機能について。これは、ゾーン情報を所有せず、キャッシュにも存在
しない問合せを受けたときに、別のDNSサーバにそのまま問い合わせること。
foward firstとした場合、自身が情報を持っていない問合せを受けたときにまずフォワード
による名前解決を試し、失敗したら自身で再帰的問合せを行う。
foward only とした場合、フォワードによる名前解決のみ行い、再帰的問合せは行わない。
forwarders { IPアドレス }; で、転送先DNSサーバを指定する。
(複数指定するにはセミコロンで区切る)
ついでに出典教科書では「転送」のことを「回送」とも表現してますね。
以下、マスターDNSサーバのoptionsステートメント記述例。
options {
directory “/var/named” ;
allow-transfer {172.20.3.4; } ; ←スレーブDNSサーバのIPアドレス
recursion no;
notify yes;
version “Unknown”
};
最後に、これはセキュリティのセクションに書いてあることだけどついでにここにメモ。
namedはroot以外の一般ユーザで起動させるのが望ましいので、named用のユーザを作成
し、そのユーザで実行させるよう、起動スクリプトの/etc/initr.d/namedを以下のように
書き換える。
deamon /usr/sbin/named -u named
さらにセキュアにするには、chroot jailを利用。chrootしたディレクトリより上の階層は
一切参照できなくなる。
以下コマンドは/var/named/jailをchroot対象とし、実行ユーザ&グループをnamedにする例。
# /usr/sbin/named -t /var/named/jail -n named -g named
ふ〜、少しは頭の中で整理がついてきた・・・かなぁ・・・
次回はゾーンファイルの記述について。
出典
Linux教科書LPICレベル2(翔泳社)
Linux記事一覧はこちらをどうぞ
↓ ↓ ↓
Linux-index