Управление паролями в Zimbra Collaboration Suite Open-Source Edition

    Управление паролями всегда являлось одной из важнейших проблем, связанных с безопасной эксплуатацией информационных систем. Возможность безопасного хранения  и быстрой смены паролей для множества учетных записей, возможность для пользователей безопасно сбросить забытый пароль, а также возможность безопасно сбросить пароль администратора — все эти функции не менее важны, чем парольная политика безопасности, о которой мы рассказывали ранее. В данной статье мы разберемся в том, как эти функции реализованы в Zimbra OSE.



    Смена пароля пользователя и глобального администратора

    Пароль глобального администратора задается при установке Zimbra OSE и впоследствии может быть изменен в настройках веб-клиента. Пароль пользователя изначально задается при создании учетной записи, однако администратор может включить принудительную смену пароля при первом входе пользователя в веб-клиент, чтобы пользователь не забыл установить собственный пароль.

    На тот случай, если пользователь забудет свой пароль, в Zimbra OSE предусмотрена функция восстановления пароля. Данная функция, если она включена администратором, позволяет пользователю указать резервный почтовый ящик, на который придет временный код подтверждения. С помощью этого одноразового кода пользователь сможет попасть в веб-клиент Zimbra OSE и изменить свой пароль.

    Однако, если администратор вдруг забыл пароль от своей учетной записи и из-за этого не может войти в веб-клиент, чтобы изменить пароль, он может воспользоваться атрибутом setPassword или просто sp в командной строке. Например, команда zmprov sp admin@company.ru qwerty позволяет изменить пароль администратора на qwerty без входа в веб-клиент Zimbra OSE. Эта же команда может использоваться для смены пароля любого другого пользователя.

    Отметим также, что администратору недоступна функция просмотра пароля пользователя. Это ограничение связано с тем, что Zimbra OSE в принципе не хранит пароли пользователей в открытом виде. Вместо этого Zimbra OSE хранит лишь «соленые» хэши паролей и при попытке входа сравнивает хэш введенного пользователем пароля с тем, что хранится в LDAP-сервере.

    Смена пароля при аутентификации через AD

    В случае использования AD для аутентификации пользователей, пароли также не хранятся на сервере. Вместо этого Zimbra OSE просто передает AD введенные пользователем данные и получает ответ о том, аутентифицирована эта учетная запись или нет. И поскольку все данные учетной записи хранятся на другом сервере, при использовании внешней AD обычно рекомендуется отключать функцию самостоятельной смены пароля в веб-клиенте Zimbra OSE.

    Однако есть способ совместить аутентификацию пользователей через AD с возможностью самостоятельной смены пароля пользователями. Сделать это позволяет расширение под названием Active Directory Change Password. Оно изменяет функциональность кнопки смены пароля в веб-клиенте Zimbra OSE таким образом, чтобы менялся пароль в AD. 

    Расширение достаточно легко устанавливается и работает следующим образом:

    • Пользователь нажимает на кнопку смены пароля
    • Вводит пароль
    • Расширение определяет DN пользователя
    • Осуществляет поиск во внешнем сервере AD
    • Вносит изменения в пароль учетной записи по защищенному соединению

    Установка расширения осуществляется в командной строке с помощью следующих команд:
     
     mkdir -p /opt/zimbra/lib/ext/adpassword
      wget https://github.com/Zimbra-Community/ADPassword/raw/master/out/artifacts/ADPassword_jar/ADPassword.jar -O /opt/zimbra/lib/ext/adpassword/adPassword.jar
      su zimbra
      zmprov md domain.ext zimbraAuthLdapBindDn "%u@company.ru"
      zmprov md domain.ext zimbraAuthLdapSearchBase «CN=Users,DC=DOMAIN,DC=EXT»
      zmprov md domain.ext zimbraAuthLdapSearchBindDn «CN=serviceAccount,CN=Users,DC=DOMAIN,DC=EXT»
      zmprov md domain.ext zimbraAuthLdapSearchBindPassword "*********"
      zmprov md domain.ext zimbraAuthLdapSearchFilter "(samaccountname=%u)"
      zmprov md domain.ext zimbraAuthLdapURL «ldaps://ad.company.ru:636»
      zmprov md domain.ext zimbraExternalGroupLdapSearchBase «CN=Users,DC=DOMAIN,DC=EXT»
      zmprov md domain.ext zimbraExternalGroupLdapSearchFilter "(samaccountname=%u)"
      zmprov md domain.ext zimbraAuthMech «ad»
      zmprov md domain.ext zimbraAuthMechAdmin «ad»
      zmprov md domain.ext zimbraPasswordChangeListener ADPassword
      zmprov gd domain.ext | grep -i ldap | grep -v Gal
      zmprov gd domain.ext | grep -i zimbraPasswordChangeListener
      zmprov md domain.ext zimbraAuthFallbackToLocal FALSE
      zmcontrol restart

    Кроме того, если ваши серверы Zimbra OSE и Active Directory используют разные SSL-сертификаты, вам следует добавить сертификат AD в список доверенных на сервере Zimbra OSE. Если же обе информационные системы используют один и тот же сертификат, этот шаг можно пропустить.

    Таким образом, после установки данного расширения ваши пользователи будут иметь возможность изменить свой пароль прямо в веб-клиенте Zimbra OSE даже при использовании аутентификации с помощью AD.

    Массовый сброс паролей

    Вполне допустимы ситуации, при которых вам может понадобиться быстро сбросить пароли у большого числа пользователей Zimbra OSE. В том случае, если число пользователей достаточно велико, сброс паролей вручную займет много времени, что может быть просто неприемлемым в критической ситуации. Оптимизировать выполнение этой задачи поможет скрипт, который автоматически может сбросить пароли пользователей как отдельного домена, так и целого почтового сервера.

    Для примера сбросим пароли всех пользователей домена company.ru. Для этого войдем на сервер и выполним команду zmprov -l gaa company.ru > /tmp/domainusers.txt. В результате исполнения этой команды создастся текстовый файл domainusers.txt, в котором будут перечислены все пользователи указанного нами домена. Если в данной команде не указывать домен, в текстовый файл запишутся все учетные записи на данном сервере.

    После этого можно убрать из полученного текстового файла все системные учетные записи, вроде galsync или spam, а также тех пользователей, пароль которых не будет сбрасываться. Когда файл готов, можно запустить следующий скрипт:

    for i in `cat /tmp/domainusers.txt`; do newpass=«Z1mBr@`openssl rand -base64 12`0a» && /opt/zimbra/bin/zmprov sp $i $newpass && echo $i  $newpass  >> newlogin.txt && echo $i && sleep 5s; done

    Результатом выполнения этого скрипта станет файл newlogin.txt с новыми паролями учетных записей. Рекомендуем как можно скорее сохранить его в безопасном месте и удалить данный файл с сервера. После этого можно сообщить пользователям их новые пароли, чтобы они могли продолжить работу в Zimbra OSE.

    Отдельный пароль для мобильных устройств

    Еще одной интересной функцией, которая становится доступной после установки набора расширений Zextras Suite для Zimbra OSE является отдельный пароль для входа в почтовый ящик с мобильного устройства. Иными словами, для учетной записи, использующей свою учетную запись на мобильном устройстве, создается дополнительный пароль, с помощью которого он может осуществить синхронизацию своего устройства с почтовым ящиком, но не может войти в веб-клиент Zimbra OSE. Эта функция позволяет значительно повысить безопасность использования электронной почты вне офиса, так как мобильное устройство может быть скомпрометировано или даже похищено, а функция мобильного пароля поможет предотвратить попадание настоящего пароля учетной записи в руки злоумышленников.


    Создать пароль для мобильных устройств достаточно просто. Сделать это можно как в консоли администрирования с помощью плагина Zextras, так и в командной строке. Так, например, с помощью команды zxsuite mobile setAccountMobilePassword manager@company.ru Z1mBr@ вы зададите пользователю manager@company.ru пароль Z1mBr@. С помощью команды zxsuite mobile getAccountMobilePassword manager@company.ru вы можете посмотреть мобильный пароль пользователя manager@company.ru, а с помощью команды zxsuite mobile unsetAccountMobilePassword manager@company.ru вы можете вовсе убрать мобильный пароль у указанного пользователя. 

    По всем вопросам, связанным c Zextras Suite вы можете обратиться к Представителю компании «Zextras» Екатерине Триандафилиди по электронной почте ekaterina.triandafilidi@zextras.com
    Zextras
    Цифровое рабочее место Zextras на базе Zimbra OSE

    Комментарии 0

    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

    Самое читаемое