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

Материал из вики.поддерживаю.рф
Перейти к навигации Перейти к поиску
Строка 30: Строка 30:
# Завершаем установку MariaDB и проверяем статус службы <pre>usermod -d /var/lib/mysql/ mysql</pre><pre>systemctl restart mariadb && systemctl status mariadb | grep Active</pre>
# Завершаем установку MariaDB и проверяем статус службы <pre>usermod -d /var/lib/mysql/ mysql</pre><pre>systemctl restart mariadb && systemctl status mariadb | grep Active</pre>
# Проверяем, что службы Postfix, Dovecot и MariaDB запущены и слушают соответствующие порты <pre>netstat -tulnp</pre>
# Проверяем, что службы Postfix, Dovecot и MariaDB запущены и слушают соответствующие порты <pre>netstat -tulnp</pre>
== Настройка базы данных ==
# Авторизуемся в MariaDB <pre>mysql -u root -p</pre>
# Создаем базу данных для Dovecot <pre>CREATE DATABASE eaimail;</pre>
# Выбираем базу данных <pre>USE eaimail;</pre>
# Настраиваем доступ <pre>GRANT SELECT, INSERT, UPDATE, DELETE ON eaimail.* TO 'dbuser'@'localhost' IDENTIFIED BY '6y5ljiB9j3M7';</pre><pre>GRANT SELECT, INSERT, UPDATE, DELETE ON eaimail.* TO 'dbuser'@'localhost.localdomain' IDENTIFIED BY '6y5ljiB9j3M7';
<pre>FLUSH PRIVILEGES;</pre><pre>SHOW GRANTS FOR 'dbuser'@'localhost';</pre>
# Создаем таблицы <pre>CREATE TABLE domains (domain varchar(50) NOT NULL, PRIMARY KEY (domain) );</pre><pre>CREATE TABLE forwardings (source varchar(80) NOT NULL, destination TEXT NOT NULL, PRIMARY KEY (source) );</pre><pre>CREATE TABLE users (email varchar(80) NOT NULL, password varchar(20) NOT NULL, PRIMARY KEY (email) );</pre>
# Добавляем значения имени домена и адресов электронной почты <pre>INSERT INTO domains (domain) VALUES ('xn----gtbdaqueeage2s.xn--p1ai');</pre><pre>INSERT INTO domains (domain) VALUES ('доменное-имя.рф');</pre><pre>INSERT INTO users (email, password) VALUES ('info@xn----gtbdaqueeage2s.xn--p1ai', ENCRYPT('6y5ljiB9j3M7'));</pre><pre>INSERT INTO users (email, password) VALUES ('info@доменное-имя.рф', ENCRYPT('6y5ljiB9j3M7'));</pre>

Версия от 08:24, 27 июня 2022

Установка 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';

<pre>FLUSH PRIVILEGES;

SHOW GRANTS FOR 'dbuser'@'localhost';
  1. Создаем таблицы
    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) );
  2. Добавляем значения имени домена и адресов электронной почты
    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'));