為什麼 Samba4 在 Ubuntu 18.04 上失敗並顯示 NT_STATUS_INTERNAL_ERROR

為什麼 Samba4 在 Ubuntu 18.04 上失敗並顯示 NT_STATUS_INTERNAL_ERROR

我在將 Samba 設定為 AD DC 時遇到問題。目前我有 1 個 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.1並且8.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

這為我解決了問題

相關內容