LDAP Server Installation

Install the related packages

[root@ldap ~]# yum install -y openldap openldap-clients openldap-servers migrationtools
[root@ldap ~]# cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
[root@ldap ~]# chown ldap. /var/lib/ldap/DB_CONFIG
[root@ldap openldap-servers]# systemctl start slapd
[root@ldap openldap-servers]# systemctl enable slapd
Created symlink from /etc/systemd/system/multi-user.target.wants/slapd.service to /usr/lib/systemd/system/slapd.service.
[root@ldap ~]# setsebool -P allow_ypbind=0 authlogin_nsswitch_use_ldap=0
setsebool:  SELinux is disabled.
[root@ldap ~]# netstat -tlnp | grep slapd 
tcp        0      0 0.0.0.0:389             0.0.0.0:*               LISTEN      44929/slapd         
tcp6       0      0 :::389                  :::*                    LISTEN      44929/slapd         
[root@ldap ~]# 

Configure LDAP Settings

[root@ldap openldap-servers]# slappasswd
New password: 
Re-enter new password: 
{SSHA}zOBsp9sogWCV0MDoE5KzqVXXGg3fbran
[root@ldap openldap-servers]# 

Create the ldif file.

[root@ldap ~]# vi chrootpw.ldif
dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}zOBsp9sogWCV0MDoE5KzqVXXGg3fbran

[root@ldap ~]# ldapadd -Y EXTERNAL -H ldapi:/// -f chrootpw.ldif 
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "olcDatabase={0}config,cn=config"

[root@ldap ~]#

Import the base schemas.

[root@ldap ~]# cd /etc/openldap/schema/ 
[root@ldap schema]# for def in /etc/openldap/schema/*.ldif ; do ldapadd -Y EXTERNAL -H ldapi:/// -f $def; done
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=collective,cn=schema,cn=config"

SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=corba,cn=schema,cn=config"

SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=core,cn=schema,cn=config"
ldap_add: Other (e.g., implementation specific) error (80)
        additional info: olcAttributeTypes: Duplicate attributeType: "2.5.4.2"

SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=cosine,cn=schema,cn=config"

SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=duaconf,cn=schema,cn=config"

SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=dyngroup,cn=schema,cn=config"

SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=inetorgperson,cn=schema,cn=config"

SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=java,cn=schema,cn=config"

SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=misc,cn=schema,cn=config"

SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=nis,cn=schema,cn=config"

SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=openldap,cn=schema,cn=config"

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"

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"

[root@ldap schema]# 

Set your own domain

Generate the password for Manager.
Our domain is gemii.cc, so we replaced the "dc=,dc=" with "dc=gemii, dc=cc".
And the SSHA password is replaced by the token just created.

[root@ldap schema]# slappasswd
New password: 
Re-enter new password: 
{SSHA}V263ZDFqrYGHyDpxOsc4rZmb/OWuIUUd
[root@ldap schema]# 
[root@ldap ~]# vi chdomain.ldif
dn: olcDatabase={1}monitor,cn=config
changetype: modify
replace: olcAccess
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth"
  read by dn.base="cn=Manager,dc=gemii,dc=cc" read by * none

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=gemii,dc=cc

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=Manager,dc=gemii,dc=cc

dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}V263ZDFqrYGHyDpxOsc4rZmb/OWuIUUd

dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcAccess
olcAccess: {0}to attrs=userPassword,shadowLastChange by
  dn="cn=Manager,dc=gemii,dc=cc" write by anonymous auth by self write by * none
olcAccess: {1}to dn.base="" by * read
olcAccess: {2}to * by dn="cn=Manager,dc=gemii,dc=cc" write by * read

~
~
~
~
~
~
~
~
"chdomain.ldif" [New] 29L, 862C written
[root@ldap ~]# 
[root@ldap ~]# ldapmodify -Y EXTERNAL -H ldapi:/// -f chdomain.ldif 
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "olcDatabase={1}monitor,cn=config"

modifying entry "olcDatabase={2}hdb,cn=config"

modifying entry "olcDatabase={2}hdb,cn=config"

modifying entry "olcDatabase={2}hdb,cn=config"

modifying entry "olcDatabase={2}hdb,cn=config"

[root@ldap ~]# 
[root@ldap ~]# vi basedomain.ldif
dn: dc=gemii,dc=cc
objectClass: top
objectClass: dcObject
objectclass: organization
o: Server World
dc: gemii

dn: cn=Manager,dc=gemii,dc=cc
objectClass: organizationalRole
cn: Manager
description: Directory Manager

dn: ou=People,dc=gemii,dc=cc
objectClass: organizationalUnit
ou: People

dn: ou=Group,dc=gemii,dc=cc
objectClass: organizationalUnit
ou: Group

~
~
"basedomain.ldif" [New] 20L, 361C written
[root@ldap ~]# 
[root@ldap ~]# ldapadd -x -D cn=Manager,dc=gemii,dc=cc -W -f basedomain.ldif
Enter LDAP Password: 
adding new entry "dc=gemii,dc=cc"

adding new entry "cn=Manager,dc=gemii,dc=cc"

adding new entry "ou=People,dc=gemii,dc=cc"

adding new entry "ou=Group,dc=gemii,dc=cc"

[root@ldap ~]# 

Add firewall rule

[root@ldap ~]# firewall-cmd --add-service=ldap --permanent 
success
[root@ldap ~]# firewall-cmd --reload 
success
[root@ldap ~]# 

Add a user

Initialize a password firstly.

[root@ldap ~]# slappasswd
New password: 
Re-enter new password: 
{SSHA}dyYqthUCBL7Jfll9BzAcOgI3UkF7PyJk
[root@ldap ~]# 

Prepare user conf file.

[root@ldap ~]# vi ldapuser.ldif
dn: uid=cent,ou=People,dc=gemii,dc=cc
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
cn: Cent
sn: Linux
userPassword: {SSHA}dyYqthUCBL7Jfll9BzAcOgI3UkF7PyJk
loginShell: /bin/bash
uidNumber: 1000
gidNumber: 1000
homeDirectory: /home/cent

dn: cn=cent,ou=Group,dc=gemii,dc=cc
objectClass: posixGroup
cn: Cent
gidNumber: 1000
memberUid: cent

~
"ldapuser.ldif" [New] 18L, 373C written
[root@ldap ~]# 

Load the user with Manager's password.

[root@ldap ~]# ldapadd -x -D cn=Manager,dc=gemii,dc=cc -W -f ldapuser.ldif 
Enter LDAP Password: 
adding new entry "uid=cent,ou=People,dc=gemii,dc=cc"

adding new entry "cn=cent,ou=Group,dc=gemii,dc=cc"

[root@ldap ~]# 

Install phpLDAPadmin to Manage LDAP

[root@ldap ~]# yum -y install httpd
[root@ldap ~]# vi /etc/httpd/conf/httpd.conf
# line 86: change to admin's email address
ServerAdmin root@srv.world
# line 95: change to your server's name
ServerName www.srv.world:80
# line 151: change
AllowOverride All
# line 164: add file name that it can access only with directory's name
DirectoryIndex index.html index.cgi index.php
# add follows to the end
# server's response header
ServerTokens Prod
# keepalive is ON
KeepAlive On
[root@ldap ~]# systemctl start httpd
[root@ldap ~]# systemctl enable httpd
[root@ldap ~]# firewall-cmd --add-service=http --permanent
success
[root@ldap ~]# firewall-cmd --reload 
success
[root@ldap ~]# vi /var/www/html/index.html
 <html>
<body>
<div style="width: 100%; font-size: 40px; font-weight: bold; text-align: center;">
Test Page
</div>
</body>
</html>

Install PHP

[root@ ldap ~]# yum -y install php php-mbstring php-pear
[root@ ldap ~]# vi /etc/php.ini
# line 878: uncomment and add your timezone
date.timezone = "Asia/Shanghai"
[root@ ldap ~]# systemctl restart httpd
[root@ ldap ~]# vi /var/www/html/index.php
 <html>
<body>
<div style="width: 100%; font-size: 40px; font-weight: bold; text-align: center;">
<?php
   print Date("Y/m/d");
?>
</div>
</body>
</html>

Install PHPLDAPAdmin

[root@ldap ~]# wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
[root@ldap ~]# rpm -ivh epel-release-latest-7.noarch.rpm
[root@ldap ~]# yum repolist      ##检查是否已添加至源列表
# install from EPEL
[root@ldap ~]# yum --enablerepo=epel -y install phpldapadmin
[root@ldap ~]# vi /etc/phpldapadmin/config.php
# line 397: uncomment, line 398: comment out
$servers->setValue('login','attr','dn');
// $servers->setValue('login','attr','uid');
[root@dlp ~]# vi /etc/httpd/conf.d/phpldapadmin.conf
Alias /phpldapadmin /usr/share/phpldapadmin/htdocs
Alias /ldapadmin /usr/share/phpldapadmin/htdocs
<Directory /usr/share/phpldapadmin/htdocs>
  <IfModule mod_authz_core.c>
    # Apache 2.4
    # line 12: add access permission
    Require local
    Require ip 192.168.0.0/16
[root@ldap ~]# systemctl restart httpd 

Open the Admin page

http://192.168.0.137:8888/phpldapadmin/
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,589评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,615评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,933评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,976评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,999评论 6 393
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,775评论 1 307
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,474评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,359评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,854评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,007评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,146评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,826评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,484评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,029评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,153评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,420评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,107评论 2 356

推荐阅读更多精彩内容