Инструкция по установке EAI почтового сервера под ОС Ubuntu 22.04 LTS
Установка EAI почтового сервера
С помощью данной инструкции вы сможете установить почтовый сервер с поддержкой использования интернационализированных адресов электронной почты (EAI) на базе ПО с открытым исходным кодом. Почтовый сервер можно развивать далее с помощью другого ПО. Хостинг-провайдер должен изменить PTR-запись для домена на ваш IDN-домен. Проверить запись PTR можно при помощи любого внешнего инструмента.
Например: https://www.whatsmydns.net/#PTR/62.109.26.140
Подготовка системы
- Авторизуемся на удаленном сервере
ssh root@62.109.26.140
- Обновляем систему
apt update && apt upgrade -y && apt full-upgrade -y && apt dist-upgrade -y
- Очищаем систему
apt autoremove -y && apt clean -y && apt autoclean -y
- Обновляем корневые сертификаты
update-ca-certificates
- Устанавливаем необходимые утилиты
apt install nano wget net-tools -y
- Настраиваем часовой пояс
timedatectl set-timezone Europe/Moscow
- Настраиваем имя хоста
hostnamectl set-hostname xn----gtbdaqueeage2s.xn--p1ai
nano -l /etc/hosts
- и вносим
127.0.0.1 localhost xn----gtbdaqueeage2s.xn--p1ai доменное-имя.рф
127.0.1.1 xn----gtbdaqueeage2s.xn--p1ai доменное-имя.рф
62.109.26.140 xn----gtbdaqueeage2s.xn--p1ai доменное-имя.рф
- Проверяем имя хоста
hostname
- Перезагружаем систему
reboot
Установка программных компонент
- Устанавливаем необходимые пакеты Dovecot, Postfix и MariaDB
cd && apt install postfix dovecot-core dovecot-imapd dovecot-lmtpd dovecot-pop3d mariadb-server dovecot-mysql postfix-mysql mailutils -y
- во время установки выбираем Internet Site и указываем имя домена xn----gtbdaqueeage2s.xn--p1ai
- Запускаем сервисы, включаем автозапуск и проверяем их статус
systemctl start postfix && systemctl start dovecot && systemctl start mariadb
systemctl enable postfix && systemctl enable dovecot && systemctl enable mariadb
systemctl status postfix
systemctl status dovecot
systemctl status mariadb
- Отправляем тестовое письмо
echo "Test mail" | mail -s "Test mail" happyzomb@ya.ru
- Настраиваем поддержку кодировки базы данных
nano /etc/mysql/my.cnf
- и добавляем:
[mysqld]
character-set-server = utf8
collation-server = utf8_general_ci
skip-character-set-client-handshake
bind-address=127.0.0.1
datadir=/var/lib/mysql
log-error=/var/log/mariadb.log
pid-file=/tmp/mariadb.pid
- Завершаем установку MariaDB и проверяем статус службы
usermod -d /var/lib/mysql/ mysql
systemctl restart mariadb && systemctl status mariadb | grep Active
- Проверяем, что службы Postfix, Dovecot и MariaDB запущены и слушают соответствующие порты
netstat -tulnp
Настройка базы данных
- Авторизуемся в MariaDB
mysql -u root -p
- Создаем базу данных для Dovecot
CREATE DATABASE eaimail;
- Выбираем базу данных
USE eaimail;
- Настраиваем доступ
GRANT SELECT, INSERT, UPDATE, DELETE ON eaimail.* TO 'dbuser'@'localhost' IDENTIFIED BY '6y5ljiB9j3M7';
GRANT SELECT, INSERT, UPDATE, DELETE ON eaimail.* TO 'dbuser'@'localhost.localdomain' IDENTIFIED BY '6y5ljiB9j3M7';
FLUSH PRIVILEGES;
SHOW GRANTS FOR 'dbuser'@'localhost';
- Создаем таблицы
CREATE TABLE domains (domain varchar(50) NOT NULL, PRIMARY KEY (domain) );
CREATE TABLE forwardings (source varchar(80) NOT NULL, destination TEXT NOT NULL, PRIMARY KEY (source) );
CREATE TABLE users (email varchar(80) NOT NULL, password varchar(20) NOT NULL, PRIMARY KEY (email) );
- Добавляем значения имени домена и адресов электронной почты
INSERT INTO domains (domain) VALUES ('xn----gtbdaqueeage2s.xn--p1ai');
INSERT INTO domains (domain) VALUES ('доменное-имя.рф');
INSERT INTO users (email, password) VALUES ('info@xn----gtbdaqueeage2s.xn--p1ai', ENCRYPT('6y5ljiB9j3M7'));
INSERT INTO users (email, password) VALUES ('info@доменное-имя.рф', ENCRYPT('6y5ljiB9j3M7'));
- Настраиваем переадресацию
INSERT INTO forwardings (source,destination) VALUES ('info@доменное-имя.рф','info@xn----gtbdaqueeage2s.xn--p1ai');
- Выходим
quit