Настройка почтового сервера с помощью PostfixAdmin

Установить PostfixAdmin в Ubuntu

Фото Геральта

Postfix Admin — это веб-интерфейс, позволяющий пользователям настраивать и управлять почтовым сервером на базе Postfix. С помощью Postfix Admin вы можете создавать и управлять несколькими виртуальными доменами, пользователями и псевдонимами.

Это первая публикация из серии «Настройка и конфигурирование почтового сервера» , в которой рассматривается создание необходимых записей DNS и объясняется, как установить и настроить Postfix Admin, Nginx с бесплатным сертификатом Let's Encrypt, PHP и MySQL.

Это руководство было написано для Ubuntu 16.04, однако те же шаги с небольшими изменениями должны работать на любой более новой версии Ubuntu .

Предпосылки

Для прохождения этой серии вам понадобится следующее:

Настройки DNS

Для работы вашей почтовой системы вам необходимо настроить следующие записи DNS:

  • Запись, указывающая полное доменное имя (имя хоста) вашей системы на IPv4-адрес вашего почтового сервера.
 mail.linuxgazette.ru. 3600 IN A   23.45.67.89 

Полное доменное имя состоит из двух частей: имени хоста и имени домена.

  • Запись MX, указывающая, какой почтовый сервер отвечает за приём сообщений от имени домена получателя. В нашем случае мы хотим, чтобы все письма, отправленные на адреса @linuxgazette.ru , принимались почтовым сервером mail.linuxgazette.ru .
 linuxgazette.ru.     3600 IN MX  0 mail.linuxgazette.ru. 
  • Запись SPF используется для проверки того, какие почтовые серверы одобрены для отправки почты от имени данного домена. В примере ниже мы одобряем почтовые серверы домена (mx), и если проверка SPF не пройдена, результатом будет «мягкий отказ» (~all):
 linuxgazette.ru.     3600 IN TXT "v=spf1 mx ~all" 

Конечно, вам необходимо заменить доменное имя и IP-адрес на ваше настоящее доменное имя и IP-адрес вашего почтового сервера.

Обратный DNS (PTR)

Обратный DNS (PTR) — это сопоставление IP-адреса с доменным именем, полная противоположность DNS, который сопоставляет доменные имена с IP-адресами.

Большинство почтовых серверов выполняют обратный DNS-поиск по IP-адресу, который пытается к ним подключиться, и могут не принимать электронные письма с сервера, если запись PTR не установлена.

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

Вы можете использовать команду dig , чтобы узнать обратный DNS заданного IP-адреса.

 dig -x 23.45.67.89
 23.45.67.89.in-addr.arpa domain name pointer mail.linuxgazette.ru.

Создать системного пользователя

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

Следующая команда создаст новую группу и пользователя с именем vmail и установит домашний каталог пользователя на /var/mail/vmail :

 sudo groupadd -g 5000 vmail sudo useradd -u 5000 -g vmail -s /usr/sbin/nologin -d /var/mail/vmail -m vmail

Все виртуальные почтовые ящики будут храниться в каталоге /var/mail/vmail .

Установка Nginx PHP и MySQL

Postfix Admin — это приложение на основе PHP. Для доступа к веб-интерфейсу PostfixAdmin необходимо установить веб-сервер и PHP.

Выполните следующую команду для установки Nginx, PHP и всех необходимых модулей PHP:

 sudo apt install nginx mysql-server php7.0-fpm php7.0-cli php7.0-imap php7.0-json php7.0-mysql php7.0-opcache php7.0-mbstring php7.0-readline

Во время установки вам будет предложено создать пароль root для MySQL.

Загрузите и настройте Postfix Admin

На момент написания статьи последней стабильной версией Postfix Admin является 3.1 .

Загрузите архив Postfix Admin с помощью следующей команды wget :

 VERSION=3.1 wget -q https://downloads.sourceforge.net/project/postfixadmin/postfixadmin/postfixadmin-${VERSION}/postfixadmin-${VERSION}.tar.gz

После завершения загрузки распакуйте архив :

 tar xzf postfixadmin-${VERSION}.tar.gz

Переместите исходные файлы Postfix Admin в каталог /var/www и создайте каталог templates_c (кэш Smarty):

 sudo mv postfixadmin-${VERSION}/ /var/www/postfixadmin rm -f postfixadmin-${VERSION}.tar.gz mkdir /var/www/postfixadmin/templates_c

И Nginx, и PHP-FPM работают под пользователем www-data , поэтому нам нужно изменить владельца /var/www/postfixadmin на этого пользователя:

 sudo chown -R www-data: /var/www/postfixadmin

Postfix Admin будет использовать базу данных MySQL для хранения информации о пользователях, доменах и конфигурации приложения.

Войдите в оболочку MySQL :

 mysql -u root -p

Создайте нового пользователя и базу данных MySQL с помощью следующих команд:

 CREATE DATABASE postfixadmin; GRANT ALL ON postfixadmin.* TO 'postfixadmin'@'localhost' IDENTIFIED BY 'P4ssvv0rD'; FLUSH PRIVILEGES;

Не забудьте сменить пароль ( P4ssvv0rD ) на более безопасный.

Вместо редактирования конфигурации Postfix Admin по умолчанию мы создадим новый файл с именем config.local.php , который перезапишет настройки приложения по умолчанию:

Откройте файл с вашим текстовым файлом:

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

Вставьте следующий PHP-код:

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

  php $CONF [ 'configured' ] = true ; $CONF [ 'database_type' ] = 'mysqli' ; $CONF [ 'database_host' ] = 'localhost' ; $CONF [ 'database_user' ] = 'postfixadmin' ; $CONF [ 'database_password' ] = 'P4ssvv0rD' ; $CONF [ 'database_name' ] = 'postfixadmin' ; $CONF [ 'default_aliases' ] = array ( 'abuse' => 'abuse@linuxgazette.ru' , 'hostmaster' => 'hostmaster@linuxgazette.ru' , 'postmaster' => 'postmaster@linuxgazette.ru' , 'webmaster' => 'webmaster@linuxgazette.ru' ); $CONF [ 'fetchmail' ] = 'NO' ; $CONF [ 'show_footer_text' ] = 'NO' ; $CONF [ 'quota' ] = 'YES' ; $CONF [ 'domain_quota' ] = 'YES' ; $CONF [ 'quota_multiplier' ] = '1024000' ; $CONF [ 'used_quotas' ] = 'YES' ; $CONF [ 'new_quota_table' ] = 'YES' ; $CONF [ 'aliases' ] = '0' ; $CONF [ 'mailboxes' ] = '0' ; $CONF [ 'maxquota' ] = '0' ; $CONF [ 'domain_quota_default' ] = '0' ; ?> 

Сохраните и закройте файл.

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

Затем выполните следующую команду, чтобы создать схему для базы данных Postfix Admin:

 sudo -u www-data php /var/www/postfixadmin/upgrade.php

После заполнения базы данных мы можем продолжить и создать нашего первого пользователя-суперадминистратора PostfixAdmin с помощью инструмента postfixadmin-cli .

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

 sudo bash /var/www/postfixadmin/scripts/postfixadmin-cli admin add superadmin@linuxgazette.ru --superadmin 1 --active 1 --password P4ssvv0rD --password2 P4ssvv0rD

Вывод должен выглядеть примерно так:

 Welcome to Postfixadmin-CLI v0.2 --------------------------------------------------------------- The admin superadmin@linuxgazette.ru has been added! ---------------------------------------------------------------

Не забудьте сменить пароль ( P4ssvv0rD ) для учетной записи суперадминистратора на более безопасный.

Установить бесплатный SSL-сертификат Let's Encrypt

Мы будем использовать SSL-сертификат для доступа к нашей установке Postfix Admin и включим шифрование Dovecot и Postfix SSL/TLS.

У нас есть руководство по установке SSL-сертификата Let's Encrypt . Самое важное здесь — сгенерировать SSL-сертификат для имени хоста вашего сервера (FQDN), в нашем случае mail.linuxgazette.ru .

После того как вы сгенерировали SSL-сертификат, следуя приведенной выше инструкции, отредактируйте блок сервера Nginx следующим образом:

/etc/nginx/sites-enabled/mail.linuxgazette.ru.conf

 server { listen 80 ; server_name mail.linuxgazette.ru ; include snippets/letsencrypt.conf ; return 301 https:// $host$request_uri ; } server { listen 443 ssl http2 ; server_name mail.linuxgazette.ru ; root /var/www ; ssl_certificate /etc/letsencrypt/live/mail.linuxgazette.ru/fullchain.pem ; ssl_certificate_key /etc/letsencrypt/live/mail.linuxgazette.ru/privkey.pem ; ssl_trusted_certificate /etc/letsencrypt/live/mail.linuxgazette.ru/chain.pem ; include snippets/ssl.conf ; include snippets/letsencrypt.conf ; location / { try_files $uri $uri/ /index.php ; } location /postfixadmin { index index.php ; try_files $uri $uri/ /postfixadmin/index.php ; } location ~ * .php $ { fastcgi_split_path_info ^(.+?.php)(/.*) $ ; if (!-f $document_root$fastcgi_script_name ) { return 404 ;} fastcgi_pass unix:/run/php/php7.0-fpm.sock ; fastcgi_index index.php ; include fastcgi_params ; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name ; } }

Перезагрузите службу Nginx , чтобы изменения вступили в силу:

 sudo systemctl reload nginx

На этом этапе вы сможете войти в установленную версию Postfix Admin по адресу https://mail.linuxgazette.ru/postfixadmin , используя учетную запись суперадминистратора, созданную ранее в этом руководстве.

Заключение

В этом руководстве вы установили Postfix Admin. В следующей части серии мы продолжим установку и настройку Postfix и Dovecot. Следите за новостями!

почтовый сервер postfixadmin postfix dovecot dns ssl ubuntu

Эта публикация является частью серии «Настройка и конфигурирование почтового сервера» .
Другие посты в этой серии:

Связанные руководства

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *