BIND9 (+ Postfix + Qpopper)

このページはBINDについて。
postfix, Qpopperは別のページにいきましょう。


はじめに

自宅サーバ名義のメールを送受信したい。 使うソフトウェアは以下のとおり

postfixSMTPサーバ(いわゆる、メール配受信ソフト、MTA)
bindDNSサーバ(postfixには必須)
qpopperPOPサーバ(これなくてもメールは配信できます)

正確に言えば、bindがなくてもpostfixは動きます。 でも、やっぱり推奨構成のほうがいいでしょ。 個人的には推奨構成を目指します。

ちなみに、DynamicDNSを使う場合は、MXレコードを登録できるところじゃないとだめです。うちではDynamic DO!.jpを使ってます。


環境

うちにはサーバがひとつしかないので、DNSサーバ、メールサーバは同じ物を使います。 メールは@kenstar.orgあてで届くようにしたいです。 そして、自宅のマシンにはこんな名前をつけようと思います。 こんな命名規則でも大丈夫。
ドメイン名kenstar.org
Mail Serveraltir (FQDN: altir.kenstar.org) 192.168.0.10
DNS Serveraltir (FQDN: altir.kenstar.org) 192.168.0.10

ちなみに、TurboLinuxでは、bindのrpmが用意されていなかったので、TurboLinuxのftpサイトから SRPMをもらってきてコンパイル、インストール。別に問題なく動いてます。 コンパイル方法は、ほかの方のホームページを見てください。「rpm -i」+「rpm -bb」がミソです。
ftp.turbolinux.co.jp:/pub/TurboLinux/TurboLinux/ia32/Server/8/source/SRPMS/


目次

こんな順番でセットアップをすることにしましょう。
  1. BIND (DNSサーバ)
  2. postfix
  3. qpopper

1. BIND9 (DNSサーバ)

BIND設定の手順
  1. /etc/resolv.conf編集
  2. dnssec-keygenコマンド実行
  3. /etc/rndc.conf編集
  4. named.conf編集(作成)
  5. zoneファイル編集(作成)
  6. namedサーバ起動
  7. 動作確認

1.1. /etc/resolv.confの編集

domain localhost.localdomain
search localhost.localdomain
nameserver 192.168.0.1
domain kenstar.org
#search localhost.localdomain
nameserver 127.0.0.1
nameserver 192.168.0.10
nameserver 192.168.0.1

domainの名前を、ドメイン名に変更。 また、nameserverを自分自身を一番最初にもってくる。 (192.168.0.1は、家にあるルータで、Proxy DNSを持っています。)


1.2. dnssec-keygenの実行

dnssec-keygen -a hmac-md5 -b 512 -n user named
これを実行することにより、カレントディレクトリに
Krndc.***.key
Krndc.***.private
の二つのファイルが作成されます。

1.3. /etc/rndc.confの編集

先ほど作ったKrndc.***.privateの中のkeyを、rndc.confの*****部分に埋め込みます。
# Start of rndc.conf
key "rndc-key" {
algorithm hmac-md5;
secret "********";

};

options {
default-key "rndc-key";
default-server 127.0.0.1;
default-port 953;
};
# End of rndc.conf

1.4. named.confを作成?

turbolinux10のrpmには用意されていないので、いろんなページを参考にしながらから作りました。 こんな感じです。
# Use with the following in named.conf, adjusting the allow list as needed:
key "rndc-key" {
        algorithm hmac-md5;
        secret "*****";
};

controls {
        inet 127.0.0.1 port 953
                allow { 127.0.0.1; } keys { "rndc-key"; };
};

options {
    version "????";
    directory "/etc/namedb";
    pid-file "/var/run/named/named.pid";
};

zone "." {
    type hint;
    file "named.root";
};

zone "localhost" {
    type master;
    file "localhost.zone";
};

zone "0.0.127.IN-ADDR.ARPA" {
    type master;
    file "localhost.rev";
};

zone "kenstar.org" {
    type master;
    file "kenstar.zone";
};

zone "0.168.192.in-addr.arpa" {
    type master;
    file "kenstar.rev";
};

# End of named.conf

versionの???は、バージョンを聞かれても答えないようにするために設定。
directoryは、設定ファイルを置くディレクトリ。
localhostの設定のために、localhost.zone, localhost.revを見るように設定。
kenstar.orgの設定のために、kenstar.zone, kenstar.revを見るように設定。


1.5. zoneファイルの作成、設定

make-localhostがないので、手作業で作成。 これがあれば、localhost.zoneとかが自動的に生成されるらしいのに。。

localhost.zone
@       IN      SOA localhost. root.localhost. (
                        2003112701  ;Serial
                        3600        ; Refresh
                        900         ; Retry
                        3600000     ; Expire
                        3600 )      ; Minimum
        IN      NS      localhost.
        IN      A       127.0.0.1
localhost.rev
@       IN      SOA localhost. root.localhost. (
                        2003112701  ;Serial
                        3600        ; Refresh
                        900         ; Retry
                        3600000     ; Expire
                        3600 )      ; Minimum
        IN      NS      localhost.
1       IN      PTR     localhost.

そして次に、自分のドメインの設定をします。といっても、設定するサーバはひとつしかないので、 簡単は簡単ですね。

kenstar.zone
@       IN      SOA altir.kenstar.org. root.kenstar.org. (
                2003112701  ; Serial
                163600      ; Refresh
                900         ; Retry
                3600000     ; Expire
                3600 )      ; Minimum
        IN      NS      altir.kenstar.org.
        IN      MX      10      altir.kenstar.org.

altir   IN      A       192.168.0.10
ns      IN      CNAME   altir

kenstar.zoneファイルは、「**.kenstar.org」を「192.168.0.??」と変換するためのファイルですね。
NSはName Serverの略だと思う。DNSのアドレスを設定。 「root.kenstar.org.」は、よく分からないけど、とりあえず入れとけってかんじ。 ちゃんとした意味はご自身で調べてくださいね。 ほんとはそんなこと言っちゃいけないんだけど、動いてるからいいや。

MXは、メールサーバの設定。次に書かれている10は、優先度。ひとつしかメールサーバがないので10でいいでしょ。 その次には、メールサーバのアドレスを書く。これは、CNAMEで設定したアドレスだとうまくいきません。

Aは、マシン名に対応するアドレスを書きます。

CNAMEは、別名をつけます。 上記例では、nsをaltirの別名にしてます。

kenstar.rev
@       IN      SOA     altir.kenstar.org. root.kenstar.org.(
                        2003112701  ; Serial
                        3600        ; Refresh
                        900         ; Retry
                        3600000     ; Expire
                        3600 )      ; Minimum
        IN      NS      altir.kenstar.org.
        IN      MX      10      altir.kenstar.org.

10      IN      PTR     altir.kenstar.org.

「192.168.0.??」を「***.kenstar.org」に変換するためのファイルですね。
記述内容はkenstar.zoneとほとんど変らないです。 最後の行の10というのは、192.168.0.10の10で、 IPアドレスとマシン名を対応付けてます。


1.6. namedの起動

とりあえず、rootになって起動しちゃいましょう。
# /etc/rc.d/init.d/named start
で起動できるはず。

1.7. 動作確認

nslookupをつかうと、dig、hostを使えといわれます。まあ、全部試しましょう。

dig(正引き)
[root]# dig altir.kenstar.org

; <<>> DiG 9.2.1 <<>> altir.kenstar.org
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 56800
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;altir.kenstar.org.          IN      A

;; ANSWER SECTION:
altir.kenstar.org.   3600    IN      A       192.168.0.10

;; AUTHORITY SECTION:
kenstar.org.         3600    IN      NS      altir.kenstar.org.

;; Query time: 3 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sat Nov 29 13:22:16 2003
;; MSG SIZE  rcvd: 68

なんかちゃんと引けてる感じですね。よかったよかった。

dig(逆引き)
[root]# dig 192.168.0.10

; <<>> DiG 9.2.1 <<>> 192.168.0.10
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 36983
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;192.168.0.10.                  IN      A

;; AUTHORITY SECTION:
.                       10684   IN      SOA     A.ROOT-SERVERS.NET. NSTLD.VERISIGN-GRS.COM. 2003112801 1800 90
0 604800 86400

;; Query time: 2 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sat Nov 29 13:26:21 2003
;; MSG SIZE  rcvd: 105

なんかちゃんと引けてませんね。なぜ???まあいいや。

host (正引き)
[root]# host altir
altir.kenstar.org has address 192.168.0.10

ちゃんと引けてるね

host (逆引き)
[root]# host 192.168.0.10
10.0.168.192.in-addr.arpa domain name pointer altir.kenstar.org.

digだとだめだったのに、引けてるなぁ。まあいいでしょ。

nslookup (正引き)
[root@altir namedb]# nslookup altir
Note:  nslookup is deprecated and may be removed from future releases.
Consider using the `dig' or `host' programs instead.  Run nslookup with
the `-sil[ent]' option to prevent this message from appearing.
Server:         127.0.0.1
Address:        127.0.0.1#53

Name:   altir.kenstar.org
Address: 192.168.0.10

うむ、引けてる引けてる。

nslookup (逆引き)
[root@altir namedb]# nslookup 192.168.0.10
Note:  nslookup is deprecated and may be removed from future releases.
Consider using the `dig' or `host' programs instead.  Run nslookup with
the `-sil[ent]' option to prevent this message from appearing.
Server:         127.0.0.1
Address:        127.0.0.1#53

10.0.168.192.in-addr.arpa       name = altir.kenstar.org.

うむ、引けてるね


ページ自体が長くなって来たので、別のページに行くことにしましょう。 postfix qpopper