科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网安全频道防火墙后的身份验证

防火墙后的身份验证

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

由于Cisco 的Mail Guard不支持ESMTP,导致由此引出防火墙后身份验证的种种问题。 以下将精彩呈现。

作者:余燕芳 来源:网管员世界   2008年9月26日

关键字: 身份验证 Web安全 邮件安全

  • 评论
  • 分享微博
  • 分享邮件

  为防止垃圾邮件制造者利用邮件服务器进行垃圾邮件的转发,目前的邮件服务器都启用了邮件用户发邮件时的身份验证功能,即发件用户必须在邮件客户端的“服务器要求身份验证”处输入发件人用户名和密码,以便发件时邮件服务器对发件人进行身份验证。

  某公司的邮件服务器在Cisco的PIX 520防火墙后面,用的是私有IP(假设为192.168.0.1),通过在防火墙上做NAT映射到公网,在公网用的是公网IP(假设为202.96.56.68),在内网收发邮件都正常,但是在公网不能发信,报错如下:

  SMTP, 服务器响应: '553 You are not authorized to send mail as <mail from:xmgl@aaa.com.cn>, authentication is required', 端口: 25, 安全(SSL): 否, 服务器错误: 553, 错误号: 0x800CCC78

  为什么内网能发而公网不行呢?从报错信息可以看出是邮件服务器认为发件人的邮件未通过身份验证。我们知道通常邮件服务器在发邮件时用的是SMTP协议。SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它由一组用于从源地址到目的地址传送邮件的规则组成,由它来控制信件的中转方式。SMTP协议属于TCP/IP协议族,它帮助每台计算机在发送或中转信件时找到下一个目的地。通过在邮件客户端SMTP协议所指定的服务器,我们就可以把E-mail寄到收信人的服务器上了。

  为了更有效地抑制垃圾邮件的泛滥,许多E-Mail服务商和ISP升级了他们的SMTP系统,即使用ESMTP的方式来做E-mail发送服务。ESMTP,英文全称是“Extended SMTP”,顾名思义,就是对标准SMTP协议进行的扩展。而“发件验证”功能就是承载于ESMTP上的。

  出问题的公司的邮件发送系统同样也采用了ESMTP,ESMTP和SMTP一样都使用25端口。为了进一步验证故障原因,我们分别从内网和防火墙外面的公网telnet邮件服务器的25端口信息如下:

  在内网telnet的结果

  telnet 192.168.0.1 25

  220 aaa.com.cn ESMTP Postfix

  在防火墙外面telnet的结果

  telnet 202.96.56.68 25

  220 ***************

  除了*****就什么都没有显示

  从结果可以看出在公网发信用户的身份认证信息不能穿透防火墙。于是我们检查防火墙上的关于邮件系统的配置信息,信息如下:

  fixup protocol smtp 25

  conduit permit tcp host 202.96.56.68 eq pop3 any

  conduit permit tcp host 202.96.56.68 eq smtp any

  上述信息的第一句话是防火墙的缺省设置,意思是指定SMTP协议端口为25,后两句话的意思分别指定收邮件(POP3)和发邮件(SMTP)的公网地址。由于发件验证功能是通过ESMTP来实现的,因此我们分析会不会是应该关闭SMTP协议而启用ESMTP协议,于是我们敲入配置命令:

  no fixup protocol smtp 25 (关闭SMTP协议)

  fixup protocol esmtp 25 (启用ESMTP协议)

  结果防火墙提示bad protocol esmtp,Cisco的PIX 520防火墙竟然不认识ESMTP协议!

  于是我们打开“Cisco PIX Firewall Command Reference”中关于“fixup protocol smtp 25”的命令解释,里面有这样一段解释:“fixup protocol smtp”命令启用了一个叫“Mail Guard”的东西,把除常用命令外的一些扩展命令全部给替换成500 command unrecognized(未识别的命令),当然身份验证命令也被替换成了“未识别的命令”。

  根据这段解释,我们决定在防火墙上禁用SMTP协议,并在发件服务器公网地址上直接使用端口25,配置如下:

  no fixup protocol smtp 25 (禁用SMTP)

  conduit permit tcp host 202.96.56.68 eq pop3 any

  conduit permit tcp host 202.96.56.68 eq 25 any ( 直接使用25端口)

  再从试着从公网上发信,身份验证通过,发信成功!

  从上述的问题分析中来看,其实故障的原因很简单,就是Cisco 的Mail Guard并不支持ESMTP,目前我们已知Cisco的515E、520、525型防火墙都有这样的问题。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章