Google Workspace での DKIM の問題のトラブルシューティング
Gsuite メール ソリューションで DKIM エラーが発生すると、特に安全なメール ゲートウェイを使用して送信メールをスキャンする場合にイライラすることがあります。この問題は、Gsuite でカスタム DKIM キーを設定するときによく発生し、「dkim=neutral (ボディ ハッシュが検証されませんでした)」という結果になり、受信者によって失敗として扱われます。
Gmail がセキュア電子メール ゲートウェイ (SEG) に電子メールを送信し、Gmail SMTP リレーを通じて中継する構成で DKIM がどのように動作するかを理解することが重要です。この記事は、これらの DKIM 障害を効果的に診断して解決できるようにすることを目的としています。
指示 | 説明 |
---|---|
dkim.verify | 提供された DKIM キーを使用して電子メールの DKIM 署名を検証します。 |
dns.resolver.resolve | DKIM キー セレクターとドメインに関連付けられた TXT レコードを DNS にクエリします。 |
message_from_bytes | 電子メール メッセージをバイトのようなオブジェクトから電子メール メッセージ オブジェクトに解析します。 |
opendkim-genkey | 指定されたセレクターとドメインを使用して新しい DKIM キー ペアを生成します。 |
Canonicalization | ヘッダーとボディの DKIM 正規化方法を設定します (リラックス/シンプル)。 |
SyslogSuccess | 監視とデバッグのために、成功した DKIM 操作をシステム ログに記録します。 |
DKIM スクリプトとその機能について
提供されている Python スクリプトは、電子メールの DKIM ヘッダーを抽出し、ドメインとセレクターに関連付けられた DKIM キーを DNS にクエリすることにより、DKIM 署名を検証するのに役立ちます。このスクリプトでは、 dkim.verify DKIM 署名が有効であることを確認する機能。これは電子メールの整合性と信頼性を維持するために重要です。の dns.resolver.resolve コマンドは、DKIM キーにリンクされている TXT レコードを DNS にクエリします。 message_from_bytes 電子メールをバイトのようなオブジェクトから読み取り可能なメッセージ形式に変換します。
Postfix 構成スクリプトは、セキュア電子メール ゲートウェイ (SEG) で DKIM 署名を設定するために使用されます。 OpenDKIM をインストールし、適切な設定で構成することにより、 Canonicalization DKIM 署名の場合と SyslogSuccess ログ操作の場合、スクリプトは送信電子メールが DKIM キーで適切に署名されていることを確認します。 bash スクリプトは、DKIM DNS レコードのチェックと更新のプロセスを自動化し、DKIM キーの管理を容易にし、ドメインに合わせて正しく構成されていることを確認します。
カスタム スクリプトを使用した Gsuite での DKIM エラーの解決
DKIM 署名を確認するための Python スクリプト
import dkim
import dns.resolver
from email import message_from_bytes
def check_dkim(email_bytes):
msg = message_from_bytes(email_bytes)
dkim_header = msg['DKIM-Signature']
domain = dkim_header.split('@')[1].split(' ')[0]
selector = dkim_header.split('=')[1].split(';')[0]
dns_response = dns.resolver.resolve(f'{selector}._domainkey.{domain}', 'TXT')
dkim_key = dns_response[0].to_text().strip(' "')
dkim.verify(email_bytes, dkim_key)
email_path = 'path/to/email.eml'
with open(email_path, 'rb') as f:
email_bytes = f.read()
check_dkim(email_bytes)
Postfix による適切な DKIM 処理の確保
DKIM署名のためのPostfix構成
sudo apt-get install opendkim opendkim-tools
sudo nano /etc/opendkim.conf
AutoRestart Yes
AutoRestartRate 10/1h
Syslog yes
SyslogSuccess Yes
LogWhy Yes
Canonicalization relaxed/simple
Mode sv
SubDomains no
自動化された DKIM DNS チェックと更新
DNS 検証と DKIM 更新用の Bash スクリプト
#!/bin/bash
DOMAIN="yourdomain.com"
SELECTOR="default"
DKIM_RECORD=$(dig TXT ${SELECTOR}._domainkey.${DOMAIN} +short)
if [[ -z "$DKIM_RECORD" ]]; then
echo "DKIM record not found for $DOMAIN with selector $SELECTOR"
else
echo "DKIM record for $DOMAIN: $DKIM_RECORD"
fi
sudo opendkim-genkey -s ${SELECTOR} -d ${DOMAIN}
sudo mv ${SELECTOR}.private /etc/opendkim/keys/${DOMAIN}/
sudo chown opendkim:opendkim /etc/opendkim/keys/${DOMAIN}/${SELECTOR}.private
電子メールゲートウェイによる DKIM の問題への対処
安全なメール ゲートウェイで Google Workspace を使用する場合、よくある問題の 1 つは、ゲートウェイによってメールの本文の内容が変更され、DKIM 署名の検証に失敗することです。これを軽減するには、電子メール本文の整合性を維持するようにゲートウェイが構成されていることを確認してください。もう 1 つの方法は、電子メールが Gmail SMTP リレーに到達する前に、組織の DKIM キーを使用して電子メールに再署名するようにゲートウェイを構成することです。
さらに、操作の順序と DKIM 署名が行われる場所を理解することが重要です。 Google による署名後に SEG がメールを変更すると、不一致が生じる可能性があります。 DKIM キーを適切に処理するように SEG を構成すると、障害を防ぐことができます。メールの整合性を維持するには、Google Workspace、SEG、SMTP リレー間の適切な同期を確保することが不可欠です。
DKIM の問題に関する一般的な質問と回答
- SEG を通過した後に DKIM 署名が失敗するのはなぜですか?
- SEG によって電子メールの内容が変更され、本文のハッシュが不一致になる可能性があります。 SEG が電子メールを変更したり、正しい DKIM キーで再署名したりしないようにしてください。
- このセットアップでは複数の DKIM キーを使用できますか?
- はい。ただし、競合を防ぐために、各段階で電子メールに署名するキーを管理することが重要です。
- DKIM 設定が正しいかどうかを確認するにはどうすればよいですか?
- 次のようなツールを使用します MXtoolbox または dkim.verify スクリプト内で DKIM 署名の有効性を確認します。
- Gmail SMTP リレーは DKIM 署名においてどのような役割を果たしますか?
- 電子メールを受信者に転送し、構成されている場合は別の DKIM 署名を追加する可能性があります。
- SEG が電子メールの内容を変更しないようにするにはどうすればよいですか?
- SEG のポリシーと設定を確認および調整して、電子メール本文の整合性を維持します。
- の目的は何ですか Canonicalization 設定?
- これは、署名前に電子メールのヘッダーと本文をどのように正規化するかを指定します。これは、DKIM 検証に影響を与える可能性があります。
- デフォルトの Google DKIM キーは機能するのに、カスタム キーが機能しないのはなぜですか?
- カスタム キーが適切に構成されていない、または DNS に伝播されていない可能性があります。 DNS ツールを使用して確認します。
- Google Workspace と SEG の両方に DKIM キーが必要ですか?
- 必ずしも必要というわけではありませんが、両方で一貫した DKIM キーを使用すると、トラブルシューティングが簡素化され、セキュリティが強化されます。
DKIM 構成の課題に関する最終的な考え
SMTP リレーと SEG を使用しているときに Google Workspace で DKIM の障害を解決するには、各コンポーネントがどのように相互作用するかを理解する必要があります。 SEG が DKIM 署名を無効にするような方法で電子メールの内容を変更しないようにすることが重要です。 DKIM キーを適切に処理できるように SEG と Google Workspace の両方を構成することは、送信メッセージの整合性と信頼性を維持するために重要です。
提供されたスクリプトと構成に従うことで、DKIM の問題を効果的にトラブルシューティングして解決できます。 DNS ツールと電子メール検証ツールを使用して DKIM 設定を定期的に検証すると、安全で信頼性の高い電子メール システムを維持できます。すべてのコンポーネント間の適切な同期を確保すると、DKIM の障害が防止され、電子メールのセキュリティが強化されます。