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

iRedMailを使用してCentOS8でフル機能のメールサーバーを簡単にセットアップする方法

Linuxで独自の電子メールサーバーを最初からセットアップすることは、上級ユーザーでない場合は苦痛です。このチュートリアルでは、iRedMailを使用してCentOS 8でフル機能のメールサーバーをすばやくセットアップする方法を紹介し、時間と頭痛の種を大幅に節約します。

iRedMailとは何ですか?

iRedMailは、Linux / BSDサーバーに必要なすべてのメールサーバーコンポーネントを自動的にインストールして構成するシェルスクリプトであるため、手動でのインストールと構成が不要になります。 iRedMailを使用すると、無制限のメールボックスと無制限のメールドメインを簡単に作成できます。 Webベースの管理パネルで。メールボックスは、MariaDB / MySQL、PostgreSQLデータベース、またはOpenLDAPに保存できます。以下は、iRedMailによって自動的にインストールおよび構成されるオープンソースソフトウェアのリストです。

  • PostfixSMTPサーバー
  • DovecotIMAPサーバー
  • Nginx 管理パネルとウェブメールを提供するウェブサーバー
  • ユーザー情報を保存するためのOpenLDAP、MySQL / MariaDB、またはPostgreSQL
  • Amavised-DKIMの署名と検証の新機能
  • スパム対策用のSpamAssassin
  • アンチウイルス用のClamAV
  • RoundcubeWebメール
  • SSHを保護するためのFail2ban
  • mlmmjメーリングリストマネージャー
  • Netdataサーバーモニタリング
  • グレーリスト用のiRedAPDPostfixポリシーサーバー

ステップ1:適切なホスティングプロバイダーを選択し、ドメイン名を購入する

フル機能のメールサーバーをiRedMailでセットアップするには、少なくとも3 GBのRAMを搭載したサーバーが必要です。これは、インストール後、サーバーが2GBを超えるRAMを使用するためです。

クリーンインストールにiRedMailをインストールすることを強くお勧めします CentOS 8 サーバー。

このチュートリアルは、1つのCPUと3GBのRAMを備えた月額9ドルのKamatera VPS(仮想プライベートサーバー)で行われます。 30日間の無料トライアルを提供しています。

カマテラは、メールサーバーを実行するための非常に優れたオプションです。

  • ポート25をブロックしません 、SMTPリレーサービスにお金をかけずに無制限の電子メール(トランザクション電子メールとニュースレター)を送信できます。カマテラにはSMTPの制限はありません。 1日に100万通のメールを送信できます。
  • IPアドレスはメールブラックリストに含まれていません 。 (少なくとも私の場合はそうです。ダラスのデータセンターを選択しました。)恐ろしいMicrosoftOutlookIPブラックリストやspamratsブラックリストに掲載されたくないことは間違いありません。一部のブラックリストはIP範囲全体をブロックし、この種のブラックリストからIPアドレスを除外する方法はありません。
  • PTRレコードを編集して、メールの配信可能性を向上させることができます。
  • ニュースレターを送信できます いいえでメール購読者に 時間制限または日制限、何でも。
  • 1台のサーバーに複数のIPアドレスを注文できます。 これは、大量の電子メールを送信する必要がある人にとって非常に便利です。メールトラフィックを複数のIPアドレスに分散して、メールの配信可能性を高めることができます。

DigitalOceanのような他のVPSプロバイダーはポート25をブロックします。DigitalOceanはポート25のブロックを解除しないため、ブロックをバイパスするようにSMTPリレーを設定する必要があり、追加の費用がかかる可能性があります。 Vultr VPSを使用する場合、ポート25はデフォルトでブロックされます。サポートチケットを開くとブロックを解除できますが、メール送信アクティビティが許可されていないと判断した場合は、いつでもブロックを解除できます。 Vultrのサーバーを使用してニュースレターを送信すると、Vultrは実際に再ブロックする可能性があります。

Kamatera Webサイトにアクセスしてアカウントを作成し、アカウントダッシュボードでサーバーを作成します。

以下にリンクされているチュートリアルに従って、KamateraでLinuxVPSサーバーを適切にセットアップすることをお勧めします。

  • カマテラでLinuxVPSサーバーを作成する方法

サーバーを作成すると、KamateraからサーバーのSSHログインの詳細が記載されたメールが送信されます。サーバーにログインするには、SSHクライアントを使用します。コンピュータでLinuxまたはmacOSを使用している場合は、ターミナルウィンドウを開き、次のコマンドを実行してサーバーにログインします。 12.34.56.78をサーバーのIPアドレスに置き換えます。

ssh[メール保護]

パスワードの入力を求められます。

ドメイン名も必要です。 NameCheapからドメイン名を登録したのは、価格が安く、whoisのプライバシー保護が一生無料になるからです。

ステップ2:DNSMXレコードを作成する

MXレコードは、特定のドメイン名の電子メールを処理する1つまたは複数のホストを指定します。たとえば、linuxbabe.comのメールを処理するホスト mail.linuxbabe.comです 。 Gmailアカウントを持っている人が、[email protected]にメールを送信した場合 、Gmailサーバーはlinuxbabe.comのMXレコードを照会します。 mail.linuxbabe.comが見つかったとき は電子メールの受け入れを担当し、mail.linuxbabe.comのAレコードを照会します。 IPアドレスを取得するため、メールを配信できます。

DNSマネージャーで、ドメイン名のMXレコードを作成します。 @と入力します メインドメイン名を表す[名前]フィールドに、mail.your-domain.comと入力します。 [値]フィールドに入力します。

:MXレコードのホスト名を別の名前のエイリアスにすることはできません。また、MXレコードにはベアIPアドレスではなく、ホスト名を使用することを強くお勧めします。

DNSマネージャーは、優先値(別名優先値)の入力を要求する場合があります。 0から65,356までの任意の数にすることができます。小さい数は大きい数よりも優先されます。値を0に設定することをお勧めします。これにより、このメールサーバーがメールの受信の優先度が最も高くなります。 MXレコードを作成したら、mail.your-domain.comのAレコードも作成する必要があります。 、IPアドレスに解決できるようにします。サーバーでIPv6アドレスを使用している場合は、必ずAAAAレコードを追加してください。

ヒント:Cloudflare DNSサービスを使用する場合は、mail.your-domain.comのAレコードを作成するときにCDN機能を有効にしないでください。 。 CloudflareはSMTPプロキシをサポートしていません。

ステップ3:ホスト名の構成

SSH経由でサーバーにログインし、次のコマンドを実行して既存のソフトウェアパッケージを更新します。

 sudo dnf update -y 

sudoを作成することを強くお勧めします デフォルトのrootを使用するのではなく、サーバーを管理するためのユーザー ユーザー。次のコマンドを実行して、ユーザーを作成します。 usernameを置き換えます ご希望のユーザー名で。

 sudo adduser username 

このユーザーのパスワードを設定します。

sudopasswdユーザー名

このユーザーをwheelに追加します sudoを使用するためのグループ 。

 sudogpasswd-ユーザー名ホイール

新しいユーザーに切り替えます。

su-ユーザー名

次に、次のコマンドを使用して、サーバーの完全修飾ドメイン名(FQDN)を設定します。

 sudo hostnamectl set-hostname mail.your-domain.com 

/etc/hostsも更新する必要があります Nanoなどのコマンドラインテキストエディタを使用してファイルを作成します。

 sudo nano / etc / hosts 

以下のように編集してください。 (矢印キーを使用して、ファイル内のカーソルを移動します。)

 127.0.0.1 mail.your-domain.com localhost 

ファイルを保存して閉じます。 (Nanoテキストエディタでファイルを保存するには、Ctrl+Oを押します。 、次にEnterを押します 確認するために。ファイルを閉じるには、Ctrl+Xを押します 。)

変更を確認するには、再ログインして次のコマンドを実行し、ホスト名を確認してください。

 hostname -f 

ステップ4:iRedMailを使用してCentOS8でメールサーバーを設定する

次のコマンドを実行して、最新バージョンのiRedMailスクリプトインストーラーをGithubリポジトリからダウンロードします。

 sudo dnf install wget tar -ywget https://github.com/iredmail/iRedMail/archive/1.5.0.tar.gz 

アーカイブファイルを抽出します。

 tar xvf 1.5.0.tar.gz 

次に、新しく作成したディレクトリにcdします。

 cd iRedMail-1.5.0 / 

iRedMail.shに実行可能権限を追加します スクリプト。

 chmod + x iRedMail.sh 

次に、sudo権限でBashスクリプトを実行します。

 sudo bash iRedMail.sh 

メールサーバー設定ウィザードが表示されます。 Tabキーを使用して、はいを選択します Enterキーを押します。

次の画面では、メールストレージパスを選択するように求められます。デフォルトの/var/vmailを使用できます 、Enterキーを押すだけです。

次に、Webサーバーを実行するかどうかを選択します。電子メールアカウントを追加するにはWebベースの管理パネルが必要なため、Webサーバーの実行を選択することを強くお勧めします。また、RoundcubeWebメールにアクセスすることもできます。デフォルトでは、Nginx Webサーバーが選択されているため、Enterキーを押すだけです。 (アスタリスクは、アイテムが選択されていることを示します。)

次に、メールアカウントのストレージバックエンドを選択します。よく知っているものを選択してください。このチュートリアルでは、MariaDBを選択しました。上下の矢印キーを押し、スペースバーを押して選択します。

MariaDBまたはMySQLを選択した場合は、MySQLのルートパスワードを設定する必要があります。

次に、最初のメールドメインを入力します。後でWebベースの管理パネルでメールドメインを追加できます。このチュートリアルでは、[メール保護]のようなメールアカウントが必要であることを前提としています。 。その場合は、 your-domain.comと入力する必要があります ここでは、サブドメインなし。ドメイン名の後にスペースバーを押さないでください。 iRedMailはドメイン名と一緒にスペース文字をコピーするため、インストールに失敗する可能性があると思います。

次に、メールドメイン管理者のパスワードを設定します。

オプションのコンポーネントを選択します。デフォルトでは、4つのアイテムすべてが選択されています。したがって、Enterキーを押すだけです。

これで、構成を確認できます。 Yと入力します すべてのメールサーバーコンポーネントのインストールを開始します。

インストールプロセスでエラーが表示されないことを確認してください。エラーが発生した場合は、OSを再インストールしてから、サーバーにiRedMailを再インストールすることをお勧めします。そうしないと、メールサーバーが正しく機能しない可能性があります。

インストールの最後に、yを選択します iRedMailが提供するファイアウォールルールを使用してファイアウォールを再起動します。

これでiRedMailのインストールが完了しました。 WebメールのURL、Web管理パネル、およびログイン資格情報が通知されます。 iRedMail.tips ファイルには、iRedMailサーバーに関する重要な情報が含まれています。

CentOS8サーバーを再起動します。

 sudo shutdown -r now 

サーバーがオンラインに戻ったら、Web管理パネルにアクセスできます。

 https://mail.your-domain.com/iredadmin/ 

上記のURLでは、管理パネルにアクセスするためのサブディレクトリは/iredadmin/です。 、/iredmail/ではありません 。また、自己署名TLS証明書を使用しているため、Webブラウザにセキュリティ例外を追加する必要があります。

ステップ5:Let'sEncryptTLS証明書のインストール

メールサーバーは自己署名TLS証明書を使用しているため、デスクトップメールクライアントユーザーとウェブメールクライアントユーザーの両方に警告が表示されます。これを修正するために、無料のLet’sEncryptTLS証明書を取得してインストールできます。

証明書の取得

まず、SSH経由でサーバーに再度ログインし、次のコマンドを実行してLet’s Encrypt(certbot)クライアントをCentOS8にインストールします。

 sudo dnf install certbot python3-certbot-nginx -y 

iRedMailはデフォルトのNginx仮想ホストでTLS設定をすでに構成しているため、ここでは、nginxプラグインの代わりにwebrootプラグインを使用して証明書を取得することをお勧めします。次のコマンドを実行します。赤いテキストを自分のメールアドレスとホスト名に置き換えます。

 sudo certbot certonly --webroot --agree-tos --email [email protected] -d mail.your-domain.com -w / var / www / html / 

EFFからの通信を受信するかどうかを尋ねられたら、[いいえ]を選択できます。

すべてがうまくいけば、TLS証明書を正常に取得したことを示す次のテキストが表示されます。証明書とチェーンは/etc/letsencrypt/live/mail.your-domain.com/に保存されています ディレクトリ。

TLS証明書の取得の失敗

certbotがTLS証明書の取得に失敗した場合は、DNSレコードがインターネットに伝播されていないことが原因である可能性があります。使用するドメインレジストラによっては、DNSレコードが即座に伝播される場合と、伝播に最大24時間かかる場合があります。 https://dnsmap.ioにアクセスして、メールサーバーのホスト名を入力できます(mail.your-domain.com )DNS伝播を確認します。

Nginxへの証明書のインストール

TLS証明書を取得したら、それを使用するようにNginxWebサーバーを構成しましょう。 SSLテンプレートファイルを編集します。

 sudo nano /etc/nginx/templates/ssl.tmpl 

次の2行を見つけます。

 ssl_certificate /etc/pki/tls/certs/iRedMail.crt; ssl_certificate_key /etc/pki/tls/private/iRedMail.key; 

それらを次のように置き換えます:

 ssl_certificate /etc/letsencrypt/live/mail.your-domain.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/mail.your-domain.com/privkey.pem; 

ファイルを保存して閉じます。次に、nginxの構成をテストしてリロードします。

 sudo nginx -tsudo systemctl reload nginx 

もう一度iRedMail管理パネルにアクセスすると、Nginxが有効なTLS証明書を使用しているため、Webブラウザから警告が表示されなくなります。

PostfixとDovecotへのTLS証明書のインストール

また、デスクトップメールクライアントがセキュリティ警告を表示しないように、Let’sEncryptが発行した証明書を使用するようにPostfixSMTPサーバーとDovecotIMAPサーバーを構成する必要があります。 Postfixのメイン設定ファイルを編集します。

 sudo nano /etc/postfix/main.cf 

次の3行を見つけます。 (95、96、97行目)。

 smtpd_tls_key_file =/etc/pki/tls/private/iRedMail.keysmtpd_tls_cert_file =/etc/pki/tls/certs/iRedMail.crtsmtpd_tls_CAfile =/etc/pki/tls/certs/iRedMail.crt 

それらを次のように置き換えます:

 smtpd_tls_key_file =/etc/letsencrypt/live/mail.your-domain.com/privkey.pemsmtpd_tls_cert_file =/etc/letsencrypt/live/mail.your-domain.com/cert.pemsmtpd_tls_CAfile =/etc/letsencrypt/live/ mail.your-domain.com/chain.pem 

ファイルを保存して閉じます。次にPostfixをリロードします。

 sudo systemctl reload postfix 

次に、Dovecotのメイン構成ファイルを編集します。

 sudo nano /etc/dovecot/dovecot.conf 

次の2行を細かくします。 (47、48行目)

 ssl_cert = 

それらを次のように置き換えます:

 ssl_cert = 

ファイルを保存して閉じます。次に、鳩小屋をリロードします。

 sudo systemctl reload dovecot 

今後、デスクトップメールユーザーにはセキュリティ警告は表示されなくなります。

ステップ6:テストメールの送信

postmasterメールアカウント([メール保護])を使用してiredadminパネルにログインします。 Addで タブで、ドメインまたはメールアドレスを追加できます。

「管理下にあるドメインがありません」というエラーが表示された場合は、この記事を参照してください。

ユーザーを作成したら、Roundcube Webメールアドレスにアクセスして、新しいメールユーザーアカウントでログインできます。

 https://mail.your-domain.com/mail/ 

これで、電子メールの送受信をテストできます。 iRedMailはデフォルトでグレーリストを有効にしているため、電子メールを受信するまでに数分かかる場合があることに注意してください。これは、他の送信SMTPサーバーに数分後に再試行するように指示する方法です。メールログファイルの次の行/var/log/maillog グレーリストが有効になっていることを示します。

受信者のアドレスが拒否されました:意図的なポリシーの拒否。後でもう一度やり直してください。

ClamAVが実行されているかどうかの確認

ClamAVは、電子メールメッセージ内のウイルスをスキャンするために使用されます。 ClamAVはかなりの量のRAMを使用できます。サーバーに十分なRAMがない場合、ClamAVは正しく機能しないため、メールサーバーがメールを送信できなくなります。次のコマンドでステータスを確認できます:

 systemctl status [email protected] 

ClamAVが常に以下のようにアクティブ化されている場合は、問題があります。

ClamAVログを確認してください。

 sudo journalctl-eu[メール保護]

ログに次の行が表示されている場合は、サーバーにClamAVを実行するのに十分なRAMがないことを意味します。

 daemonize()が失敗しました:メモリを割り当てることができません

サーバーにスワップファイルを追加して、サーバーの合計RAMを増やすことができます。 (サーバーでスワップスペースを使用するとサーバーのパフォーマンスが低下することに注意してください。パフォーマンスを向上させたい場合は、スワップスペースを使用する代わりに物理RAMをアップグレードする必要があります。)

サーバーにスワップスペースを追加するには、まず、fallocateを使用します ファイルを作成するコマンド。たとえば、ルートファイルシステムに1Gの容量を持つswapfileという名前のファイルを作成します。

 sudo fallocate -l 1G / swapfile 

次に、rootのみが読み取りと書き込みを行えることを確認します。

 sudo chmod 600 / swapfile 

スワップするようにフォーマットします:

 sudo mkswap / swapfile 

出力:

スワップスペースバージョン1のセットアップ、サイズ=1024 MiB(1073737728バイト)ラベルなし、UUID =0aab5886-4dfb-40d4-920d-fb1115c67433 

スワップファイルを有効にする

 sudo swapon / swapfile 

数秒待ってください。ClamAVがアクティブ(実行中)になっているはずです。 、メールサーバーがメールを送信するのを妨げることはありません。

 systemctl status [email protected] 

システムの起動時にスワップスペースをマウントするには、/etc/fstabを編集します ファイル。

 sudo nano / etc / fstab 

このファイルの最後に次の行を追加します。

 / swapfile swap swap defaults 0 0 

ファイルを保存して閉じます。次に、systemdをリロードします。

sudosystemctlデーモン-リロード

ステップ7:ポート25(アウトバウンド)がブロックされているかどうかの確認

ISPまたはホスティングプロバイダーは、サーバーのポート25への着信接続をブロックしません。つまり、他のメールサーバーからメールを受信できます。ただし、多くのISP /ホスティングプロバイダーは、他のメールサーバーのポート25への送信接続をブロックしているため、メールを送信できません。

メールがGmailなどの他のメールアドレスに届かない場合は、telnetを使用できます。 ポート25(アウトバウンド)がブロックされているかどうかを確認するユーティリティ。次のコマンドを使用してCentOS8にtelnetをインストールします。

 sudo dnf install telnet 

次に、メールサーバーで次のコマンドを実行します。

 telnet gmail-smtp-in.l.google.com 25 

ポート25(アウトバウンド)がブロックされていない場合、接続が正常に確立されたことを示す次のようなメッセージが表示されます。 (ヒント:quitと入力します Enterキーを押して接続を閉じます。)

試行中74.125.68.26...gmail-smtp-in.l.google.comに接続。エスケープ文字は'^]'。220mx.google.comESMTP y22si1641751pll.208 --gsmtp 

ポート25(アウトバウンド)がブロックされている場合、次のように表示されます。

 2607:f8b0:400e:c06 ::1aを試行しています...74.125.195.27を試行しています...telnet:リモートホストに接続できません:接続がタイムアウトしました

この場合、Postfixは他のSMTPサーバーにメールを送信できません。 ISP/ホスティングプロバイダーに開いてもらいます。リクエストを拒否した場合は、ポート25のブロックをバイパスするようにSMTPリレーを設定する必要があります。

それでもメールを送信できませんか?

ポート25(アウトバウンド)がブロックされていないのに、自分のメールサーバーからGmailなどの他のメールアドレスにメールを送信できない場合は、メールログ(/var/log/mail.log

 sudo nano /var/log/mail.log 

たとえば、ファイルに次の行が表示される場合があります。

 host gmail-smtp-in.l.google.com [2404:6800:4003:c03 ::1b]発言:550-5.7.1 [2a0d:7c40:3000:b8b ::2]私たちシステムは、550-5.7.1このメッセージがPTR550-5.7.1レコードと認証に関するIPv6送信ガイドラインを満たしていないことを検出しました 。詳細については、550-5.7.1https://support.google.com/mail/?p=IPv6AuthErrorを確認してください

これは、メールサーバーがIPv6を使用してメールを送信しているが、IPv6レコードを設定していないことを意味します。 DNSマネージャーに移動し、AAAAを設定する必要があります mail.your-domain.comの記録 、次にPTRを設定する必要があります 手順9で説明するIPv6アドレスの記録。

グレイリストを無効にする方法

デフォルトでは、iRedMailはグレーリストを有効にしており、他の送信SMTPサーバーに数分後に再試行するように指示します。これは主にスパムをブロックするのに役立ちますが、ユーザーエクスペリエンスも低下させます。グレーリストを無効にする場合は、以下の手順に従ってください。

/opt/iredapd/settings.pyに書き込み権限を追加します ファイル。

 sudo chmod 600 /opt/iredapd/settings.py 

次に、構成ファイルを編集します。

 sudo nano /opt/iredapd/settings.py 

次の行を見つけます。

 plugins =["reject_null_sender"、 "wblist_rdns"、 "reject_sender_login_mismatch"、 "greylisting"、 "throttle"、 "amavisd_wblist"、 "sql_alias_access_policy"] 

"greylisting"を削除します リストから。ファイルを保存して閉じます。次に、iredapdを再起動します。

 sudo systemctl restart iredapd 

構成ファイルを読み取り専用モードに戻します。

 sudo chmod 400 /opt/iredapd/settings.py 

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

Mozilla Thunderbirdなどのデスクトップメールクライアントを起動し、メールアカウントを追加します。 Thunderbirdが以下のようなメールサーバー構成を見つけた場合は、完了をクリックするだけです。 ボタンを押すと、メールを読んだり送信したりできるようになります。

Thunderbirdがメールサーバーの構成を見つけられなかった場合は、手動構成をクリックします。 ボタンをクリックして、メールサーバーの詳細を入力します。

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

ヒント:SSL/TLS暗号化を使用してポート993でIMAPを使用することもできます。

Fail2banが自分のIPアドレスをブロックする

間違えてメールサーバーに何度もログインできなかった場合、メールサーバーのFail2banサービスがIPアドレスをブロックする可能性があります。 jail.localを編集して、IPアドレスをホワイトリストに追加できます ファイル。

 sudo nano /etc/fail2ban/jail.local 

以下のように、無視リストに独自のIPアドレスを追加します。 12.34.56.78を実際のIPアドレスに置き換えます。

 ignoreip =12.34.56.78 127.0.0.1 127.0.0.0/8 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16 

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

 sudo systemctl restart fail2ban 

ステップ9:メールの配信可能性の向上

メールに迷惑メールのフラグが付けられないようにするには、PTRを設定する必要があります 、SPFDKIM およびDMARC 記録。

PTRレコード

ポインタレコードまたはPTRレコードは、IPアドレスをFQDN(完全修飾ドメイン名)にマップします。これはAレコードに対応し、逆引きDNSに使用されます スパマーのブロックに役立つルックアップ。多くのSMTPサーバーは、送信サーバーのPTRレコードが見つからない場合、電子メールを拒否します。

PTRレコードでIPアドレスを確認するには、次のコマンドを実行します。

 dig -x IP-address + short 

または

ホストIPアドレス

PTRレコードは、ドメイン登録事業者によって管理されていません。 IPアドレスを提供する組織によって管理されます。ドメインレジストラからではなく、ホスティングプロバイダーまたはISPからIPアドレスを取得するため、ホスティングプロバイダーのコントロールパネルでIPのPTRレコードを設定するか、ISPに問い合わせる必要があります。その値は、メールサーバーのホスト名である必要があります:mail.your-domain.com 。サーバーでIPv6アドレスを使用している場合は、IPv6アドレスのPTRレコードも追加してください。

Kamatera VPSの逆引きDNSレコードを編集するには、Kamateraクライアントエリアにログインし、サポートチケットを開いて、サーバーIPアドレスのPTRレコードを追加してIPアドレスがmail.your-domain.com 。便利ではないと思うかもしれませんが、これはスパマーをプラットフォームから遠ざけるためであり、私たちのような正当なメール送信者はIPの評判が高くなります。

SPFレコード

SPF (Sender Policy Framework)レコードは、ドメインに代わって電子メールを送信できるホストまたはIPアドレスを指定します。自分のメールサーバーまたはISPのサーバーのみがドメインのメールを送信できるようにする必要があります。 DNS管理インターフェイスで、次のような新しいTXTレコードを作成します。

場所:

  • TXT これがTXTレコードであることを示します。
  • @と入力します [名前]フィールドにメインドメイン名を表します。
  • v =spf1 これがSPFレコードであり、バージョンがSPF1であることを示します。
  • mx MXレコードにリストされているすべてのホストがドメインにメールを送信することを許可され、他のすべてのホストは許可されないことを意味します。
  • 〜すべて ドメインからのメールは、SPFレコードで指定されたホストからのみ送信される必要があることを示します。他のホストからのメールには、偽造のフラグが付けられます。

SPFレコードがパブリックインターネットに伝播されているかどうかを確認するには、次のようにLinuxマシンでdigユーティリティを使用できます。

 dig your-domain.com txt 

txt オプションはdigに指示します TXTレコードのみをクエリしたいということです。

DKIMレコード

DKIM (DomainKeys Identified Mail)は、秘密鍵を使用して、ドメインから送信された電子メールにデジタル署名します。受信SMTPサーバーは、DNSDKIMレコードで公開されている公開鍵を使用して署名を検証します。

iRedMailスクリプトは、サーバー用にDKIMを自動的に構成しました。あとは、DNSマネージャーでDKIMレコードを作成するだけです。次のコマンドを実行して、DKIM公開鍵を表示します。

 sudo amavisd -c /etc/amavisd/amavisd.conf showkeys 

DKIM公開鍵は括弧内にあります。

次に、DNSマネージャーでTXTレコードを作成し、dkim._domainkeyと入力します。 名前フィールドに。括弧内のすべてをコピーして、値フィールドに貼り付けます。二重引用符と改行をすべて削除します。

変更を保存した後、次のコマンドを実行して、DKIMレコードが正しいかどうかをテストします。

 sudo amavisd-c/etc/amavisd/amavisd.confテストキー

DKIMレコードが正しければ、テストに合格します。

 TESTING#1 linuxbabe.com:dkim._domainkey.linuxbabe.com=>合格

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

DMARCレコード

DMARCは、ドメインベースのメッセージ認証、レポート、および準拠の略です。 DMARCは、電子メールサーバーを受信して​​正当な電子メールを識別し、ドメイン名が電子メールのなりすましによって使用されるのを防ぐのに役立ちます。

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

 v =DMARC1; p=なし; pct =100; rua =mailto:[メール保護] 

上記のDMARCレコードは安全な出発点です。 DMARCの完全な説明を読みたい場合は、次の記事を確認してください。これはオプションであることに注意してください。

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

ステップ10:メールのスコアと配置をテストする

PTR、SPF、DKIMレコードを作成したら、 https://www.mail-tester.comにアクセスします。 。一意のメールアドレスが表示されます。ドメインからこのアドレスにメールを送信してから、スコアを確認してください。ご覧のとおり、満点です。テスト結果では、PTRレコード、SPF、およびDKIMレコードが有効かどうかを確認する必要があります。

Mail-tester.comは送信者スコアのみを表示できます。 GlockAppsと呼ばれる別のサービスがあり、メールが受信者の受信トレイまたはスパムフォルダに届いたか、完全に拒否されたかを確認できます。 Gmail、Outlook、Hotmail、YahooMail、iCloudメールなどの多くの人気のあるメールプロバイダーをサポートしています。

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

この記事には、さらに多くのヒントがあります。メールがスパムとしてマークされるのを防ぐ方法。時間と労力はかかりますが、これらのヒントを適用すると、最終的にメールは受信トレイに配置されます。

電子メールがMicrosoftメールボックスによって拒否された場合はどうなりますか?

Microsoftは、多くの正当なIPアドレスをブロックする内部ブラックリストを使用しているようです。メールがOutlookまたはHotmailによって拒否された場合は、送信者情報フォームを送信する必要があります。その後、メールはOutlook/Hotmailに受け入れられます。

複数のメールドメインの追加

この記事は、iRedMailに複数のメールドメインを追加する方法を紹介するために作成しました。

SMTPSポート465の有効化

If you are going to use Microsoft Outlook client, then you need to enable SMTPS port 465 in Postfix SMTP server.

Troubleshooting

First, please use a VPS with at least 4GB RAM. Running iRedMail on a 1GB RAM VPS will cause the database, SpamAssassin, or ClamAV to be killed because of out-of-memory problem. If you really want to use a 1GB RAM VPS, you are going to lose incoming emails and have other undesirable outcomes.

If the iRedMail web interface isn’t accessible, like a 502 gateway error, you should check the Nginx logs in /var/log/nginx/ directory to find clues. You may also want to check the mail log /var/log/maillog

Check if the various services are running.

systemctl status postfixsystemctl status dovecotsystemctl status nginxsystemctl status mariadbsystemctl status [email protected]systemctl status amavisd

If you enabled the firewall, you should open the following ports in the firewall.

HTTP port:80HTTPS port:443SMTP port:25Submission port:587 (and 465 if you are going to use Microsoft Outlook mail client)IMAP port:143 and 993

If you would like to use the UFW firewall, check my guide here:Getting started with UFW firewall on Debian and Ubuntu.

How to Renew TLS Certificate

Let’s Encrypt issued TLS certificate is valid for 90 days only and it’s important that you set up a Cron job to automatically renew the certificate. You can run the following command to renew certificate.

sudo certbot renew -w /var/www/html

You can use the --dry-run option to test the renewal process, instead of doing a real renewal.

sudo certbot renew -w /var/www/html --dry-run

If you see the following error when renewing TLS certificate.

The client lacks sufficient authorization ::Invalid response

Then you need to create the hidden directory.

sudo mkdir -p /var/www/html/.well-known/acme-challenge

And set www-data as the owner of the webroot.

sudo chown www-data:www-data /var/www/html/ -R

Also, edit the SSL virtual host /etc/nginx/sites-enabled/00-default-ssl.conf 。 Add the following lines.

location ~ /.well-known/acme-challenge { root /var/www/html/; allow all;}

ファイルを保存して閉じます。 Test Nginx configuration and reload.

sudo nginx -tsudo systemctl reload nginx

Create Cron Job

If now the dry run is successful, you can create Cron job to automatically renew certificate. Simply open root user’s crontab file.

sudo crontab -e

Then add the following line at the bottom of the file.

@daily certbot renew -w /var/www/html --quiet &&systemctl reload postfix dovecot nginx

Reloading Postfix, Dovecot and Nginx is necessary to make these programs pick up the new certificate and private key.

For Advanced Users

You may want to customize the SpamAssassin content filter to better detect spam.

  • Block Email Spam By Checking Header and Body in Postfix/SpamAssassin

If your website and mail server are running on two different VPS (virtual private server), you can set up SMTP relay between your website and mail server, so that your website can send emails through your mail server. See the following article.

  • Set up SMTP relay between 2 Postfix SMTP servers on CentOS/RHEL

Cent OS
  1. CentOS 8でDHCPサーバーをセットアップする-その方法は?

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

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

  1. CentOS7でOpenVPNサーバーをセットアップする方法

  2. CentOS 7 / RHEL 7にiRedMail(メールサーバー)をインストールする方法

  3. CentOS サーバーでメールを送信する方法を教えてください。

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

  2. Debian10でModoboaを使用してメールサーバーを設定する方法

  3. iRedMailを使用してDebian9Stretchでメールサーバーを簡単にセットアップする方法