DNS構築

192.jpゾーンを立てました。

DNSの設定

VPS内に構築するDNSは外部から見えないため、よく使われるBINDでも良いのですが、ものは試しでNSDを使うことにしました。

NSDはFedoraリポジトリに置かれているため、DNFで入れました。

$ sudo dnf install nsd

その上で、ゾーンファイルとゾーン設定ファイルを作成します。ここではゾーン設定ファイルを示すのみで、ゾーンファイルは省略します。

$ cat /etc/nsd/conf.d/192.jp.zone.conf
zone:
    name: 192.jp
    zonefile: /etc/nsd/conf.d/192.jp.zone
    notify: 210.188.224.9  NOKEY       # ns1.sakura.ad.jp
    notify: 210.224.172.13 NOKEY       # ns2.sakura.ad.jp
    provide-xfr: 210.188.224.9  NOKEY  # ns1.sakura.ad.jp
    provide-xfr: 210.224.172.13 NOKEY  # ns2.sakura.ad.jp
    outgoing-interface: 153.127.66.42

ゾーン更新時の通知先を指定するnotify、および許可するゾーン転送サーバを指定するprivide-xfrで指定しているIPアドレスはドキュメントに書かれているものになります。

※ プライマリネームサーバにて弊社ネームサーバ(210.188.224.9 / 210.224.172.13)からの問い合わせを許可するように設定してください。

ネームサーバ利用申請 – さくらのサポート情報

セカンダリDNSサーバのみ公開

続いてVPS内のDNSサーバを一般に公開せず、セカンダリDNSサーバのみアクセス可能にします。Fedora 32での標準的なパケットフィルタであるFirewalldを使って対応しました。

まずIPアドレスベースで通信の許可を設定します。Firewalldではzoneを分けることで設定しますので、dns-secondaryというゾーンを作成し、送信元IPアドレスを設定しました。これによりセカンダリDNSサーバからの問い合わせ通信はdns-secondaryで処理されます。そしてこのゾーンにdnsサービスの許可を指定します。具体的には次のコマンドを実行しています。

$ sudo firewall-cmd --permanent --new-zone=dns-secondary
$ sudo systemctl reload firewalld

$ sudo firewall-cmd --zone=dns-secondary --add-source=210.188.224.9
$ sudo firewall-cmd --zone=dns-secondary --add-source=210.224.172.13

$ sudo firewall-cmd --zone=dns-secondary --add-service=dns

ここまでの変更は直ちに反映されますので、この状態で次の確認を行いました。

  • セカンダリDNSサーバからのDNS問い合わせへ応答していること(tcpdumpを使って確認)
  • ほかのホストからDNS応答がないこと(手元から確認)

接続の確認が終わったら設定ファイルへ書き出し、サーバの再起動以降も通信許可設定が適用される設定とします。

$ sudo firewall-cmd --runtime-to-permanent

以上で設定を終えました。


Posted

in

,

by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *