Перейти к основному содержанию
 

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

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.

mail

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

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

http://192.168.1.11

hmailserver

Подготовка IIS

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

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

mail

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

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

extension=php_com_dotnet.dll

mail

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

session.save_path=C:\Windows\temp

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

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

mail

Редактируем файл 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 — все пользователи

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

mail

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

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.

mail

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

mail

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

mail

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

mail

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

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

mail

Работает

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

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

mail

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

mail

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

$hmail_config['rule_editing_level'] = 0;

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

mail

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

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

mail

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

$hmail_config['rule_editing_level'] = 1;

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

mail

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

Заключение

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

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

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

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

Теги

 

Похожие материалы

Добавляем уведомления виджету комментариев "В контакте"

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

Теги

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

Расскажу вам о наиболее оптимальном способе установки PHP на IIS. Ставить будем PHP 7.3.1 на IIS 10. IIS крутится на сервере с Windows Server 2016. Раньше я устанавливал PHP руками, помните, что для Windows нужно выбирать PHP NTS версию. Однако, теперь решил последовать совету с официального сайта. 

Теги