Хотя я нашелдва ответык этому, я не могу понять, как их на самом деле реализовать, и по крайней мере один из них на самом деле не отвечает на вопрос. Так что если у кого-то есть опыт, которым можно поделиться, я буду очень благодарен.
У меня есть сервер (Ubuntu 18.04) с Postfix. Я уже ограничиваю скорость отправителей SASL с помощью postfwd, а также использую и другие вещи для сканирования исходящей почты с локальной машины/сети (например, с веб-серверов) с помощью Amavis. Это все в порядке, и выглядит так в 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-authбылифильтруется. Однако я не указал syslog_name
для прослушивателя smtpd в master.cf, поэтому не увидел доказательств его работы во всем этом шуме (отправители SASL-auth составляют, возможно, 1% всего трафика в журнале).
Поэтому в качестве расплаты ниже приводится полное описание моей слегка измененной конфигурации, которая пропускает как исходящую почту (например, веб-приложения в локальной сети), так и учетные записи с аутентификацией SASL, отправляющие почту из произвольных внешних сетей через наш почтовый сервер.
Использование Ubuntu 18.04 со стандартными пакетами, если не указано иное:
Во-первых, мне нужно было добавить пользователя clamav в ту же группу, что и amavis:
$ id clamav
uid=115(clamav) gid=115(clamav) groups=115(clamav),126(amavis)
Изменения в /etc/amavis/conf.d
файлах:
05-идентификатор_домена
@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/internal_clients_filter:
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" в своих журналах, и вы должны увидеть результаты фильтрации.