Usergate Mail Server
По подписке об изменениях статей на Wikipeadia пришло уведомление о статье
Usergate Mail Server компании Entensys. Являясь разработчиком первого отечественного почтового сервера, я конечно не мог удержаться от тестирования четвертого отечественного почтового сервера

И тут меня ждало разочарование. С первого вгляда на функционал, образцы протоколов и схему БД стало понятно, что Usergate Mail Server (UMS) либо испытывал очень сильное влияние бесплатного почтового сервера
hMailServer (HMS), либо просто является немного переработанной и локализованной версией этого сервера, причем не последней 5й, а 4й.
Авторы UMS эти подозрения отвергают (мой соответствующий комментарий на Wikipedia удалили), либо кто-то у них просто не в курсе, поэтому придётся привести доказательства заимствований.
При неудачной SMTP-авторизации (командами AUTH LOGIN...) UMS, также как HMS отвечает
535 Authentication failed. Restarting authentication process. Попробуйте найти еще хотя бы один SMTP-сервер с таким ответом. Разработчики UMS сами свой UMS не используют. Сервер на mx2.usergate.ru при неудачной авторизации отвечает "503 5.5.1 Error: authentication not enabled" (т.е. там скорее всего стоит Postfix).
В обработке остальных SMTP-команд также нет отличий между UMS и HMS. Я просто привёл самый характерный (многословный, лёгкий для поиска по исходникам и сайту HMS) пример.
IMAP
Подключаюсь к 143-му порту, ввожу тег и несуществующую команду "1 ZZZ". Ответ UMS:
BAD Unknown or NULL command также уникален и встречается кроме UMS только в HMS.
При неправильном IMAP-логине UMS отвечает
NO Invalid user name or password. Please use full email address as user name. — тоже уникальный ответ, ранее встречался только в HMS.
Журналы работы
Записи журналов работы HMS и UMS по-разному группируются в файлы, но сами записи имеют характерные записи времени и полнотекстовые пометки "SENT:" и "RECEIVED:", сильно отличаясь от традиционных для других серверов логов с ">" и "<", "S:" и "C:" или "IN" и "OUT". Странно, что UMS опять совпал с HMS, а не с каким-то другим сервером?
Схема БД
UMS поставляется вместе с
PostgreSQL и Apache (эти очевидные факты, отмеченные в статье про UMS на Wikipedia, разработчики отрицать, конечно, не стали). Интересно, как они объяснят практически полное совпадение схем БД (имён таблиц и наборов полей) UMS и HMS. Проще описать отличия этих схем, чем перечислить совпадения. Отличия в следующем:
- UMS вставляет в названия полей символ подчеркивания "_", чтобы сделать их более читабельными. Например, в HMS в таблице маршрутизации hm_routes есть поле routetreatsecurityaslocal. В UMS это поле называется ugm_route_treat_security_as_local. В HMS distributionlistrequireaddress, в UMS ugm_distribution_list_require_address. И т.д.
- В схеме UMS "domain" заменен на "handler". Т.е. поле "ugm_account_handler_id" вместо "accountdomainid" и т.д.
- Схема UMS соответствует 4й версии HMS. Аналогов таблиц, появившихся в 5й версии HMS, в UMS нет (hm_sslcertificates, hm_groups, hm_acl, ...). И эти отличия видимо уже не будут синхронизироваться, т.к. в UMS уже появились "параллельные", но независимые изменения схемы. Так в 5й версии HMS в учетные записи добавлены два поля "accountpersonfirstname(60)" и "accountpersonlastname(60)", а в UMS три поля "ugm_account_first_name(255)", "ugm_account_middle_name(255)", "ugm_account_last_name(255)". Еще сильнее отличаются таблицы, относящиеся к антиспамам.
Выводы
Налицо форк от
hMailServer v4 какое-то время назад и дальнейшее — уже независимое — развитие Usergate Mail Server. Выбор v4, а не v5 объясняется очевидно не только тем, что v5 появилась относительно недавно (когда разработчикам UMS уже было поздно метаться), но и тем, что исходные тексты HMS v5 не были опубликованы — автор изменил лицензию! А вот исходные тексты версии 4 доступны до сих пор. Более того, лицензия этих исходников — GPL. Таким образом, если исходные тексты HMS использовались при разработке UMS (а отпираться после приведенных выше фактов, по-моему, бессмысленно), разработчики UMS в соответствии с GPL
обязаны опубликовать исходные тексты UMS, как производного продукта. Собственно ради этого вывода я опубликовал эту небольшую заметку.
Если сами разработчики не уважают лицензии софта коллег, то как можно ожидать законопослушности от пользователей?