2026年10月29日
2026年10月29日
BINDのACLでゾーン転送を制限する方法
はじめに
DNS(Domain Name System)は、インターネット上のホスト名とIPアドレスの相互変換を担っています。 BIND(Berkeley Internet Name Domain)は最も広く利用されているオープンソースのDNSソフトウェアで、多くの組織や個人が自身のドメイン管理に使用しています。しかし、不正なゾーン転送によりプライベートのDNS情報が漏洩するリスクがあります。そこでこの記事では、BINDのACL機能を使ってゾーン転送を制限する方法について詳しく説明します。
症状・背景
- ネットワークに外部からの不正なゾーン転送が懸念される場合
- 様々なDNSサーバー間で信頼関係を持たない状況において、特定のサーバーのみにゾーン転送を許可する必要がある場合
- プライベートのレコードや内部ネットワーク向けのDNS情報を外部から非公開にする必要がある場合
手順・設定方法
ステップ1: ゾーンファイルとACLEntry定義
# /etc/bind/named.conf.options の中で以下のように記述します。
options {
directory "/var/cache/bind";
recursion no; # 証拠なしの再帰的なリクエストを拒否します(推奨)
allow-transfer { none; }; # デフォルトではゾーン転送は許可されていません
};
# /etc/bind/named.conf.local または /etc/bind/zones/ 目錄下的某个文件中定义ACL规则如下:
zone "example.com" {
type master;
file "/etc/bind/db.example.com";
allow-transfer { key "secret-key"; }; # 具体的关键字需要根据实际情况设定
};
ステップ2: 認証キーの設定
# /etc/bind/named.conf.options の中で以下のように記述します。
key "secret-key" {
algorithm hmac-md5;
secret "your-secret-hmac-key";
};
# 重要:hmac-md5は推奨されません。2018年以降は使用を避けるべきです。代わりに,hmac-sha256, hmac-sha384, hmac-sha512などのより安全なアルゴリズムを使用することをお勧めします。
ステップ3: ゾーン転送許可先の追加
# /etc/bind/named.conf.local または /etc/bind/zones/ 目錄下的某个文件中定义ACL规则如下:
zone "example.com" {
type master;
file "/etc/bind/db.example.com";
allow-transfer { key "secret-key"; 192.0.2.254; }; # 允许从IP为192.0.2.254的服务器进行转送
};
# 注意:允许从特定IP地址或网络范围进行转送。
ステップ4: ネットワーク設定と監視
# /etc/bind/named.conf.options の中で以下のように記述します。
options {
directory "/var/cache/bind";
recursion no; # 証拠なしの再帰的なリクエストを拒否します(推奨)
allow-transfer { key "secret-key"; 192.0.2.254; }; # 具体性的地允许的转送源
};
# 检查配置是否正确,确保没有拼写错误。
named-checkconf
# 启动或重新启动BIND服务以应用更改。
systemctl restart named
注意事項
- BINDの設定は非常に重要なセキュリティタスクです。誤った設定によりサービスが停止したり、不正なアクセスが許可される可能性があります。
- 有効な認証キーの生成と管理は不可欠です。鍵を適切に保管し、定期的に更新することをお勧めします。
- 構成ファイルの誤りやバグによりサービスがダウンする場合があるため、変更直後には監視を行いましょう。
まとめ
1. ACLを使用してゾーン転送を制限:特定のサーバーのみにゾーン転送を許可することができます。
2. 認証キー設定:セキュリティ上重要であり、適切なハッシュアルゴリズムを使用することをお勧めします。
3. 有効なIPアドレスの指定:許可するサーバーのIPアドレスを明示的に指定することで、ゾーン転送をより厳格に制御することができます。
4. サービス再起動と確認:変更後はBINDサービスを再起動し、設定が正しく反映されていることを確認してください。
5. 監視と定期的なレビュー:セキュリティ設定は常に最新の状態であるべきです。定期的に検討を行い、必要に応じて調整を行いましょう。
関連記事: