OpenSMTPd: 「受信」ドメインに基づいて送信者をブロックする

OpenSMTPd: 「受信」ドメインに基づいて送信者をブロックする

OpenSMTPd の場合、サーバーのドメイン名に基づいて、サーバーからのメール送信をブロックしたいと考えています。このサーバーにはさまざまな場所に多数の IP アドレスがあり、大量のスパムが送信されるため、各 IP アドレスを個別にブロックするのは非常に手間がかかります。サーバーを完全にブロックしたいのですが、たとえば「example.com」(「受信」にこれが含まれます) のメール サーバーからのすべてのメールを黙って拒否する方法はありますか?

ありがとう!

答え1

ヘッダーReceivedは簡単に偽装できるため、メールの送信元を特定するのに使用しないでください。代わりに、送信元アドレス、HELOホスト名、MAIL FROM(送信元ドメインの SPF レコードに対してテストされた) など、メール サーバーが独自に取得できる情報のみを信頼する必要があります。最後の、つまり最上位のReceived:ヘッダーはサーバーによって追加され、この情報はHELOSMTP コマンドから取得されます (IP アドレスと逆引きの組み合わせPTR)。

ヘッダーコンテンツの検査は、例えばPostfixで可能になる。header_checks(アクションREJECT)ですが、OpenSMTPdは同様のものを実装していないようです。また、OpenSMTPdはメールを外部フィルターに中継することしかできないため、接続段階の拒否故障したSFPまたはDNSベースのブロックリスト(DNSBL) 不可能です。

OpenSMTPd で何ができるかについては、以下で説明されていますsmtpd.conf(5)match オプション reject:

  • あなたは、至る所に大量のIPアドレスが存在するただし、実際にはすべて同じネットワーク ブロック内にある可能性があります。OpenSMTPd はwhois IP.ADD.RE.SSCIDR 表記で表現されたサブネット (eg ブロックなど) を読み取ることができるため、eg を使用してサブネットを CIDR 表記として判別します192.0.2.0/24

    match from src 192.0.2.0/24 reject
    
  • あなたがしたい場合はメールサーバーからのすべてのメールを拒否するexample.comこのドメインが実際にHELOホスト名で使用されている場合、その情報を拒否に使用できます。同様に、にはmatchそのためのオプションがあり、リストを使用できますtable(5)ファイル:

    match helo <rejectHeloDomains> reject
    table rejectHeloDomains file:/etc/mail/rejectHeloDomains
    

    ドメインを含むリスト ファイル (ワイルドカードが許可されます):

    example.com
    *.example.com
    

黙ってはだめ破棄明らかにスパムですが、接続段階の拒否これらの例がそうであるように。

関連情報