ExtMail服务器社区's Archiver

zhqfdn 发表于 2006-9-24 15:48

Postfix SMTP身份验证完整方案解析(解决 本地域->To->本地域的邮件伪造)

实现的功能:
------------------------------------------------------------------------------------------------
来源                          目的                   条件
------------------------------------------------------------------------------------------------
From: 本地域             To: 任何地址      必须认证且验证用户和From:必须一致
From: 任何非本地地址     To: 本地地址      无需认证
From: 任何非本地         To: 任何地址      拒绝
------------------------------------------------------------------------------------------------
打开 main.cf[b] (注意加粗部分的参数设置)[/b]
------------------------------------------------------------------------------------------------
###################BASE##################
myhostname=_HOSTNAME_
mydomain = _DOMAIN_
mydestination = $myhostname
local_recipient_maps =
command_directory = /usr/local/sbin
#local_transport = virtual
smtpd_banner = _DOMAIN_ ESMTP Mail System
message_size_limit = 14680064
#mailbox_size_limit = 512000000
#################MySQL################
virtual_alias_maps =mysql:/usr/local/etc/postfix/mysql_virtual_alias_maps.cf
virtual_gid_maps = static:125
virtual_uid_maps = static:125
#virtual_minimum_uid = 125
virtual_mailbox_base = /home/data/domains
virtual_mailbox_domains = mysql:/usr/local/etc/postfix/mysql_virtual_domains_maps.cf
virtual_mailbox_maps = mysql:/usr/local/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_transport = virtual

################Quota################
virtual_create_maildirsize = yes
virtual_mailbox_extended = yes
virtual_mailbox_limit_maps = mysql:/usr/local/etc/postfix/mysql_virtual_limit_maps.cf
virtual_mailbox_limit_override = yes
virtual_maildir_limit_message = Sorry,the user's Maildir has overdrawn his diskspace quota ,please tray again later.
virtual_overquota_bounce = yes

##############SASL####################
smtpd_sasl_auth_enable = yes
smtpd_sasl2_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes

[b]smtpd_recipient_restrictions =
    permit_mynetworks,
    permit_sasl_authenticated,
    reject_unknown_sender_domain,
    reject_non_fqdn_sender,
    reject_non_fqdn_recipient,
    reject_unknown_recipient_domain,
    reject_unauth_pipelining,
    reject_unauth_destination,
    permit

#列出本地用户的列表,以便验证 From: 本地域 To: 本地域
smtpd_sender_login_maps =
    mysql:/usr/local/etc/postfix/mysql_virtual_sender_maps.cf,
    mysql:/usr/local/etc/postfix/mysql_virtual_alias_maps.cf


smtpd_reject_unlisted_sender = yes

#本地域向本地域发信也需要SMTP身份验证
smtpd_sender_restrictions =
    reject_sender_login_mismatch,
    reject_authenticated_sender_login_mismatch,
    reject_unauthenticated_sender_login_mismatch[/b]

content_filter = smtp-amavis:[127.0.0.1]:10024

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

------------------------------------------------------------------------------------------------
通过MYSQL查询获得本地接收的邮件地址列表。
mysql:/etc/postfix/mysql_virtual_alias_user_maps.cf
mysql:/etc/postfix/mysql_virtual_user_maps.cf
------------------------------------------------------------------------------------------------

mysql_virtual_alias_maps.cf
------------------------------------------------------------------------------------------------
user = extmail
password = _PASSWD_
hosts = localhost
dbname = extmail
table = alias
select_field = goto
where_field = address
additional_conditions = AND active = '1'

------------------------------------------------------------------------------------------------


mysql_virtual_sender_maps.cf
------------------------------------------------------------------------------------------------
user = extmail
password = _PASSWD_
hosts = localhost
dbname = extmail
table = mailbox
select_field = username
where_field = username
additional_conditions = AND active = '1'




以上文章也是参考了网上的一些文章后完成的一些设置,希望对你有点帮助!
:D

hzqbbc 发表于 2006-9-24 17:59

[quote][b]下面是引用zhqfdn于2006-09-24 15:48发表的Postfix SMTP身份验证完整方案解析!:[/b]
实现的功能:
------------------------------------------------------------------------------------------------
来源                          目的                   条件
------------------------------------------------------------------------------------------------
From: 本地域             To: 任何地址      必须认证且验证用户和From:必须一致
.......[/quote]

楼主这个帖子很不错,将动态(mysql)的方法都加进来,大家不妨一试!

zhqfdn 发表于 2006-9-24 19:47

如果对SMTP,POP3,WEBMAIL 的权限限制,也可以采用这种方法

详见该贴
[url]http://www.extmail.org/forum/viewthread.php?tid=2696[/url]

chifeng 发表于 2006-9-24 20:32

能否做出对发信的大小针对不同的人,进行不同的控制。

比如:用户a可以发送10MB大小的邮件,而用户b只能发送不超过2MB的邮件。

zhqfdn 发表于 2006-9-24 20:54

这个应该可以的,目前默认的是取main.cf里的值
如果我们把这个值在每个用户的目录里都有一个设置值

main.cf 里的这个值动态的去取每个用户的设定应该是可行的,不过具体的没有实践过
不能确定!

chifeng 发表于 2006-9-24 22:22

通过main.cf可能做不到吧。

或者进信通过maildrop来做。

smtp发信通过check_policy来做,但是需要开发。:(

elm 发表于 2006-12-18 14:00

呵呵,没有想到在这个帖子上看到我的Blog的一个影子

楼主把我没有贴出来的两个CF文件给弄出来了,值得赞扬

由于我使用的是商业的一个邮件系统,数据结构和大家的不一样,所以在blog上没有贴这两个Mysql文件的配置,呵呵

fengyong 发表于 2006-12-18 16:19

我看这个文件,好像有我改过的手脚在里面.

hzqbbc 发表于 2006-12-19 16:41

[quote][b]下面是引用fengyong于2006-12-18 16:19发表的:[/b]
我看这个文件,好像有我改过的手脚在里面.[/quote]

哈哈,看样子搂主是集百家之长啊~

fandy 发表于 2006-12-19 17:01

高手学习中,我支持你!

vincentzpf 发表于 2007-8-12 15:27

谢谢!这可帮了大忙了!

ktdudu 发表于 2008-2-15 16:35

我用了

怎么不行呀

cnzg_y 发表于 2008-12-30 18:09

:victory: :victory: 用了,效果不错

聪明笨小孩 发表于 2009-2-18 10:06

哥们照你上面的配置,foxmail 可以接收发送, IE  extmail发送不了的!

提示;
SMTP rcpt error: 5.7.1 : Sender address rejected: not logged in

云中帆 发表于 2009-2-19 10:32

[quote]原帖由 [i]聪明笨小孩[/i] 于 2009-2-18 10:06 发表 [url=http://www.extmail.org/forum/redirect.php?goto=findpost&pid=55030&ptid=2689][img]http://www.extmail.org/forum/images/common/back.gif[/img][/url]
哥们照你上面的配置,foxmail 可以接收发送, IE  extmail发送不了的!

提示;
SMTP rcpt error: 5.7.1 : Sender address rejected: not logged in [/quote]


看看你的extmail 配置文件是否配置正确.

hxj277 发表于 2009-7-16 14:27

我也遇到这个问题,加发送身份验证后OE可以发送,web的反而发送不了,提示 SMTP rcpt error: 5.7.1 : Sender address rejected: not logged in 。如果要检查extmail 配置文件的话,需要修改什么地方呢??请赐教~~~

云中帆 发表于 2009-7-21 13:25

出现这个原因是因为SMTP没有验证通过,或者你没有向外发送邮件的权限;
因为我自己使用的邮件系统做了很多修改,过一段时间我会发出来一个整合的安装包出来;

[[i] 本帖最后由 云中帆 于 2009-7-21 13:30 编辑 [/i]]

mos 发表于 2011-12-20 17:06

openldap如何检测动态的本地地址????

页: [1]

Powered by Discuz! Archiver 7.0.0  © 2001-2009 Comsenz Inc.