免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3692 | 回复: 10
打印 上一主题 下一主题

[Mail] 按照anthonyfeng进行邮件系统设置后,外网无法访问25端口 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-04-13 11:55 |只看该作者 |倒序浏览
小弟本来为Linux新手,得益于anthonyfeng大哥的——

《原创:在RHEL 4 上配置全功能的Postfix 服务器》一文,
http://bbs.chinaunix.net/viewthread.php?tid=672644

同时参考了Fandy的——

《RedHat Postfix + MySQL + Cyrus-sasl + Dovecot 用RPM方式实现》
http://www.gd-linux.com/bbs/show ... 269728ac&t=3413

根据文中设置,我的邮件系统目前已经基本完成了内网收发、SMTP验证、向外网发送邮件、防病毒、MailScanner 、Webmail等主要功能,实在感激anthonyfeng与Fandy两位共享如此宝贵的经验!目前还有最后一个问题实在无法解决,外网(163等邮箱)发来的邮件无法收取。

先说一下我的网络环境:

RHEL4 (邮件服务器)<---> ADSL Modem<--->花生壳动态DNS映射

1. 服务器上的防火墙已经打开25端口,内网Telnet 25、110端口都没有问题;

[root@www ~]# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
220 www.mailtest.com ESMTP "Version not Available"
quit
221 Bye
Connection closed by foreign host.

[root@www ~]# telnet localhost 110
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
+OK dovecot ready.
quit
+OK Logging out
Connection closed by foreign host.
[root@www ~]#

2. ADSL Modem上面也做好了端口映射,因为从外网连接的时候看到了TCP连接;同时从外网TELNET到110端口都是正常的;

问题在于从内网TELnet的时候通过 netstat -t可以看到进入了Established的状态;
而从外网Telnet的时候虽然建立了TCP连接,但是 netstat -t看到的一直处于 syn_recv 的状态,曾经考虑过是否MTU不匹配的原因,结果排除;于是回到Postfix验证的问题上面来。

我希望能够提供更多的日志信息,但是maillog里面没有任何的记录:反而是在messages日志里面反复有这么一句:
Apr 13 11:16:22 www postfix/smtpd[16263]: sql_select option missing
Apr 13 11:16:22 www postfix/smtpd[16263]: auxpropfunc error no mechanism available
不知道是否这个原因造成的?


然而觉得奇怪的就是如果我在内网使用公共域名(telnet www.mailtest.com 25) 的话,同样是成功的:
Apr 13 11:16:22 www postfix/smtpd[16263]: connect from unknown[220.169.4.17]
Apr 13 11:17:13 www postfix/smtpd[16263]: disconnect from unknown[220.169.4.17]

但直接通过另外一条线路拨号上网就出现无法打开25端口的

3. 花生壳动态MX解析应该也是成功的,从其他邮箱发出来的邮件显示没有马上被退回,至少过了12小时(应该是超时了);另外通过使用NSlookup命令也已经能够做出顺利的解析!

目前处于的情况就在于从外网无法Telnet到25端口上面!!应该是这个原因导致外网发来的邮件无法投递到本地邮箱上面,实在郁闷!以下是我的postfix配置,基本与上述两文的一致,烦请各位高手指点一二,不胜感激。

#=====================Base=====================#

myhostname = www.mailtest.com
mydomain = mailtest.com
myorigin = $mydomain
mydestination = $myhostname localhost localhost.$mydomain
mynetworks = 192.168.2.0/24 127.0.0.0/8
mynetworks_style = subnet
inet_interfaces = all
header_checks = regexp:/etc/postfix/header_checks

#=====================Base=====================#

#=====================Vritual Mailbox settings=========================#

virtual_mailbox_base = /www/mailbox
virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf
virtual_alias_domains =
virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf
virtual_minimum_uid = 89
virtual_uid_maps = static:89
virtual_gid_maps = static:89
virtual_transport = virtual
maildrop_destination_recipient_limit = 1
maildrop_destination_concurrency_limit = 1

#=====================Vritual Mailbox settings=========================#

#====================QUOTA========================#

message_size_limit = 14336000
virtual_mailbox_limit = 20971520
virtual_create_maildirsize = yes
virtual_mailbox_extended = yes
virtual_mailbox_limit_maps = mysql:/etc/postfix/mysql_virtual_mailbox_limit_maps.cf
virtual_mailbox_limit_override = yes
virtual_maildir_limit_message = Sorry, the user's maildir has overdrawn his diskspace quota, please try again later.
virtual_overquota_bounce = yes

#====================QUOTA========================#

#====================SASL========================#

broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_invalid_hostname,reject_non_f
qdn_hostname,reject_unknown_sender_domain,reject_non_fqdn_sender,reject_non_fqdn_recipient,reject_unknown_recip
ient_domain,reject_unauth_pipelining,reject_unauth_destination,permit
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_security_options = noanonymous
smtpd_sasl_application_name = smtpd
smtpd_banner=$myhostname ESMTP "Version not Available"

#====================SASL========================#

#====================OTHER========================#

readme_directory = no
sample_directory = /etc/postfix
sendmail_path = /usr/sbin/sendmail
html_directory = no
setgid_group = postdrop
command_directory = /usr/sbin
manpage_directory = /usr/local/man
daemon_directory = /usr/libexec/postfix
newaliases_path = /usr/bin/newaliases
mailq_path = /usr/bin/mailq
queue_directory = /var/spool/postfix
mail_owner = postfix

#====================OTHER========================#

#====================Misc========================#

alias_database = hash:/etc/aliases
debug_peer_level = 2
debugger_command =
         PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
         xxgdb $daemon_directory/$process_name $process_id & sleep 5

#====================Misc========================#

论坛徽章:
0
2 [报告]
发表于 2006-04-13 13:28 |只看该作者
在"开源邮件技术社区"回复了
http://www.toping.net/bbs

论坛徽章:
0
3 [报告]
发表于 2006-04-13 14:14 |只看该作者
谢谢您的回复!
请帮忙

smtpd.conf 的内容与原文都是一样的

[root@www sasl]# more smtpd.conf
pwcheck_method: authdaemond
log_level: 3
mech_list: plain login
authdaemond_path: /var/spool/authdaemon/socket

论坛徽章:
0
4 [报告]
发表于 2006-04-13 14:17 |只看该作者
哪里的ADSL?可能是ISP 的原因,换个端口试试吧

目前是ADSL modem 自己拔号吧,试过用redhat 来拔号没有?

论坛徽章:
0
5 [报告]
发表于 2006-04-13 14:21 |只看该作者
你好!
长沙的ADSL, 我考虑过换redhat来拨号,但由于目前我用modem来拨号,然后从外网TELNET到25端口的时候虽然是失败,但是服务器上 netstat -t 能够看到连接;就是一直没有进入 ESTABLISHED 的状态。而是停留在 syn_recv 的状态下面。

加上把防火墙关了,情况依旧;
其余110、21、等端口TELNET都是没有问题的

因此相信防火墙与端口映射的原因都忽略了;考虑是否在POSTFIX的配置上面不允许外网TELNET什么的?

多谢anthonyfeng指点!

论坛徽章:
0
6 [报告]
发表于 2006-04-13 14:24 |只看该作者
关于更换端口,其他邮件服务器(gmail等)发过来的时候,不是默认往我的服务器的25端口发送吗?
如果更换端口,是否会影响接收呢?

我在这方面实在是菜鸟!希望各位高手不吝指教,再次感谢

论坛徽章:
0
7 [报告]
发表于 2006-04-13 14:35 |只看该作者
这是另外4个配置文件,都是复制下来的,应该没有什么问题啊

[root@www postfix]# more mysql_virtual_alias_maps.cf
user = postfix
password = postfix
hosts = localhost
dbname = postfix
table = alias
select_field = goto
where_field = address


[root@www postfix]# more mysql_virtual_domains_maps.cf
user = postfix
password = postfix
hosts = localhost
dbname = postfix
table = domain
select_field = description
where_field = domain


[root@www postfix]# more mysql_virtual_mailbox_limit_maps.cf
user = postfix
password = postfix
hosts = localhost
dbname = postfix
table = mailbox
select_field = quota
where_field = username


[root@www postfix]# more mysql_virtual_mailbox_maps.cf
user = postfix
password = postfix
hosts = localhost
dbname = postfix
table = mailbox
select_field = maildir
where_field = username
[root@www postfix]#

论坛徽章:
0
8 [报告]
发表于 2006-04-13 14:45 |只看该作者
anthonyfeng 大哥救命啊!!

论坛徽章:
0
9 [报告]
发表于 2006-04-14 00:13 |只看该作者
不知这个行不行,未试过,如果还不行,就顺便学习一下iptables 吧 ^_^
http://www.seaglass.com/postfix/faq.html#chprt

How can I get Postfix to listen on a port other than 25?

Set the port in an smtpd entry in the master.cf file. You can change the existing smtpd entry or add an additional one depending on what you need.

An entry like the following causes Postfix to listen on port 10025:

10025      inet  n     -     n     -     -     smtpd

论坛徽章:
0
10 [报告]
发表于 2006-04-14 20:42 |只看该作者
晕!真的是iptable的事情,改成10025以后顺利访问到了!!!!
谢谢!anthonyfeng !

但是现在信还是没有能收到………………他们应该是发到我的25端口吧…………这个怎么解决呢?
能请大哥再指点一下吗?谢谢了!不是我懒,实在是不熟悉这方面的配置。

无论如何,真的要感谢你的帮助!!终于向前迈出了一步!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP