在Ubuntu系統上使用Samba4來創建活動目錄架構(一)
Samba 是一個自由的開源軟件套件,用于實現 Windows 操作系統與 Linux/Unix 系統之間的無縫連接及共享資源。
Samba 不僅可以通過 SMB/CIFS 協議組件來為 Windows 與 Linux 系統之間提供獨立的文件及打印機共享服務,它還能實現活動目錄(Active Directory)域控制器(Domain Controller)的功能,或者讓 Linux 主機加入到域環境中作為域成員服務器。當前的 Samba4 版本實現的 AD DC 域及森林級別可以取代 Windows 2008 R2 系統的域相關功能。
本系列的文章的主要內容是使用 Samba4 軟件來配置活動目錄域控制器,涉及到 Ubuntu、CentOS 和 Windows 系統相關的以下主題:
- 第 1 節:在 Ubuntu 系統上使用 Samba4 來創建活動目錄架構
- 第 2 節:在 Linux 命令行下管理 Samba4 AD 架構
- 第 3 節:在 Windows 10 操作系統上安裝 RSAT 工具來管理 Samba4 AD
- 第 4 節:從 Windows 中管理 Samba4 AD 域控制器 DNS 和組策略
- 第 5 節:使用 Sysvol Replication 復制功能把 Samba 4 DC 加入到已有的 AD
- 第 6 節:從 Linux DC 服務器通過 GOP 來添加一個共享磁盤并映射到 AD
- 第 7 節:把 Ubuntu 16.04 系統主機作為域成員服務器添加到 AD
- 第 8 節:把 CenterOS 7 系統主機作為域成員服務器添加到 AD
- 第 9 節:在 AD Intranet 區域創建使用 kerberos 認證的 Apache Website
這篇指南將闡明在 Ubuntu 16.04 和 Ubuntu 14.04 操作系統上安裝配置 Samba4 作為域控服務器組件的過程中,你需要注意的每一個步驟。
以下安裝配置文檔將會說明在 Windows 和 Linux 的混合系統環境中,關于用戶、機器、共享卷、權限及其它資源信息的主要配置點。
環境要求:
- Ubuntu 16.04 服務器安裝
- Ubuntu 14.04 服務器安裝
- 為你的 AD DC 服務器設置靜態IP地址
***步:初始化 Samba4 安裝環境
1、 在開始安裝 Samba4 AD DC 之前,讓我們先做一些準備工作。首先運行以下命令來確保系統已更新了***的安全特性,內核及其它補丁:
- $ sudo apt-get update
- $ sudo apt-get upgrade
- $ sudo apt-get dist-upgrade
2、 其次,打開服務器上的 /etc/fstab 文件,確保文件系統分區的 ACL 已經啟用 ,如下圖所示。
通常情況下,當前常見的 Linux 文件系統,比如 ext3、ext4、xfs 或 btrfs 都默認支持并已經啟用了 ACL 。如果未設置,則打開并編輯 /etc/fstab 文件,在第三列添加 acl,然后重啟系統以使用修改的配置生效。
啟動 Linux 文件系統的 ACL 功能
3、 ***使用一個具有描述性的名稱來設置主機名 ,比如這往篇文章所使用的 adc1。通過編輯 /etc/hostname 文件或使用使用下圖所示的命令來設置主機名。
- $ sudo hostnamectl set-hostname adc1
為了使修改的主機名生效必須重啟服務器。
第二步: 為 Samba4 AD DC 服務器安裝必需的軟件包
4、 為了讓你的服務器轉變為域控制器,你需要在服務器上使用具有 root 權限的賬號執行以下命令來安裝 Samba 套件及所有必需的軟件包。
- $ sudo apt-get install samba krb5-user krb5-config winbind libpam-winbind libnss-winbind
在 Ubuntu 系統上安裝 Samba 套件
5、 安裝包在執行的過程中將會詢問你一系列的問題以便完成域控制器的配置。
在***屏中你需要以大寫為 Kerberos 默認 REALM 輸入一個名字。以大寫為你的域環境輸入名字,然后單擊回車繼續。
配置 Kerosene 認證服務
6、 下一步,輸入你的域中 Kerberos 服務器的主機名。使用和上面相同的名字,這一次使用小寫,然后單擊回車繼續。
設置 Kerberos 服務器的主機名
7、 ***,指定 Kerberos realm 管理服務器的主機名。使用更上面相同的名字,單擊回車安裝完成。
設置管理服務器的主機名
第三步:為你的域環境開啟 Samba AD DC 服務
8、 在為域服務器配置 Samba 服務之前,先運行如下命令來停止并禁用所有 Samba 進程。
- $ sudo systemctl stop samba-ad-dc.service smbd.service nmbd.service winbind.service
- $ sudo systemctl disable samba-ad-dc.service smbd.service nmbd.service winbind.service
9、 下一步,重命名或刪除 Samba 原始配置文件。在開啟 Samba 服務之前,必須執行這一步操作,因為在開啟服務的過程中 Samba 將會創建一個新的配置文件,如果檢測到原有的 smb.conf 配置文件則會報錯。
- $ sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.initial
10、 現在,使用 root 權限的賬號并接受 Samba 提示的默認選項,以交互方式啟動域供給(domain provision)。
還有,輸入正確的 DNS 服務器地址并且為 Administrator 賬號設置強密碼。如果使用的是弱密碼,則域供給過程會失敗。
- $ sudo samba-tool domain provision --use-rfc2307 –interactive
Samba 域供給
11、 ***,使用以下命令重命名或刪除 Kerberos 認證在 /etc 目錄下的主配置文件,并且把 Samba 新生成的 Kerberos 配置文件創建一個軟鏈接指向 /etc 目錄。
- $ sudo mv /etc/krb6.conf /etc/krb5.conf.initial
- $ sudo ln –s /var/lib/samba/private/krb5.conf /etc/
創建 Kerberos 配置文件
12、 啟動并開啟 Samba 活動目錄域控制器后臺進程
- $ sudo systemctl start samba-ad-dc.service
- $ sudo systemctl status samba-ad-dc.service
- $ sudo systemctl enable samba-ad-dc.service
開啟 Samba 活動目錄域控制器服務
13、 下一步,使用 netstat 命令 來驗證活動目錄啟動的服務是否正常。
- $ sudo netstat –tulpn| egrep ‘smbd|samba’
驗證 Samba 活動目錄
第四步: Samba ***的配置
14、 此刻,Samba 應該跟你想像的一樣,完全運行正常。Samba 現在實現的域功能級別可以完全跟 Windows AD DC 2008 R2 相媲美。
可以使用 samba-tool 工具來驗證 Samba 服務是否正常:
- $ sudo samba-tool domain level show
驗證 Samba 域服務級別
15、 為了滿足 DNS 本地解析的需求,你可以編輯網卡配置文件,修改 dns-nameservers 參數的值為域控制器地址(使用 127.0.0.1 作為本地 DNS 解析地址),并且設置 dns-search 參數為你的 realm 值。
- $ sudo cat /etc/network/interfaces
- $ sudo cat /etc/resolv.conf
為 Samba 配置 DNS 服務器地址
設置完成后,重啟服務器并檢查解析文件是否指向正確的 DNS 服務器地址。
16、 ***,通過 ping 命令查詢結果來檢查某些重要的 AD DC 記錄是否正常,使用類似下面的命令,替換對應的域名。
- $ ping –c3 tecmint.lan # 域名
- $ ping –c3 adc1.tecmint.lan # FQDN
- $ ping –c3 adc1 # 主機
檢查 Samba AD DNS 記錄
執行下面的一些查詢命令來檢查 Samba 活動目錄域控制器是否正常。
- $ host –t A tecmint.lan
- $ host –t A adc1.tecmint.lan
- $ host –t SRV _kerberos._udp.tecmint.lan # UDP Kerberos SRV record
- $ host -t SRV _ldap._tcp.tecmint.lan # TCP LDAP SRV record
17、 并且,通過請求一個域管理員賬號的身份來列出緩存的票據信息以驗證 Kerberos 認證是否正常。注意域名部分使用大寫。
- $ kinit administrator@TECMINT.LAN
- $ klist
檢查域環境中的 Kerberos 認證是否正確
至此! 你當前的網絡環境中已經完全運行著一個 AD 域控制器,你現在可以把 Windows 或 Linux 系統的主機集成到 Samba AD 中了。
在下一期的文章中將會包括其它 Samba AD 域的主題,比如,在 Samba 命令行下如何管理你的域控制器,如何把 Windows 10 系統主機添加到同一個域環境中,如何使用 RSAT 工具遠程管理 Samba AD 域,以及其它重要的主題。