宜昌营销网站建设,输入网站查看空间,网线制作心得体会,广告推广渠道CentOS8 邮件系统部署 邮件系统简介邮件系统部署实践Postfix部署 发件功能Postfix编辑主配置文件 Dovecot部署 收件功能安装Dovecot服务程序编辑dovecot主配置文件配置邮件格式和存储路径创建保存邮箱的目录 测试邮件系统设置用户别名信箱 邮件系统简介
电子邮件系统是基于邮件… CentOS8 邮件系统部署 邮件系统简介邮件系统部署实践Postfix部署 发件功能Postfix编辑主配置文件 Dovecot部署 收件功能安装Dovecot服务程序编辑dovecot主配置文件配置邮件格式和存储路径创建保存邮箱的目录 测试邮件系统设置用户别名信箱 邮件系统简介
电子邮件系统是基于邮件协议来完成电子邮件的传输。
常见的邮件协议
简单邮件传输协议Simple Mail Transfer Protocol ,SMTP 用于发送和中专发出的电子邮件占用服务器的25/TCP端口。邮局协议版本3Post Office Protocol 3 POP3: 用于将电子邮件存储到本地主机占用服务器的110/TCP端口Internet消息访问协议版本4Internet Message Access Protocol 4, IMAP4 用于在本地主机上访问邮件占用服务器的143/TCP端口
在部署邮件系统时邮件系统中会存在多种邮件服务器。
邮件用户代理服务器Mail User Agent MUA 为用户收发邮件的服务器邮件投递代理Mail Delivery Agent MDA : 保存用户邮件的信箱服务器邮件传输代理服务器Mail Transfer Agent MTA: 将邮件保存在本地的收件箱中
邮件系统工作流程如下所示 用户的主机连接远程邮件系统比如说QQ邮箱在远程邮件系统中同时存在邮件投递代理服务器邮件用户代理服务器。当用户写好邮件后通过使用QQ邮箱服务器将邮件发送给QQ邮箱电子邮局如果要发送给其他的邮局服务器域名则使用SMTP协议将邮件传输给网易163电子邮局。我们使用QQ邮箱并不是说我们的电脑上也有邮件系统服务器比如说我们使用浏览器登入到QQ邮箱我们只是使用HTTP协议连接到腾讯QQ邮箱服务器类似于SSHQQ邮箱服务器中保存有我们的账户名和密码所以我们才可以连接到QQ邮箱服务器。腾讯相当于Linux系统中的root用户我们相当于该服务器中只有使用邮箱模块的普通用户。
邮件系统部署实践
在部署邮件系统时我们需要部署两种服务程序一种是用来发邮件的服务程序一种是用来受邮件的服务程序。
前期工作每次在部署某一种服务种都要考虑linux防火墙和SElinux安全上下文可能带来的部署失败可能。所以首先先开启防火墙相关服务放行相关端口号如下所示。
[rootMyCentOS ~]# firewall-cmd --list-all
internal (active)target: defaulticmp-block-inversion: nointerfaces: ens33sources: services: cockpit dhcpv6-client ftp mdns mountd nfs rpc-bind samba samba-client ssh tftpports: 69/udp 2049/tcp 2049/udpprotocols: masquerade: noforward-ports: source-ports: icmp-blocks: rich rules: [rootMyCentOS ~]# firewall-cmd --permanent --add-servicesmtp
success
[rootMyCentOS ~]# firewall-cmd --permanent --add-port25/tcp
success
[rootMyCentOS ~]# firewall-cmd --permanent --add-servicepop3
success
[rootMyCentOS ~]# firewall-cmd --permanent --add-port110/tcp
success
[rootMyCentOS ~]# firewall-cmd --permanent --add-serviceimap
success
[rootMyCentOS ~]# firewall-cmd --permanent --add-port143/tcp
success
[rootMyCentOS ~]# firewall-cmd --reload在设置防火墙时记得每次都要加入permanent参数同时reload 刷新防火墙配置
因为是实验无法通过公共的DNS服务器找到本地域名和IP地址的对应关系。所以在设置好防火墙之后还应当设置DNS服务器。让mail程序能够通过域名找到服务器IP地址。DNS服务器具体部署步骤详见之前的博客。DNS部署结果如下所示DNS服务器部署完成之后还需要将linux系统的DNS地址设置为本地IP地址
[rootMyCentOS ~]# nmtui
[rootMyCentOS ~]# nmcli n on ens33
[rootMyCentOS ~]# systemctl restart NetworkManager
[rootMyCentOS ~]# systemctl restart network-online.target
[rootMyCentOS ~]# nslookupwww.chrisgoudan.com
Server: 192.168.127.201
Address: 192.168.127.201#53Name: www.chrisgoudan.com
Address: 192.168.127.201Mail.chrisgoudan.com
Server: 192.168.127.201
Address: 192.168.127.201#53Name: mail.chrisgoudan.com
Address: 192.168.127.201exit
Postfix部署 发件功能
早期linux邮件系统使用的是SendMail服务程序提供发件服务当下使用的是Postfix服务程序。
Postfix服务程序优势 简化配置步骤稳定性、并发性有很大改进兼容Sendmail能自动增加减少进程数量保证电子邮件系统的高性能和稳定性。程序由多个小模块组成可在实际环境中灵活搭配。
---------------------------------------Postfix服务程序主配置文件重要参数-------------------------------------------------
参数作用myhostname邮局系统的主机名mydomain邮局系统的域名myorigin从本机发出邮件的域名名称inet_interfaces监听的网卡接口mydestination可接收邮件的主机名或域名mynetworks设置可转发哪些主机的邮件relay_domains设置可转发哪些网域的邮件
Postfix编辑主配置文件
Postfix主配置文件在/etc/postfix/main.cf路径下。
根据上面表格所说的我们需要将上述参数修改。如下所示
[rootMyCentOS ~]# vim /etc/postfix/main.cfmyhostname Mail.chrisgoudan.com 设置邮局系统主机名
mydomain chrisgoudan.com 设置邮局系统域名
myorigin $mydomain 设置本机发出邮件的域名名称比如我们在使用qq邮箱时后缀都会带有qq.com
inet_interfaces all 设置网卡监听地址指定使用服务器哪些IP地址对外提供电子邮件服务
mydestination $myhostname, $mydomain 设置可接收邮件的主机名或域名列表完成设置后添加一个用户账户和密码
[rootMyCentOS ~]# useradd chrisgoudan
[rootMyCentOS ~]# echo chrisgoudan | passwd --stdin chrisgoudan
更改用户 chrisgoudan 的密码 。
passwd所有的身份验证令牌已经成功更新。
[rootMyCentOS ~]# systemctl start postfix.service postfix配置完成。
Dovecot部署 收件功能
Dovecot是一款能够为Linux系统提供IMAP和POP3电子邮件服务的开源服务程序。 优点 安全性高配置简单执行速度快占用服务器资源少
安装Dovecot服务程序
[rootMyCentOS ~]# yum install dovecot编辑dovecot主配置文件
[rootMyCentOS ~]# vim /etc/dovecot/dovecot.conf protocols imap pop3 lmtp submission 去除该行的注释添加dovecot支持的邮件协议
disable_plaintext_authno 添加该行参数允许用户明文密码登入配置邮件格式和存储路径
# There are a few special variables you can use, eg.:
#
# %u - username
# %n - user part in userdomain, same as %u if theres no domain
# %d - domain part in userdomain, empty if theres no domain
# %h - home directory
#
# See doc/wiki/Variables.txt for full list. Some examples:
#
# mail_location maildir:~/Maildirmail_location mbox:~/mail:INBOX/var/mail/%u 去除该行注释设置邮件存储路径
# mail_location mbox:/var/mail/%d/%1n/%n:INDEX/var/indexes/%d/%1n/%n
#
# doc/wiki/MailLocation.txt创建保存邮箱的目录
在完成以上设置后切换至之前创建的邮箱用户在用户家目录下创建接收保存邮件的目录。
[chrisgoudanMail ~]$ mkdir -p mail/INBOX测试一下是否创建成功
[chrisgoudanMail ~]$ cd /home/chrisgoudan/mail/INBOX
[chrisgoudanMail INBOX]$ 测试邮件系统
在实机win10平台上进行测试打开控制面板在网络中设置DNS服务器地址为之前虚拟机部署的DNS服务器地址。
使用win10自带的邮件程序对部署的邮箱系统进行测试。
步骤如下图所示 当第一次使用邮件程序登入虚拟机中的邮件系统时会失败再试第二次就会出现如下登录界面按照说明天填写即可。
登入成功可以发送一篇邮件给rootchrisgoudan.com用户 登录邮件系统查看root用户的邮箱可以看见一封邮件。
[rootMail home]# mail ,查看root用户邮箱
Heirloom Mail version 12.5 7/5/10. Type ? for help.
/var/spool/mail/root: 1 message 1 new
N 1 chrisgoudan Fri Aug 21 16:35 80/2939 你个傻逼再使用win10邮件程序以root的身份给chrisgoudanchrisgoudan.com账户发送一封邮件。进入虚拟机切换至chrisgoudan用户可以查看到收到的邮件如下所示
[rootMail ~]# su - chrisgoudan
[chrisgoudanMail ~]$ mail
Heirloom Mail version 12.5 7/5/10. Type ? for help.
/var/spool/mail/chrisgoudan: 1 message 1 new
N 1 root Sat Aug 22 08:03 80/2904 你再骂因为是实验没办法通过win10的邮件程序 查看和发送邮件。猜测可能是域名不是合法域名同时DNS的IP地址也只是局域网的IP地址。如果将邮件系统部署在云服务器中同时申请域名进行备案应该就能使用自己的邮件系统了同时该邮件系统也能给其他人使用。
在部署过程中没有关闭防火墙但是关闭了SELinux安全上下文。为了实验方便需要关闭SELinux安全上下文setenforce 0。但是在实际生产环境中不可能将SELinux安全上下文关闭。网上查了一遍没有发现应该怎么操作只在外网中查到一篇博客教程安装postfix-clamav-spamassassin-dovecot-关于Debian squeeze的postfixadmin
在博客中关于587端口的描述如下
一些ISP采取了非常严厉的措施来阻止某些蠕虫和垃圾邮件他们决定完全阻止家庭用户使用25端口。
对于这些用户邮件传递将不起作用。因此我们需要配置Postfix来侦听另一个端口
Mail Submission端口587。在中/etc/postfix/master.cf以“ smtp inet”开头的行的上方添加以下内容submission inet n - - - - smtpd-o smtpd_tls_security_levelencrypt-o smtpd_sasl_auth_enableyes-o smtpd_sasl_typedovecot-o smtpd_sasl_pathprivate/auth-o smtpd_sasl_security_optionsnoanonymous-o smtpd_client_restrictionspermit_sasl_authenticated,reject-o smtpd_sender_login_mapsproxy:mysql:/etc/postfix/virtual/alias_maps.cf-o smtpd_sender_restrictionsreject_sender_login_mismatch-o smtpd_recipient_restrictionsreject_non_fqdn_recipient,permit_sasl_authenticated,reject按照博客中说的进行了设置但是不成功。以后再说
设置用户别名信箱
用户别名功能是一项简单使用的邮件账户伪装技术可以用来设置多个虚拟信箱账户以接收发送的邮件从而保证自身的真实邮件地址不被泄露还可以用来接收自己的多个信箱中的邮件。
用户信箱别名的设置在/etc/aliases文件中。如下所示
# Aliases in this file will NOT be expanded in the header from
# Mail, but WILL be visible over networks or from /bin/mail.
#
# The program newaliases must be run after
# NOTE this file is updated for any changes to
# show through to sendmail.
## Basic system aliases -- these MUST be present.
mailer-daemon: postmaster
postmaster: root# General redirections for pseudo accounts.
bin: root
daemon: root
adm: root
lp: root其中冒号前账户名称可以是Linux系统本地用户也可以是任意设置的名字。也就是说对于邮箱系统来说冒号前的是可以公开的冒号后面是真正的邮箱收件账户。设置邮箱别名只需要在aliases中按照格式添加即可