Ограничение на прием почты для Postfix

Стоит задача полностью запретить прием сообщений для email рассылок [email protected], а также в целях безопасности ограничить примем входящей почты только от доверенных доменов.

# Полный запрет приёма на [email protected]
[email protected]   REJECT 550 5.1.1 [email protected] does not accept inbound mail. Use [email protected]

# Без ограничений
[email protected]    OK

# Только от доверенных доменов (см. restriction class ниже)
[email protected]  check_restriction_class trusted_senders
[email protected]  check_restriction_class trusted_senders
[email protected]  check_restriction_class trusted_senders

Создаем файл:

nano /etc/postfix/trusted_senders

Добавляем список доверенных отправителей (доменов/адресов):

# Разрешить любые адреса с домена (пример):
@trusted-partner.com   OK
@client1.com           OK

# Разрешить домен и все поддомены (точка в начале):
.trustedgroup.com      OK

# (опционально) конкретный адрес:
[email protected] OK

# Всё остальное будет отклонено правилом в restriction class

Откройте /etc/postfix/main.cf и добавьте:

# Класс ограничений для user*
smtpd_restriction_classes = trusted_senders
trusted_senders =
    permit_mynetworks,
    permit_sasl_authenticated,
    check_sender_access lmdb:/etc/postfix/trusted_senders,
    reject 550 5.7.1 Sender domain is not allowed for this recipient

# Применяем правила по получателю
smtpd_recipient_restrictions =
    permit_mynetworks,
    permit_sasl_authenticated,
    reject_unauth_destination,
    check_recipient_access lmdb:/etc/postfix/recipient_access

Если вы настраивали почтовый сервер по моей инструкции ранее, нужно убрать параметр:

smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination

Иначе получите предупреждение о ошибке.

Компилируем карты и перезагружаем Postfix:

postmap /etc/postfix/recipient_access
postmap /etc/postfix/trusted_senders
postfix reload

Использовать только IPv4 для Dovecot

service imap-login {
  inet_listener imap {
    listen = *
  }
  inet_listener imaps {
    listen = *
  }
}