Questions tagged «kerberos»

Kerberos是一种计算机网络身份验证协议,它允许通过非安全网络进行通信的节点以安全方式相互证明其身份。它的设计者主要针对客户端-服务器模型,并且提供了相互身份验证-用户和服务器都可以验证彼此的身份。

5
跟踪哪个进程/程序导致Kerberos预身份验证错误(代码0x18)
我们有一个域帐户已通过2台服务器中的1台被锁定。内置审核仅告诉我们很多信息(已从SERVER1,SERVER2锁定)。 该帐户在5分钟内被锁定,似乎每分钟大约有1个请求。 最初,我尝试从sysinternals运行procmon,以查看在解锁帐户后是否产生了任何新的PROCESS START。没有可疑的东西出现。我的工作站上运行procmon中并提升到一个UAC外壳(conscent.exe)之后,它似乎是从堆栈中ntdll.dll和rpct4.dll当您试图权威性针对AD(不知道)被调用。 无论如何,是否可以缩小导致DC进行身份验证请求的过程?它始终是相同的DC,因此我们知道它必须是该站点中的服务器。我可以尝试在Wireshark中查找呼叫,但是我不确定这是否会缩小实际触发它的进程。 没有服务,驱动器映射或计划的任务都在使用该域帐户-因此它必须是存储了域凭据的内容。在任何服务器上(我们选中),都没有与该域帐户打开的RDP会话。 进一步说明 是的,有问题的DC启用了“成功/失败”登录审核-直到帐户被实际锁定之前,不会记录任何失败事件。 进一步的挖掘表明,一旦帐户解锁,LSASS.exe就会KERBEROS呼叫有问题的DC。它(通常)以java开头(似乎被称为vpxd.exevCenter进程)。但是,当我查看另一个(也可能是)帐户锁定的“ server2”时,我再也看不到调用,lsass.exe并且仅生成了apache进程。两者之间的唯一关系是SERVER2是SERVER1的vSphere群集的一部分(server1是vSphere OS)。 DC错误 因此,AD似乎只能告诉我这是预身份验证Kerberos错误。我检查了一下,没有票,klist反正还是为了防万一而冲洗了一下。仍然不知道是什么导致此kerberos错误。 Index : 202500597 EntryType : FailureAudit InstanceId : 4771 Message : Kerberos pre-authentication failed. Account Information: Security ID: S-1-5-21-3381590919-2827822839-3002869273-5848 Account Name: USER Service Information: Service Name: krbtgt/DOMAIN Network Information: Client Address: ::ffff:x.x.x.x Client Port: 61450 Additional Information: …

5
哪种非洲风味?
因此,我正在建立一个包含所有标准内容(文件,电子邮件等)的小型网络,并且我决定采用Kerberos + LDAP解决方案。关于Heimdal与MIT的任何想法或建议? 我以前曾使用过MIT,也曾使用过Heimdal,但我真的不知道使用它们之间的任何真正原因。我只是知道,我不想让我想在整个Heimdal投入使用并使用完整的用户数据库运行之后运行MIT。 如果有其他有用的信息,我们很乐意提供。

1
如何在没有“需要有效用户”的情况下告诉mod_auth_kerb进行工作
我在Apache上使用mod_auth_kerb实现了SSO身份验证。我的配置如下所示: <Location /login/ > AuthType Kerberos AuthName "Kerberos Login" KrbMethodNegotiate on KrbAuthoritative on KrbVerifyKDC on KrbAuthRealm D.ETHZ.CH Krb5Keytab /etc/HTTP.keytab KrbSaveCredentials on RequestHeader set KERBEROS_USER %{REMOTE_USER}s </Location> 我的问题是,如果没有require valid-user,mod_auth_kerb甚至不会尝试对用户进行身份验证并KERBEROS_USER最终成为(null)。如果我添加require valid-user,则在浏览器支持的情况下会自动对用户进行身份验证,但如果浏览器不支持Kerberos协商,则会显示出丑陋的模式登录表单(即HTTP基本身份验证)。 我要实现的是,如果用户访问/login/,则mod_auth_kerb尝试通过Kerberos协商对用户进行身份验证。如果失败,将向用户显示普通的HTML登录表单。 是否可以通过这种方式配置Apache / mod_auth_kerb?

2
创建spn的权限
根据我读过的一些文档,当数据库引擎启动时,SQL Server的服务帐户将创建一个SPN,从而允许进行kerberos身份验证。我找不到任何说明帐户创建SPN所需权限的文档。因此,为了创建SPN,帐户需要具有什么权限(如果可能,则禁止域管理员)?

2
可以进行Kerberos / AD设置吗?
我们有一个稍微复杂的IDAM设置: 也就是说,最终用户的机器和浏览器与父AD位于一个网络中,而基于Jetty的应用程序和可以与之通信的AD(本地AD)位于另一个网络中。 两个广告之间存在双向信任。父网络中的浏览器在受信任的站点中具有本地域。 Jetty服务器的设置如下: 它使用针对本地AD中的主体生成的keytab文件 它在本地AD中定义的用户下作为Windows服务运行 根据本地AD的域定义领域,领域-领域映射和kdc 它使用spnego-isInitiator设置为false;doNotPrompt为true;storeKey为true 问题是: 作为测试,从本地网络(即链接到本地AD)内的浏览器访问服务器的工作原理 - Kerberos的调试信息出现在日志中,我可以看到的HTTP流量正确的Kerberos协商,并且用户在自动签署。辉煌。 但是,无法从父网络内部的浏览器访问服务器(这是我们的用户执行操作的方式)!浏览器将返回401取消身份验证,但随后会提示您输入凭据,输入凭据后将显示空白屏幕。然后,单击地址栏并单击Enter,将执行以下两项操作之一,具体取决于凭据是用于远程AD还是本地AD: 本地AD凭据,然后使用Kerberos从头开始在日志中正常登录(GET请求,401取消身份验证响应,Kerberos头请求等) 远程AD证书不登录(GET请求,401 UNAUTH响应,看起来像一个NTLM头:Authorization: Negotiate <60 or so random chars>) 无论哪种方式,提示的事实都是错误的! 这些症状有解释吗?我们可以进行设置吗? 就上述描述而言,可能是错误的:我提到的有关Jetty服务器的任何配置都应该是准确的,就像我所做的那样。很高兴提供更多详细信息。有关AD或父网络浏览器的任何配置都可能受到怀疑,因为它不在我的控制之下,而且我已经向我报告了该配置,而不是亲自查看。

2
降级的域控制器仍在对用户进行身份验证
为什么降级的域控制器仍在对用户进行身份验证? 每当用户使用域帐户登录工作站时,降级的DC都会对其进行身份验证。其安全日志显示其登录,注销和特殊登录。我们新的DC的安全日志显示了一些计算机的登录和注销,但与域用户无关。 背景 server1(Windows Server 2008):最近降级的DC文件服务器 server3(Windows Server 2008 R2):新DC server4(Windows Server 2008 R2):新DC 日志 安全日志事件:http : //imgur.com/a/6cklL。 来自server1的两个示例事件: Audit Success,3/31/2014 11:06:14 AM,Microsoft-Windows-Security-Auditing,4624,Logon,"An account was successfully logged on. Subject: Security ID: NULL SID Account Name: - Account Domain: - Logon ID: 0x0 Logon Type: 3 New Logon: Security ID: MYDOMAIN\auser …

1
Kerberos身份验证,服务主机和对KDC的访问
我有一个Web应用程序(主机名:service.domain.com),并且希望使用Kerberos身份验证来识别登录到Windows域的用户。Microsoft AD(Windows Server 2008 R2)提供Kerberos服务。 该服务是一个Java Web应用程序,使用Spring Security Kerberos扩展库来实现SPNEGO / Kerberos协议。我在AD中创建了一个密钥表文件,其中包含一个共享密钥,该密钥应足以验证客户端浏览器使用Web应用程序发送的Kerberos票证。 我的问题是,服务主机(service.domain.com)是否需要具有对KDC(kdc.domain.com)的防火墙访问权限(TCP / UDP 88),或者密钥表文件足以使服务主机能够解密Kerberos票证并提供身份验证?

3
如何自动执行kinit进程以获得Kerberos的TGT?
我目前正在编写一个up模块,以自动化将RHEL服务器加入AD域的过程,并支持Kerberos。 目前,我无法通过自动获取并缓存Kerberos票证授予票证kinit。如果要手动完成此操作,则可以这样做: kinit aduser@REALM.COM 这提示输入AD用户密码,因此自动执行此操作存在问题。 我该如何自动化?我发现一些帖子提到使用kadmin创建带有AD用户密码的数据库,但是我没有运气。

2
我如何登录不信任自己的域控制器
我有一个从备份还原的Windows 2008 R2独立域控制器。原始DC处于脱机状态。 使用有效的用户凭据登录时,出现错误消息: “服务器上的安全数据库没有用于该工作站信任关系的计算机帐户” 如何登录域控制器并修复损坏的内容?这是森林中唯一的DC。 对于它的价值,我将这台服务器托管在Rackspace上,因此我的物理选择受到限制。

3
如何通过pam_krb5中的Kerberos拒绝对禁用的AD帐户的访问?
我有一个有效的AD / Linux / LDAP / KRB5目录和身份验证设置,但有一个小问题。禁用帐户后,SSH公钥身份验证仍允许用户登录。 显然,kerberos客户端可以识别禁用的帐户,因为kinit和kpasswd返回“客户端凭证已被撤消”,而无需进一步的密码/交互。 是否可以将PAM配置为sshd_config(在sshd_config中使用“ UsePAM yes”),以禁止登录已禁用帐户(通过公用密钥进行身份验证)?这似乎不起作用: account [default=bad success=ok user_unknown=ignore] pam_krb5.so 请不要在您的答案中引入winbind-我们不使用它。

4
Windows的MIT Kerberos下的多个领域和多个TGT
我的本地计算机使用Windows 7 Pro,属于领域LR,由AD服务器管理。连接到该领域的网络后,我登录到计算机。我可以使用MIT Kerberos for Windows ver查看TGT。4.0.1。 我想访问外国领域FR中的资源。LR和FR之间没有Kerberos信任,但是它们允许彼此之间的TCP通信。我要求使用其KDC(Red Hat IdM / FreeIPA)的FR TGT,并在遇到挑战时成功输入密码。同样,我可以使用MIT Kerberos for Windows ver查看TGT。4.0.1。我现在可以通过SSH访问FR中的资源,而无需输入密码,尽管它源自LR。 问题是当我获得FR的TGT时,LR主体的TGT消失了。在MIT Kerberos中仅可见FR TGT。如果我锁定计算机,然后使用密码解锁,则FR TGT消失了,取而代之的是新的LR TGT。 看来用于Windows的MIT Kerberos一次只能存储一个TGT。每个TGT都可以为所有意图和目的完全发挥作用。如何配置MIT Kerberos,让我一次拥有两个TGT,每个领域一个?是否可以对多个客户端实例进行“隔离”,每个实例都指向不同的KRB5_CONFIG和本地密钥表?如果无法这样做,即使没有域间信任,也存在Windows客户端Kerberos 5的替代实现吗? PS-我不要信任。无法获得信任。 更新:我早些时候省略了一些细节,因为我认为这可能会使问题困惑。但是根据布拉德的回答,这可能是有根据的。我希望大多数本地软件都将使用Kerberos的内置Windows实现,并始终使用LR keytab。 但是,像我这样的高级用户会在Cygwin下使用heimdal SSH进入FR。我希望通过Cygwin DLL的任何东西都使用heimdal,并且永远不会看到LR TGT(它不会,至少默认情况下不会)。我明确地初始化并继续。 棘手的部分出现在非超级用户身上,我必须支持那些不使用Cygwin但使用PuTTY的用户。PuTTY确实允许您指定要使用GSSAPI实现的库路径和DLL。例如,我将SSH会话配置为使用MIT Kerberos DLL而不是内置Windows DLL。我希望那里有一个从未尝试找到LR TGT(例如heimdal)的DLL,或者允许来自多个领域的多个TGT。它不必像MIT Kerberos一样具有GUI窗口,但它可以提供帮助。
10 kerberos 


3
油灰Kerberos / GSSAPI身份验证
我配置了一些Linux服务器,以在RHEL6上使用sssd对Active Directory Kerberos进行身份验证。我还启用了GSSAPI身份验证,以期实现无密码登录。 但是,如果没有密码,我似乎无法让Putty(0.63)进行身份验证。 GSSAPI在配置用于AD身份验证的Linux系统(openSSH客户端)之间工作,使用.ssh / config设置启用GSSAPI。 它也可以在Cygwin(openSSH客户端)中使用相同的.ssh / config设置,并运行kinit命令来获取票证。 Samba还在所有Linux系统上共享,包括从Windows资源管理器工作的主目录,而无需输入密码(我不确定GSSAPI是否在那里发挥作用) 我可以尝试哪种方法来解决此问题?我的大多数用户都使用腻子。另外,我不是Windows管理员,因此我无法在域控制器上执行任何操作。我的帐户仅具有将服务器添加到AD域的特权。 我打开腻子SSH数据包日志记录。我发现这很有趣,但是我不确定该如何处理: Event Log: Server version: SSH-2.0-OpenSSH_5.3 Event Log: Using SSH protocol version 2 Event Log: We claim version: SSH-2.0-PuTTY_Release_0.63 Outgoing packet #0x0, type 20 / 0x14 (SSH2_MSG_KEXINIT) Incoming packet #0x0, type 20 / 0x14 (SSH2_MSG_KEXINIT) Event Log: Doing …


1
Kerberos:分隔AS和TGS
在Kerberos中,身份验证服务器(AS)和票证授予服务器(TGS)通常在同一服务器上实现。该机器称为密钥分发中心(KDC)。 当然,在同一台物理计算机上实现这些服务是很有意义的,因为在中小型网络中,将这两个服务分开是过大的。另外,我有一个相对可靠的消息来源,它说(翻译): TGS和AS必须访问相同的数据库=>在不同的机器上实现TGS和AS没有太大意义 但是我看不到两者之间必须共享哪个数据库。 这是我的想法,我如何将AS和TGS分开,没有共享数据库: 由于AS和TGS分开,因此它们具有不同的主密钥 AS具有一个数据库,其中包含所有用户及其各自的主密钥(在用户登录时使用,用于加密会话密钥),以及TGS的主密钥(用于加密请求的TGT)。 TGS有一个数据库,该数据库可以确定允许哪个用户使用哪个服务(ACL,吊销列表等),以及一个包含所有服务及其各自主密钥(用于加密票证)的数据库。 用户想要使用服务时(简体): 在AS进行身份验证 获取使用TGS主密钥加密的票证授予票证(TGT),以及使用用户的主密钥加密的会话密钥。 与TGT联系TGS 获取使用服务的主密钥加密的票证 凭票联系服务 我是否缺少某些东西,或者将AS和TGS分开真的没有问题吗?
9 kerberos 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.