免费注册 查看新帖 |

Chinaunix

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

[Mail] 强制本地用户给本地用户发信时使用smtp认证问题[问题已解决] [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-06-05 13:52 |只看该作者 |倒序浏览
原标题:用自己的MTA给本地账号发信的smtp认证问题[问题描述已修改]

解决方法请看第4页>;>;

感谢:思一克、paulwang、rhinofly、dennis2、xiaohua、tonygong、hzqbbc 等的不吝指导!你们的耐心回贴解决了我很多问题,也教会了我很多¥#%%!!

原问题:

看了很多这里的smtp认证问题,但是还是有些疑惑,请大家指教.

这里我的域名 ==>; mydomain.com
我的用户名 ==>; jackieyuan

我在以下的设置环境下,通过我的MTA(qmail 1.03 patched) 向其他 MTA 转信的过程中 (例如发信到 @hotmail.com ) 都可以顺利通过 SMTP  Authentication 后转发。 即
Outlook 的 jackieyuan@mydomain.com 账户 --->; smtp.mydomain.com  (要smtp 认证) --->; user@hotmail.com 或者 jackieyuan@mydomain.com


但是对于通过自己的MTA自己给自己本地用户发送的邮件, MTA就不要求你进行smtp认证了
Outlook 的 jackieyuan@mydomain.com 账户 --->; smtp.mydomain.com  (不要smtp 认证) --->; jackieyuan@mydomain.com
当然此时对其他MTA 的发送(比如user@hotmail.com) 是失败的。

请问如何设置:

1. 如何在用自己的MTA向本地用户发送邮件的时候,也要求smtp认证? 或者说为什么在使用新浪自己的MTA的时候(是指smtp 服务器 smtp.sina.com.cn)向新浪的其他用户发信时,没有在“我的服务器需要验证”处打勾时,服务器拒绝传送。[已修改此问题描述]
2.[为了使问题单一化,删除此问题]如何设置mail server的正确DNS和MX记录使得类似于sina.com的服务器可以顺利通过我的 DNS auth.


谢谢!

我已经测试
1.        如果保持 rcpthosts清空,任何非dalouis.com的邮件服务器不能向dalouis.com发送邮件.

2.        如果删除 rcpthosts , /var/log/qmail/smtpd/current 就会不停报错.
  1. tail -f current
  2. @4000000040c13fe5037bb74c No /var/qmail/control/rcpthosts!
  3. @4000000040c13fe5037d0354 Refusing to start SMTP listener because it'll create an open relay
  4. @4000000040c13fe604dfcb8c No /var/qmail/control/rcpthosts!
  5. @4000000040c13fe604e12b1c Refusing to start SMTP listener because it'll create an open relay
  6. @4000000040c13fe706a36104 No /var/qmail/control/rcpthosts!
  7. @4000000040c13fe706a49984 Refusing to start SMTP listener because it'll create an open relay
复制代码

我主机的一个email address:     jackieyuan@mydomain.com
我的另外一个非主机的 email address:  user@hotmail.com


安装环境.
RH9.0+ qmail + vpopmail + qmail-smtpd-auth-0.4.3 + qmailscaner + Spamassassin + clamav-0.70


客户端
Outlook Express
账号里面 username:jackieyuan
我的服务器需要认证 已打勾


/etc/tcp.smtp 文件:
# Qmail-Scanner at all for mail from 127.0.0.1
127.:allow,RELAYCLIENT="",RBLSMTPD="",QMAILQUEUE="/var/qmail/bin/qmail-queue"
# Use Qmail-Scanner with SpamAssassin on any mail from the rest of the world
:allow,QMAILQUEUE="/var/qmail/bin/qmail-scanner-queue.pl"


rcpthosts 文件
mydomain.com


qmail-smtpd 的run 文件:
#!/bin/sh
export PATH QMAILQUEUE TH=$PATH:/usr/local/bin:/var/qmail/bin
QMAILQUEUE="/var/qmail/bin/qmail-scanner-queue.pl"
export PATH QMAILQUEUE


QMAILDUID=`id -u qmaild`
NOFILESGID=`id -g qmaild`
MAXSMTPD=`cat /var/qmail/control/concurrencyincoming`
LOCAL=`head -1 /var/qmail/control/me`

if [ -z "$QMAILDUID" -o -z "$NOFILESGID" -o -z "$MAXSMTPD" -o -z "$LOCAL" ]; then
    echo QMAILDUID, NOFILESGID, MAXSMTPD, or LOCAL is unset in
    echo /var/qmail/supervise/qmail-smtpd/run
    exit 1
fi

if [ ! -f /var/qmail/control/rcpthosts ]; then
    echo "No /var/qmail/control/rcpthosts!"
    echo "Refusing to start SMTP listener because it'll create an open relay"
    exit 1
fi

#####  add the rblsmtpd by using the BLS:  sbl-xbl.spamhaus.org ### use uid and gid of vpopmail
exec /usr/local/bin/softlimit -m 20000000 \
/usr/local/bin/tcpserver -H -v -R -l "$LOCAL" -x /etc/tcp.smtp.cdb -c "$MAXSMTPD" \
-u 89 -g 89 0 smtp /usr/local/bin/rblsmtpd \
-r sbl.spamhaus.org /var/qmail/bin/qmail-smtpd \
/home/vpopmail/bin/vchkpw  /bin/true 2>;&1

论坛徽章:
0
2 [报告]
发表于 2004-06-05 15:42 |只看该作者

强制本地用户给本地用户发信时使用smtp认证问题[问题已解决]

如果实现了你下面的要求,那你的邮件SERVER不就作废了吗?

"如何通过我的account 对本地域名 mydomain.com 用户发送也需要 smtp认证"

论坛徽章:
0
3 [报告]
发表于 2004-06-05 15:48 |只看该作者

强制本地用户给本地用户发信时使用smtp认证问题[问题已解决]

原帖由 "思一克" 发表:
如果实现了你下面的要求,那你的邮件SERVER不就作废了吗?

"如何通过我的account 对本地域名 mydomain.com 用户发送也需要 smtp认证"


不是很清楚您的意思~~ 能不能再详细一点~~
我的意思是说 从 myuser1@mydomain.com 向 myuser2@mydomain.com 本地发送的时候也需要认证~~ thankx

论坛徽章:
0
4 [报告]
发表于 2004-06-05 15:52 |只看该作者

强制本地用户给本地用户发信时使用smtp认证问题[问题已解决]

给本地用户发信应该永远不需要验证.
否则其他SERVER如何能给你的用户发信? 他们可没有帐号密码.

论坛徽章:
0
5 [报告]
发表于 2004-06-05 15:59 |只看该作者

强制本地用户给本地用户发信时使用smtp认证问题[问题已解决]

原帖由 "思一克" 发表:
给本地用户发信应该永远不需要验证.
否则其他SERVER如何能给你的用户发信? 他们可没有帐号密码.


其他的用户用他们自己的账号呀~~   That's different.

Outlook 的 others@otherdomain.com 账户  ---->; otherdomain 的主机 --->; 我的主机的 --->; jackieyuan@mydomain.com

论坛徽章:
0
6 [报告]
发表于 2004-06-05 17:23 |只看该作者

强制本地用户给本地用户发信时使用smtp认证问题[问题已解决]

着是mail server 的设计原则, 设想, 如果到本地域的邮件还需要认证, 那外面的邮件服务器怎么联系你的服务器呢, 他们不知道任何一个帐户和密码啊。

你需要注意的是你的服务器有没有open-relay, 即外面是否能利用你的邮件服务器发信给别的域, 即不是你的本地用户

论坛徽章:
0
7 [报告]
发表于 2004-06-05 17:37 |只看该作者

强制本地用户给本地用户发信时使用smtp认证问题[问题已解决]

其他SERVER上的用户在你的SERVER中有帐号????

"
其他的用户用他们自己的账号呀~~  That's different

论坛徽章:
0
8 [报告]
发表于 2004-06-05 23:07 |只看该作者

强制本地用户给本地用户发信时使用smtp认证问题[问题已解决]

原帖由 "paulwang" 发表:
着是mail server 的设计原则, 设想, 如果到本地域的邮件还需要认证, 那外面的邮件服务器怎么联系你的服务器呢, 他们不知道任何一个帐户和密码啊。

你需要注意的是你的服务器有没有open-relay, 即外面是否能..........


恩。。。。。是的~~  我已经关闭了 open-relay.

使用 http://www.abuse.net/relay.html  测试的结果

Mail relay testing
Connecting to mail.mydomain.com for anonymous test ...
<<< 220 mydomain.com ESMTP
>;>;>; HELO www.abuse.net
<<< 250 mydomain.com
Relay test 1
>;>;>; RSET
<<< 250 flushed
>;>;>; MAIL FROM:<spamtest@abuse.net>;
<<< 250 ok
>;>;>; RCPT TO:<securitytest@abuse.net>;
<<< 553 sorry, that domain isn't in my list of allowed rcpthosts (#5.7.1)
Relay test 2
>;>;>; RSET
<<< 250 flushed
>;>;>; MAIL FROM:<spamtest>;
<<< 250 ok
>;>;>; RCPT TO:<securitytest@abuse.net>;
<<< 553 sorry, that domain isn't in my list of allowed rcpthosts (#5.7.1)
Relay test 3
>;>;>; RSET
<<< 250 flushed
>;>;>; MAIL FROM:<>;
<<< 250 ok
>;>;>; RCPT TO:<securitytest@abuse.net>;
<<< 553 sorry, that domain isn't in my list of allowed rcpthosts (#5.7.1)
Relay test 4
>;>;>; RSET
<<< 250 flushed
>;>;>; MAIL FROM:<spamtest@mydomain.com>;
<<< 250 ok
>;>;>; RCPT TO:<securitytest@abuse.net>;
<<< 553 sorry, that domain isn't in my list of allowed rcpthosts (#5.7.1)
Relay test 5
>;>;>; RSET
<<< 250 flushed
>;>;>; MAIL FROM:<spamtest@[61.15.21.78]>;
<<< 250 ok
>;>;>; RCPT TO:<securitytest@abuse.net>;
<<< 553 sorry, that domain isn't in my list of allowed rcpthosts (#5.7.1)
Relay test 6
>;>;>; RSET
<<< 250 flushed
>;>;>; MAIL FROM:<spamtest@mydomain.com>;
<<< 250 ok
>;>;>; RCPT TO:<securitytest%abuse.net@mydomain.com>;
<<< 250 ok

Relay test result
Hmmn, at first glance, host appeared to accept a message for relay.

THIS MAY OR MAY NOT MEAN THAT IT'S AN OPEN RELAY.
Some systems appear to accept relay mail, but then reject messages internally rather than delivering them, but you cannot tell at this point whether the message will be relayed or not.
You cannot tell if it is really an open relay without sending a test message; this anonymous user test DID NOT send a test message.


从上面的结果看来,也证明了主机已经关闭了open-relay,但是它以spamtest@mydomain.com的名义向securitytest%abuse.net@mydomain.com 发送的邮件却成功了。 这就是我所要想关闭的功能。 (注意:我猜想这个时候它的smtp服务器是写我的 mail.mydomain.com )
如果他用他自己的smtp服务器,比如 mail.abuse.net,应该可以发送成功的吧(这就是思一克讲的情况……),现在关键前提是如果使用我的smtp服务器。所以他的结论也是host appeared to accept a message for relay.

[修改]
关于以上问题我已经知道答案,请看
The MAPS relay test is wrong
http://homepages.tesco.net/~J.deBoynePollard/FGA/maps-relay-test-is-wrong.html

你也可以测试你的服务器是否 relay 在 Open Relay Test上
http://members.iinet.net.au/~remmie/relay/

论坛徽章:
0
9 [报告]
发表于 2004-06-05 23:19 |只看该作者

强制本地用户给本地用户发信时使用smtp认证问题[问题已解决]

原帖由 "思一克" 发表:
其他SERVER上的用户在你的SERVER中有帐号????

"
其他的用户用他们自己的账号呀~~  That's different


不是不是~~ 其他SERVER上的用户当然是没有我SERVER的mail账号的。
打个比方,我是 sina.com.cn 好了~~ 假设你没有 @sina.com的邮件账号。而如果你在你的outlook express里面 设置你的发件 SMTP服务器为 smtp.sina.com.cn ,当你向 hotmail.com的某个账号发送的时候,你会被sina.com拒绝,因为你没有用户认证,换句话说你没有sina.com的账号。
但是如果 你向一个 @sina.com 发送邮件,你却成功了,系统没有向你要求认证,这算是一种漏洞吗?[经修改]
这就是我现在主机上的问题。 任何人都可以用 我的主机的smtp服务器,向我的主机里面的账号发送邮件而不要任何认证。~~~

论坛徽章:
0
10 [报告]
发表于 2004-06-06 09:47 |只看该作者

强制本地用户给本地用户发信时使用smtp认证问题[问题已解决]

但是如果 你向一个 @sina.com 发送邮件,你却成功了,系统没有向你要求认证。
这就是我现在主机上的问题。 任何人都可以用 我的主机的smtp服务器,向我的主机里面的账号发送邮件而不要任何认证。


不是早就跟你说了吗,你家的信箱没缝, 邮递员怎么把信放进来?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP