postfix搭建以及用户收发信控制

一。实验需要 

DNS设置(配置文件)

# cat /etc/named.rfc1912.zones
zone "example.com" IN {
        type master;
        file "example.zone";
        allow-update { none; };
};

zone "111.168.192.in-addr.arpa" IN {
        type master;
        file "example.loopback";
        allow-update { none; };


# cat /var/named/chroot/var/named/example.zone
$TTL 1D
@       IN SOA  @ root (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
@       IN      NS      www.example.com.
@       IN      A       192.168.111.111
@       IN      MX 10   mail.example.com.
www     IN      A       192.168.111.111 
mail    IN      A       192.168.111.111 

# cat /var/named/chroot/var/named/example.local
$TTL 1D
@       IN SOA  @ root (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        IN      NS      www.example.com.
        IN      MX 10   mail.example.com.
111      IN      PTR     www.example.com.
111      IN      PTR     mail.example.com.

[root @localhost postfix]# vi /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.181.111
nameserver 202.96.69.38

二。Postfix设置

1.安装Postfix
# yum install postfix
在CentOS系统一般都自带sendmail的,如果你不需要了,可以使用以下命令删除:
# rpm -e sendmail

更改默认邮件传输代理(MTA)
我们先来检查默认的MTA
# alternatives --display mta
"mta - status is manual.
"
link currently points to /usr/sbin/sendmail.sendmail
我们从以上看出,现在默认的MTA是sendmail。所以我们需要键入以下命令更新MTA为Postfix。
# /usr/sbin/alternatives --set mta /usr/sbin/sendmail.postfix
"再次检查看MTA是不是改为Postfix了。


"
# alternatives --display mta

2.配置postfix 比较简短的重要配置解释
# mv /etc/postfix/main.cf /etc/postfix/main.cf.bak 这里分别涉及了/etc/postfix/main.cf里的三个设定项:
# touch /etc/postfix/main.cf mydestination:    设置可收信的地址(用于收信)
建立一个空文件。默认这个文件是可以使用的,mynetwork_style的值默认为subnet mynetworks:      设置可信任的客户端(用于中继)
然后再空文件中填入几个在这里必须用到的最少设置 relay_domains:    设置可信任的域(用于中继)
# cat /etc/postfix/main.cf
mydomain = mail.example.com
myorigin = $mydomain mydomain: email服务器的域名
mydestination = example.com, root@example.com #可写成$myhostname, localhost.$mydomain, localhost, $mydomain 一样 myhostname: 参数是指系统的主机名称
mynetworks = 127.0.0.1,192.168.111.0/24 myorigin:指定本地发送邮件中来源和传递显示的域名,在我们的例子中,mydomain是example.com,也是我的域名

配置到这里,使用telnet你可以在本机,以及一个网段内使用此postfix进行发信服务。(可发送至外网)

然后开始配置用户收发信文件配置
在/etc/postfix/main.cf后面添加
smtpd_restriction_classes = local_only #SMTP服务受限制的类型,后边自己定义
local_only = check_recipient_access regexp:/etc/postfix/local_domains,reject #正则类型的配置文件,申明目前系统的信任域,可以改成hash,直接填写用户:
smtpd_recipient_restrictions = check_sender_access regexp:/etc/postfix/local_senders, #该文档里的用户是被禁止对外发送邮件
 check_recipient_access regexp:/etc/postfix/local_recipients, #注意这里往下左边有空格,是一个列表形式 #该文档里的用户是被禁止接收外来邮件
 permit_mynetworks,
 permit_sasl_authenticated,
 reject_non_fqdn_hostname,
 reject_non_fqdn_sender,
 reject_non_fqdn_recipient,
 reject_unauth_destination,
 reject_unauth_pipelining,
 reject_rhsbl_sender,
 reject_unknown_sender_domain,
 reject_invalid_hostname

然后创建三个与配置文件相匹配的三个文件
# vi /etc/postfix/local_domains
/.*@example.com/ OK #自己的域为信任域
#添加新条目另起行
# /etc/postfix/local_senders

# /etc/postfix/local_recipients



你可以把你想限制的用户填写在/etc/postfix/local_senders
例如:
# vi /etc/postfix/local_senders
/test@example.com/
然后你想限制他的信任域在/etc/postfix/local_domains,reject 这个表里
那么
# vi /etc/postfix/local_senders
#/test@example.com/ local_only
这样符合这个正则的用户即只能向这个文件的信任域发送邮件。

如果我想让test1用户只能向example1.com域发信,而test2用户只能向example2.com域发信,那么
修改main.cf文件,添加local_only2,用逗号隔开
smtpd_restriction_classes = local_only,local_only2
local_only2 = check_recipient_access regexp:/etc/postfix/local_domains2,reject
然后创建/etc/postfix/local_domains2文件
# vi /etc/postfix/local_domains2
/.*@example2.com/ OK

再编辑/etc/postfix/local_senders
# vi /etc/postfix/local_senders
/^test1@example.com$/ local_only
/^test2@example.com$/ local_only2

转载于:https://my.oschina.net/HankCN/blog/144076

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值