BIND(外向き)の設定


#contentsx



独自ドメインを取得し外向けのDNSサーバを構築する場合のBINDの設定
独自ドメイン名はexample.comとし、内部向けのキャッシュサーバとしても運用する

/etc/named.confの設定内容

  • 設定例
    acl localnet {
    192.168.0.0/24;
    127.0.0.1;
    };
    
    options {
      directory "/var/named";
      allow-recursion { localnet; };
      allow-transfer { ***.***.***.***; };
      allow-query { localnet; };
      version "hogehoge";
     };
    
    "type hint"
    
    zone "." IN {
    type hint;
    file "named.ca";
    };
    
    zone "localhost" IN {
    type master;
    file "local.zone";
    allow-update { none; };
    };
    
    zone "0.0.127.in-addr.arpa" IN {
    type master;
    file "local.rev";
    allow-update { none; };
    };
    
    zone "example.com" IN {
    type master;
    file "example.zone";
    allow-query { any; };
    };
    
    zone "***.***.***.in-addr.arpa" IN {
    type master;
    file "example.rev";
    allow-query { any; };
    };
    
  • 許可するアドレスの設定
    ここでは"localnet"って名前で192.168.0.0/24と127.0.0.1のネットワークをグループ化
    acl名はなんでも可能
    acl localnet {
    192.168.0.0/24;
    127.0.0.1;
    };
    
  • ここから下はオプション設定
    --directoryはzoneファイルを置く場所
    directory "/var/named";
  • サーバの利用者限定とゾーン転送サーバの限定
    外向けDNSサーバと合わせてキャッシュサーバとしても利用する場合、キャッシュサーバを外部ネットワークから利用されないよう以下のオプションを使用しアクセス制限を行う。
    allow-recursion ・・・・ キャッシュサーバの利用を制限する。
    allow-query ・・・・ 名前解決の問合せ元の制限する。
    allow-transfer ・・・・ DNSサーバ間のゾーン情報転送を制限する
    制限するネットワーク、ホストはaclで定義する。
    このままだと外部ネットワークから自ドメインの名前解決も拒否してしまうので、ゾーン定義の部分で許可するように設定する事。
    allow-recursion { localnet; };
      allow-query { localnet; };
      allow-transfer { ***.***.***.***; };
    
    recursion ・・・・ キャッシュサーバの利用を限定する
    query ・・・・・・ 名前解決問合せの制限
    transfer ・・・・ セカンダリDNSサーバからゾーン転送要求
  • バージョンを隠す
    BINDのバージョン情報の隠蔽 セキュリティ対策
    version "hogehoge";
    
  • キャッシュDNSの設定
    ここからゾーンファイルをダウンロードする。
    ファイル名を"named.ca"に変更
    "type hint"でキャッシュサーバに指定
    zone "." IN {
    type hint;
    file "named.ca";
    };
    
  • example.comのゾーンファイル
    ・type master はマスタDNSサーバって意味
    ・セカンダリサーバの場合は type slave とする
    逆引きのzone名は、プロバイダから逆引きzone名の指定があるので注意する!
    zone名が違っていると逆引きできなくなる
    allow-query設定で外部ネットワークからのアクセスを許可する。
    zone "example.com" IN {
    type master;
    file "example.zone";
    allow-query { any; };
    };
    
    zone "***.***.***.in-addr.arpa" IN {
    type master;
    file "example.rev";
    allow-query { any; };
    };
    
  • ローカルゾーンのゾーンファイル
    zone "localhost" IN {
    type master;
    file "local.zone";
    };
    
    zone "0.0.127.in-addr.arpa" IN {
    type master;
    file "local.rev";
    };
    

ゾーンファイル(正引き)

/var/named/example.zone

  • 設定リスト
    $TTL 86400
    @            IN  SOA  hoge1.example.com. root.example.com. (
                  2003081501    ; serial
                  3600          ; refresh
                  900           ; retry
                  604800        ; expire
                  86400         ; minimum
    )
                 IN    NS    hoge1.example.com
                   IN    MX 10 mail.example.com
    hoge1        IN    A     111.111.111.1
    mail         IN    A     111.111.111.1
    www          IN    A     111.111.111.2
    ftp          IN    CNAME www
    

ゾーンファイル(逆引き)

/var/named/example.rev

  • 設定リスト
    $TTL 86400
    @          IN  SOA  hoge1.example.com. root.example.com. (
                2003081501      ; serial
                3600            ; refresh
                900             ; retry
                604800          ; expire
                3600            ; minimum
    )
                IN   NS    hoge1.example.com.
    1           IN   PTR   hoge1.example.com.
    2           IN   PTR   www.example.com.
    

ゾーンファイル(ローカル正引き)

/var/named/local.zone

  • 設定リスト
    $TTL 86400
    @         IN   SOA localhost. root.localhost. (
                2003081501    ; serial
                28800         ; refresh
                14400         ; retry
                604800        ; expire
                86400         ; minimum
    )
            IN   NS   localhost.
            IN   A    127.0.0.1
    

ゾーンファイル(ローカル逆引き)

/var/named/local.rev

  • 設定リスト
    $TTL 86400
    @         IN   SOA localhost. root.localhost. (
                2003081501    ; serial
                28800         ; refresh
                14400         ; retry
                604800        ; expire
                86400         ; minimum
    )
              IN   NS     localhost.
    1         IN   PTR    localhost.
    

確認方法

基本的には内部DNSサーバの確認手順と同様
ただし、ネームサーバの指定は当然外部のサーバにしておく事(自分のプロバイダ等)

最終更新:2010年09月20日 22:41