OpenLDAP是輕量目錄訪問協議,在我們工作中會經常使用到,下面是我記錄的部署過程,希望能給大家帶來一些幫助。
工具/原料
Centos7
ldap administrator
虛擬機器
方法/步驟
一、openldap安裝,確保安裝好centos7.0的虛擬機器能正常上網際網路。
# yum install -y openldap-* openldap-clients openldap-servers migrationtools freeradius-ldap freeradius-utils
配置 OpenLDAP:
#vim /etc/openldap/slapd.d/cn\=config/olcDatabase\=\{2\}hdb.ldif
olcSuffix: dc=baidu,dc=cn
olcRootDN: cn=admin,dc=baidu,dc=cn
新增一行:
olcRootPW: 123456 #密碼根據自己需要修改
配置監控資料庫檔案:
#vim /etc/openldap/slapd.d/cn\=config/olcDatabase\=\{1\}monitor.ldif
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=extern
al,cn=auth" read by dn.base="cn=admin,dc=baidu,dc=cn" read by * none
拷貝LDAP資料庫配置檔案到指定目錄並賦予許可權:
#cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
# chown -R ldap.ldap /var/lib/ldap
測試配置檔案是否正確
slaptest -u
[[email protected] ~]# slaptest -u
57e4dcb4 ldif_read_file: checksum error on "/etc/openldap/slapd.d/cn=config/olcDatabase={1}monitor.ldif"
57e4dcb4 ldif_read_file: checksum error on "/etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb.ldif"
config file testing succeeded
開啟和啟用slapd在啟動服務,並確認:
#systemctl start slapd //啟動
# systemctl enable slapd //開機自動啟動
#netstat -lt grep ldap //確認是否啟動
tcp 0 0 0.0.0.0:ldap 0.0.0.0:* LISTEN
tcp6 0 0 [::]:ldap [::]:* LISTEN
LDAP伺服器的配置,新增需要schema模式:
# cd /etc/openldap/schema/
# ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f cosine.ldif
# ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f nis.ldif
# ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f collective.ldif
# ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f corba.ldif
# ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f core.ldif
# ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f duaconf.ldif
# ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f dyngroup.ldif
# ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f inetorgperson.ldif
# ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f java.ldif
# ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f misc.ldif
# ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f openldap.ldif
# ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f pmi.ldif
# ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f ppolicy.ldif
[[email protected] ~]# cd /etc/openldap/schema/
[[email protected] schema]# ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f ppolicy.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=ppolicy,cn=schema,cn=config"
[[email protected] schema]# ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f pmi.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=pmi,cn=schema,cn=config"
使用遷移工具來建立LDAP:
#cd /usr/share/migrationtools/
# vim migrate_common.ph
//在61行
$NAMINGCONTEXT{'group'} = "ou=Groups";
//在 71行
$DEFAULT_MAIL_DOMAIN = "baidu.cn";
//在74行,
$DEFAULT_BASE = "dc=baidu,dc=cn";
//在90行
$EXTENDED_SCHEMA = 1;
:wq!
生成一個ldif檔案並匯入ladp資料庫:
cd /usr/share/migrationtools/
# ./migrate_base.pl > /root/base.ldif
#ldapadd -x -W -D "cn=admin,dc=baidu,dc=cn" -f /root/base.ldif
輸入密碼: //第二步裡面設定的密碼
在liunx系統中建立一些使用者並設定密碼:
#mkdir /home/guests
#useradd -d /home/guests/ldapuser1 ldapuser1
#useradd -d /home/guests/ldapuser2 ldapuser2
#useradd -d /home/guests/ldapuser3 ldapuser3
#echo '[email protected]' passwd --stdin ldapuser1
#echo '[email protected]' passwd --stdin ldapuser2
#echo '[email protected]' passwd --stdin ldapuser3
從/etc/shadow過濾掉這些使用者、組、密碼:
#getent passwd tail -n 6 > /root/users
#getent shadow tail -n 6 > /root/shadow
# getent group tail -n 6 > /root/groups
使用migrationtools ldif檔案建立這些使用者:
#cd /usr/share/migrationtools
#vim migrate_passwd.pl
找到188行 /etc/shadow 改成 /root/shadow
# ./migrate_passwd.pl /root/users > users.ldif
# ./migrate_group.pl /root/groups > groups.ldif
上傳這些使用者和組ldif檔案到LDAP資料庫:
#cd /usr/share/migrationtools
# ldapadd -x -W -D "cn=admin,dc=baidu,dc=cn" -f users.ldif
輸入密碼
# ldapadd -x -W -D "cn=admin,dc=baidu,dc=cn" -f groups.ldif
輸入密碼
最後,使用ladp administrator軟體可以看到ldap目錄已經看到了,如下圖:
注意事項
域名一定不要搞錯,配置過程要細心。