天天看點

配置Ubuntu使用ldap認證

将ubuntu配置為通過ldap認證,使其成為ldap client,本文實驗環境為ubuntu 12.04。

[size=large]一、手工配置方式[/size]

1、軟體安裝:

apt-get install ldap-utils libpam-ldap libnss-ldap nslcd
           

安裝過程中提示填寫ldap相關資訊:ldap server 位址,base dc等,資訊儲存在/etc/ldap.conf中,可通過dpkg-reconfigure ldap-auth-config重新配置,其中:

[list]

[*]ldap服務uri格式 ldap://ldapServerIP/

[*]search base:dc=my,dc=com,dc=cn

[*]root ldap account:cn=admin,dc=my,dc=com,dc=cn

[/list]

2、認證方式中添加ldap:

[email protected]:~# auth-client-config -t nss -p lac_ldap
           

3、使認證通過後自動建立使用者家目錄:

vi /etc/pam.d/common-session,追加内容:
session required pam_mkhomedir.so skel=/etc/skel umask=0022
           

4、配置開啟ldap認證方式

[email protected]:~# pam-auth-update
           

5、執行

update-rc.d nslcd enable
           

6、配置可在本機通過passwd更改使用者密碼:

vi /etc/pam.d/common-password,除去其中的use_authtok參數
           

7、重新開機相關服務:

/etc/init.d/nscd restart
           

8、登陸或切換使用者時即通過ldap進行認證,如切換為ldap中的使用者manager:

參見http://askubuntu.com/questions/127389/how-to-configure-ubuntu-as-an-ldap-client

[size=large]二、腳本配置方式[/size]

如果需配置的機器很多,采用手工配置方式不太合适,可在待配置機器上運作如下shell腳本進行自動化配置:

#!/bin/bash

#--------------------------------------------------------------------------------

#Ldap server位址及base DN
LDAP_SERVER_IP=192.168.1.100
BASE_DN='dc=my,dc=com,dc=cn'

#--------------------------------------------------------------------------------

#建立preseed檔案-軟體安裝自應答
touch debconf-ldap-preseed.txt
echo "ldap-auth-config    ldap-auth-config/ldapns/ldap-server    string    ldap://$LDAP_SERVER_IP" >> debconf-ldap-preseed.txt
echo "ldap-auth-config    ldap-auth-config/ldapns/base-dn    string    $BASE_DN" >> debconf-ldap-preseed.txt
echo "ldap-auth-config    ldap-auth-config/ldapns/ldap_version    select    3" >> debconf-ldap-preseed.txt
echo "ldap-auth-config    ldap-auth-config/dbrootlogin    boolean    false" >> debconf-ldap-preseed.txt
echo "ldap-auth-config    ldap-auth-config/dblogin    boolean    false" >> debconf-ldap-preseed.txt
echo "nslcd   nslcd/ldap-uris string  ldap://$LDAP_SERVER_IP" >> debconf-ldap-preseed.txt
echo "nslcd   nslcd/ldap-base string  $BASE_DN" >> debconf-ldap-preseed.txt

cat debconf-ldap-preseed.txt | debconf-set-selections

#安裝ldap client相關軟體
apt-get install -y ldap-utils libpam-ldap libnss-ldap nslcd

#認證方式中添加ldap
auth-client-config -t nss -p lac_ldap

#認證登入後自動建立使用者家目錄
echo "session required pam_mkhomedir.so skel=/etc/skel umask=0022" >> /etc/pam.d/common-session

#自啟動服務
update-rc.d nslcd enable

#可以在Host上通過passwd更改使用者密碼
cp /etc/pam.d/common-password /etc/pam.d/common-password.bak
sed -i 's/use_authtok//' /etc/pam.d/common-password

#使配置生效
/etc/init.d/nscd restart
           

繼續閱讀