如何为AXIGEN邮件服务器配置OpenLDAP
什么是LDAP?
LDAP代表轻型目录访问协议。 此协议用于访问目录列表。 它正在Web浏览器和电子邮件程序中实现,以启用查找查询(搜索某些类型的信息)。 与其他查询架构(如SQL数据库)相比,查找速度是使用LDAP的主要优势。 在大型企业中,大量的请求被提出并将信息存储在数据库中成为一种非常耗资源的方法。 LDAP背后的基本原则是优化了许多记录读取和少量添加或修改。 从管理员的角度来看,只要系统背后的概念被理解,LDAP就相当容易使用。 它不是最方便使用的应用程序,但它提供的好处值得额外的努力。
为什么要使用LDAP?
LDAP可以沿AXIGEN一起使用,提供三种功能:LDAP地址簿,用户认证和连接路由。 这种集成所带来的主要优点是在发送电子邮件时特别是在大型联系人数据库中搜索联系人所需的时间较少,减少了服务器的压力,提高了最终用户的生产力。 身份验证是一种广泛使用的方法,可防止未经授权的访问邮件服务器。 在具有数百或数千个帐户的邮件环境中,长时间的身份验证时间可能会阻止其他用户登录系统,从而导致服务差。 在管理多个AXIGEN服务器时,LDAP作为从单个位置控制所有身份验证过程的手段。
如果您正在寻找一个共享通讯录,并希望在多个AXIGEN服务器上分布用户帐户,则OpenLDAP(LDAP协议的开源实现)应与AXIGEN Mail Server一起使用。
如果您决定在邮件服务器中使用LDAP系统,则需要考虑几个方面。 在实际开始安装和配置之前,需要对LDAP系统进行公正的理解。 配置和实施LDAP服务器所需的额外工作负担是相当大的,因此通常仅在散布在多个AXIGEN服务器上的大量邮箱的场景中使用。
LDAP如何工作?
默认情况下,客户端通过连接到LDAP服务器来启动LDAP会话,389 TCP端口。 然后,客户端向返回某个响应的服务器发送操作请求(查询)。 除特定情况外,客户端不需要在发送后续请求之前等待响应,服务器可以按任何顺序发送响应。
LDAP服务器通常支持以下操作:
- 绑定(认证和协议版本规范)
- 搜索(搜索目录中的元素)
- 添加(向目录添加元素)
- 修改(编辑元素的内容)
- 删除(从目录中删除一个元素)
- 放弃(取消以前的请求)
- 解除绑定(关闭连接)
当使用安全连接时,默认端口为636.安全连接已在2003年正式停用,以及LDAP协议的第二个版本(ldapv2)。 即使这个版本已被弃用,但是许多应用程序仍然使用它,因此它仍然得到支持。
LDAP目录类似于一个条目树。 这些条目具有自己的属性和唯一标识符。 属性具有在服务器使用的模式中定义的名称。 唯一标识符实际上是包含条目属性(例如CN - 通用名称)的条目的DN(可分辨名称),后面是父条目的标识符。 这是一个例子:
dn: cn=Someone,dc=example,dc=org
cn: Someone
givenName: Someone
mail: someone@example.org
manager: cn=Some manager,dc=example,dc=org
objectClass: inetOrgPerson
objectClass: organizationalPerson
objectClass: person
在此示例中,条目的名称为“Someone”,父条目名称为“example.org”。 “dc”代表域组件,并且是特定于域名的。 其余的行是这个特定条目的属性。 属性一般容易猜出名称,如“邮件”。
为AXIGEN配置LDAP
在将身份验证类型更改为LDAP之前,必须确保已安装AXIGEN Mail Server 3.0或更高版本,运行LDAP服务器并设置LDAP目录。
动手实例 - Debian 3.1和AXIGEN 3.0
1.安装AXIGEN 3.0并配置您选择的域 (在此配置示例中为example.org)。 确保您有一些帐户在该域中处于活动状态。
2.安装LDAP服务器:
- 安装所需的软件包:
apt-get -y install slapd ldap-utils
- 输入AXIGEN邮件服务器(example.org)中定义的域名。 这将导致“dc = example,dc = org” ;
- 为组织输入相同的“example.org”;
- 选择您的服务器的密码;
- 选择启用对LDAPv2协议的支持。
3.配置LDAP
- 用你喜欢的文本处理器编辑文件:
/etc/ldap/slapd.conf
- 取消注释:
#allow bind_v2
- 在定义模式的行中,通过插入以下行包括“misc模式”:
include /etc/ldap/schema/misc.schema
- 重新启动LDAP服务器:
/etc/init.d/slapd restart
4.设置LDAP目录结构:
- 创建一个将要添加的后续用户的模板的文件:
touch user.ldiff
- 编辑新创建的文件,并在其中插入以下行:
dn: cn=example-user,dc=example,dc=org
objectClass: inetOrgPerson
objectClass: inetLocalMailRecipient
cn: example-user
sn: example-user
mail: example-user@example.org
userPassword: userpass
mailHost: 127.0.0.1 - 保存并关闭文件。 确保任何行上都不存在任何尾随空格,并且文件以'换行'字符结尾。 如果不满足这些要求,LDAP将返回语法错误。 当您要将新用户添加到目录数据库中时,您所要做的就是更改上述文件的内容以适应新的身份;
- 在目录列表中添加用户使用以下命令:
ldapadd -x -D "cn=admin,dc=example,dc=org" -W -f user.ldiff
- 重要! 连接到LDAP服务器时,请确保使用“-x”开关以使用纯认证。
- 服务器将要求密码,然后该命令的输出应该类似于:添加新条目“cn = example-user,dc = example,dc = org”
- 如果您在此处收到错误,则使用错误的密码,或者您需要再次检查文件是否有错误;
- 编辑文件并再添加一些用户到目录,以测试设置。
5.确保LDAP目录包含所需的信息:
使用以下命令在LDAP目录上执行搜索:
ldapsearch -b "dc=example,dc=org" -W -D "cn=admin, dc=example,dc=org" -x
此命令将显示目录中当前存在的所有条目。 您应该能够识别您用于登录服务器的管理员用户以及您创建的所有帐户。 如果不是这样,请在继续之前查看以前的步骤。
6.将AXIGEN配置为使用LDAP目录进行身份验证和路由
首先配置一个新的LDAP连接器:
- 登录WebAdmin界面;
- 转到“UserDB”上下文;
- 单击“LDAP连接器”选项卡;
- 点击“添加新的ldapconn”按钮;
- 设置以下属性:
Name: ldap-users
Host URL: ldap://localhost:389
bindDN: cn=admin,dc=example,dc=org
bindPass: <your_LDAP_password>
searchBase: dc=example,dc=org
searchPattern: mail=%e
passwordField: userPassword
axigenHostField: mailHost
- 点击“添加”按钮;
- 点击“提交”按钮;
- 点击“保存配置”按钮;
然后创建一个新的用户地图:
- 在“服务器”上下文中,单击“用户地图”选项卡;
- 点击“添加新地图”按钮;
- 设置以下属性:
Name: ldap-users
Host URL: ldap://localhost:389
bindDN: cn=admin,dc=example,dc=org
bindPass: <your_LDAP_password>
searchBase: dc=example,dc=org
searchPattern: mail=%e
passwordField: userPassword
axigenHostField: mailHost
- 点击“添加”按钮;
- 点击“提交”按钮;
- 单击“保存配置”按钮。
7.为特定服务启用LDAP身份验证(本例中为IMAP)
- 登录WebAdmin界面;
- 转到IMAP上下文;
- 在“用户dB连接器类型”部分中选择“ldap”;
- 将“userdbConnectorName”设为“ldap-users”;
- 点击“添加”按钮;
- 点击“提交”按钮;
- 单击“保存配置”按钮。
重要! 使用LDAP认证时,LDAP目录中设置的密码必须用于登录帐户。 通常这两个密码不一定有所不同。