私はBINDをDNSサーバーとして使用していますが、私が望むのは、ゾーンファイルを手動で編集することなく、サーバーがゾーンにレコードを追加または削除できるようにすることです。これをリモートでやりたいです。
このアップデートにはキーなどが必要ですか?または、次のSSH接続を使用して更新できますか?
ssh user@remote "nsupdate ..... " ;
答え1
私は以前これを試したことがあり、これを行うためにバインディングに動的領域を構築できます。ただし、リージョンを直接編集する機能が失われ、リージョンを更新するには動的更新コマンドを使用する必要があったことに注意してください。
私はまた、施設への不正アクセスを防ぐために鍵を設定できると信じています。
現在私が持っている一般的な解決策は、Windows AD / DNSメカニズムまたはサードパーティのネットワークソリューションを使用して動的領域を処理することです。
答え2
解決しました。実際にはキーが必要です。キーを生成してください。
dnssec-keygen -a HMAC-MD5 -b 128 -n HOST example.com.
confファイルを編集します。
// TSIG Key
key "example.com." {
algorithm hmac-md5;
secret "THE KEY GENERATED ABOVE";
};
zone "example.com" IN {
type master;
file "example.com.zone";
allow-update{ key "example.com."; };
};
/var/named フォルダに命名権限を付与します。
# chown -R named:named /var/named
# find . -type d -exec chmod 770 {} \;
# find . -type f -exec chmod 660 {} \;
答え3
特定のホストが更新(例:127.0.0.1)を実行するか、DNSサーバーのプライベートネットワーク(例:
zone "example.com" {
type master;
file "/var/lib/bind/db.example.com";
allow-update {
127.0.0.1;
192.168.33/24;
192.168.42/24;
};
};
allow-update { key "example.com." }
あなたが言ったように、キーファイルを使って追加することもできます。ただし、128ビットHMAC-MD5よりも安全なキーを使用することをお勧めします。たとえば、次のことを試してみてください。
# RSA-SHA256
dnssec-keygen -a RSASHA256 -b 2046 -n ZONE example.com.
# Elliptic Curve
dnssec-keygen -a ED25519 -n ZONE example.com.
/var/lib/bind
注:動的領域は代わりに配置する必要があると思います/etc/bind
。
マニュアルには、ダイナミックゾーン構成を「手動で」更新してはならないと記載されています。
nsupdateまたはDHCPサーバーを介して動的に制御されるゾーンは手動で編集しないでください。手動編集は動的更新と競合し、データが失われる可能性があります。
rndc を使用して動的更新をディスクに保存できます。たとえば、次のようになります。
rndc freeze example.com.
rndc sync example.com.
rndc thaw example.com.