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

CentOS/RHELでPostfixを使用して電子メールスパムをブロックするための7つの効果的なヒント

このチュートリアルでは、CentOS/RHELのPostfixSMTPサーバーで電子メールスパムをブロックするための7つのヒントを紹介します。自分の電子メールサーバーを実行していた過去4年間で、私は大量のスパム、別名迷惑な商用電子メールを受け取りました。インターネット上で大量のメールを送信するのは非常に安価であるため、スパムが存在します。 Postfixを使用すると、スパムがメールボックスに入る前にブロックできるため、帯域幅とディスク容量を節約できます。

:独自のメールサーバーを実行する場合は、iRedmailを使用することをお勧めします。これにより、メールサーバーの設定プロセスが大幅に簡素化されます。また、スパム対策ルールが付属しています。メールサーバーを最初から設定したい場合は、私のメールサーバーチュートリアルシリーズをご覧ください。

スパムの特徴

以下は私が電子メールスパムについて見つけたものです。これらのスパムは簡単にブロックできます。

  1. それらのIPアドレスにはPTRレコードがありません。
  2. スパマーがHELO/EHLO句で有効なホスト名を提供していません。
  3. 彼らはMAILFROMアドレスを偽装します。
  4. 通常、メールの配信に失敗した後、メールを再送信することはありません。

正規の電子メールサーバーにこれらの特性を持たせることはできません。そこで、スパムの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を設定する

いつものように、この投稿が役に立った場合は、無料のニュースレターを購読して、より多くのヒントやコツを入手してください。気をつけて🙂


Cent OS
  1. Auditd で Linux OS を起動できない (CentOS/RHEL)

  2. CentOS/RHEL 7 で GUI でログインできない

  3. CentOS / RHEL :Yum によるカーネル更新の除外

  1. CentOS 8 /RHEL8サーバーのセキュリティ強化のヒントトップ7

  2. Postfixプラグインによる国際スパムボットネットのブロック

  3. CentOS 7 /RHEL7にNginxを使用してphpMyAdminをインストールする方法

  1. RHEL 8 /CentOS8にpostfixメールサーバーをインストールする方法

  2. CentOS / RHEL :Apache の SSL を有効にする方法

  3. CentOS/RHEL 7 で現在のカーネルを使用してレスキュー カーネル用に initramfs と vmlinuz を再生成する方法