在局域网中对AD进行身份validation的最佳实践

我们在DMZ中有很less的客户端服务器也有用户帐号,所有帐号都在shadow密码文件中。 我正在尝试整合用户login并考虑让LAN用户对Active Directory进行身份validation。需要身份validation的服务是Apache,Proftpd和ssh。 在咨询安全小组之后,我已经设置了具有LDAPS代理的DMZ,该代理反过来联系局域网中的另一个LDAPS代理(代理2),并且这个代理将authentication信息通过LDAP(作为LDAP绑定)传递给AD控制器。仅需要第二个LDAP代理,因为AD服务器拒绝用我们安全的LDAP实现说TLS。 这适用于使用适当的模块的Apache。在稍后阶段,我可能会尝试将客户帐户从服务器移动到LDAP代理,以便它们不分散在服务器周围。

对于SSH,我将proxy2joinWindows域,以便用户可以使用他们的Windows凭据login。然后,我创build了ssh密钥,并使用ssh-copy将它们复制到DMZ服务器,以便在用户通过身份validation后启用无密码login。

这是实施这种SSO的好方法吗?我错过了这里的任何安全问题,或者有更好的方法来实现我的目标?

如果您将PAM用于身份validation堆栈,则可以使用pam_krb5为您的服务提供Kerberos身份validation 。 Kerberos被devise成可以处理恶意环境,处理通过代理进行身份validation,并且已经是AD规范的一部分。 为什么要用LDAP来争取Kerberos来为你付出沉重的代价,并继续生活呢? 是的,你必须做一些阅读,是的,这将需要一些时间,但我已经使用了多年的遏制对ADauthentication,并已发现它是最简单,最快捷的方式获得SSO当Active Directory作为身份validation后端时,开箱即用。

你会遇到的主要问题是,微软决定对默认的encryptiontypes(他们基本上是自己做的)非常具体,所以你需要设置你的Kerberos客户端有正确的匹配encryptiontypes,或者AD服务器将继续拒绝它。 这是一个简单的过程,不要求对krb5.conf进行更多的编辑。

现在,有些链接可供您考虑…

微软的Kerberos视图

  • Kerberos解释

网状Kerberos和Active Directory

  • Kerberos 5(krb5 1.0)的互操作性分步指南

通过PAM的ssh和Kerberos身份validation

  • O'Reilly关于SSH的一个片段
  • IBM在OpenSSH和Kerberos上有几句话

Apache和Kerberos

  • 通过SourceForge的mod_auth_kerb
  • 在Apache中通过Kerberos协议提供Active Directory身份validation

ProFTP和Kerberos

  • ProFTPD模块mod_gss也通过SourceForge

微软的Kerberos活动RFC(你真的不想阅读):

  • RFC3244 Microsoft Windows 2000 Kerberos更改密码和设置密码协议
  • RFC4757 Microsoft Windows使用的RC4-HMAC Kerberosencryptiontypes