为什么 Samba4 在 Ubuntu 18.04 上因 NT_STATUS_INTERNAL_ERROR 而失败

为什么 Samba4 在 Ubuntu 18.04 上因 NT_STATUS_INTERNAL_ERROR 而失败

我在将 Samba 设置为 AD DC 时遇到了麻烦。目前我有一台 Ubuntu 机器,我想用它与家庭网络中的其他计算机共享文件。目前,作为 DC 的同一台机器也将提供文件服务。

这是家庭设置,这意味着我使用的是消费级路由器。

  • 操作系统:Ubuntu 18.04
  • Samba:版本 4.7.6-Ubuntu

每次尝试让它工作时,我都会按照推荐的步骤终止所有 Samba 进程等,并删除在准备安装来自设置指南https://wiki.samba.org/index.php/Setting_up_Samba_as_an_Active_Directory_Domain_Controller

$ ps ax | egrep "samba|smbd|nmbd|winbindd"

然后我按照描述终止所有进程。

我确认 samba 已安装

$ which samba
/usr/sbin/samba
$ samba --version
Version 4.7.6-Ubuntu

说明书还写道

验证 DC 上的 /etc/hosts 文件是否正确将完全限定域名 (FQDN) 和短主机名解析为 DC 的 LAN IP 地址。例如:

具体内容如下

127.0.0.1       localhost localhost.localdomain
192.168.1.1     DC1.samdom.example.com DC1


# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

请注意,Ubuntu 盒子在本地网络上的 IP 是192.168.1.20 192.168.1.1在 LAN 选项卡和 IP 地址字段下在我的路由器上找到的 LAN IP。注意,我没有为我的路由器打开 DDNS。

$ sudo samba-tool domain provision --use-rfc2307 --interactive
Realm: SAMDOM.EXAMPLE.COM
 Domain [SAMDOM]: SAMDOM
 Server Role (dc, member, standalone) [dc]: dc
 DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]: SAMBA_INTERNAL
 DNS forwarder IP address (write 'none' to disable forwarding) [192.168.1.1]: 8.8.8.8
Administrator password:
Retype password:
Looking up IPv4 addresses
Looking up IPv6 addresses
No IPv6 address will be assigned
Setting up share.ldb
Setting up secrets.ldb
Setting up the registry
Setting up the privileges database
Setting up idmap db
Setting up SAM db
Setting up sam.ldb partitions and settings
Setting up sam.ldb rootDSE
Pre-loading the Samba 4 and AD schema
Adding DomainDN: DC=samdom,DC=example,DC=com
Adding configuration container
Setting up sam.ldb schema
Setting up sam.ldb configuration data
Setting up display specifiers
Modifying display specifiers
Adding users container
Modifying users container
Adding computers container
Modifying computers container
Setting up sam.ldb data
Setting up well known security principals
Setting up sam.ldb users and groups
Setting up self join
Adding DNS accounts
Creating CN=MicrosoftDNS,CN=System,DC=samdom,DC=example,DC=com
Creating DomainDnsZones and ForestDnsZones partitions
Populating DomainDnsZones and ForestDnsZones partitions
Setting up sam.ldb rootDSE marking as synchronized
Fixing provision GUIDs
A Kerberos configuration suitable for Samba AD has been generated at /var/lib/samba/private/krb5.conf
Setting up fake yp server settings
Once the above files are installed, your Samba AD server will be ready to use
Server Role:           active directory domain controller
Hostname:              zoo-vault
NetBIOS Domain:        SAMDOM
DNS Domain:            samdom.example.com
DOMAIN SID:            …

太好了,到目前为止一切顺利。我krb5.conf按照建议将文件复制到 /etc/krb5.conf。

我跳过设置 AD DNS 后端正如我正在使用SAMBA_INTERNAL

/etc/resolv.conf看起来像

# Generated by NetworkManager
search samdom.example.com
nameserver 192.168.1.1

我跳过创建反向区域然后按照建议复制 kerberos 文件。

这就是问题所在。我已经用 启动了 samba sudo samba,进程看起来正在运行,但文档中给出的任何以下验证命令都不起作用。

$ smbclient //localhost/netlogon -UAdministrator -c 'ls'
Enter SAMDOM\Administrator's password:
session setup failed: NT_STATUS_INTERNAL_ERROR
$ host -t SRV _ldap._tcp.samdom.example.com.
Host _ldap._tcp.samdom.example.com. not found: 3(NXDOMAIN)
$ host -t SRV _kerberos._udp.samdom.example.com.
Host _kerberos._udp.samdom.example.com. not found: 3(NXDOMAIN)
$ host -t A dc1.samdom.example.com.
Host dc1.samdom.example.com. not found: 3(NXDOMAIN)

我在这儿有点茫然。

需要注意几点。我的 ubuntu 机器在本地网络上的静态 IP 不是 192.168.1.1(我在上面配置步骤中使用的 IP)。它是 192.168.1.20。我也尝试过使用该 IP,但无济于事。

我也尝试过在设置过程中使用和作为none,但无济于事。192.168.1.18.8.8.8DNS forwarder IP address

我在网上找到了一些文章,提供各种解决方案或进一步的测试功能,但尚未找到任何可以解决我的问题的内容。

最后,我想将 Samba 设置为

答案1

我在 Debian 9 上安装了 Samba,仅使用

apt install samba

并遇到了同样的失败。必须添加 winbind(和 smbclient)

apt install winbind  

答案2

  1. 确保 Samba 网站上列出的您的操作系统的所有依赖项都已正确安装。
  2. 确保使用的 IP 地址/etc/hosts是机器本身的 IP 地址,而不是路由器或其他硬件的 IP 地址。
  3. /etc/resolv.conf也使用相同的 IP 。
  4. /etc/hosts示例中的机器名称是此DC1.名称应与机器名称匹配,以便后面的命令可以正常工作。如果您的机器名称是 则DC1一切就绪,否则请将其替换DC1为您的机器名称。
  5. 为了确保 Samba 启动后继续访问互联网,请在提示输入“DNS 转发器 IP 地址”时使用您有权访问的 DNS IP。这可能需要您使用路由器的 LAN IP。

答案3

安装 winbind

sudo apt install winbind

这为我解决了这个问题

相关内容