
OpenSMTPd の場合、サーバーのドメイン名に基づいて、サーバーからのメール送信をブロックしたいと考えています。このサーバーにはさまざまな場所に多数の IP アドレスがあり、大量のスパムが送信されるため、各 IP アドレスを個別にブロックするのは非常に手間がかかります。サーバーを完全にブロックしたいのですが、たとえば「example.com」(「受信」にこれが含まれます) のメール サーバーからのすべてのメールを黙って拒否する方法はありますか?
ありがとう!
答え1
ヘッダーReceived
は簡単に偽装できるため、メールの送信元を特定するのに使用しないでください。代わりに、送信元アドレス、HELO
ホスト名、MAIL FROM
(送信元ドメインの SPF レコードに対してテストされた) など、メール サーバーが独自に取得できる情報のみを信頼する必要があります。最後の、つまり最上位のReceived:
ヘッダーはサーバーによって追加され、この情報はHELO
SMTP コマンドから取得されます (IP アドレスと逆引きの組み合わせPTR
)。
ヘッダーコンテンツの検査は、例えばPostfixで可能になる。header_checks
(アクションREJECT
)ですが、OpenSMTPdは同様のものを実装していないようです。また、OpenSMTPdはメールを外部フィルターに中継することしかできないため、接続段階の拒否故障したSFPまたはDNSベースのブロックリスト(DNSBL) 不可能です。
OpenSMTPd で何ができるかについては、以下で説明されていますsmtpd.conf(5)
。match
オプション reject
:
あなたは、至る所に大量のIPアドレスが存在するただし、実際にはすべて同じネットワーク ブロック内にある可能性があります。OpenSMTPd は
whois IP.ADD.RE.SS
CIDR 表記で表現されたサブネット (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
黙ってはだめ破棄明らかにスパムですが、接続段階の拒否これらの例がそうであるように。