LDAP簡介
ldap是開源的輕量級目錄訪問協(xié)議,英文全稱是Lightweight Directory Access Protocol,它本身是一個小型文件數(shù)據(jù)庫,能夠通過server + client(服務(wù)端+客戶端)的方式,進(jìn)行統(tǒng)一的用戶賬號管理。隨著公司研發(fā)人員越來越多,在各個研發(fā)服務(wù)器上添加重復(fù)賬號就變得麻煩,如果使用ldap來管理,就只需要在ldap服務(wù)中創(chuàng)建一次就可以了,賬號清理也是類似的道理。我們通過控制一臺ldap server服務(wù)器,即可管理所有l(wèi)dap client服務(wù)器上的賬號,這樣就方便很多了。
系統(tǒng)搭建環(huán)境
- Ubuntu 18.04 LTS,內(nèi)網(wǎng)IP:192.168.0.1,ldap server
- Ubuntu 18.04 LTS,內(nèi)網(wǎng)IP:192.168.0.2,ldap client
LDAP server 搭建
Step1: 設(shè)置服務(wù)器名稱
在內(nèi)網(wǎng)環(huán)境中,服務(wù)器名稱最好是唯一的,比如改成saturn.com。
sudo hostnamectl set-hostname saturn.com
修改完成后,可以用以下命令確認(rèn):
hostname -f
編輯/etc/hosts文件。
sudo vim /etc/host
在文件底部添加:
192.168.0.1 saturn.com
Step2: 安裝OpenLADP server
sudo apt -y install slapd ldap-utils
在安裝過程中,會提示設(shè)置ldap admin的密碼。

安裝完成后可以通過slap命令驗證,正常會顯示ldap database的內(nèi)容,重要的是確認(rèn)database的dn, 這里為dc=saturn,dc=com
sudo slapt
Step3: 添加users和groups的base dn
ldap database里的內(nèi)容只能通過文件名后綴為.ldif的文件進(jìn)行添加,或者通過Web工具(OpenLDAP沒有自帶的Web工具,下面會介紹LDAP account manager 工具)。
創(chuàng)建basedn.ldif文件并且編輯。
touch basedn.ldif
vim basedn.ldif
在basedn.ldif中添加以下內(nèi)容,注意dn中要用dc=saturn, dc=com。
dn: ou=people,dc=saturn,dc=com
objectClass: organizationalUnit
ou: people
dn: ou=groups,dc=saturn,dc=com
objectClass: organizationalUnit
ou: groups
用下面命令將文件的內(nèi)容添加到database中:
ldapadd -x -D cn=admin,dc=saturn,dc=com -W -f basedn.ldif
成功的話會顯示類似的提示:
adding new entry "ou=people,dc=saturn,dc=com"
adding new entry "ou=groups,dc=saturn,dc=com"
Step4: 添加用戶賬戶
用slappasswd命令生成賬戶密碼,網(wǎng)上查詢slappasswd命令是用來修改ldap admin密碼的,但是僅僅用這個命令好像不 能直接修改admin的密碼,安全起見,可以用網(wǎng)站http://web.chacuo.net/safeldap 在線生成ldap加密的密碼。
sudo slappasswd
New password:
Re-enter new password:
{SSHA}Zn4/E5f+Ork7WZF/alrpMuHHGufC3x0k
創(chuàng)建ladpuseradd.ldif文件并且編輯。
touch ldapuseradd.ldif
vim ldapuseradd.ldif
在ladpuseradd.ldif中添加以下內(nèi)容, 比如創(chuàng)建一個用戶名為han.meimei的ldap賬號:
dn: uid=han.meimei,ou=people,dc=saturn,dc=com
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
cn: han.meimei
sn: meimei
userPassword: {SSHA}Zn4/E5f+Ork7WZF/alrpMuHHGufC3x0k
loginShell: /bin/bash
uidNumber: 2000
gidNumber: 2000
homeDirectory: /home/han.meimei
其中uid跟cn是設(shè)置ldap賬號的用戶名,sn設(shè)置用戶的昵稱,uidNumber跟gidNumber就是linux系統(tǒng)下用戶的uid跟gid,注意添加不同賬號時uidNumber保持不同,不然在linux terminal中顯示的路徑可能會有問題,gidNumber可以保持一致,讓用戶在同一個組里,統(tǒng)一管理權(quán)限。userPassword后面可以填寫用網(wǎng)站http://web.chacuo.net/safeldap在線生成的其他加密密碼,之后用LDAP account manager也可以修改賬戶信息及密碼。
用下面命令將文件的內(nèi)容添加到database中:
ldapadd -x -D cn=admin,dc=saturn,dc=com -W -f ldapuseradd.ldif
成功的話會顯示類似的提示:
adding new entry "uid=han.meimei,ou=people,dc=saturn,dc=com"
Step5: 安裝LDAP Account Manager(推薦)
ldap用命令行管理database比較麻煩,可以用輔助Web工具phpLDAPadmin,LDAP Account Manager等,這里推薦使用 LDAP Account Manager。
安裝PHP, Apache。
sudo apt -y install apache2 php php-cgi libapache2-mod-php php-mbstring php-common php-pear
激活php-cgi PHP extension。
通用命令:
sudo a2enconf php*-cgi
sudo systemctl reload apache2
Ubuntu 18.04:
sudo a2enconf php7.2-cgi
sudo systemctl reload apache2
安裝LDAP Account Manager。
sudo apt -y install ldap-account-manager
安裝完成后可以在瀏覽器中登入LAM的管理界面,http://(server’s hostname or IP address)/lam, 在本例中為http://192.168.0.1/lam。界面如下圖:

然后需要設(shè)置ldap server profile, 點擊登入界面左上角的LAM configuration,然后點擊Edit server profiles。

需要輸入登入密碼,第一次登入的話默認(rèn)密碼是 lam。

接下來第一件事情是會讓你修改密碼。

然后需要設(shè)置ldap Server address 和 Tree suffix。

在Security setting中設(shè)置admin。

點擊Account types頁,在Active account types中設(shè)置LDAP suffix 和List attributes。

完成后再在部點擊Save按鈕,重新用admin賬號登入,成功跟本地ldap database關(guān)聯(lián)的話,就能看到之前添加的han.meimei賬號的信息。我們可以之后直接在LAM上添加賬號或者修改賬號信息。
LDAP client 搭建
Step1: 添加LDAP server服務(wù)器名稱
編輯/etc/hosts文件
sudo vim /etc/hosts
在文件底部添加:
192.168.0.1 saturn.com
Step2: 安裝OpenLDAP client
sudo apt -y install libnss-ldap libpam-ldap ldap-utils nscd
在安裝過程中,會有如下提示:
設(shè)置ldap api,這里填寫ldap server的IP: 192.168.0.1
設(shè)置dn base,填寫dc=saturn,dc=com
選擇ldap version,選擇3
選擇Yes 對Make local root Database admin
選擇No 對Does the LDAP database require login
設(shè)置 LDAP root account,這里為cn=admin,dc=saturn,dc=com
設(shè)置LDAP root account密碼,與server端保持一致
Step3: 設(shè)置ldap.config
安裝完成后,安裝過程中的配置會保存在/etc/ldap.config中,如果需要修改ldap配置,可以再次修改這個配置文件。在本例中l(wèi)dap client 一開始沒有連上server端,需要將在ldap.config文件中注釋的一行#uri ladp://127.0.0.1/ 改成uri ladp://192.168.0.1:389方才可行,ldap server默認(rèn)使用TCP 389 端口。
Step4: 設(shè)置ldap nss profile
sudo auth-client-config -t nss -p lac_ldap
Step5: 更新pam, 確認(rèn)LDAP authentication被激活
sudo pam-auth-update
Step6: 修改/etc/nsswitch.conf, 在passwd和group后增加ldap
passwd: compat systemd ldap
group: compat systemd ldap
shadow: compat
如果之后這個服務(wù)器想取消使用ldap,把增加的ldap刪除即可。
Step7: 修改/etc/pam.d/common-password, 把ldap那行中的use_authtok去掉
修改后 應(yīng)該顯示類似的:
password [success=1 user_unknown=ignore default=die] pam_ldap.so try_first_pass
Step8: 激活賬號第一次進(jìn)入的時候自動創(chuàng)建home directory
在/etc/pam.d/common-session中添加:
session optional pam_mkhomedir.so skel=/etc/skel umask=077

Step9: 重啟Name Service Cashe Daemon(NSCD)
sudo systemctl restart nscd
sudo systemctl enable nscd
在上述步驟完成后,可以用很多方式驗證ldap client是否與server建立聯(lián)系:
- getent passwd 或者 getent passwd han.meimei (某個ldap賬號),會顯示ldap server database里用戶賬號的信息。
- ldapsearch -x -h 192.168.0.1 -b dc=saturn,dc=com
- 直接在client里輸入 sudo su - han.meimei (某個ldap賬號)
至此ldap搭建完成,在沒有創(chuàng)建local賬號的情況下,ldap server端的服務(wù)器也能通過ldap賬號鑒權(quán)登入。文章來源:http://www.zghlxwxcb.cn/news/detail-760209.html
參考資料:
https://computingforgeeks.com/install-and-configure-openldap-server-ubuntu/
https://computingforgeeks.com/install-and-configure-ldap-account-manager-on-ubuntu/
https://computingforgeeks.com/how-to-configure-ubuntu-as-ldap-client/
https://blog.eldernode.com/install-ldap-client-on-ubuntu-20-04/文章來源地址http://www.zghlxwxcb.cn/news/detail-760209.html
到了這里,關(guān)于LDAP搭建,實現(xiàn)linux賬號統(tǒng)一管理的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!