Problem about DNS/SENDMAIL/FIREWALL -- re-post

Problem about DNS/SENDMAIL/FIREWALL -- re-post

我最近配置了一个FIREWALL/VPN网络,
防火墙后面有很多WORKSTATION以及DNS,EMAIL,WEB SERVER 和一台NT SERVER。
我用了几个PUBLIC IP ADDRESS 在FIREWALL的EXTERNAL 口上,里面用的就是PRIVATE 地址了。
192.168.0.0/24
从公用网到专用网的转换我用的是PORT FORWARDING,
现在开了 80,110 TCP/UDP,25 TCP,53 TCP/UDP,23,21
WEB SERVER 已经没有问题,但我最关心的EMAIL SERVER(或者是DNS SERVER)有问题:
我从另外一台机器上用 OUTLOOK EXPRESS 和 EUDORA 发给 外面的信全部被退回,
以下是错误信息:
The original message was received at Sat, 13 Oct 2001 21:12:41 -0700
from [192.168.0.151]
   ----- The following addresses had permanent fatal errors -----
<info@mjm.com.sg>
   ----- Transcript of session follows -----
550 5.1.2 <info@mjm.com.sg>... Host unknown (Name server: mail.mjm.com.sg.: host not found)
我做过如下的测试都没有发现问题:
1、在LOCAL范围用另外的机器的OUTLOOK自己收发自己的信件。
OUTLOOK 的配置为 POP3/SMTP指向EMAIL SERVER的PRIVATE IP 地址
结果说明:SMTP/POP3 工作正常
2、条件同上,接收来自外面的EMAIL
防火墙通过邮件没有问题
3、在EMAIL SERVER上面,用sendmail , elm 收发给自己和外面
不需要配置POP3和SMTP
EMAIL SERVER 的 POP3/SMTP 本身也工作正常
4、从INTERNET上面(即防火墙外面,不是在LOCAL),用OUTLOOK收发到任何地方
当然用的是EMAIL服务器的公用IP地址

我用VPN连接到LOCAL LAN做以上同样测试,结果相同。

因为在服务器搬到防火墙之前一起工作正常。所以我想可能是防火墙的问题。但是问题在哪里呢?

      
这种问题经常会发生,原因是你在防火墙上做了NAT或者Port Forwarding后,私有网络中的计算机不能访问转变后的公网IP地址,比如你的MAIL SERVER的公网IP是166.111.1.1,转成私有网络IP为192.168.0.1,内部计算机的IP是192.168.0.x,这时你用内部计算机来Ping 166.111.1.1是不通的,你能Ping 通的只有防火墙上外网的网卡IP。所以,你在内网的计算机收发Emai的时候,就把Pop3和SMTP服务器指向Mail Server的私有IP地址,这样收发邮件就没有问题了。至于Mail Server与外界Mail server的通信你可以完全不用管,没有问题的。我现在就是这么干的,用了快一年了,很好用。完整的解决方案是把你的服务器们放到DMZ区中,然后做映射,类似与专业防火墙,Linux完全胜任。
Good Luck!!!      
有详细配置吗?      
INTERNET.INTERNET
    |
    |
  DSL MODEM IP:64.169.189.113
    |
  FIREWALL IP:64.169.189.118(aliases: ~117,~116,~115,~114)
    |
-------------------- IP:192.168.0.0/24
DNS,EMAIL,WEB,SECONDARY DNS/EMAIL, WKSTs
    |
  PROXY for Web Browsing IP:209.233.26.202
    |
  DSL MODEM IP:209.233.26.254
    |
    |
INTERNET.INTERNET

Private IP for SRVs:
WEB/DNS: 192.168.0.3, 64.169.189.115
EMAIL:   192.168.0.4, 64.169.189.114
PROXY    192.168.0.1
PROXY SEVER 的主要作用是作LOAD SHARING,平时分担WEB SURFING, 同时它又是SECONDARY DNS 和 SECONDARY EMAIL, 它会在第一条DSL 线路断了时候把EMAIL转送到PRIMARY SERVER.

具体的配置文件在,包括sendmail.cf 文件
http://briefcase.yahoo.com/gorge_p
下的DNS目录下
或者点按一下连接
http://briefcase.yahoo.com/bc/go ... 26.src=bc%26.view=l      
你用的是什么类型的防火墙?      
有可能, 我今天去试了一下,
把FIREWALL搬到了FIREWALL 外面,
依然不行,唯一的问题还是:在CLIENT 端用SOFTWARE 发信到FIREWALL 的外面有问题.
我用www.checkdns.net 查不出什么大毛病.
我的DNS, EMAIL 服务器是LIUNX 7.1, WEB 是用的APACHE.
FIREWALL 用的是硬件的, Snapgear Pro
http://www.snapgear.com

真有可能是防火墙的问题, 我没有把EMAIL SERVER 也搬出去,
因为我没有改动什么东西, 而且原来跑得很好.
      
我还用了forwarder 选项, (one by one)
forwarder only;
fowarders {209.233.26.202;};
SECONDARY DNS 的 IP

forwarder only;
fowarders {206.13.28.12;};
ISP 的IP
我还试过别的DNS SERVER 也没有感觉到什么变化. 结果是相同.

没有,我也不知道怎么跟踪 -- 加这个选项与否后的区别.

[已被 VERITAS 编辑过, 在 2001-10-15  11:27]      
我在家里用VPN连接到公司网,昨天是不行。今天可以了。
我做了以下两样事情:
1、把DNS 服务器搬到FIREWALL的外面
2、修改了一处反向RESOLVE文件中的错误,同时把系列号给改了。添加最近修改的机器名和IP。
现在OK了!
我要把DNS服务器搬进去再试试,到底上面哪一个起了作用。
我已经把UPDATED的DNS配置文件更新到网上了。有兴趣者可以帮我看看。
到底什么毛病。
*** ***
昨天早上,我突然接到客户的电话说又有毛病了。同样的毛病。
结果我又白忙了一天。冒名奇妙又好了,可是过了几个小时又坏了。
所以我又查了很多资料,发现我对DNS的了解并不是真的很透彻。
我原来以为DNS里面的MX记录是对收发EMAIL都起作用的,所以我就一直在想如何CONFIG DNS。我试过了一些选项,例如
forwarders, allow-transfer 但都没有用处。
后来我查资料说,MX只对收EMAIL管用,而发EMAIL是和resolve.conf有联系。而且不同的地方发EMAIL时候,sendmail 调用的MAILER 也不一样。 所以我就准备集中全力攻发邮件的部分: 第一查resolve.conf 配置,如果解决不了问题就准备动“硬骨头“, sendmail 了。
可是第二天早上我去换了个 DNS server 后,竟然立刻见效。 好了,当然我把sendmail 也重新启动了。因为我有几次发觉改了resolve.conf 之后不重新启动sendmail , SMTP 就有点异常。启动sendmail之后就好了。 我试用了几个DNS SERVER,外面的,内部的PRIMARY DNS SERVER和内部的SECONDARY DNS SERVER 的两个LAN PORT -- 公用的和私用的。最后发觉我把DNS 服务器指向 SECONDARY DNS SERVER 的 PRIVATE LAN PORT 上时候,就可能会出现问题。而用它的PUBLIC 口以及其它的外面的DNS SERVER 都可能没有问题。
我说可能是因为还要观察。
运转了一天,没有问题。看样子是WORK的。
为什么在MAIL SERVER 本机上又可以用elm发邮件呢?根据资料,它和remote client 用的SMTP调用的是不同的MAILER。
谢谢大家的支持和帮助。


[已被 VERITAS 编辑过, 在 2001-10-18  01:32]

[已被 VERITAS 编辑过, 在 2001-10-18  13:21]