Zimbra Collaboration Suite开源版中的密码管理

密码管理一直是与信息系统安全运行相关的最重要问题之一。安全地存储和快速更改多个帐户的密码的能力,用户安全地重置忘记的密码的能力以及安全地重置管理员密码的能力-所有这些功能与我们前面提到密码安全策略一样重要。在本文中,我们将研究如何在Zimbra OSE中实现这些功能。



更改用户

密码和全局管理员密码全局管理员密码是在Zimbra OSE的安装过程中设置的,随后可以在Web客户端设置中进行更改。创建帐户时,最初会设置用户密码,但是,管理员可以在用户首次登录Web客户端时启用强制密码更改,以使用户不会忘记设置自己的密码。

如果用户忘记了密码,Zimbra OSE提供了密码恢复功能。如果管理员启用了此功能,则该功能允许用户指定一个临时确认代码将进入的备份邮箱。使用此一次性代码,用户可以访问Zimbra OSE Web客户端并更改其密码。

但是,如果管理员突然忘记了其帐户的密码,并且由于该原因而无法登录Web客户端以更改密码,则可以使用setPassword属性或仅  在命令行上使用  sp。例如,使用命令  zmprov sp admin@company.ru qwerty  ,您可以将管理员密码更改为qwerty,而无需登录到Zimbra OSE Web客户端。可以使用同一命令来更改任何其他用户的密码。

还要注意,管理员没有选择查看用户密码的选项。此限制是由于Zimbra OSE原则上不会以明文形式存储用户密码。相反,Zimbra OSE仅存储加盐的密码散列,并且在尝试登录时将用户输入的密码的哈希值与LDAP服务器中存储的内容进行比较。

通过AD进行身份验证期间更改密码

如果使用AD对用户进行身份验证,则密码也不会存储在服务器上。取而代之的是,Zimbra OSE只是将用户输入传递给AD,并接收有关此帐户是否已通过身份验证的响应。而且,由于所有帐户信息都存储在另一台服务器上,因此在使用外部AD时,通常建议在Zimbra OSE Web客户端中禁用自更改密码功能。

但是,有一种方法可以将通过AD的用户身份验证与独立更改用户密码的能力结合在一起。这可以通过名为Active Directory更改密码的扩展来完成  它更改了Zimbra OSE Web客户端中密码更改按钮的功能,以便更改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服务器上的受信任列表中。如果两个信息系统使用相同的证书,则可以跳过此步骤。

因此,安装此扩展后,即使使用AD进行身份验证,您的用户也可以直接在Zimbra OSE Web客户端中更改其密码。

批量密码重置

在很多情况下,您可能需要为大量Zimbra OSE用户快速重置密码。如果用户数量足够多,则手动重置密码将花费大量时间,这在紧急情况下可能根本不可接受。脚本可以帮助优化此任务,该脚本可以自动重置单个域和整个邮件服务器的用户密码。

例如,重置company.ru域的所有用户的密码。为此,登录服务器并运行命令  zmprov -l gaa company.ru> /tmp/domainusers.txt。执行此命令后,将创建文本文件domainusers.txt。,其中将列出我们指定的域的所有用户。如果未在此命令中指定域,则该服务器上的所有帐户都将被写入文本文件。

之后,您可以从接收到的文本文件中删除所有系统帐户,例如galsync或垃圾邮件,以及那些不会重置密码的用户。文件准备好后,您可以运行以下脚本:

对于我在`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 &&睡眠5s; 做完了

该脚本的结果将是带有新帐户密码newlogin.txt文件。我们建议您尽快将其保存在安全的地方,然后从服务器中删除此文件。之后,您可以通知用户其新密码,以便他们可以继续在Zimbra OSE中工作。

移动设备的单独密码

在为Zimbra OSE安装Zextras扩展套件之后,另一个有趣的功能是从移动设备进入邮箱的单独密码。换句话说,将使用移动设备上的帐户为该帐户创建一个额外的密码,通过该帐户可以将其设备与邮箱同步,但无法登录到Zimbra OSE Web客户端。此功能可以显着提高在办公室外使用电子邮件的安全性,因为移动设备可能会受到损害甚至被盗,而且移动密码功能将有助于防止真实帐户密码落入攻击者的手中。


为移动设备创建密码非常简单。可以在管理控制台中使用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,您可以从指定用户中完全删除移动密码。 

有关Zextras Suite的所有问题,您可以通过电子邮件katerina@zextras.com与Zextras公司Ekaterina Triandafilidi的代表联系。

All Articles