GNU/Linux >> Linux の 問題 >  >> Cent OS

CentOS 8 /RHEL8メールサーバーにOpenDKIMをインストールして構成する

以前、CentOS/RHELメールサーバーでSPFとDKIMを設定する方法を説明しました。 LinuxでDKIMの署名と検証を実行できる2つの一般的なソフトウェアは、OpenDKIMとAmavisです。そのチュートリアルでは、OpenDKIMがCentOS 8 / RHEL 8リポジトリに含まれていないため、Amavisを使用しました。現在、OpenDKIMはEPELリポジトリに含まれています。 OpenDKIMの使用を好む人もいるので、このチュートリアルでその方法を説明します。

DKIMとは何ですか?

DKIM(DomainKeys Identified Mail)は、DNSのTXTレコードの一種であり、電子メールのなりすましを防ぎ、正当な電子メールをスパムフォルダではなく受信者の受信トレイに配信するのに役立ちます。 DKIMは秘密鍵を使用して、ドメインから送信されたメールに署名を追加します 。受信SMTPサーバーは、ドメインのDNSレコードで公開されている対応する公開鍵を使用して署名を検証します。

AmavisでDKIMを無効にする

以前のAmavisチュートリアルに従ったが、OpenDKIMを使用する場合は、AmavisでDKIMを無効にする必要があります。メインの構成ファイルを編集します。

sudo nano /etc/amavisd/amavisd.conf

次の行を見つけます。

$enable_dkim_verification = 1;  # enable DKIM signatures verification
$enable_dkim_signing = 1;       # load DKIM signing code, keys defined by dkim_key

を追加します 各行の先頭にある文字でコメントアウトします。

#$enable_dkim_verification = 1;  # enable DKIM signatures verification
#$enable_dkim_signing = 1;       # load DKIM signing code, keys defined by dkim_key

ファイルを保存して閉じます。次に、Amavisを再起動します。

sudo systemctl restart amavisd

ステップ1:CentOS 8/RHEL8にOpenDKIMをインストールして構成する

まず、EPEL(Enterprise Linux用の追加パッケージ)リポジトリを有効にして、OpenDKIMをインストールします。

sudo dnf install epel-release

sudo dnf install opendkim

OpenDKIMのメイン構成ファイルを編集します。

sudo nano /etc/opendkim.conf

次の行を見つけます。

Mode     v

デフォルトでは、OpenDKIMは検証モード(v)で実行され、受信電子メールメッセージのDKIM署名を検証します。送信メールに署名する必要があるため、この行を次のように変更して、署名モードを有効にします。

Mode           sv

次に、次の行を見つけます。

## Specifies whether or not the filter should generate report mail back
## to senders when verification fails and an address for such a purpose
## is provided. See opendkim.conf(5) for details.
SendReports yes

## Specifies the sending address to be used on From: headers of outgoing
## failure reports. By default, the e-mail address of the user executing
## the filter is used ([email protected]).
# ReportAddress "Example.com Postmaster" <[email protected]>

署名の検証が失敗し、署名にレポート要求( "r =y")が含まれ、署名ドメインがDNSのレポートレコードでレポートアドレス(つまり、ra =user)をアドバタイズすると、OpenDKIMはそのアドレスに構造化レポートを送信します問題を再現するために必要な詳細が含まれています。特定の差出人の電子メールアドレスを使用してレポートを送信することをお勧めします。 ReportAddressのコメントを解除します パラメータを設定し、メールアドレスを変更します。レポートのメールは送信者ドメインのDNSレコードで指定されたメールアドレスに送信されるため、これによって後方散乱の問題が発生することはありません。

ドメイン名ごとに個別のキーを使用するため、次の行を見つけてコメントアウトします。

KeyFile   /etc/opendkim/keys/default.private

次に、次の4行を見つけて、コメントを外します。

# KeyTable            /etc/opendkim/KeyTable

# SigningTable        refile:/etc/opendkim/SigningTable

# ExternalIgnoreList  refile:/etc/opendkim/TrustedHosts

# InternalHosts       refile:/etc/opendkim/TrustedHosts

ファイルを保存して閉じます。

ステップ2:署名テーブル、キーテーブル、信頼できるホストファイルを作成する

署名テーブルを編集します ファイル。

sudo nano /etc/opendkim/SigningTable

このファイルの最後に次の行を追加します。これは、サーバー上の送信者が @ your-domain.comを使用している場合にOpenDKIMに通知します。 アドレスの場合は、 20200308._domainkey.your-domain.comで識別される秘密鍵で署名する必要があります 。

*@your-domain.com    20200308._domainkey.your-domain.com

20200308はDKIMセレクターです。ドメイン名には複数のDKIMキーが含まれる場合があります。 DKIMセレクターを使用すると、特定のDKIMキーを選択できます。 DKIMセレクターには任意の名前を使用できますが、現在の日付(2020年3月8日)をDKIMセレクターとして使用すると便利です。ファイルを保存して閉じます。次に、キーテーブルを編集します ファイル。

sudo nano /etc/opendkim/KeyTable

DKIM秘密鍵の場所を指定する次の行を追加します。

20200308._domainkey.your-domain.com     your-domain.com:20200308:/etc/opendkim/keys/your-domain.com/20200308.private

ファイルを保存して閉じます。次に、trustedhostsファイルを編集します。

sudo nano /etc/opendkim/TrustedHosts

127.0.0.0.1と::1は、デフォルトでこのファイルに含まれています。次に、次の行を追加します。これにより、OpenDKIMは、電子メールが自分のドメイン名から送信されている場合、OpenDKIMはその電子メールに対してDKIM検証を実行しないように指示します。

*.your-domain.com

ファイルを保存して閉じます。

ステップ3:秘密/公開キーペアを生成する

DKIMは送信メッセージの署名と受信メッセージの検証に使用されるため、署名用の秘密鍵とリモート検証用の公開鍵を生成する必要があります。公開鍵はDNSで公開されます。

ドメイン用に別のフォルダを作成します。

sudo mkdir /etc/opendkim/keys/your-domain.com

opendkim-genkeyを使用してキーを生成します ツール。

sudo opendkim-genkey -b 2048 -d your-domain.com -D /etc/opendkim/keys/your-domain.com -s 20200308 -v

上記のコマンドは、2048ビットのキーを作成します。 -d(ドメイン) ドメインを指定します。 -D(ディレクトリ) キーが保存されるディレクトリを指定します。 20200308を使用しています DKIMセレクターとして。コマンドが実行されると、秘密鍵は 20200308.privateに書き込まれます。 ファイルと公開鍵は20200308.txtに書き込まれます ファイル。

デフォルトでは、rootのみがキーファイルの読み取りと書き込みを行うことができます。 opendkimを作成します 秘密鍵の所有者として。

sudo chown opendkim:opendkim /etc/opendkim/keys/ -R

ステップ4:DNSレコードで公開鍵を公開する

公開鍵を表示する

sudo cat /etc/opendkim/keys/your-domain.com/20200308.txt

pの後の文字列 パラメータは公開鍵です。

DNSマネージャーで、TXTレコードを作成し、 20200308._domainkeyと入力します 名前フィールドに。 (20200308を独自のDKIMセレクターに置き換える必要があります。)次に、ターミナルウィンドウに戻り、括弧内のすべてをコピーして、DNSレコードの値フィールドに貼り付けます。値フィールドのすべての二重引用符と改行を削除する必要があります。それらを削除しないと、次のステップのキーテストはおそらく失敗します。

ステップ5:DKIMキーをテストする

CentOS 8 / RHEL 8サーバーで次のコマンドを入力して、キーをテストします。

sudo opendkim-testkey -d your-domain.com -s 20200308 -vvv

すべて問題がなければ、 key OKが表示されます。 メッセージ。

opendkim-testkey: using default configfile /etc/opendkim.conf
opendkim-testkey: checking key '20200308._domainkey.linuxbabe.com'
opendkim-testkey: key OK

DKIMレコードがインターネットに伝播するまでに時間がかかる場合があることに注意してください。使用するドメインレジストラによっては、DNSレコードが即座に伝播される場合と、伝播に最大24時間かかる場合があります。 https://www.dmarcanalyzer.com/dkim/dkim-check/にアクセスし、 20200308と入力します。 セレクターとしてドメイン名を入力し、DKIMレコードの伝播を確認します。

「キーが安全ではありません」と表示されても、慌てないでください。これは、ドメイン名でDNSSECが有効になっていないためです。 DNSSECは、安全なDNSクエリのセキュリティ標準です。ほとんどのドメイン名はDNSSECを有効にしていません。引き続きこのガイドに従うことができます。

これで、opendkimサービスを開始できます。

sudo systemctl start opendkim

また、起動時に自動起動を有効にします。

sudo systemctl enable opendkim

OpenDKIMは<​​code>127.0.0.1:8891をリッスンします 。

ステップ6:PostfixをOpenDKIMに接続する

Postfixのメイン設定ファイルを編集します。

sudo nano /etc/postfix/main.cf

このファイルの最後に次の行を追加して、Postfixがmilterプロトコルを介してOpenDKIMを呼び出すことができるようにします。 127.0.0.1を使用する必要があることに注意してください アドレスとして。 localhostは使用しないでください 。

# Milter configuration
milter_default_action = accept
milter_protocol = 6
smtpd_milters = inet:127.0.0.1:8891
non_smtpd_milters = $smtpd_milters

ファイルを保存して閉じます。次に、 postfixを追加します opendkimへのユーザー グループ。

sudo gpasswd -a postfix opendkim

postfixを再起動します サービス。

sudo systemctl restart postfix

ステップ7:SPFとDKIMのチェック

これで、デスクトップメールクライアントまたはウェブメールクライアントを使用して、テストメールを [email protected]に送信できます。 無料の電子メール認証レポートを取得します。これがport25.comから入手したレポートです。

メールサーバーからGmailアカウントにテストメールを送信して、SPFとDKIMのチェックに合格したかどうかを確認することもできます。 Gmailで開いたメールメッセージの右側で、[ show original ]をクリックすると、 ドロップダウンメニューのボタンをクリックすると、認証結果を確認できます。

メッセージが署名されておらず、DKIMチェックが失敗した場合は、postfixログ( / var / log / maillog )をチェックすることをお勧めします )構成の何が問題になっているのかを確認します。

メールサーバーは、受信メールに対してDKIM検証も実行します。結果はメールヘッダーで確認できます。以下は、Gmailを使用した送信者のSPFとDKIMのチェックです。

Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=2607:f8b0:4864:20::c2d; helo=mail-yw1-xc2d.google.com; [email protected]; receiver=<UNKNOWN> 
Authentication-Results: email.linuxbabe.com;
	dkim=pass (2048-bit key; unprotected) header.d=gmail.com [email protected] header.b="XWMRd2co";
	dkim-atps=neutral

複数のドメイン用にOpenDKIMを構成する方法

PostfixAdminを使用してCentOS8/RHEL8メールサーバーで複数のドメインをホストするためのガイドを作成しました。その記事では、DKIMの署名と検証にAmavisを使用しました。私はOpenDKIMを使用しているので、その記事のステップ3をスキップする必要があります。

複数のドメイン用にOpenDKIMを構成するには、以下のように、署名テーブル、キーテーブル、およびトラステッドホストファイルに他のドメインを追加する必要があります。

署名表:

*@domain1.com       20200308._domainkey.domain1.com
*@domain2.com       20200308._domainkey.domain2.com

キーテーブル:

20200308._domainkey.domain1.com     domain1.com:20200308:/etc/opendkim/keys/domain1.com/20200308.private
20200308._domainkey.domain2.com     domain2.com:20200308:/etc/opendkim/keys/domain2.com/20200308.private

信頼できるホスト:

127.0.0.1
localhost

*.domain1.com
*.domain2.com

次に、DKIM秘密鍵と公開鍵のペアを生成し、他のドメインの手順3、手順4、手順5で説明したように、DNSにDKIM公開鍵を追加します。 OpenDKIMを再起動すると、完了です。

sudo systemctl restart opendkim

次のステップ

このチュートリアルが、CentOS 8 /RHEL8メールサーバーへのOpenDKIMのインストールと構成に役立つことを願っています。次に、次のチュートリアルを読んで、電子メールのなりすましをブロックするようにOpenDMARCを設定することをお勧めします。

  • 電子メールのなりすましをブロックするためにCentOS/RHELでPostfixを使用してOpenDMARCを設定する

いつものように、この投稿が役に立った場合は、無料のニュースレターを購読して、その他のヒントやコツを入手してください。気をつけて🙂


Cent OS
  1. CentOS 7 / RHEL 7にFTPサーバーをインストールして構成する–(vsftpfd)

  2. CentOS / RHEL 7 :ftp サーバー (vsftpd) をインストールして構成する方法

  3. CentOS / RHEL 5 :vsftpd サーバーをインストールして構成する方法

  1. RHEL 8 /CentOS8にpostfixメールサーバーをインストールする方法

  2. RHEL 8 / CentOS8LinuxにHAProxyをインストールして構成する

  3. RHEL 8 /CentOS8にsambaをインストールして設定する方法

  1. CentOS7にVNCをインストールして設定する方法

  2. CentOS8にNFSサーバーをインストールして構成する方法

  3. CentOS8にVNCをインストールして設定する方法