AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-20314

Nathan's questions

Martin Hope
Nathan
Asked: 2021-02-26 14:18:26 +0800 CST

在 Kerberos 数据库中未找到服务器 - 数据库位于何处?

  • 1

测试设置:

  • 在已加入活动目录的 Windows 10 机器上运行的 Weblogic 12.2.1.4
    • JVM 1.8.0_281
    • Java Web 应用程序使用 Java GSSAPI 通过 Samba 访问文件共享,基本上使用来自https://github.com/hierynomus/smbj/issues/304#issuecomment-375603115的代码
    • 这是一个开发者机器——java系统属性“user.name”显示了开发者的windows用户名
  • 运行 Red Hat Enterprise Linux 7 的 Linux 文件服务器,配置了 sssd 以连接到 Active Directory
  • 运行 Red Hat Enterprise Linux 6 的 Linux 文件服务器,不使用 sssd,不使用 winbind(不清楚为 Active Directory 配置的精确度)

根据我收集到的与系统管理员对话的第三手资料,MIT Kerberos 以某种方式参与了将 linux 服务器连接到 Active Directory 的工作——但我没有更多信息。

(注意:serverfault 存在 markdown 表渲染问题 - 表在预览中显示正常,但在实际发布的问题中显示不正常,因此现在将其包围在代码块中,这样它就不会一起运行)

试验结果

| Source (all on same Windows 10 machine)  | Target FileServer     | Result  |
|------------------------------------------|-----------------------|---------|
| Weblogic application                     | RHEL 6                | Success |
| Weblogic application                     | RHEL 7                | **Fail:** Server not found in Kerberos database |
| Windows Explorer                         | RHEL 6                | Success |
| Windows Explorer                         | RHEL 7                | Success |

所有测试都使用相同的用户凭据完成。

Weblogic 的跟踪结果(将 java 系统属性设置为 之后sun.security.krb5.debug)true是:

KrbAsReqBuild: PREAUTH FAILED/REQ, re-send AS-REQ
Using builtin default etypes for default_tkt_enctypes
default etypes for default_tkt_enctypes: 18 17 16 23
Using builtin default etypes for default_tkt_enctypes
default etypes for default_tkt_enctypes: 18 17 16 23
>>> EType: sun.security.krb5.internal.crypto.Aes256CtsHmacSha1EType
>>> KrbAsReq creating message
getKDCFromDNS using UDP
>>> KrbKdcReq send: kdc=***************. UDP:88, timeout=30000, number of retries =3, #bytes=233
>>> KDCCommunication: kdc=***************. UDP: 88, timeout=30000,Attempt =1, #bytes=233
>>> KrbKdcReq send: #bytes read=100
>>> KrbKdcReq send: kdc=*****************. TCP:88, timeout=30000, number of retires =3, #bytes=233
>>> KDCCommunication: kdc=****************. TCP:88, timeout=30000,Attempt =1, #bytes=233
>>>DEBUG: TCPClient reading 2695 bytes
>>>KrbKdcReq send: #bytes read=2695
>>>KdcAccessibility: remove **********************.:88
>>>Etype: sun.security.krb5.internal.crypto.Aes256CtsHmacSha1EType
>>>KrbAsRep cons in KrbAsReq.getReply ******
Found ticket for ******@******** to go to krbtgt/******@****** expiring on ******
Entered Krb5Context.initSecContext with state=STATE_NEW
Found ticket for ******@******** to go to krbtgt/******@****** expiring on ******
Service ticket not found in the subject
>>> Credentials serviceCredsSingle: same realm
Using builtin default etypes for default_tgs_enctypes
default etypes for default_tgs_enctypes: 18 17 16 23
>>> EType: sun.security.krb5.internal.crypto.Aes256CtsHmacSha1EType
>>> CksumType: sun.security.krb5.internal.crypto.HmacSha1Aes256CksumType
>>> EType: sun.security.krb5.internal.crypto.Aes256CtsHmacSha1EType
getKDCFromDNS using UDP
>>> KrbKdcReq send: kdc=************. TCP:88, timeout=30000, number of retries =3, #bytes=2633
>>> KDCCommunication: kdc=************. TCP:88, timeout=30000,Attempt =1, #bytes=2633
>>>DEBUG: TCPClient reading 104 bytes
>>> KrbKdcReq send: #bytes read=104
>>> KdcAccessibility: remove *************.:88
>>> KDCRep: init() encoding tag is 126 req type is 13
>>>KRBError:
        STime is **********
        suSec is **********
        error code is 7
        error Message is Server not found in Kerberos database
        sname is cifs/***********@***********
        msgType is 30

搜索“在 Kerberos 数据库中找不到服务器”会产生多种可能性(DNS 似乎是最常见的建议,其他答案建议 SPN 注册、TLS 证书、不使用 FQDN、无效的主机到领域映射、主机不是域的一部分, IPV4 与 IPV6)

网络管理员说 DNS 是正确的,这似乎可以通过 Windows 资源管理器可以很好地连接到 RHEL 7 服务器这一事实得到证实。但我也不准备只责备 java 代码,因为它确实成功连接到 RHEL 6 服务器。

我很难清楚地解释需要在哪里配置 Kerberos 条目。

这是 Windows 10 机器、文件服务器或 Active Directory KDC 上的“Kerberos 数据库”吗?或者是否有这个 Kerberos 数据库的多个副本,每个副本都需要条目?

编辑 - 附加细节 我学到了一些新东西,可以提供一些附加细节。

以下内容均来自 Developer 机器上的 Window 命令提示符。

领域由以下因素决定:

C:\>echo %userdnsdomain%
DC1.DC2.DC3

对于成功的连接(RHEL 6 服务器)

C:\>powershell Get-ADComputer server1

DistinguishedName : CN=SERVER1,OU=ou1,OU=ou2,OU=ou3,DC=dc1,DC=dc2,DC=dc3
DNSHostName       : server1.dc2.dc3
Enabled           : True
Name              : SERVER1
ObjectClass       : Computer
ObjectGUID        : aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa
SamAccountName    : server1$
SID               : ************************************
UserPrincipalName :

C:\>setspn -L server1
Registered ServicePrincipalNames for CN=SERVER1,OU=ou1,OU=ou2,OU=ou3,DC=dc1,DC=dc2, DC=dc3:
        HOST/server1.dc2.dc3
        HOST/SERVER1

C:\>nslookup server1
Server:  aa1.dc2.dc3
Address:  123.456.789.01

Name:    server1.dc2.dc3
Address:  123.456.7.890

C:\>nslookup 123.456.7.890
Server:  aa1.dc2.dc3
Address:  123.456.789.01

Name:    server1.dc2.dc3
Address:  123.456.7.890 

对于失败的连接(RHEL 7 服务器)

C:\>powershell Get-ADComputer server2

DistinguishedName : CN=SERVER2,OU=ou4,DC=dc1,DC=dc2,DC=dc3
DNSHostName       : server2.dc1.dc2.dc3
Enabled           : True
Name              : SERVER2
ObjectClass       : Computer
ObjectGUID        : bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb
SamAccountName    : SERVER2$
SID               : ************************************
UserPrincipalName :

C:\>setspn -L server2
Registered ServicePrincipalNames for CN=SERVER2,OU=ou4,DC=dc1,DC=dc2,DC=dc3:
        RestrictedKrbHost/SERVER2
        HOST/SERVER2
        RestrictedKrbHost/SERVER2.dc1.dc2.dc3
        HOST/SERVER2.dc1.dc2.dc3

C:\>nslookup server2
Server:  aa1.dc2.dc3
Address:  123.456.789.01

Name:    server2.dc1.dc2.dc3
Address:  12.345.6.78

C:\>nslookup 12.345.6.78
Server:  aa1.dc2.dc3
Address:  123.456.789.01

Name:    server2.dc2.dc3
Address:  12.345.6.78

比较成功与失败的 Weblogic 跟踪结果:

成功:

>>> DEBUG: ----Credentials----
        client: [email protected]
        server: cifs/[email protected]
        ticket: sname: cifs/[email protected]

失败:

>>>KRBError:
  ...
         error code is 7
         error Message is is Server not found in Kerberos database
         sname is cifs/[email protected]
         msgType is 30

所以我注意几点:

  • 成功的(RHEL 6)服务器在许多地方(但不是全部)省略了“dc1”
  • 成功和失败sname仅在服务器部分有所不同——否则它们会排列在“dc”值上。
  • 两台服务器位于不同的组织单位中(尽管我认为这不是问题)
  • 命令结果的大小写有一些差异
  • nslookup结果似乎有所不同,server2具体取决于是通过服务器名称(包括dc1)还是 IP 地址(不包括dc1)查找
redhat active-directory kerberos mitkerberos
  • 3 个回答
  • 11437 Views
Martin Hope
Nathan
Asked: 2009-10-30 09:01:00 +0800 CST

Sql Server 2005 复制:如何使用 sql 脚本设置订阅?

  • 0

通过复制设置向导时,我可以在最后选择生成脚本。该脚本适用于发布设置,但是,当我为订阅设置运行生成的脚本时,我遇到了问题并且复制不起作用。但是,如果我不生成脚本,而只是让向导自己启动复制,那么一切正常。我真的很想用脚本自动化订阅设置。

生成的订阅脚本为:

-----------------BEGIN: Script to be run at Publisher 'SERVER\INSTANCE'-----------------
use [PublisherDatabase]
exec sp_addsubscription @publication = N'PublicationName', @subscriber = N'server\instance', @destination_db = N'SubscriberDatabase', @subscription_type = N'Push', @sync_type = N'automatic', @article = N'all', @update_mode = N'read only', @subscriber_type = 0
exec sp_addpushsubscription_agent @publication = N'PublicationName', @subscriber = N'server\instance', @subscriber_db = N'SubscriberDatabase', @job_login = null, @job_password = null, @subscriber_security_mode = 1, @frequency_type = 64, @frequency_interval = 0, @frequency_relative_interval = 0, @frequency_recurrence_factor = 0, @frequency_subday = 0, @frequency_subday_interval = 0, @active_start_time_of_day = 0, @active_end_time_of_day = 235959, @active_start_date = 20091028, @active_end_date = 99991231, @enabled_for_syncmgr = N'False', @dts_package_location = N'Distributor'
GO
-----------------END: Script to be run at Publisher 'FLANDERS\TESTING'-----------------

当我运行上面的脚本时,它完成而没有错误。但是,订阅永远不会出现在 Sql Server Management Studio Replication->Local Subscriptions 树中,并且永远不会复制数据。

然而奇怪的是,运行查询:

use distribution
select * from MSSubscriptions

给出结果集:

publisher_database_id publisher_id publisher_db                                                                                                                     publication_id article_id  subscriber_id subscriber_db                                                                                                                    subscription_type sync_type status subscription_seqno                 snapshot_seqno_flag independent_agent subscription_time       loopback_detection agent_id    update_mode publisher_seqno                    ss_cplt_seqno
--------------------- ------------ -------------------------------------------------------------------------------------------------------------------------------- -------------- ----------- ------------- -------------------------------------------------------------------------------------------------------------------------------- ----------------- --------- ------ ---------------------------------- ------------------- ----------------- ----------------------- ------------------ ----------- ----------- ---------------------------------- ----------------------------------
3                     0            PublisherDatabase                                                                                                                3              1           -1            virtual                                                                                                                          0                 1         1      0x00000027000001230003             0                   1                 2009-10-29 10:41:37.540 1                  10          0           0x00000027000001230003             0x00000027000001230003
3                     0            PublisherDatabase                                                                                                                3              1           -2            virtual                                                                                                                          0                 1         2      0x00000027000001230003             0                   1                 2009-10-29 10:41:37.603 1                  11          0           0x00000027000001230009             0x00000027000001230009
3                     0            PublisherDatabase                                                                                                                3              1           0             SubscriberDatabase                                                                                                               0                 1         1      0x000000270000013B0008             0                   1                 2009-10-29 10:54:58.140 1                  12          0           0x000000270000013B0008             0x000000270000013B0008

这似乎表明订阅存在。

万一这很重要,这是一个仅推送的发布/订阅,并且发布者和订阅者数据库都在同一台服务器上。

我还需要做什么才能让订阅从 sql 脚本工作?

编辑:交叉发布到http://www.sqlservercentral.com/Forums/Topic811043-291-1.aspx

sql-server
  • 1 个回答
  • 1595 Views
Martin Hope
Nathan
Asked: 2009-09-16 12:55:18 +0800 CST

如何从 Windows XP/Server 2003 管理 Microsoft Hyper-V Server 2008 R2?

  • 3

我们目前有几个在 Virtual Server 2005 SP1 下运行的 VM。我想将这些移至 Hyper-V Server 2008 R2。然而,我们目前只有 Windows XP 和 Windows Server 2003 机器——而且在我需要的时间范围内不太可能改变。

到目前为止,我看到的所有管理 Hyper-V Server 的工具都需要 Vista、Windows 7 或完整的 Server 2008 机器。

  1. 是否有任何工具可以在 Windows XP/Server 2003 上运行以管理 Hyper-V 服务器?
  2. 是否可以通过 Hyper-V Server 命令行完成所有必要的事情(例如创建 VM/虚拟硬盘驱动器、将 .iso 挂载为虚拟 cd 驱动器、启动/停止 vms 等)?
  3. Hyper-V 命令行的良好参考资料在哪里?
virtualization
  • 2 个回答
  • 1730 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve