Надежные и постоянно меняющиеся пароли - основа защиты учетных записей от взлома. Именно поэтому надежная парольная политика безопасности - это первое, что необходимо настроить администратору почтового сервера Carbonio, чтобы повысить уровень защиты учетных записей на сервере. Второе необходимое действие - это обеспечение неукоснительного соблюдения требований парольной политики всеми пользователями. В данной статье мы расскажем о том, как настроить парольную политику безопасности в Carbonio и как добиться ее выполнения пользователями.

Ключевыми моментами надежной парольной политики являются повышенные требования к надежности пароля и к периодичности его замены. Carbonio позволяет администратору не только настроить эти параметры, но и автоматизировать контроль за их соблюдением пользователями. Настройка парольной политики безопасности доступна как пользователям бесплатной Carbonio Community Edition, так и коммерческой версии Carbonio.

Настраивать парольную политику безопасности можно как для отдельных пользователей, так и для целых классов обслуживания. Сами настройки можно менять в графической консоли администратора и в командной строке Carbonio. 

В обновленной графической консоли администратора Carbonio парольную политику безопасности можно настроить на уровне класса обслуживания - COS. Для этого выберите раздел COS в правой боковой панели и выберите Класс обслуживания, для которого будете настраивать парольную политику безопасности.

Отметим, что примененные вами параметры парольной политики не будут действовать в случае, если вы используете внешний LDAP-сервер или AD для аутентификации пользователей.

Для настройки доступны следующие параметры:

  • Предотвратить смену пароля пользователем

  • Минимальное количество уникальных паролей

  • Максимальное время жизни пароля (дни)

  • Максимальная длина пароля

  • Минимальное время жизни пароля (дни)

  • Минимальное количество цифр или знаков препинания.

  • Минимальная длина пароля

  • Минимальное количество знаков нижнего регистра

  • Минимальное количество цифр

  • Минимальное количество знаков препинания

  • Минимальное количество знаков верхнего регистра

  • Запрет на словарные пароли.

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

Для смены на уровне пользователя используйте команды, заменив user@domain.ru на имя вашего пользователя:

  • carbonio prov modifyAccount user@domain.ru zimbraFeatureChangePasswordEnabled

  • carbonio prov modifyAccount user@domain.ru zimbraPasswordEnforceHistory

  • carbonio prov modifyAccount user@domain.ru zimbraPasswordMaxAge

  • carbonio prov modifyAccount user@domain.ru zimbraPasswordMaxLength

  • carbonio prov modifyAccount user@domain.ru zimbraPasswordMinAge

  • carbonio prov modifyAccount user@domain.ru zimbraPasswordMinDigitsOrPuncs

  • carbonio prov modifyAccount user@domain.ru zimbraPasswordMinLength

  • carbonio prov modifyAccount user@domain.ru zimbraPasswordMinLowerCaseChars

  • carbonio prov modifyAccount user@domain.ru zimbraPasswordMinNumericChars

  • carbonio prov modifyAccount user@domain.ru zimbraPasswordMinPunctuationChars

  • carbonio prov modifyAccount user@domain.ru zimbraPasswordMinUpperCaseChars

  • carbonio prov modifyAccount user@domain.ru zimbraPasswordMinAlphaChars

По умолчанию пользователю разрешено создавать любой пароль длиной от 6 до 64 символов.

Для смены на уровне Класса обслуживания используйте команды, заменив default на имя вашего Класса обслуживания:

  • carbonio prov modifyCOS default zimbraFeatureChangePasswordEnabled

  • carbonio prov modifyCOS default zimbraPasswordEnforceHistory

  • carbonio prov modifyCOS default zimbraPasswordMaxAge

  • carbonio prov modifyCOS default zimbraPasswordMaxLength

  • carbonio prov modifyCOS default zimbraPasswordMinAge

  • carbonio prov modifyCOS default zimbraPasswordMinDigitsOrPuncs

  • carbonio prov modifyCOS default zimbraPasswordMinLength

  • carbonio prov modifyCOS default zimbraPasswordMinLowerCaseChars

  • carbonio prov modifyCOS default zimbraPasswordMinNumericChars

  • carbonio prov modifyCOS default zimbraPasswordMinPunctuationChars

  • carbonio prov modifyCOS default zimbraPasswordMinUpperCaseChars

  • carbonio prov modifyCOS default zimbraPasswordMinAlphaChars

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

Настройки парольной политики для пользователя всегда приоритетнее настроек Класса обслуживания. К примеру, если на уровне COS указана минимальная длина пароля 10 символов, а в настройках пользователя, входящего в данный Класс обслуживания, 8 символов, то пользователь сможет сменить пароль, содержащий 8 символов.

Еще одной настройкой парольной политики безопасности является поведение Carbonio при неправильном вводе пароля. Администратор может настроить как для отдельного пользователя, так и целого Класса обслуживания:

  • Включение блокировки неудачного входа

  • Количество допустимых последовательных неудачных входов

  • Время блокировки учетной записи

  • Временной интервал с неудачными входами, по истечении которого блокируется учетная запись

Те же настройки можно сменить и в командной строке как на уровне отдельного пользователя, так и на уровне Класса обслуживания. На уровне пользователя это делается при помощи следующих команд: 

  • carbonio prov modifyAccount user@domain.ru zimbraPasswordLockoutEnabled

  • carbonio prov modifyAccount user@domain.ru zimbraPasswordLockoutMaxFailures

  • carbonio prov modifyAccount user@domain.ru zimbraPasswordLockoutDuration

  • carbonio prov modifyAccount user@domain.ru zimbraPasswordLockoutFailureLifetime

На уровне COS: 

  • carbonio prov modifyCOS default zimbraPasswordLockoutEnabled

  • carbonio prov modifyCOS default zimbraPasswordLockoutMaxFailures

  • carbonio prov modifyCOS default zimbraPasswordLockoutDuration

  • carbonio prov modifyCOS default zimbraPasswordLockoutFailureLifetime

Отметим, что хоть идея блокировки учетных записей при неудачных попытках входа и является привлекательной с точки зрения повышения безопасности сервера и данных пользователей, на практике ее не рекомендуется использовать. Главная проблема здесь заключается в том, что попытки смены пароля могут происходить без ведома самого пользователя, что приведет к ситуации, когда пользователь не сможет нормально работать из-за того, что злоумышленник решил подобрать пароль его учетной записи брутфорсом. Это чревато простоем и убытками для предприятия

Гораздо эффективнее в этом плане является защита от брутфорса с помощью утилиты 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

Внесенные нами изменения настроены на то, чтобы отслеживать записи в логах Carbonio и в случае обнаружения подозрительной активности ограничивать нарушителю доступ к серверу по его IP-адресу. Таким образом при попытке брутфорса будет забанена не учетная запись в Carbonio, а именно злоумышленник, пытающийся подобрать пароль.

Сохраните изменения и откройте файл /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. В ее выводе будет отображаться количество срабатываний правила и другая информация.

По вопросам тестирования, приобретения, предоставления лицензии и консультаций обращаться на почту sales@svzcloud.ru к эксклюзивному партнеру Zextras.

Комментарии (1)


  1. Honomer
    21.12.2022 21:01

    А потом люди устают от постоянной смены паролей, капают на мозг директору, и эта политика отключается. ????????‍♂️