LDAP 查询概述
如果在网络基础设施的 LDAP 目录中(例如,在 Microsoft Active Directory、SunONE Directory Server 或 OpenLDAP 目录中)存储用户信息,则可以将邮件网关配置为查询 LDAP 服务器以接受、路由和对邮件进行身份验证。可以将邮件网关配置为与一个或多个 LDAP 服务器配合使用。
以下部分概述了可以执行的 LDAP 查询的类型;LDAP 如何与邮件网关配合使用以进行身份验证、接受和路由邮件;以及如何将邮件网关配置为与 LDAP 配合使用。
相关主题
了解 LDAP 查询
如果在网络基础设施的 LDAP 目录中存储用户信息,则可以将邮件网关配置为查询 LDAP 服务器以用于实现以下目的:
- 接受查询。可以使用现有 LDAP 基础设施来定义如何处理传入邮件的收件人邮件地址(在公共侦听程序中)。有关详细信息,请参阅使用接受查询进行收件人验证。
- 路由(别名设置)。可以将邮件网关配置为根据网络中 LDAP 目录中的可用信息,将邮件路由至相应地址和/或邮件主机。有关详细信息,请参阅使用路由查询将邮件发送到多个目标地址。
- 证书身份验证。可以创建查询来检查客户端证书的有效性,以便对用户的邮件客户端与邮件网关之间的 SMTP 会话进行身份验证。有关详细信息,请参阅检查客户端证书的有效性。
- 伪装。您可以伪装信封发件人(针对传出邮件)和信头(针对传入邮件,例如,To:、Reply To:、From: 或 CC: 信头)。有关伪装的更多信息,请参阅使用伪装查询重写信封发件人。
- 组查询。可以将邮件网关配置为根据 LDAP 目录中的组对邮件执行操作。为此,可以将组查询与邮件过滤器相关联。可以对与定义的 LDAP 组匹配的邮件执行适用于邮件过滤器的任何邮件操作。有关详细信息,请参阅使用组 LDAP 查询确定收件人是否为组成员。
- 基于域的查询。可以创建基于域的查询,以便邮件网关在单个侦听程序中为不同的域执行不同的查询。当邮件网关运行基于域的查询时,它会根据域确定要使用的查询,并且会查询与该域关联的 LDAP 服务器。
- 链查询。可以创建链查询来使邮件网关按顺序执行一系列查询。在配置链查询时,邮件网关会按顺序运行每个查询,直到 LDAP 设备返回一个积极的结果。对于链接的路由查询,邮件网关会按顺序对每个重写的邮件地址重新运行已配置的相同链查询。
- 目录搜集预防。可以将邮件网关配置为使用 LDAP 目录来抵御目录搜集攻击。可以在 SMTP 会话期间或在工作队列中配置目录搜集攻击预防。如果在 LDAP 目录中找不到收件人,可以配置系统以执行延迟退回或彻底丢弃邮件。因此,垃圾邮件发送者无法区分有效和无效的邮件地址。请参阅将 LDAP 用于目录搜集攻击预防。
- SMTP 身份验证。AsyncOS 支持 SMTP 身份验证。SMTP 身份验证是用于验证连接到 SMTP 服务器的客户端的一种机制。可以使用该功能使贵组织中的用户可以使用邮件服务器发送邮件,即使他们利用远程连接(例如在家中或在旅行时)也是如此。有关详细信息,请参阅配置 AsyncOS 进行 SMTP 身份验证。
- 外部身份验证。可以将邮件网关配置为使用 LDAP 目录来对登录到邮件网关的用户进行身份验证。有关详细信息,请参阅为用户配置外部 LDAP 身份验证。
- 垃圾邮件隔离区最终用户身份验证。可以将邮件网关配置为在用户登录最终用户隔离区时对其进行验证。有关详细信息,请参阅对垃圾邮件隔离区的最终用户进行身份验证。
- 垃圾邮件隔离区别名合并。如果为垃圾邮件使用邮件通知,则此查询会合并最终用户别名,以便最终用户不会根据每个别名邮件地址都收到隔离区通知。有关详细信息,请参阅垃圾邮件隔离区别名整合查询。
了解 LDAP 如何与 AsyncOS 配合使用
使用 LDAP 目录时,可以将邮件网关与 LDAP 目录服务器配合使用,以接受收件人、路由邮件和/或伪装邮件信头。还可以将 LDAP 组查询与邮件过滤器配合使用,以创建邮件网关收到邮件时的处理规则。
下图展示邮件网关如何与 LDAP 配合使用:
- 发送 MTA 通过 SMTP 将邮件发送到公共侦听程序。
- 邮件网关设备通过系统管理 (System Administration) > LDAP 页面(或通过全局 ldapconfig 命令)查询定义的 LDAP 服务器。
- 将从 LDAP 目录接收数据,而且根据在系统管理 (System Administration) > LDAP 页面(或在 ldapconfig 命令中)定义由侦听程序使用的查询:
- 邮件将路由到新的收件人地址,或者被丢弃或退回
- 邮件将路由到新收件人的相应邮件主机
- 根据查询重写 From:、To: 和 CC: 邮件信头
- 执行 rcpt-to-group 或 mail-from-group 邮件过滤器规则(与配置的组查询配合使用)定义的进一步操作。
Note |
可以将邮件网关配置为连接到多个 LDAP 服务器。当这样做时,可以配置用于负载平衡或故障切换的 LDAP 配置文件设置。有关使用多个 LDAP 服务器的详细信息,请参阅将 AsyncOS 配置为与多个 LDAP 服务器配合使用。 |
将邮件网关配置为与 LDAP 服务器配合使用
配置邮件网关以与 LDAP 目录配合使用时,必须完成以下步骤以配置 AsyncOS 邮件网关的接受、路由、别名和伪装设置:
Procedure
Step 1 |
配置 LDAP 服务器配置文件。服务器配置文件包含用于启用 AsyncOS 以连接到 LDAP 服务器(或多个服务器)的信息,例如:
有关配置服务器配置文件的详细信息,请参阅创建 LDAP 服务器配置文件以存储有关 LDAP 服务器的信息。 配置 LDAP 服务器配置文件时,可以配置 AsyncOS 以连接到一个或多个 LDAP 服务器。 有关配置 AsyncOS 以连接到多个服务器的信息,请参阅将 AsyncOS 配置为与多个 LDAP 服务器配合使用。 |
||
Step 2 |
配置 LDAP 查询。在 LDAP 服务器配置文件中配置 LDAP 查询。配置的查询应根据特定 LDAP 实施和方案进行定制。 有关的可以创建的 LDAP 查询类型的信息,请参阅了解 LDAP 查询。 有关编写查询的信息,请参阅处理 LDAP 查询。 |
||
Step 3 |
在公共侦听程序或专用侦听程序中启用 LDAP 服务器配置文件。必须在侦听程序上启用 LDAP 服务器配置文件,以指示侦听程序在接受、路由或发送邮件时运行 LDAP 查询。 有关详细信息,请参阅启用 LDAP 查询以在特定侦听程序中运行。
|
创建 LDAP 服务器配置文件以存储有关 LDAP 服务器的信息
配置 AsyncOS 以使用 LDAP 目录时,您需要创建 LDAP 服务器配置文件来存储有关 LDAP 服务器的信息。
Procedure
Step 1 |
在系统管理 (System Administration) > LDAP 页面上,单击添加 LDAP 服务器配置文件 (Add LDAP Server Profile)。 |
||||
Step 2 |
输入服务器配置文件的名称。 |
||||
Step 3 |
输入 LDAP 服务器的主机名。 可以输入多个主机名以配置用于故障切换或负载均衡的 LDAP 服务器。使用逗号分隔多个条目。有关详细信息,请参阅将 AsyncOS 配置为与多个 LDAP 服务器配合使用。 |
||||
Step 4 |
选择身份验证方法。可以使用匿名身份验证或指定用户名和密码。 |
||||
Step 5 |
选择 LDAP 服务器类型:Active Directory、OpenLDAP 或“未知或其他 (Unknown or Other)”。 |
||||
Step 6 |
输入端口号。 对于 Active Directory 或任何未知/其他服务器类型,默认端口为 3268(不使用 SSL 时)和 3269(使用 SSL 时)。 对于 Open LDAP 服务器类型,默认端口为 389(不使用 SSL 时)和 636(使用 SSL 时)。 |
||||
Step 7 |
输入 LDAP 服务器的基础 DN(可分辨名称)。 如果通过用户名和密码进行身份验证,则用户名必须包含具有该密码的条目的完整 DN。例如,某个用户是营销团队的成员,其邮件地址为 joe@example.com。此用户的条目类似于以下条目:
|
||||
Step 8 |
选择在与 LDAP 服务器通信时是否使用 SSL。
|
||||
Step 9 |
在“高级”(Advanced) 下,输入缓存生存时间。此值表示保留缓存的时长。 |
||||
Step 10 |
输入保留缓存条目的最大数量。
|
||||
Step 11 |
输入同时连接数。
|
||||
Step 12 |
通过单击“测试服务器”(Test Server) 按钮测试服务器连接。如果您指定了多个 LDAP 服务器,则这些服务器都会进行测试。测试结果显示在“连接状态”(Connection Status) 字段中。有关详细信息,请参阅测试 LDAP 服务器。 |
||||
Step 13 |
通过标记相应复选框并填写字段来创建查询。可以选择“接受”(Accept)、“路由”(Routing)、“伪装表”(Masquerade)、“组”(Group)、“SMTP 身份验证”(SMTP Authentication)、“外部身份验证”(External Authentication)、“垃圾邮件隔离区最终用户身份验证”(Spam Quarantine End-User Authentication) 和“垃圾邮件隔离区别名合并”(Spam Quarantine Alias Consolidation)。
|
||||
Step 14 |
通过单击测试查询 (Test Query) 按钮测试查询。 输入测试参数并单击“运行测试”(Run Test)。测试结果显示在“连接状态”(Connection Status) 字段中。如果对查询定义或属性进行任何更改,请单击更新 (Update)。有关详细信息,请参阅测试 LDAP 服务器。
|
||||
Step 15 |
提交并确认更改。
|
测试 LDAP 服务器
使用“添加/编辑 LDAP 服务器配置文件”页面上的“测试服务器”按钮(或 CLI 中 ldapconfig 命令的 test 子命令)测试与 LDAP 服务器的连接。AsyncOS 随即显示一条消息,说明到服务器端口的连接是成功还是失败。如果配置了多台 LDAP 服务器,则 AsyncOS 会测试每台服务器并显示各个测试结果。
启用 LDAP 查询以在特定侦听程序中运行
要允许邮件网关在您接收或发送邮件时运行 LDAP 查询,必须在适当的侦听程序上启用 LDAP 查询。
相关主题
配置 LDAP 查询的全局设置
LDAP 全局设置定义邮件网关如何处理所有 LDAP 流量。
Procedure
Step 1 |
在系统管理 (System Administration) > LDAP 页面上,单击编辑设置 (Edit Settings)。 |
Step 2 |
选择用于 LDAP 流量的 IP 接口。默认情况下,邮件网关会自动选择接口。 |
Step 3 |
选择用于 LDAP 接口的 TLS 证书(通过网络 (Web) > 证书 (Certificates) 页面或 CLI 中的 certconfig 命令添加的 TLS 证书在列表中提供,请参阅加密与其他 MTA 的通信概述)。 |
Step 4 |
如果要验证 LDAP 服务器证书,请选择适当的选项。 |
Step 5 |
提交并确认更改。 |
创建 LDAP 服务器配置文件示例
在下面的示例中,“系统管理”(System Administration) >“LDAP”页面用于为要绑定到的邮件网关定义 LDAP 服务器,并为收件人接受、路由和伪装配置查询。
Note |
LDAP 连接具有 60 秒的连接尝试超时(包括 DNS 查找、连接本身,以及如果适用,邮件网关自身的身份验证绑定)。在第一次失败后,AsyncOS 会立即开始尝试同一服务器中的其他主机(如果以逗号分隔的列表形式指定了多个主机)。如果服务器中只有一个主机, AsyncOS 会继续尝试连接到它。 |
首先,为 myldapserver.example.com LDAP 服务器指定昵称“PublicLDAP”。连接数量设置为 10(默认值),而且多个 LDAP 服务器(主机)负载均衡选项将保留默认设置。可以通过提供一个用逗号分隔的名称列表,在此处指定多个主机。查询将定向到端口 3268(默认值)。对于此主机,未启用 SSL 作为连接协议。定义了 example.com 的基本 DN (dc=example,dc=com)。缓存存活时间设置为 900 秒,缓存条目的最大数量为 10000,而且身份验证方法设置为密码。
定义了用于收件人接受、邮件路由和伪装的查询。确保查询名称区分大小写,必须完全一致才能返回正确的结果。
在公共侦听程序上启用 LDAP 查询
在本例中,公共侦听程序“InboundMail”更新为将 LDAP 查询用于收件人接受。此外,收件人接受配置为在 SMTP 会话期间发生(有关详细信息,请参阅使用接受查询进行收件人验证)。
在专用侦听程序上启用 LDAP 查询
在本例中,专用侦听程序“OutboundMail”更新为将 LDAP 查询用于伪装。伪装的字段包括:“发件人”(From)、“收件人”(To)、“抄送”(CC) 和“回复”(Reply-To)。
对 Microsoft Exchange 5.5 的增强支持
AsyncOS 包含一个配置选项,可用于为 Microsoft Exchange 5.5 提供支持。如果使用较高版本的 Microsoft Exchange,则不需要启用此选项。在配置 LDAP 服务器时,可选择通过在 ldapconfig -> edit -> server -> compatibility
子命令(仅通过 CLI 可用)中出现提示时回答“y”来启用 Microsoft Exchange 5.5 支持。
mail3.example.com> ldapconfig
Current LDAP server configurations:
1. PublicLDAP: (ldapexample.com:389)
Choose the operation you want to perform:
- NEW - Create a new server configuration.
- EDIT - Modify a server configuration.
- DELETE - Remove a server configuration.
[]> edit
Enter the name or number of the server configuration you wish to edit.
[]> 1
Name: PublicLDAP
Hostname: ldapexample.com Port 389
Authentication Type: anonymous
Base: dc=ldapexample,dc=com
Choose the operation you want to perform:
- SERVER - Change the server for the query.
- LDAPACCEPT - Configure whether a recipient address should be accepted or
bounced/dropped.
- LDAPROUTING - Configure message routing.
- MASQUERADE - Configure domain masquerading.
- LDAPGROUP - Configure whether a sender or recipient is in a specified group.
- SMTPAUTH - Configure SMTP authentication.
[]> server
Name: PublicLDAP
Hostname: ldapexample.com Port 389
Authentication Type: anonymous
Base: dc=ldapexample,dc=com
Microsoft Exchange 5.5 Compatibility Mode: Disabled
Choose the operation you want to perform:
- NAME - Change the name of this configuration.
- HOSTNAME - Change the hostname used for this query.
- PORT - Configure the port.
- AUTHTYPE - Choose the authentication type.
- BASE - Configure the query base.
- COMPATIBILITY - Set LDAP protocol compatibility options.
[]> compatibility
Would you like to enable Microsoft Exchange 5.5 LDAP compatibility mode? (This is not
recommended for versions of Microsoft Exchange later than 5.5, or other LDAP servers.)
[N]> y
Do you want to configure advanced LDAP compatibility settings? (Typically not required)
[N]>
Name: PublicLDAP
Hostname: ldapexample.com Port 389
Authentication Type: anonymous
Base: dc=ldapexample,dc=com
Microsoft Exchange 5.5 Compatibility Mode: Enabled (attribute "objectClass")
Choose the operation you want to perform:
- NAME - Change the name of this configuration.
- HOSTNAME - Change the hostname used for this query.
- PORT - Configure the port.
- AUTHTYPE - Choose the authentication type.
- BASE - Configure the query base.
- COMPATIBILITY - Set LDAP protocol compatibility options.
[]>