【魚說科技】魚說科技入駐華為云市場,科技擊活文化,文化賦能產業!
1655
2025-04-04
系統管理員使用 Samba 來克服在 Linux 和 Windows 的混合環境中的互操作性問題。它為 Windows 和 Linux 提供了一個公共平臺,以擁有一個公共共享空間。
域控制器是一種服務,用于集中管理網絡中的用戶、組或任何對象。該服務使我們能夠管理、驗證和保護用戶登錄和相關數據。
本教程解釋了我們如何將 Linux 上的 Samba 配置為主域控制器。
1. 設置正確的主機名
確保您已經設置了適當的主機名和靜態 ip。如果您使用內部 ip 地址,并且希望從 Internet 訪問它,請在防火墻上設置適當的 NAT 規則。
在本教程中將使用 tgs.example.com 作為主機名。
# vi /etc/sysconfig/network HOSTNAME=tgs.example.com
確保它在 ifcfg-eth0 文件中有適當的靜態 IP 地址設置。
# vi /etc/sysconfig/network-script/ifcfg-eth0 IPADDR=192.168.101.1 NETMASK=255.255.255.0
此外,在您的 /etc/sysconfig/network 和 /etc/resolv.conf 文件中相應地分配網關和 dns。
驗證您的 /etc/hosts 文件是否包含類似于以下內容的條目。
# vi /etc/hosts 192.168.101.1 tgs.example.com tgs
此外,請確保 NTP 服務已在此服務器上設置并正常運行。
2. 從源碼安裝 Samba
在 CentOS 上,默認情況下不會為最小安裝類型安裝 samba 包。
首先,安裝以下依賴包。
# yum install glibc glibc-devel gcc python* libacl-devel krb5-workstation krb5-libs pam_krb5 git-core openldap-devel
接下來,下載 samba 源代碼,如下所示。
# git clone git://git.samba.org/samba.git sambaserver
這些文件將被下載到 sambaserver 目錄。如下圖安裝samba服務器。
cd sambaserver ./configure --enable-debug --enable-selftest make make install
Samba 將安裝在默認位置 /usr/local/samba/bin。您將看到在此目錄下安裝了幾個 samba 客戶端實用程序。
# cd /usr/local/samba/bin/ # ls cifsdd ldbsearch ntdbrestore regshell smbcquotas tdbbackup dbwrap_tool locktest ntdbtool regtree smbget tdbdump eventlogadm masktest ntlm_auth rpcclient smbpasswd tdbrestore gentest ndrdump oLschema2ldif samba-tool smbspool tdbtool ldbadd net pdbedit sharesec smbstatus testparm ldbdel nmblookup pidl smbcacls smbtar wbinfo ldbedit nmblookup4 profiles smbclient smbta-util ldbmodify ntdbbackup regdiff smbclient4 smbtorture ldbrename ntdbdump regpatch smbcontrol smbtree
3. 設置域供應
要啟動域供應,請執行 samba-tool,如下所示。這將從配置文件中選取默認主機名和域名。
# /usr/local/samba/bin/samba-tool domain provision Realm [EXAMPLE.COM]: Domain [EXAMPLE]: Server Role (dc, member, standalone) [dc]: DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]: DNS forwarder IP address (write 'none' to disable forwarding) [125.22.47.125]: 8.8.8.8 Administrator password: Retype password: ... ... Adding DNS accounts Creating CN=MicrosoftDNS,CN=System,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 4 has been generated at /usr/local/samba/private/krb5.conf Once the above files are installed, your Samba4 server will be ready to use Server Role: active directory domain controller Hostname: tgs NetBIOS Domain: EXAMPLE DNS Domain: example.com DOMAIN SID: S-1-5-21-2869186506-3515775153-2841826798
4.啟動Samba服務
啟動samba服務,如下圖。
/usr/local/samba/sbin/samba
將以下條目添加到 rc.local 文件以確保 samba 服務在系統啟動期間自動啟動。
# echo /usr/local/samba/sbin/samba >> /etc/rc.d/rc.local # cat /etc/rc.d/rc.local touch /var/lock/subsys/local /usr/local/samba/sbin/samba
5. 檢查 Samba 版本
您可以使用 samba 或 smbclient 命令驗證 samba 版本,如下所示。
# /usr/local/samba/sbin/samba -V Version 4.2.0pre1-GIT-913b2a1 # /usr/local/samba/bin/smbclient -V Version 4.2.0pre1-GIT-913b2a1
以下命令將顯示當前可用的所有 Samba 共享。
# /usr/local/samba/bin/smbclient -L localhost -U% Domain=[EXAMPLE] OS=[Windows 6.1] Server=[Samba 4.2.0pre1-GIT-913b2a1] Sharename Type Comment --------- ---- ------- netlogon Disk sysvol Disk IPC$ IPC IPC Service (Samba 4.2.0pre1-GIT-913b2a1) Domain=[EXAMPLE] OS=[Windows 6.1] Server=[Samba 4.2.0pre1-GIT-913b2a1] Server Comment --------- ------- Workgroup Master --------- -------
驗證您是否能夠使用管理員用戶名和密碼登錄。
# /usr/local/samba/bin/smbclient //localhost/netlogon -Uadministrator -c 'ls' Enter administrator's password: Domain=[EXAMPLE] OS=[Windows 6.1] Server=[Samba 4.2.0pre1-GIT-913b2a1] . D 0 Fri Feb 21 15:06:15 2014 .. D 0 Fri Feb 21 15:06:28 2014 57901 blocks of size 8309996. 54372 blocks available
6. 驗證域
現在讓我們檢查域是否按預期運行。檢查 SRV 和 A 記錄,如下所示。
# host -t SRV _ldap._tcp.example.com _ldap._tcp.example.com has SRV record 0 100 389 tgs.example.com. # host -t SRV _kerberos._udp.example.com _kerberos._udp.example.com has SRV record 0 100 88 tgs.example.com. # host -t A tgs.example.com tgs.example.com has address 192.168.101.1
使用 samba-tool 命令驗證域名,如下所示。
# /usr/local/samba/bin/samba-tool testparm --suppress-prompt | grep realm realm = EXAMPLE.COM
7. 配置 Kerberos
將示例 krb5.conf 文件復制到 /etc 目錄。
cp /usr/local/samba/share/setup/krb5.conf /etc/krb5.conf
將 default_realm 設置為您的域名。在這種情況下,我們將其設置為 example.com
# cat /etc/krb5.conf [libdefaults] default_realm = EXAMPLE.COM dns_lookup_realm = false dns_lookup_kdc = true
使用 kinit 命令確保 Kerberos 設置正確,如下所示。
# kinit administrator@EXAMPLE.COM Password for administrator@EXAMPLE.COM: Warning: Your password will expire in 41 days on Fri Apr 4 15:06:25 2020
最后,您可以使用 Windows 遠程管理員工具連接到 Samba 服務器并將其用作域控制器。
如果您在上述過程中遇到任何問題,請確保通過更新所有軟件包使系統保持最新狀態。您還可以暫時禁用 SELinux,并查看 audit.log 以獲取任何與 SELinux 相關的錯誤消息。此外,請確保您的 IPTables 規則沒有阻止 Samba 在服務器之間進行通信所需的端口。
Linux
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。