このチュートリアルでは、PostfixAdminを使用してCentOS / RHELサーバーに複数のメールドメイン(仮想ホスティング)を設定する方法を示します。PostfixAdminは、多くのドメインとユーザーのPostfixベースの電子メールサーバーを構成および管理するためのオープンソースのWebベースのインターフェイスです。
前提条件
このチュートリアルに従うには、次のことが必要です
- 1つのメールドメインでPostfixAdminを構成しました。
- パート4に従って、SPFとDKIMを設定しました。
- RoundcubeWebメールをインストールしました。
上記の要件が満たされたら、以下の手順に従ってください。
あなたがしなければならないこと
複数のメールドメインをホストする場合は、次のことを行う必要があります
- PostfixAdminWebベースのパネルで新しいメールドメインとユーザーを追加します。
- 新しいメールドメインのMX、A、SPFレコードを作成します。
- 新しいドメインのDKIM署名を設定します。
- 新しいドメインのDMARCレコードを作成します。
- 複数のドメイン用にRoundCubeWebメール、Postfix、Dovecotを設定する
ステップ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レコードしかありません。