Найти тему

PHPWebAdmin — веб-админка для hMailServer

Почтовый сервер hMailServer поставляется вместе с веб-интерфейсом для администрирования. Можно подключить его к Apache или IIS и администрировать почтовый сервер удалённо через Интернет.

В документации к hMailServer есть инструкция по установке PHPWebAdmin:

https://www.hmailserver.com/documentation/latest/?page=howto_install_phpwebadmin

Я буду устанавливать PHPWebAdmin на веб-сервер IIS.

Файлы PHPWebAdmin

Переходим в директорию с установленным hMailServer. По умолчанию:

C:\Program Files (x86)\hMailServer

Видим там папку PHPWebAdmin.

-2

Копируем её в наш веб-сервер IIS, не буду подробно на этом останавливаться. Важно, чтобы к папке имел доступ пользователь, под которым работает IIS. Можно и не копировать, просто дать на папку права пользователю IIS.

Подключаем папку к IIS, настраиваем сайт. У меня сайт временный, настроен на 80-й порт локального IP адреса и должен открыться по ссылке:

http://192.168.1.11
-3

Подготовка IIS

Из названия админки понятно, что потребуется установить PHP. У меня есть инструкция для установки PHP 7.3.7:

Установка PHP 7.3.7 на IIS 10

-4

Включаем на сайте PHP и немного тюним PHP.ini.

hMailServer использует COM, в расширениях PHP подключаем расширение:

extension=php_com_dotnet.dll
-5

Включаем поддержку сессий, IIS должен иметь доступ к директории:

session.save_path=C:\Windows\temp

Конфиурация сайта

В папке сайта делаем копию файла config-dist.php и называем её config.php.

-6

Редактируем файл config.php. Указываем поть к корню сайта:

$hmail_config['rooturl'] = "http://192.168.1.11/";

Указываем язык. Английский по умолчанию:

$hmail_config['defaultlanguage'] = "english";

Если вы русифицировали hMailServer, то можно указать русский:

$hmail_config['defaultlanguage'] = "russian";

Указываем уровень доступа к сайту:

$hmail_config['rule_editing_level'] = 2;
  • 2 — только администраторы hMailServer
  • 1 — администраторы домена и администратор hMailServer
  • 0 — все пользователи

Пробуем открыть сайт.

-7

Получаем ошибку:

Failed to create COM object `hMailServer.Application': Access is denied.
This problem is often caused by DCOM permissions not being set.

Это нормально, настраиваем hMailServer COM API.

Настройка доступа к hMailServer COM API

https://www.hmailserver.com/documentation/latest/?page=howto_dcom_permissions

Запускаем dcomcnfg.exe.

-8

Открывается оснастка Component Services.

-9

Переходим в раздел Component Services → Computers → My Computer → DCOM Config. Находим hMailServer, правой кнопкой Properties.

-10

Во вкладке Security в блоке Launch and Activation Permissions устанавливаем радиокнопку в Customize и нажимаем Edit.

-11

Добавляем пользователя, под которым работает IIS (IIS_IUSRS) и добавляем ему права Local Launch и Local Activation. OK.

Ещё раз открываем сайт.

-12

Работает

Пользователи PHPWebAdmin и их права

Пробуем выполнить вход под администратором hMailServer.

-13

Всё работает. То же самое с русской локализацией.

-14

Конфигурирую сайт для доступа всем пользователям.

$hmail_config['rule_editing_level'] = 0;

Создаю учётную запись admin@internet-lab.ru и пробую войти под ней.

-15

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

Меняю пользователю права на администратора домена.

-16

Конфигурирую сайт для доступа всем администраторам доменов.

$hmail_config['rule_editing_level'] = 1;

Пробую войти под admin@internet-lab.ru.

-17

У пользователя появляются права на администрирование всего домена.

Заключение

Если нормально настроить IIS и сайт, прикрутить HTTPS, то можно использовать PHPWebAdmin для удалённого администрирования hMailServer.

Можно назначить администраторов домена и дать им возможность самим управлять учётными записями, псевдонимами и списками рассылки.

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

В 2008 году в PHPWebAdmin (hMailServer 4.x) были найдены уязвимости, которые позволяли удаленному пользователю получить доступ к важным данным и выполнить произвольный PHP сценарий на целевой системе с привилегиями Web сервера. В новой версии уязвимость исправлена.

Источник:
https://internet-lab.ru/hmailserver_phpwebadmin

💰 Поддержать проект

Если вам понравилась статья, то ставьте 👍🏻 каналу.
Пишите комментарии, задавайте вопросы, подписывайтесь.