Порты и сеть
Все порты, которые слушает узел, зачем они нужны и что открывать наружу. Всё, что помечено «только локально», наружу выпускать не нужно.
Наружу
| Порт | Служба | Зачем |
|---|---|---|
| 25/tcp | Postfix | приём почты от других серверов. Обязателен, закрывать нельзя |
| 587/tcp | Postfix | отправка из клиентов, STARTTLS, требует авторизации |
| 465/tcp | Postfix | отправка из клиентов сразу по TLS |
| 143/tcp | Dovecot | IMAP, при авторизации переводится на TLS |
| 993/tcp | Dovecot | IMAP сразу по TLS — то, что указывают в клиентах |
| 4190/tcp | Dovecot | ManageSieve: фильтры и автоответы из клиента |
| 80/tcp | Caddy | выпуск сертификата и редирект на https |
| 443/tcp | Caddy | панель, веб-почта, календари |
POP3 нет
Порты 110 и 995 не используются: письма хранятся на сервере, клиенты работают по IMAP.
Только локально
| Порт | Что | Зачем |
|---|---|---|
| 8780 | mailpanel | панель, наружу её публикует Caddy по https |
| 8891 | OpenDKIM | milter, подпись писем |
| 11332 | rspamd | milter, проверка спама |
Открыть порты в файрволе
# nftables (Debian 13)
nft add rule inet filter input tcp dport { 25, 80, 443, 465, 587, 993, 143, 4190 } accept
# ufw (Ubuntu)
ufw allow 25,80,443,465,587,993,143,4190/tcp
Провайдерский файрвол
У большинства хостеров есть свой сетевой экран в панели. Открыть порты нужно и там, иначе пакеты не дойдут до сервера. Порт 25 часто закрыт по умолчанию — это первое, что просят открыть.
Проверка снаружи
nc -vz mail.example.ru 25
nc -vz mail.example.ru 993
nc -vz mail.example.ru 443
openssl s_client -connect mail.example.ru:993 -servername mail.example.ru </dev/null 2>/dev/null | openssl x509 -noout -subject -dates
Последняя команда показывает, какой сертификат отдаёт IMAP и до какой даты он годен.
Что видно снаружи
Наружу торчат только почтовые порты и веб. База, панель и милтеры слушают 127.0.0.1: снаружи к ним не подключиться даже зная порт.