设为首页 收藏本站
查看: 1390|回复: 0

[经验分享] ldap+ldap-account-manager+svn+apache+php做账号管理

[复制链接]

尚未签到

发表于 2018-11-17 10:43:39 | 显示全部楼层 |阅读模式
  Centos6配置ldap
  设备基本信息:
  1、系统基本信息
  cat /etc/redhat-release

  CentOS>  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
DSC0000.jpg

  这是和源文件不同的几个地方
  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)
DSC0001.jpg

  在网上查了一下,
  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
DSC0002.jpg

  测试配置文件没问题
  13、启动服务
  (1)问题1:
DSC0003.jpg

  这里又报错,这是因为没有给/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  ]
DSC0004.jpg

  (2)问题2:如果出现:
DSC0005.jpg

  报错原因为权限问题,解决方法为
  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
DSC0006.jpg

  这样就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
DSC0007.jpg

  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
DSC0008.jpg

  改为
  # 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服务端配置完毕
  这过程中会让你输密码,密码就是你上面配置的密码
DSC0009.jpg

DSC00010.jpg

DSC00011.jpg

  注:如果遇到如下错误:
DSC00012.jpg

  解决办法是:
  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=*)"
DSC00013.jpg

  如果找不到就重启下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
DSC00014.jpg

  密码就是上面你配置的ldap的密码
  选择中文登录
  ④
DSC00015.jpg

  点击建立
  ⑤查看你导入进来的用户
DSC00016.jpg

  ⑥新建新的用户
  点击新用户
  1)、编辑个人信息
DSC00017.jpg

  2)、编辑unix信息
DSC00018.jpg

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

DSC00020.jpg

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

  29、检查新建的ldap用户是否能够查询到
  ldapsearch -LLL -W -x -H ldap://hxy.com -D "cn=Forand,dc=hxy,dc=com" -b "dc=hxy,dc=com" "(uid=test1)"
DSC00022.jpg

  能查询到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 /etc/saslauthd.conf /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
DSC00023.jpg

  这样就没问题了
  6、在svn的server的配置文件上把saslauth的认证开启
DSC00024.jpg

  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/
DSC00025.jpg

  9、然后用ldap账户提交svn
  svn checkout svn://192.168.18.184/patch /tmp --username=test1 --password=123456
DSC00026.jpg

DSC00027.jpg

  这样就没问题了
  到此ldap+svn试验完成
  本文参考:
  https://www.cnblogs.com/dadong616/p/5092655.html
  https://blog.csdn.net/reblue520/article/details/51804162


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-636132-1-1.html 上篇帖子: rhce课程视频apache讲解 下篇帖子: apache2.4 You don't have permission to access / on-EDWIRE的博客
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表