Linux上で独自の電子メールサーバーを最初からセットアップすることは、長くて退屈なプロセスであり、上級ユーザーでない場合は苦痛です。このチュートリアルでは、iRedMailを使用してUbuntu 20.04でフル機能のメールサーバーをすばやくセットアップし、時間と頭痛の種を大幅に節約する方法を紹介します。
iRedMailとは何ですか?
iRedMailは、Linux / BSDサーバーに必要なすべてのメールサーバーコンポーネントを自動的にインストールして構成するシェルスクリプトであるため、手動でのインストールと構成が不要になります。 iRedMailを使用すると、無制限のメールボックスと無制限のメールドメインを簡単に作成できます。 Webベースの管理パネルで。メールボックスは、MariaDB / MySQL、PostgreSQLデータベース、またはOpenLDAPに保存できます。以下は、iRedMailによって自動的にインストールおよび構成されるオープンソースソフトウェアのリストです。
- PostfixSMTPサーバー
- DovecotIMAPサーバー
- Nginx 管理パネルとウェブメールを提供するウェブサーバー
- ユーザー情報を保存するためのOpenLDAP、MySQL / MariaDB、またはPostgreSQL
- Amavised-DKIMの署名と検証の新機能
- スパム対策用のSpamAssassin
- アンチウイルス用のClamAV
- RoundcubeWebメール
- SOGoグループウェア。ウェブメール、カレンダー(CalDAV)、連絡先(CardDAV)、タスク、ActiveSyncサービスを提供します。
- SSHを保護するためのFail2ban
- mlmmjメーリングリストマネージャー
- Netdataサーバーモニタリング
- グレーリスト用のiRedAPDPostfixポリシーサーバー
ステップ1:適切なホスティングプロバイダーを選択し、ドメイン名を購入する
フル機能のメールサーバーをiRedMailでセットアップするには、少なくとも3 GBのRAMを搭載したサーバーが必要です。これは、インストール後、サーバーが2GBを超えるRAMを使用するためです。
クリーンインストールにiRedMailをインストールすることを強くお勧めします Ubuntu 20.04 サーバー。
このチュートリアルは、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レコードを作成するには、DNSホスティングサービス(通常はドメインレジストラ)にアクセスする必要があります。 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 apt updatedsudo apt upgrade -y
アップグレードプロセス中に、次の質問が表示される場合があります。 SSHにポート6543を引き続き使用する場合は、[keep the local version currently installed
]を選択します。 。 SSHにポート22を使用する場合は、install the package maintainer's version
を選択します。 。
sudo
を作成することを強くお勧めします デフォルトのroot
を使用するのではなく、サーバーを管理するためのユーザー ユーザー。次のコマンドを実行して、ユーザーを作成します。 username
を置き換えます ご希望のユーザー名で。
adduser username
次に、ユーザーをsudo
に追加します グループ。
adduser username sudo
新しいユーザーに切り替えます。
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を使用してUbuntu20.04でメールサーバーを設定する
次のコマンドを実行して、最新バージョンのiRedMailスクリプトインストーラーをGithubリポジトリからダウンロードします。
wget 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つのアイテムが選択されています。 SOGoグループウェア(Webメール、カレンダー、アドレスブック、ActiveSync)を使用する場合は、下矢印キーとスペースバーを押して選択します。 Enter
を押します 次の画面に移動します。
これで、構成を確認できます。 Y
と入力します すべてのメールサーバーコンポーネントのインストールを開始します。
インストールの最後に、y
を選択します iRedMailが提供するファイアウォールルールを使用してファイアウォールを再起動します。
これでiRedMailのインストールが完了しました。 WebメールのURL、Web管理パネル、およびログイン資格情報が通知されます。 iRedMail.tips
ファイルには、iRedMailサーバーに関する重要な情報が含まれています。
Ubuntu20.04サーバーを再起動します。
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)クライアントをUbuntu20.04にインストールします。
sudo apt install certbot
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伝播を確認します。
certbotが証明書の取得に失敗し、次のメッセージが表示された場合
承認手続きに失敗しました。 mail.linuxbabe.com(http-01):urn:ietf:params:acme:error:connection ::サーバーは、ドメインを確認するためにクライアントに接続できませんでした::https://mail.linuxbabe.com/を取得しています。 well-known / acme-challenge / IZ7hMmRE4ZlGW7cXYoq2Lc_VrFzVFyfW6E0pzNlhiOA:接続中のタイムアウト(ファイアウォールの問題の可能性があります)
mail.your-domain.com
にAAAAレコードを設定した可能性があります 、ただし、NginxWebサーバーはIPv6アドレスをリッスンしません。このエラーを修正するには、/etc/nginx/sites-enabled/00-default.conf
を編集します ファイル
sudo nano /etc/nginx/sites-enabled/00-default.conf
次の行を見つけます。
#listen [::]:80;
#
を削除します このNginx仮想ホストでIPv6を有効にする文字。
聞く[::]:80;
ファイルを保存して閉じます。次に、SSL仮想ホストの/etc/nginx/sites-enabled/00-default-ssl.conf
を編集します 。
sudo nano /etc/nginx/sites-enabled/00-default-ssl.conf
次の行を追加します。
listen [::]:443 ssl http2;
ファイルを保存して閉じます。次に、Nginx構成をテストします。
sudo nginx -t
テストが成功した場合は、変更を有効にするためにNginxをリロードします。
sudo systemctl reload nginx
次のコマンドを再度実行して、TLS証明書を取得します。赤いテキストを実際のデータに置き換えます。
sudo certbot certonly --webroot --agree-tos --email [email protected] -d mail.your-domain.com -w / var / www / html /
これで、TLS証明書を正常に取得できるようになります。
Nginxへの証明書のインストール
TLS証明書を取得したら、それを使用するようにNginxWebサーバーを構成しましょう。 SSLテンプレートファイルを編集します。
sudo nano /etc/nginx/templates/ssl.tmpl
次の2行を見つけます。
ssl_certificate /etc/ssl/certs/iRedMail.crt;ssl_certificate_key /etc/ssl/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/ssl/private/iRedMail.keysmtpd_tls_cert_file =/etc/ssl/certs/iRedMail.crtsmtpd_tls_CAfile =/etc/ssl/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/mail.log
の次の行 グレーリストが有効になっていることを示します。受信者のアドレスが拒否されました:意図的なポリシーの拒否。後でもう一度やり直してください。スワップスペースの追加
ClamAVは、電子メールメッセージ内のウイルスをスキャンするために使用されます。 ClamAVはかなりの量のRAMを使用できます。サーバーに十分なRAMがない場合、ClamAVは正しく機能しないため、メールサーバーがメールを送信できなくなります。サーバーにスワップファイルを追加して、サーバーの合計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システムの起動時にスワップスペースをマウントするには、
/etc/fstab
を編集します ファイル。sudo nano / etc / fstabこのファイルの最後に次の行を追加します。
/ swapfile swap swap defaults 0 0ファイルを保存して閉じます。次に、systemdをリロードし、ClamAVを再起動します。
sudosystemctlデーモン-reloadsudosystemctlrestart clamav-daemonステップ7:ポート25(アウトバウンド)がブロックされているかどうかの確認
ISPまたはホスティングプロバイダーは、サーバーのポート25への着信接続をブロックしません。つまり、他のメールサーバーからメールを受信できます。ただし、多くのISP /ホスティングプロバイダーは、他のメールサーバーのポート25への送信接続をブロックしているため、メールを送信できません。
メールがGmailなどの他のメールアドレスに届かない場合は、メールサーバーで次のコマンドを実行して、ポート25(送信)がブロックされているかどうかを確認します。
telnet gmail-smtp-in.l.google.com 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アドレスの記録。ステップ8:コンピューターまたはモバイルデバイスでのメールクライアントの使用
Mozilla Thunderbirdなどのデスクトップメールクライアントを起動し、メールアカウントを追加します。
- [受信サーバー]セクションで、[IMAPプロトコル]を選択し、
mail.your-domain.com
と入力します。 サーバー名として、ポート143とSTARTTLSを選択します。normal password
を選択します 認証方法として。 - 送信セクションで[SMTPプロトコル]を選択し、
mail.your-domain.com
と入力します サーバー名として、ポート587とSTARTTLSを選択します。normal password
を選択します 認証方法として。
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
を設定する必要があります 、SPF
、DKIM
および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公開鍵を表示します。
sudoamavisd-新しいショーキー
DKIM公開鍵は括弧内にあります。
次に、DNSマネージャーでTXTレコードを作成し、dkim._domainkey
と入力します。 名前フィールドに。括弧内のすべてをコピーして、値フィールドに貼り付けます。二重引用符と改行をすべて削除します。
変更を保存した後、次のコマンドを実行して、DKIMレコードが正しいかどうかをテストします。
sudoamavisd-新しいテストキー
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に複数のメールドメインを追加する方法を紹介するために作成しました。
グレイリストを無効にする方法
デフォルトでは、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
SMTPSポート465の有効化
Microsoft Outlookクライアントを使用する場合は、PostfixSMTPサーバーでSMTPSポート465を有効にする必要があります。
トラブルシューティング
まず、4GB以上のRAMを搭載したVPSを使用してください。 1GBのRAMVPSでiRedMailを実行すると、メモリ不足の問題が原因でデータベース、SpamAssassin、またはClamAVが強制終了されます。本当に1GBのRAMVPSを使用したい場合は、受信メールが失われ、その他の望ましくない結果が生じることになります。
502ゲートウェイエラーなど、iRedMail Webインターフェイスにアクセスできない場合は、/var/log/nginx/
のNginxログを確認する必要があります。 手がかりを見つけるためのディレクトリ。メールログ/var/log/mail.log
を確認することもできます 。
さまざまなサービスが実行されているかどうかを確認します。
systemctl status postfixsystemctl status dovecotsystemctl status nginxsystemctl status mariadbsystemctl status clamav-daemonsystemctl status amavis
ファイアウォールを有効にした場合は、ファイアウォールで次のポートを開く必要があります。
HTTPポート:80HTTPSポート:443SMTPポート:25送信ポート:587(Microsoft Outlookメールクライアントを使用する場合は465)IMAPポート:143および993
UFWファイアウォールを使用したい場合は、こちらのガイドを確認してください:DebianとUbuntuでUFWファイアウォールを使い始める
TLS証明書を更新する方法
Let's Encryptが発行したTLS証明書は90日間のみ有効であり、証明書を自動的に更新するようにCronジョブを設定することが重要です。次のコマンドを実行して、証明書を更新できます。
sudo certbot renew -w / var / www / html /
--dry-run
を使用できます 実際の更新を行う代わりに、更新プロセスをテストするオプション。
sudo certbot renew -w / var / www / html / --dry-run
TLS証明書の更新時に次のエラーが表示された場合。
クライアントに十分な認証がありません::無効な応答
次に、隠しディレクトリを作成する必要があります。
sudo mkdir -p /var/www/html/.well-known/acme-challenge
そして、www-data
を設定します ウェブルートの所有者として。
sudo chown www-data:www-data / var / www / html / -R
また、SSL仮想ホストの/etc/nginx/sites-enabled/00-default-ssl.conf
を編集します 。次の行を追加します。
location〜 /.well-known/acme-challenge {root / var / www / html /;すべて許可;}
ファイルを保存して閉じます。 Nginxの構成をテストしてリロードします。
sudo nginx -tsudo systemctl reload nginx
cronジョブの作成
ドライランが成功した場合は、Cronジョブを作成して証明書を自動的に更新できます。 rootユーザーのcrontabファイルを開くだけです。
sudo crontab -e
次に、ファイルの最後に次の行を追加します。
@daily certbot renew -w / var / www / html / --quiet &&systemctl reload postfix dovecot nginx
これらのプログラムに新しい証明書と秘密鍵を取得させるには、Postfix、Dovecot、Nginxをリロードする必要があります。
バックアップメールサーバーの設定
プライマリメールサーバーがダウンしている場合があります。メールサーバーをデータセンターでホストしている場合、ダウンタイムはごくわずかであるため、受信メールが失われることを心配する必要はありません。メールサーバーを自宅でホストしている場合、ダウンタイムを予測できないため、受信メールが失われないように、データセンターでバックアップメールサーバーを実行することをお勧めします。バックアップメールサーバーを実行するには、512MBのRAMが必要です。次の記事で詳細を確認してください。
- UbuntuでPostfixを使用してバックアップメールサーバーを設定する方法(完全ガイド)
上級ユーザー向け
iRedMailにはDMARC検証サービスが含まれていません。次のチュートリアルを確認して、電子メールのなりすましをブロックするようにOpenDMARCを設定できます。
- メールのなりすまし/スパムをブロックするためにUbuntuでPostfixを使用してOpenDMARCを設定する
スパムをより適切に検出するために、SpamAssassinコンテンツフィルターをカスタマイズすることをお勧めします。
- Postfix/SpamAssassinのヘッダーと本文をチェックしてメールスパムをブロックする
Webサイトとメールサーバーが2つの異なるVPS(仮想プライベートサーバー)で実行されている場合は、Webサイトとメールサーバーの間にSMTPリレーを設定して、Webサイトがメールサーバーを介して電子メールを送信できるようにすることができます。次の記事を参照してください。
- Ubuntu上の2つのPostfixSMTPサーバー間にSMTPリレーを設定する方法