在 Zimbra 中配置密码安全策略

除了加密电子邮件和使用数字签名之外,保护电子邮件免遭黑客攻击的最有效且低成本的方法之一就是有效的密码安全策略。 写在纸上、存储在公共文件中或根本不够复杂的密码始终是企业信息安全中的一大漏洞,并可能导致严重事件,给企业带来切实的后果。 这就是为什么任何企业都必须有严格的密码安全策略。

在 Zimbra 中配置密码安全策略

然而,任何安全专业人士都知道,密码策略只有在存在且每个人(或者至少是组织的关键员工)严格遵守的情况下才会带来结果。 实现这一目标比看起来更困难。 工作繁重的员工经常忘记更改密码的必要性,或者采取阻力最小的方法,每次都使密码变得越来越简单,从而抵消了整个效果。 这就是为什么企业中的密码策略合规问题通常通过各种技术手段来解决。

您不需要任何第三方应用程序来强制执行 Zimbra 密码策略。 这可以使用内置工具来实现。

首先,有必要了解 Zimbra 中密码管理的工作原理。 创建新帐户时,管理员会为其分配一个临时密码。 此后,用户将可以独立登录该帐户并更改密码。 所有密码均以加密形式存储在 Zimbra 服务器上,因此,即使是服务器管理员也无法访问。 这就是为什么,如果用户忘记了密码,他将不得不创建一个新密码。 让我们提醒您,直到最近,创建新密码都需要管理员的参与,但最新版本的 Zimbra Creative Suite 8.8.9 添加了用户自行设置新密码的功能。

在 Zimbra 中配置密码安全策略
密码策略设置可以在个人用户和用户组的设置中找到。 您可以配置:

  • 密码长度 - 允许您设置最小和最大密码长度。 默认情况下,密码长度最小为 6 个字符,最大长度为 64。
  • 密码时效 - 允许您设置密码失效的时间。 用户不必等待密码过期;他们可以在密码过期之前更改密码
  • 最小大写字符数 - 允许您设置密码中使用的最小大写字母数
  • 最小小写字符数 - 允许您设置密码中使用的最小小写字符数
  • 最少数字字符 - 允许您设置密码中使用的最少位数(0 到 9)
  • 最少标点符号 - 允许您设置密码中使用的标点符号和特殊字符的最少数量
  • 强制执行密码历史记录 - 允许您设置要记住的密码数量,以便用户不会定期使用重复的密码
  • 密码锁定 - 此选项允许您防止用户更改密码
  • 启用失败登录锁定 - 此选项允许您配置系统对输入不正确密码的反应

正如您所看到的,Zimbra 中的密码设置非常灵活,可以适应几乎任何企业的密码策略。 此外,通过使用简单的脚本,您可以设置向用户发送密码即将过期的提醒。 有了这样的提醒,员工就能在平静的氛围中更改密码,而错过了更改密码时刻的员工早上没有打开的邮件可能会对他的工作效率产生负面影响。

为了使该脚本正常工作,您需要将其复制到一个文件并使该文件可执行。 建议使用 Cron 自动执行此脚本,以便它每天通知长时间未更新密码的用户它将很快停止工作。 此外,在脚本中,您必须替换为您自己的域的名称,而不是 zimbra.server.com。

#!/bin/bash
# Задаем ряд переменных:
# Сперва количество дней для первого напоминания, затем для последнего:
FIRST="3"
LAST="1"
# Задаем адрес отправителя:
FROM="[email protected]"
# Задаем адрес получателя, который будет получать письмо со списком аккаунтов с истекшими паролями
ADMIN_RECIPIENT="[email protected]"
# Указываем путь к исполняемому файлу Sendmail
SENDMAIL=$(ionice -c3 find /opt/zimbra/common/sbin/sendmail* -type f -iname sendmail)
# Получаем список всех пользователей.
USERS=$(ionice -c3 /opt/zimbra/bin/zmprov -l gaa $DOMAIN)
# Указываем дату с точностью до секунды:
DATE=$(date +%s)
# Проверяем каждого из них:
for USER in $USERS
 do
# Узнаем, когда был установлен пароль
USERINFO=$(ionice -c3 /opt/zimbra/bin/zmprov ga "$USER")
PASS_SET_DATE=$(echo "$USERINFO" | grep zimbraPasswordModifiedTime: | cut -d " " -f 2 | cut -c 1-8)
PASS_MAX_AGE=$(echo "$USERINFO" | grep "zimbraPasswordMaxAge:" | cut -d " " -f 2)
NAME=$(echo "$USERINFO" | grep givenName | cut -d " " -f 2)
# Проверяем, нет ли среди пользователей тех, у кого срок действия пароля уже истек.
if [[ "$PASS_MAX_AGE" -eq "0" ]]
then
  continue
fi
# Высчитываем дату окончания действия паролей
EXPIRES=$(date -d  "$PASS_SET_DATE $PASS_MAX_AGE days" +%s)
# Считаем, сколько дней осталось до окончания срока действия пароля
DEADLINE=$(( (($DATE - $EXPIRES)) / -86400 ))
# Отправляем письмо пользователям
SUBJECT="$NAME - Ваш пароль станет недействительным через $DEADLINE дней"
BODY="
Здравствуйте, $NAME,
Пароль вашего аккаунта станет недействительным через $DEADLINE дней, Пожалуйста, создайте новый как можно скорее.
Вы можете также создать напоминание о смене пароля в календаре Zimbra.
Заранее спасибо.
С уважением, IT-отдел
"
# Первое предупреждение
if [[ "$DEADLINE" -eq "$FIRST" ]]
then
	echo "Subject: $SUBJECT" "$BODY" | $SENDMAIL -f "$FROM" "$USER"
	echo "Reminder email sent to: $USER - $DEADLINE days left"
# Последнее предупреждение
elif [[ "$DEADLINE" -eq "$LAST" ]]
then
	echo "Subject: $SUBJECT" "$BODY" | $SENDMAIL -f "$FROM" "$USER"
	echo "Reminder email sent to: $USER - $DEADLINE days left"
# Final
elif [[ "$DEADLINE" -eq "1" ]]
then
    echo "Subject: $SUBJECT" "$BODY" | $SENDMAIL -f "$FROM" "$USER"
	echo "Last chance for: $USER - $DEADLINE days left"
fi
done

因此,我们可以说,即使对于那些实施了严格密码政策的企业来说,Zimbra Collaboration Suite也非常适合,并且由于内置的​​功能,很容易让员工严格遵守它。

对于与 Zextras Suite 相关的所有问题,您可以通过电子邮件联系 Zextras 公司代表 Katerina Triandafilidi [电子邮件保护]

来源: habr.com

添加评论