Стоит задача полностью запретить прием сообщений для 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 = *
}
}
Блокировка писем с небезопасными вложениями
Откройте конфиг Postfix:
nano /etc/postfix/main.cf
Добавьте в конец файла:
mime_header_checks = regexp:/etc/postfix/mime_header_checks
Создайте файл с правилами:
nano /etc/postfix/mime_header_checks
Добавьте правила:
# Блок “опасных” расширений по имени файла в MIME-заголовках: # Content-Disposition: ... filename=... # Content-Type: ... name=... # а также RFC2231 варианты filename*= / name*= # # Postfix regexp по умолчанию case-insensitive, поэтому EXE/Exe тоже поймается. # 1) По расширению в filename/name (включая кавычки и пробелы в имени) # Ловит и: filename=, filename*=, name=, name*= /^Content-(Disposition|Type):.*(filename|name)\*?[[:space:]]*=[[:space:]]*"?[^";\r\n]*\.(exe|scr|com|bat|cmd|pif|cpl|hta|js|jse|vbs|vbe|wsf|wsh|ps1|psm1|psd1|msi|msp|mst|jar|jnlp|lnk|scf|reg|dll|sys|drv|iso|img|vhd|vhdx|dmg|apk)"?([[:space:]]|;|$)/ REJECT Attachment type not allowed # 2) На случай, если имени файла нет/спрятали, но тип явно “исполняемый” /^Content-Type:[[:space:]]*application\/(x-msdownload|x-msdos-program|x-dosexec|x-executable|x-ms-installer|java-archive)/ REJECT Executable attachment type not allowed # 3) (опционально) Macro-enabled Office # Если хочешь блокировать макросные файлы — раскомментируй: /^Content-(Disposition|Type):.*(filename|name)\*?[[:space:]]*=[[:space:]]*"?[^";\r\n]*\.(docm|xlsm|pptm)"?([[:space:]]|;|$)/ # REJECT Macro-enabled Office attachments not allowed
Применяем настройки:
postfix reload