Samba 系列(一):在 Ubuntu 系統上使用 Samba4 來創建活動目錄架構
本系列的文章的主要內容是使用 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 提示的默認選項,以交互方式啟動 域供給 。
還有,輸入正確的 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 域,以及其它重要的主題。
via: http://www.tecmint.com/install-samba4-active-directory-ubuntu/
作者:Matei Cezar 譯者:rusking 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive