Sendmail、QMail安装部署以及邮件实验

PHP Alan 11年前 (2014-06-26) 6559次浏览 0个评论 扫描二维码

邮件系统概览
•邮件系统组成的几个概念:
邮件用户代理(Mail User Agent-MUA)
邮件传输代理(Mail Transfer Agent -MTA)
邮件投递代理(Mail Delivery Agent-MDA)
邮件转发(Relay不是Reply)
SMTP
POP
IMAP
Exchange。。。
•发送邮件流程:
Sendmail、QMail安装部署以及邮件实验

•邮件系统软件:
Linux开源主流:
Sendmail(MTA、MDA可替换procmail)
Qmail(细分模块、更高效安全)
Postfix(完全兼容Sendmail、配置更简单)
其他商用:
Exchange
Coremail
。。。
•邮件系统DNS配置:
在DNS提供商处配置域名的MX记录和A记录
反垃圾邮件
host -t mx qq.com
host -t a mx1.qq.com
windows用nslookup
Sendmail、Postfix安装测试
•Sendmail安装:
主程序安装(部分linux系统内置)
配置程序安装
修改配置文件
启动主程序
安装pop
安装smtp认证•Sendmail安装:
yum install sendmailsendmail-cf
修改配置后m4生成:m4 /etc/mail/sendmail.mc> /etc/sendmail.cf
配置域名LOCAL_DOMAIN(xyz.cn')dnl
允许指定ip连接DAEMON_OPTIONS(
Port=smtp,Addr=0.0.0.0,Name=MTA)dnl
/etc/init.d/sendmailstart或者通过service启动
•Sendmail安装(SMTP认证):
yum installcyrus-saslcyrus-sasl-plain
/etc/sysconfig/saslauthd配置认证方式(saslauthd-v查询支持的方式)
MECH=shadow(使用系统用户密码认证)
如果开启了selinux需要允许读取shadow
setsebool-P allow_saslauthd_read_shadow1
修改/etc/mail/sendmail.mc配置使用smtp认证并用m4重新生成
TRUST_AUTH_MECH、confAUTH_MECHANISMS
•Sendmail安装(POP):
yum installdovecot
修改配置/etc/dovecot/dovecot.conf
指定支持协议:protocols = imappop3
指定连接ip范围:login_trusted_networks= 0.0.0.0/0
设置邮件存放路径/etc/dovecot/conf.d/10-mail.conf
mail_location= mbox:~/mail:INBOX=/var/mail/%u
•Sendmail安装(POP):
创建用户目录,缓存邮件
/home/test1/mail/.imap/INBOX
修改用户模板,新用户自动创建:
/etc/skel/.bash_profile
if [ ! -d ~/mail/.imap/INBOX ];then
mkdir-p ~/mail/.imap/INBOX
fi
•Sendmail安装(测试):
启动服务:sendmaildovecotsaslauthd
开启防火墙:25、110、143
netstat检测端口,ps检测进程,查看syslog
telnet测试:
telnet192.168.1.10525
telnet192.168.1.105110
•Postfix安装:
yuminstallpostfix
修改配置:/etc/postfix/main.cf(也可以用postconf工具)
myhostname= mail.xyz.cn(主机名)
mydomain= xyz.cn(域名,不设置默认主机名的域)
inet_interfaces= all(接收ip范围)
mydestination=。。(接收的收件人地址范围)
postfix reload 重新加载即可
•Postfix安装(smtp添加sasl认证):
修改配置:/etc/postfix/main.cf
smtpd_sasl_auth_enable= yes
smtpd_sasl_security_options= noanonymous
broken_sasl_auth_clients= yes
smtpd_client_restrictions= permit_sasl_authenticated
smtpd_recipient_restrictions= permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination
pop也可以用dovecot
•sendmail、postfix兼容与切换:
添加邮件别名账号:/etc/aliases
no-reply:test1
kefu:test1,test2
mta切换:
alternatives –configmta
Qmail安装测试
•安装:www.qmail.org安装说明INSTALL
创建安装目录:
mkdir/var/qmail
添加用户和组:
组nofilesqmail用户aliasqmaildqmaillqmailpqmailqqmailrqmails
编译(extern错误修复):
make setup check
•配置:
./config生成域名和主机信息,如果不是公网服务器用自定义配置:
./config-fast mail.xyz.cn
创建邮件账号别名,qmail不会读取/etc/alias
~alias/.qmail-root.qmail-postmaster.qmail-no-reply
选择mda(home即qmail、proc、binmail)
cp/var/qmail/boot/home /var/qmail/rc(rc作为启动脚本)
•邮件目录(独立目录更安全高效):
1)使用Maildir分离邮件,防止服务器崩溃整个邮件错误
/var/qmail/bin/maildirmake~test1/Maildir
echo ./Maildir/ > ~test1/.qmail
修改/var/qmail/rc的邮件文件夹位置到./Maildir/
2)兼容sendmail
mv /var/spool/mail/test1 ~test1/Mailbox
创建符号链接,兼容其他mda:
ln-s ~test1/Mailbox /var/spool/mail/test1
•启动测试:
启动mda注入qmail:
sh-cf’/var/qmail/rc&’
测试:
echo to:test1 | /var/qmail/bin/qmail-inject
•pop:
下载checkpassword插件并安装(密码校验):
make&&make setup check
测试密码功能:
/var/qmail/bin/qmail-popup blah /bin/checkpasswordpwd
下载并安装ucspi-tcp插件,类似于xinetd的守护进程:
make&&make setup check
用tcpserver加载pop服务和smtp服务
•pop和smtp监听:
用tcpserver加载pop和smtp服务:
/usr/local/bin/tcpserver0 pop-3 /var/qmail/bin/qmail-popup xyz.cn/bin/checkpassword/var/qmail/bin/qmail-pop3d Maildir&
/usr/local/bin/tcpserver0 smtp/var/qmail/bin/qmail-smtpd&
•关于本地测试(dns解析不会读取hosts):
qmail利用smtp路由转发实现/var/qmail/control/smtproutes:
xyz.cn:[192.168.1.105]
sendmail通过/etc/mail/service.switch文件修改host解析顺序
postfix添加transport_maps:
main.cf增加transport_maps= hash:/etc/postfix/transport
transport增加abc.comsmtp:[192.168.1.107]
或者修改从/etc/nsswitch.conf查询host(需要dns查询时间):
smtp_host_lookup=native
性能测试与差异对比
•简单性能测试
三种方式发送邮件Sendmail、Postfix、Qmail
php单进程
发送:本机随机用户
接收:局域网随机用户
•差异对比
安装及配置
兼容性与扩展性
安全与健壮性
性能
•差异对比(安装及配置)
sendmail:安装主程序及配置程序
使用m4语法,单一主配置sendmail.cf,语法复杂,需要很熟悉才能实现复杂功能
qmail:体积小,分模块安装,需要很多补丁
使用大量小配置文本,格式简单,每个配置一个文件,存放在/var/qmail/control目录里
postfix:主程序安装
使用主配置main.cf及master主服务进程配置master.cf。使用简明易懂的key = value 格式,并配备强大的postconf工具
•差异对比(兼容性与扩展性)
sendmail:
使用最为广泛的邮件系统,强大的技术支持与众多的维护者
qmail:
提供兼容sendmail方式,自身完全独立的方式。代码已经很久没有维护,有众多的插件和补丁实现扩展
postfix:
与sendmail最大限度的兼容,设计为sendmail的替换,自身功能完善,目前还在更替
•差异对比(安全与健壮性)
sendmail:
传统稳定,安全性较低,但已有问题经过了长时间的修改和完善
qmail:
设计为多用户最低权限运行,安全性高。邮件分离存储可靠性高
postfix:
多层防护结构,超负荷工作能自动降低资源利用
•差异对比(性能)
sendmail:
稳定,性能一般,但能满足大部分需求
qmail:
并发处理,并可配置,性能高
postfix:
高效运行并能自动降低风险
注:以上内容来自公开课课件

喜欢 (0)
[]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址