postfix: relay 限制

kevin.Zhu 发布于:2013-9-30 17:16 分类:Postfix  有 17 人浏览,获得评论 0 条  

mynetworks = 127.0.0.1, 192.168.0.0/24, 119.24.15.10
mynetworks: 信任client,即运行 mynetworks 后面定义的客户端发信,postfix 会帮忙 relay。
上面的意思是: 允许 本机,192.168.0.0/24 这个局域网,119.24.15.10 这台机 通过 postfix 发送邮件。

relay_domains = $mydomain, $myhostname, 163.com, gmail.com
relay_domains:允许 转发的域。即:发往这些域的邮件可以relay,发往其他域的邮件,拒绝relay。

myhostname:设定主机名称,需使用的FQDN
你应该要设定成为完整的主机名。如:myhostname= mail.example.com 
除了这个设定值之外,还有一个MYDOMAIN的设定项目,这个项目预设会取$ myhostname第一个“.”之后的名称。举例来说上头设定完毕后,预设的MYDOMAIN就是 example.com .你也可以自行设定他

myorigin:发信时显示的“发信源主机”
这个项目在设定“邮件标机头上面的邮件来自的那个位址”,也就是代表本MTA传出去的信件将以此设定值为准。如果你在本机寄信时忘记加上邮件从字样的话,那么就以此值为准了预设这个项目以$ myhostname为主的,例如:myorigin= $ myhostname

inet_interfaces:监听的网卡
在预设的情况下你的Postfix的只会监听介面LO(127.0.0.1而已如果你想要监听整个互联网的话,请开放成为对外介面或者是开放全部介面常见的设定方法扩展功能inet_interfaces = all 

mydestination能够收信主机名称  
因为我们的主机非常的名字,那么对方填写邮件到底要写哪个主机名字我们当前才能将该信件收下吗?电子邮件主机位址在我们这个练习当中这部主机有多个名字,所以写法mydestination= $ myhostname本地主机,mail.example.com, ftp.example.com, http.exmaple.com

mynetworks_style: 信任网络 类型
host是192.168.0.100,如果我相信整个区域网路内(192.168.0.0/24)的用户的话,那此设定值为“subnet”!不过,一般来说,因为底下的mynetworks会取代这个设定值,所以不设定也没有关系喔!如果要设定的话,最好设定成为host 即可(亦即仅信任这部MTA的主机而已)。

relay_domains规范可以帮忙转发的下一部MTA主机位址
对于mynetworks是针对信任的用户”而设定的这个relay_domains,则可以视为针对下游的MTA伺服器”而设定的举例来说如果你这部主机www.niki.centos.vbirdMX主机时,那就得要在relay_domains设定针对整个niki.centos.vbird这个领域的目标信件进行转递才行预设情况下,这个设定$mydestination而已啦

你必需要注意的“后缀预设不会转递的MX主机的信件意思就是说如果你两部主机一部上游MTAup一部下游MTAdownMTAdown规范的MX主机是MTAup22.1.2谈到的DNSMX设定信件传递方向,我们知道任何想要寄给MTAdown主机信件都会经过MTAup转递才行此时如果MTAup没有开启帮MTAdown进行中继权限,那么任何传给MTAdown信件将“全部都被MTAup所退回!”从此MTAdown无法收到任何信件了。

邮件服务器并且也有设定的MX的状况下,嘿嘿这个relay_domains就很重要啦!上游的MTA主机需要启动这个设定一般来说除非某部的MTA主机的MX源头,否则这个设定项目可以忽略不设定他如果你想要的用户转递信件某部特定MTA的主机时,这个设定项目也是可以设定的啦。预设请您暂缓预设即可

SMTP AUTH:smtp 密码验证 (postfix 已经能用)
使用 saslauthd.
1. 安装saslauthd 相关软件包。
cyrus-sasl-lib-2.1.22-5.el5_4.3
cyrus-sasl-plain-2.1.22-5.el5_4.3
cyrus-sasl-lib-2.1.22-5.el5_4.3
cyrus-sasl-plain-2.1.22-5.el5_4.3
cyrus-sasl-2.1.22-5.el5_4.3

2.设定
# saslauthd -v
saslauthd 2.1.23
authentication mechanisms: getpwent kerberos5 pam rimap shadow ldap
# 上面分号后面的内容代表:支持的密码验证机制

# vim /etc/sysconfig/saslauthd
MECH=pam  <==其实这个是默认值

# 3. 启动
# /etc/init.d/saslauthd start
# chkconfig saslauthd on         #开机自启动


# vim /etc/sasl2/smtpd.conf
log_level: 3                <==登录记录等级,设置 3 即可
pwcheck_method: saslauthd   <==就是smtpd 用什么服务来验证密码
mech_list: plain login      <==支持那些验证机制。 也可以不填写这一行,默认支持 saslauthd -v 看到的所有机制。

# vim /etc/postfix/main.cf
# 在最后添加如下内容:
smtpd_sasl_auth_enable = yes         //启用smtp验证功能
smtpd_sasl_security_options = noanonymous        //不允许匿名登录
broken_sasl_auth_clients = yes                //支持非标准客户端,如老版本的outlook。。。
smtpd_recipient_restrictions =
     permit_mynetworks,              //允许mynetworks
     permit_sasl_authenticated,  <==重点!注意順序!
     reject_unknown_sender_domain,
     reject_unknown_recipient_domain,
     reject_unauth_destination,
     reject_rbl_client cbl.abuseat.org,
     reject_rbl_client bl.spamcop.net,
     reject_rbl_client cblless.anti-spam.org.cn,
     reject_rbl_client sbl-xbl.spamhaus.org,
     check_policy_service unix:/var/spool/postfix/postgrey/socket

permit_sasl_authenticated: 放在第二行,表示:第一行的mynetworks 不需要验证就可以relay。其他的都要验证才可以relay。

 最后重启postfix。使用客户端进行测试。
#/etc/init.d/postfix restart