RHEL6.3之OpenLDAP配置实践

2024-01-14 11:40
文章标签 配置 实践 openldap rhel6.3

本文主要是介绍RHEL6.3之OpenLDAP配置实践,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

OpenLDAP服务器建设比较麻烦,一不注意就会出错,本人经过数十次尝试,总算搭起来了,现分享给大家,也方便自己日后回过头来看看。

 

I、OpenLDAP的安装与基本配置

 Yum安装

yum -y install openldap-servers openldap-clients

 vi /etc/sysconfig/ldap,确保SLAPD_LDAPI=yes

 创建管理员密码,尽量使用高强度密码:

slappasswd

注a)上述命令会生成一个经过SSHA算法加密的密码,保存该密文,后面要用到。

  b) 本例中输入的密码为secret

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

vi /etc/openldap/slapd.conf,确保有以下行:

include         /etc/openldap/schema/core.schema

include         /etc/openldap/schema/cosine.schema

include         /etc/openldap/schema/inetorgperson.schema

include         /etc/openldap/schema/nis.schema

allow bind_v2

pidfile         /var/run/openldap/slapd.pid

argsfile        /var/run/openldap/slapd.args

 

access to attrs=userPassword

        by self write

        by anonymous auth

        by dn.base="cn=Manager,dc=kingmed,dc=com" write

        by * none

 

access to *

   by * read

 

database        bdb

suffix          "dc=kingmed,dc=com"

checkpoint      1024 15

rootdn          "cn=Manager,dc=kingmed,dc=com"

rootpw          {SSHA} jQu2QPBA4BYh9PByb6fIpCi4PRdgCmh3         //上面第3)步产生的密码

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

 

II、使用migrationtools工具来创建档案

 安装及配置迁移工具:

yum install migrationtools –y

cd  /usr/share/migrationtools

vi    migrate_common.ph

修改如下一些内容:

$DEFAULT_MAIL_DOMAIN = "kingmed.com";

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

 

 在该目录下编辑frontend.ldif,创建域结构,并输入以下行:

dn: dc=kingmed,dc=com

objectClass: top

objectClass: dcObject

objectclass: organization

o: kingmed.com

dc: kingmed

 

dn: cn=Manager,dc=kingmed,dc=com

objectClass: simpleSecurityObject

objectClass: organizationalRole

cn: Manager

userPassword: {SSHA} jQu2QPBA4BYh9PByb6fIpCi4PRdgCmh3

 

dn: ou=People,dc=kingmed,dc=com

objectClass: organizationalUnit

ou: People

 

dn: ou=Group,dc=kingmed,dc=com

objectClass: organizationalUnit

ou: Group

 

  创建用户资料

1)  vi /etc/default/useradd

GROUP=100

HOME=/nfshome          //设置新建用户默认目录为/nfshome

INACTIVE=-1

EXPIRE=

SHELL=/bin/bash

SKEL=/etc/skel

CREATE_MAIL_SPOOL=yes

 

2)  mkdir /nfshome

 

3)  创建用户帐号

useradd  ldapuser1

echo "123456"|passwd --stdin ldapuser1

useradd  ldapuser2

echo "123456"|passwd --stdin ldapuser2

useradd  ldapuser3

echo "123456"|passwd --stdin ldapuser3

 

  创建数据库资料文件:

./migrate_passwd.pl /etc/passwd  user.ldif

vi  user.ldif,删除不需要的用户帐号;

./migrate_group.pl /etc/group  groups.ldif

vi  groups.ldif,删除不需要的用户组;

 

  依次导入域结构、用户帐号及组帐号:

slapadd -v -l frontend.ldif     // slapadd命令会在/var/lib/ldap/目录下产生很多数据库文件

slapadd -v -l user.ldif

slapadd -v -l groups.ldif

 

  创建数据库配置文件,从模板产生:

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

 

  删除/etc/openldap/slapd.d目录内容,并重新生成配置文件:

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

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

 

另外需要注意的是:若日后变更了slapd.conf文件的内容,则处理方式如下:

#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

#service slapd restart

 

  修改两个目录的属主和权限,并启动ldap:

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

chown -R ldap. /var/lib/ldap 

/etc/rc.d/init.d/slapd start 

#chkconfig slapd on 

 

由于命令行操作不直观,所我们一般使用一些第三方工具来管理认证,如phpldapadmin。

 

III 、Phpldapadmin安装与使用

 

1 安装与配置httpd和php:

yum –y install httpd php-ldap php

 

2 下载phpldapadmin

1)cd /var/www/html/

2)wget

http://nchc.dl.sourceforge.net/project/phpldapadmin/phpldapadmin-php5/1.2.3/phpldapadmin-1.2.3.zip

3) unzip phpldapadmin-1.2.3.zip

4) mv phpldapadmin-1.2.3 myldap

注意:如果phpldapadmin是从别的目录复制过来的并且开启了Selinux,就要先用restorecon –R /var/www/html恢复该目录下所有文件的安全上下文

 

3 配置phpldapadmin:

cd /var/www/html/myldap/config

cp config.php.example config.php

修改下列config.php选项,注意行首不要有空格:

$servers->setValue('server','base',array('dc=kingmed,dc=com'));  # line 534

$servers->setValue('login','bind_id','cn=Manager,dc=kingmed,dc=com');

$servers->setValue('login','bind_pass', 'secret');

 

4 开启防火墙:

#iptables  -I  INPUT  -p  tcp  -m  tcp   --dport  80  -j ACCEPT

#iptables  -I  INPUT  -p  tcp  -m  tcp  --dport  389  -j ACCEPT  //LDAP 端口

#iptables  -I  INPUT  -p  udp  -m  udp  --dport  389  -j ACCEPT  //LDAP 端口

#service   iptables  save

#service   iptables  restart

 

然后在浏览器中输入:http://127.0.0.1/myldap,用户名:cn=Manager,dc=kingmed,dc=com,密码为secret,效果如下图:

 RHEL6.3之OpenLDAP配置实践【原创】

附:两种快速清除配置、重新导入数据的配置命令

==================     前面五行都是相同的   =====================

service slapd stop

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

rm -rf /var/lib/ldap/*

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

cd  /usr/share/migrationtools

 

==================     以下为第一种方法   =====================

slapadd -v -l frontend.ldif

slapadd -v -l user.ldif

slapadd -v -l groups.ldif

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

chown -R ldap:ldap /var/lib/ldap

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

service slapd start          //使用slapadd添加完档案后才启动数据库

 

==================     以下为第二种方法   =====================

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

chown -R ldap:ldap /var/lib/ldap

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

service slapd start          //lapdadd命令必须先启动数据库

ldapadd -x -D cn=Manager,dc=kingmed,dc=com -W -f frontend.ldif

ldapadd -x -D cn=Manager,dc=kingmed,dc=com -W -f user.ldif

ldapadd -x -D cn=Manager,dc=kingmed,dc=com -W -f groups.ldif

 

第二章   OpenLDAP客户端安装与配置

    yum –y install openldap-clients nss-pam-ldapd

    执行authconfig-tui命令,选中如下图所示的选项:

RHEL6.3之OpenLDAP配置实践【原创】

左侧选择:useLDAP

右侧选择:use   MD5 …;use   shadow…;use  LDAP …和 Local auth…四项。

然后,点击Next:

RHEL6.3之OpenLDAP配置实践【原创】

本实例没有配置证书,因此不选Use TLS,在Server一栏填写ldap://服务器IP,Base DN一栏填写自己配置的域:dc=kingmed,dc=com,完成后保存退出。

 authconfig-tui会修改很多配置文件,先来检查下(红色表示修改过的地方):

1)grep -v "#" /etc/openldap/ldap.conf

URI ldap://192.168.10.23/

BASE dc=kingmed,dc=com

TLS_CACERTDIR /etc/openldap/cacerts

 

2)grep -v "#" /etc/nslcd.conf

uid nslcd

gid ldap

uri ldap://192.168.10.23/

base dc=kingmed,dc=com

ssl no

tls_cacertdir /etc/openldap/cacerts

 

3)grep -v "#" /etc/pam_ldap.conf  //此文件要将里面的 host 127.0.0.1加#注释掉

base dc=kingmed,dc=com

URI     ldap://192.168.10.23/

ssl no

tls_cacertdir /etc/openldap/cacerts

pam_password md5

 

4)grep -v "#" /etc/nsswitch.conf

passwd:     files ldap

shadow:     files ldap

group:      files ldap

hosts:      files dns

bootparams: nisplus [NOTFOUND=return] files

ethers:     files

netmasks:   files

networks:   files

protocols:  files

rpc:        files

services:   files sss

netgroup:   ldap

publickey:  nisplus

automount:  files ldap

aliases:    files ldap

 

5)grep -v "#" /etc/pam.d/system-auth

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 use_first_pass

auth        required      pam_deny.so

 

account     required      pam_unix.so broken_shadow

account     sufficient    pam_localuser.so

account     sufficient    pam_succeed_if.so uid < 500 quiet

account     [default=bad success=ok user_unknown=ignore] pam_ldap.so

account     required      pam_permit.so

 

password    requisite     pam_cracklib.so try_first_pass retry=3 type=

password    sufficient    pam_unix.so md5 shadow nullok try_first_pass use_authtok

password    sufficient    pam_ldap.so use_authtok

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 use_uid

session     required      pam_unix.so

 

session     optional      pam_ldap.so

session     optional      pam__mkhomedir.so skel=/etc/skel umask=077

 

6)grep "USELDAP" /etc/sysconfig/authconfig

USELDAPAUTH=yes

USELDAP=yes

 

  启动nslcd服务,并将其设为开机自启动:

service nslcd start

chkconfig nslcd on

 

  验证:

id ldapuser1    或者 getent passwd ldapuser1,如果能显示帐号信息,此时可以通过su – ldapuser1来登录LADP服务器了,如下图所示:

RHEL6.3之OpenLDAP配置实践【原创】
显示如上信息,说明账户可以登录,但没找到用户主目录。这需要在本地配置nfs并通过autofs自动挂载服务器家目录到本地客户端。

第三章   配置autofs自动挂载

一 服务器端配置

  RHEL默认已安装nfs,如果没有,则先使用yum –y install nfs来安装并启动如下服务:

1) service rpcbind start,chkconfig rpcbind on

2) service nfslock start,chkconfig nfslock on

3) service nfs start,chkconfig nfs on

 

 vi /etc/exports,输入如下内容:

/nfshome      *(rw,sync)          //可根据需要修改*,限制访问的网络

 

 查找SELinux中关于nfs的配置项目,找到关于nfs主目录的项目:

#getsebool -a | grep nfs

 

allow_ftpd_use_nfs --> off

cobbler_use_nfs --> off

git_system_use_nfs --> off

httpd_use_nfs --> off

qemu_use_nfs --> on

rsync_use_nfs --> off

samba_share_nfs --> off

sanlock_use_nfs --> off

sge_use_nfs --> off

use_nfs_home_dirs --> on     //设为on,否则远程用户无权限进入自己的目录

virt_use_nfs --> off

xen_use_nfs --> off

 

如果use_nfs_home_dirs的值为off,则如下修改:

#setsebool  -P    use_nfs_home_dirs   on

设置完后,重启nfs服务器:

#service   nfs  restart

 

 【可选】vi /etc/sysconfig/nfs,去掉一些端口的注释符,如下:

LOCKD_TCPPORT=32803

LOCKD_UDPPORT=32769

MOUNTD_PORT=892

STATD_PORT=662

如果不取消这些端口的注释,那么在客户端showmount –e IP 时会显示如下错误信息:

rpc mount export: RPC: Unable to receive; errno = No route to host

这一步不是必要的,虽然客户端showmount –e 查看不到共享,但不影响nfs输出及挂载

 

 配置防火墙,允许远程挂载:

vi /etc/sysconfig/iptables

-A INPUT –p tcp –m state --state NEW –m tcp --dport 111 –j ACCEPT

-A INPUT –p udp –m state --state NEW –m udp --dport 111 –j ACCEPT

-A INPUT –p tcp –m state --state NEW –m tcp --dport 662 –j ACCEPT

-A INPUT –p udp –m state --state NEW –m udp --dport 662 –j ACCEPT

-A INPUT –p tcp –m state --state NEW –m tcp --dport 892 –j ACCEPT

-A INPUT –p udp –m state --state NEW –m udp --dport 892 –j ACCEPT

-A INPUT –p tcp –m state --state NEW –m tcp --dport 2049 –j ACCEPT

-A INPUT –p udp –m state --state NEW –m udp --dport 2049 –j ACCEPT

-A INPUT –p tcp –m state --state NEW –m tcp --dport 32803 –j ACCEPT

-A INPUT –p udp –m state --state NEW –m udp --dport 32769 –j ACCEPT

#service   iptables  restart                       //重新启动防火墙

 

 在客户端检查nfs输出,应该有如下结果:

#showmount   -e  192.168.10.23

Export list for 192.168.10.23:

/nfshome *

 

二 客户端配置

 默认情况下,RHEL已经安装了nfs及autofs,如果没有,则使用yum –y install nfs-utils autofs来安装,并启动如下服务:

(1)service rpcbind start ,chkconfig rpcbind on

(2)service rpcidmapd start ,chkconfig rpcidmapd on

(3)service nfslock start ,chkconfig nfslock on

(4)service netfs start ,chkconfig netfs on

(5)service autofs start ,chkconfig autofs on

 配置autofs服务

vi /etc/auto.master ,在最后一行后面加入:

/nfshome     /etc/auto.nfs

vi /etc/auto.nfs,输入如下内容并保存:

      -rw,soft,intr      192.168.10.23:/nfshome/&

重启下autofs服务:service autofs stop; service autofs start

 客户端测试登录

RHEL6.3之OpenLDAP配置实践【原创】
 注意事项:

   对/etc/auto.nfs文件使用*及&通配符时,则/etc/auto.master里的挂载点必须与服务器的挂载点同名同目录/nfshome,否则客户端su - 切换时会提示找不到目录。

   不建议把ldap用户直接创建在/home文件夹里。否则由于/etc/auto.nfs文件里的*及&符号的自动匹配的作用,客户autofs会自动在内存中创建/home目录,会隐藏掉实际的/home目录。

这篇关于RHEL6.3之OpenLDAP配置实践的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/605040

相关文章

基于MySQL Binlog的Elasticsearch数据同步实践

一、为什么要做 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品、订单等数据的多维度检索。 使用 Elasticsearch 存储业务数据可以很好的解决我们业务中的搜索需求。而数据进行异构存储后,随之而来的就是数据同步的问题。 二、现有方法及问题 对于数据同步,我们目前的解决方案是建立数据中间表。把需要检索的业务数据,统一放到一张M

Zookeeper安装和配置说明

一、Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。 ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境; ■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例; ■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble) Zookeeper通过复制来实现

CentOS7安装配置mysql5.7 tar免安装版

一、CentOS7.4系统自带mariadb # 查看系统自带的Mariadb[root@localhost~]# rpm -qa|grep mariadbmariadb-libs-5.5.44-2.el7.centos.x86_64# 卸载系统自带的Mariadb[root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7

hadoop开启回收站配置

开启回收站功能,可以将删除的文件在不超时的情况下,恢复原数据,起到防止误删除、备份等作用。 开启回收站功能参数说明 (1)默认值fs.trash.interval = 0,0表示禁用回收站;其他值表示设置文件的存活时间。 (2)默认值fs.trash.checkpoint.interval = 0,检查回收站的间隔时间。如果该值为0,则该值设置和fs.trash.interval的参数值相等。

NameNode内存生产配置

Hadoop2.x 系列,配置 NameNode 内存 NameNode 内存默认 2000m ,如果服务器内存 4G , NameNode 内存可以配置 3g 。在 hadoop-env.sh 文件中配置如下。 HADOOP_NAMENODE_OPTS=-Xmx3072m Hadoop3.x 系列,配置 Nam

wolfSSL参数设置或配置项解释

1. wolfCrypt Only 解释:wolfCrypt是一个开源的、轻量级的、可移植的加密库,支持多种加密算法和协议。选择“wolfCrypt Only”意味着系统或应用将仅使用wolfCrypt库进行加密操作,而不依赖其他加密库。 2. DTLS Support 解释:DTLS(Datagram Transport Layer Security)是一种基于UDP的安全协议,提供类似于

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

沁恒CH32在MounRiver Studio上环境配置以及使用详细教程

目录 1.  RISC-V简介 2.  CPU架构现状 3.  MounRiver Studio软件下载 4.  MounRiver Studio软件安装 5.  MounRiver Studio软件介绍 6.  创建工程 7.  编译代码 1.  RISC-V简介         RISC就是精简指令集计算机(Reduced Instruction SetCom

log4j2相关配置说明以及${sys:catalina.home}应用

${sys:catalina.home} 等价于 System.getProperty("catalina.home") 就是Tomcat的根目录:  C:\apache-tomcat-7.0.77 <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} [%t] %-5p %c{1}:%L - %msg%n" /> 2017-08-10