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

[经验分享] CentOS 5.6 配置Openldap

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-10-15 08:39:38 | 显示全部楼层 |阅读模式
  CentOS下LDAP服务配置指南
  1.     LDAP服务器端配置
  2.     LDAP客户端配置
  3.     LDAP服务器复制
  4.     LDAP服务器安全通信
  
一  LDAP服务器端配置管理

  1.     LDAP服务器软件包安装
  CentOS系统中要实现openLDAP的功能必须要安装openldap,openldap-servers,openldap-clients三个软件包。CentOS安装光盘中提供LDAP服务器的RPM安装包版本为2.3.27。其中openldap包已经默认安装,用来提供LDAP服务的基本文件目录。Openldap-servers提供
  服务端功能,openldap-clients提供客户端的搜索工具,这两个包必须手动安装。
  #rpm –ivh openldap-servers-2.3.27-8.e15-1.3.i386.rpm
  #rpm –ivh openldap-clients-2.3.27-8.e15-1.3.i386.rpm
  2.     创建复制BDB数据库配置文件
  LDAP服务器默认采用BDB(伯克利)数据库作为后台,CentOS中已经默认安装(如没有也可以RPM或者tar包安装).需要先将/etc/openldap/目录下的DB-CONFIG.example文件复
  制到/var/lib/ldap/目录下并更名为DB-CONFIG并更改权限为ldap所有。
  #cp /etc/openldap/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
  #chown ldap:ldap /var/lib/ldap/DB_CONFIG
  3。   服务器文件配置.
  LDAP服务器的主配置文件为/etc/openldap/slapd.conf,包含了复制功能。
  (1)   找到   
        suffix “dc=my-domain,dc=com”
        rootdn “cn=Manager,dc=my-domain,dc=com” 两行。
  根据实际情况修改为
        suffix  dc=boy,dc=com   设定域名后缀
        rootdn cn=Manager,dc=boy,dc=com 超级管理员
  (2)  哈希密码 : rootpw是管理员的密码,但是明文密码存放有很大的安全隐患,可以用哈希散列的方式存储提高安全度。
  #slappasswd –h {SSHA} > 1.txt
  将哈希后产生的散列值添加进slapd.conf文件
  rootpw    {SSHA}   散列值
  (3)  手动添加日志功能
  LDAP服务器需要手动添加日志功能。/etc/openldap/slapd.conf中末行添加loglevel 296 这是一个比较详细的日志级别。/etc/syslog.conf中添加“local4.* /var/log/ldap.log
  确定LDAP服务器的日志位置。
  (4)  配置slapd.conf文件使客户端以MD5方式改变密码
  sample  security  restrictions 下添加
  password—hash  {MD5}
  (5)  重启日志服务
  #service  syslog  restart
  (6)  开启LDAP服务。
     LDAP服务器的配置文件是slapd.conf,但是启动服务文件名/etc/init.d/ldap,所以启动命令
  为:
  # service ldap restart
  #/etc/init.d/ldap restart
  查看服务器进程:
  #ps aux | grep slapd
  查看端口:
  #netstat –an | grep 389
  如果启动正常应该有“389”端口信息。普通LDAP服务开放389端口。查看日志文件/var/log/ldap.log(系统随系统日志服务重启时自动创建)应该有启动信息。
  设置系统在35级别启动时自动开启服务
  #chkconfig level 3 5 ldap on
  4.  迁移用户数据到目录服务数据库
     LDAP服务器用户帐户数据的移植最简单的方法是使用PADL软件公司
  http://www.padl.org)提供的开源移植工具,既一系列用perl编程语言写的脚本文件可以胜任这个工作。这些脚本文件在/usr/share/openldap/migration目录中(也是由openldap-serversRPM包安装生成)
  #cd /usr/share/openldap/migration/
  <1>修改migrate_common.ph脚本。
    $DEFAULT_MAIL_DOMAIN=padl.com”;-à“boy.com”
     $DEFAULT_BASE=dc=padl,dc=com”à“dc=boy,dc=com”
  这样就建立了LDAP 目录数据库的基准辨别名(BDN)
  <2>使用迁移脚本migrate_base.pl为目录创建基本的数据结构
  # ./migrate_base.pl> ~/base.ldif  #cd /root/
  可以查看到base.ldif文件已经创建了LDAP形式的基本数据的结构化和层次化。
  base.ldif 文件的内容以LDAP服务命令行的形式导入数据库
  #ldapadd –x –Dcn=Manager,dc=boy,dc=com” –W –f base.ldif
  会要求输入先前创建超级管理员的密码。导入后再用命令查用一下。
  #ldapsearch –x –H ldap://服务器地址 –b ‘dc=boy,dc=com’
  可以用此命令查询到数据库中已用了基本的层次结构
  <3>使用迁移脚本migrate_passwd.plmigrate_group.pl将文件
  /etc/passwd /etc/group中的用户和组信息转化为LDIF(LDAP
  椐交换&#26684;式文件)结构形式。
  cd /usr/share/openldap/migration/目录下
  #./migrate_passwd.pl  /etc/passwd  ~/passwd.ldif
  #./migrate_group.pl  /etc/group  ~/group.ldif
  /root/目录下:
  #ldapadd –x –Dcn=Manager,dc=boy,dc=com” –W –f passwd.ldif
  #ldapadd –x –D “cn=Manager,dc=boy,dc=com” –W –f group.ldif
  查询用户信息:
  #ldapadd –x –LLL | more
  ldapsearch -x -LLL -b 'dc=ethan225,dc=com'|more(用此命令)
  应该有用户数据。
  
二  客户端配置

     
  LDAP服务器的客户端命令RPM包为openldap-clients,手动安装后会有
  /etc/openldap/ldap.conf文件。除此之外要实现LDAP服务客户端必须配置
  /etc/nsswitch.conf, /etc/sysconfig/authconfig, /etc/openldap/ldap.conf, /etc/ldap.conf
  /etc/pam.d/system-auth五个文件。
  <1>配置/etc/nsswith.conf
    /etc/nsswith.conf文件由glibc-2.5-24生成,CentOS5.2中缺省安装。该文件用
  于名称转换服务。通常LINUX系统身份验证读取本地文件,要使身份验证查询
  通过LDAP服务器必须在该文件中找到passwd;shadow;group;三行在files后空&#26684;添加ldap”
  passwd:   files  ldap
  shadow:  files  ldap
  group:   files  ldap
  <2>配置/etc/sysconfig/authconfig文件提供身份验证支持LDAP功能
   /etc/sysconfig/authconfig 文件由authconfig-5.3.21-3.e15RPM包生成系统默认安装。配置该文件用来跟踪LDAP身份认证机制是否正确启用。找到以下七行,
  将&#20540;确定为“yes”。
  USESYSNETAUTH=yes
  USESHADOW=yes
  USELOCAUTHORIZE=yes
  USELDAP=yes
  USELDAPAUTH=yes
  USEMKHOMEDIR=yes
  PASSWDALGORITHM=yes
  可以用authconfig-tui命令打开一个图形化的界面来配置
  <3>配置/etc/pam.d/system-auth文件
     身份验证服务是实际向LDAP验证用户身份的服务。可插入身份验证模块
  PAM)提供了本地Linux身份验证服务。pam_unix.so模块是通用模块,使
  PAM机制对本地的/etc/passwd文件检查用户帐号。PAMLDAP模块可以用来将
  身份验证重定向到LDAP目录上。身份验证本身是由PAM程序执行的,它从身份验证候选机制中获取用户名,将其绑定到openLDAP服务器上。如果绑定成功,PAM会报告说这个用户已经成功通过了pam_ldap.so提供的身份验证测试。
  根据PAM的配置不同,在用户看到命令提示符之前可能会执行其它测试。
  /etc/pam.d/system-auth文件是CentOS5.2的系统认证PAM文件。在该文件的
  auth,account,password,session四段中pam_unix.so模块后添加pam_ldap.so模块使身份验证先对本地的/etc/passwd文件检查用户帐号,然后再对LDAP服务器进行检查。同时因为是LDAP认证需要为用户创建根目录,所以还必须在会话(SESSION)阶段增加pam_mkhomedir.so模块,为用户登录自动创建宿主目录。
  #cp /etc/pam.d/system-auth  /etc/pam.d/system-auth.old
  *首先备份系统认证文件,同时PAM配置文件至关重要,稍有差池,用户可能就
  不能登录,所以需开两个控制台调试以防万一。
  完整配置文件如下
  #%PAM-1.0
  #This file is auto-generated
  #User changes will be destroyed the next time authconfig is run
  auth    required    pam_env.so
  auth    sufficient   pam_unix.so nullok try_first_pass
  auth    requisite    pam_succeed_if.so uid>=500 quiet
  auth    sufficient   pam_ldap.so
  auth     required    pam_deny.so
  
  account   required   pam_unix.so
  account   sufficient   pam_succeed_if.so uid<500 quiet
  account   required    pam_ldap.so
  account   required    pam_permit.so
  
  password   requisite   pam_cracklib.so  try_first_pass retry=3
  password   sufficient   pam_unix.so md5 shadow nullok try_first_pass use_authtok
  password   sufficient   pam_ldap.so  use_authtok md5
  password    required   pam_deny.so
  
  session     optional    pam_keyinit.so  revoke
  session     required    pam_limits.so
  session     [success=1  default=ignore]pam_succeed_if.so service in crond quiet
  session     required    pam_unix.so
  session  required   pam_mkhomedir.so skel=/etc/skel/ umask=0022
  session   optional  pam_ldap.so
  <4>/etc/openldap/ldap.conf.
   该文件是LDAP服务器的客户端搜索工具文件,由openldap_clientsRPM包生成。
  配置如下:
          BASE  dc=boydc=comà搜索路径
         URI  ldap://主服务器名(),ldap://辅助服务器名 ()
  配置搜索基准域名和路径.其中第二行HOST=HOST=这样的形式也可.
  客户端调试:
  #ldapserch –x –LLL
  #ldapsearch –x –LLL >ldapusers.ldif
  #ldapsearch –x –LLL user1>user1.ldif
  编写一个ldif&#26684;式文件用于调试.
  dn:uid=testuser,ou=People,dc=boy,dc=com
  uid: testuser
  cn: testuser
  objectClass:account
  objectClass:posixAccount
  objectClass:shadowAccount
  loginShell:/bin/bash
  uidNumber:1001
  gidNumber:1001
  homeDirectory:/home/user1
  host
  ldapadd –x –Dcn=Manager,dc=boy,dc=com” –W –f testuser.ldif
  <5>/etc/ldap.conf 文件。
    该文件也是LDAP服务器客户端文件,但是与/etc/openldap/ldap.conf文件有不同功能,两者不可混淆。该文件由nss_ldap-253-12.e15RPM生成,系统默认安装。/lib/security/pam_ldap.so也是由该RPM包生成。
  Rpmnss_ldap-253说明
  nss_ldap-253: 包括两个LDAP访问客户机:nss_ldappam_ldapnss_ldap是一组C库扩展,提供系统命名服务(NSS),也叫名称转换服务。需要配置为使用
  LDAP来解析诸如用户和组帐号资源。
  配置如下:
  找到如下三行去“#”并配置
  base  dc=boy,dc=com à指定域名
  uri  ldap://主服务器名或地址 ldap://辅助服务器名或地址
  pam_check_host_attr yes à帐户登录使用主机属性,实现分组认证
  或者:
  pam_groupdn cn=主机名    ,ou=Hosts,dc=boy,dc=com
  pam_member_attribute  uniquemember
  编一个设备登录组。
  
  <6>开启名称缓存服务nscd.
     通过网络方式查询用户占用带宽且有时延,开启名称缓存服务可以节省网络资源提高查询效率。
  service  nscd  restart
  chkconfig  --level 3 5 nscd on
  现在可以在客户端进行登录认证调试。
  在客户端使用getent passwd, getent group命令会显示所有的用户和组包括本地
  /etc/passwd/下的和LDAP服务器端数据库上的。
三.  LDAP服务器复制

      LDAP服务器可以备份冗余来提高系统得安全性。复制是通过进程slurpd
  提供的,它会周期性的唤醒,并检查主服务器上的日志文件,从而确定是否有:
  任何更新。这些更新然后会传播到从服务器上。复制的配置文件也是slapd.conf
  <1> 主服务器上首先关机,然后配置文件slapd.conf如下:
  replogfile /var/lib/ldap/openldap-master-replog
  replica  uri=ldap://从服务器地址或主机名:389
          (空&#26684;)binddn=cn=Manager,dc=boy,dc=com”
          (空&#26684;)bindmethod=simple credentials=密码
  在配置文件中设定从服务器的地址和有权限的管理员。
  <2>从服务器上配置文件slapd.conf如下:
  增加以下內容,其它同主服務器最初配置方法一樣。
  updatedn “cn=Manager,dc=boy,dc=com”
  updateref  ldap://主服务器地址或名:389
  <3>从服务器上开启服务并将数据导入和主服务器一致。
  (利用上步查詢匯出的ldapusers.ldif文件,導入所有用戶)
  #ldapadd –x –D”cn=Manager,dc=boy,dc=com” –W –f  ldapusers.ldif
  <4>导入后再开启主服务器观察是否能复制同步。
  主服务器上ldapdelete –x –D”cn=Manager,dc=boy,dc=com” –W
  ‘uid=user1,ou=People,dc=boy,dc=com’
  从服务器上应该同步。
  主服务器上/var/lib/ldap/replica/目录下有两个文件
  slurpd.replogà复制日志,实际的变化以LDIF&#26684;式保存在其中。
  slurpd.statusà 复制时间纪录,同步时间戳。
  复制可以看到一条端口通道
  netstat –an | grep主服务器地址
  主机地址:大于1000的端口号  从服务器地址:389
  slapd.conf配置文件要注意書寫&#26684;式。默認是以空白符連接接上一行的內容,如果是兩行,中間不能有空&#26684;。
slurpd -f /etc/ldap/slapd.conf命令測試配置文件的語法正確性。  
四.安全性:LDAP服务器安全通信

      LDAP是以明文的&#26684;式通过网络来发送所有信息的,包括用户名和密码。这
  样会有严重的安全隐患。不过可以在传输层采用SSL安全套接层所提供的加密机制来解决这个问题SSLSecureSocket Layer是目前应用最广泛的安全协议,由两部分组成——SSL握手协议(SSL Handshare Protocol)SSL记录协议(SSLRecord Protocol)。上层的握手协议的作用在于建立SSL连接,协商会话密钥。下层的记录协议则负责处理数据的加解密。LDAP&#43;SSL=LDAPS服务,该服务监听636端口,当有客户端向这个端口发起连接时,双方首先要进行安全连接的初始化和协商,通常需要服务器端向客户端提供自己的证书,客户端解签名确认服务器端身份的真实性。这需要PKI公钥基础结构的支持。在我们企业的局域网中可以使用openssl软件包来创建一个根CA认证服务器,由根CA向自己颁发LDAP服务的使用证书。公钥包含在证书之中,其中包括了服务器完整域名(FQDN)名。在LDAP服务的客户端存放一张根CA的证书,并且用这一张授权证书去检测LDAP服务器证书的有效性和真实性。
  <1>CA配置
  (1)编辑/etc/pki/tls/openssl.cnf文件首先备份成openssl.cnf.raw
  [CA_default]
  default_days = 3650 à  证书有效期为十年
  [req]
  default_bits = 1024  改为 2048à  金钥的字节
  [usr_cert]
  basicConstraints=CA: FALSE  改为 CATRUEà可以签发下级
  [V3_req]
  basicConstraints = CA : FALSE 改为 CATRUE
  编辑后改名openssl.cnf.rootca制作根CA的配置文件
  cp /etc/pki/tls/openssl.cnf  /etc/pki/tls/openssl.cnf.rootca
  使其能够签发下级证书。
  (2)进入/etc/pki/tls/misc目录。
  在该目录中有一个CA脚本文件可以用它来制作根CA
  编辑CA文件找到DAY=-daysCADAY=-days
  配置为 DAYS=—days  3650#10years
           CADAYS=—days  3650#10years
  执行脚本文件CA创建根CA机构
  #./CA -newca
  创建成功后转入/etc/pki/CA/private/目录,有cakey.pem金钥。
  /etc/pki/CA/下有根CA的证书cacert.pem
  #openssl x509 –noout –text –in cacert.pem
  必须要显示  X509V3  Constraints:
                CA:TRUE à表示可以签发下级证书。
  <2>签发LDAP服务器证书。
  LDAP服务器证书也由根CA签发,不过该证书在扩展结构上应该是一张
  终端用户证书,所以必须修改/etc/pki/tls/openssl.cnf文件适应变化。
  #cp openssl.cnf.raw openssl.cnf
  服务器签发证书文件配置
  [CA_default]
  default_days=3650
  [req]
  default_bits=1024
  [usr_cert]
  basicConstraints=CA:FALSE
  [V3_req]
  basicContraints=CA:FALSE
  #cd  /etc/pki/tls/misc/
  #./CA  -newreq
  #./CA  -sign
  这样LDAP服务器证书就制作完毕了,不过一定要确定是一张终端证书。
  /etc/pki/tls/misc/newcert.pem服務器證書
  验证LDAP服务器端证书:
  #openssl X509 –noout –text –in newcert.pem
  
            X509V3  Basic  Constraints:
               CA:FALSE à 表明是一张终端证书。
  #openssl verify –CAfile /etc/pki/CA/cacert.pem  newcert.pem
  成功会显示newcert.pem:OKà表明新证书newcert.pem是由根证书cacert.pem
  授权。
  运行完两个步骤后,会发现当前目录下创建了3个文件:
newreq.pem
创建证书请求文件,没什么用了
newcert.pem CA
签发的证书
newkey.pem
证书对应的私钥
  <3>辅助服务器上配置openssl.cnf文件同主服务器,唯有FQDN名不同。事实上用CA脚本签发证书是一种简捷方式,原始的命令行方式
  如下:
  #openssl genrsa –des3 –out server.key 1024
  生成一把服务器RSA私钥
  #openssl req –new –key server.key –out server.csr
  生成服务器证书申请文件。并将该证书申请文件安全(SCP)传送到根CA服务器上签发。
  #cp server.csr /etc/pki/CA/private/
  #openssl ca –out server.cert –policy_anything –infiles server.csr(有問題)
  #openssl ca –out server.cert –infiles server.csr(用此句生成)
  
  签发完毕后根CA服务器将自己的证书cacert.pemserver.cert都传回LDAP辅助服务器。
  <4>LDAP服务器配置使用SSL
  使用SSL安全通信需要重新配置服务器端slapd.conf文件添加SSL支持。同时将cacert.pem,LDAP服务器证书和金钥放入指定路径。
  slapd.conf文件配置改动:
  指定到以下三行去注释并添加
  TLSCACertificateFile   /etc/openldap/cacerts/cacert.pem
  TLSCertificateFile      /etc/openldap/cacerts/slapdcert1.pem
  TLSCertificatekeyFile   /etc/openldap/cacerts/slapdkey1.pem
  TLSVerifyClient      never
  第一行设置了根CA证书的存放路径,第二行和第三行分别是服务器证书和私钥的存放路径。第四行表明服务器端不需要客户端提供证书这是一个单向认证。
  将指定文件复制到指定目录并更改权限为ldap所有,同时保证安全性。
  cp  /etc/pki/CA/cacert.pem /etc/openldap/cacerts/  CA根證書
  #cp server.cert  /etc/openldap/cacerts/slapdcert1.pem
  cp /etc/pki/tls/misc/newcert.pem /etc/openldap/cacerts/slapdcert1.pem
  #chown ldap :ldap slapdcert1.pem    àldap用户所有
  #cp server.key /etc/openldap/cacerts/slapdkey1.pem  à用户可读
  cp /etc/pki/tls/misc/newkey.pem /etc/openldap/cacerts/slapdkey1.pem (這個才是證書對應的私鑰)
  #chown ldap:ldap slapdkey1.pem   
  #chmod 400 slapdkey1.pem   à密钥文件很重要只有ldap用户可读
   复制选项也要改变因为SSL使用636安全通道。更改slapd.conf文件如下:
  replica  uri=ldaps://辅助服务器名:636
  辅助服务器名一定要和证书中的FQDN名一致否则不能正常通信,安全端口更改为636。去除starttls=critical这一句话。
  <5>LDAP客户端配置支持安全通信。
  同理LDAP客户端也要配置支持LDAPS实现安全通信。
  将根CA证书分发给每一个客户端并存放在相应目录。配置/etc/ldap.conf
  /etc/openldap/ldap.conf文件支持SSL
  (1)/etc/ldap.conf文件配置更改
  去“#”并添加以下四行
  ssl on     启用ssl使用636端口)
  ssl start_tls
  tls_checkpeer yes   检查对等体
  tls_cacertfile /etc/openldap/cacerts/cacert.pem  CA文件路径
  pam_password md5   密码md5认证
  (2)/etc/openldap/ldap.conf文件配置更改
  URI ldaps://主服务器器完全名 ldaps://辅助服务器完全名(添加S
  BASE dc=boy,dc=com
  TLS_CACERT /etc/openldap/cacerts/cacert.pem
  TLS_REQCERT demand à客户端必须要求服务器端证书
  客户端测试连接命令:
  openssl s_client –connect 服务器完全名636  –state –CAfile
  /etc/openldap/cacerts/cacert.pem
  openssl s_client -connect extmail.nsk.northstar.com.tw:636 -state -CAfile /etc/openldap/cacerts/cacert.pem
  
  测试成功代码为0
  verify return code:0(ok)
  重启service nscd restart
  ldapsearch –x –LLL (–H ldaps://CA:636)
  getent passwd
  netstat –an | grep 636
  通过以上三个命令查看服务是否成功。
  LDAPS 采用636通道,安装完毕可关闭389普通服务端口
  問題:
   # ldapsearch -x -LLL -H ldaps://CA:636
如直接用IP,可能出现下面的报错,这是由于IP和前面CN=CA不一致:
ldap_bind: Can't contact LDAP server (-1)
        additional info: TLS: hostname does not match CN in peer certificate
這是指主機名稱與CN里設置的不一至,應該保證主機名,CN一置,實驗時可以候必/etc/hosts文件,固定主機名的解析。
  补充:
  LDAP密码更改
  1ldappasswd –x –Dcn=admin,ou=People,dc=boy,dc=com -W ‘uid=admin,
  ou=People,dc=boy,dc=com’ –S
  上面是LDAP用户改密码的标准&#26684;式
  2/etc/ldap.secret文件。
  该文件是绑定管理员的密码设置应用于LDAP。该文件需手工编写存放有资&#26684;修
  改用户密码的LDAP管理员密码。要使该文件生效还必须在/etc/ldap.conf文件中
  设置rootbinddn uid=admin,ou=People,dc=boy,dc=com
  这样客户端就可以使用passwd 命令修改密码。但是必须注意如果本地/etc/passwd中有同名帐户的话则该本地,本地没有同名用户则改远程LDAP服务器数据库中的用户密码。
  (3)辅助服务器中的updateref指令对超级管理员无效。
  updateref  ldap://LDAP.boy.com :636
  表明该辅助服务器只能读不能“写”只能查询不能更改数据
  普通用户向辅助服务器修改数据会出现Referral :ldaps://LDAP.boy.com :636
  但对超级管理员才cn=Managerdc=boy,dc=com 无效。
  1、修改用户密码,用户需要有userPassword项了。
# ldappasswd -x -D &quot;cn=Manager,dc=igoo,dc=cn&quot; -W &quot;uid=miaohongzhi,ou=People,dc=igoo,dc=cn&quot; -S
New password:
Re-enter new password:
Enter bind password:
Result: Success (0)
注意:&quot;Enter bind password&quot;&quot;cn=Manager,dc=igoo,dc=cn&quot;管理员的密码。
2
、删除命令ldapdelete
# ldapdelete -x -D &quot;cn=Manager,dc=igoo,dc=cn&quot; -W &quot;uid=ldapuser01,ou=People,dc=igoo,dc=cn&quot;
3
、管理员密码更改
# slappasswd
New password
Re-enter new password
{SSHA}83DJ4KVwqlk1uh9k2uDb8&#43;NT1U4RgkEs
copy /path/to/sldap.conf rootpw 即可,重启使用配置文件生效
4
、通过ldapmodify修改条目
# cat modify.ldif
dn: uid=ldapuser01,ou=People,dc=igoo,dc=cn
changetype: modify
replace: loginShell
loginShell: /bin/false
还可以使用LDAP管理工具:phpLDAPadminLDAP Browser&Editor暂未进行测试
  4. 定时备份
# vi /root/ldapbackup.sh
#!/bin/bash
Date=`date &#43;%Y%m%d`
slapcat > /root/ldapdata.ldif.$Date
# chmod 700 /root/ldapbackup.sh; crontab -e
30 0 * * * /root/ldapbackup.sh
  设备登录限制
  LDAP用户登录客户端除了可以使用host属性
  (1)服务器上数据库中LDAP用户添加host属性可以登录指定主机
  dn:uid=testuser,ou=People,dc=boy,dc=com
  uid: testuser
  cn: testuser
  objectClass:account
  objectClass:posixAccount
  objectClass:shadowAccount
  loginShell:/bin/bash
  uidNumber:1001
  gidNumber:1001
  homeDirectory:/home/user1
  host:client1.boy.com
  host:client2.boy.com
  
  客户端client1.boy.com /etc/ldap.conf配置
  #check the ‘host’ attribute for access control
  #Default is no;if set to yes,and user has no
  #value for the host attribute,and pam_ldap is
  #configured for will not be allowed to login.
  pam_check_host_ attr yes
  
  (2)   也可以反过来针对每一个客户端主机来指定可以登录的用户
  LDAP数据库中例:
  dn:cn=client1.boy.com,ou=Hosts,dc=boy,dc=com
  ipHostNumber: 192.168.10.7
  cn:client1.boy.com
  objectClass:ipHost
  objectClass:device
  objectClass:extensibleObject
  uniqueMember:uid=root,ou=People,dc=boy,dc=com
  uniqueMember:uid=testuser,ou=People,dc=boy,dc=com
  客户端配置/etc/ldap.conf文件
  pam_groupdn cn=client1.boy.com,ou=Hosts,dc=boy,dc=com
  pam_member_attribute uniquemember
  其实还可以做更简单的配置在客户端主机上修改/etc/ldap.conf文件来限定搜索
  LDAP服务器目录树的范围
  /etc/ldap.conf
  nss_base_passwd  ou=IT,ou=People,dc=boy,dc=com
  nss_base_shadow  ou=IT,ou=People,dc=boy,dc=com
  nss_base_group    ou=IT,ou=Group,dc=boy,dc=com
  这样LDAP帐户在登录时会限定绑定服务器数据库的范围在IT部。
        ACL来控制用户访问LDAP数据库的权限
      LDAP中存放的数据不多,但大多是非常敏感、重要的数据,因此,必须对访问进行严&#26684;的控制,不同的用户能够访问不同的数据。Openldap使用ACL访问控制列表来实现权限的控制。
  经典访问控制在LDAP服务器端/etc/openldap/slapd.conf文件中access设置
  access to attrs=userPassword
        by anonymous auth
        by dn= “cn=Manager,dc=boy,dc=com” write
        by dn=”uid=admin,ou=People,dc=boy,dc=com” write
        by self write
  access to *
        by dn=”cn=Manager,dc=boy,dc=com” write
        by self write
        by * read
  使用该配置匿名用户不能查询他人密码,用户admin拥有修改密码特权。

运维网声明 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-126881-1-1.html 上篇帖子: 深解CentOS系统单用户模式 下篇帖子: CentOS 6 安装配置教程
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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