Centos6配置ldap

设备基本信息:

1、系统基本信息

cat /etc/redhat-release

CentOS release 6.6 (Final)

uname -a

Linux master 2.6.32-504.el6.x86_64 #1 SMP Wed Oct 15 04:27:16 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

2、软件版本基本信息,软件都是yum安装的

一、基础配置

1、关闭防火墙

iptables -F

/etc/init.d/iptables save

/etc/init.d/iptables stop

chkconfig --del iptables

2、关闭selinux

sed -i 's/SELINUX=enabled/SELINUX=disabled/g' /etc/selinux/config

setenforce 0

查看selinux

getenforce

3、配置域名解析hosts
echo "192.168.18.184 hxy.com" >> /etc/hosts

4、安装ldap

yum -y install openldap openldap-servers openldap-clients openldap-devel compat-openldap -y

5、查看安装完成后的结果:

[root@bogon ~]# tail -1 /etc/passwd

ldap:x:55:55:OpenLDAP server:/var/lib/ldap:/sbin/nologin

6、还可以通过rpm -qa|grep openldap看到安装了5个软件包

rpm -qa|grep openlda

openldap-servers-2.4.40-16.el6.x86_64

openldap-2.4.40-16.el6.x86_64

openldap-clients-2.4.40-16.el6.x86_64

compat-openldap-2.3.43-2.el6.x86_64

openldap-devel-2.4.40-16.el6.x86_64

7、复制配置文件

cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG

cp /usr/share/openldap-servers/slapd.conf.obsolete /etc/openldap/slapd.conf

8、生成密码:(密码你自己设定hxy123)这条命令是将输出结果输入到slapd.conf文件尾部

注:-s后面接的是你的密码

slappasswd -s hxy123|sed -e "s#{SSHA}#rootpw\t{SSHA}#g">>/etc/openldap/slapd.conf

tail -1 /etc/openldap/slapd.conf

rootpw   {SSHA}8oL44HqnBOxEZyKGJr1Som2WV7apHHG0

9、查看slapd.conf配置文件:

grep -Ev "^$|^#" /etc/openldap/slapd.conf > /etc/openldap/slapd.conf_bak

\cp /etc/openldap/slapd.conf_bak /etc/openldap/slapd.conf

cat /etc/openldap/slapd.conf

include         /etc/openldap/schema/corba.schema

include         /etc/openldap/schema/core.schema

include         /etc/openldap/schema/cosine.schema

include         /etc/openldap/schema/duaconf.schema

include         /etc/openldap/schema/dyngroup.schema

include         /etc/openldap/schema/inetorgperson.schema

include         /etc/openldap/schema/java.schema

include         /etc/openldap/schema/misc.schema

include         /etc/openldap/schema/nis.schema

include         /etc/openldap/schema/openldap.schema

include         /etc/openldap/schema/ppolicy.schema

include         /etc/openldap/schema/collective.schema

allow bind_v2

pidfile         /var/run/openldap/slapd.pid

argsfile        /var/run/openldap/slapd.args

TLSCACertificatePath /etc/openldap/certs

TLSCertificateFile "\"OpenLDAP Server\""

TLSCertificateKeyFile /etc/openldap/certs/password

database config

access to *

by dn.exact="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manage

by * none

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

database        bdb

suffix          "dc=my-domain,dc=com"

checkpoint      1024 15

rootdn          "cn=Manager,dc=my-domain,dc=com"

directory       /var/lib/ldap

index objectClass                       eq,pres

index ou,cn,mail,surname,givenname      eq,pres,sub

index uidNumber,gidNumber,loginShell    eq,pres

index uid,memberUid                     eq,pres,sub

index nisMapName,nisMapEntry            eq,pres,sub

rootpw   {SSHA}8oL44HqnBOxEZyKGJr1Som2WV7apHHG0

10、修改配置文件

sed -i 's@cn=Manager,dc=my-domain,dc=com@cn=Forand,dc=hxy,dc=com@g' /etc/openldap/slapd.conf

sed -i 's@dc=my-domain,dc=com@dc=hxy,dc=com@' /etc/openldap/slapd.conf

echo -e 'loglevel 296\ncachesize 1000'>>/etc/openldap/slapd.conf

vim /etc/openldap/slapd.conf

by dn.exact="cn=Forand,dc=hxy,dc=com" read

suffix          "dc=hxy,dc=com"

rootdn          "cn=Forand,dc=hxy,dc=com"

rootpw   {SSHA}8oL44HqnBOxEZyKGJr1Som2WV7apHHG0

loglevel 296
cachesize 1000

这是和源文件不同的几个地方

11、修改完成后测试一下配置文件是否有问题

slaptest -f /etc/openldap/slapd.conf

我这里报错了!:

[root@hxy openldap]# slaptest -f /etc/openldap/slapd.conf -v

5b0d6f3d bdb_db_open: DB_CONFIG for suffix "dc=hxy,dc=com" has changed.

5b0d6f3d Performing database recovery to activate new settings.

5b0d6f3d bdb_db_open: database "dc=hxy,dc=com": recovery skipped in read-only mode. Run manual recovery if errors are encountered.

5b0d6f3d bdb_db_open: database "dc=hxy,dc=com": db_open(/var/lib/ldap/id2entry.bdb) failed: No such file or directory (2).

5b0d6f3d backend_startup_one (type=bdb, suffix="dc=hxy,dc=com"): bi_db_open failed! (2)

slap_startup failed (test would succeed using the -u switch)

在网上查了一下,

db_open(/var/lib/ldap/id2entry.bdb) failed: No such file or directory (2)

backend_startup_one (type=bdb, suffix="dc=hxy,dc=com"): bi_db_open failed! (2)

(这个文件需要登slapd启动时,才会生成 所以现在没有 不用管)

这里报错是因为在第三步后没有重新生成配置文件,启动slapd。而是直接修改配置文件去了

12、可以试下这样启动

slaptest -f /etc/openldap/slapd.conf  -u

config file testing succeeded

测试配置文件没问题

13、启动服务

(1)问题1:

这里又报错,这是因为没有给/var/lib/ldap授权,授权后chown -R ldap.ldap /var/lib/ldap/,再重启slapd,/etc/init.d/slapd restart,可以看到成功的

chown -R ldap.ldap /var/lib/ldap/

/etc/init.d/slapd restart

Stopping slapd:                                            [FAILED]

Starting slapd:                                            [  OK  ]

(2)问题2:如果出现:

报错原因为权限问题,解决方法为

rm -rf /etc/openldap/slapd.d/*

slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d/

chown -R ldap.ldap /etc/openldap/slapd.d

/etc/init.d/slapd restart

14、把ldap的日志加入系统日志记录

cp /etc/rsyslog.conf /etc/rsyslog.conf.bak.$(date +%F%T)
echo '#record ldap.log by hxy 2018-07-08' >> /etc/rsyslog.conf
echo 'local4.* /var/log/ldap.log'>> /etc/rsyslog.conf
tail -1 /etc/rsyslog.conf
#local4.* /var/log/ldap.log
service rsyslog restart

15、重新生成配置文件的配置信息:

先删除最先的配置文件生成的信息:

rm -rf /etc/openldap/slapd.d/*

重新生成:

slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d/

config file testing succeeded

查看是否生成的是自己修改的配置文件信息:

cat /etc/openldap/slapd.d/cn\=config/olcDatabase\=\{2\}bdb.ldif

他这里会输出一推信息,我们只关心我们的信息是否存在就行了:

cat /etc/openldap/slapd.d/cn\=config/olcDatabase\=\{2\}bdb.ldif|egrep "olcSuffix|olcRootDN"

olcSuffix: dc=hxy,dc=com

olcRootDN: cn=Forand,dc=hxy,dc=com

这样就OK了

授权, 重启:

chown -R ldap.ldap /etc/openldap/slapd.d/

/etc/init.d/slapd restart

16、配置ldap数据库权限

ll /var/lib/ldap/DB_CONFIG 
chown ldap.ldap /var/lib/ldap/DB_CONFIG
chmod 700 /var/lib/ldap/
ls -l /var/lib/ldap/

17、验证是否成功:

slaptest -u

config file testing succeeded

18、创建一个账号,用于导入ldap数据库(密码123456)

useradd testuser

passwd testuser

useradd ldapuser

passwd ldapuser

19、至此,这些用户仅仅是系统上存在的用户(存储在/etc/passwd和/etc/shadow上),并没有在LDAP数据库里,所以要把这些用户导入到LDAP里面去。但LDAP只能识别特定格式的文件 即后缀为ldif的文件(也是文本文件),所以不能直接使用/etc/passwd和/etc/shadow。 需要migrationtools这个工具把这两个文件转变成LDAP能识别的文件。

20、安装配置migrationtools

yum install migrationtools -y

21、进入migrationtool配置目录

cd /usr/share/migrationtools/

23、首先编辑

sed -i 's/padl/hxy/g' migrate_common.ph

vim migrate_common.ph

改为

# Default DNS domain

$DEFAULT_MAIL_DOMAIN = "hxy.com";

# Default base

$DEFAULT_BASE = "dc=hxy,dc=com";

24、创建LDIF文件

拷贝密码和组的文件到tmp下面然后留下你需要的用户和组,不然整个用系统的文件有很多很杂,

cp /etc/passwd /tmp/

cp /etc/group /tmp/

cat /tmp/passwd

testuser:x:501:501::/home/testuser:/bin/bash

ldapuser:x:502:502::/home/ldapuser:/bin/bash

cat /tmp/group

testuser:x:501:

ldapuser:x:502:

25、下面利用pl脚本将/etc/passwd 和/etc/shadow生成LDAP能读懂的文件格式,保存在/tmp/下

cd /usr/share/migrationtools/

./migrate_base.pl > /tmp/base.ldif

./migrate_passwd.pl  /tmp/passwd > /tmp/passwd.ldif

./migrate_group.pl  /tmp/group > /tmp/group.ldif

26、下面就要把这三个文件导入到LDAP,这样LDAP的数据库里就有了我们想要的用户

ldapadd -x -D "cn=Forand,dc=hxy,dc=com" -W -f /tmp/base.ldif

ldapadd -x -D "cn=Forand,dc=hxy,dc=com" -W -f /tmp/passwd.ldif

ldapadd -x -D "cn=Forand,dc=hxy,dc=com" -W -f /tmp/group.ldif

过程若无报错,则LDAP服务端配置完毕

这过程中会让你输密码,密码就是你上面配置的密码

注:如果遇到如下错误:

解决办法是:

rm -rf /etc/openldap/slapd.d/*

chown -R ldap.ldap /etc/openldap

slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d

config file testing succeeded

27、测试查找内容

ldapsearch -LLL -W -x -H ldap://hxy.com -D "cn=Forand,dc=hxy,dc=com" -b "dc=hxy,dc=com" "(uid=*)"

如果找不到就重启下ldap就行

到这里ldap的基本配置算是完成了

我们还可以下载个web管理界面来更号的管理ldap

28、为ldap master配置web管理接口

①、安装lamp环境
yum install -y httpd php php-ldap php-gd

②、安装ldap-account-manager管理软件
https://www.ldap-account-manager.org/lamcms/releases?page=3
将ldap-account-manager-3.7.tar.gz安装包上传到/var/www/html目录

cd /var/www/html/

tar zxf ldap-account-manager-3.7.tar.gz

mv ldap-account-manager-3.7 ldap

cd ldap/config

cp config.cfg_sample config.cfg

cp lam.conf_sample lam.conf

sed -i 's#cn=Manager#cn=Forand#g' lam.conf

sed -i 's#dc=my-domain#dc=hxy#g' lam.conf

chown -R apache.apache /var/www/html/ldap

③页面登录一下

http://192.168.18.184/ldap/templates/login.php

密码就是上面你配置的ldap的密码

选择中文登录

点击建立

⑤查看你导入进来的用户

⑥新建新的用户

点击新用户

1)、编辑个人信息

2)、编辑unix信息

3)、再设置密码(123456),点击确定,然后点击保存

4)、再在用户里面查看一下

29、检查新建的ldap用户是否能够查询到

ldapsearch -LLL -W -x -H ldap://hxy.com -D "cn=Forand,dc=hxy,dc=com" -b "dc=hxy,dc=com" "(uid=test1)"

能查询到OK ldap配置完成

到此ldap配置完成

二、配置svn

1、安装svn

yum install -y subversion

2、新建svn目录

mkdir -p /root/svn/svnserver

4、启动svn

svnserve -d -r /root/svn/svnserver/

备注:如果要更改端口启动的时候接上“--listen-port”新端口。

5、创建版本库

svnadmin create /root/svn/svnserver/patch

6、修改svnserve.conf配置文件,在[general]下方加入这四行

> /root/svn/svnserver/patch/conf/svnserve.conf

cat >> /root/svn/svnserver/patch/conf/svnserve.conf<<EOF

[general]

anon-access = none

auth-access = write

password-db = passwd

authz-db = authz

realm = patch

[sasl]

use-sasl = true

EOF

vim /root/svn/svnserver/patch/conf/svnserve.conf

[general]

anon-access = none

auth-access = write

password-db = passwd

authz-db = authz

realm = patch

[sasl]

use-sasl = true

备注:realm 这行也可以不加。

7、创建svn用户和权限分配

在 /root/svn/svnserver/patch/conf目录下,有两个文件是配置用户账号密码和用户权限的。

passwd 此文件配置用户账号和密码

vim /root/svn/svnserver/patch/conf/passwd

[users]

svnTest= 123456

test = 123456

authz 此文件配置用户权限

vim /root/svn/svnserver/patch/conf/authz

[aliases]

[groups]

ldap_user = test1

admin = test

user = test,svnTest

[patch:/]

@admin = rw

@user = rw

@ldap_user = rw

备注:authz这个文件详细控制权限

9、在linux上检查命令是

svn checkout svn://192.168.18.184:3690/patch

输入完成后这个就是svn了

或者是在windows上面下个客户端做实验都行

三、SVN配置完成后配置saslauthd的认证方式

1、saslauthd

cat >> /etc/saslauthd.conf <<EOF

ldap_servers: ldap://hxy.com/

ldap_bind_dn: cn=Forand,dc=hxy,dc=com

ldap_bind_pw: hxy123

ldap_search_base: ou=People,dc=hxy,dc=com

ldap_filter: uid=%U

ldap_password_attr: userPassword

EOF

vim /etc/saslauthd.conf

ldap_servers: ldap://hxy.com/ #你的ldap地址

ldap_bind_dn: cn=Forand,dc=hxy,dc=com

ldap_bind_pw: hxy123 #你ldap的密码

ldap_search_base: ou=People,dc=hxy,dc=com

ldap_filter: uid=%U

ldap_password_attr: userPassword

2、修改saslauthd认证方式为ldap认证

sed -i 's/MECH=pam/MECH=ldap/' /etc/sysconfig/saslauthd

vim /etc/sysconfig/saslauthd

MECH=pam

改为

MECH=ldap

3、修改svn使用saslauthd认证

echo -e 'pwcheck_method: saslauthd\nmech_list: PLAIN LOGIN' >>/etc/sasl2/svn.conf

vim /etc/sasl2/svn.conf

pwcheck_method: saslauthd

mech_list: PLAIN LOGIN

4、然后重启saslauthd服务

/etc/init.d/saslauthd restart

5、然后试着验证一下ldap用户用

testsaslauthd -utest1 -p123456

这样就没问题了

6、在svn的server的配置文件上把saslauth的认证开启

7、取消这个的注释

vim /root/svn/svnserver/patch/conf/svnserve.conf

use-sasl = true

或者可以直接用sed

sed -i 's/# use-sasl = true/use-sasl = true/' /root/svn/svnserver/patch/conf/svnserve.conf

8、重启svn服务

pkill svn

svnserve -d -r /root/svn/svnserver/

9、然后用ldap账户提交svn

svn checkout svn://192.168.18.184/patch /tmp --username=test1 --password=123456

这样就没问题了

到此ldap+svn试验完成

本文参考:

https://www.cnblogs.com/dadong616/p/5092655.html

https://blog.csdn.net/reblue520/article/details/51804162

转载于:https://blog.51cto.com/853056088/2138855

ldap+ldap-account-manager+svn+apache+php做账号管理相关推荐

  1. Linux搭建LDAP Account Manager(LAM)

    搭建 ldap account manager LAM一直更新的很快,所以有很多版本供选择 因为这边的网络环境不是特别的好,进LAM的官网去下载最新的比较慢,所以没有配置最新的版本 这是我自己找的一个 ...

  2. trac mysql_Ubuntu安装Trac+svn+apache+ldap+[mysql]认证

    Ubuntu安装Trac+svn+apache+ldap认证 权限全为www-data:www-data apt-get install libapache2-svn libsvn-perl libs ...

  3. linux安装trac+svn+apache+wike,apache+svn+trac安装及配置2

    安装配置Trac 要预先安装的软件包在trac-0.11.2的INSTALL文件里有列出,如下: * Python, version >= 2.3. + Please keep in mind, ...

  4. ubuntu+svn+apache配置

    centos+apache+subversion+LDAP  :https://blog.csdn.net/qq_41566366/article/details/117356703 window + ...

  5. docker-comose搭建openldap + svn + apache

    docker-comose搭建openldap + svn + apache 前言 一.svn简介 二.docker及docker-compose安装 三.docker-compose安装svn(依赖 ...

  6. 使用docker镜像搭建svn+Apache环境

    2019独角兽企业重金招聘Python工程师标准>>> 环境准备 虚拟机装好之后,按照官网步骤检查虚拟机内核版本,必须在3.10以上版本,故此处安装redhat_7.2 # unam ...

  7. linux docker安装svn,使用docker镜像搭建svn+Apache环境

    环境准备 虚拟机装好之后,按照官网步骤检查虚拟机内核版本,必须在3.10以上版本,故此处安装redhat_7.2 # uname -r 3.10.0-327.el7.x86_64 安装docker: ...

  8. 阿里云ECS,搭建SVN+Apache服务器

    为什么80%的码农都做不了架构师?>>>    在CentOS 7下,搭建SVN+Apache服务器: 1.先检查是否已经安装了httpd服务,如下表示已经安装 [root@iZ23 ...

  9. 使用SVN+apache搭建一个版本控制服务器

    服务端: IP:192.168.10.63 服务概述: SVN(subversion)是近年来崛起的版本管理工具,是CVS的接班人.目前,绝大多数开源软件都使用svn作为代码版本管理软件.作为一个运维 ...

最新文章

  1. Perl 安装 模块Net::SSH2 有些0day是ssh2
  2. [JavaScript]让footer总是停留在页面的底部(footer all the way at the bottom of the page)
  3. macos sierra 引导镜像_真想不到,在win10上可以制作苹果macOS启动U盘
  4. hdu2022——海选女主角
  5. 怎么用python分析数据_如何用python进行数据分析?
  6. 安装mujoco报错:distutils.errors.DistutilsExecError: command ‘gcc‘ failed with exit status 1
  7. 软件开发需求整理概要
  8. 【Altium Designer2018设计简单的PCB文件实例】
  9. Ubuntu14.04安装wineqq国际版
  10. php贴吧系统,PhpSay 开源贴吧系统 v2.1
  11. MQTT:QoS服务质量 0,1,2(Quality of Service 0, 1 2)
  12. php源码 运费计算,php – Woocommerce:获取运输邮政编码以计算运费
  13. 用树莓派控制两盏灯(二)
  14. C语言中scanf与分隔符(空格回车Tab)
  15. 微信小程序--服务器数据交互
  16. 卸载NotePad++/SublimeText吧:VSCode才是史上最优秀的IDE编辑器
  17. win10 任务栏全透明一步直达
  18. [Alpha] Scrum Meeting 8 - TEAM LESS ERROR
  19. C++面向对象程序设计教程
  20. 立创开源 | QMK客制化键盘84键 USB HUB 验证板

热门文章

  1. python论坛签到_Python实现某论坛自动签到功能
  2. 黑马博客——详细步骤(一)路由跳转和抽取公共部分代码
  3. 如何搭建个人博客或企业官网
  4. 英语计算机试卷二,计算机专业英语模拟试题2参考答案.doc
  5. 2个相同的 stm32 can通讯不成功_STM32芯片的几种烧写方式简介
  6. html 高德地图坐标,点标记-调起高德地图-示例中心-JS API 示例 | 高德地图API
  7. 没有期刊申请清华博士_ICLR飞升,IJCAI降级:清华的新版AI顶会评级引发学术圈热议...
  8. '' and 'and' difference in python
  9. solve mass matrix in matlab
  10. TransUNet:Transformers医学图像分割强编码器