このチュートリアルでは、CentOS/RHELのPostfixSMTPサーバーで電子メールスパムをブロックするための7つのヒントを紹介します。自分の電子メールサーバーを実行していた過去4年間で、私は大量のスパム、別名迷惑な商用電子メールを受け取りました。インターネット上で大量のメールを送信するのは非常に安価であるため、スパムが存在します。 Postfixを使用すると、スパムがメールボックスに入る前にブロックできるため、帯域幅とディスク容量を節約できます。
注 :独自のメールサーバーを実行する場合は、iRedmailを使用することをお勧めします。これにより、メールサーバーの設定プロセスが大幅に簡素化されます。また、スパム対策ルールが付属しています。メールサーバーを最初から設定したい場合は、私のメールサーバーチュートリアルシリーズをご覧ください。
スパムの特徴
以下は私が電子メールスパムについて見つけたものです。これらのスパムは簡単にブロックできます。
- それらのIPアドレスにはPTRレコードがありません。
- スパマーがHELO/EHLO句で有効なホスト名を提供していません。
- 彼らはMAILFROMアドレスを偽装します。
- 通常、メールの配信に失敗した後、メールを再送信することはありません。
正規の電子メールサーバーにこれらの特性を持たせることはできません。そこで、スパムの90%をブロックする7つのヒントを紹介します。
事実:世界中のメールの約93%〜95%がSMTPゲートウェイで拒否され、受信トレイやスパムフォルダに届くことはありません。
ヒント#1:SMTPクライアントにPTRレコードがない場合はメールを拒否する
PTRレコードは、IPアドレスをドメイン名にマップします。 Aレコードに相当します。 CentOS / RHELでは、次のコマンドを実行して、IPアドレスに関連付けられたドメイン名を照会できます。
host <IP address>
host
の場合 コマンドが見つからない場合は、bind-utils
をインストールする必要があります パッケージ。
sudo dnf install bind-utils
たとえば、次のコマンドはメールサーバーのホスト名を返します。
host 23.254.225.226
出力:
226.225.254.23.in-addr.arpa domain name pointer mail.linuxbabe.com.
スパムが蔓延しているため、多くのメールサーバー(Gmail、gmx.com、gmx.net、facebook.comなど)では、SMTPクライアントにIPアドレスに関連付けられた有効なPTRレコードが必要です。すべてのメールサーバー管理者は、SMTPサーバーのPTRレコードを設定する必要があります。 SMTPクライアントにPTRレコードがある場合は、Postfixログ(/var/log/maillog)
に行があります。 以下のように。
connect from mail.linuxbabe.com[23.254.225.226]
SMTPクライアントにPTRレコードがない場合、ホスト名はunknown
として識別されます Postfixログにあります。
connect from unknown[120.41.196.220]
PTRレコードのないメールを除外するには、Postfixメイン設定ファイルを開きます。
sudo nano /etc/postfix/main.cf
smtpd_sender_restrictions
に次の行を追加します 。クライアントのIPアドレスにPTRレコードがない場合、このディレクティブは電子メールを拒否します。
reject_unknown_reverse_client_hostname
例:
smtpd_sender_restrictions = permit_mynetworks permit_sasl_authenticated reject_unknown_reverse_client_hostname
ファイルを保存して閉じます。次に、変更を有効にするためにPostfixを再起動します。
sudo systemctl restart postfix
ヒント#2:PostfixでHELO/EHLOホスト名の制限を有効にする
一部のスパマーは、SMTPダイアログで有効なHELO/EHLOホスト名を提供しません。完全修飾されていないドメイン名であるか、ドメイン名が存在しないか、内部ネットワーク専用である可能性があります。たとえば、Amazon EC2インスタンスを使用してスパムを送信するスパマーは、次のようにサーバーに記録されます。
Aug 16 04:21:13 email postfix/smtpd[7070]: connect from ec2-54-237-201-103.compute-1.amazonaws.com[54.237.201.103] Aug 16 04:21:13 email policyd-spf[7074]: prepend Received-SPF: None (mailfrom) identity=mailfrom; client-ip=54.237.201.103; helo=ip-172-30-0-149.ec2.internal; [email protected]; receiver=<UNKNOWN>
ご覧のとおり、HELOのホスト名はip-172-30-0-149.ec2.internal
です。 、これはAWS内部ネットワークでのみ有効です。有効なAレコードもMXレコードもありません。
HELO / EHLOホスト名制限を有効にするには、Postfixメイン設定ファイルを編集します。
sudo nano /etc/postfix/main.cf
まず、次の行を追加して、クライアントにHELO/EHLOホスト名の提供を要求します。
smtpd_helo_required = yes
次に、次の3行を追加して、smtpd_helo_restrictions
を有効にします。 。
smtpd_helo_restrictions = permit_mynetworks permit_sasl_authenticated
次の行を使用して、不正な形式のHELO/EHLOホスト名を提供するクライアントを拒否します。
reject_invalid_helo_hostname
次の行を使用して、完全に修飾されていないHELO/EHLOホスト名を拒否します。
reject_non_fqdn_helo_hostname
HELO /EHLOホスト名にDNSAレコードもMXレコードもない場合に電子メールを拒否するには、
を使用します。reject_unknown_helo_hostname
このように:
smtpd_helo_required = yes smtpd_helo_restrictions = permit_mynetworks permit_sasl_authenticated reject_invalid_helo_hostname reject_non_fqdn_helo_hostname reject_unknown_helo_hostname
ファイルを保存して閉じます。次にPostfixをリロードします。
sudo systemctl reload postfix
ほとんどの正規のメールサーバーにはHELO/EHLOホスト名の有効なAレコードがありますが、正規のメールサーバーがこの要件を満たさない場合があることに注意してください。 check_helo_access
を使用してホワイトリストに登録する必要があります 。
smtpd_helo_required = yes smtpd_helo_restrictions = permit_mynetworks permit_sasl_authenticated check_helo_access hash:/etc/postfix/helo_access reject_invalid_helo_hostname reject_non_fqdn_helo_hostname reject_unknown_helo_hostname
次に、/etc/postfix/helo_access
を作成する必要があります ファイル。
sudo nano /etc/postfix/helo_access
正規のメールサーバーのHELO/EHLOホスト名を以下のようにホワイトリストに登録します。
optimus-webapi-prod-2.localdomain OK va-massmail-02.rakutenmarketing.com OK
ホワイトリストに登録するホスト名がわからない可能性があります。次に、上記の2行をコピーします。これは、私のhelo_access
の唯一の行です。 ファイル。後でいつでもホスト名を追加できます。ファイルを保存して閉じます。次に、次のコマンドを実行して/etc/postfix/helo_access.dbファイルを作成します。
sudo postmap /etc/postfix/helo_access
そしてPostfixをリロードします。
sudo systemctl reload postfix
ヒント#3:SMTPクライアントのホスト名に有効なAレコードがない場合はメールを拒否する
正規の電子メールサーバーにも、そのホスト名の有効なAレコードが必要です。 Aレコードから返されるIPアドレスは、電子メールサーバーのIPアドレスと一致する必要があります。有効なAレコードがないホストからのメールを除外するには、Postfixメイン設定ファイルを編集します。
sudo nano /etc/postfix/main.cf
smtpd_sender_restrictions
に次の2行を追加します 。
reject_unknown_reverse_client_hostname reject_unknown_client_hostname
例:
smtpd_sender_restrictions = permit_mynetworks permit_sasl_authenticated reject_unknown_reverse_client_hostname reject_unknown_client_hostname
ファイルを保存して閉じます。次に、変更を有効にするためにPostfixを再起動します。
sudo systemctl restart postfix
reject_unknown_client_hostname
に注意してください SMTPクライアントからのHELOは必要ありません。 PTRレコードからホスト名をフェッチしてから、Aレコードをチェックします。 ヒント#4:MAIL FROMドメインにMXレコードもレコードもない場合、メールを拒否する
MAIL FROM
アドレスはenvelope from
とも呼ばれます 住所。一部のスパマーは、MAIL FROM
に存在しないドメインを使用します 住所。ドメイン名にMXレコードがない場合、PostfixはメインドメインのAレコードを見つけて、そのホストにメールを送信します。送信者ドメインにMXレコードもAレコードもない場合、Postfixはそのドメインにメールを送信できません。では、返信できないメールを拒否してみませんか?
この種のスパムを除外するには、Postfixメイン設定ファイルを編集します。
sudo nano /etc/postfix/main.cf
smtpd_sender_restrictions
に次の行を追加します 。 MAIL FROMコマンドで指定されたアドレスのドメイン名にMXレコードもAレコードもない場合、メールは拒否されます。
reject_unknown_sender_domain
例:
smtpd_sender_restrictions = permit_mynetworks permit_sasl_authenticated reject_unknown_sender_domain reject_unknown_reverse_client_hostname reject_unknown_client_hostname
ファイルを保存して閉じます。次に、変更を有効にするためにPostfixを再起動します。
sudo systemctl restart postfix
この制限を他のreject
の上に置いたことに注意してください 制限。私の経験から、それが他のreject
を下回っている場合 制限がありますが、機能しません。 (たぶん、これは私のメールサーバーでのみ発生します。)
ヒント#5:Postfixでグレイリストを有効にする
SMTPプロトコルで要求されているように、正当なSMTPクライアントは、配信が失敗した場合に電子メールを再送信できる必要があります。 (デフォルトでは、Postfixは、メッセージを配信できなかったことを送信者に通知する前に、失敗した電子メールを4〜5日間再送信するように構成されています。)多くのスパマーは通常、1回だけ送信し、再試行しません。
Postgrey
Postfixのグレーリストポリシーサーバーです。 CentOS / RHELユーザーは、EPELリポジトリからインストールできます。
sudo dnf install epel-release sudo dnf install postgrey
インストールしたら、systemctlで起動します。
sudo systemctl start postgrey
起動時に自動起動を有効にします。
sudo systemctl enable postgrey
CentOS / RHELでは、PostgreyはUnixソケット(/var/spool/postfix/postgrey/socket
)でリッスンします 。
次に、Postfixメイン設定ファイルを編集してグレーリストポリシーサーバーを使用するようにする必要があります。
sudo nano /etc/postfix/main.cf
smtpd_recipient_restrictions
に次の行を追加します 。
check_policy_service unix:postgrey/socket
わからない場合は、ディレクティブcheck_policy_service unix:private/policyd-spf
上のスクリーンショットでは、Postfixが送信者のドメインのSPFレコードをチェックします。このディレクティブでは、pypolicyd-spfパッケージをインストールして構成する必要があります。
ファイルを保存して閉じます。次に、Postfixを再起動します。
sudo systemctl restart postfix
今後、送信者トリプレットの場合、Postgreyはメールを拒否します (送信者IPアドレス、送信者メールアドレス、受信者メールアドレス)は新しいです。 /var/log/maillog
にある次のログメッセージ 新しい送信者トリプレットを示しています。アクション「greylist
」は、このメールメッセージが拒否されたことを意味します。
postgrey[1016]: action=greylist, reason=new, client_name=unknown, client_address=117.90.24.148/32, [email protected], [email protected]
私の経験から、中国の電子メールスパマーはすべての電子メールに偽の奇妙な外観のランダムに生成された送信者アドレスを使用することを好むため、これらの偽の電子メールアドレスをブラックリストに追加しても阻止されません。一方、同じ送信者アドレスで拒否された電子メールを再送信しようとすることはありません。つまり、グレーリストはこの種のスパムを阻止するのに非常に効果的です。
ユーザーエクスペリエンスの低下を最小限に抑える方法
グレイリストは、ユーザーが電子メールが到着するまでさらに数分待たなければならないため、エンドユーザーに悪い体験をもたらす可能性があります。この悪い経験を最小限に抑えるために、ホワイトリストを作成し、同じホストを指す2番目のMXレコードを使用できます。
ホワイトリスト
Postgreyには、2つのホワイトリストファイル(/etc/postfix/postgrey_whitelist_clients
)が付属しています。 および/etc/postfix/postgrey_whitelist_recipients
)。前者にはホスト名のリストが含まれ、後者には受信者アドレスのリストが含まれます。
デフォルトでは、Googleのメールサーバーはホワイトリストに登録されています。送信者が@gmail.comアドレスまたは他のアドレスを使用している場合でも、送信者がGoogleのメールサーバーを使用している限り、Postgreyはメールを拒否しません。 /var/log/maillog
の次の行 ファイルはこれを示しています。
postgrey[1032]: action=pass, reason=client whitelist, client_name=mail-yb0-f190.google.com
注 :このコマンドsudo journalctl -u postgrey
を使用してpostgreyログを表示することもできます 。
/etc/postfix/postgrey_whitelist_clients
に他のホスト名を追加できます のようなファイル
facebook.com bounce.twitter.com blogger.com email.medium.com
これらのホスト名は、pflogsumm
というツールを使用して取得できます。 、これについてはこの記事の後半で説明します。ファイルを保存して閉じてから、Postgreyを再起動します。
sudo systemctl restart postgrey
同じIPアドレスで別のMXホスト名を作成する
以下のように、ドメイン名に複数のMXレコードを指定できます。
Record Type Name Mail Server Priority MX @ mail.yourdomain.com 0 MX @ mail2.yourdomain.com 5
送信者は最初のメールサーバー(優先度0)を試します。 mail.yourdomain.comがグレーリストでメールを拒否した場合、送信者はすぐに2番目のメールサーバー(優先度5)を試します。
2つのメールサーバーのホスト名が同じIPアドレスを持っている場合、送信者が2番目のメールサーバーのホスト名を試行すると、電子メールはすぐに受け入れられ(他のすべてのチェックに合格した場合)、エンドユーザーはグレーリストに起因する電子メールの遅延に気づきません。
これには、/etc/sysconfig/postgrey
で1秒のような非常に短い遅延時間を設定する必要があることに注意してください。 以下のようなファイル。遅延時間は、SMTPクライアントに再送信するまでに待機する秒数を示します。遅延時間が十分に短くない場合でも、2回目の電子メール配信は拒否されます。
POSTGREY_DELAY="--delay=1"
ファイルを保存して閉じます。次に、Postgreyを再起動します。
sudo systemctl restart postgrey
すべてのメールサーバーがすぐに2番目のMXホストを試すわけではないことに注意してください。
ヒント#6:パブリックリアルタイムブラックリストの使用
有効なホスト名と有効なPTRレコードを持ち、グレーリストを通過できるサーバーから送信されるスパムメールがあります。この場合、ブラックリストを使用してスパムを拒否できます。 DNSBL(DNSベースのリスト)としても知られる、多くのパブリックリアルタイムブラックリスト(RBL)があります。リアルタイムとは、リストが常に変化していることを意味します。 IPアドレスまたはドメイン名は、今日はリストに含まれ、明日はリストから外される可能性があるため、リストをクエリするタイミングに応じて異なる結果が得られる可能性があります。
複数のブラックリストを使用してスパムをブロックできます。 https://www.debouncer.comとmxtoolbox.comにアクセスし、スパマーのドメインとIPアドレスを入力して、どのブラックリストがそれらをブロックしているかを確認すると、それらのブラックリストを使用できます。たとえば、スパマーは次のブラックリストのいずれかによってブラックリストに登録されていることがわかりました。
- dbl.spamhaus.org
- zen.spamhaus.org
- multi.uribl.com
- ivmURI
- InvaluementURI
したがって、/etc/postfix/main.cf
に次の構成を追加できます ファイル。一部のパブリックブラックリストサービスには月額料金が必要です。今のところ、spamhaus.orgの無料サービスを使用しています。
smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated check_policy_service unix:private/policyd-spf check_policy_service unix:postgrey/socket reject_rhsbl_helo dbl.spamhaus.org reject_rhsbl_reverse_client dbl.spamhaus.org reject_rhsbl_sender dbl.spamhaus.org reject_rbl_client zen.spamhaus.org
場所:
-
rhs
右側、つまりドメイン名を表します。 -
reject_rhsbl_helo
クライアントのHELOまたはEHLOホスト名がブラックリストに登録されている場合、Postfixは電子メールを拒否します。 -
reject_rhsbl_reverse_client
:未確認のリバースクライアントホスト名がブラックリストに登録されている場合、電子メールを拒否します。 Postfixは、PTRレコードからクライアントのホスト名をフェッチします。ホスト名がブラックリストに登録されている場合は、メールを拒否します。 -
reject_rhsbl_sender
MAIL FROMドメインがブラックリストに登録されている場合、Postfixはメールを拒否します。 -
reject_rbl_client
:これはIPベースのブラックリストです。クライアントのIPアドレスがブラックリストに登録されている場合は、メールを拒否します。
一部のスパマーはGoogleのメールサーバーを使用しているため、reject_rhsbl_helo
効果はありませんが、ほとんどの場合、MAIL FROMヘッダーで独自のドメイン名を使用するため、reject_rhsbl_sender
効果的です。
ホワイトリストを作成する
正当な電子メールサーバーがブラックリストに登録されている場合があります。ホワイトリストを作成して、ブロックされないようにすることができます。次のファイルを作成します。
sudo nano /etc/postfix/rbl_override
このファイルでは、以下のようなドメイン名をホワイトリストに登録します。
dripemail2.com OK //This domain belongs to drip.com mlsend.com OK //This domain belongs to mailerlite email marketing service
ファイルを保存して閉じます。次に、次のコマンドを実行してrbl_override.db
を作成します ファイル。
sudo postmap /etc/postfix/rbl_override
Postfixのメイン設定ファイルを編集します。
sudo nano /etc/postfix/main.cf
smtpd_recipient_restrictions
内 、次の行を追加します。
check_client_access hash:/etc/postfix/rbl_override
以下のように。他のRBLチェックの上に配置する必要があります。
smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated check_policy_service unix:private/policyd-spf check_policy_service unix:postgrey/socket check_client_access hash:/etc/postfix/rbl_override reject_rhsbl_helo dbl.spamhaus.org reject_rhsbl_reverse_client dbl.spamhaus.org reject_rhsbl_sender dbl.spamhaus.org reject_rbl_client zen.spamhaus.org
変更を有効にするためにPostfixをリロードします。
sudo systemctl reload postfix
パブリックホワイトリストを使用して誤検知を減らす
プライベートホワイトリストを維持する必要がある場合もありますが、最も有名なdnswl.orgであるパブリックホワイトリストを使用することもできます。現在、IPアドレスのホワイトリストのみがあります。ドメイン名のホワイトリストはベータ版です。これを使用するには、smtpd_recipient_restrictions
に次の行を入力します 。
permit_dnswl_client list.dnswl.org=127.0.[0..255].[1..3]
以下のように。 reject_rbl_client
の上に配置する必要があります チェックしてください。
smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated check_policy_service unix:private/policyd-spf check_policy_service unix:postgrey/socket check_client_access hash:/etc/postfix/rbl_override reject_rhsbl_helo dbl.spamhaus.org reject_rhsbl_reverse_client dbl.spamhaus.org reject_rhsbl_sender dbl.spamhaus.org permit_dnswl_client list.dnswl.org=127.0.[0..255].[1..3] reject_rbl_client zen.spamhaus.org
もう1つの有名なホワイトリストは、 swl.spamhaus.orgです。 、構成に追加することもできます。
permit_dnswl_client swl.spamhaus.org
IPアドレスをSpamhausホワイトリストとブラックリストに同時にリストすることは不可能です。したがって、PostfixでSpamhausブラックリストのみを使用する場合は、Spamhausホワイトリストと照合する必要はありません。
私のPostfixスパムフィルター
これが私のPostfixスパムフィルターのスクリーンショットです。
Postfixログレポート
Pflogsumm
Postfixログの要約を作成するための優れたツールです。 CentOS / RHELでは、pflogsummはpostfix-perl-scripts
によって提供されます。 パッケージ。
sudo dnf install postfix-perl-scripts
次のコマンドを使用して、今日のレポートを生成します。
sudo pflogsumm -d today /var/log/maillog
昨日のレポートを生成します。
sudo pflogsumm -d yesterday /var/log/maillog
今週のレポートを生成したい場合。
sudo pflogsumm /var/log/maillog
「通常の」統計の前に「問題」レポート(バウンス、延期、警告、拒否)を発行するには、--problems-first
を使用します。 フラグ。
sudo pflogsumm -d today /var/log/maillog --problems-first
メール送信元アドレスを拒否レポートの各リストに追加するには、--rej-add-from
を使用します フラグ。
sudo pflogsumm -d today /var/log/maillog --rej-add-from
拒否の概要で完全な理由を表示するには、--verbose-msg-detail
を使用します フラグ。
sudo pflogsumm -d today /var/log/maillog --rej-add-from --verbose-msg-detail
cronジョブを追加して、pflogsummを作成し、毎日自分のメールアドレスにレポートを送信できます。
sudo crontab -e
次の行を追加すると、毎日午前4:00にレポートが生成されます。
0 4 * * * /usr/sbin/pflogsumm -d yesterday /var/log/maillog --problems-first --rej-add-from --verbose-msg-detail -q
電子メールでレポートを受信するには、すべてのcronジョブの上に次の行を追加します。
MAILTO="your-email-address"
message reject detail
に注意する必要があります セクションでは、これらの電子メールが拒否された理由と誤検知があるかどうかを確認できます。グレイリストの拒否は無視しても安全です。
MAILTO変数がすでに設定されているが、Postfixログの概要を別のメールアドレスに送信したい場合は、Cronジョブに次の行を追加できます。
0 4 * * * /usr/sbin/pflogsumm -d yesterday /var/log/maillog --problems-first --rej-add-from --verbose-msg-detail -q | mutt -s "Postfix log summary" your-email-address
pflogsumm
の出力 コマンドはmutt
にリダイレクトされます 、コマンドラインメールユーザーエージェント。出力をメール本文として使用し、最後に指定したメールアドレスに送信します。もちろん、CentOS/RHELサーバーにmuttをインストールする必要があります。
sudo dnf install mutt
ヒント#7:DMARCチェックに失敗したメールを拒否するようにOpenDMARCを設定する
DMARC(ドメインベースのメッセージ認証、レポート、および準拠)は、ドメイン所有者が自分のドメイン名が電子メールスプーファによって使用されるのを防ぐことを可能にするインターネット標準です。 OpenDMARCを設定するには、次のガイドのいずれかをお読みください。
- 電子メールのなりすましをブロックするためにCentOS/RHELでPostfixを使用してOpenDMARCを設定する
ローカルDNSリゾルバーを実行してDNSルックアップを高速化
ご覧のとおり、Postfixは各SMTPダイアログを分析するためにDNSレコードを検索する必要があります。 DNSルックアップを高速化するために、ローカルDNSリゾルバーを実行できます。また、ほとんどのDNSブラックリストにはクエリ制限があります。独自のローカルDNSリゾルバーを実行してDNSレコードをキャッシュすると、クエリの制限を下回ることができます。
bind9DNSサーバーをインストールできます。
sudo dnf install bind
BIND 9を次のコマンドで開始します:
sudo systemctl start named
起動時に自動起動を有効にします:
sudo systemctl enable named
次のコマンドでステータスを確認できます:
systemctl status named
サンプル出力:
● named.service - Berkeley Internet Name Domain (DNS) Loaded: loaded (/usr/lib/systemd/system/named.service; enabled; vendor preset: disable> Active: active (running) since Sun 2020-05-17 11:07:34 EDT; 9s ago Process: 7203 ExecStop=/bin/sh -c /usr/sbin/rndc stop > /dev/null 2>&1 || /bin/kill -TE> Process: 7218 ExecStart=/usr/sbin/named -u named -c ${NAMEDCONF} $OPTIONS (code=exited,> Process: 7215 ExecStartPre=/bin/bash -c if [ ! "$DISABLE_ZONE_CHECKING" == "yes" ]; the> Main PID: 7220 (named) Tasks: 4 (limit: 5045) Memory: 55.5M CGroup: /system.slice/named.service └─7220 /usr/sbin/named -u named -c /etc/named.conf -4
ヒント:上記のコマンドがすぐに終了しない場合は、Qを押してください。
CentOS/RHELメールサーバーでのデフォルトのDNSリゾルバーの設定
デフォルトのDNSリゾルバーとして127.0.0.1を設定する必要があります。次のコマンドを使用して、CentOS/RHEL上の現在のDNSリゾルバーを確認できます。
cat /etc/resolv.conf
サンプル出力:
# Generated by NetworkManager nameserver 192.168.0.1 nameserver 8.8.8.8
BINDをデフォルトのリゾルバーとして設定するには、最初に次のコマンドを使用してメインネットワークインターフェイスの名前を見つける必要があります。
ip addr
私のはens3
です 。次に、次のコマンドを実行して、ネットワークインターフェイス構成ファイルを編集します。 ens3
を置き換えます 独自のインターフェース名を使用します。
sudo nano /etc/sysconfig/network-scripts/ifcfg-ens3
DNS1
を見つけます パラメータを設定し、その値を127.0.0.1
に変更します 。このファイルの他のパラメータの値が二重引用符で囲まれている場合は、127.0.0.1
もラップする必要があることに注意してください。 二重引用符で囲みます。
DNS1="127.0.0.1"
DNS1
が見つからない場合 パラメータを入力し、このファイルの最後に上記の行を追加します。 DNS障害の可能性を減らすために、このファイルに次の行を追加して、セカンダリDNSリゾルバーを指定することをお勧めします。
DNS2="8.8.8.8"
ファイルを保存して閉じます。次に、NetworkManagerを再起動して、変更を有効にします。
sudo systemctl restart NetworkManager
/etc/resolv.conf
の内容を確認できるようになりました また。ご覧のとおり、127.0.0.1(BIND)がCentOS/RHELのデフォルトのDNSリゾルバーになりました。
BINDでIPv6を無効にする方法
メールサーバーにパブリックIPv6アドレスがない場合は、BINDでIPv6をオフにすることをお勧めします。オフにしないと、以下のようにBINDログのIPv6に関する多くのエラーが発生します。
network unreachable resolving 'mirrors.fedoraproject.org/A/IN': 2001:4178:2:1269:dead:beef:cafe:fed5#53 network unreachable resolving 'mirrors.fedoraproject.org/AAAA/IN': 2001:4178:2:1269:dead:beef:cafe:fed5#53 network unreachable resolving 'mirrors.fedoraproject.org/A/IN': 2610:28:3090:3001:dead:beef:cafe:fed5#53 network unreachable resolving 'mirrors.fedoraproject.org/AAAA/IN': 2610:28:3090:3001:dead:beef:cafe:fed5#53
CentOS / RHELのBINDでIPv6を無効にするには、 / etc / sysconfig / namedを開くだけです。 ファイル
sudo nano /etc/sysconfig/named
そして、ファイルの最後に次の行を追加します。
OPTIONS="-4"
ファイルを保存して閉じます。次に、namedを再起動すると、完了です。
sudo systemctl restart named
次に、次のコマンドを実行します。 BINDがIPv6アドレスをリッスンしていないことがわかります。
sudo netstat -lnptu | grep named
Postfix逆引きDNSルックアップエラー
Postfix SMTPサーバーがchroot環境で実行されている場合、DNS逆引き参照を実行できない可能性があります。この場合、PTRレコードを持つIPアドレスは引き続きunknown
として識別されます。 。
postfix/smtpd[14734]: connect from unknown[23.254.225.226]
これを修正するには、chroot環境内でDNS逆引き参照に必要なライブラリをコピーする必要があります。
sudo mkdir /var/spool/postfix/lib64 sudo cp -vl /usr/lib64/libnss_* /var/spool/postfix/lib64
次に、Postfixを再起動します。
sudo systemctl restart postfix
次のステップ
これらの7つのPostfixスパム対策が、電子メールスパムのブロックに役立つことを願っています。スパムをより適切に検出するために、SpamAssassinなどのコンテンツフィルターを展開することもできます。
- 電子メールスパムをブロックするようにCentOS/RHELでSpamAssassinを設定する
いつものように、この投稿が役に立った場合は、無料のニュースレターを購読して、より多くのヒントやコツを入手してください。気をつけて🙂