Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7030610
  • 博文数量: 3857
  • 博客积分: 6409
  • 博客等级: 准将
  • 技术积分: 15948
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-02 16:48
个人简介

迷彩 潜伏 隐蔽 伪装

文章分类

全部博文(3857)

文章存档

2017年(5)

2016年(63)

2015年(927)

2014年(677)

2013年(807)

2012年(1241)

2011年(67)

2010年(7)

2009年(36)

2008年(28)

分类: 系统运维

2014-01-23 11:01:07

原文地址:ldap集中化管理 作者:chinaunix1116

流程

1.      安装包

openldap-clients openldap-server

2.      配置文件

a)       创建模板

注意格式;证书名称;管理员,id/密码;slappasswd

b)       生成目录树结构

                    i.            清空slaptest

                   ii.            权限

3.      创建证书

ca.key      ca.crt      slapd.key(去掉密码)    slapd.csr(主机名一致)  slapd.crt

c)       导入bdb.ldif 全局管理员用户导入

5.      创建data.ldif(用户条目)

a)       基准DN

b)       3OU(People,Group,Admins)

c)       RDN(People/student1,student2  Group/students)

d)       导入data.ldif(库的管理员)

6.      创建autofs.ldifautofs配置文件的条目)

a)       auto.master

b)       auto.home

                    i.            使用/匹配用户名

                   ii.            指定nfs服务器共享

7.      nfs服务器配置

a)       创建用户。注意uid.gid.(ldap服务器端一致)、家目录

b)       exports(rw方式共享)

8.      客户端(3种方式)

a)       图形化   system-config-authtorcation

b)       命令行 authconfig        authconfig-tu命令(缺点:公钥不能直接下载)

c)       修改配置文件nsswitch      ldap.conf

 

2台机器 148-ldapserver|nfs  142-ldapclinet

iptables -F

setenforce 0

 

具体操作步骤:

148server

yum install openldap-servers openldap-clients -y

cd /etc/openldap

 

创建ldap管理员密码redhat

[root@desktop148 ~]# slappasswd

New password:

Re-enter new password:

 

创建ldap服务器主配置文件,我们需要声明管理员与其密码 注意红色的是一行数据。

配置文件模板地址:/usr/share/openldap-servers/slapd.conf.obsolete

[root@desktop148 openldap]# vim /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

 

#### Encrypting Connections

 

TLSCACertificateFile /etc/pki/tls/certs/ca.crt

TLSCertificateFile /etc/pki/tls/certs/slapd.crt

TLSCertificateKeyFile /etc/pki/tls/certs/slapd.key

 

### Database Config###

database config

rootdn "cn=admin,cn=config"

rootpw redhat

access to * by dn.exact=gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=authmanage by * break

 

### Enable Monitoring

database monitor

# allow only rootdn to read the monitor

access to * by dn.exact="cn=admin,cn=config" read by * none

 

[root@desktop148 slapd.d]# rm -rf /etc/openldap/slapd.d/* //清空原先下面的目录树结构

[root@desktop148 slapd.d]# slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d  //把配置文件生成目录书结构

[root@desktop148 slapd.d]# chown -R ldap:ldap /etc/openldap/slapd.d

[root@desktop148 slapd.d]# chmod -R 000 /etc/openldap/slapd.d

[root@desktop148 slapd.d]# chmod -R u+rwX /etc/openldap/slapd.d

 

由于配置文件中有相应证书及路径,所以我们要将其创建

TLSCACertificateFile /etc/pki/tls/certs/ca.crt

TLSCertificateFile /etc/pki/tls/certs/slapd.crt

TLSCertificateKeyFile /etc/pki/tls/certs/slapd.key

 

下面生成证书并且放置在/etc/pki/tls/certs下,也可以在其他目录生成,然后cp到该目录下

cd /etc/pki/tls/certs

(名字有出入)

1)    生成ca私钥,一定要留密码。

[root@desktop148 certs]# openssl genrsa -des3 -out ca.key 4096

输入ca.key密码:uplooking

2)    生成ca公钥,将来下发给客户端浏览器导入的。

[root@desktop148 certs]# openssl req -new -x509 -days 365 -key ca.key -out ca.crt

Enter pass phrase for ca.key:uplooking

Country Name (2 letter code) [XX]:CN

State or Province Name (full name) []:shanghai

Locality Name (eg, city) [DefaultCity]:shanghai

Organization Name (eg, company) [Default Company Ltd]:uplooking.org

Organizational Unit Name (eg, section) []:uplooking

Common Name (eg, your name or your server's hostname) []:CA.uplooking.com

 

创建服务器私钥

[root@desktop148 slapd.d]# openssl genrsa -des3 -out slapd.key 4096

输入slapd.key:uplooking

 

去掉私钥密码

[root@desktop148 slapd.d]# openssl rsa -in slapd.key -out slapd.key

输入slapd.key:uplooking

以上为去掉服务器私钥密码,不然将来访问会不停的弹出输入密码的选项框

 

生成证书颁发机构

[root@desktop148 slapd.d]# openssl req -new -key slapd.key -out slapd.csr

Country Name (2 letter code) [XX]:CN

State or Province Name (full name) []:shanghai

Locality Name (eg, city) [DefaultCity]:shanghai

Organization Name (eg, company) [Default Company Ltd]:uplooking.org

Organizational Unit Name (eg, section) []:uplooking

Common Name (eg, your name or your server's hostname) []:desktop148.example.com

Email Address []:root@ desktop148.example.com

Please enter the following 'extra' attributes

to be sent with your certificate request

A challenge password []:直接回车

An optional company name []:直接回车

注意一下,Common Name要和你的主机名一致。

 

用CA签名并产生公钥(服务器证书)

 [root@desktop148 certs]# openssl x509 -req -days 365 -in slapd.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out slapd.crt

Enter pass phrase for ca.key:uplooking

 

在/etc/pki/tls/certs/ca.crt目录下生成,则跳过cp

[root@desktop148 slapd.d]# cp ca.crt /etc/pki/tls/certs/ca.crt

[root@desktop148 slapd.d]# cp slapd.key /etc/pki/tls/certs/slapd.key

[root@desktop148 slapd.d]# cp slapd.crt /etc/pki/tls/certs/slapd.crt

 

数据库配置

生成DB_CONFIG文件,ldap在启动过程中需要,复制到以下目录

[root@desktop148 ldap]# cp -p /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG

chown ldap. /var/lib/ldap/DB_CONFIG

cd /etc/openldap(接下去的几个文件全写在这个目录下)

 

接下来我们要创建用户数据库,先生成ldif文件,用于描述数据库配置。

 (库信息描述、DN配置、授权等)

 

[root@desktop148 slapd.d]# mkdir ldif

[root@desktop148 slapd.d]# vim bdb.ldif

其中红色标注的是管理员用户名与帐号。注意空格和行,红色的是一行数据

dn: olcDatabase=bdb,cn=config

objectClass: olcDatabaseConfig

objectClass: olcBdbConfig

olcDatabase: {1}bdb

olcSuffix: dc=example,dc=org

olcDbDirectory: /var/lib/ldap

olcRootDN: cn=Manager,dc=example,dc=org

olcRootPW: redhat

olcLimits: dn.exact="cn=Manager,dc=example,dc=org" time.soft=unlimited time.hard=unlimited size.soft=unlimited size.hard=unlimited

olcDbIndex: uid pres,eq

olcDbIndex: cn,sn,displayName pres,eq,approx,sub

olcDbIndex: uidNumber,gidNumber eq

olcDbIndex: memberUid eq

olcDbIndex: objectClass eq

olcDbIndex: entryUUID pres,eq

olcDbIndex: entryCSN pres,eq

olcAccess: to attrs=userPassword by self write by anonymous auth by dn.children="ou=admins,dc=example,dc=org" write by * none 

olcAccess: to * by self write by dn.children="ou=admins,dc=example,dc=org" write by * read

启动并导入数据库配置

service slapd start  //先启动slapd服务

[root@desktop148 slapd.d]# ldapadd -x -D "cn=admin,cn=config" -w redhat -f bdb.ldif -h localhost

adding new entry "olcDatabase=bdb,cn=config" //添加成功

 

redhat 密码加密后导入

[root@desktop148 slapd.d]# slappasswd

New password:

Re-enter new password:

{SSHA}OLfakpNEj71gnF7G5NYSSjzJsu4kIG5+

[root@desktop148 slapd.d]# ldapadd -x -D "cn=admin,cn=config" -w {SSHA}OLfakpNEj71gnF7G5NYSSjzJsu4kIG5+ -f bdb.ldif -h localhost

 

创建用户数据文件并且同样导入ldap数据库中

[root@desktop148 ldif]# vim data1.ldif

dn: dc=example,dc=org

objectClass: top

objectClass: dcObject

objectclass: organization

o: Example Organization

dc: Example

description: LDAP Example

 

dn: ou=People,dc=example,dc=org

objectClass: organizationalUnit

ou: People

 

dn: ou=Groups,dc=example,dc=org

objectClass: organizationalUnit

ou: Groups

 

dn: ou=Admins,dc=example,dc=org

objectClass: organizationalUnit

ou: Admins

 

dn: uid=student1,ou=People,dc=example,dc=org

uid: student1

cn: student1

sn: 1

objectClass: top

objectClass: posixAccount

objectClass: inetOrgPerson

loginShell: /bin/bash

homeDirectory: /ldaphome/student1

uidNumber: 14583100

gidNumber: 14564100

userPassword: redhat

mail: student1@example.org

gecos: Student1 User

 

dn: uid=student2,ou=People,dc=example,dc=org

uid: student2

cn: student2

sn: 2

objectClass: top

objectClass: posixAccount

objectClass: inetOrgPerson

loginShell: /bin/bash

homeDirectory: /ldaphome/student2

uidNumber: 14583101

gidNumber: 14564100

userPassword: redhat

mail: student2@example.org

gecos: Student2 User

 

dn: cn=students,ou=Groups,dc=example,dc=org

objectClass: posixGroup

objectClass: top

cn: ldapusers

userPassword: {crypt}x

gidNumber: 14564100

memberuid: uid=student1

memberuid: uid=student2

 

以上大致内容就是定义了基准DNtudou.com,在下面有3OU分别为peoplegroupadmins,同时在people ou下定义了2个用户student1student2group ou下定义了students并且把student1student2 2个用户加入进该条目,保存退出.

ldapadd -x -D "cn=Manager,dc=example,dc=org" -w redhat -h localhost -f data1.ldif

adding new entry "dc=example,dc=org"    //显示添加成功,如果报条目已存在,则修改data1把该条目删除,继续添加下面的条目。

adding new entry "ou=People,dc=example,dc=org"

。。。。。。。

 

创建自动挂载ldap用户家目录的autofs文件

[root@desktop148 ldif]# vim autofs.ldif

dn: nisMapName=auto.master,dc=example,dc=org

objectClass: top

objectClass: nisMap

nisMapName: auto.master

 

dn: cn=/ldaphome,nisMapName=auto.master,dc=example,dc=org

objectClass: nisObject

cn: /ldaphome

nisMapEntry: ldap:nisMapName=auto.home,dc=example,dc=org

nisMapName: auto.master

 

dn: nisMapName=auto.home,dc=example,dc=org

objectClass: top

objectClass: nisMap

nisMapName: auto.home

 

dn: cn=/,nisMapName=auto.home,dc=example,dc=org

objectClass: nisObject

cn: /

nisMapEntry: -rw 192.168.11.148:/ldaphome/&

nisMapName: auto.home

 

上述红色字体” /ldaphome ”是ldap用户家目录的父目录,需要通过nfs导出的。

红色字体 nisMapEntry... ,是nfs服务器的地址(新增nfsIP需改掉),其中 & 符号用于匹配所有用户名。

之后我们将这些信息生成ldif文件并添加到LDAP 数据库中。

 

[root@desktop148 ldif]# ldapadd -x -D "cn=Manager,dc=example,dc=org" -w redhat -h localhost -f /root/ldif/autofs.ldif

adding new entry "nisMapName=auto.master,dc=example,dc=org" //添加成功

adding new entry "cn=/ldaphome,nisMapName=auto.master,dc=example,dc=org"

adding new entry "nisMapName=auto.home,dc=example,dc=org"

adding new entry "cn=/,nisMapName=auto.home,dc=example,dc=org"

 

到这里为止ldap的配置已经全部完成了

另外要把ca.crt文件给放到apache的网站根目录下去

cp ca.crt /var/www/html/

service httpd start

 

148nfs共享

service nfs start

 

如果新增一台NFS,需多做以下步骤:

mkdir /ldaphome

                                                                                         

vim /etc/exports

/ldaphome 192.168.11.0/24(rw,sync)

service nfs start

 

创建用户:

groupadd students -g 14564100

useradd student1 -u 14583100 –g students -d /ldaphome/student1

useradd student2 -u 14583101 –g students -d /ldaphome/student2

注意这里的uid和gid号要和ldap端的data.ldif文件里定义的一样

 

客户端配置142

system-config-authentication

 

 

mkdir /ldaphome

service autofs start

 

以下步骤无需操作,ldap服务器端已经把autofs导入数据库,客户端验证通过就能同步。

yum install autofs -y

vim /etc/auto.master

/ldaphome /etc/auto.ldaphome

vim /etc/auto.ldaphome

* -rw 192.168.11.148:/ldaphome/&

 

tty登录student2,密码redhat,studnet2家目录会自动挂载。

配置认证缓存SSSD

客户端安装sssd

yum install sssd

/var/lib/sss     //存放缓存

运行system-config-authentication

重新再配置一次,这次可以看到sssd服务已经启动起来。

进行一次登录认证后,断开网络,再尝试登录,可以发现依然可以认证成功(登录时间比较长)

阅读(845) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~