Chinaunix首页 | 论坛 | 博客
  • 博客访问: 314683
  • 博文数量: 61
  • 博客积分: 365
  • 博客等级: 一等列兵
  • 技术积分: 611
  • 用 户 组: 普通用户
  • 注册时间: 2009-12-04 11:39
文章分类

全部博文(61)

文章存档

2017年(15)

2016年(13)

2015年(19)

2014年(12)

2013年(2)

我的朋友

分类: LINUX

2016-04-29 14:34:02




一:server

安装LDAP
# yum install openldap-servers
 cp /usr/share/openldap-servers/slapd.conf.obsolete /etc/openldap/slapd.conf
得到ldap管理帐号的密码,下面会把这个密码加入slapd.confrootpw
# slappasswd
New password:
Re-enter new password:
{SSHA}L19zkWmhL8zXnKfLDetVAwXt3Lm7qBOa

修改slapd.conf
# vi /etc/openldap/slapd.conf
...
include         /etc/openldap/schema/nis.schema
......
suffix          "dc=hanborq,dc=com"
rootdn          "cn=Manager,dc=hanborq,dc=com"
...
rootpw                  {SSHA}L19zkWmhL8zXnKfLDetVAwXt3Lm7qBOa
...
access to attrs=shadowLastChange,userPassword
      by self write
      by * auth
access to *
      by * read
...


默认DB配置:
# cp /etc/openldap/DB_CONFIG.example /var/lib/ldap/DB_CONFIG

删除默认/etc/openldap/slapd.d下面的所有内容,否则后面在使用ldapadd的时候会报错:
# rm -rf /etc/openldap/slapd.d/*


增加LOG
# echo "local4.* /var/log/slapd.log" >> /etc/syslog.conf
# service syslog restart


启动:
# service ldap restart

# chkconfig slapd on
赋予配置目录相应权限:
# chown -R ldap:ldap /var/lib/ldap
# chown -R ldap:ldap /etc/openldap/


测试并生成配置文件:

slaptest  -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d
返回config file testing succeeded,则配置成功。
赋予生成的配置文件予权限并重启:
# chown -R ldap:ldap /etc/openldap/slapd.d

# chmod 755 /etc/openldap/slapd.d/
# service slapd restart


安装配置migrationtools

# yum install migrationtools -y


进入migrationtool配置目录

# cd /usr/share/migrationtools/
首先编辑migrate_common.ph70-74行,自己看,不列出)

下面利用pl脚本将/etc/passwd /etc/shadow生成LDAP能读懂的文件格式,保存在/tmp/

# ./migrate_base.pl > /tmp/base.ldif
# ./migrate_passwd.pl  /etc/passwd > /tmp/passwd.ldif
# ./migrate_group.pl  /etc/group > /tmp/group.ldif

下面就要把这三个文件导入到LDAP,这样LDAP的数据库里就有了我们想要的用户

# ldapadd -x -D "cn=admin,dc=example,dc=com" -W -f /tmp/base.ldif
# ldapadd -x -D "cn=admin,dc=example,dc=com" -W -f /tmp/passwd.ldif
# ldapadd -x -D "cn=admin,dc=example,dc=com" -W -f /tmp/group.ldif
过程若无报错,则LDAP服务端配置完毕

这里的-x表示简单鉴权,-W为提醒输入口令。

重启slapd完成配置

# service slapd restart


检查一下:
# ldapsearch -x -b "dc=hanborq,dc=com"
可以看到所有用户和组都加入了。

URL
方式检查:
非加密方式:
# ldapsearch -v -x -H ldap://nd0-rack2-cloud


二、客户端配置
安装nss-pam-ldapd

修改所有/etc/hosts文件,把服务端ip和域名相对应
下面的配置最好使用setup命令来配置。
修改/etc/sysconfig/authconfig
"USELDAP=yes"
"USELDAPAUTH=yes"   

"USEMD5=yes"         

"USESHADOW=yes"  

"USELOCAUTHORIZE=yes"

FORCELEGACY=no(非加密方式修改为yes,若使用TLS修改为no
修改/etc/openldap/ldap.conf:(centos 6.x可以不修改这个文件,亲测)
centos6.x
修改/etc/pam_ldap.conf/etc/nslcd.conf
# vi /etc/pam_ldap.conf
host nd0-rack2-cloud(可以注释掉)
base dc=hanborq,dc=com

uri ldap://nd0-rack2-cloud(使用服务端的主机名)

CentOS6.x
需要配置/etc/nslcd.conf
# vi /etc/nslcd.conf
uri ldap://nd0-rack2-cloud
base dc=hanborq,dc=com


修改NSS:
# vi /etc/nsswitch.conf
...
passwd:     files ldap
shadow:     files ldap
group:      files ldap
...
netgroup:   files ldap
...
automount:  files ldap
...

修改系统鉴权:
# vi /etc/pam.d/system-auth
/etc/pam.d/password-auth
auth        requisite     pam_succeed_if.so uid >= 500 quiet
auth        sufficient    pam_ldap.so use_first_pass
...
account     sufficient    pam_succeed_if.so uid < 500 quiet
account     [default=bad success=ok user_unknown=ignore] pam_ldap.so
...
password    sufficient    pam_unix.so md5 shadow nullok try_first_pass use_authtok
password    sufficient    pam_ldap.so use_authtok
...
session     required      pam_unix.so
session     optional      pam_ldap.so

重启nslcd服务

三、用户登录自动创建家目录

服务端

安装:openssh-ldap

拷贝:cp /usr/share/doc/openssh-ldap-5.3p1/openssh-lpk-openldap.schema /etc/openldap/schema

修改slapd.conf

include         /etc/openldap/schema/openssh-lpk-openldap.schema

客户端:

安装oddjob-mkhomediroddjobopenssh-ldap

# yum install -y oddjob-mkhomedir oddjob openssh-ldap

# chkconfig oddjobd on

# service messagebus start

Starting system message bus: [ OK ]

# service oddjobd start

Starting oddjobd: [ OK ]

# authconfig --enablemkhomedir --update

Starting oddjobd: [ OK ]

修改客户端sshd_config

AuthorizedKeysCommand /usr/libexec/openssh/ssh-ldap-wrapper

手动添加/etc/pam.d/password-authsystem-auth

session     optional      pam_oddjob_mkhomedir.so umask=0077

重启sshd

重启 nslcd

四、添加sudo权限

服务端:

cp /usr/share/doc/sudo-1.8.6p3/schema.OpenLDAP /etc/openldap/schema/sudo.schema

然后include/etc/openldap/slapd.conf

再执行一次slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d

重启slapd

Client端:

修改/etc/sudo-ldap.conf

uri ldap://manager.abc.com

sudoers_base dc=abc,dc=com

修改/etc/nsswitch.conf

sudoers:    files ldap

关于sudo.ldif的配置,个人觉得首先你得对sudoers的配置相当了解,然后结合ldap的格式操作即可,了解清楚了,就很好操作:

五、常规操作

1、导入时,执行:
# ldapadd -x -h 192.168.1.10 -D 'cn=admin,dc=test,dc=com' -W -f info.ldif

ldapadd
命令各参数含义如下:
-x
为使用简单密码验证方式
-D
指定管理员DN(与slapd.conf中一致)
-W
为管理员密码,可以使用-w password 直接输入密码
-f
为初始化数据LDIF的文件名
-h
为操作的服务器IP地址

2、搜索操作:

# ldapsearch -x -b 'dc=test,dc=com'

3、修改操作:

其实也可以使用文件进行批量修改,我们只要把需要修改信息写入文件即可,比如:

dn: uid=ldapuser1,ou=People,dc=test,dc=com
changetype: modify
replace: uidNumber
uidNumber: 1000

把以上内容写入test.ldif中,运行如下命令:

ldapmodify -x -D "cn=admin,dc=test,dc=com" -w yourpasswd -f test.ldif

4、删除操作

删除时,给出DN即可:
# ldapdelete -x -D 'cn=admin,dc=test,dc=com' -w yourpasswd -r 'dc=test,dc=com'
-r
表示以递归模式删除,即删除该节点下面的所有子节点。



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