私は見つけた二 回答これについては、実際にどのように実装すればよいのかわかりませんし、少なくともそのうちの 1 つは質問に対する答えになっていません。そのため、共有できる経験をお持ちの方がいらっしゃいましたら、大変ありがたく思います。
私は Postfix を実行しているサーバー (Ubuntu 18.04) を持っています。私はすでに postfwd を使用して SASL 送信者のレートを制限しており、Amavis を使用してローカル マシン/ネットワーク (Web サーバーなど) からの送信メールをスキャンしています。すべて問題なく、main.cf では次のようになっています。
smtpd_sender_restrictions =
check_client_access cidr:/etc/postfix/internal_clients_filter,
permit_mynetworks,
reject_unknown_sender_domain
そしてmaster.cf
senderCheck unix - n n - 15 spawn
user=nobody argv=/opt/policyd/src/policyd.pl max_idle=30 max_use=50 daemon_timeout=50
127.0.0.1:10025 inet n - n - - smtpd
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o smtpd_restriction_classes=
-o smtpd_delay_reject=no
-o smtpd_client_restrictions=
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o mynetworks=127.0.0.0/8
-o smtpd_data_restrictions=
-o smtpd_end_of_data_restrictions=
-o local_header_rewrite_clients=
-o smtpd_error_sleep_time=0
-o smtpd_soft_error_limit=1001
-o smtpd_hard_error_limit=1000
-o smtpd_client_connection_count_limit=0
-o smtpd_client_connection_rate_limit=0
-o smtpd_milters=
-o local_recipient_maps=
-o relay_recipient_maps=
-o receive_override_options=no_header_body_checks,no_unknown_recipient_checks,no_address_mappings
ローカル送信者の場合と同じように、SASL 送信者 (定義上はネットワーク上にいない) にスパムおよびマルウェア スキャンを実行するにはどうすればよいですか?
答え1
これに対する答えは、少々恥ずかしいことに、SASL認証ユーザーがだったフィルタリングされています。ただし、master.cf で smtpd リスナーを指定していなかったsyslog_name
ため、ノイズの中でそれが機能しているという証拠は見つかりませんでした (SASL 認証の送信者は、ログ内のすべてのトラフィックの 1% 程度でしょう)。
そこで、償いとして、以下に、送信メール (ローカル ネットワーク上の Web アプリなど) と任意の外部ネットワークからメールを送信する SASL 認証アカウントの両方をメール サーバー経由で渡す、わずかに修正された構成の完全な説明を示します。
特に記載がない限り、Ubuntu 18.04 を標準パッケージで使用します。
まず、clamav ユーザーを amavis と同じグループに追加する必要がありました。
$ id clamav
uid=115(clamav) gid=115(clamav) groups=115(clamav),126(amavis)
/etc/amavis/conf.d
ファイルへの変更:
05-ドメインID
@local_domains_acl = ( ".$mydomain" );
# I've got multiple IP addresses on my machine and only want one to be used for mail:
@inet_acl = qw(127.0.0.1 [::1] 185.73.x.x [2001:ba8:0:x::x]);
15-コンテンツフィルターモード: スパムとウイルス対策のチェックを有効にする
20-debian_defaults: 隔離ディレクトリ(amavisユーザー+グループが所有)を設定して作成しfinal_spam_destiny
、D_DISCARD
40-ポリシー_銀行:
$interface_policy{'10024'} = 'INTERNAL';
$policy_bank{'INTERNAL'} = { # mail originating from clients in cidr:/etc/postfix/internal_clients_filter
bypass_spam_checks_maps => [0], # spam-check outgoing mail
bypass_banned_checks_maps => [0], # banned-check outgoing mail
bypass_header_checks_maps => [0], # header-check outgoing mail
forward_method => 'smtp:[127.0.0.1]:10025', # relay to Postfix listener on port 10025
};
Postfix main.cf内:
smtpd_sender_restrictions =
check_client_access cidr:/etc/postfix/internal_clients_filter,
permit_mynetworks,
reject_unknown_sender_domain
/etc/postfix/内部クライアントフィルター:
0.0.0.0/0 FILTER smtp:127.0.0.1:10024
::/0 FILTER smtp:[::1]:10024
master.cf内
127.0.0.1:10025 inet n - n - - smtpd
-o syslog_name=amavis-reentry
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o smtpd_restriction_classes=
-o smtpd_delay_reject=no
-o smtpd_client_restrictions=
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o mynetworks=127.0.0.0/8
-o smtpd_data_restrictions=
-o smtpd_end_of_data_restrictions=
-o local_header_rewrite_clients=
-o smtpd_error_sleep_time=0
-o smtpd_soft_error_limit=1001
-o smtpd_hard_error_limit=1000
-o smtpd_client_connection_count_limit=0
-o smtpd_client_connection_rate_limit=0
-o smtpd_milters=
-o local_recipient_maps=
-o relay_recipient_maps=
-o receive_override_options=no_header_body_checks,no_unknown_recipient_checks,no_address_mappings
新しい設定を取得するには、amavis と postfix をリロードします。ログで「amavis-reentry」を探すと、フィルタリングの結果が表示されます。