web-dev-qa-db-ja.com

bind9での長いドメインキーレコードの公開

Exim4ベースのメールシステムをセットアップしています。このシステムは、(特に)DKIM署名とチェックを実装します。署名は問題なく機能しているようですが、チェックは機能せず、exim4は、dkim公開鍵を含むmy TXTレコードの構文について不平を言います:

2014-02-02 22:37:31 1WA5fP-0004Y4-E2 DKIM: d=middle.earth s=a9d04665528b593d263a6e5256648c99 c=relaxed/relaxed a=rsa-sha256 [invalid - syntax error in public key record]

私は2048ビット長のRSAキーを使用してメールリレーレベルでメールに署名しています(これで問題なく動作し、実際にこのサーバー経由でリレーされるメールにDKIMヘッダーがあります)。問題は、バインド(そのゾーンの私のDNSサーバー)が、ゾーンファイル内の255文字を超えるレコードをサポートしていないことにあるようです。したがって、以下に示すように、そして非常に信頼できるWebサイトzytrax.comで説明されているように、レコードを分割することを選択しました。

...
a9d04665528b593d263a6e5256648c99._domainkey IN  1800 TXT    ("k=rsa,p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAz2/ZfhxSI/A"
                                         "bqgh0amM8ylrlosirWeKShUhq7fg12aYmRwOqq9hIzO0Fcz1BzfgHVu6HU++rC5"
                                         "QoUK0JQK/nk4jwkDgvG2di2ZYmAvEbY/VeiK1x/TG0p1Iczr2k6Bj0gEAb/YGD2"
                                         "YbwrwAi4bDXwoPsYuuNn9TB3jjyWKu/dvOsqhff1/4Wc+FkOi0ClvgrXiklN28X"
                                         "TLjyjSyU794ntIoegXxrfwcwkhfPMvuqcnhfIC0Z8L71M4WR4SoHyNHVfBtNlUv"
                                         "VNROiXlMxtxnNQvfViSwz6LC8bYIxeAba3hSXPTChKu3qZtfR0o3jFwEWAfLQdg"
                                         "Ixler0jMEoAyJmfQIDAQAB")

完全なゾーンファイルはここにあります: http://Pastebin.com/GDE5XA2M

その構成では、eximは上記のエラーについて文句を言います。ここでdkimレコードを手動で解決しようとすると、次のようになります。

;; ANSWER SECTION:
a9d04665528b593d263a6e5256648c99._domainkey.middle.earth. 1800 IN TXT "k=rsa,p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAz2/ZfhxSI/A" "bqgh0amM8ylrlosirWeKShUhq7fg12aYmRwOqq9hIzO0Fcz1BzfgHVu6HU++rC5" "QoUK0JQK/nk4jwkDgvG2di2ZYmAvEbY/VeiK1x/TG0p1Iczr2k6Bj0gEAb/YGD2" "YbwrwAi4bDXwoPsYuuNn9TB3jjyWKu/dvOsqhff1/4Wc+FkOi0ClvgrXiklN28X" "TLjyjSyU794ntIoegXxrfwcwkhfPMvuqcnhfIC0Z8L71M4WR4SoHyNHVfBtNlUv" "VNROiXlMxtxnNQvfViSwz6LC8bYIxeAba3hSXPTChKu3qZtfR0o3jFwEWAfLQdg" "Ixler0jMEoAyJmfQIDAQAB"

それは私にはまったく正しくないように見え、eximがそのような出力で失われることは想像できます。しかし、それがそのような長いDNSレコードに対する通常のDNS応答であり、eximがそれを処理する必要があるのか​​、それとも私がバインドを立てる方法であるのかが間違っているのかどうかは、100%わかりません。

これについて何か助けていただければ幸いです。

ありがとう。

7
alxgomz

セミコロンの代わりにコンマを使用して、レコード内のキーと値のペアを区切ります。それを次のように変更します。

a9d04665528b593d263a6e5256648c99._domainkey IN  1800 TXT (
         "k=rsa;p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAz2/ZfhxSI/A"
         "bqgh0amM8ylrlosirWeKShUhq7fg12aYmRwOqq9hIzO0Fcz1BzfgHVu6HU++rC5"
         "QoUK0JQK/nk4jwkDgvG2di2ZYmAvEbY/VeiK1x/TG0p1Iczr2k6Bj0gEAb/YGD2"
         "YbwrwAi4bDXwoPsYuuNn9TB3jjyWKu/dvOsqhff1/4Wc+FkOi0ClvgrXiklN28X"
         "TLjyjSyU794ntIoegXxrfwcwkhfPMvuqcnhfIC0Z8L71M4WR4SoHyNHVfBtNlUv"
         "VNROiXlMxtxnNQvfViSwz6LC8bYIxeAba3hSXPTChKu3qZtfR0o3jFwEWAfLQdg"
         "Ixler0jMEoAyJmfQIDAQAB")

また、私の特定のゾーンファイルでは、バージョンをv=DKIM1として具体的に宣言していることにも注意します。余談ですが、私はレコードを( )でラップしていません。すべて1行にまとめているからです。

record._domainkey IN 1800 TXT "v=DKIM1;blah" "blah2" "blah3"

それは個人的な好みであり、私はあなたのほうが確かにはるかに読みやすくなっていることを理解しています。

9
Todd Lyons