OpenLdap安装配置

OpenLdap安装配置
原创博文http://www.cnblogs.com/elvi/p/7661126.html
# OpenLdap安装配置
# 环境centos6

##同步时间
ntpdate ntp.shu.edu.cn
yum install epel-release #EPEL源
yum install php httpd -y

#安装OpenLDAP
yum install openldap openldap-* -y
yum install nscd nss-pam-ldapd nss-* pcre pcre-* -y
#配置ldap
cp /usr/share/openldap-servers/slapd.conf.obsolete /etc/openldap/slapd.conf

#设置ldap管理员密码
slappasswd -s q1w1
{SSHA}4NuDoOlB50xX/RtgcaTpDa6nQ4Ks7O2d
slappasswd -s q1w1 |sed -e "s#{SSHA}#rootpw	{SSHA}#g" >>/etc/openldap/slapd.conf    #设置密码
tail -1 /etc/openldap/slapd.conf
#修改dc配置
vim /etc/openldap/slapd.conf
#以下参数大概在114行
database        bdb                                #使用bdb数据库
suffix          "dc=dev,dc=com"                    #定义dc,指定搜索的域
rootdn          "cn=admin,dc=dev,dc=com"           #定义管理员的dn,使用这个dn能登陆openldap
#优化ldap配置参数
#loglevel 296                    #定义日志级别
#cachesize 1000                  #换成条目数
checkpoint 2048 10              #表示内存中达到2048k或者10分钟,执行一次checkpoint,即写入数据文件的操作
#配置相关权限
#删除默认权限,将下面的内容都删除
database config
access to *
        by dn.exact="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manage
        by * none
 
# enable server status monitoring (cn=monitor)
database monitor
access to *
        by dn.exact="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read
        by dn.exact="cn=Manager,dc=my-domain,dc=com" read
        by * none
        
#添加新的权限(这是2.3的权限设置方式)
access to *
        by self write
        by anonymous auth
        by * read

#配置syslog记录ldap的服务日志
cp /etc/rsyslog.conf /etc/rsyslog.conf_`date +%Y%m%d`.bak
echo "local4.*   /var/log/ldap.log" >>/etc/rsyslog.conf
/etc/init.d/rsyslog restart #重启rsyslog服务

#配置ldap数据库路径
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
chown ldap.ldap /var/lib/ldap/DB_CONFIG 
chmod 700 /var/lib/ldap/
ll /var/lib/ldap/

egrep -v "#|^$" /var/lib/ldap/DB_CONFIG 
slaptest -u    #检查配置文件是否正常

#ldap配置查看
egrep -v "#|^$" /var/lib/ldap/DB_CONFIG 
slaptest -u
egrep -v "^#|^$" /etc/openldap/slapd.conf

#赋予配置目录相应权限:
chown -R ldap:ldap /var/lib/ldap
chown -R ldap:ldap /etc/openldap/
#设置本机ip域名解析
echo "172.16.11.31        dev.com">>/etc/hosts
#启动ldap服务
 /etc/init.d/slapd start
chkconfig slapd on
ps aux |grep ldap
netstat -tunlp |grep slapd
tail /var/log/ldap.log #查看日志文件

#查询一下ldap的内容
ldapsearch -LLL -W -x -H ldap://dev.com -D "cn=admin,dc=dev,dc=com" -b "dc=dev,dc=com" "(uid=*)"
#重新生成2.3的配置文件
mv /etc/openldap/slapd.d{,.bak}
mkdir /etc/openldap/slapd.d
chown -R ldap.ldap /etc/openldap/slapd.d
slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d/
ll /etc/openldap/slapd.d/
/etc/init.d/slapd restart
netstat -tunlp |grep slapd
ldapsearch -LLL -W -x -H ldap://dev.com -D "cn=admin,dc=dev,dc=com" -b "dc=dev,dc=com" "(uid=*)"
     
#安装phpldapadmin
yum install phpldapadmin -y
cp /etc/phpldapadmin/config.php{,.bak}
vim /etc/phpldapadmin/config.php #配置用DN登录397行
    $servers->setValue('login','attr','dn');
    // $servers->setValue('login','attr','uid');
vim /etc/httpd/conf.d/phpldapadmin.conf #允许从远程访问
    Allow from all 
echo ServerName localhost:80 >>/etc/httpd/conf/httpd.conf #添加本机web 80端口
service httpd restart 
#浏览器输入:http://IP地址/phpldapadmin/进行访问
cn=admin,dc=dev,dc=com

###################################
#创建用户
cd /etc/openldap
vim test.ldif
#####
dn:dc=dev,dc=com
dc:dev
objectclass:top
objectclass:domain
objectclass:dcobject
objectclass:organization
o:dev,Inc.

dn:ou=it, dc=dev, dc=com
ou:it
objectclass:organizationalUnit

dn:cn=test,ou=it,dc=dev,dc=com
cn:test
sn:Test User
objectclass:person
#####
ldapadd -x -D "cn=admin,dc=dev,dc=com" -W -f /etc/openldap/test.ldif

#搜索操作:
ldapsearch -x -b 'dc=dev,dc=com'
#删除所有子节点
ldapdelete -x -D 'cn=admin,dc=dev,dc=com' -W -r 'dc=dev,dc=com'


###################################
##创建系统账号并导入到LDAP,需要migrationtools这个工具
useradd ldap1
passwd ldap1 #w1w1
yum install migrationtools -y
cd /usr/share/migrationtools/
vim  migrate_common.ph #修改70行左右的dc
# Default DNS domain
     71 $DEFAULT_MAIL_DOMAIN = "dev.com";
     73 # Default base
     74 $DEFAULT_BASE = "dc=dev,dc=com";
#生成文件
 ./migrate_base.pl > /tmp/base.ldif
 ./migrate_passwd.pl  /etc/passwd > /tmp/passwd.ldif
 ./migrate_group.pl  /etc/group > /tmp/group.ldif
#导入到LDAP
ldapadd -x -D "cn=admin,dc=dev,dc=com" -W -f /tmp/base.ldif
ldapadd -x -D "cn=admin,dc=dev,dc=com" -W -f /tmp/passwd.ldif
ldapadd -x -D "cn=admin,dc=dev,dc=com" -W -f /tmp/group.ldif
service slapd restart
###################################

#开启OpenLDAP使用的389端口:
/etc/init.d/iptables stop
/sbin/iptables -I INPUT -p tcp --dport 389 -j ACCEPT
/etc/rc.d/init.d/iptables save
/etc/init.d/iptables status
/etc/init.d/iptables restart
原文地址:https://www.cnblogs.com/elvi/p/7661126.html