BBS水木清华站∶精华区

发信人: forest (轻寒小楼~~心止), 信区: Unix        
标  题: Sendmail 8.9.3 中的Mail Relay规则简介 
发信站: BBS 水木清华站 (Fri Dec 10 12:19:25 1999) 
 
 
当 一 台 邮 件 服 务 器 处 理 一 封 邮 件 时, 该 邮 件 的 发 送 者 和 
接 收 者 都 不 是 本 地 用 户, 即 发 送 者 和 接 收 者 都 处 于 本 地 
 域 之 外, 该 邮 件 服 务 器 对 于 这 封 邮 件 的 传 送 完 全 属 于 不 
 相 关 的 第 三 方, 因 此Mail Relay 被Sendmail 默 认 禁 止 了。 这 样 
阻 止 了 恶 意 的 攻 击 者 利 用 您 的 服 务 器 发 
 
---- 根 据 上 面 的 介 绍, 如 果 您 的Sendmail 默 认 接 收 了 这 种Relay, 
这 就 叫 做" 第 三 方 的Mail Relay 被 允 许", 但 这 样 有 许 多 危 害, 
 应 该 立 刻 加 以 控 制。 如 果 您 的 邮 件 服 务 器 不 能 有 效 地 控 
 制 第 三 方 的Mail Relay, 您 应 该 立 刻 着 手 解 决 这 个 问 题, 
否 则 就 会 面 临 以 下 局 面: 
 
---- 1 . 大 量 的 垃 圾 邮 件 可 能 会 使 您 的 邮 件 系 统 崩 溃。 
它 们 占 用 您 的 磁 盘 空 间、CPU 资 源, 还 可 能 引 发DOS 类 型 攻 击。 
 
---- 2 . 您 的 组 织 可 能 被 列 入 黑 名 单。 由 于 大 量 垃 圾 邮 件 
从 您 的 主 机 发 出, 其 他 一 些 组 织 或 公 司 可 能 会 不 做 调 查 就 
更 改 设 置 阻 止 了 从 您 的 主 机 发 来 的 任 何 邮 件, 这 也 将 同 时 
 阻 止 从 您 的 站 点 发 给 它 们 的 所 有 正 常 的 商 业 性 邮 件, 损 失 
不 可 估 量。 
 
---- 3 . 您 有 可 能 会 遭 受 攻 击。 攻 击 者 们 每 天 正 用 一 些 自 动 
 扫 描 的 工 具 去 扫 描 网 络, 寻 找 那 些 对 他 们 打 开Relay 功 能 的 
 邮 件 主 机。 如 果 您 的 邮 件 主 机 是 易 受 攻 击 的, 那 么 扫 描 到 
您 就 是 迟 早 的 事 情。 
 
    Sendmail 8.9.3 如 何Relay 您 的 邮 件 ? 
 
  ---- 如 果 发 送 者 和 接 收 者 都 不 属 于 本 地 域,Sendmail 将 默 认 
 禁 止Mail Relay。 要 想 使 得Sendmail Relay 您 的 邮 件, 可 以 有 从 本 
地 发 送 者 到 外 部 接 收 者 或 从 外 部 发 送 者 到 本 地 接 收 者 这 
两 种 途 径, 您 必 须 确 保 发 送 者 或 者 接 收 者 其 中 至 少 有 一 个 
属 于 本 地 域。 
 
 ---- 1 . 何 为 本 地 发 送 者? 
 
  ---- 当 邮 件 服 务 器 接 收 到 一 封 从 其 他 机 器( 如Windows PC) 
发 来 的 邮 件 时, 它 首 先 检 查 连 接 进 来 的 主 机 的 域 名 和IP 
地 址, 注 意, 绝 不 是 检 查 这 封 邮 件 信 封 里 的 发 送 者 地 址 
( 要 了 解 一 封 邮 件 的 全 部 信 封 头 信 息, 
可 查 找http://www.stopspam.org/email/headers/headers.html )。 如 果 
您 是 拨 号 用 户,IP 地 址 当 然 是 您 拨 到ISP 所 得 到 的 动 态IP 地 
址, 然 后 您 的 主 机 名/ 域 名 是 由 您 的ISP 对 您 的IP 地 址 做 反 
向DNS 解 析 出 来 的 主 机 名/ 域 名。 不 过 大 多 数ISP 不 做 这 些 工 
作, 因 此Sendmail 将 仅 仅 记 录 您 连 接 进 来 的IP 地 址, 由 此 判 
断 是 否 这 个 地 址 被 允 许Relay Mail。 对Sendmail 8.9.3 来 说, 最 通 
 常 的 用 来 检 查 是 否Relay 邮 件 的 配 置 文 件 是 /etc/mail/relay-domains, 
它 能 对IP 地 址 或 域 名 进 行 判 断 是 否 允 许Relay。 如 果 这 一 步 不 
 允 许, 再 检 查/etc/mail/access( 它 能 被 通 过 加Feature(access_db) 
到.mc 文 件 再 用M4 生 成/etc/sendmail.cf 所 激 活, 本 文 讨 论 的 所 有 设 置 
都 是 基 于M4 宏 命 令 生 成 的/etc/sendmail.cf)。 
 
 ---- 2 . 何 为 本 地 接 收 者 ? 
 
  ---- 决 定 接 收 者 邮 件 地 址 是 否 为 本 地 的 不 是 一 件 轻 松 的 
 事 情, Sendmail 认 为 类w( 即 默 认 本 地 主 机 群 体) 中 的 所 有 
主 机/ 域 为 本 地 接 收 者, 也 就 是/etc/mail/sendmail.cw 文 件 或 
者/etc/sendmail.cf 中 的CW 类 定 义 后 面 列 出 的 所 有 主 机 名 或 
域 名。 为 了 激 活 对/etc/mail/sendmail.cw 的 检 查, 使 用 特 性 
Feature(use_cw_file)。 但 是 这 还 不 够, 因 为 这 个 能 被 愚 弄。 
因 此Sendmail 用 规 则 集(ruleset) 先 移 走 这 个 地 址 的 本 地 部 
 分(@local.site) 后, 如 果 仍 有 一 些 域, 则 考 虑 是 否 能 通 过 
Relay 检 查。 另 外,Sendmail 也 还 检 查/etc/mail/access 决 定 是 否 
有 项 目 匹 配 接 收 者 地 址 所 在 的 域, 根 据 相 应 标 记 确 定 是 
 否 被 允 许 接 收。 
 
 Anti-Relaying( 拒 绝 传 递) 怎 么 工 作 ? 
 
 ---- 1 . 如 果Mail From: 行 有 下 面 的 参 数,Sendmail 拒 绝Mail Relay。 
 
 (1) 发 送 者 的 域 名 不 能 被 解 析。 这 能 用 
     Feature(accept_unresolvable_domains) 禁 止。 
 
 (2) 非 全 称 的 域 名。 这 能 用Feature(accept_ unresolvable_domains) 禁 止。 
 
 (3) 与Access Map(/etc/mail/access) 中 的 一 项 匹 配。 域 名: 如 
     spammer.domain reject 
 
     ---- 全 称 邮 件 地 址: 如spammer@domain reject 
 
     ---- 邮 件 地 址 的 用 户 名 部 分: 如spammer@ reject 
 
     ---- 或 者 不 用"reject" 而 用"error code error text"。 
 
     ---- spammer.domain "501 No E-mail from this domain." 
     ---- spammer@domain "501 No E-mail from your address." 
 
     ---- spammer@ "501 Get a real address." 
 
     ---- 甚 至 用discard( 接 收 并 安 静 地 删 除 掉, 让 发 送 者 
          感 觉 像 被 接 收 了 一 样)。 
 
  2 . 检 查 接 收 者。 
 
     ---- 用Feature(blacklist_recipients) 允 许 指 定Access Map 中 不 应 
          该 接 收E-mail 的 用 户。 例 如: 
 
          ---- badlocaluser 550 Mailbox disabled for this username 
 
          ---- host.mydomain 550 That host does not accept mail 
 
          ---- user@otherhost.mydomain 550 Mailbox disabled for this recipient 
 
          ---- 这 将 禁 止 发 到 您 本 地 域 中 的 用 户 邮 件 地 址 
               badlocaluse@mydomain 和 在 主 机host.mydomain 中 的 任 何 
               用 户 和 单 个 地 址user@otherhost.mydomain。 
 
   常 见 的 两 种 检 查 规 则 如 下: 
 
         ---- 1 .check_relay 规 则( 发 送 者 检 查): 
 
         ---- 检 查 主 机 名 和IP 地 址, 无 论 什 么 时 候 当 一 台 客 户 
              通 过SMTP/ESMTP 连 到 邮 件 服 务 器 时, 该 规 则 被 调 用。 
 
         ---- 2 .check_rcpt 规 则( 接 收 者 检 查): 
 
         ---- 用 于RCPT 命 令( 用 来 禁 止 未 被 授 权 的Relay), 该 规 则 
              禁 止 了 所 有 已 知 的Relay 诡 计。 
 
         ---- 您 能 通 过#tail -f /var/log/maillog 检 查 是 否 某 个 邮 件 
              被 运 用 了 上 述 规 则。 
 
    为 什 么 会 出 现"550 Relaying Denied" ? 
 
      ---- 如 果 您 从 您 自 己 的 邮 件 服 务 器 得 到 了 一 个 错 误 
           说"550 Relaying Denied", 您 需 要 弄 清 楚 为 什 么。 也 许 
           您 认 为 这 绝 不 应 该 发 生, 但 是 您 可 能 忽 略 了 某 些 
           细 节, 看 上 去 是 应 该 被Relay, 但 实 际 上 却 没 有。 下 
           面 试 举 几 例: 
 
   ---- 1 . 正 确 的DNS 数 据 
 
   ---- QAA02454: ... we do not relay 
 
   ---- QAA02454: ruleset=check_rcpt,arg1=,relay=170-51-209.ipt.aol.com 
        [152.170.51.209], reject=550 ... we do not relay 
 
   ---- QAA02454: from=,size=0,class=0,pri=0,nrcpts=0,proto=SMTP, 
                           relay=170-51-209.ipt.aol.com [152.170.51.209] 
 
   ---- 这 里, 主 机 名 为170-51-209.ipt.aol.com 的 机 器IP 地 址 
        为152.170.51.209。 接 下 来 试 着 交 付 一 封 邮 件 给 这 台 服 务 
        器, 然 而 被 拒 绝 了, 因 为 接 收 者 不 是 本 地 接 收 者 并 且 
        发 送 者 的 机 器 170-51-209.ipt.aol.com(152.170.51.209) 也 不 是 
        本 地 发 送 者。 
 
   ---- 2 . 错 误 的DNS 数 据 
   ---- QAA02454: ... Relaying denied 
 
      QAA02454: ruleset=check_rcpt,arg1=,relay=[134.245.85.93],reject=550 ... 
                           Relaying denied 
 
    ---- QAA02454: from=,size=0,class=0,pri=0,nrcpts=0,proto=SMTP, 
                           relay=[134.245.85.93] 
 
    ---- 这 个 其 实 与 上 面 的 情 况 相 同, 对 于IP 地 址134.245.85.93 
         没 有PTR 记 录 被 找 到, 关 于 这 一 点 有 个 问 题 就 是: 万 
         一 您 的 邮 件 主 机 的Relay 功 能 仅 仅 是 基 于 主 机 名/ 域 名 
         进 行 检 查 是 否 为 本 地 发 送 者( 例 如Feature(relay_entire_domain)) 
         , 如 果 该IP 地 址 是 属 于 您 的 本 地 域 之 内, 仍 将 被 您 拒 
         绝Relay, 解 决 办 法 是 为 这 个IP 地 址 加PTR 记 录, 也 就 是 反 
         向DNS 解 析, 或 者 添 加 到/etc/hosts 文 件 中, 再 或 者 添 加 
         该IP 地 址 到Access Map 中 去(/etc/mail/access)。 
 
     ---- 3 . 不 一 致 的DNS 数 据 
 
    ---- QAA02454: ... Relaying denied 
    ---- QAA02454: ruleset=check_rcpt,arg1=,relay=some.domain [10.0.0.1] 
         (may be forged), reject=550 ... Relaying denied 
 
    ---- QAA02454: from=,size=0,class=0,pri=0,nrcpts=0,proto=SMTP, 
                           relay=some.domain [10.0.0.1] (may be forged) 
 
    ---- 其 中"(may be forged)" 是 个 很 重 要 的 部 分, 它 说 明 对 于 该 
         主 机 的DNS 数 据 是 不 一 致 的, 并 且 主 机 名 不 被 用 来 检 查 
         是 否 被 允 许Relay, 而 仅 仅 检 查IP 地 址, 因 此 这 和 第 二 种 
         情 况 相 同。                       
-- 
一些话想要对你说,始终没有说出口,那就不说也罢。 
一些信想要写给你,始终没有寄出去,那就不寄也罢。 
。。。。。。 
 
※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: argo.zsu.edu.cn] 

BBS水木清华站∶精华区