Techyou labs
文章RSS
评论RSS
登录
真正的爱应该超越生命的长度,心灵的宽度,灵魂的深度
搜索
关于作者
文章分类
Default
Linux/Unix
Database
Cloud
Networking
Security
Programming
最新文章
带你重走 TiDB TPS 提升 1000 倍的性能优化之旅
Unicode 中的 BIDI 双向性算法[转]
在linux中设置优先使用ipv4,而不是ipv6
linux下WPS高分辨率下因字体缩放导致字体发虚的问题
ssh-rsa not in pubkeyacceptedalgorithms问题解答及处理办法 Permission denied (publickey)
在 Ubuntu 22.04 中使用 PipeWire 替换 PulseAudio
MYSQL简单监控指标
deepin-wine6-stable下TIM悄悄崩溃问题
openwrt 设置ipv6地址分配
Redis 实战篇:巧用数据类型实现亿级数据统计
最新评论
renothing: 备注:路由器端优先设置ipv4并不影响客户端的ip...
renothing: 二次反向代理跟你应用程序得处理时间有关系吧?尤其是...
二次反向代理性能很差,怎么优化的?: 我也用nginx 做了个二次反向代理,但是并发连3...
hostyep: 交换链接么?目前每天保持30个左右对口IP,每月都...
yzhkpli: error while loading share...
美肤宝: 感谢分享。。。
lq: 嗯 喜欢弄得点单点
按月归档
March 2023
December 2022
November 2022
September 2022
August 2022
March 2022
January 2022
November 2021
October 2021
September 2021
August 2021
July 2021
June 2021
February 2021
September 2020
May 2020
September 2019
August 2019
July 2019
June 2019
May 2019
January 2019
December 2018
November 2018
October 2018
September 2018
August 2018
July 2018
June 2018
April 2018
March 2018
December 2017
October 2017
September 2017
August 2017
April 2017
March 2017
February 2017
August 2016
July 2015
November 2014
September 2014
August 2014
July 2014
June 2014
July 2013
April 2013
September 2012
July 2012
May 2012
April 2012
February 2012
January 2012
December 2011
November 2011
October 2011
September 2011
August 2011
December 2010
November 2010
October 2010
September 2010
August 2010
July 2010
June 2010
May 2010
April 2010
March 2010
February 2010
January 2010
December 2009
November 2009
October 2009
September 2009
August 2009
June 2009
May 2009
April 2009
March 2009
February 2009
December 2008
November 2008
September 2008
August 2008
July 2008
June 2008
常用标签
Mysql
nginx
mysql优化
linux
debian
Powered by
Typecho)))
Optimized by
EAimTY
Postfix 简明安装手册
May 13, 2010
Linux 邮件服务器通常使用 sendmail,在网上 google 了 sendmail 的教程后,我决定知难而退, 改用 Postfix。 Postfix 是用来替代 sendmail 的,它的配置文件比 sendmail 简单得多,配置相 当容易。 在配置邮件服务器之前,先解释几个概念。我们通常使用 Email 都很容易,但是 Internet 的邮件系统是通过几个复杂的部分连接而成的,对于最终用户而言,我们熟悉的 Outlook, Foxmail 等都是用来收信和发信的,称之为 MUA:Mail User Agent,邮件用户代理。MUA 并非直接将邮件发送至收件人手中,而是通过 MTA:Mail Transfer Agent,邮件传输代理代 为传递,sendmail 和 Postfix 就是扮演 MTA 的角色。一封邮件从 MUA 发出后,可能通过一 个或多个 MTA 传递,最终到达 MDA:Mail Delivery Agent,邮件投递代理,邮件到达 MDA 后,就存放在某个文件或特殊的数据库里,我们将这个长期保存邮件的地方称之为邮箱。一 旦邮件到达邮箱,就原地不动了,等用户再通过 MUA 将其取走,就是用 Outlook,Foxmail 等软件收信的过程。所以一封邮件的流程是: 发件人:MUA --发送--> MTA -> ... -> MTA -> MDA <--收取-- MUA:收件人 MUA 到 MTA,以及 MTA 到 MTA 之间使用的协议就是 SMTP 协议,而收邮件时,MUA 到 MDA 之间使用的协议最常用的是 POP3 或 IMAP。 需要注意的是,专业邮件服务商都有大量的机器来为用户服务,所以通常 MTA 和 MDA 并不是同一台服务器,因此,在 Outlook 等软件里,我们需要分别填写 SMTP 发送服务器的 地址和 POP3 接收服务器的地址。 一:安装并配置 postfix 下面开始用 Postfix 搭建邮件服务器。 apt-get install postfix Postfix 只有一个/etc/postfix/main.cf 需要修改,其他配置文件可以直接使用默认设置。 第一个需要修改的参数是 myhostname,指向真正的域名,例如: myhostname =monitor.vm.stm.com mydomain 参数指向根域: mydomain = monitor.vm.stm.com myorigin 和 mydestination 都可以指向 mydomain: myorigin = $mydomain mydestination = $mydomainPostfix 默认只监听本地地址,如果要与外界通信,就需要监听网卡的所有 IP: inet_interfaces = all Postfix 默认将子网内的机器设置为可信任网络,多个网络使用空格隔开,支持掩码模式, 如果只信任本机,就设置为 host: #mynetworks = host Mynetworks = 127.0.0.1 10.0.0.2/32 10.0.0.4/32 配置哪些地址的邮件能够被 Postfix 转发,当然是 mydomain 的才能转发,否则其他人 都可以用这台邮件服务器转发垃圾邮件了: relay_domains = $mydomain 现在,Postfix 已经基本配置完成,接下来我们需要对邮件的发送进行控制: 二:配置 postfix 权限规则 对于外域到本域的邮件,必须接收,否则,收不到任何来自外部的邮件; 对于本域到外域的邮件,只允许从本机发出,否则,其他人通过伪造本域地址就可以向外域 发信; 对于外域到外域的邮件,直接拒绝,否则我们的邮件服务器就是 Open Relay,将被视为垃圾 邮件服务器。 先设置发件人的规则: smtpd_sender_restrictions = permit_mynetworks, check_sender_access hash:/etc/postfix/sender_access, permit 以上规则先判断是否是本域地址,如果是,允许,然后再从 sender_access 文件里检查 发件人是否存在,拒绝存在的发件人,最后允许其他发件人 然后设置收件人规则: smtpd_recipient_restrictions = permit_mynetworks, check_recipient_access hash:/etc/postfix/recipient_access, reject 以上规则先判断是否是本域地址,如果是,允许,然后再从 recipient_access 文件里检查 收件人是否存在,允许存在的收件人,最后拒绝其他收件人。 /etc/postfix/sender_access 的内容: @monitor.stm.com OK * REJECT /etc/postfix/recipient_access 的内容: @smalltreemedia.com OK *@smalltreemedia.com OK 因此,外域只能发送给以上两个 Email 地址,其他任何地址都将被拒绝。但本机到本机 发送不受影响。 最后用 postmap 生成 hash 格式的文件: # postmap sender_access# postmap recipient_access 启动 Postfix: # /etc/init.d/postfix start 现在就可以通过 telnet 来测试了:(红色是输入的命令) 220 mail.example.com ESMTP Postfix helo localhost 250 mail.example.com mail from:test@gmail.com 250 Ok rcpt to:webmaster@example.com 250 Ok data 354 End data with
.
hello!!!!!! . 250 Ok: queued as D68E41407D0 mail from:test@gmail.com 250 Ok rcpt to:haha@example.com 554
: Recipient address rejected: Access denied quit 221 Bye 如果配置了 SMTP 认证,就可以让用户远程发送时能通过认证后再发送邮件,目前还 没有配置,准备继续研究后再配置。需要注意的是,配置 SMTP 认证后,设置规则应该是: 外域->本域:不需认证,允许,否则将接受不到任何外部邮件;本域->外域:需要认证,否则拒绝。 因为我们作为发送服务器的 MTA 和转发的 MTA 实际上是由一个 MTA 完成的,所以需 要以上规则。对于大型邮件服务商,发送服务器的 MTA 和转发的 MTA 是分别部署的,例 如, sina 的发送服务器是 smtp.sina.com,需要经过用户认证,而转发服务器是 mx???.sina.com, 不需要认证,否则无法转发邮件。 最后不要忘了在 DNS 的 MX 记录中将域 monitor.stm.com 添上。 参考 http://ariyue.iteye.com/blog/457636 http://www.postfix.org/INSTALL.html https://help.ubuntu.com/community/Postfix
暂无评论
添加新评论
称呼
Email
网站
取消回复
内容
发表评论