Установка почтового сервера Postfix и Dovecot на Debian 10 Buster
Недавно разбирался как поднять почтовый сервер на Postfix в связке с Dovecot, для памяти опишу как поднять такой сервер на Debian 10. Все действия ниже будут выполняться от root.
Настройка DNS записей
# Добавляем DNS-записи для вашего почтового сервера:
@ MX 10 mail.example.com. mail A 192.168.1.10
Настройка системы
# Задаем имя системы (mail
) в файле (/etc/hostname
):
echo mail > /etc/hostname
# Указываем в файле (/etc/hosts
) строку содержащую IP-адрес с полным доменным именем (FQDN).
127.0.0.1 localhost 192.168.1.10 mail.example.com mail
[stextbox id=’info’]ИНФОРМАЦИЯ: В приведенном выше примере 192.168.1.10
— это IP-адрес машины, mail
— это имя локального хоста, а mail.example.com
это полное доменное имя.[/stextbox]
Настройка MySQL
Данные о пользователях почтового сервера (адреса электронной почты), доменах и псевдонимах будут хранится в базе данных MySQL.
# Устанавливаем MySQL сервер.
apt-get install mariadb-server -y
# Выполняем базовую настройку безопасности MySQL сервера и входим на сервер.
mysql_secure_installation mariadb
# Создаем базу данных для работы почтового сервера, пользователя для работы с базой данных и делегируем права на созданную базу данных.
CREATE DATABASE postfix; CREATE USER 'postfix'@'localhost' IDENTIFIED BY 'postfix'; GRANT SELECT ON postfix.* TO 'postfix'@'localhost'; FLUSH PRIVILEGES;
# Переключаемся на созданную базу данных, для создания необходимых таблиц.
use postfix;
# Создаем таблицу для доменов, которые будут получать почту:
CREATE TABLE `virtual_domains` ( `id` int(11) NOT NULL auto_increment, `name` varchar(50) NOT NULL, PRIMARY KEY (`id`) );
# Создаем таблицу для всех адресов электронной почты и паролей:
CREATE TABLE `virtual_users` ( `id` int(11) NOT NULL auto_increment, `domain_id` int(11) NOT NULL, `password` varchar(106) NOT NULL, `email` varchar(100) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `email` (`email`), FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE );