Knowledge Base
SMTP открыт публично — open relay и спам-риски (порт 25)
SMTP открыт публично — порт 25
Категория: Server Hardening · Риск: medium
SMTP открыт публично — порт 25
Два разных сценария
Сценарий 1: Намеренный почтовый сервер
Если у вас настроен Postfix/Exim/Sendmail — порт 25 **должен** быть открыт для приёма входящей почты. Но риск в неправильной конфигурации.
Сценарий 2: Случайный SMTP
Если вы не планировали почтовый сервер, но порт 25 открыт — возможно у вас запущен Postfix по умолчанию (во многих Linux-дистрибутивах он запускается автоматически при установке).
Главный риск: Open Relay
Open Relay — SMTP-сервер, который принимает и пересылает письма от кого угодно кому угодно. Спамеры активно ищут open relays для рассылки миллионов писем от вашего имени.
# Проверка open relay
# (только для своих серверов!)
telnet <YOUR_SERVER> 25
EHLO test.com
MAIL FROM: <test@external.com>
RCPT TO: <victim@another-external.com>
# Если сервер принял — это open relay
Исправление
Закрыть если SMTP не нужен
# Остановить Postfix
systemctl stop postfix
systemctl disable postfix
# Закрыть порт
ufw deny 25
Правильная конфигурация Postfix
# /etc/postfix/main.cf
# Принимать почту только для своих доменов
mydestination = $myhostname, example.com, localhost
mynetworks = 127.0.0.0/8 # пересылать только локальные письма
# Запрет open relay (обязательно):
smtpd_relay_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination # ← главная строка
# TLS для входящих соединений
smtpd_tls_security_level = may
smtpd_tls_cert_file = /etc/letsencrypt/live/mail.example.com/fullchain.pem
smtpd_tls_key_file = /etc/letsencrypt/live/mail.example.com/privkey.pem
Для отправки транзакционных писем без своего сервера
Используйте внешний SMTP-провайдер (Postmark, SendGrid, Amazon SES) через порты 587 или 465:
# /etc/postfix/main.cf — relay через SendGrid
relayhost = [smtp.sendgrid.net]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_tls_security_level = encrypt
# /etc/postfix/sasl_passwd
[smtp.sendgrid.net]:587 apikey:<YOUR_SENDGRID_API_KEY>
postmap /etc/postfix/sasl_passwd
Проверка репутации SMTP
# Проверить IP в спам-листах
host <YOUR_IP>.zen.spamhaus.org
# Проверить PTR (reverse DNS)
host <YOUR_IP>
# Должен вернуть что-то осмысленное: mail.example.com
# А не: 123-45-67-89.dynamic.isp.com — это попадёт в спам
Связанные проверки
- [SPF-защита](/kb/dns/spf-email-protection)
- [DMARC-политика](/kb/dns/dmarc-domain-policy)
- [IP reputation](/kb/incident_response/ip-blacklist-remediation)