redhat5.8+apache+ldap(提供软件包)

简介:

搭建ldap分别通过weblam管理,ldap+apache

LDAP安装:

# yum install -y openldap openldap-clientsopenldap-servers

# ls /etc/openldap/

slapd.conf      主配置文件

lapd.conf       Client配置文件


看是否已经有定义好的架构,关于描述linux系统用户和系统的组的对象类和属性类

# cat /etc/openldap/schema/nis.schema

      MUST( cn $ uid $ uidNumber $ gidNumber $ homeDirectory )       #字段值不能为空

      MAY( userPassword $ loginShell $ gecos $ description ) )        #字段值可以为空

加密rootdn密码

# slappasswd -h {MD5}

New password:

Re-enter new password:

{MD5}ICy5YqxZB1uWSwcVLSNLcA==



vim /etc/openldap/slapd.conf

include /etc/openldap/schema/nis.schema     #包含定义好的架构

allow bind_v2                                          #定义版本,向下兼容

pidfile /var/run/openldap/slapd.pid             #服务启动后的pid文件


... ...


database bdb                              #b伯克利 db数据库

suffix "dc=hn,dc=ny,dc=com"

rootdn "cn=admin,dc=hn,dc=ny,dc=com"   #管理dn ldap管理员账号 cncommon name),不要写OU,管理所有的OU

# Cleartext passwords, especially for therootdn, should

# be avoided. See slappasswd(8) andslapd.conf(5) for details.

# Use of strong authentication encouraged.

# rootpw secret

# rootpw {crypt}ijFYNcSNctBYg

rootpw {MD5}ICy5YqxZB1uWSwcVLSNLcA==      #管理dn密码

# The database directory MUST exist priorto running slapd AND

# should only be accessible by the slapdand slap tools.

# Mode 700 recommended.

directory /var/lib/ldap          #真正数据库的位置,700权限,所有者及组为ldap


# Indices to maintain for this database         #优化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

**************************************************

access toattrs=shadowLastChange,userPassword by self write by * auth

access to * by * read

**************************************************    

#access 行定义了谁可以访问目录中的内容。我们希望用户可以修改自己的密码,并更新自己的shadow 信息来反映密码的变化。希望身份验证程序能够检索用户的密码。还希望用户能够读取所有其他条目。注意密码条目是不可读的,shadow 属性的惟一用处就是管理密码的过期问题。


启动LDAP服务

# ls /etc/openldap/

cacerts DB_CONFIG.example ldap.conf schemaslapd.conf


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


# chown ldap /var/lib/ldap/DB_CONFIG


# service ldap start

Checking configuration files for slapd:config file testing succeeded [ OK ]

Starting slapd: [ OK ]


ldap库模板定义生成ldap目录结构的变量/usr/share/openldap/migration/ 中执行迁移。这些Perl 脚本的配置信息包含在migrate_common.ph文件的开头。对于我们的目的来说,只需要修改命名前缀的变量来使用条目的识别名就足够了


[root@localhost migration]# vimmigrate_common.ph

$DEFAULT_MAIL_DOMAIN = "hn.ny.com";

$DEFAULT_BASE = "dc=hn,dc=ny,dc=com";

[root@localhost migration]#./migrate_base.pl > /tmp/uplooking.ldif #perl脚本调用migrate_common.ph生成可以导入ldapldif文件


[root@localhost migration]# vim /tmp/ny.ldif

dn: dc=hn,dc=ny,dc=com

dc: hn

objectClass: top

objectClass: domain


dn: ou=People,dc=hn,dc=ny,dc=com

ou: People

objectClass: top

objectClass: organizationalUnit


dn: ou=Group,dc=hn,dc=ny,dc=com

ou: Group

objectClass: top

objectClass: organizationalUnit


建立测试用户

[root@localhost ~]# for i in {1..5} ; douseradd ldap$i ; echo "123456" | passwd --stdin ldap$i ; done

[root@localhost ~]# grep -E ^ldap[1-5]+/etc/passwd > /tmp/users.txt

[root@localhost ~]# grep -E ^ldap[1-5]+/etc/group > /tmp/groups.txt 生成用户和组ldif文件

[root@localhost ~]# cd/usr/share/openldap/migration/

[root@localhost migration]#./migrate_passwd.pl /tmp/users.txt > /tmp/users.ldif

[root@localhost migration]#./migrate_group.pl /tmp/groups.txt > /tmp/groups.ldif


[root@localhost migration]# ldapadd -x -D"cn=admin,dc=hn,dc=ny,dc=com" -w 123456 -f ny.ldif    

[root@localhost migration]# ldapadd -x -D"cn=admin,dc=hn,dc=ny,dc=com" -w 123456 -f groups.ldif

[root@localhost migration]# ldapadd -x -D"cn=admin,dc=hn,dc=ny,dc=com" -w 123456 -f users.ldif


:ny.ldif必须最先导入。

-x 简单验证

-D 指定身份

-W 提示输入口令


[root@localhost migration]# netstat -tunpl| grep slapd

tcp 0 0    0.0.0.0:389   0.0.0.0:*        LISTEN 17873/slapd

tcp 0 0    :::389           :::*         LISTEN 17873/slapd


在服务器上使用ldapsearch命令查询ldap数据库中的信息,检查ldif文件是否已经导入成功:

[root@localhost ~]# ldapsearch -x -w 123456-h 127.0.0.1 -D "cn=admin,dc=hn,dc=ny,dc=com" -b "dc=hn,dc=ny,dc=com"



#system-config-authentication

wKiom1M1iUnheqyOAAF4ugWtbzQ214.jpg


更改密码

如何改变自己的密码  ldappasswd 使用你自己的DN

# ldappasswd -xD "uid=ldap1,ou=People,dc=hn,dc=ny,dc=com"-WS      #如果没有指定-S,会创建一个新的密码

ldapwhoami测试登录

# ldapwhoami -xD "uid=ldap1,ou=People,dc=hn,dc=ny,dc=com"–W


WEB管理LDAP

# yum install httpd phpphp-ldap

# vim /etc/httpd/conf.d/php.conf

# tar zxvfphpldapadmin-1.2.0.4.tgz

# mv phpldapadmin-1.2.0.4/var/www/html/ldap

# service httpd start

# firefox http://localhost/ldap


wKioL1M1iTLh6S6PAALZtOxNMgE955.jpg


LAM

# yum install httpd phpphp-ldap

# rpm -ivh ldap-account-manager-2.6.0-0.fedora.1.noarch.rpm

全局配置文件:(语言)

# cd/var/www/html/lam/config

[root@localhostconfig]# cp config.cfg_sample config.cfg

对应服务器配置文件:

[root@localhostconfig]# cp lam.conf_sample ldapserver1.conf

[root@localhostconfig]# vim ldapserver.conf

admins: cn=admin,dc=hn,dc=ny,dc=com

passwd:{MD5}4QrcOUm6Wau+VuBX8g+IPg==

treesuffix: dc=hn,dc=ny,dc=com

注意:

vim ldapuser1.conf 将全部my-domain替换ny.

[root@localhostconfig]# chown -R apache.apache *

# firefox http://localhost/lam


wKiom1M1iWuT5fWFAAMRMMqbaTk984.jpg



Apache+ldap


1.配置apache验证功能。验证页面如何连接ldap来验证

2.ldapapache相关帐号,apache通过一个自有模块来支持连接ldapmod_authz_ldap

[root@localhost ~]# yuminstall mod_authz_ldap


# vim/etc/httpd/conf.d/authz_ldap.conf

LoadModuleauthz_ldap_module modules/mod_authz_ldap.so

      <IfModule mod_authz_ldap.c>

             <Directory "/var/www/html/">           #设置在IfModule里面,如果模块生效,执行下面

                    AuthzLDAPMethod ldap

                    AuthzLDAPServer 192.168.0.116

                    AuthzLDAPUserBase ou=People,dc=hn,dc=ny,dc=com

                    AuthzLDAPUserKey uid

                    AuthzLDAPUserScope base

                    AuthType basic

                    AuthName "ldap test"

                    require valid-user

             </Directory>

      </IfModule>

# service httpd restart


测试:

客户端访问web server,提示需要身份验证,输入ldap服务器的帐号密码,验证通过后可以看到web内容

例如账号ldap1  密码:上面自己设置的

wKioL1M1iVLA010YAAMdl3qC2yc332.jpg


可以到 百度云盘下载 账号 pankuo1@sina.cn密码pk492940446





      本文转自潘阔 51CTO博客,原文链接: http://blog.51cto.com/pankuo/1386295 ,如需转载请自行联系原作者



相关文章
|
Web App开发 关系型数据库 测试技术
|
Linux Apache 开发工具
|
Web App开发 测试技术 Apache
|
测试技术 数据安全/隐私保护