分类: 系统运维
2015-03-07 15:02:08
有两种方式都可以实现:
第一种,在主配置文件中定义变量:
vim /etc/postfix/main.cf
mynetworks = geektcp.com,thyhacker.com, 127.0.0.0/8, 218.244.140.198/32
也是说客户端MUA,或者其他的SMTP服务器即MTA必须在mynetworks指定的网段中才能通过当前postfix服务器发送邮件出去。
第二种,单独保存在一个文件中,并详细授权:
vim /etc/postfix/access_client
geektcp.com OK
gmail.com OK
163.com OK
yahoo.com.tw REJECT
abcd.com REJECT
通过变量mydestination定义一个postfix要转发的目的地址范围。
然后通过relay_domains调用该变量。
vim /etc/postfix/main.cf
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
relay_domains = $mydestination
OK表示允许,REJECT表示拒绝,HOLD放在传输队列里面。
还可以返回特定的状态码和消息。
vim /etc/postfix/access_sender
@geektcp.com OK
geektcp@gmail.com OK
nevertoolatethy@gmail.com OK
thy_shenzhen@163.com OK
@yahoo.com.tw REJECT
@hacker.com 480 spam message
vim /etc/postfix/access_recipient
@geektcp.com OK
@gmail.com OK
nevertoolatethy@gmail.com OK
thy_shenzhen@163.com OK
@yahoo.com.tw REJECT
mv /etc/postfix/canonical /etc/postfix/canonical_raw
vim /etc/postfix/canonical
geek@geektcp.com
调用之前需要把上面的键值对文件转成高效的二进制db文件:
postmap /etc/postfix/access_client
postmap /etc/postfix/access_sender
postmap /etc/postfix/access_recipient
vim /etc/postfix/main.cf
添加如下内容:
smtpd_client_restrictions = hash:/etc/postfix/access_client
#smtpd_helo_restrictions =
smtpd_sender_restrictions = hash:/etc/postfix/sender_access
smtpd_recipient_restrictions = permit_mynetworks hash:/etc/postfix/access_recipient
多个变量或文件用空格隔开,注意不是逗号