postfix は、「mail from」と「receive to」に基づいて着信メールをフィルタリングします。

postfix は、「mail from」と「receive to」に基づいて着信メールをフィルタリングします。

いくつかの基準に基づいてpostfixサーバーに送信された電子メールを拒否したいと思います。特にロシアのメールアドレス(またはキリル文字が含まれていますがより難しいようです)から、2人の特定の受信者に送信される電子メールをブロックしたいと思います。他人に記録されます。)

私はこれが簡単でなければならないと思います。特に、「mail from」アドレスと「rcpt to」アドレスの両方がsmtpネゴシエーションの先頭に提供されるためです。しかし、postfixを使ってこれを行う方法を見つけることができず、追加のパッケージ(milter?)が必要かどうかはわかりません。

答え1

1つ追加制限レベル。たとえば、

/etc/postfix/main.cf:
smtpd_recipient_restrictions =
    check_recipient_access hash:/etc/postfix/recipient_access

smtpd_restriction_classes = no_russians
no_russians = check_sender_access pcre:/etc/postfix/no_russians


/etc/postfix/recipient_access:
[email protected]     no_russians
[email protected]     no_russians

/etc/postfix/no_russians:
/\.ru$/ REJECT

答え2

デフォルトではコピー/貼り付けhttps://sources.debian.org/src/postfix/3.6.4-1/examples/smtpd-policy/greylist.pl/#L257そして、進行しながら調整するために単純なスクリプトno_ru.plとしてcheck_policy_service実装できる単純なPerlスクリプトがあります。バラよりhttp://www.postfix.org/SMTPD_POLICY_README.html接続する方法を学びます。

未試験のYMMVら。次useのようないくつかの機能が必要な場合や初期化することができますsyslog。まず、コマンドラインで試してみてください。

# Unbuffer standard output.
#
select((select(STDOUT), $| = 1)[0]);

#
# Receive a bunch of attributes, evaluate the policy, send the result.
#
%attr = ();
$ru_sender = $ru_rcpt = 0;
while (<STDIN>) {
  if (/^\s*sender=.*\.ru\n/i) {
     $ru_sender = 1;
  } elsif (/^\s*recipient=.*\.ru$/i) {
     $ru_rcpt = 1;
  } elsif ($_ eq "\n") {
    if ($verbose) {
      syslog $syslog_priority, "ru_sender %i, ru_rcpt %i", $ru_sender, $ru_rcpt;
    }
    $action = ($ru_sender && $ru_rcpt) ? "reject" : "dunno";
    syslog $syslog_priority, "Action: %s", $action if $verbose;
    print STDOUT "action=$action\n\n";
    %attr = ();
  } else {
    chop;
    syslog $syslog_priority, "warning: ignoring garbage: %.100s", $_;
  }
}

答え3

ビューsmtpd_recipient_restrictionssmtpd_sender_restrictionsコマンド。これにより、必要なフィルタを含むハッシュマップを設定できます。

smtpd_sender_restrictions = check_sender_access hash:/etc/postfix/sender_access

/etc/postfix/sender_access:
.ru                       REJECT
[email protected]        REJECT

また、見ることができますhttp://www.postfix.org/ADDRESS_VERIFICATION_README.htmlそしてhttp://www.postfix.org/SMTPD_ACCESS_README.html

関連情報