главная - Статьи - Почта - Postfix + Dovecot + MySQL
Postfix белый список
Дата обновления: 16.09.2020Теги: Postfix Почтовый сервер
В нормальной ситуации postfix должен проверять корректность передаваемых ему данных, таких как адрес получателя и отправителя, IP-адрес и соответсвие ему имени хоста и множество других проверок. Но в жизни часто бывает, что приходит письма от конкретного домена не проходят проверку (например криво настроены PTR-записи). В таких случаях надо сделать исключение, например, разрешив конкретному отправителю присылать письма, несмотря на плохо настроенный почтовик. Под адресом отправителя почти всегда имеется ввиду IP-адрес/hostname почтового сервера отправителя.
Создаем файл с белым списком отправителей:
# touch /etc/postfix/trusted_senders 1.2.3.4 OK 5.6.7.8 OK sender.mail-server.org OK
Создаем индексированную базу данных для postfix:
# postmap /etc/postfix/trusted_senders
Будет создан файл базы /etc/postfix/trusted_senders.db.
Выясним, какой тип базы postfix использует:
# postconf | grep database_type
default_database_type = hash
Соответственно, секцию конфига postfix (например, в smtpd_client_restrictions) изменяем примерно так:
smtpd_client_restrictions = permit_mynetworks, permit_sasl_authenticated, check_client_access hash:/etc/postfix/trusted_senders, reject_unknown_reverse_client_hostname, reject_unknown_client_hostname, reject_unauth_destination, permit # service postfix restart
Здесь есть нюанс. Postfix делает несколько проверок:
1) smtpd_client_restrictions – IP-адрес и (если возможно) доменное имя клиентского компьютера (или другого почт.сервера), который соединяется с сервером postfix для отправки письма. Если на этом этапе reject, то до команд HELO/EHLO дело не дойдет вообще.
2) smtpd_helo_restrictions – имя компьютера и (если возможно) его IP-адрес по имени, переданному в команде HELO/EHLO hostname. Тут тоже не все просто. Клиент может просто не отправлять данные HELO/EHLO и пройдет проверку. Решается включением smtpd_helo_required = yes.
3) smtpd_etrn_restrictions – то же, что и для 1), 2)
4) smtpd_sender_restrictions – проверка отправителя (т.е. проверяется, кто пытается отправить письмо на наш сервер) на основе данных из MAIL FROM:<sender>
5) smtpd_relay_restrictions - если на основе данных RCPT TO принимается решение о пересылке письма, то здесь проверяется, от кого и кому можно пересылать, нет ли ошибок в адресе и пр.
6) smtpd_recipient_restrictions – проверка адреса получателя, указанного в команде RCPT TO:
7) smtpd_data_restrictions
8) smtpd_end_of_data_restrictions
и на этих этапах, в зависимости от того, что вам нужно, надо добавить:
check_client_access hash:/etc/postfix/trusted_senders
Авторизуйтесь для добавления комментариев!