|
对有的特殊的邮件组要加以权限的控制,比如all@abc.com,指定只有公司特别的人才可能发送,不然要是有人发个垃圾邮件给所有人,后果不堪设想。
实现方法如下:
使用postfix的发信和收信人策略实现邮件列表的使用控制
1、创建local_recipient和local_domains两个文件
[iyunv@a postfix]# pwd
/etc/postfix
[iyunv@a postfix]# cat local_recipient
allstaff@a.com local_only
[iyunv@a postfix]# cat local_domains
a.com OK
z@abc.com OK
2、产生db文件,如果修改过/etc/postfix/local_recipient和/etc/postfix/local_domains文件内容,需要重新执行下面的命令才可生效。
postmap hash:/etc/postfix/local_recipient
postmap hash:/etc/postfix/local_domains
3、在main.cf里加入两行
smtpd_restriction_classes = local_only
local_only = check_sender_access hash:/etc/postfix/local_domains, reject
4、在main.cf里给smtpd_sender_restrictions加个规则check_recipient_access hash:/etc/postfix/local_recipient,结果如下:
smtpd_sender_restrictions =
permit_mynetworks,
reject_sender_login_mismatch,
reject_authenticated_sender_login_mismatch,
reject_unauthenticated_sender_login_mismatch,
reject_unknown_sender_domain,
check_recipient_access hash:/etc/postfix/local_recipient
5、重启postfix。
此时非a.com用户无法给allstaff发信,z@abc.com用户可以发邮件
弹回信息如下:
你发送到allstaff@a.com的邮件由于以下原因被退回 :
allstaff@a.com SMTP error, RCPT TO: 554 5.7.1 <allstaff@a.com>: Recipient address rejected: Access denied
二:还有个问题就是有的时候发送给邮件组又同时发送给个人,这个人又包含在这个邮件组里,会收到两封一样的邮件,很不好,网上搜刮只要修改main.cf,添加一条参数即可!
实现方法:#vim /etc/postfix/main.cf
enable_original_recipient = no
最后别忘记postfix restart
三、附上常用的邮箱管理命令:
#postsuper -d ID 删除特定邮件队列
#postsuper -d ALL 删除所有邮件队列
#mailq 查看所有邮件队列
#postfix flush 立即投递队列中所有邮件(慎用)
#postfix check 修复队列以及任何权限错误
#tail -f /var/log/maillog 查看邮件系统日志
四、搭建完以后的性能优化,应对500+用户的环境(extmail论坛牛人发的)
1、修改/usr/lib/courier-imap/etc/pop3d
MAXDAEMONS=512
MAXPERIP=9000
2、修改/etc/authlib/authdaemonrc
daemons=256
3、修改/etc/amavisd.conf
$max_servers = 50;
4、修改/usr/sbin/apachectl
HTTPD='/usr/sbin/httpd.worker'
5、修改/etc/httpd/conf/httpd.conf
<IfModule worker.c>
StartServers 10
MaxClients 1500
ServerLimit 100
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 0
</IfModule>
6、修改/etc/clamd.conf
MaxThreads 50
7、修改/etc/my.cnf
max_connections=2048
8、去除rar打包exe会被ban的问题
编辑/etc/amavisd.conf,把$banned_filename_re = new_RE 这段内容相应的修改下
如果你知道该重启哪些服务,就重启这些服务,不清楚的话重启下系统就好。
9、加强发信人限制策略
编辑/etc/postfix/master.cf,把-o smtpd_client_restrictions=permit_sasl_authenticated,reject这行注释去掉。
五、以下是建议:
1、dnsbl列表:这是个实时黑名单列表,但里面的绝大数列表都不适合在国内使用,所以建议关闭。
#vim /usr/local/slockd/config/plugin.cf
修改dnsbl_plugin = no
2、spf检查:也是防垃圾邮件的,检查对方是否具有spf记录,没有则拒绝,因有的邮件服务器确实没有做这个记录,只做了ip反解,所以在这里我把这个检查关了,当然,如果对垃圾邮件要求较高,可以不关
#vim /usr/local/slockd/config/plugin.cf
修改spf_plugin = no
3、日志还有就是过滤日志,把很关键的字段过滤出来方便查询问题
cat /var/log/maillog |grep reject
|
|
|