Centos

使用 FQDN 訪問 Samba 共享的問題

  • July 9, 2020

我有一個新的 Centos 8 伺服器,我正在為客戶端設置,它給我在 AD DC 上設置網路共享帶來了最大的麻煩。

我已經在Google上搜尋了幾個小時,但我沒有找到任何幫助。很多結果都是幾年前的,我認為不適用於較新的版本。經過幾個這樣的時刻,也許這個執行緒將來會對某人有所幫助。

我考慮過的一個問題是,在域配置期間,我的預設 NETBIOS 名稱是LOCALHOST並且我從未更改過它,因此它可能會導致在其他機器上解決問題。我嘗試過更改它,但我可能無法正確更改所有內容,因為這樣做會導致連接到域完全失敗。

目前我可以使用 3 種不同的方法訪問我的網路伺服器,每種方法都有自己的錯誤

1. 打開\\OFFICE

Connecting to just the shortname 會顯示所有正在共享的文件和列印機,但它們都無法連接。

嘗試連接到其中一個共享會出現錯誤

\OFFICE\public 不可訪問。您可能無權使用此網路資源。請聯繫此伺服器的管理員以了解您是否具有訪問權限。

已訪問需要尚未載入文件系統驅動程序的捲。

2. 打開\\office.mydomain.com 以這種方式連接允許我訪問所有的網路列印機,但只有sysvolnetlogon可訪問的驅動器。嘗試連接到任何其他驅動器會出現此錯誤

\office.mydomain.com\public 不可訪問。您可能無權使用此網路資源。請聯繫此伺服器的管理員以了解您是否具有訪問權限。

未找到元素。

3. 打開\\192.168.1.2 嘗試使用控制器 IP 地址進行連接適用於netlogon和之外的所有列印機和網路共享sysvol。嘗試打開任一預設驅動器都會提示登錄,即使使用該OFFICE\administrator帳戶也會失敗。

我的論點是驅動器共享實際上並不被視為域的一部分,但嘗試從非域帳戶訪問這些位置會提示域登錄。

我還花了幾個小時研究 DNS,認為這可能是問題所在,但如果 NETBIOSLOCALHOST不是問題,除了無法訪問目錄之外,我對共享沒有任何問題。列印機工作正常,ping 伺服器正常,nslookup返回正確結果,SSH 與域正常工作。我對 Samba 不夠熟悉,不知道什麼處理共享映射,例如。\public

執行版本:

$: smbd -V
Version 4.12.3

我的所有目錄都正確顯示

$: smbclient -L localhost -U%

   Sharename       Type      Comment
   ---------       ----      -------
   sysvol          Disk      
   netlogon        Disk      
   public          Disk      
   share1          Disk      
   share2          Disk      
   share3          Disk      
   share4          Disk      
   users           Disk      
   IPC$            IPC       IPC Service (Samba 4.12.3)
   Printer1        Printer   EPSON WF-7520 Series
   Printer2        Printer   EPSON ET-3750 Series
   Printer3        Printer   EPSON ET-3750 Series
   Printer4        Printer   Brother QL-710W
   Printer5        Printer   EPSON ET-3750 Series
SMB1 disabled -- no workgroup available

以下是我的配置

配置文件

# Global parameters
[global]
   # Realm information
   netbios name = LOCALHOST
   realm = OFFICE.MYDOMAIN.COM
   server role = active directory domain controller
   
   disable netbios = no
   smb ports = 139 445
   
   # DNS is controlled by BIND
   server services = rpc, nbt, wrepl, ldap, cldap, kdc, drepl, winbind, ntp_signd, kcc, s3fs
   
   # Work group
   workgroup = OFFICE
   idmap_ldb:use rfc2307 = yes
   
   # Log from user IPs
   log file = /var/log/samba/%m.log
   #log level = 5
   
   # Printing servers with Cups!
   printing = cups
   printcap name = cups
   load printers = yes
   cups options = raw
   
   # Mapped drive configs
   map archive = no
   map readonly = no
   
   # Home Directories
   logon drive = H:
   logon home = \\office.mydomaincom\users\%U
   
   # Winbindd
   winbind cache time = 10
   winbind nss info = rfc2307
   winbind use default domain = yes
   winbind enum users = yes
   winbind enum groups = yes
   
   template shell = /bin/bash
   template homedir = /home/%D/%U
   
   # WINS
   domain logons = yes
   preferred master = yes
   domain master = yes
   #wins support = yes
   #host msdfs = yes
   time server = yes
   
   # DNS
   dns forwarder = 192.168.1.2
   
   # Enable FreeRADIUS authorization
   ntlm auth = mschapv2-and-ntlmv2-only

# Generic system volume
[sysvol]
   path = /usr/local/samba/var/locks/sysvol
   read only = no

# Net login scripts
[netlogon]
   path = /usr/local/samba/var/locks/sysvol/office.mydomain.com/scripts
   read only = no

# Shared printers
[printers]
   comment = All Printers
   path = /var/spool/samba/
   printable = yes
   create mask = 0600
   browseable = no

# Share for all companies
[public]
   path = /srv/samba/public
   read only = no

[share1]
   path = /srv/samba/share1
   read only = no

[share2]
   path = /srv/samba/share2
   read only = no

[share3]
   path = /srv/samba/share3
   read only = no

[share4]
   path = /srv/samba/share4
   read only = no

# User home directory
[users]
   path = /srv/samba/home
   read only = no

krb5.conf

[libdefaults]
   default_realm = OFFICE.MYDOMAIN.COM
       dns_lookup_realm = true
       dns_lookup_kdc = true

[realms]
OFFICE.MYDOMAIN.COM = {
       default_domain = office.mydomain.com
}

[domain_realm]
   localhost = OFFICE.MYDOMAIN.COM

nsswitch.conf

passwd:     files winbind
group:      files winbind
netgroup:   files winbind
automount:  files winbind
services:   files winbind

# In order of likelihood of use to accelerate lookup.
shadow:     files winbind
hosts:      dns myhostname

aliases:    files
ethers:     files
gshadow:    files
# Allow initgroups to default to the setting for group.
# initgroups: files
networks:   dns
protocols:  files winbind
publickey:  files
rpc:        files

經過更多的探勘和玩耍,我發現我手頭有兩個問題。

首先是我如何連接到伺服器。\\OFFICE, \\office.mydomain.com, 和\\192.168.1.2all connect,但實際上沒有一個被認為是 DC 的完整部分。我必須將 NETBIOS 名稱合併到 FQDN 中並連接到\\localhost.office.mydomain.com. 從這裡辨識所有列印機共享(包括netlogon和)。sysvol這可能在其他地方可以更改,但這適合我的需要。

其次是文件夾權限問題,

$: ls -ld sysvol/
drwxrwx---+ 9 root BUILTIN\administrators 135 Jul  9 09:24 sysvol/

$: ls -ld /srv/samba
drwxrwx---. 3 root root 22 Jul  9 09:15 /srv/samba

我測試了將我的股票轉移到sysvol股票中,並且在那時連接它們沒有問題。所以我檢查了sysvol共享的權限,發現它屬於BUILTIN\administrators我的共享所擁有的組,但是父文件夾也需要該權限,否則 samba 將無法正確讀取共享。

一旦我發現我的共享在內部工作時,sysvol我將權限應用回我的/srv/samba目錄,並將它們移回。我不是 100% 的,sysvol但我相信在該共享中儲存其他文件可能不是最好的主意。

引用自:https://serverfault.com/questions/1024406