Надежные и постоянно меняющиеся пароли - основа защиты учетных записей от взлома. Именно поэтому надежная парольная политика безопасности - это первое, что необходимо настроить администратору почтового сервера 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.