Email Address
Info@themis.com
Phone Number
Fax: 001 (407) 901-6400
В данной инструкции выполнена настройка полноценного почтового сервера на Linux Ubuntu Server (протестирована для версий 24.04). Список всех особенностей и возможностей:
Ubuntu Server 24.04
И так, данная инструкция написана под систему Linux Ubuntu Server. Предварительно, выполним следующие действия.
Авторизируемся под администратором:
Обновляем систему:
Задаем правильное имя серверу — это важный шаг, так как большинство антиспам систем выполняют проверки, обращаясь к серверу по имени в ожидании ответа:
* необходимо указать FQDN-имя, которое будет доступно из глобальной сети. В данном примере указано mail.alfafenix.ru.
Устанавливаем пакет для синхронизации времени:
Задаем временную зону (в данном примере Томское время):
* чтобы получить список всех возможных зон, вводим timedatectl list-timezones.
Разрешаем сервис для обновления времени:
Заранее открываем порты на брандмауэре с помощью iptables:
* где мы откроем следующие порты:
* где:
Для сохранения правил установим пакет:
И выполняем команду:
Система управления PostfixAdmin работает как веб-приложение, разработанное на PHP, а информацию хранит в базе данных. В нашем примере будет использоваться веб-сервер на NGINX, а база данных — MariaDB.
Устанавливаем nginx командой:
Разрешаем автозапуск сервиса:
Проверяем работоспособность веб-сервера, обратившись к нему в браузере по адресу http://<IP-адрес сервера>. Если видим заголовок «Welcome to nginx!», NGINX настроен верно.
Устанавливаем php и php-fpm:
* в данном примере будет установлена нативная версия php, например, для Ubuntu 20.04 это php 7.4, для Ubuntu 22.04 — 8.1, для Ubuntu 24.04 — 8.3. Если необходимо установить конкретную версию, смотрим инструкцию Установка разных версий PHP на Linux Ubuntu.
Посмотрим версию установленной php:
Для дальнейшего удобства, создадим переменную:
* где 8.3 — версия установленного в системе PHP.
Настраиваем NGINX:
В разделах 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/php8.3-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/php8.3-fpm.sock — путь до сокет-файла php-fpm (обратите внимание, что точное значение зависит от используемой вервии php).
Разрешаем автозапуск php-fpm:
Перезапускаем nginx:
Для проверки, создаем индексный файл в директории сайта со следующим содержимым:
<?php phpinfo(); ?>
Открываем сайт в браузере по его IP-адресу. На открывшейся странице мы должны увидеть подробную информацию по php:
* на странице будет версия PHP, которая соответствует установленному интерпретатору вашей системы.
Устанавливаем сервер баз данных следующей командой:
Включаем автозапуск сервиса баз данных:
Задаем пароль для пользователя sql root:
Устанавливаем дополнительные компоненты для PHP:
Для применения установленных пакетов, перезапускаем обработчик скриптов:
Заходим на страницу релизов проекта PostfixAdmin в Github и смотрим последнюю версию программного обеспечения. На момент обновления инструкции это было 3.3.13
. Для ее загрузки выполняем команду:
В директории сайтов nginx создаем каталог для postfixadmin и распаковываем в него архив:
Создаем каталог templates_c
внутри папки портала (без него не запустится установка):
* в противном случае, при попытке зайти в панель управления после ее установки мы получим ошибку: ERROR: the templates_c directory doesn't exist or isn't writeable for the webserver.
Задаем права на каталог:
* несмотря на то, что мы используем веб-сервер nginx
, php-fpm
по умолчанию, запускается от пользователя www-data
.
Подключаемся к СУБД MySQL:
Создаем базу данных postfix:
* где postfix — имя базы.
Создаем учетную запись в mariadb и даем ей доступ к созданной базе:
* где postfix — имя учетной записи; postfix123 — пароль; localhost разрешает подключение только с локального сервера.
... нужно сделать более сложный пароль (добавить большую букву и спецсимвол).
Выходим из командной оболочки MariaDB:
Создаем конфигурационный файл postfixadmin:
* в предыдущих версиях использовался файл 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:
После копируем хэш, который появится под кнопкой:
Открываем конфигурационный файл:
И добавляем строчку:
<?php
$CONF['configured'] = true;
$CONF['default_language'] = 'ru';
$CONF['database_password'] = 'postfix123';
$CONF['emailcheck_resolve_domain']='NO';$CONF['setup_password'] = '$2y$10$D...R32';
?>
* где '$2y$10$D...R32' — скопированный хэш.
Перезагружаем страницу http://<IP-адрес сервера>/postfixadmin/public/setup.php — теперь у нас появится форма для ввода нашего пароля, созданного на предыдущем этапе. Вводим его и кликаем по Login with setup_password:
Будет выполнена установка PostfixAdmin.
Если в процессе установки система выведет ошибки, необходимо самостоятельно с ними разобраться. Как правило, они могут сводиться к отсутствию необходимых пакетов, которых может не оказаться в системе по умолчанию.
Когда вы увидите такие предупреждения то не обращайте на них внимания, это из-за того что у нас не используются эти базы данных.
После установки в нижней части страницы должна быть форма добавления суперпользователя — вводим данные:
* где Setup password — пароль, который мы ввели на предыдущей странице;
Админ — учетная запись для входа в панель управления PostfixAdmin;
Пароль — новый пароль для создаваемой учетной записи.
Пароль установки (Setup password) и пароль администратора (Пароль) должны отличаться. В противном случае, система не будет принимать последний.
Установка завершена. Переходим в браузере на страницу http://<IP-адрес сервера>/postfixadmin/public/login.php
Вводим логин и пароль для созданного пользователя. Мы должны войти в postfixadmin.
Я подхожу к каждой проблеме с учетом трех основных элементов: стратегического мышления, креативных решений и доказанных результатов.