AlmaLinux9のBIND設定 外部公開用DNS
AlmaLinux9のBIND設定 はどのようにすべきか?イマドキの設定はセキュリティ的にも安全で、将来の拡張にも強い構成が求められます。外部公開用DNSの場合は特にセキュリティ面を考慮することと同様にセカンダリDNSとの連携で止まらない設計・設定が重要となります。
関連サイト:BIND9 ISC
関連ページ:DKIMの導入 AlmaLinux9+AlmaLinux8+CentOS7
AlmaLinux9でBIND設定し運用する
AlmaLinux9でBIND設定の仕様
要素 | 設定値 |
---|---|
プライマリDNS | aq3.aquila.jp (161.34.68.88) |
セカンダリDNS | dns13.dion.ne.jp (211.5.1.220) |
ゾーン転送 | allow-transfer { 211.5.1.220; }; |
ゾーン通知(NOTIFY) | also-notify { 211.5.1.220; }; |
BINDポート | UDP/TCP 53番を開放(双方向) |
IPv6 | 使用しない |
サーバ実IPアドレス | 192.168.1.11/24 (NAT: 192.168.1.11 = 161.34.68.88) |
- 権威DNS機能を持ちつつ、内部ネットワーク(192.168.1.0/24)に対しては再帰問い合わせも許可し、全てのドメイン名(自ドメインおよび外部ドメイン)の名前解決を行う。
- 外部ネットワークからの再帰問い合わせは禁止し、セキュリティを確保する。
- 内部ゾーンは扱わない
- キャッシュは最小限
- ゾーン転送は許可しないか、特定のセカンダリに限定
- DNSSEC有効(ただし手動署名を省略)
- サーバ実IPアドレスのネットワーク上にあるPCはこのDNSサーバを指定する
- DNSの死活チェックなどを行う外部IPアドレスの問い合わせは許可する (164.70.115.131)
AlmaLinux9でBIND設定の各種設定ファイル
named.conf
acl "trusted-nets" {
192.168.0.0/24;
172.0.0.0/8;
10.0.0.0/8;
164.70.115.131;
};
acl "trusted-slaves" {
211.5.1.220; // セカンダリDNS(dns13.dion.ne.jp)
};
options {
listen-on port 53 { 127.0.0.1; 192.168.1.11; }; // IPアドレスを指定
listen-on-v6 { none; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
recursion yes;
allow-query { any; };
allow-recursion { trusted-nets; };
allow-transfer { trusted-slaves; };
dnssec-validation auto;
auth-nxdomain no;
};
zone "aq3.aquila.jp" IN {
type master;
file "aq3.aquila.jp.zone";
allow-transfer { trusted-slaves; };
};
zone "88h.68.34.161.in-addr.arpa" IN {
type master;
file "88h.68.34.161.rev";
allow-transfer { trusted-slaves; };
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.local";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
/var/named/aq3.aquila.jp.zone
$TTL 300
@ IN SOA ns.aquila.jp. root.aq3.aquila.jp. (
2025072001 ; Serial
3600 ; Refresh
1800 ; Retry
604800 ; Expire
300 ) ; Minimum
IN NS ns.aquila.jp.
IN NS dns13.dion.ne.jp.
ns IN A 210.255.164.66
@ IN A 161.34.68.88
/var/named/88h.68.34.161.rev
$TTL 86400
@ IN SOA ns.aquila.jp. root.aq3.aquila.jp. (
2025072001 ; Serial
3600 ; Refresh
1800 ; Retry
604800 ; Expire
86400 ) ; Minimum
IN NS ns.aquila.jp.
IN NS dns13.dion.ne.jp.
88 IN PTR aq3.aquila.jp.
/var/named/named.local
$TTL 1D
@ IN SOA localhost. root.localhost. (
2025072001 ; Serial
8H ; Refresh
2H ; Retry
1W ; Expire
1D ) ; Minimum
IN NS localhost.
1 IN PTR localhost.
AlmaLinux9でBIND設定の各種設定ファイルをChat-GPTで検証
このAlmaLinux9でBIND設定は、外部公開専用の権威DNSサーバとして非常に適切に構成されています。IPv6を拒否する方針も、以下の点から妥当です:
✅ IPv6 拒否の妥当性
- 要件に「IPv6は使用しない」と明記されており、
listen-on-v6 { none; };
で無効化済み。 - ネットワーク構成(NAT 変換)も IPv4 のみで、IPv6ルーティングの必要なし。
- セキュリティ的にも安全。IPv6を不用意に開けてしまうと、管理対象外からのアクセス経路になり得るため。
✅ この構成の長所
- 再帰問い合わせは信頼ネットのみ許可され、外部には閉鎖(権威DNSとして理想的)。
- ゾーン転送・NOTIFY もセカンダリに限定されており、漏洩リスク最小。
- NAT環境対応(内部 192.168.1.11 → 外部 161.34.68.88)も問題なし。
- 外部監視(164.70.115.131)からのアクセスを個別許可しており、監視用途にも柔軟対応。
BIND(Berkeley Internet Name Domain)は、DNSサーバーのソフトウェアとして広く利用されているオープンソースのソフトウェアです。特に、Linuxディストリビューションで標準的に採用されていることが多いです。BINDは、権威DNSサーバーとキャッシュDNSサーバーの両方の機能を持ち、インターネットの基本的なサービスを提供するために重要な役割を果たします。しかし、その一方で、コードが複雑で脆弱性が潜みやすく、セキュリティ上の問題が指摘されることもあります。