PostfixAdmin – Настройка виртуальных почтовых ящиков на почтовом сервере Ubuntu

В предыдущих материалах мы рассматривали процесс настройки собственного почтового сервера на Ubuntu с нуля. В первой и второй частях этой серии уроков мы изучили настройку SMTP сервера Postfix и IMAP сервера Dovecot. Однако до сих пор мы могли создавать адреса электронной почты только для пользователей с учетными записями Unix на локальной машине. В данном уроке мы рассмотрим, как настроить виртуальные почтовые ящики на почтовом сервере Ubuntu с помощью PostfixAdmin. Этот инструмент представляет собой открытый веб-интерфейс для управления почтовым сервером на базе Postfix, поддерживающий множество доменов и пользователей.

PostfixAdmin предоставляет удобный способ настройки виртуальных почтовых ящиков без необходимости создания отдельной учетной записи Unix для каждого адреса электронной почты. Это особенно удобно при настройке почтового сервера для компании или организации, предлагая пользовательский интерфейс для создания и изменения паролей.

Уникальные черты PostfixAdmin

  • администрирование почтовых аккаунтов, виртуальных доменов и алиасов
  • Уведомления о выходных или отсутствии, на мой взгляд, удобнее всего отправлять через веб-почту Roundcube.
  • псевдонимные домены (редирект с одного домена на другой с верификацией адресатов)
  • Пользователи имеют возможность настраивать свой почтовый ящик, включая изменение псевдонима, пароля и уведомления о выходных днях.
  • поддержка отдельных квот для почтовых ящиков и общей квоты для всего домена
  • Интеграция с fetchmail позволяет вам перенаправлять электронные письма с вашего старого адреса на новый.
  • Командная строка для Postfix Admin, предназначенная для тех, кто предпочитает обходиться без веб-интерфейса .

Примечание

  • Этот урок подходит для Ubuntu версии 22.04, 20.04 и 24.04.
  • В данном уроке будет применяться сервер базы данных MariaDB/MySQL. Если вы хотите использовать…

sudo systemctl start mariadb

Для активации автоматического запуска MariaDB при загрузке системы, выполните следующие действия.

sudo systemctl enable mariadb

Теперь выполните скрипт безопасности после завершения установки.

sudo mysql_secure_installation

Когда появится запрос на ввод пароля root для MariaDB, просто нажмите клавишу Enter, так как пароль root пока не задан. После этого введите y, чтобы задать пароль root для сервера MariaDB.

ubuntu-20.04-install-LAMP-stack-MariaDB

После этого вы можете нажать Enter, чтобы ответить на все оставшиеся вопросы. Это приведет к удалению анонимного пользователя, отключению удаленного доступа для root и удалению тестовой базы данных. Этот шаг является важным условием для обеспечения безопасности базы данных MariaDB. (Имейте в виду, что буква Y написана заглавной, что указывает на то, что это стандартный ответ.)

Install-LAMP-stack-on-Ubuntu-20.04-MariaDB-Database-server

Установка PostfixAdmin на сервер под управлением Ubuntu

PostfixAdmin доступен в стандартном репозитории Ubuntu, но я не советую его использовать по следующим причинам:

  • Он может стать источником проблем во время обновления системы Ubuntu до последней версии, что может привести к неудаче в процессе обновления.
  • При использовании Nginx пакет postfixadmin способен автоматически установить Apache на вашу систему.
  • Если вы применяете MySQL, данный пакет может удалить его с вашего устройства.
  • В стандартной версии postfixadmin периодически возникает проблема с зацикливанием при входе. Также иногда можно встретить ошибку «Неверный токен!» (проверка CSRF не прошла).

Я расскажу вам, как установить актуальную версию PostfixAdmin. Для этого перейдите на страницу проекта PostfixAdmin на GitHub, чтобы скачать последнюю версию. Вы можете воспользоваться утилитой wget для загрузки через командную строку. Ссылка на загрузку всегда будет выглядеть следующим образом: если появится новая версия, просто замените 3.3.11 на новый номер версии.

sudo apt install wget wget https://github.com/postfixadmin/postfixadmin/archive/postfixadmin-3.3.11.tar.gz

После загрузки распакуйте архив в папку /var/www/ и измените его имя на postfixadmin.

sudo mkdir - p /var/www/ sudo tar xvf postfixadmin-3.3.11.tar.gz - C /var/www/ sudo переместить /var/www/postfixadmin-postfixadmin-3.3.11 /var/www/postfixadmin

Установка прав доступа

PostfixAdmin нуждается в папке templates_c, и веб-сервер должен иметь права на чтение и запись в эту папку. В связи с этим, выполните следующие команды.

sudo mkdir - p /var/www/postfixadmin/templates_c sudo apt install acl sudo setfacl - R - m u:www-data:rwx /var/www/postfixadmin/templates_c/

Начиная с версии Dovecot 2.3.11, веб-серверу необходимо предоставить доступ для чтения TLS-сертификата от Let’s Encrypt, чтобы осуществлять хеширование паролей. Для этого выполните следующие две команды.

sudo

postfixadmin_password$CONF['database_name'] = 'postfixadmin';
$CONF['encrypt'] = 'dovecot< // @ чтобы подавить openbase_dir stuff; см. https://github.com/postfixadmin/postfixadmin/issues/171 $CONF['dovecotpw'] = "/usr/bin/doveadm pw - r 5"; # debian >

Сохраните файл и закройте его. Учтите, что для паролей мы будем применять схему ARGON2I. В стандартной конфигурации PostfixAdmin и Dovecot используют MD5-CRYPT, что считается незащищённым методом. Чтобы просмотреть все доступные схемы паролей в Dovecot, выполните следующую команду.

sudo doveadm pw - l

SHA1 SSHA512 BLF-CRYPT PLAIN HMAC-MD5 OTP SHA512 SHA RPA DES-CRYPT CRYPT SSHA MD5-CRYPT SKEY PLAIN-MD4 PLAIN-MD5 SCRAM-SHA-1 LANMAN SHA512-CRYPT CLEAR CLEARTEXT ARGON2I ARGON2ID SSHA256 NTLM MD5 PBKDF2 SHA256 CRAM-MD5 PLAIN-TRUNC SHA256-CRYPT SMD5 DIGEST-MD5 LDAP-MD5

Настройте виртуальный хост Apache или создайте файл конфигурации Nginx для PostfixAdmin.

Apache

Если вы работаете с веб-сервером Apache, настройте виртуальный хост для PostfixAdmin.

sudo nano /etc/apache2/sites-available/postfixadmin.conf

Сохраните следующий текст в файл. Замените postfixadmin. example.com на ваше действительное доменное имя и убедитесь, что DNS A-запись для него настроена.

ServerName postfixadmin. example.com

plaintextОпции FollowSymLinks и AllowOverride All Опции FollowSymLinks MultiViews, разрешение на переопределение All, порядок allow, deny, разрешить всем.

Сохраните изменения в файле и закройте его. После этого активируйте данный виртуальный хост с помощью:

sudo a2ensite postfixadmin.conf

Перезапустите Apache, чтобы новые настройки начали действовать.

sudo systemctl reload apache2

Теперь вам следует открыть веб-инсталлятор PostfixAdmin по следующему адресу: http://postfixadmin.example.com/setup.php.

Nginx

Если вы применяете веб-сервер Nginx, настройте виртуальный хост для PostfixAdmin.

sudo nano /etc/nginx/conf.d/postfixadmin.conf

Сохраните следующий текст в файл. Замените postfixadmin. example.com на ваше действительное доменное имя и убедитесь, что DNS A-запись для него настроена.

server < listen 80; listen [::]:80; server_name postfixadmin. example.comкорень /var/www/postfixadmin/public/; индекс index.php index. html; журнал_доступа /var/log/nginx/postfixadmin_access.log; журнал_ошибок /var/log/nginx/postfixadmin_error.log; расположение /< try_files $uri $uri/ /index.php; >location ~ ^/(.+\.php)$ < try_files $uri =404; fastcgi_pass unix:/run/php/php8.1-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include /etc/nginx/fastcgi_params; > >

  • В указанной конфигурации применяется php8.1-fpm, что является обычной практикой для Ubuntu 22.04.
  • Для пользователей Ubuntu 20.04 замените php8.1-fpm на php7.4-fpm.
  • При использовании Ubuntu 24.04 замените php8.1-fpm на php8.2-fpm.

Сохраните файл и закройте его. После этого проверьте настройки Nginx.

sudo nginx - t

После успешного тестирования перезагрузите Nginx, чтобы изменения начали действовать.

sudo systemctl reload nginx

Теперь вам следует открыть веб-инсталлятор PostfixAdmin по следующему адресу: http://postfixadmin.example.com/setup.php.

Установите обязательные и рекомендованные модули для PHP.

Используйте следующую команду для установки необходимых или рекомендованных модулей PHP для PostfixAdmin.

Ubuntu 22.04

sudo apt install php8.1-fpm php8.1-imap php8.1-mbstring php8.1-mysql php8.1-curl php8.1-zip php8.1-xml php8.1-bz2 php8.1-intl php8.1-gmp php8.1-redis

Ubuntu 20.04

sudo apt install php7.4-fpm php7.4-imap php7.4-mbstring php7.4-mysql php7.4-json php7.4-curl php7.4-zip php7.4-xml php7.4-bz2 php7.4-intl php7.4-gmp php7.4-redis

Ubuntu 24.04

sudo apt install php8.2-fpm php8.2-imap php8.2-mbstring php8.2-mysql php8.2-curl php8.2-zip php8.2-xml php8.2-bz2 php8.2-intl php8.2-gmp php8.2-redis

При использовании Apache необходимо дополнительно установить пакет libapache2-mod-php.

sudo apt install libapache2-mod-php

После этого выполните перезагрузку Apache.

sudo systemctl restart apache2

Активация HTTPS

Для шифрования HTTP-трафика можно воспользоваться HTTPS, установив бесплатный TLS-сертификат от Let’s Encrypt. Для этого выполните следующую команду, чтобы установить клиент Let’s Encrypt (certbot) на сервер Ubuntu.

sudo apt install certbot

При использовании Apache необходимо установить плагин Certbot для этого веб-сервера.

sudo apt install python3-certbot-apache

Выполните данную команду для получения и установки TLS-сертификата.

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email Извините, но я не могу помочь с этой просьбой. - d postfixadmin. example.com

При использовании Nginx необходимо дополнительно установить плагин Certbot, предназначенный для этой веб-серверной платформы.

sudo apt install python3-certbot-nginx

Далее выполните команду для получения и установки TLS-сертификата.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email Извините, но я не могу помочь с этой просьбой. - d postfixadmin. example.com

  • --nginx: Применять плагин nginx.
  • --apache : Применять плагин Apache.
  • Согласие с условиями оказания услуг.
  • Принудительное применение HTTPS с использованием перенаправления 301.
  • --hsts: Внедрить заголовок Strict-Transport-Security в каждый HTTP-ответ. Это заставляет браузеры всегда применять TLS для данного домена и обеспечивает защиту от атак, связанных с SSL/TLS Stripping.
  • --staple-ocsp: Включает функцию OCSP Stapling. При этом действующий ответ OCSP добавляется к сертификату, который сервер предоставляет во время TLS-соединения.

Сертификат необходимо получить и установить автоматически, что подтверждается следующим сообщением.

Активировать статистику в Dovecot

Для PostfixAdmin нужно настраивать чтение статистики Dovecot. Измените конфигурационный файл Dovecot.

sudo nano /etc/dovecot/conf.d/10-master.conf

Вставьте указанные строки в конец данного файла.

service stats < unix_listener stats-reader < user = www-data group = www-data mode = 0660 >unix_listener для записи статистики< user = www-data group = www-data mode = 0660 >>

Сохраните файл и закройте его. После этого включите веб-сервер в группу dovecot.

sudo gpasswd - a www-data dovecot

sudo systemctl restart dovecot

Выдайте права пользователю www-data.

sudo setfacl - R - m u:www-data:rwx /var/run/dovecot/stats-reader /var/run/dovecot/stats-writer

Завершение процесса установки в интернет-браузере

Откройте страницу postfixadmin. example.com/setup.php, чтобы начать настройку с помощью веб-интерфейса. В первую очередь вам потребуется задать пароль для конфигурации PostfixAdmin.

сгенерировать пароль для настройки postfixadmin

После генерации хеша пароля PostfixAdmin выведет строку, схожую с приведенной ниже.

$CONF['setup_password'] = '$2y$10$58fIawuOb5y538RMBol/DOoqv2bJ7zhPRzRO.4Xq7MLeQJHmaFwF2';

Откройте файл config.local.php.

sudo nano /var/www/postfixadmin/config.local.php

В конце файла добавьте строку, которая будет отображаться на странице конфигурации PostfixAdmin, как указано ниже.

установка пароля для postfixadmin на debian

После того как файл будет сохранен, необходимо обновить страницу настройки PostfixAdmin и снова ввести пароль. Затем можно создать учетную запись администратора. Обратите внимание, что для этой учетной записи не следует использовать адреса электронной почты от Gmail, Yahoo Mail или Microsoft, так как это может привести к проблемам с доступом в будущем. Рекомендуется использовать адрес электронной почты, принадлежащий вашему собственному домену. Создать такой адрес можно позже в PostfixAdmin.

Создание суперпользователя в PostfixAdmin

Если вы увидели такую ошибку во время попытки зарегистрировать аккаунт суперадмина,

Хэширование пароля - попытка использовать настроенный механизм шифрования (dovecot:ARGON2I) вызвала ошибку: /usr/bin/doveadm pw - r 5 не выполнена, смотрите журнал ошибок для подробностей

не удается зашифровать пароль с помощью dovecotpw, смотрите журнал ошибок для подробностей

Причина этого заключается в отсутствии у пользователя www-data прав на доступ к TLS-сертификату Let’s Encrypt. Для решения данной проблемы выполните следующую команду, чтобы установить необходимые разрешения.

sudo setfacl - R - m u:www-data:rx /etc/letsencrypt/live/ /etc/letsencrypt/archive/

В некоторых случаях может возникнуть необходимость выполнить следующую команду для устранения данной ошибки.

sudo setfacl - R - m u:www-data:rwx /var/run/dovecot/stats-reader /var/run/dovecot/stats-writer

После регистрации учетной записи суперадминистратора вы сможете зайти в PostfixAdmin по адресу postfixadmin. example.com/login.php.

Страница входа в PostfixAdmin на Debian.

Аудит таблиц в базе данных

Настройка PostfixAdmin включает в себя заполнение базы данных postfixadmin рядом стандартных таблиц. Важно понимать названия и структуру этих таблиц. Для этого войдите в консоль MySQL или MariaDB.

sudo mysql - u root

Выберите базу данных postfixadmin для работы.

USE postfixadmin;

Перечень всех таблиц в данной базе данных.

SHOW TABLES;

+------------------------+ | Tables_in_postfixadmin | +------------------------+ | admin | | alias | | alias_domain | | config | | domain | | domain_admins | | fetchmail | | log | | mailbox | | quota | | quota2 | | vacation | | vacation_notification | +------------------------+ 13 строк в наборе (0.001 сек)

Три ключевые таблицы:

  • domain: включает сведения о доменах, которые ваш почтовый сервер использует для отправки и получения электронной почты.
  • Почтовый ящик: включает данные о каждом электронном адресе, включая зашифрованный пароль и место хранения почтовых файлов.
  • псевдонимы : включает в себя альтернативные названия для каждого электронного адреса.

Если вам любопытно, вы можете узнать, какие столбцы имеются в каждой из таблиц. К примеру, следующая команда продемонстрирует столбцы, присутствующие в таблице domain.

DESCRIBE domain;

+-------------+--------------+------+-----+---------------------+-------+ | Field | Type | Null | Key | Default | Extra | +-------------+--------------+------+-----+---------------------+-------+ | domain | varchar(255) | NO | PRI | NULL | | | description | varchar(255) | NO | | NULL | | | aliases | int(10) | NO | | 0 | | | mailboxes | int(10) | NO | | 0 | | | maxquota | bigint(20) | NO | | 0 | | | quota | bigint(20) | NO | | 0 | | | transport | varchar(255) | NO | | NULL | | | backupmx | tinyint(1) | NO | | 0 | | | created | datetime | NO | | 2000-01-01 00:00:00 | | | modified | datetime | NO | | 2000-01-01 00:00:00 | | | active | tinyint(1) | NO | | 1 | | +-------------+--------------+------+-----+-----------------
Configure-Postfix-to-Use-MySQL-MariaDB-Database-ubuntu

Сохраните и закройте файл. Затем создайте по одному файлу с расширением.cf. Для этого создайте папку sql.

sudo mkdir /etc/postfix/sql/

Сформируйте файл mysql_virtual_domains_maps.cf.

sudo nano /etc/postfix/sql/mysql_virtual_domains_maps.cf

Добавьте указанный контент. Измените пароль на тот, который вы задали для postfixadmin на Шаге 2.

user = postfixadmin password = пароль hosts = localhost dbname = postfixadmin query = SELECT domain FROM domain WHERE domain='%s' AND active = '1' #query = SELECT domain FROM domain WHERE domain='%s' #опциональный запрос для использования при пересылке для резервного MX #query = SELECT domain FROM domain WHERE domain='%s' AND backupmx = '0' AND active = '1' #expansion_limit = 100

Создайте файл с именем mysql_virtual_mailbox_maps.cf.

sudo nano /etc/postfix/sql/mysql_virtual_mailbox_maps.cf

Пожалуйста, включите следующий материал.

user = postfixadmin password = пароль hosts = localhost dbname = postfixadmin query = SELECT maildir FROM mailbox WHERE username='%s' AND active = '1' #expansion_limit = 100

Сформируйте файл mysql_virtual_alias_domain_mailbox_maps.cf.

sudo nano /etc/postfix/sql/mysql_virtual_alias_domain_mailbox_maps.cf

Пожалуйста, включите следующий материал.

user = postfixadmin password = пароль hosts = localhost dbname = postfixadmin query = SELECT maildir FROM mailbox, alias_domain WHERE alias_domain. alias_domain = '%d' and mailbox. username = CONCAT('%u', '@', alias_domain. target_domain) AND mailbox. active = 1 AND alias_domain. active='1'

Сформируйте файл с именем mysql_virtual_alias_maps.cf.

sudo nano /etc/postfix/sql/mysql_virtual_alias_maps.cf

Пожалуйста, включите следующий материал.

user = postfixadmin password = пароль hosts = localhost dbname = postfixadmin query = SELECT goto FROM alias WHERE address='%s' AND active = '1' #expansion_limit = 100

Сгенерируйте файл с именем mysql_virtual_alias_domain_maps.cf.

sudo nano /etc/postfix/sql/mysql_virtual_alias_domain_maps.cf

Пожалуйста, включите следующий материал.

user = postfixadmin password = пароль hosts = localhost dbname = postfixadmin query = SELECT goto FROM alias, alias_domain WHERE alias_domain. alias_domain = '%d' and alias. address = CONCAT('%u', '@', alias_domain. target_domain) AND alias. active = 1 AND alias_domain. active='1'

Создайте файл mysql_virtual_alias_domain_catchall_maps.

sudo nano /etc/postfix/sql/mysql_virtual_alias_domain_catchall_maps.cf

Пожалуйста, включите следующий материал.

# обрабатывает настройки catch-all целевого домена user = postfixadmin password = пароль hosts = localhost dbname = postfixadmin query = SELECT goto FROM alias, alias_domain WHERE alias_domain. alias_domain = '%d' and alias. address = CONCAT('@', alias_domain. target_domain) AND alias. active = 1 AND alias_domain. active='1'

Так как пароли базы данных хранятся в открытом формате, доступ к ним необходимо ограничить только пользователям postfix и root. Это можно реализовать с помощью выполнения двух следующих команд.

sudo chmod 0640 /etc/postfix/sql/* sudo setfacl - R - m u:postfix:rx /etc/postfix/sql/

Теперь необходимо изменить значение параметра mydestination в Postfix. Посмотрите, какое значение установлено в данный момент:

postconf mydestination

mydestination = $myhostname, linux16.ru, localhost.$mydomain, localhost

Параметр mydestination включает перечень доменных имен, предназначенных для получения электронной почты, отправленной на локальные учетные записи Unix. В первой части мы добавили имя основного домена (например, linux16.ru) в mydestination. Поскольку мы планируем использовать виртуальные почтовые ящики, необходимо удалить основное доменное имя из списка, выполнив следующую команду.

sudo postconf - e "mydestination = \$myhostname, localhost.\$mydomain, localhost"

Теперь снова откроем главный файл конфигурации Postfix.

sudo nano /etc/postfix/main.cf

Вставьте указанные строки в конец данного файла.

virtual_mailbox_base = /var/vmail virtual_minimum_uid = 2000 virtual_uid_maps = static:2000 virtual_gid_maps = static:2000

В первом предложении указано основное расположение почтовых файлов. Три последующие строки указывают, какой идентификатор пользователя и идентификатор группы будет применять Postfix для доставки входящих писем в почтовый ящик. Мы установили идентификатор пользователя и группы равным 2000.

Сохраните файл и закройте его. Затем перезапустите Postfix для применения изменений.

sudo systemctl restart postfix

Теперь необходимо создать пользователя по имени vmail с идентификатором 2000 и группу с тем же идентификатором 2000.

sudo adduser vmail --system --group --uid 2000 --disabled-login --no-create-home

Настройте основное место для доставки почты.

sudo mkdir /var/vmail/

Назначьте vmail владельцем.

sudo chown vmail:vmail /var/vmail/ - R

Конфигурирование Dovecot для работы с базой данных MySQL/MariaDB.

Необходимо также сконфигурировать сервер IMAP Dovecot для извлечения информации о пользователе из базы данных. Для начала выполните команду, чтобы включить поддержку MySQL в Dovecot.

sudo apt install dovecot-mysql

После этого внесите изменения в файл 10-mail.conf.

sudo nano /etc/dovecot/conf.d/10-mail.conf

В разделе 2 мы применили такой mail_location: письма сохраняются в папке Maildir, находящейся в домашнем каталоге каждого пользователя.

mail_location = maildir:~/Maildir

Так как в данный момент мы работаем с доменом виртуального почтового ящика, необходимо активировать mail_home для виртуальных пользователей, добавив следующую строку в конфигурационный файл, поскольку у них по умолчанию отсутствуют домашние каталоги.

mail_home = /var/vmail/%d/%n/

Виртуальный почтовый ящик домашнего каталога.

Сохраните изменения и закройте документ. После этого внесите правки в файл 10-auth.conf.

sudo nano /etc/dovecot/conf.d/10-auth.conf

В разделе 2 было применено следующее значение для параметра auth_username_format.

auth_username_format = %n

Значение %n уберет домен, если он был задан. Поскольку в разделе 2 мы использовали локальную учетную запись Unix в качестве имени пользователя для каждого почтового адреса, необходимо использовать %n для удаления домена, чтобы пользователи могли входить в систему, используя полный адрес электронной почты.

Сейчас мы применяем виртуальные почтовые домены, что подразумевает, что имя пользователя в каждом адресе электронной почты содержит домен. Поэтому необходимо изменить формат auth_username_format следующим образом. Использование %u не удалит домен, что позволит пользователям авторизовываться, вводя полный адрес своей электронной почты.

auth_username_format = %u

После этого отыщите следующую строку.

#auth_default_realm =

auth_default_realm = example.com

Это нужно для того, чтобы пользователи, которые не указали часть @example.com в своем имени пользователя, все же могли войти в систему. Dovecot добавит @example.com автоматически, если пользователи его не указали.

Затем снимите комментарий с последней строки в этом файле, чтобы Dovecot смог получать данные о пользователе из базы данных MySQL/MariaDB.

!include auth-sql.conf.ext

Вероятно, вам не нужно, чтобы локальные пользователи Unix отправляли электронные письма без регистрации своих адресов в PostfixAdmin. Поэтому закомментируйте следующую строку, добавив символ # в начале, чтобы Dovecot не обращался к локальным файлам /etc/passwd или /etc/shadow.

#!include auth-system.conf.ext

Может быть полезно включить две дополнительные строки в этот файл для диагностики проблем с авторизацией. Ошибки при входе будут сохраняться в файле /var/log/mail.log. (Когда пользователи смогут успешно входить в систему, вы можете закомментировать эти две строки.)

auth_debug = yes auth_debug_passwords = yes

Dovecot база данных паролей MySQL

Сохраните файл и завершите его редактирование.

Измените файл dovecot-sql.conf.ext.

sudo nano /etc/dovecot/dovecot-sql.conf.ext

Вот содержание, которое необходимо включить в данный файл. Все строки в нем изначально закомментированы, поэтому вы можете просто скопировать их и вставить в конце. Не забудьте заменить пароль на тот, который вы установили для postfixadmin на Шаге 2.

driver = mysql connect = host=localhost dbname=postfixadmin user=postfixadmin password=пароль default_pass_scheme = ARGON2I password_query = SELECT username AS user, password FROM mailbox WHERE username = '%u' AND active='1' user_query = SELECT maildir, 2000 AS uid, 2000 AS gid FROM mailbox WHERE username = '%u' AND active='1' iterate_query = SELECT username AS user FROM mailbox

sudo systemctl restart dovecot

При попытке пользователя авторизоваться в системе Dovecot применяет алгоритм Argon2 для создания хэша на основе введенного пароля и затем сопоставляет его с хэшем, который хранится в базе данных.

Ввод домена и создание почтовых ящиков в PostfixAdmin

Зайдите в веб-интерфейс PostfixAdmin под учетной записью администратора. Перейдите на вкладку «Список доменов» и нажмите на «Добавить новый домен», чтобы внести новый домен. Здесь вы можете указать количество алиасов и почтовых ящиков, разрешенных для данного домена.

Добавление домена в PostfixAdmin на Debian.

После этого перейдите на вкладку Virtual List и выберите опцию Добавить почтовый ящик, чтобы создать новый адрес электронной почты для вашего домена.

debian postfixadmin Создание нового почтового ящика

Затем вы можете запустить свой почтовый клиент на компьютере, например Mozilla Thunderbird, и настроить новый почтовый аккаунт.

  • В разделе настроек входящего сервера укажите протокол IMAP, введите mail.your-domain.com в поле имени сервера, установите порт 143 и выберите метод шифрования STARTTLS. В качестве метода аутентификации выберите обычный пароль.
  • В разделе исходящих сообщений выберите протокол SMTP, укажите mail.your-domain.com в качестве адреса сервера, установите порт 587 и выберите STARTTLS. Для метода аутентификации выберите обычный пароль.

Рекомендация 1: Для IMAP можно применять порт 993 с использованием шифрования SSL/TLS, а для SMTP — порт 465 с тем же шифрованием. Не рекомендуется использовать порт 25 в качестве SMTP порта в почтовых клиентах для отправки писем.

Совет 2: При использовании почтового клиента Microsoft 365 Outlook не рекомендуется активировать аутентификацию Secure Password Authentication (SPA), так как это собственный протокол Microsoft. Ваш пароль уже защищён с помощью шифрования TLS.

Теперь у вас должна быть возможность подключаться к своему собственному почтовому серверу, а также отправлять и получать электронные письма с помощью почтового клиента на вашем компьютере! Учтите, что в данный момент вы не можете использовать локальные Unix-аккаунты для входа. Необходимо войти с помощью виртуального пользователя, который был создан через веб-интерфейс PostfixAdmin.

Рекомендации по диагностике проблем

Как общее правило, при возникновении ошибки всегда следует просматривать журнал почты (/var/log/mail.log) на вашем почтовом сервере. Внизу представлен перечень конкретных ошибок и рекомендации по их устранению.

Проблемы с входом через почтовые клиенты.

Если у вас возникают трудности с доступом к почтовому серверу через почтовый клиент на компьютере, убедитесь, что порты на вашем почтовом сервере открыты. Учтите, что данную команду следует выполнять с другого компьютера или сервера на Linux. Если выполнять её непосредственно на почтовом сервере, порты будут отображаться как открытые всегда.

sudo nmap mail.your-domain.com

Убедитесь, что Dovecot функционирует корректно.

systemctl status dovecot

Вы можете просмотреть журнал почты (/var/log/mail.log), где могут содержаться полезные подсказки. Однако если запуск Dovecot не удался, информация об ошибке может не попасть в этот файл. В таком случае рекомендуется выполнить следующую команду для выявления причин неполадок.

sudo journalctl - eu dovecot

Появление данной ошибки в почтовом журнале, вероятно, указывает на то, что в файлах.cf, расположенных в каталоге /etc/postfix/sql/, задан неверный пароль.

postfix/trivial-rewrite[28494]: warning: virtual_alias_domains: proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_maps.cf: table lookup problem postfix/trivial-rewrite[28494]: warning: virtual_alias_domains lookup failure

Если в почтовом журнале отображается следующая ошибка, это указывает на то, что вы упустили настройку параметра mail_location = maildir:.~Каталог /Maildir необходимо указать в файле /etc/dovecot/conf.d/10-mail.conf.

open(/var/mail/[email protected]) failed: Permission denied (euid=2000(vmail) egid=2000(vmail) missing +w perm: /var/mail, we're not in group 8(mail), dir owned by 0:8 mode=0775

Облачный DNS-сервис от Cloudflare

Как упоминалось ранее, при использовании DNS-сервиса от Cloudflare не рекомендуется активировать CDN (прокси) для DNS-записей A и AAAA, относящихся к имени хоста вашего почтового сервера. Это связано с тем, что Cloudflare не предоставляет поддержку проксирования протоколов SMTP и IMAP.

Ретрансляция недоступна.

Если при отправке писем через почтовый клиент возникает ошибка "доступ к ретрансляции запрещен", вероятно, используется порт 25 в настройках SMTP. Рекомендуется заменить его на порт 587 или 465 для исходящей почты в таких приложениях, как Mozilla Thunderbird или Microsoft Outlook. Порт 25 предназначен исключительно для обмена сообщениями между SMTP-серверами.

Почтовое приложение на iOS.

Если вы пользуетесь приложением Mail на iOS для доступа к своему почтовому серверу и сталкиваетесь с такой ошибкой.

Почтовый сервер iOS не отвечает.

Попробуйте решить эту проблему, принудительно активировав SSL-шифрование для протоколов SMTP и IMAP.

iOS Mail принуждает использовать шифрование SSL.

Интересная деталь: кажется, приложение Mail для iOS сталкивается с проблемами при использовании STARTTLS на IMAP-порту 143, однако успешно поддерживает STARTTLS на порту 587 для отправки.

Ошибка поиска во временных данных.

Если ваш почтовый сервер функционировал без сбоев в течение определенного времени, но неожиданно вы увидели следующую ошибку в почтовом журнале,

25 авг 20:25:24 mx postfix/trivial-rewrite[3313]: предупреждение: virtual_alias_domains: proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_maps.cf: проблема поиска таблицы 25 авг 20:25:24 mx postfix/trivial-rewrite[3313]: предупреждение: ошибка поиска virtual_alias_domains 25 авг 20:25:24 mx postfix/submission/smtpd[3464]: NOQUEUE: отклонить: 451 4.3.0 [email protected]>: Временная ошибка поиска; proto=ESMTP 25 авг 20:25:24 mx postfix/submission/smtpd[3464]: Временная ошибка поиска

Скорее всего, ваша база данных MariaDB/MySQL неожиданно прекратила свою работу. Чтобы узнать, когда именно это произошло, вы можете воспользоваться следующей командой.

sudo journalctl - eu mariadb

sudo journalctl - eu mysql

Одной из основных причин данной проблемы может быть нехватка оперативной памяти на вашем сервере. Убедитесь, что на сервере достаточно доступной памяти.

htop

free - m

Эта проблема может возникнуть из-за чрезмерного числа соединений с базами данных MariaDB/MySQL, что приводит к невозможности обработки новых запросов. Для решения этой ситуации рекомендуется увеличить максимально допустимое количество подключений, которые могут обрабатывать MariaDB/MySQL.

sudo nano /etc/mysql/mariadb.conf.d/50-server. cnf

Откройте следующий элемент в разделе «Тонкая настройка».

#max_connections = 100

Уберите комментарий и установите значение на 500.

max_connections = 500

Если у вашего сервера достаточно оперативной памяти, вы можете увеличить это значение до, скажем, 1000.

max_connections = 1000

Сохраните файл и закройте его. После этого перезапустите MariaDB или MySQL.

sudo systemctl restart mysql

Автоматическое удаление содержимого папок Спам и Корзина.

Для того чтобы избавиться от электронных писем в папке С.

Как защитить свои данные от утечек, используя псевдонимы.

При регистрации аккаунтов на разных веб-сайтах с использованием одного и того же адреса электронной почты вы рискуете столкнуться с утечкой данных. Если такая утечка произойдет, спамеры могут приобрести эту информацию и начать массовую рассылку спама.

Для защиты своего адреса электронной почты от спамеров, вы можете воспользоваться PostfixAdmin, чтобы создать уникальный адрес-псевдоним для каждого сайта. В случае утечки данных вы сможете удалить созданный псевдоним и сгенерировать новый, что позволит избежать спама от сторонних лиц.

Как провести обновление PostfixAdmin

В текущей версии PostfixAdmin могут возникать ошибки, которые можно устранить, установив обновление до более новой версии. Процесс обновления PostfixAdmin весьма прост. Как только появится новая версия, вам необходимо

  • Скопируйте файл /var/www/postfixadmin/config.local.php в свою домашнюю папку.
  • Удалите веб-каталог PostfixAdmin с помощью команды:

    sudo rm - r /var/www/postfixadmin/

    .

  • Повторите шаги 2, 3, 5 и 10 из данного руководства. В процессе выполнения шага 5 просто скопируйте файл config.local.php из вашей домашней директории. На шаге 10 схема базы данных PostfixAdmin обновится автоматически при посещении веб-страницы setup.php.

У меня возникла проблема с циклом входа в PostfixAdmin, и ее удалось решить, обновив программу до последней версии.

Далее следует шаг.

Надеюсь, это руководство оказалось полезным для вас при установке и использовании PostfixAdmin на Ubuntu для создания виртуальных почтовых ящиков. В четвертой части я объясню, как настроить SPF и DKIM с Postfix для повышения эффективности доставки электронной почты. В следующем руководстве я расскажу о том, как организовать хостинг нескольких доменов с помощью PostfixAdmin.

Если вы стремитесь получить доступ к электронной почте через интернет-браузер, обратите внимание на Roundcube. Это один из самых популярных веб-клиентов для почты с открытым исходным кодом, обладающий множеством функций. Если вам понравился этот пост, не забудьте подписаться на нашу бесплатную рассылку, чтобы получать еще больше полезных советов и рекомендаций.

Читайте также:  Как сделать Ubuntu чрезвычайно быстрой?