Инструкция по установке EAI почтового сервера под ОС Ubuntu 22.04 LTS

Материал из вики.поддерживаю.рф
Перейти к навигации Перейти к поиску

Установка EAI почтового сервера

С помощью данной инструкции вы сможете установить почтовый сервер с поддержкой использования интернационализированных адресов электронной почты (EAI) на базе ПО с открытым исходным кодом. Почтовый сервер можно развивать далее с помощью другого ПО. Хостинг-провайдер должен изменить PTR-запись для домена на ваш IDN-домен. Проверить запись PTR можно при помощи любого внешнего инструмента.

Например: https://www.whatsmydns.net/#PTR/62.109.26.140

Подготовка системы

  1. Авторизуемся на удаленном сервере
    ssh root@62.109.26.140
  2. Обновляем систему
    apt update && apt upgrade -y && apt full-upgrade -y && apt dist-upgrade -y
  3. Очищаем систему
    apt autoremove -y && apt clean -y && apt autoclean -y
  4. Обновляем корневые сертификаты
    update-ca-certificates
  5. Устанавливаем необходимые утилиты
    apt install nano wget net-tools -y
  6. Настраиваем часовой пояс
    timedatectl set-timezone Europe/Moscow
  7. Настраиваем имя хоста
    hostnamectl set-hostname xn----gtbdaqueeage2s.xn--p1ai
    nano -l /etc/hosts
  8. и вносим
    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 доменное-имя.рф
  9. Проверяем имя хоста
    hostname
  10. Перезагружаем систему
    reboot

Установка программных компонент

  1. Устанавливаем необходимые пакеты Dovecot, Postfix и MariaDB
    cd && apt install postfix dovecot-core dovecot-imapd dovecot-lmtpd dovecot-pop3d mariadb-server dovecot-mysql postfix-mysql mailutils -y
  2. во время установки выбираем Internet Site и указываем имя домена xn----gtbdaqueeage2s.xn--p1ai
  3. Запускаем сервисы, включаем автозапуск и проверяем их статус
    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
  4. Отправляем тестовое письмо
    echo "Test mail" | mail -s "Test mail" happyzomb@ya.ru
  5. Настраиваем поддержку кодировки базы данных
    nano /etc/mysql/my.cnf
  6. и добавляем:
    [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
  7. Завершаем установку MariaDB и проверяем статус службы
    usermod -d /var/lib/mysql/ mysql
    systemctl restart mariadb && systemctl status mariadb | grep Active
  8. Проверяем, что службы Postfix, Dovecot и MariaDB запущены и слушают соответствующие порты
    netstat -tulnp

Настройка базы данных

  1. Авторизуемся в MariaDB
    mysql -u root -p
  2. Создаем базу данных для Dovecot
    CREATE DATABASE eaimail;
  3. Выбираем базу данных
    USE eaimail;
  4. Настраиваем доступ
    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';
  5. Создаем таблицы
    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) );
  6. Добавляем значения имени домена и адресов электронной почты
    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'));