Надежные и постоянно меняющиеся пароли — основа защиты учетных записей от взлома. Именно поэтому надежная парольная политика безопасности — это первое, что необходимо настроить администратору почтового сервера Carbonio, чтобы повысить уровень защиты учетных записей на сервере. Второе необходимое действие — это обеспечение неукоснительного соблюдения требований парольной политики всеми пользователями. В данной статье мы расскажем о том, как настроить парольную политику безопасности в Carbonio и как добиться ее выполнения пользователями.
Ключевыми моментами надежной парольной политики являются повышенные требования к надежности пароля и к периодичности его замены. Carbonio позволяет администратору не только настроить эти параметры, но и автоматизировать контроль за их соблюдением пользователями. Настройка парольной политики безопасности доступна как пользователям бесплатной Carbonio Community Edition, так и коммерческой версии Carbonio.
Настраивать парольную политику безопасности можно как для отдельных пользователей, так и для целых классов обслуживания. Сами настройки можно менять в графической консоли администратора и в командной строке Carbonio.
Для настройки парольной политики класса обслуживания перейдите в Главная — Настройка — Класс обслуживания и дважды кликните на нужном вам Классе. В открывшемся окне выберите раздел “Дополнительно” и прокрутите настройки до секции “Пароль”.
Для настройки парольной политики отдельного пользователя перейдите в Главная — Управение — Учетные записи и дважды кликните на нужной вам учетной записи. В открывшемся окне выберите раздел “Дополнительно” и прокрутите настройки до секции “Пароль”.
Для настройки доступны следующие параметры:
-
Предотвратить смену пароля пользователем.
-
Минимальная длина пароля.
-
Максимальная длина пароля.
-
Минимальное количество знаков верхнего регистра.
-
Минимальное количество знаков нижнего регистра.
-
Минимальное количество знаков препинания.
-
Минимальное количество цифр.
-
Минимальное количество цифр или знаков препинания.
-
Минимальное время жизни пароля (дни).
-
Максимальное время жизни пароля (дни).
-
Минимальное количество уникальных паролей.
-
Запрет на словарные пароли.
В командной строке эти настройки можно поменять при помощи команд zmprov modifyAccount или zmprov modifyCOS и представлены следующими атрибутами:
-
zimbraFeatureChangePasswordEnabled
-
zimbraPasswordEnforceHistory
-
zimbraPasswordMaxAge
-
zimbraPasswordMaxLength
-
zimbraPasswordMinAge
-
zimbraPasswordMinAlphaChars
-
zimbraPasswordMinDigitsOrPuncs
-
zimbraPasswordMinLength
-
zimbraPasswordMinLowerCaseChars
-
zimbraPasswordMinNumericChars
-
zimbraPasswordMinPunctuationChars
-
zimbraPasswordMinUpperCaseChars
-
zimbraPasswordMinUpperCaseChars
По умолчанию пользователю разрешено создавать любой пароль длиной от 6 до 64 символов.
В случае, если пользователь попытается сменить пароль на несоответствующий парольной политике, он получит соответствующее предупреждение с пояснением, чего именно в его пароле не хватает.
Отметим, что настройки парольной политики всегда приоритетнее настроек Класса обслуживания. Так, если на уровне COS указана минимальная длина пароля 10 символов, а в настройках пользователя, входящего в данный Класс обслуживания — 8 символов, то пользователь сможет поменять пароль на тот, который содержит 8 символов.
Еще одной настройкой парольной политики безопасности является поведение Carbonio при неправильном вводе пароля. Администратор может настроить как для отдельного пользователя, так и целого Класса обслуживания:
-
Включение блокировки неудачного входа.
-
Количество допустимых последовательных неудачных входов.
-
Время блокировки учетной записи.
-
Временной интервал с неудачными входами, после которого блокируется учетная запись.
Те же настройки можно сменить и в командной строке с помощью команд zmprov modifyAccount или zmprov modifyCOS и следующими атрибутами:
-
zimbraPasswordLocked
-
zimbraPasswordLockoutDuration
-
zimbraPasswordLockoutEnabled
-
zimbraPasswordLockoutFailureLifetime
-
zimbraPasswordLockoutMaxFailures
Отметим, что хоть идея блокировки учетных записей при неудачных попытках входа и является привлекательной с точки зрения повышения безопасности сервера и данных пользователей, на практике ее лучше не использовать. Главная проблема с данной настройкой заключается в том, что попытки смены пароля могут происходить без ведома самого пользователя, что приведет к ситуации, когда пользователь не сможет нормально работать из-за того, что какой-то злоумышленник решил подобрать пароль его учетной записи брутфорсом.
Гораздо эффективнее в этом плане является защита от брутфорса с помощью утилиты Fail2ban, которая банит за неудачные попытки входа не учетную запись, а IP-адрес злоумышленника. Поэтому даже во время брутфорса учетная запись подвергшегося атаке пользователя сохранит свою работоспособность.
Установить Fail2ban в Ubuntu 20.04 можно из стандартного менеджера пакетов sudo apt-get install fail2ban. После этого создайте файл /etc/fail2ban/filter.d/carbonio.conf и пропишите в нем следующее:
[Definition]
failregex = \[ip=<HOST>;\] account - authentication failed for .* \(no such account\)$
\[ip=<HOST>;\] security - cmd=Auth; .* error=authentication failed for .*, invalid password;$
;oip=<HOST>;.* security - cmd=Auth; .* protocol=soap; error=authentication failed for .* invalid password;$
\[oip=<HOST>;.* SoapEngine - handler exception: authentication failed for .*, account not found$
WARN .*;ip=<HOST>;ua=CarbonioWebClient .* security - cmd=AdminAuth; .* error=authentication failed for .*;$
NOQUEUE: reject: RCPT from .*\[<HOST>\]: 550 5.1.1 .*: Recipient address rejected:
Сохраните изменения и отредактируйте файл sudo nano /etc/fail2ban/jail.local. Добавьте в него следующие правила мониторинга файлов с логами:
[carbonio-account]
enabled = true
filter = carbonio
action = iptables-allports[name=carbonio-account]
sendmail[name=carbonio-account, dest=zextras@example.ru]
logpath = /opt/zextras/log/mailbox.log
bantime = 600
maxretry = 5[carbonio-audit]
enabled = true
filter = carbonio
action = iptables-allports[name=carbonio-audit]
sendmail[name=Carbonio-audit, dest=zextras@example.ru]
logpath = /opt/zextras/log/audit.log
bantime = 600
maxretry = 5[carbonio-recipient]
enabled = true
filter = carbonio
action = iptables-allports[name=carbonio-recipient]
sendmail[name=Carbonio-recipient, dest=zextras@example.ru]
logpath = /var/log/carbonio.log
bantime = 172800
maxretry = 5[postfix]
enabled = true
filter = postfix
action = iptables-multiport[name=postfix, port=smtp, protocol=tcp]
sendmail-buffered[name=Postfix, dest=zextras@example.ru]
logpath = /var/log/carbonio.log
bantime = 172800
maxretry = 5
Сохраните изменения и откройте файл sudo nano /etc/fail2ban/action.d/sendmail.conf. В нем строку Fail2Ban» | /usr/sbin/sendmail -f <sender> <dest> замените на Fail2Ban» | /opt/zextras/common/sbin/sendmail -f <sender> <dest>.
Сохраните изменения и перезапустите Fail2ban для того, чтобы они вступили в силу service fail2ban restart.
Проверить статус fail2ban можно при помощи команды вида fail2ban-client status carbonio-audit. В ее выводе будет отображаться количество срабатываний правила и другая информация.
Коммерческая версия Carbonio позволяет пользователям безопасно входить в мобильные приложения Zextras Chats, Carbonio Mail и Carbonio Files при помощи QR-кода, который можно создать в настройках учетной записи. Данный QR-код одноразовый и содержит все необходимые данные для подключения приложения к учетной записи. QR-код может быть просмотрен только при создании. Подразумевается, что пользователь сразу после создания QR-кода считает его одним из трех мобильных приложений от Zextras и больше не будет иметь к нему доступа.
Также в коммерческой версии Carbonio имеется поддержка двухфакторной аутентификации с использованием OTP, которые также можно создать в настройках. Использовать OTP впоследствии можно практически в любом приложении для генерации временных одноразовых паролей, таких как Google Authenticator, Яндекс.Ключ и так далее.
Кроме того в коммерческой версии Carbonio имеется поддержка протокола Exchange ActiveSync для мобильных устройств. Пользователи могут создавать отдельные пароли для подключения по этому протоколу. Благодаря этому даже в случае если подключенным к почтовому серверу по EAS устройством завладеют злоумышленники, они не смогут извлечь из него настоящий пароль от учетной записи.
Отметим, что правила парольной политики безопасности лишь частично распространяются на пароли, которые пользователям устанавливает администратор в командной строке или консоли администратора. Так, администратор не может задать пользователю пароль короче минимальной длины пароля, однако может пренебречь требованиями по наличию в нем спецсимволов, а также букв в различных регистрах.
По всем вопросам, связанным c Zextras Suite и коммерческой версией Carbonio, вы можете обратиться к Представителю компании «Zextras» Екатерине Триандафилиди по электронной почте ekaterina.triandafilidi@zextras.com.
ссылка на оригинал статьи https://habr.com/ru/company/Zextras/blog/668502/
Добавить комментарий