邮件系统 设为首页
加入收藏
总编信箱
| 第一邮局 | 免费邮箱 | 邮箱评测 | 企业邮局 | 移动邮件 | 邮件系统 | 邮件营销 | 反垃圾邮件 | 邮件客户端 | 邮件安全 |
当前位置:第一邮局>邮件系统>Postfix>文章内容

postfix限制特定用户收发邮件的高级访问控制方法

来源:Mail1.com.cn 编辑:Mail 发布时间:2007-04-30 [收藏] [推荐] [评论(0条)]
某销售A只能收到来自163.com及sina.com的邮件某技术员B只能给内部用户发邮件,不允许向外网发邮件,但可以收到外网邮件某主管可以收发内、外网邮件......

Hello!

I have the same problem:

1. I need to permit some internal users (not all) to send mail to any
external user (Internet)
2. I need to permite any external user to send mail to some my internal
users (not all)

In fact, the problem is: just "some" of my internal users have permission to
receive mail from and send mail to the Internet.

How can I solve this?


View this article only
新闻群组:mailing.postfix.users
日期:2002-12-04 15:18:04 PST

In the example below, the same list of restricted_users is used for
controlling both who can send and who can receive internet mail. If you
don't require the local_plus feature, just leave that part out.

  1. in main.cf:
  1. use restriction classes to make restricted_users file more readable.
    smtpd_restriction_classes = local_only, local_plus

local_only =
reject_unauth_destination
permit_mynetworks
reject

local_plus =
check_recipient_access hash:/etc/postfix/local_plus
check_sender_access hash:/etc/postfix/local_plus
reject_unauth_destination
permit_mynetworks
reject

  1. this is the default setting, required for this setup.
    smtpd_delay_reject = yes
  1. we'll do this in sender restrictions to avoid open relay problems.
    smtpd_sender_restrictions =
    check_sender_access hash:/etc/postfix/restricted_users
    check_recipient_access hash:/etc/postfix/restricted_users

and in /etc/postfix/restricted_users
# /etc/postfix/restricted_users
# this file contains a list of users only allowed to send and receive local
mail
# postmap this file after changes
# local users not listed here have no restrictions
user1@miodemi.com local_only
user2@miodemi.com local_plus

and in /etc/postfix/local_plus:
# /etc/postfix/local_plus
# this file contains allowed destinations and senders
# for users restricted to local_plus
# postmap this file after changes
miproveedor.com OK

Remember to "postmap local_plus" and "postmap restricted_users" after
making changes to them.
Remember to run "postfix reload" after changing main.cf

hzqbbc的限制方法(转自hzqbbc的blog)

有几个方法:

1) smtpd_restriction_classes = local_only
设置一个限制类别叫local_only,然后参考access(5)的格式做一个访问控制:

local_only = check_recipient_access hash:/etc/postfix/maps/my_rcpt

文件my_rcpt内容:

163.com RELAY21cn.com RELAYhzqbbc.com RELAY

然后,设置:

smtpd_sender_restrictions = check_sender_access hash:/etc/postfix/maps/mysender 

mysender内容:

hzqbbc@local.hzqbbc.com   local_only 

这样凡是Mail from:的信只能RCPT TO: 到163.com, 21cn.com及 hzqbbc.com 三个地方了。其他的都发不出去。

按这个方法,还可以设置更多的类别,例如remote_only以及不限制的帐号等。但这些都只对from:限制。而且不管是否SASL后的。所以有一定缺陷。不过,已经达到目的了。

2)使用snapshot版的policy策略
根据某个hash表或配置文件,判断对应的sender和recipient是否匹配,匹配就返回OK或者DUNNO或者RELAY等(可能RELAY已经过时,这个是postfix 1.1.x的)如果不匹配就返回错误代码

按postfix所带的smtpd-policy.pl模式,修改一下就可以使用了。详细参考POLICY_README等。

我自己的例子:

1)定义类send2hrall:
smtpd_restriction_classes = send2hrall
send2hrall =
check_sender_access mysql:/usr/local/etc/postfix/mysql-send2hrall.cf,reject
配置文件 send2hrall.cf内容如下:
hosts = localhost
user = mailuser
password = mailpasswd
dbname = maildatabase
query = select access from mysql-send2hrall where source = '%s'

2)对发给hrall@mydomain.com.cn的发件人进行审核:smtpd_sender_restrictions =中添加: check_recipient_access hash:/usr/local/etc/postfix/hrallclass在/usr/local/etc/postfix目录下建立该文件# ee /usr/local/etc/postfix/hrallclass# postmap /usr/local/etc/postfix/hrallclass(会生成hrallclass.db)文件/usr/local/etc/postfix/hrallclass内容如下:hrall@mydomain.com.cn send2hrall 3)设定数据表mysql-send2hrall记录哪些人可以给hrall@mydomain.com.cn发送邮件数据库中建立表mysql-send2hrall中使用的表,表结构如下:CREATE TABLE `mysql_send2hrall` (
`id` int(11) unsigned NOT NULL auto_increment,
`ctime` int(11) unsigned default NULL,
`source` varchar(128) NOT NULL default '',
`access` varchar(16) NOT NULL default '',
`type` char(1) NOT NULL default 'S',
PRIMARY KEY (`id`),
KEY `source` (`source`,`type`,`access`,`ctime`)
) ENGINE=MyISAM AUTO_INCREMENT=12 DEFAULT CHARSET=gb2312;
对应数据格式如下source accessoksender@mydomain.com.cn OKoksender@otherdomain.com OK 过程大概如下: 在smtp发送邮件的时候,通过 check_recipient_access 中获知:hrall@mydomain.com.cn该邮件接收的时候需要根据类send2hrall核查,而该类中定义了发件人核查的需求,从数据库表中获取此需求的具体结果。譬如上例中,如果发件人是oksender@mydomain.com.cn,获取的结果就为ok,这样smtp将此人发给hrall@mydomain.com.cn的邮件进行正常投递;其他如果不在数据库表mysql-send2hrall中的人,将根据下面reject的定义进行回绝。
上一篇:基於FreeBSD6.1功能完善的mail system   下一篇:postfix中如何获得一个邮件的信封信息(envelop header)
[365Key收藏] [雅虎收藏+] [返回顶部] [打印本页] [关闭窗口]  
邮箱   相关文章
·基於FreeBSD6.1功能完善的mail s
·postfix中如何获得一个邮件的信
·Postfix 日志脚本
·使用nfs使得mx邮件服务器跟mail
·邮件帐号管理的shell script
·debian31r2 postfix automatic s
·postfix邮件系统解决方案(源代码
·postfix中限制认证用户使用的sen
·debian 3.0(sarge)下postfix邮件
·Postfix SMTP身份验证完整方案解
·SPF在Postfix上的实现
·Red Hat 企业版4.1 antivir-ma
免费邮箱 163邮箱  21CN邮箱  Gmail  Hotmail  QQ邮箱  SoGou邮箱  新浪邮箱  雅虎邮箱  
邮箱评测 企业邮箱评测  
企业邮局 企业邮箱  企业邮箱资讯  
移动邮件 技术前沿  手机邮件  
邮件系统 CMail Server  WinMail  SendMail  Qmail  Postfix  MDaemon Server  Lotus Notes  IMail Server  Foxmail Server  Exchange Server  Domino  Winwebmail  
邮件营销 网络营销  营销案例  营销技巧  邮件营销  
反垃圾邮件 Anti-Spam技术产品  新闻资讯  
邮件客户端 DreamMail  Foxmail  IncrediMail  KooMail  Outlook  The Bat!  
邮件安全
用户名: 新注册) 密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 §最新评论
  热点文章
·Postfix SMTP身份验证完整方案解
·debian 3.0(sarge)下postfix邮件
·postfix邮件系统解决方案(源代码
·ExtMail Solution for FreeBSD
·Linux邮件服务器软件的分析评测
·SPF在Postfix上的实现
·使用nfs使得mx邮件服务器跟mail
·ExtMail Solution HOWTO for Lin
·在DEBIAN 下安装POSTFIX 邮件系
·Postfix的TLS安装与设定
·Red Hat 企业版4.1 antivir-ma
·基于Linux和Postfix邮件系统web
网站首页 -  网站地图 -  域名注册 -  虚拟主机 -  企业邮箱  -  网站投稿  -  广告联系 -  帮助中心  -  

Copyright 2007-2008 Mail1.com.cn All Rights Reserved
本站内容均来自网络,如果侵犯版权请来信告知,核实后我们会在24小时删除 联系方式:
第一邮局QQ群:14743955 E-mail:www@onlinex.com.cn