グローバル用とローカル用の両方を用意する形ですすめます。
インストール
$ yum -y install bind caching-nameserver bind-chroot
として、bind, chching-nameserver, bind-chroot をインストールします
設定
named.conf
named.conf ファイルをコピーします
cp /var/named/chroot/etc/named.caching-nameserver.conf /var/named/chroot/etc/named.conf
named.caching-nameserver.conf よりも named.conf が優先されます。これを行わないで、直接 named.caching-nameserver.conf を変更してしまうと、yum update 時に設定が上書きされる恐れがあります。
$ gedit /var/named/chroot/etc/named.conf &
とし、編集します。
// 使用しませんが、グローバル側を定義 acl corpname { 221.240.166.240/29; }; // USEN プロバイダを定義します // DNS の設定は、プロバイダへ転送できなければなりません。特別扱いします。 acl usennet { 61.122.116.165; 61.122.127.154; 61.122.116.132; }; options { // listen-on port 53 { 127.0.0.1; }; // コメントアウト // listen-on-v6 port 53 { ::1; }; // コメントアウト version "unknown"; // バージョンは表示しない(セキュリィティ対策) directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt";
// 2014/04/16 DNS キャッシュポイズニング攻撃を受けるので、query-source は指定しない // query-source port 53; // query-source-v6 port 53; allow-query { any; }; // 問い合わせを許可する基本の設定 allow-recursion { localhost; localnets; }; // キャッシュを許可する基本の設定 allow-transfer { any; }; // ゾーン転送を許可する基本の設定 forwarders { 192.168.1.1; }; // このDNSで解決できない名前を投げる場所(ルータがDNS機能を持っている) }; controls { inet 127.0.0.1 allow { localhost; } keys { rndckey; }; }; include "/etc/rndc.key"; logging { category lame-servers { null; }; // 問合せ失敗は記録しない }; // キャッシュサーバの設定 view localhost_resolver { match-clients { localhost; localnets; }; match-destinations { localhost; localnets; }; recursion yes; include "/etc/named.rfc1912.zones"; include "/etc/named.yourcorp.co.jp.zone.local"; }; // 内部向け DNS の設定 view "internal" { match-clients { localhost; localnets; }; match-destinations { localhost; localnets; }; recursion yes; include "/etc/named.rfc1912.zones"; include "/etc/named.yourcorp.co.jp.zone.local"; }; // 外部(公開)向け DNS の設定 view "external" { match-clients { any; }; // 誰からもOK match-destinations { any; }; // 誰からもOK recursion no; // 再帰は許可しない include "/etc/named.yourcorp.co.jp.zone.wan"; };
named.yourcorp.co.jp.zone.local
$ gedit /var/named/chroot/etc/named.yourcorp.co.jp.zone.local &
として、ファイルを編集します。
zone "1.168.192.in-addr.arpa" { type master; file "1.168.192.in-addr.arpa.db"; }; zone "yourcorp.co.jp" { type master; file "yourcorp.co.jp.local.db"; };
ローカル・アドレスが 192.168.1.0/24 の場合 1.168.192.in-addr.arpa.db に逆引きを定義します。
ローカルの名前解決は、yourcorp.co.jp.local.db に定義します。
named.yourcorp.co.jp.zone.wan
$ gedit /var/named/chroot/etc/named.yourcorp.co.jp.zone.wan &
として、ファイルを編集します。
zone "yourcorp.co.jp" { type master; file "yourcorp.co.jp.wan.db"; allow-update { none; }; allow-transfer { usennet; }; allow-query { any; }; }; zone "240/29.166.240.221.in-addr.arpa" { type master; file "240.166.240.221.in-addr.arpa.db"; allow-update { none; }; allow-transfer { usennet; }; allow-query { any; }; };
上記の場合グローバル・アドレスは、221.240.166.240/29 です。
逆引きゾーンの指定方法は、プロバイダから指定された方法を採用して下さい。
同様にドメインも取得したものを指定します。
allow-transfer で、プロバイダに対して、ゾーン転送を許可します。
allow-query で、外部に対して、問合せを許可します。
ゾーン設定
ゾーン設定ファイルは、バージョン管理されます。
シリアル値を比較して新しい場合だけ、設定が他のDNSサーバへ伝播します。
Serial は YYYYMMDDNN としています。
- YYYY 西暦
- MM 月(ゼロサプレス)
- DD 日(ゼロサプレス)
- NN 番号 (ゼロサプレス)
CNAME レコードは推奨されなくなりました。
ローカル
$ mkdir /var/named/chroot/var $ mkdir /var/named/chroot/var/named $ gedit /var/named/chroot/var/named/1.168.192.in-addr.arpa.db
とします。
$TTL 86400 @ IN SOA yourcorp.co.jp. root.yourcorp.co.jp.( 2009021401 ; Serial 28800 ; Refresh 14400 ; Retry 3600000 ; Expire 86400 ) ; Minimum @ IN NS sv.yourcorp.co.jp. 2 IN PTR sv.yourcorp.co.jp. ; 192.168.1.2 -> sv.yourcorp.co.jp 3 IN PTR msv.yourcorp.co.jp. ; 192.168.1.3 -> msv.yourcorp.co.jp 4 IN PTR gt.yourcorp.co.jp. 5 IN PTR gs1.yorucorp.co.jp. 6 IN PTR gs2.yourcorp.co.jp.
$gedit /var/named/chroot/var/named/yourcorp.co.jp.local.db
とします。
$TTL 86400 @ IN SOA sv.yourcorp.co.jp. root.yourcorp.co.jp.( 2009021401 ; Serial 28800 ; Refresh 14400 ; Retry 3600000 ; Expire 86400 ) ; Minimum @ IN NS sv.yourcorp.co.jp. localhost IN A 127.0.0.1 IN MX 10 msv.yourcorp.co.jp. ; メールサーバ用 @ IN A 192.168.1.2 sv IN A 192.168.1.2 www IN A 192.168.1.2 msv IN A 192.168.1.3 mail IN A 192.168.1.3 gt IN A 192.168.1.4 gs1 IN A 192.168.1.5 gs2 IN A 192.168.1.6 yourcorp.co.jp. IN TXT "v=spf1 a mx ~all" ; SPF レコードです
グローバル
グローバル・アドレスが 211.240.166.240だった場合
$gedit /var/named/chroot/var/named/240.166.240.211.in-addr.arpa.db
とします。
$TTL 86400 @ IN SOA sv.yourcorp.co.jp. root.yourcorp.co.jp.( 2009021401 ; Serial 10800 ; Refresh 3600 ; Retry 604800 ; Expire 86400 ) ; Minimum IN NS sv.yourcorp.co.jp. IN NS uns02.usen.ad.jp. ; セカンダリ DNS サーバ ; hosts 242 IN PTR sv.yourcorp.co.jp. 243 IN PTR msv.yourcorp.co.jp. 244 IN PTR gt.yourcorp.co.jp. 245 IN PTR gs1.yourcorp.co.jp. 246 IN PTR gs2.yourcorp.co.jp.
$gedit /var/named/chroot/named/var/named/yourcorp.co.jp.wan.db
とします。
$TTL 86400 @ IN SOA sv.yourcorp.co.jp. root.yourcorp.co.jp.( 2009021401 ; Serial 10800 ; Refresh 3600 ; Retry 604800 ; Expire 86400 ) ; Minimum IN NS sv.yourcorp.co.jp. IN NS uns02.usen.ad.jp. ; セカンダリ DNS サーバ ; hosts IN MX 10 msv.yourcorp.co.jp. @ IN A 221.240.166.242 sv IN A 221.240.166.242 www IN A 221.240.166.242 msv IN A 221.240.166.243 mail IN A 221.240.166.243 gt IN A 221.240.166.244 gs1 IN A 221.240.166.245 gs2 IN A 221.240.166.246 yourcorp.co.jp. IN TXT "v=spf1 a mx ~all" ; SPF レコードです
IP アドレスのタイプミスには、特に気をつけてください。
追記: 2009/02/17 一部修正
/etc/init.d/bind start にて失敗する場合
$ chgrp named /var/named/chroot/etc/named.conf
とすれば良い。尚、SELinux は enforcing のままで動作する。無闇にdisableする風潮は良くない。
0 件のコメント:
コメントを投稿