Preguntes Freqüents - FAQ

0. Начальная подготовка почтового сервера: установка LEMP + postfixadmin

Почтовый сервер на на базе  Ubuntu Server 20.04

 

Данный опус является частью единого цикла заметок o CLI.  Для его написания использовалось множество различных источников (скилы крутых специалистов, статьи с тематических сайтов, техническая документация, комментарии с форумов и социальных сетей и т. д и т. п.).  К сожалению, указать все источники точно не представляется  возможным!  По этому,  в конце заметки,  будет указана ссылка только  на основной источник.  Материалы,  использованные для написания заметки, изменялись автором под конкретную задачу! Вам, скорее всего, тоже  придется поступить аналогичным образом для получения желаемого результата) 

 

Нужна консультация или помощь в решении IT вопроса? Пожалуйста, в таком случае  заполните форму запроса на Sytes.ru!

В статье предполагается, что сервер терминалов уже прошел предварительную настройку и работает. Все скриншоты соответствуют Windows Server 2016.

В данной инструкции выполнена настройка полноценного почтового сервера на Linux Ubuntu Server (протестирована для версий 20.04 и 22.04). Список всех особенностей и возможностей:

  • Поддержка шифрования;
  • Хранение почты на сервере;
  • Защита от СПАМа и вирусов;
  • Почтовая система на базе Postfix;
  • Поддержка виртуальных доменов;
  • Хранение части настроек в MariaDB;
  • Доступ к почте с помощью веб-интерфейса (Roundcube);
  • Подключение к почтовым ящикам по POP3 и IMAP (Dovecot);
  • Возможность управления почтовыми ящиками с помощью PostfixAdmin.
Используемые термины: PostfixPOP3SMTPIMAPMariaDBUbuntuPostfixAdminDovecotRoundcube

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

И так, данная инструкция написана под систему Linux Ubuntu Server. Предварительно, выполним следующие действия.

Обновляем систему:

apt update && apt upgrade

Задаем правильное имя серверу — это важный шаг, так как большинство антиспам систем выполняют проверки, обращаясь к серверу по имени в ожидании ответа:

hostnamectl set-hostname relay.sytes.ru

* необходимо указать FQDN-имя, которое будет доступно из глобальной сети. В данном примере указано relay.sytes.ru.

Устанавливаем пакет для синхронизации времени:

apt install chrony

Задаем временную зону (в данном примере московское время):

timedatectl set-timezone Europe/Moscow

* чтобы получить список всех возможных зон, вводим timedatectl list-timezones .

Разрешаем сервис для обновления времени:

systemctl enable chrony

Настройка безопасности

Заранее открываем порты на брандмауэре с помощью iptables:

iptables -I INPUT 1 -p tcp --match multiport --dports 25,110,143,465,587,993,995 -j ACCEPT

iptables -I INPUT 1 -p tcp --match multiport --dports 80,443 -j ACCEPT

* где мы откроем следующие порты:

  • 25 — стандартный SMTP через STARTTLS;
  • 110 — стандартный POP3 через STARTTLS;
  • 143 — стандартный IMAP через STARTTLS;
  • 465 — защищенный SMTP через SSL/TLS;
  • 587 — защищенный SMTP через STARTTLS;
  • 993 — защищенный IMAP через SSL/TLS;
  • 995 — защищенный POP3 через SSL/TLS.
  • 80 — HTTP для порталов Postfixadmin и Roundcube;
  • 443 — защищенный HTTPS для порталов Postfixadmin и Roundcube;

Для сохранения правил установим пакет:

apt install iptables-persistent

И выполняем команду:

netfilter-persistent save

 Настройка веб-сервера: NGINX + PHP + MariaDB

Система управления PostfixAdmin работает как веб-приложение, разработанное на PHP, а информацию хранит в базе данных. В нашем примере будет использоваться веб-сервер на NGINX, а база данных — MariaDB.

Установка NGINX

Устанавливаем nginx командой:

apt install nginx

Разрешаем автозапуск сервиса:

systemctl enable nginx

Проверяем работоспособность веб-сервера, обратившись к нему в браузере по адресу http://<IP-адрес сервера>. Если видим заголовок «Welcome to nginx!», NGINX настроен верно.

PHP + PHP-FPM + NGINX

Устанавливаем php и php-fpm:

apt install php php-fpm

* в данном примере будет установлена нативная версия php, например, для Ubuntu 20.04 это php 7.4, для Ubuntu 22.04 — 8.1. Если необходимо установить конкретную версию, смотрим инструкцию Установка разных версий PHP на Linux Ubuntu.

Настраиваем NGINX:

vi /etc/nginx/sites-enabled/default

В разделах http - server указываем, чтобы первым индексным файлом был index.php, а также добавляем настройку для обработки запросов php (location):

server {
        listen 80 default_server;
        listen [::]:80 default_server;
        ...

        index index.php ...
        ...

        location ~ \.php$ {
            set $root_path /var/www/html;
            fastcgi_pass unix:/run/php/php7.4-fpm.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $root_path$fastcgi_script_name;
            include fastcgi_params;
            fastcgi_param DOCUMENT_ROOT $root_path;
        }
}

* где /var/www/html — каталог для размещения данных nginx по умолчанию; /run/php/php7.4-fpm.sock — путь до сокет-файла php-fpm (обратите внимание, что точное значение зависит от используемой вервии php).

Разрешаем автозапуск php-fpm:

systemctl enable php7.4-fpm

* где php7.4-fpm зависит от используемой версии php, которую можно посмотреть командой php -v.

Перезапускаем nginx: 

systemctl restart nginx

Для проверки, создаем индексный файл в директории сайта со следующим содержимым:

vi /var/www/html/index.php

<?php phpinfo(); ?>

Открываем сайт в браузере по его IP-адресу. На открывшейся странице мы должны увидеть подробную информацию по php:

Результат отработки phpinfo

MariaDB

Устанавливаем сервер баз данных следующей командой:

apt install mariadb-server

Включаем автозапуск сервиса баз данных:

systemctl enable mariadb

Задаем пароль для пользователя sql root:

mysqladmin -u root password

Установка и настройка PostfixAdmin

Устанавливаем дополнительные компоненты для PHP:

apt install php-mysql php-mbstring php-imap

Для применения установленных пакетов, перезапускаем обработчик скриптов:

systemctl restart php7.4-fpm

Скачиваем PostfixAdmin:

wget https://sourceforge.net/projects/postfixadmin/files/latest/download -O postfixadmin.tar.gz

В директории сайтов nginx создаем каталог для postfixadmin и распаковываем в него архив:

mkdir /var/www/html/postfixadmin

tar -C /var/www/html/postfixadmin -xvf postfixadmin.tar.gz --strip-components 1

Создаем каталог templates_c внутри папки портала (без него не запустится установка):

mkdir /var/www/html/postfixadmin/templates_c

* в противном случае, при попытке зайти в панель управления после ее установки мы получим ошибку ERROR: the templates_c directory doesn't exist or isn't writeable for the webserver.

Задаем права на каталог:

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

* несмотря на то, что мы используем веб-сервер nginx, php-fpm по умолчанию, запускается от пользователя www-data.

Создаем базу данных postfix и учетную запись в mariadb:

mysql -u root -p

> CREATE DATABASE postfix DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

* где postfix — имя базы.

> GRANT ALL ON postfix.* TO 'postfix'@'localhost' IDENTIFIED BY 'postfix123';

* где postfix — имя учетной записи; postfix123 — пароль; localhost разрешает подключение только с локального сервера.

Выходим из командной оболочки MariaDB:

> \q

Создаем конфигурационный файл postfixadmin:

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

* в предыдущих версиях использовался файл config.inc.php. В новых версиях его не рекомендуется править, а использовать config.local.php, который переопределяет настройки.

И добавляем следующее:

<?php

$CONF['configured'] = true;
$CONF['default_language'] = 'ru';
$CONF['database_password'] = 'postfix123';
$CONF['emailcheck_resolve_domain']='NO';

?>

* где configured говорит приложению, что администратор закончил его конфигурирование; default_language — используемый язык по умолчанию; database_password — пароль для базы данных, который мы задали на предыдущем шаге; emailcheck_resolve_domain — задает необходимость проверки домена при создании ящиков и псевдонимов.

Запускаем браузер и вводим адрес http://<IP-адрес сервера>/postfixadmin/public/setup.php — откроется страница для установки PostfixAdmin. 

Задаем дважды пароль установки и генерируем хэш, кликнув по Generate setup_password hash:

Вводим пароль для установки и генерируем хэш

После копируем хэш, который появится под кнопкой:

Так выглядит хэш PostfixAdmin

Открываем конфигурационный файл:

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

И добавляем строчку:

...
$CONF['setup_password'] = '$2y$10$D...R32';

* где '$2y$10$D...R32' — скопированный хэш.

Перезагружаем страницу http://<IP-адрес сервера>/postfixadmin/public/setup.php — теперь у нас появится форма для ввода нашего пароля, созданного на предыдущем этапе. Вводим его и кликаем по Login with setup_password:

Форма для входа с паролем установки

Будет выполнена установка PostfixAdmin.

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

После установки в нижней части страницы должна быть форма добавления суперпользователя — вводим данные:

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

* где Setup password — пароль, который мы ввели на предыдущей странице; Админ — учетная запись для входа в панель управления PostfixAdmin; Пароль — новый пароль для создаваемой учетной записи.

Установка завершена. Переходим в браузере на страницу http://<IP-адрес сервера>/postfixadmin/public/login.php

Вводим логин и пароль для созданного пользователя. Мы должны войти в postfix.admin.

Однако, конкретно, в моем случае, пользователь не создавался при установке системы и необходимо было создать администратора вручную. Если это потребуется, в консоли сервера подключаемся к СУБД:

mysql -uroot -p

Переходим к использованию базы postfix:

> use postfix

Добавляем администратора запросом:

> INSERT INTO admin (`username`, `password`, `superadmin`, `active`) VALUES ('root@dmosk.ru', '$1$1b7ff416$/KKYqdyAd3viA3.PNu5hh/', '1', '1');

Выходим из sql-оболочки:

> quit

Теперь переходим на страницу http://<IP-адрес сервера>/postfixadmin/public/login.php вводим логин root@dmosk.ru и пароль qwe12345 — мы должны оказаться в системе управления почтой. Первым делом, переходим в Список админов - Новый админ:

Переход к созданию нового администратора

Создаем своего пользователя. После чего, можно удалить того, что создали через командную строку.

#Для дальнейшей настройки нужно установить почтовый сервер POSTFIX, продолжение тут...

 

Если у вас есть профессиональный интерес в расширении данной статьи – заполните форму запроса!

Cпасибо автору!

Заметка распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.

 

     Источник:

Конец! 

  • postfixadmin
  • 0 Els usuaris han Trobat Això Útil
Ha estat útil la resposta?

Articles Relacionats

1. Установка и настройка Postfix

Почтовый сервер на на базе  Ubuntu Server 20.04  Нужна консультация или помощь в...

2. Устанавливаем и настраиваем Roundcube Webmail

Почтовый сервер на на базе  Ubuntu Server 20.04   Данный опус является...

3. Postfix отправка с разных доменов от разных IP-адресов

Предположим, что у нас есть два домена dmosk.ru и test.dmosk.ru и почтовый сервер, с которого...