DKIM - 단일 호스트 - 다중 IP

DKIM - 단일 호스트 - 다중 IP

여러 개의 탄력적인 IPS가 있는 단일 EC2에서 DKIM을 구현하기 위한 모범 사례를 찾으려고 노력 중입니다.

# /etc/opendkim.conf
...
Mode                    sv
Canonicalization        relaxed/simple
ExternalIgnoreList      refile:/etc/opendkim/TrustedHosts
InternalHosts           refile:/etc/opendkim/TrustedHosts
KeyTable                refile:/etc/opendkim/KeyTable
SigningTable            refile:/etc/opendkim/SigningTable
SignatureAlgorithm      rsa-sha256
...

# /etc/opendkim/KeyTable
default._domainkey.example.com example.com:hp-hv-1:/etc/opendkim/keys/default.private
default._domainkey.example.com example.com:hp-hv-2:/etc/opendkim/keys/default.private

# /etc/opendkim/SigningTable
*@example.com default._domainkey.example.com

그런 다음 두 개의 DNS 레코드가 있습니다.

hp-hv-1._domainkey.example.com TXT "v=DKIM1;k=rsa;p=default.txt_key_goes_here"

hp-hv-2._domainkey.example.com TXT "v=DKIM1;k=rsa;p=default.txt_key_goes_here"

동일한 EC2 인스턴스에 있는 두 postfix 인스턴스의 경우 각각 다음과 같은 $myhostname이 있습니다.

# postfixmulti instance #1
myhostname = hp-hv-1

# postfixmulti instance #2
myhostname = hp-hv-2

두 postfix 인스턴스는 모두 동일한 EC2 인스턴스에 있으므로 둘 다 동일한 default.private/default.txt 프라이빗/퍼블릭 키 쌍을 공유하므로 KeyTable 및 SigningTable에 행을 더 추가할 필요가 없습니다. 내가 아는 한, 여러 도메인을 구현하려는 경우 KeyTable 및 SigningTable에 추가 행을 추가하기만 하면 됩니다(저는 그렇지 않습니다).

하지만 DKIM 설정을 테스트할 때 이메일이 서명되지 않았지만 서명되었다는 'pass: neutral' 응답이 계속 수신됩니다. 로그 파일에서 확인할 수 있습니다.

# snippet from /var/log/maillog
Sep 25 15:15:31 service-a-4 opendkim[27420]: 5B4A3625F0: DKIM-Signature field added (s=hp-hv-1, d=example.com)

내가 무엇을 놓치고 있나요?

버전:

CentOS 6.5
Postfix v2.6.6
Opendkim v2.9

답변1

분명히 혼란스러웠습니다. DKIM 서명 필드의 "s"가 postfix 구성에서 $myhostname을 식별해야 한다고 계속 생각했지만 실제로는 그렇지 않습니다. 자세히 읽어본 후DKIM 키 순환, 마침내 나에게 입혔습니다. "s"는 단순히 KeyTable, SigningTable 및 DNS에서 사용할 선택기입니다.

이것을 확인하세요:

# /etc/opendkim/KeyTable
#  Format: selector(1) domain:selector(2):/path/to/key
#    selector(1) is used in the /etc/opendkim/SigningTable
#    selector(2) is built into the DKIM signature for every email sent, which is used to lookup the DNS TXT entry: mail-1_r-1._domainkey.example.com
mail-1_r-1._domainkey.example.com example.com:mail-1_r-1:/etc/opendkim/keys/mail-1_r-1.private

이제 키를 회전하려면 다음을 수행합니다.

# /etc/opendkim/KeyTable
#  Generate new private/public key pair, and rename accordingly
mail-1_r-1._domainkey.example.com example.com:mail-1_r-1:/etc/opendkim/keys/mail-1_r-1.private
mail-1_r-2._domainkey.example.com example.com:mail-1_r-2:/etc/opendkim/keys/mail-1_r-2.private

그런 다음 서명 테이블에서 다음을 수행합니다.

# /etc/opendkim/SigningTable
*@shouttag.com mail_r-1._domainkey.example.com
*@shouttag.com mail_r-2._domainkey.example.com

그러면 DNS 항목에 대해 다음이 표시됩니다.

mail_r-1.domainkey.example.com "v=DKIM1;k=rsa;p=mail_r-1.txt_key_goes_here"
mail_r-2.domainkey.example.com "v=DKIM1;k=rsa;p=mail_r-2.txt_key_goes_here"

이러한 DNS 항목은 이메일이 실제로 귀하의 도메인(즉, 도메인 키 식별 메일)에서 전송되었는지 확인하는 데 사용됩니다. 그런 다음 7일 정도 후에 mail_r-1.domainkey.example.com을 제거할 수 있습니다.

관련 정보