當(dāng)前位置 主頁 > 技術(shù)大全 >
它不僅能夠集中管理用戶、計(jì)算機(jī)、安全策略等關(guān)鍵資源,還能提供身份驗(yàn)證和訪問控制服務(wù)
然而,隨著開源技術(shù)的蓬勃發(fā)展,越來越多的企業(yè)開始考慮在非Windows環(huán)境中,尤其是Linux系統(tǒng)上,實(shí)現(xiàn)類似AD的功能
盡管Linux本身并不直接支持AD服務(wù),但借助Samba 4和一些開源工具,我們完全可以在Linux主機(jī)上搭建一個(gè)功能強(qiáng)大、兼容Windows的AD域控制器
一、引言:為何在Linux上搭建AD 1.成本控制:Linux操作系統(tǒng)本身免費(fèi),且擁有龐大的開源社區(qū)支持,可以顯著降低IT基礎(chǔ)設(shè)施的成本
2.靈活性:Linux系統(tǒng)提供了更高的靈活性和可擴(kuò)展性,便于根據(jù)業(yè)務(wù)需求進(jìn)行定制化開發(fā)
3.多平臺(tái)整合:在混合IT環(huán)境中,Linux AD解決方案可以更好地實(shí)現(xiàn)跨平臺(tái)資源整合和管理
4.安全性:Linux以其強(qiáng)大的安全性和穩(wěn)定性著稱,能夠?yàn)锳D服務(wù)提供更加堅(jiān)實(shí)的底層保障
二、準(zhǔn)備工作 硬件與軟件要求 - 硬件:一臺(tái)性能穩(wěn)定的服務(wù)器,至少配備2核CPU、4GB內(nèi)存和足夠的存儲(chǔ)空間
- 操作系統(tǒng):推薦使用CentOS或Ubuntu等成熟的Linux發(fā)行版
- 軟件包:Samba 4、krb5-server、krb5-libs、sssd、sssd-client等
網(wǎng)絡(luò)配置 - 確保Linux服務(wù)器能夠訪問互聯(lián)網(wǎng),以便下載所需的軟件包和更新
- 配置靜態(tài)IP地址,確保AD域控制器的網(wǎng)絡(luò)穩(wěn)定性
- 配置DNS服務(wù)器,以便解析域內(nèi)資源
三、安裝與配置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實(shí)現(xiàn)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. 創(chuàng)建Kerberos數(shù)據(jù)庫 使用`kdb5_util`工具創(chuàng)建Kerberos數(shù)據(jù)庫,并初始化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相關(guān)的配置
以下是一個(gè)基本的配置示例: 【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. 創(chuàng)建AD域 使用`samba-tool`命令創(chuàng)建AD域和域管理員賬戶: sudo samba-tool domain provision --use-rfc2307 --interactive 按照提示輸入域名、DNS域名、NetBIOS名、管理員密碼等信息
完成后,Samba將自動(dòng)配置DNS和Kerberos,并創(chuàng)建必要的文件和目錄
四、配置Winbind和SSSD 1. 安裝Winbind和SSSD Winbind允許Linux系統(tǒng)訪問AD中的用戶信息,而SSSD(System Security Services Daemon)則提供了更高級(jí)的身份驗(yàn)證和訪問控制功能
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數(shù)據(jù)庫中: passwd: compat winbind group: compat winbind 編輯`/etc/wbinfo.conf`文件,配置Winbind的認(rèn)證后端: idmap - config : range = 16777216-33554431 啟動(dòng)Winbind服務(wù): sudo systemctl start winbind sudo systemctl enable winbind 3. 配置SSSD 編輯`/etc/sssd/sssd.conf`文件,添加AD域的配置
以下是一個(gè)基本配置示例: 【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 啟動(dòng)SSSD服務(wù): sudo systemctl start sssd sudo systemctl enable sssd 五、驗(yàn)證與測試 1. 測試Kerberos認(rèn)證 使用`kinit`命令測試Kerberos認(rèn)證: kinit Administrator@YOUR_REALM.COM 如果認(rèn)證成功,將顯示Kerberos票據(jù)緩存信息
2. 測試Winbind和SSSD 使用`getentpasswd`和`getentgroup`命令查看AD中的用戶和組信息
如果配置正確,這些命令將列出