LDAP+keberos

LDAP+Kerberos部署及应用

                                                        <Alvin-zeng:孤独0-1>

目录

一、配置环境1

1.1、主服务器1

1.2、验证客户端1

二、LDAP安装部署/2321

2.1、安装包1

2.2、修改LDAP配置文件1

2.3OpenLDAP主配置文件及密码2

2.4、启动服务及调试2

2.5、测试并、查看监听端口2

2.6、安装ldapphpadmin 管理工具2

2.7LDAP日志创建及分割2

三、LDAP数据添加/2324

3.1、添加主域名树根zeng.com4

3.2、添加二级OU组织4

3.3、添加用户组5

3.4、批量添加用户5

3.5、配置LDAP客户端验证2316

四、Kerberos 部署/2326

4.1、安装Kerberos6

4.2、修改配置krb5.conf7

4.3、修改配置kdc.conf7

4.4、修改配置 kadm5.acl7

4.5、创建realm8

4.6、启动krb5kdckadmin两个服务8

4.7、创建Krb-admin管理用户8

4.8、将ldap服务加入Krb-8

4.9、将客户端加入Krb-8

5.0、创建登陆用户,8

五、终极验证LDAP+keberos相结合/2318

5.1、配置LDAP-Keberos客户端8

5.2、使用ssh登陆验证9


一、 配置环境

1.1、主服务器

LDAP:zeng.com>管理用户

Krbs :zeng.com>管理密码

LDAP+Krbs安装在同一台机器上,同一个域下面

IP:192.168.8.232 主机名:test-3-232.zeng.com

1.2、验证客户端

IP:192.168.8.231 主机名:test-2-231.zeng.com


二、LDAP安装部署/232

2.1、安装包

#yum -y install php-ldap openldap openldap-clients openldap-servers httpd php-*

2.2、修改LDAP配置文件

#vim /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

include         /etc/openldap/schema/corba.schema

include         /etc/openldap/schema/dyngroup.schema

include         /etc/openldap/schema/java.schema

include         /etc/openldap/schema/misc.schema

include         /etc/openldap/schema/openldap.schema

include         /etc/openldap/schema/ppolicy.schema

#Centos 6.0需要把/etc/openldap/slapd.d/ 移动在别的目录下面。否则加载不了源配置文件

#:mv /etc/openldap/slapd.d/ /

#: cp /etc/openldap/slapd.conf.bak slapd.conf


2.3OpenLDAP主配置文件及密码

# slappasswd

{SSHA}e+Oc+yz/BW29boQbWRmpvM2mjYi8u3Jd

# vim /etc/openldap/slapd.conf

5: database bdb

6: suffix "dc=example,dc=com"

7: rootdn "cn=root,dc=example,dc=com"

8: rootpw  {SSHA}e+Oc+yz/BW29boQbWRmpvM2mjYi8u3Jd


2.4、启动服务及调试

#:centos 5.5

#/etc/init.d/ldap start

#:centos 6.0

#/etc/init.d/slapdrestart

centos5.5并有一个提示信息错误,提示没有DB_CONFIG

#:cp /etc/openldap/DB_CONFIG.example /var/lib/ldap/DB_CONFIG

Centos6.0并有一个提示信息错误,提示没有DB_CONFIG

#: cp -p /usr/share/doc/openldap-servers-2.4.19/DB_CONFIG.example /var/lib/ldap/DB_CONFIG

2.5、测试并、查看监听端口

# netstat -tnlp | grep 389

# ldapsearch -x -b '' -s base '(objectclass=*)'

注意:-b 后面是两个单引号,用来阻止特殊字符被Shell 解析。


2.6、安装ldapphpadmin 管理工具

# unzip phpldapadmin-1.2.0.5.zip

# mv phpldapadmin-1.2.0.5 /var/www/html/phpadmin

#cp /test/phpadmin/config.php.example /var/www/html/phpldapadmin/config/config.php

#:vim /var/www/html/phpadmin/config/config.php

找到$servers->setValue('server','name','My LDAP Server');

将下面的子属性注释掉

$servers->setValue('server','host','localhost');

$servers->setValue('server','port',389);

$servers->setValue('server','base',array('dc=zeng,dc=com'));

$servers->setValue('login','auth_type','session');

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

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

# /etc/init.d/httpd start


2.7LDAP日志创建及分割

Centos 5.5

#:vim /etc/syslog.conf

#:/etc/init.d/syslog restart && chkconfig syslog on

Centos 6.0

#:vim /etc/rsyslog.conf

#:/etc/init.d/rsyslog restart  && chkconfig rsyslog on

# save OpenLDAP log

local4.*                                                /var/log/ldap.log

#:touch /var/log/ldap.log

#:vim /etc/openldap/slapd.conf

Loglevel     256

切割脚本:

#:定义全局变量

#:提取当前路径

PWDDIR=`pwd`


#:原始日志文件存放位置

DIRLOG="/var/log/ldap.log"

#:切割日志备份路径

BACKLOG="/opt/ldaplog"

#:提取月

MONTH=`date | awk '{print $2}'`

#:提取日

DATE=`date | awk '{print $3}'`

#:Ldap_log-->切割涵数

Ldap_log(){

#:判断原始LOG文件是否存在。不存在则退出

if [ -f $DIRLOG ]

then

mkdir -p $BACKLOG

else

 echo "not log file.."

return 1

fi

#:开始切割,切割完成之后,就清空原始日志.

cp $DIRLOG $BACKLOG/$MONTH-$DATE-ldap.log

if [ $? -eq 0 ]

then

echo "" > $DIRLOG

else

 echo "切割失败...."

return 1

fi

}

#:Ldap_rm-->每周一删除前7天的日志

Ldap_rm(){

#:统计切割数量,一周删除一次,

LOGFIEL=`ls $BACKLOG | grep "log" | wc -l`

if [ $LOGFIEL -gt 7 ] || [ $LOGFIEL -eq 7 ]

then

ls $BACKLOG | grep "log" | while read test

do

rm $BACKLOG/$test

done

fi

}

#:Main-->主函数入口

main(){

#:先删除前7天的日志,

Ldap_rm

 if [ $? -eq 1 ]

then

exit 1

 fi

#:开始切割备份

Ldap_log

 if [ $? -eq 1 ]

then

exit 1

 fi

}

#:执行主函数

Mail;

三、LDAP数据添加/232

3.1、添加主域名树根zeng.com

# vim 1.ldif

dn: dc=zeng,dc=com

objectclass: dcobject

objectclass: organizationalUnit

dc: zeng

ou: zeng

#ldapadd �Cv �Cc �Cx �CD cn=root,dc=zeng,dc=com�Cw 123 �Cf 1.ldif

3.2、添加二级OU组织

# vim 2.ldif

dn: ou=group,dc=zeng,dc=com

objectclass: organizationalUnit

ou: group

3.3、添加用户组

# mkdir /tmp/test && cd /tmp/test

# groupadd user && cat /etc/group > usergroup.in

# cd /usr/share/openldap/migration/

#./migrate_group.pl /tmp/test/usergroup.in > /tmp/test/usergroup.ldif

#vim /tmp/test/usergroup.ldif

dn: cn=user,ou=group,dc=zeng,dc=com

objectClass: posixGroup

objectClass: top

cn: user

userPassword: {crypt}x

gidNumber: 500

# ldapadd �Cv �Cc �Cx �CD cn=root,dc=zeng,dc=com�Cw 123 �Cf /tmp/test/usergroup.ldif

adding new entry "cn=user,ou=group,dc=zeng,dc=com"

modify complete

GID:500       和下面的用户GID一样

3.4、批量添加用户

# vim /tmp/test/list.user

user01

user02

user03

user04

user05

user06

#for zeng in `awk '{print $1}' /tmp/test/list.usr`; do useradd $zeng done;

# cat /etc/passwd > /tmp/test/list.in

#vim /tmp/test/list.in

user01:x:500:500::/home/user01:/bin/bash    ##GID改成500,加入上面的user

user02:x:501:500::/home/user02:/bin/bash

user03:x:502:500::/home/user03:/bin/bash

user04:x:503:500::/home/user04:/bin/bash

user05:x:504:500::/home/user05:/bin/bash

user06:x:505:500::/home/user06:/bin/bash

user07:x:506:500::/home/user07:/bin/bash

#./migrate_passwd.pl /tmp/test/list.in > /tmp/test/list.ldif

#cat /tmp/test/list.ldif

dn: uid=user01,ou=group,dc=zeng,dc=com   ##指定正确的OU/

uid: user01

cn: user01

objectClass: account

objectClass: posixAccount

objectClass: top

objectClass: shadowAccount

userPassword: {crypt}$1$Za0PIA24$5uY5GiiZ4LDhYABNgmcj1/

shadowLastChange: 15075

shadowMin: 0

shadowMax: 99999

shadowWarning: 7

loginShell: /bin/bash

uidNumber: 500

gidNumber: 501

homeDirectory: /home/user01

#ldapadd -v -x -c -D "cn=root,dc=example,dc=com" -w 123 -f /tmp/test/list.ldif

ldap_initialize( <DEFAULT> )

add uid:
user01

add cn:

user01

adding new entry "uid=user01,ou=group,dc=example,dc=com"

modify complete


3.5、配置LDAP客户端验证231

# authconfig-tui

[*]Use LDAP

[*]Use LDAP Authentication


# vim /etc/pam.d/system-auth

session     required      pam_mkhomedir.so skel=/etc/skel umask=0022

# su user01

在客户端用ldap 用户登陆

四、Kerberos 部署/232

4.1、安装Kerberos

#yum �Cy install cyrus-*

#yum -y install krb5-*

4.2、修改配置krb5.conf

#vim /etc/krb5.conf

[logging]

default = FILE:/var/log/krb5libs.log

kdc = FILE:/var/log/krb5kdc.log

admin_server = FILE:/var/log/kadmind.log

[libdefaults]

default_realm = ZENG.COM

ticket_lifetime = 24h

forwardable = yes

[realms]

ZENG.COM = {

 kdc = 192.168.8.230:88

 admin_server = 192.168.8.230:749

 default_domain = zeng.com

}

[domain_realm]

.zeng.com = ZENG.COM

zeng.com = ZENG.COM

[appdefaults]

pam = {

  debug = false

  ticket_lifetime = 36000

  renew_lifetime = 36000

  forwardable = true

  krb4_convert = false

}

4.3、修改配置kdc.conf

#vim /var/kerberos/krb5kdc/kdc.conf

v4_mode = nopreauth

kdc_tcp_ports = 88

[realms]

ZENG.COM = {

 #master_key_type = des3-hmac-sha1

 acl_file = /var/kerberos/krb5kdc/kadm5.acl

 dict_file = /usr/share/dict/words

 admin_keytab = /var/kerberos/krb5kdc/kadm5.keytab

 supported_enctypes = des3-hmac-sha1:normal arcfour-hmac:normal des-hmac-sha1:normal des-cbc-md5:normal des-cbc-crc:normal des-cbc-crc:v4 des-cbc-crc:afs3

}

4.4、修改配置 kadm5.acl

# vim /var/kerberos/krb5kdc/kadm5.acl

*/admin@ ZENG.COM

4.5、创建realm

#kdb5_util create �Cr TEST-2.EXAMPLE �Cs

#kdb5_util create �Cs还可以这样写

kerbers数据库文件都放在/var/kerberos/krb5kdc/下面

4.6启动krb5kdckadmin两个服务

# /etc/init.d/krb5kdc start

#/etc/init.d/kadmin start

4.7、创建Krb-admin管理用户

# kadmin.local

kadmin.local:  addprinc admin/ZENG.COM

4.8、将ldap服务加入Krb-

#kadmin.local

kadmin.local: addprinc -randkey ldap/test-3-232.zeng.com@ZENG.COM

4.9、将客户端加入Krb-

# kadmin.local

kadmin.local:addprinc�Crandkeyhost/test-2-231.zeng.com@ZENG.COM

5.0、创建登陆用户,

kerberos ldap必须帐号一样,提示输入密码,

# kadmin.local

kadmin.local: addprinc user01

5.1、配置LDAP-Keberos客户端

#: authconfig-tui

[*]Use LDAP [*]Use LDAP Authentication

           [*]Use Kerberos

              NEXT

===============================================

Server:ldap://192.168.8.232/

Base DN: dc=zeng,dc=com

               NEXT

===============================================

Realm:ZENG.COM

KDC: 192.168.8.232:88

Admin Server: 192.168.8.232:749


5.2、使用ssh登陆验证

验证说明一:

231使用user01等登陆,当ldap用户也有密码,Kerberos 也有密码,

系统会以kerberos的密码为准,正常ldap用户不需要创建密码,

这样实现了,LDAP管理用户,Kerberos 管理密码


验证说明二:

keberos 上把user01 的密码重改一次,在231客户端登陆的时候,试一下,用以前的旧密码是否可以登陆?

当在ldap上把user01删除掉。保留kerberos 里面的user01,在231上面试一下,是否可以登陆?


你可能感兴趣的:(LDAP+keberos)