Postfix
Что такое Postfix - это агент передачи почты, который является свободным программным обеспечением. Postfix создавался как альтернатива Sendmail. ПО повышало производительность, обеспечивало устойчивость, гибкость и безопасность решения. Postfix был разработан Вейтсом Веннемой, когда он работал в Исследовательском центре имени Томаса Уотсона компании IBM. Первые версии стали доступны в середине 1999 года.
Архитектура
Архитектура выполнена в стиле UNIX. В UNIX простые программы выполняют минимальный набор функций. Когда почтовая система не вовлечена в работу ненужные домены прекращают свою работу, благодаря чему освобождается память и в случае необходимости запускаются master-доменом. В дополнении к этому имеет меньшую ресурсоёмкость в момент простоя системы, а также обладает более простой и понятной конфигурацией по сравнению с Sendmai, где всю работу выполняет одна большая программа.
Базовая настройка
Самая простая настройка конфигурации – пустой файл. Как оказалось, вполне допустимая и приводит тому, что создается почтовый сервер, который выполняет локальную доставку почты в пределах домена локального хоста. Любые не локальные сообщения отправляются дистанционным серверам.
Так же есть второй вариант – null клиент. Система не выполняет локальную доставку, а направляет исходящую почту на указанный почтовый сервер. При данной конфигурации указывается несколько параметров: mydomain – основной домен компьютера; myorigin – основной почтовый домен, добовляемый к почтовым адресам. Третьим параметром будет mydestination, письмо доставит программа local (в том случае, если файл .forward не найден). Если в mydestination несколько записей, они рассматриваются как псевдонимы одного домена. Null клиенту локальная доставка не нужна, поэтому параметр mydestination — пустой. Также программа local будет проводить поиск псевдонима адреса в таблицах alias_maps. Наконец, параметр relayhost оповещает Postfix о том, что нелокальные сообщения нужно посылать на указанный компьютер, а не адресатам. Квадратные скобки говорят о том, что указанная строка обрабатывается как имя компьютера, то есть A не MX запись DNS. Null клиент не должен получать почту с других систем – комментируем строчку smtpd в файле master.cf – программа smtpd не запустится.
Совместимость
Postfix может быть собран почти на любо й Unix-подобной, которые поддерживают POSIX и имеющие компилятор C. В пример можно привести AIX, BSD, HP-UX, IRIX, GNU/Linux, MacOS X, Solaris, Tru64 UNIX.
Безопасность
Postfix имеет защиту на нескольких уровнях. Большее количество серверных Postfix-программ имеют возможность выполняться в среде с измененным корневым каталогом (chroot). Они являются отдельными программами не имеющие связей Родитель-дочерний. Ни одна из них не имеет бита setuid. Каталог, в который направлена почта, доступен для записи группе postdrop, для нее — программа postdrop setgid.
Что касается доступа, почтовые домены ретранслируют почту на сторонние адреса только для надежных агентов. Открытая ретрансляция с неизвестных адресов, как известно, не сулит ничего хорошего. Postfix по умолчанию закрыт как ретранслятор. Стандартные настройки сильно ограничены, вероятнее всего вам будет необходимо снизить ограничения. Доступы конфигурируются списками ограничения доступа access restriction list. Самым важным параметром будет smtpd_recipient_restrictions, так как адресом получателя будет проще управлять. По крайней мере, можно установить является ли он локальным.
Начало работы с Postfix
Прежде всего вам будет необходимо установить и настроить почтовый сервер Ubuntu 20.04. Для этого вам понадобится пакет chrony для синхронизации времени, настройка веб-сервера: NGINX + PHP + MariaDB, также установить и настроить PostfixAdmin, ну и установить сам Postfix.
Настройка сервера
Первым делом вам необходимо прописать несколько команд в консоле:
sudo -s
apt update
apt upgrade
Затем вы должны задать имя серверу. Это необходимо сделать, потому что большенство антиспам систем выполняют проверки, обращаясь к серверу по имени в ожидании ответа. Это вы должны сделать при помощи команды:
hostnamectl set-hostname [имя сервера]
Далее для синхронизации времени устанавливаем пакет chrony
apt install chrony
Затем задаем временную зону и запускаем сервис для обновления времени
timedatectl set-timezone [ваш регион]
systemctl enable chrony
