DNSサーバ

自宅のWebサーバは192.168.~というIPアドレスでアセスしていたが、ドメイン名でアクセスしたい要件が出てきたため、BINDでLAN内用のDNSサーバを立ててみた。

作業メモ
・rndcによってリモート機能ができるよう共有秘密鍵をつくる
  →/usr/sbin/rndc-confgen でrndc.confを作成する
   rncd.confの後半に作成されたキーの部分を別のファイルにコピーする
   (後でnamed.confにこのファイルをインクルードする)
 セキュリティ上からみれば不必要なリモート操作はやらないに越したことはない..

・named.confを作成する
 ひとまず、options句には最低限でも..

   LAN外からの問い合わせには応答しないようにする
    例 : allow-query { 192.168.1.0/24; 127.0.0.1; };

   転送先も制限した方がいいのか?
    例; allow-transfer { none; };

   BINDのバージョンを表示させない
    例: version “”;

   IPv6の問い合わせはないし、レスポンスが悪くなるかもということでIPv6はリッスンさせない
    例: listen-on-v6 { none; };

   リッスンするのはLAN内のみ
    例: listen-on { 192.168.1.0/24; 127.0.0.1; };

・次の4つのゾーンファイルを作成する
 localホストの正引き定義
 localホストの逆引き定義
 LAN内Webサーバの正引き定義
 LAN内Webサーバの逆引き定義

・ルートドメインのファイル(ex. named.root)を「ftp://ftp.rs.internic.net/domain/」から頂いてくる

・named-checkconfコマンドでnamed.confの設定に間違いがないかチェックする

・named-checkzoneコマンドでゾーンファイルに記述ミスがないかチェックする

・/etc/resolv.confを編集する
 domain ドメイン名
 search ドメイン名
 nameserver 0.0.0.0   ←(127.0.0.1の替わりに、0.0.0.0を定義する)
 nameserver 210.xxx.xxx.xxx ←プロバイダのDNSサーバ(LAN外はここからひいてくる)

・/etc/init.d/named startでnamedを起動する

・/var/log/messagesを確認してゾーンファイルが正しく読み込まれていることを確認する
 May 20 10:06:01 xxxx named[3976]: zone 0.0.127.IN-ADDR.ARPA/IN: loaded serial 2005051601
 May 20 10:06:01 xxxx named[3976]: zone 1.168.192.IN-ADDR.ARPA/IN: loaded serial 2006051601
 May 20 10:06:01 xxxx named[3976]: zone hoge.com/IN: loaded serial 2006051601
 May 20 10:06:01 xxxx named[3976]: zone localhost/IN: loaded serial 2005051601
 という感じのメッセージの替わりにfatalがでていないこと

・digコマンドでいろいろと調べる
 dig 127.0.0.1とか、dig ドメイン名

・別のクライアントからWebサーバにドメイン名でアクセスできることを確認する
 ネットワークのプロパティで優先DNSを今回設置したDNSサーバのアドレス、代替DNSをプロバイダのDNSサーバのアドレスに変更して自宅Webサーバアクセス。

 →apache(Webサーバ)のhttpd.confのServernameにちゃんとしたドメイン名が書かれていること

と、いう感じで完了。でも、ボチボチやってたんで1週間くらいかかってしまったけど。

次は、chroot仕様に変更するなどセキュリティに関する設定の見直しをやればできあがりそうだ。

現在の問題点..
/etc/init.d/named stopで停止させようとしたら、[失敗]となること。
namedプロセスが残っている場合もあるし、プロセスが無くなっている場合もある。
なんでだろう?