免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3203 | 回复: 0
打印 上一主题 下一主题

[ldap] 配置fc6上的ldap服务器的详细说明,多谢marion、yjnet和各位前辈 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-06-26 14:22 |只看该作者 |倒序浏览
我安装的时候遇到的主要问题是make test时出现[bdb-yes]error的问题,应该是bdb的库文件没有找到的问题,详见后文,希望大家把自己的经验都贡献出来!再次感谢marion和yjnet,本文就是在他们的基础上修改而成的。

需要安装的程序有:
openssl0.98e和cyrus-sasl-2.0.22 、BerkeleyDB
其中openssl0.98e和cyrus-sasl-2.0.22是为了支持ssl/tls和sasl
      BerkeleyDB是后端数据库

一、安装openssl0.98e

1.1 下载相关软件包至/usr/local/src目录

http://www.openssl.org/source/openssl-0.9.8e.tar.gz

1.2 安装openssl

#cd /usr/local/src
#tar zxvf openssl-0.9.8e.tar.gz
#cd openssl-0.9.8e
#./config shared zlib
#make
#make test
#make install
mv /usr/bin/openssl /usr/bin/openssl.OFF
mv /usr/include/openssl /usr/include/openssl.OFF
ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/ssl/include/openssl /usr/include/openssl

1.3 配置库文件搜索路径

#echo "/usr/local/ssl/lib" >> /etc/ld.so.conf
#ldconfig -v

1.4 查看openssl的版本号,以验正是否安装正确

#openssl version -a
OpenSSL 0.9.8e 17 Apr 2007
built on: Sat Mar 24 21:24:41 CST 2007
platform: linux-elf
options:  bn(64,32) md2(int) rc4(idx,int) des(ptr,risc1,16,long) idea(int) blowfish(idx)
compiler: gcc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall -DOPENSSL_BN_ASM_PART_WORDS -DOPENSSL_IA32_SSE2 -DSHA1_ASM -DMD5_ASM -DRMD160_ASM -DAES_ASM
OPENSSLDIR: "/usr/local/ssl"

二、安装cyrus-sasl-2.0.22

2.1 下载cyrus-sasl-2.1.22到/usr/local/src
http://ftp.andrew.cmu.edu/pub/cyrus-mail/cyrus-sasl-2.1.22.tar.gz

2.2 编译安装

#tar zxvf cyrus-sasl-2.1.22.tar.gz
#cd  cyrus-sasl-2.1.22
# ./configure --prefix=/usr/local/sasl2 --enable-login --with-openssl=/usr/local/ssl
#make
#make install

2.3配置库文件搜索路径

#echo "/usr/local/sasl2/lib" >> /etc/ld.so.conf
#echo "/usr/local/sasl2/lib/sasl2" >> /etc/ld.so.conf
#ldconfig -v
2.4 把Redhat9.0原有的sasl库文件改名或删除,并将相关符号链接指向新安装SASL的库文件

#cd /usr/lib
# mv libsasl2.a libsasl2.a.OFF
# mv libsasl2.la libsasl2.la.OFF
# mv libsasl2.so libsasl2.so.OFF
# mv libsasl2.so.2.0.10 libsasl2.so.2.0.10.OFF
# mv lIbsasl2.so.2 libsasl2.so.2.OFF

# ln -s /usr/local/sasl2/lib/* /usr/lib
# ln -s /usr/local/sasl2/lib/sasl2 /usr/lib/sasl2

#ln -s /usr/local/sasl2/lib/libsasl2.so.2.0.22 /usr/lib/libsasl2.so.2
#ln -s /usr/local/sasl2/lib/libsasl2.so /usr/lib/libsasl2.so
2.5 创建运行时需要的目录并调试启动

#mkdir -pv /var/state/saslauthd      

# ./saslauthd -a pam shadow -d
saslauthd[3533] :main            : num_procs  : 5
saslauthd[3533] :main            : mech_option: NULL
saslauthd[3533] :main            : run_path   : /var/state/saslauthd
saslauthd[3533] :main            : auth_mech  : pam
saslauthd[3533] :ipc_init        : using accept lock file: /var/state/saslauthd/mux.accept
saslauthd[3533] :detach_tty      : master pid is: 0
saslauthd[3533] :ipc_init        : listening on socket: /var/state/saslauthd/mux
saslauthd[3533] :main            : using process model
saslauthd[3534] :get_accept_lock : acquired accept lock     
saslauthd[3533] :have_baby       : forked child: 3534
saslauthd[3533] :have_baby       : forked child: 3535
saslauthd[3533] :have_baby       : forked child: 3536
saslauthd[3533] :have_baby       : forked child: 3537

2.6 启动并测试验正

#/usr/local/sasl2/sbin/saslauthd -a pam shadow

#/usr/local/sasl2/sbin/testsaslauthd -u root -p root的密码
0: OK "Success."

三、安装BerkeleyDB

3.1 下载相关软件至/usr/local/src   注意BerkeleyDB.4.7有问题,编译时会产生段错误,我们使用BerkeleyDB.4.6.21
安装步骤
1、由于openldap需要Berkeley DB来存放数据,所以需先安装BerkeleyDB.4.6.21,可到它的网站下载,网址:http://www.oracle.com/technology/software/products/berkeley-db/db/index.html

# tar -zxvf db-4.6.21.tar.gz
解完压后,会生成一个db-4.6.21目录,进行该目录下的build_unix目录。执行以下命令进行配置安装。
#env CC=gcc CCC=g++ ../dist/configure    注:对于gcc或g++编译器要加上env CC=gcc CCC=g++
# make
# make install
也是按linux源码安装的三步曲完成,没有什么好说的了。该软件默认是安装在/usr/local/BerkeleyDB.4.6目录下。安装完成后,要把/usr/local/BerkeleyDB.4.6/lib的库路径加到/etc/ld.so.conf文件内,添加完成后执行一次 ldconfig,使用配置文件生效。这样编译openldap时才能找到相应的库文件。这样资料库就安装完成了,接下来可以安装openldap了。
ld.so.conf是什么东西?它就是系统动态链接库的配置文件。此文件内,存放着可被LINUX共享的动态链接库所在目录的名字(系统目录/lib, /usr/lib除外),各个目录名间以空白字符(空格,换行等)或冒号或逗号分隔。一般的LINUX发行版中,此文件均含一个共享目录 /usr/X11R6/lib,为X window窗口系统的动态链接库所在的目录。 ldconfig是它的管理命令,具体操作方法可查询man手册。

如果有问题的话就将/usr/local/BerkeleyDB.4.6/lib/下的库文件拷贝到/usr/lib下

四、安装openldap    安装的是openldap-2.4.10
1)env CPPFLAGS="-I/usr/local/BerkeleyDB.4.6/include -I/usr/local/sasl2/include" LDFLAGS="-L/usr/local/BerkeleyDB.4.6/lib -L/usr/local/sasl2/lib -L/usr/local/sasl2/lib/sasl2"  ./configure --prefix=/usr/local/openldap --sysconfdir=/etc/openldap --enable-bdb

--prefix=/usr/local/openldap将安装后的程序放到/usr/local/openldap路径下,方便删除或管理
--sysconfdir=/etc/openldap是将程序的配置都放到/etc/openldap路径下
2)make depend
3)make
4)make test
        注意,在这一步的时候,如果有问题,出现[bdn-yes]error的时候可能是没有将BerkeleyDB的库文件拷到/usr/lib路径下,要将/usr/local/BerkeleyDB.4.6/lib/下的库文件拷贝到/usr/lib下
这个问题浪费了我很长时间。
5)make install

6)初始化BaseDN
  配置slapd.conf,配置BaseDN的值,
  放入user.ldif
  执行:ldapadd -D "cn=root,dc=daaone,dc=com" -w111111 -x  -f user.ldif
  /****************************************************
                                                  dn: dc=daaone,dc=com
                                                        objectClass: dcObject
                                                        objectClass: organization
                                                        o: Personal Test
                                                        dc: daaone
                                                         
                                                        # Magager DN is root
                                                        dn: cn=root,dc=daaone,dc=com
                                                        objectClass: organizationalRole
                                                        cn: root
  ****************************************************/
  7)添加数据:
  ldapadd -D "cn=root,dc=daaone,dc=com" -w111111 -x  -f nnew.ldif
  
  ldapsearch
          注:        如果没有-b选项制定查询的基点,则查询的是ldap.conf里面定义的BASE项为其查询基点
  ./ldapsearch -h 192.168.1.11-D "cn=root,dc=daaone,dc=com" -w 111111 -x -b "dc=daaone,dc=com" objectclass=person cn
  
  ./ldapsearch -h 192.168.1.11-D test -w 222222 -x -b "dc=daaone,dc=com" objectclass=person cn
  
          不需绑定的查询:
  ./ldapsearch  -h192.168.1.11-x -b "dc=daaone,dc=com" objectclass=person cn
  9)ldappasswd
  ./ldappasswd  -D"cn=root,dc=daaone,dc=com" -w111111 -x -s222222 "cn=test,cn=users,dc=daaone,dc=com"


另:安装失败的时候,可以使用make veryclean 和make uninstall进行删除安装,具体参见各个程序的configure文件
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP