BIND9でDNS

サーバー運用がかなり厳しいので寄付をしてくれる人がいたらこちら
メインPCもボロボロになってきたので、ついにほしいものリスト公開

ここではとりあえずインストールしてみるです。
設定については内向けと外向けの設定です。

長くなったから、階層分けて1から書き直すかなぁ

HP: http://www.isc.org/

インストール

インストールはyumでさくっとchrootを入れます。

yum -y install bind-*

設定

/var/named/chroot/etc/named.conf

// generated by named-bootconf.pl acl ipsec { 192.168.0.0/24; 127.0.0.1; }; acl slave { xxx.xxx.xxx.xxx; }; acl blacklist { 192.168.1.0/24; }; options { directory "/var/named"; /* * If there is a firewall between you and nameservers you want * to talk to, you might need to uncomment the query-source * directive below. Previous versions of BIND always asked * questions using port 53, but BIND 8.1 uses an unprivileged * port by default. */ query-source address 192.168.11.10 port 53; allow-transfer { ipsec; }; allow-query { any; }; allow-recursion { ipsec; }; blackhole { blacklist; }; version "Hello World"; auth-nxdomain yes; notify yes; recursion yes; // listen-on-v6 { none; }; }; // // a caching only nameserver config // key "www" { algorithm hmac-md5; secret "xxxxx"; }; controls { inet 127.0.0.1 allow { 127.0.0.1; } keys { "www"; }; }; view "lan" { match-clients { ipsec; }; zone "." IN { type hint; file "named.root"; }; zone "localhost" IN { type master; file "localhost.zone"; allow-update { none; }; }; zone "0.0.127.in-addr.arpa" IN { type master; file "localhost.rev"; allow-update { none; }; }; zone "momo-i.org" { type master; file "/var/named/momo-i.org.zone"; }; zone "0.168.192.in-addr.arpa" { type master; file "/var/named/momo-i.org.rev"; }; }; view "wan" { match-clients { any; }; allow-recursion{ any; }; zone "momo-i.org" { type slave; masters { xxx.xxx.xxx.xxx//マスターのDNSサーバのIP }; file "momo-i.org.slave"; notify yes; }; }; logging { channel config_debug { file "/var/log/named/config_debug.log" versions 5 size 10m; severity debug 3; print-category yes; print-severity yes; print-time yes; }; channel xfer-in_debug { file "/var/log/named/xfer-in_debug.log" versions 5 size 10m; severity debug 3; print-category yes; print-severity yes; print-time yes; }; channel xfer-out_debug { file "/var/log/named/xfer-out_debug.log" versions 5 size 10m; severity debug 3; print-category yes; print-severity yes; print-time yes; }; channel notify_debug { file "/var/log/named/notify_debug.log" versions 5 size 10m; severity debug 3; print-category yes; print-severity yes; print-time yes; }; channel security_debug { file "/var/log/named/security_debug.log" versions 5 size 10m; severity debug 3; print-category yes; print-severity yes; print-time yes; }; channel default_channel { syslog local3; }; category config { config_debug; }; category xfer-in { xfer-in_debug; }; category xfer-out { xfer-out_debug; }; category notify { notify_debug; }; category security { security_debug; }; category default { default_channel; }; };

/var/named/chroot/var/named/momo-i.org.zone

$TTL 3600 $ORIGIN momo-i.org. @ IN SOA www.momo-i.org. postmaster.momo-i.org. ( 2005122601 ; serial 3600 ; refresh 1800 ; retry 604800 ; expiration 3600 ) ; minimum IN NS www.momo-i.org. IN NS プロバイダのネームサーバ IN MX 0 momo-i.org. localhost IN A 127.0.0.1 IN A 192.168.0.10 www IN A 192.168.0.10 router IN A 192.168.0.1 hage IN CNAME www

/var/named/chroot/var/named/momo-i.org.rev

$ORIGIN 0.168.192.in-addr.arpa. $TTL 3600 @ IN SOA www.momo-i.org. postmaster.momo-i.org. ( 2005100302 ; serial 3600 ; refresh 1800 ; retry 604800 ; expiration 3600 ) ; minimum IN NS www.momo-i.org. 1 IN PTR router.momo-i.org. 10 IN PTR www.momo-i.org.

これでとりあえずは完了です。
後は以下のコマンドを実行してエラーが出ていないかを確認します。

/etc/init.d/named start

エラーが出ていなければ実際にDNSが引けるかを違う端末からテストしてみます。

正引きの確認

# dig @192.168.0.10 www.momo-i.org. A ; <<>> DiG 9.8.0-P2-RedHat-9.8.0-5.P2.fc15 <<>> @192.168.0.10 www.momo-i.org. ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 5026 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1 ;; QUESTION SECTION: ;www.momo-i.org. IN A ;; ANSWER SECTION: www.momo-i.org. 3600 IN A 192.168.0.10 ;; AUTHORITY SECTION: momo-i.org. 3600 IN NS ns.momo-i.org. ;; ADDITIONAL SECTION: ns.momo-i.org. 3600 IN A 192.168.0.10 ;; Query time: 0 msec ;; SERVER: 192.168.0.10#53(192.168.0.10) ;; WHEN: Sat Jun 11 16:32:02 2011 ;; MSG SIZE rcvd: 81 # dig @192.168.0.10 www.yahoo.co.jp. ; <<>> DiG 9.8.0-P2-RedHat-9.8.0-5.P2.fc15 <<>> @192.168.0.10 www.yahoo.co.jp. ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 52020 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 0 ;; QUESTION SECTION: ;www.yahoo.co.jp. IN A ;; ANSWER SECTION: www.yahoo.co.jp. 900 IN CNAME www.ya.gl.yahoo.co.jp. www.ya.gl.yahoo.co.jp. 60 IN A 124.83.187.140 ;; AUTHORITY SECTION: gl.yahoo.co.jp. 900 IN NS gns02.net.bbt.yahoo.co.jp. gl.yahoo.co.jp. 900 IN NS gns02.net.djm.yahoo.co.jp. ;; Query time: 26 msec ;; SERVER: 192.168.0.10#53(192.168.0.10) ;; WHEN: Sat Jun 11 16:34:44 2011 ;; MSG SIZE rcvd: 129

外と内のアドレスが引ければOKです。
また、マスターのDNSから情報を引いてきているか
確認しておきます。
うちではzoneeditでがーっとやっとります。
ここでは外の名前解決をZoneEditがMaster、自分がSlaveにしてますが、
そのうち暇があれば自分がMaster、ほかがSlaveも試しておきます。

# ls -l /var/named/chroot/var/named/momo-i.org.slave -rw------- 1 named named 587 3月 16 09:02 momo-i.org.slave # cat /var/named/chroot/var/named/momo-i.org.slave $ORIGIN . $TTL 1200 ; 20 minutes momo-i.org IN SOA ns12.zoneedit.com. soacontact.zoneedit.com. ( 1071152270 ; serial 3600 ; refresh (1 hour) 1200 ; retry (20 minutes) 86400 ; expire (1 day) 1200 ; minimum (20 minutes) ) NS ns12.zoneedit.com. NS ns14.zoneedit.com. $TTL 300 ; 5 minutes A xxx.yyy.zzz.aaa $TTL 1200 ; 20 minutes MX 0 momo-i.org. MX 20 mail.momo-i.org. MX 100 mx2.zoneedit.com. $ORIGIN momo-i.org. $TTL 300 ; 5 minutes * A xxx.yyy.zzz.aaa $TTL 1200 ; 20 minutes mail2 MX 5 www2 MX 100 mx2.zoneedit.com.

後は外の環境から引けるかどうかを確認ってところです。

# dig @111.89.162.86 www.momo-i.org. ; <<>> DiG 9.8.0-P2-RedHat-9.8.0-5.P2.fc15 <<>> @www.xxx.yyy.zzz www.momo-i.org. ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1059 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2 ;; WARNING: recursion requested but not available ;; QUESTION SECTION: ;www.momo-i.org. IN A ;; ANSWER SECTION: www.momo-i.org. 3600 IN A www.xxx.yyy.zzz ;; AUTHORITY SECTION: momo-i.org. 3600 IN NS ns.momo-i.org. momo-i.org. 3600 IN NS ns1.momo-i.org. ;; ADDITIONAL SECTION: ns.momo-i.org. 3600 IN A www.xxx.yyy.zzz ns1.momo-i.org. 3600 IN A www.xxx.yyy.zzz ;; Query time: 9 msec ;; SERVER: www.xxx.yyy.zzz#53(www.xxx.yyy.zzz) ;; WHEN: Sat Jun 11 16:41:12 2011 ;; MSG SIZE rcvd: 115

自宅内でDDNS

久しぶりに覚書追加です。
DHCPDで自動IPのページでdhcpが有効になっている場合、
nsupdateを使用してクライアントのIPとホスト名を紐付けできます。

dhcpd.confに

ddns-update-style interim;

を入れて
named.confのzoneへDNSの更新を許可するIPアドレス/ネットワークを記述できます。

allow-update { 192.168.xx.xx; };

またはACLで

acl hoge { 192.168.0.0/24; 192.168.1.0/24; }; zone xxx { type master; file "/xxx/xxx/xxx.xxx"; allow-update { hoge; }; };

を記述して、namedの再起動を実施します。
次に更新できるか確認をします。

DNSが存在しない事を確認

# nslookup hoge.momo-i.org. ** server can't find hoge.momo-i.org: NXDOMAIN

追加

# nsupdate > update add hoge.momo-i.org. 1200 in a 192.168.0.100 > send > quit

確認

# nslookup hoge.momo-i.org. Name: hoge.momo-i.org Address: 192.168.0.100

削除

# nsupdate > update delete hoge.momo-i.org. > send > quit

削除されたか確認

# nslookup hoge.momo-i.org. ** server can't find hoge.momo-i.org: NXDOMAIN

namedのログを見ると以下の様なものが出てきます。

named[4708]: client 192.168.0.1#53100: view lan: updating zone 'momo-i.org/IN': adding an RR at 'hoge.momo-i.org' A

DHCPで払い出されたアドレスを管理するdhcpd.leasesには
IPアドレスが払い出されたホストで以下のように

set ddns-rev-name = "100.0.168.192.in-addr.arpa."; set ddns-client-fqdn = "xxx.momo-i.org";

と表示がされているかもしれません。

DNSSECを試してみる

巷で話題のDNSSECですが、Fedora11から(?)BINDをyumで入れると
勝手にDNSSECが有効になるようです。

その為アップグレードしたり旧環境からの設定のまま移行すると 起動時に怒られて起動しません。

chroot環境で、アップグレード(環境の移行)をした人は、 /var/named/chroot/etc/配下に/etc/pki/dnssec-keys/をコピーしておきましょう?

鍵の作成と署名の方法

鍵の作成

# cd /var/named/chroot/var/named/ # dnssec-keygen -a DSA -b 1024 -n ZONE momo-i.org

Kxxxxxx.keyとKxxxxx.privateが出てくるので、Kxxxxx.keyの中身をゾーンファイルの最後に追加しておきます。

追加したらシリアルをあげておきましょう。

署名

# dnssec-signzone -o momo-i.org /var/named/chroot/var/named/momo-i.org.zone

これでmomo-i.org.zone.signedというファイルが出来ているはずです。
これをmomo-i.org.zoneに置き換えてnamedを再起動すれば終わりです。

Fedora17を素っ飛ばしたのであれですが、Fedora18からはほとんどがsystemdになっているので、namedの起動もこれでやります。
通常時はnamedのみで systemctl start named chrootしたいときは後ろに-chrootをつけないとだめです。 systemctl start named-chroot

なれるとsystemd楽チンですね。

Tags: 

コメントを追加

Plain text

  • HTMLタグは利用できません。
  • ウェブページアドレスとメールアドレスは、自動的にハイパーリンクに変換されます。
  • 行と段落は自動的に折り返されます。
CAPTCHA
また変更しました
Fill in the blank.