它不僅能夠集中管理用戶、計算機、安全策略等關鍵資源,還能提供身份驗證和訪問控制服務
然而,隨著開源技術的蓬勃發展,越來越多的企業開始考慮在非Windows環境中,尤其是Linux系統上,實現類似AD的功能
盡管Linux本身并不直接支持AD服務,但借助Samba 4和一些開源工具,我們完全可以在Linux主機上搭建一個功能強大、兼容Windows的AD域控制器
一、引言:為何在Linux上搭建AD 1.成本控制:Linux操作系統本身免費,且擁有龐大的開源社區支持,可以顯著降低IT基礎設施的成本
2.靈活性:Linux系統提供了更高的靈活性和可擴展性,便于根據業務需求進行定制化開發
3.多平臺整合:在混合IT環境中,Linux AD解決方案可以更好地實現跨平臺資源整合和管理
4.安全性:Linux以其強大的安全性和穩定性著稱,能夠為AD服務提供更加堅實的底層保障
二、準備工作 硬件與軟件要求 - 硬件:一臺性能穩定的服務器,至少配備2核CPU、4GB內存和足夠的存儲空間
- 操作系統:推薦使用CentOS或Ubuntu等成熟的Linux發行版
- 軟件包:Samba 4、krb5-server、krb5-libs、sssd、sssd-client等
網絡配置 - 確保Linux服務器能夠訪問互聯網,以便下載所需的軟件包和更新
- 配置靜態IP地址,確保AD域控制器的網絡穩定性
- 配置DNS服務器,以便解析域內資源
三、安裝與配置Samba 4 1. 安裝Samba 4 在CentOS上,可以通過以下命令安裝Samba 4: sudo yum install samba samba-client samba-common samba-common-libs samba4 samba4-client samba4-common samba4-libs samba4-krb5-auth samba4-server 在Ubuntu上,則使用: sudo apt-get update sudo apt-get install samba samba-common krb5-user samba4 samba4-ads samba4-krb5-auth samba4-server 2. 配置Kerberos Kerberos是Samba 4實現AD功能的核心組件之一
需要編輯`/etc/krb5.conf`文件,配置Kerberos的KDC(Key Distribution Center)和admin_server地址
【libdefaults】 default_realm = YOUR_REALM.COM dns_lookup_realm = false dns_lookup_kdc = true 【realms】 YOUR_REALM.COM ={ kdc = your-server-ip admin_server = your-server-ip } 【domain_realm】 .your-domain.com =YOUR_REALM.COM your-domain.com = YOUR_REALM.COM 3. 創建Kerberos數據庫 使用`kdb5_util`工具創建Kerberos數據庫,并初始化KDC: sudo kdb5_util create -rYOUR_REALM.COM -s sudo systemctl start krb5-kdc sudo systemctl start krb5-admin-server 4. 配置Samba 編輯`/etc/samba/smb.conf`文件,添加AD相關的配置
以下是一個基本的配置示例: 【global】 workgroup =YOUR_WORKGROUP realm = YOUR_REALM.COM security = ads ads server = your-server-ip template shell = /bin/bash winbind use default domain = true winbind offline logon = false idmap config: : range = 16777216-33554431 【netlogon】 path = /var/lib/samba/netlogon read only = no 5. 創建AD域 使用`samba-tool`命令創建AD域和域管理員賬戶: sudo samba-tool domain provision --use-rfc2307 --interactive 按照提示輸入域名、DNS域名、NetBIOS名、管理員密碼等信息
完成后,Samba將自動配置DNS和Kerberos,并創建必要的文件和目錄
四、配置Winbind和SSSD 1. 安裝Winbind和SSSD Winbind允許Linux系統訪問AD中的用戶信息,而SSSD(System Security Services Daemon)則提供了更高級的身份驗證和訪問控制功能
sudo yum install sssd sssd-client winbind winbind-clients 或 sudo apt-get install sssd sssd-client winbind winbind-clients 2. 配置Winbind 編輯`/etc/nsswitch.conf`文件,添加`winbind`到passwd和group數據庫中: passwd: compat winbind group: compat winbind 編輯`/etc/wbinfo.conf`文件,配置Winbind的認證后端: idmap - config : range = 16777216-33554431 啟動Winbind服務: sudo systemctl start winbind sudo systemctl enable winbind 3. 配置SSSD 編輯`/etc/sssd/sssd.conf`文件,添加AD域的配置
以下是一個基本配置示例: 【domain/YOUR_REALM.COM】 auth_provider = krb5 chpass_provider = krb5 access_provider = simple id_provider = ldap ldap_uri = ldap://your-server-ip ldap_search_base = dc=your-domain,dc=com ldap_schema = rfc2307bis cache_credentials = true krb5_realm =YOUR_REALM.COM krb5_server = your-server-ip krb5_kpasswd_server = your-server-ip 啟動SSSD服務: sudo systemctl start sssd sudo systemctl enable sssd 五、驗證與測試 1. 測試Kerberos認證 使用`kinit`命令測試Kerberos認證: kinit Administrator@YOUR_REALM.COM 如果認證成功,將顯示Kerberos票據緩存信息
2. 測試Winbind和SSSD 使用`getentpasswd`和`getentgroup`命令查看AD中的用戶和組信息
如果配置正確,這些命令將列出