qsed-abuse01@hzqbbc.com
 19 12
发新话题
打印

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

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

实现的功能:
------------------------------------------------------------------------------------------------
来源                          目的                   条件
------------------------------------------------------------------------------------------------
From: 本地域             To: 任何地址      必须认证且验证用户和From:必须一致
From: 任何非本地地址     To: 本地地址      无需认证
From: 任何非本地         To: 任何地址      拒绝
------------------------------------------------------------------------------------------------
打开 main.cf (注意加粗部分的参数设置)
------------------------------------------------------------------------------------------------
###################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

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


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'




以上文章也是参考了网上的一些文章后完成的一些设置,希望对你有点帮助!
免费提供动态IP/固定IP的域名解析 http://www.21sun.net/dns/

TOP

引用:
下面是引用zhqfdn于2006-09-24 15:48发表的Postfix SMTP身份验证完整方案解析!:
实现的功能:
------------------------------------------------------------------------------------------------
来源                          目的                   条件
------------------------------------------------------------------------------------------------
From: 本地域             To: 任何地址      必须认证且验证用户和From:必须一致
.......
楼主这个帖子很不错,将动态(mysql)的方法都加进来,大家不妨一试!
请引用或摘抄本站文章信息的朋友,保留本站链接及作者信息,保护版权,谢谢。

构建高性能大容量开源邮件系统- ExtMail

Postfix在中国官方网站

TOP

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

详见该贴
http://www.extmail.org/forum/viewthread.php?tid=2696
免费提供动态IP/固定IP的域名解析 http://www.21sun.net/dns/

TOP

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

比如:用户a可以发送10MB大小的邮件,而用户b只能发送不超过2MB的邮件。
http://www.chifeng.name
http://extmail.org
http://postfix.org.cn
-------- chifeng

TOP

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

main.cf 里的这个值动态的去取每个用户的设定应该是可行的,不过具体的没有实践过
不能确定!
免费提供动态IP/固定IP的域名解析 http://www.21sun.net/dns/

TOP

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

或者进信通过maildrop来做。

smtp发信通过check_policy来做,但是需要开发。:(
http://www.chifeng.name
http://extmail.org
http://postfix.org.cn
-------- chifeng

TOP

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

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

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

TOP

我看这个文件,好像有我改过的手脚在里面.
开源易有
http://www.yiyou.org/

TOP

引用:
下面是引用fengyong于2006-12-18 16:19发表的:
我看这个文件,好像有我改过的手脚在里面.
哈哈,看样子搂主是集百家之长啊~
请引用或摘抄本站文章信息的朋友,保留本站链接及作者信息,保护版权,谢谢。

构建高性能大容量开源邮件系统- ExtMail

Postfix在中国官方网站

TOP

高手学习中,我支持你!

TOP

谢谢!这可帮了大忙了!

TOP

我用了

怎么不行呀

TOP

用了,效果不错

TOP

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

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

TOP

 19 12
发新话题
最近访问的版块