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

CentOS/RHELのPostfixAdminで複数のメールドメインをホストする

このチュートリアルでは、PostfixAdminを使用してCentOS / RHELサーバーに複数のメールドメイン(仮想ホスティング)を設定する方法を示します。PostfixAdminは、多くのドメインとユーザーのPostfixベースの電子メールサーバーを構成および管理するためのオープンソースのWebベースのインターフェイスです。

前提条件

このチュートリアルに従うには、次のことが必要です

  • 1つのメールドメインでPostfixAdminを構成しました。
  • パート4に従って、SPFとDKIMを設定しました。
  • RoundcubeWebメールをインストールしました。

上記の要件が満たされたら、以下の手順に従ってください。

あなたがしなければならないこと

複数のメールドメインをホストする場合は、次のことを行う必要があります

  • PostfixAdminWebベースのパネルで新しいメールドメインとユーザーを追加します。
  • 新しいメールドメインのMX、A、SPFレコードを作成します。
  • 新しいドメインのDKIM署名を設定します。
  • 新しいドメインのDMARCレコードを作成します。
  • 複数のドメイン用にRoundCubeWebメール、Postfix、Dovecotを設定する
逆引きDNSチェックは、送信者のIPアドレスがHELOホスト名と一致するかどうかをチェックするために使用されます。新しいメールドメインを追加するときに、別のPTRレコードを追加する必要はありません。

ステップ1:PostfixAdminパネルにドメインを追加する

postmasterアカウントでPostfixAdminパネルにログインします。 (https://postfixadmin.your-domain.com/ )次に、Domain Listに移動します ->New Domain 新しいドメインを追加します。

新しいドメインにはDNSAレコードが必要であることに注意してください。そうしないと、PostfixAdminは次のエラーメッセージをスローします。 dnsmap.ioでDNS伝播ステータスを確認できます。

Invalid domain domain2.com, and/or not discoverable in DNS

次に、新しいドメインの下にユーザーを追加します。

ステップ2:新しいメールドメインのMX、A、SPFレコードを作成する

DNSマネージャーで、次のように新しいドメインのMXレコードを追加します。

Record Type    Name      Value

MX             @         mail.domain2.com

Aレコードは、メールサーバーのIPアドレスを指します。

Record Type    Name     Value

A              mail     IP-address-of-mail-server

サーバーでIPv6アドレスを使用している場合は、必ずAAAAレコードを追加してください。

次に、SPFレコードを作成して、MXホストが新しいメールドメインのメールを送信できるようにします。

Record Type    Name      Value

TXT            @         v=spf1 mx ~all

ステップ3:新しいドメインのDKIM署名を設定する

このチュートリアルシリーズのパート4では、単一ドメイン用にOpenDKIMをインストールして構成しました。次に、OpenDKIMに、新しいメールドメインのすべての送信メールに署名するように指示する必要があります。

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

sudo nano /etc/opendkim/SigningTable

以下のように2番目のドメインを追加します。

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

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

sudo nano /etc/opendkim/KeyTable

以下のように2番目のドメインを追加します。

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

トラステッドホストファイルを編集します。

sudo nano /etc/opendkim/TrustedHosts

以下のように2番目のドメインを追加します。

127.0.0.1
localhost

*.domain1.com
*.domain2.com

次に、2番目のドメインのプライベート/パブリックキーペアを生成する必要があります。 2番目のドメイン用に別のフォルダを作成します。

sudo mkdir /etc/opendkim/keys/domain2.com

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

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

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

opendkimを作成します 秘密鍵の所有者として。

sudo chown opendkim:opendkim /etc/opendkim/keys/domain2.com/20200308.private

公開鍵を表示する

sudo cat /etc/opendkim/keys/domain2.com/20200308.txt

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

DNSマネージャーで、2番目のドメインのTXTレコードを作成します。 20200308._domainkeyと入力します [名前]フィールドに入力します。括弧内のすべてをコピーして、値フィールドに貼り付けます。すべての二重引用符を削除します。 (最初にテキストエディタに貼り付け、二重引用符をすべて削除してから、DNSマネージャにコピーできます。DNSマネージャでは、キャリッジリターンなどの他の無効な文字を削除するように求められる場合があります。)

変更を保存した後。このコマンドでTXTレコードを確認してください。

dig TXT 20203008._domainkey.domain2.com

これで、次のコマンドを実行して、DKIMDNSレコードが正しいかどうかをテストできます。

sudo opendkim-testkey -d domain2.com -s 20200308 -vvv

すべて問題がなければ、次のように表示されます

opendkim-testkey: using default configfile /etc/opendkim.conf
opendkim-testkey: checking key '20203008._domainkey.domain2.com'
opendkim-testkey: key secure
opendkim-testkey: key OK

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

OpenDKIMを再起動して、2番目のドメインのメールへの署名を開始します。

sudo systemctl restart opendkim

ステップ4:新しいドメインのDMARCレコードを作成する

DMARCレコードを作成するには、DNSマネージャーに移動し、 TXTを追加します 記録。名前フィールドに「_dmarc」と入力します 。値フィールドに、次のように入力します。 [email protected]を作成する必要があることに注意してください メールアドレス。

v=DMARC1; p=none; pct=100; rua=mailto:[email protected]

上記のDMARCレコードは安全な出発点です。 DMARCの詳細な説明を読みたい場合は、次の記事を確認してください。

  • ドメイン名を電子メールのなりすましから保護するためのDMARCレコードの作成

ステップ5:複数のドメイン用にRoundCube、Postfix、Dovecotを設定する

最初のメールドメインにRoundcubeWebmailをインストールしたと思います。

最初のドメインのユーザーがmail.domain1.comを使用できるようにすることは理にかなっています 2番目のドメインのユーザーはmail.domain2.comを使用します RoundCubeウェブメールを使用する場合。 ApacheとNginxでそれを行う方法を紹介します。

Apache

RoundcubeがApacheWebサーバーによって提供されている場合は、2番目のドメインの仮想ホストを作成します。

sudo nano /etc/httpd/conf.d/mail.domain2.com.conf

次のテキストをファイルに入れます。

<VirtualHost *:80>
  ServerName mail.domain2.com
  DocumentRoot /var/www/roundcube/

  ErrorLog /var/log/httpd/mail.domain2.com_error.log
  CustomLog /var/log/httpd/mail.domain2.com_access.log combined

  <Directory />
    Options FollowSymLinks
    AllowOverride All
  </Directory>

  <Directory /var/www/roundcube/>
    Options FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    allow from all
  </Directory>

</VirtualHost>

ファイルを保存して閉じます。変更を有効にするためにApacheをリロードします。

sudo systemctl reload httpd

Nginx

RoundcubeがNginxWebサーバーによって提供されている場合は、2番目のドメインの仮想ホストを作成します。

sudo nano /etc/nginx/conf.d/mail.domain2.com.conf

次のテキストをファイルに入れます。

server {
  listen 80;
  server_name mail.domain2.com;
  root /var/www/roundcube/;
  index index.php index.html index.htm;

  error_log /var/log/nginx/roundcube.error;
  access_log /var/log/nginx/roundcube.access;

  location / {
    try_files $uri $uri/ /index.php;
  }

  location ~ \.php$ {
   try_files $uri =404;
    fastcgi_pass unix:/run/php-fpm/www.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
  }

  location ~ /.well-known/acme-challenge {
    allow all;
  }
 location ~ ^/(README|INSTALL|LICENSE|CHANGELOG|UPGRADING)$ {
    deny all;
  }
  location ~ ^/(bin|SQL)/ {
    deny all;
  }
 # A long browser cache lifetime can speed up repeat visits to your page
  location ~* \.(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|css|js|ico|xml)$ {
       access_log        off;
       log_not_found     off;
       expires           360d;
  }
}

ファイルを保存して閉じます。次に、Nginx構成をテストします。

sudo nginx -t

テストが成功した場合は、変更を有効にするためにNginxをリロードします。

sudo systemctl reload nginx

TLS証明書の取得

次に、Certbotを使用してすべてのメールドメインのTLS証明書を取得します。これにより、複数のドメイン名を含む単一のTLS証明書が作成され、メールクライアントがセキュリティ警告をスローすることはありません。

Apache

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp -d mail.domain1.com,mail.domain2.com --cert-name mail.domain1.com --email [email protected]

Nginx

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp -d mail.domain1.com,mail.domain2.com --cert-name mail.domain1.com --email [email protected]

上記のコマンドでは、ファイルパスで使用される最初のメールドメインを使用して証明書名を指定したため、PostfixまたはDovecot構成ファイルでファイルパスを変更する必要はありません。

既存の証明書を更新して新しいドメインを含めるかどうかを尋ねられたら、Uと答えます。 Enterキーを押します。

これで、マルチドメイン証明書が正常に取得されたことを示す次のメッセージが表示されます。

ApacheまたはNginxをリロードして、新しい証明書を取得します。

sudo systemctl reload httpd
sudo systemctl reload nginx

これで、さまざまなドメインを使用してRoundCubeWebメールにアクセスできるようになります。また、PostfixSMTPサーバーとDovecotIMAPサーバーをリロードして、新しい証明書を取得できるようにする必要があります。 PostfixとDovecotが複数のドメインにサービスを提供するために必要なのはこれだけです。

sudo systemctl reload postfix dovecot

コンピュータまたはモバイルデバイスでのメールクライアントの使用

Mozilla Thunderbirdなどのデスクトップメールクライアントを起動し、2番目のドメインのメールアカウントを追加します。

  • [受信サーバー]セクションで、[IMAPプロトコル]を選択し、mail.domain2.comと入力します。 サーバー名として、ポート143とSTARTTLSを選択します。 normal passwordを選択します 認証方法として。
  • 送信セクションで[SMTPプロトコル]を選択し、mail.domain2.comと入力します サーバー名として、ポート587とSTARTTLSを選択します。 normal passwordを選択します 認証方法として。

ヒント :IMAPの場合はSSL / TLS暗号化でポート993を使用し、SMTPの場合はSSL/TLS暗号化でポート465を使用することもできます。 しない 送信メールを送信するためのSMTPポートとしてポート25を使用します。

PostfixSMTPサーバーとDovecotIMAPサーバーは他の人と通信するときに最初のメールドメインのホスト名(mail.domain1.com)を使用していますが、現在はマルチドメイン証明書を使用しているため、メールクライアントは証明書の警告を表示しません。

SPFおよびDKIMチェック

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

https://www.mail-tester.comでメールのスコアをテストし、GlockAppsでメールの配置をテストすることを忘れないでください。

DKIMチェックが失敗した場合は、https://www.dmarcanalyzer.com/dkim/dkim-check/にアクセスして、DKIMレコードにエラーがあるかどうかを確認できます。

メールがまだスパムとしてマークされている場合はどうなりますか?

この記事には、さらに多くのヒントがあります。メールが迷惑メールとしてマークされるのを防ぐための7つの効果的なヒントです。時間と労力がかかりますが、これらのヒントを適用すると、最終的にメールは受信トレイに配置されます。

複数のメールドメインのrDNS?

逆引きDNS(rDNS)、別名PTRレコードは、送信者のIPアドレスがHELOホスト名と一致するかどうかを確認するために使用されます。新しいメールドメインを追加するときに、別のPTRレコードを追加する必要はありません。 rDNSは、1つのホスト名、つまりPostfixで設定されたホスト名に設定する必要があります。これは、次のコマンドで表示できます。

postconf myhostname

rDNSはIPアドレスのレコードです。ドメイン名の記録ではありません。 IPアドレスが1つしかない場合は、1つのホスト名を指すrDNSレコードが1つだけ必要です。 DNS逆引きチェックでは、From:が何であるかは確認されません ドメインがメールに含まれている場合、IPアドレスにrDNSレコードがあり、ホスト名が同じIPアドレスに解決できる限り、逆引きDNSチェックに合格できます。

また、1つのサーバーで複数のドメインをホストする場合は、Postfixで次の設定を変更する必要はありません。

  • myhostname
  • myorigin
  • mydestination

G Suiteなどのホスト型メールサービス およびMicrosoftExchange Online すべてのサーバーが1つのホスト名を使用して、顧客に電子メールを送信します。 G Suiteユーザーから送信されるメールはすべて、google.comを使用します ホスト名で、MicrosoftExchangeOnlineユーザーから送信される電子メールはすべてoutlook.comを使用します ホスト名で。これは、Mailchimp、SendinBlue、SendPluseなどの他のメールサービスプロバイダーにも当てはまります。これらはすべて、単一のサーバーに1つのホスト名を使用し、1つのIPアドレスには1つのrDNSレコードしかありません。


Cent OS
  1. ドメインエイリアスでメールをホストする方法

  2. 複数のドメインをホストする方法は?

  3. CentOSWebパネルでアドオンドメインを作成する

  1. CentOS7でPostfixAdminとMariaDBを使用してメールサーバーをセットアップする

  2. CentOS/RHEL で mutt をセットアップする方法

  3. LSB の起動に失敗しました:ネットワークの起動/停止 – ネットワーク サービス CentOS/RHEL (DHCP クライアント) の再起動時

  1. CentOS7でPostfixAdminを使用してメールサーバーを設定する方法

  2. Linuxサーバーでnginxを使用してサブドメインまたは複数のドメインをホストする方法

  3. 異なるフォレスト (CentOS/RHEL) で複数の Active Directory ドメインと連携するように sssd を構成する方法