Sun Java System Messaging Server 6.3 管理指南

18.3.4 PORT_ACCESS 映射表

分发程序可以基于 IP 地址和端口号选择性地接受或拒绝外来连接。分发程序启动时,将查找名为 PORT_ACCESS 的映射表。如果存在,则分发程序将按以下格式格式化连接信息:

TCP|server-address|server-port|client-address|client-port

分发程序将尝试匹配所有 PORT_ACCESS 映射条目。如果映射结果包含 $N 或 $F,将立即关闭连接。映射的任何其他结果都表示可以接受连接。$N 或 $F 可以后跟一条拒绝消息(可选)。如果存在,该消息将在关闭连接之前被发送回连接。请注意,消息被发送回连接之前,其字符串将被附加一个 CRLF 结束符。


注 –

MMP 不使用 PORT_ACCESS 映射表。如果希望拒绝来自某些 IP 地址的 SMTP 连接并且您正在使用 MMP,则必须使用 TCPAccess 选项。请参见7.5.1 用 MMP 配置邮件访问。要通过映射表来控制 SMTP 连接,请使用 INTERNAL_IP 映射表(请参见18.6.1 允许为外部站点进行 SMTP 中继)。


如果映射探测匹配,则后跟可选字符串的标志 $< 可使 Messaging Server 将字符串发送至系统日志 (UNIX) 或事件日志 (NT)。如果访问被拒绝,则后跟可选字符串的标志 $> 可使 Messaging Server 将字符串发送至系统日志 (UNIX) 或事件日志 (NT)。如果设置了 LOG_CONNECTION MTA 选项的第 1 位和 $T 标志以拒绝连接,则再指定 $T 标志会将 "T" 条目写入连接日志。如果设置了 LOG_CONNECTION MTA 选项的第 4 位,则可将站点提供的文本包含在 PORT_ACCESS 条目中,以便包含在 "C" 连接日志条目中。要指定此类文本,可以在条目的右侧添加两个垂直条字符,后跟所需的文本。表 18–3 列出了可用的标志。

在 Messaging Server 的早期版本中(6.2 或更早版本),当设置了 LOG_CONNECTION MTA 选项的第 4 位(值 16)或/和启用了 SMTP auth 时,PORT_ACCESS 映射仅通过 SMTP 服务器(而不是分发程序)进行重新计算。此外,计算仅在发出 AUTHEHLOHELO 命令时发生。现在这已发生更改,在发送标题之前,只要 SMTP 服务器线程启动,就会无条件地计算 PORT_ACCESSPORT_ACCESS 将使用 diff 进行重新计算。

表 18–3 PORT_ACCESS 映射表

标志 

说明 

$D 

导致从模板结果的强制性 SMTP auth rulset 和领域之后再读取一个参数,并添加可选的应用程序信息。此值必须是语义与 BANNER_PURGE_DELAY 值相同的整数。即,它指定清除和发送标题前的延迟时间(以百分之一秒为单位)。值为 0 将禁用延迟和清除。请注意,任何 PORT_ACCESS 映射设置都将覆盖 BANNER_PURGE_DELAY SMTP 通道选项。有关使用此反垃圾邮件功能的详细信息,请参见14.9.1 反垃圾邮件技术: 延迟发送 SMTP 标题

$Y 

允许访问。 

$U 

选择性地启用通道级别调试。 

带有变量的标志按照变量的阅读顺序排序 +

$< string 

如果探测匹配,将字符串发送到系统日志 (UNIX) 或事件日志 (NT)。 

$> string 

如果访问被拒绝,将字符串发送到系统日志 (UNIX) 或事件日志 (NT)。 

$N string 

使用可选的错误文本字符串拒绝访问 

$F string 

$N string 的同义词;即,使用可选的错误文本 string 拒绝访问 

$T text 

如果设置了LOG_CONNECTION MTA 选项的第 1 位(值 2)和 $N 标志(以便拒绝连接),则再设置 $T 标志会将 "T" 条目写入连接日志。T 日志条目将包含完整的映射结果字符串($N 及其字符串)。

+要使用多个带有变量的标志,请用垂直条字符 | 分隔变量,并按照此表中列出的顺序放置变量。 

例如,除单独要拒绝的不包含说明文本的特定主机以外,以下映射将只接受来自单一网络的 SMTP 连接(到端口 25,常规 SMTP 端口):


PORT_ACCESS

  TCP|*|25|192.123.10.70|*  $N500
  TCP|*|25|192.123.10.*|*   $Y
  TCP|*|25|*|*              $N500$ Bzzzt$ thank$ you$ for$ playing.

         

请注意,对 PORT_ACCESS 映射表做出任何更改之后,您将需要重新启动分发程序,以便分发程序能够看到这些更改。(如果您使用的是已编译的 MTA 配置,则需要先重新编译配置,以将更改并入已编译的配置中。)

PORT_ACCESS 映射表专用于执行基于 IP 的拒绝。要在电子邮件地址级别进行更加通用的控制,SEND_ACCESSMAIL_ACCESS 映射表可能更加适用。