加载中…
个人资料
chifeng
chifeng
  • 博客等级:
  • 博客积分:0
  • 博客访问:25,639
  • 关注人气:1
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
谁看过这篇博文
加载中…
正文 字体大小:

<一> 构建一个供Extmail/Extman使用的LDAP Server

(2006-01-07 15:44:20)
分类: Mail System.
<一>构建一个供Extmail/Extman使用的LDAP Server
相关内容都是基于FreeBSD6.0 Release

阅读本文之前需要知道一些LDAP的基本知识,相关内容请参考:
http://chifeng.cosoft.org.cn/data/OpenLDAPAdmin.doc
或者google一些相关文档来看。

邮件系统基本上是以认证为中心,所以搭建邮件系统必须首先要搭建好认证系统。在这里使用LDAP来存储认证数据,目前有多个LDAP的实现,这里我们使用开源的OpenLDAP。

1,OpenLDAP的安装
由于使用FreeBSD操作系统,所以使用Ports来安装软件
#cd /usr/ports/net/openldap-2.2server && make install clean

2, OpenLDAP的配置
OpenLDAP有2个配置文件,ldap.conf和slapd.conf,他们分别是针对client和server的配置文件,由于只有一台机器,所以client和server都是本机。
2.1,配置/etc/hosts
IP ldap.extmail.org
IP ldap-master.extmail.org
由于我们使用域名来访问LDAP Server,所以需要在hosts文件中添加一行数据,如果是有DNS,则在DNS中添加相应的域名.
2.2, 配置slapd.conf
这个文件是配置OpenLDAP的server端,需要修改的象下面这样的配置
--------------------------------------------------------
include /usr/local/etc/openldap/schema/core.schema
include /usr/local/etc/openldap/schema/cosine.schema
include /usr/local/etc/openldap/schema/nis.schema
include /usr/local/etc/openldap/schema/extmail.schema
#包括了一些LDAP的schema,也需要把extmail.schema包含进去.extmail.schema可以在extman的安装包里面找到.
pidfile /var/run/openldap/slapd.pid
argsfile /var/run/openldap/slapd.args
database bdb
#让LDAP使用伯克利DB来存放数据
suffix "dc=extmail.org"
rootdn "cn=Manager,dc=extmail.org"
rootpw secret
directory /var/db/openldap-data
index objectClass eq

2.3, 配置ldap.conf
这个文件是配置OpenLDAP的client端,配置文件介绍如下
--------------------------------------------------------
BASE dc=extmail.org
#LDAP的起始查找结点
URI ldap://ldap.extmail.org ldap://ldap-master.extmail.org:398
#LDAP服务器的域名,辅库和主库,由于我们没有配置主辅,所以都用一个
SIZELIMIT 12
TIMELIMIT 15
DEREF never

3,OpenLDAP运行
echo 'slapd_enable="YES"' >> /etc/rc.conf
/usr/local/etc/rc.d/slapd.sh
Usage: /usr/local/etc/rc.d/slapd.sh [fast|force|one](start stop restart rcvar status poll)

4, Extmail.schema和初始化导入OpenLDAP的文件init.ldif简介
4.1 extmail的模式一共定义了5个objectclass,分别起着不同的作用,由于extmail.schema需要继承core.schema,cosine.schema,nis.schema这三个类,所以在slapd.conf中必须要包含这三个类.
objectclass ( 1.3.6.1.4.1.12461.1.2.1
NAME ( 'extmailUser' )
定义了用户节点所需存放的数据类
objectclass ( 1.3.6.1.4.1.12461.1.2.2
NAME ( 'extmailRouting' )
标记某个dn属于能路由(带路由信息)的记录
objectclass ( 1.3.6.1.4.1.12461.1.2.3
NAME ( 'extmailAlias' )
定义了别名类
objectclass ( 1.3.6.1.4.1.12461.1.2.4
NAME ( 'extmailDomain' )
支持多域名类
objectclass ( 1.3.6.1.4.1.12461.1.2.6
NAME ( 'extmailManager' )
管理节点的类
4.2
当看init.ldif时,能看到很多节点都有个objectclass: top, 需要说明一下,top类是LDAP的一个基类,就是说他是所有类的父类,而其他的类都是从top继承过去的,表明了LDAP是面向对象的,并且是单根继承的.top类本身其实什么attributetype都没有,他是系统定义的一个类,用来保证对象之间的单根继承.
LDAP从父类继承的时候,是把父类的属性放到了和自己一样的位置,举个例子,x从y继承,y从z继承.访问z属性的时候,并不是象编程中那样通过x->y->z这样的访问,而是x->z这样的访问,所以不会带来属性重复的问题,如果类之间属性有冲突,会导致出错.

导入初始化的init.ldif,把数据导入LDAP中.
ldapadd -x -D 'cn=Manager,dc=extmail.org' -w secret -f init.ldif
导入的数据如下2个图显示:
<一> <wbr>构建一个供Extmail/Extman使用的LDAP <wbr>Server

<一> <wbr>构建一个供Extmail/Extman使用的LDAP <wbr>Server

5,测试
slapcat
ldapsearch

0

阅读 评论 收藏 转载 喜欢 打印举报/Report
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有