20201103部署postfix和devecot
使用postfix和dovecot 部署邮件系统
1 介绍
-
-
常见的邮件协议
- 简单邮件传输协议(simple mail transfer protocol smtp) 用于发送和中转邮件,端口是25/tcp
- 邮局协议版本3 (post office protocol 3 pop3) 用于将邮件存储到本地 占用端口 110/tcp
- Internet 消息访问协议版本4 (internet message access protocol 4 imap4)在本机访问邮件,占用端口143/tcp
- 电子邮件传输过程
-
常见的邮件协议
Mail user agent mail transfer agent
Mail delivery agent 邮件投递代理 可以在对方无法接受的时候临时保存邮件
-
-
生产部署需要注意的四个方面
- 添加反垃圾和反病毒模块
- 邮件加密
- 邮件审核,对关键字进行过滤
- 做好防范分布式拒绝服务,确保稳定性
-
生产部署需要注意的四个方面
- 部署
邮件发送流程,邮件格式一般为:用户名@主机名(域名)比如[email protected]
-
- 配置主机名称,确保发送邮件不相互干扰
Vim /etc/hostname
redhat8.lipengchao.com
-
- 配置防火墙开放端口
- 为电子邮件提供域名解析
-
安装配置postfix
- 安装:[[email protected] lipengchao]# yum install postfix
- 防火墙可以禁用来测试,后期还是需要在防火墙放行
- 配置postfix服务
这个家伙的文件比较有意思,main和master.cf都存在,
mail.cf:是postfix主要的配置文件。
Install.cf:包含安装过程中安装程序产生的postfix初始化设置。
master.cf:是postfix的master进程的配置文件,该文件中的每一行都是用来配置postfix的组件进程的运行方式。
postfix-script:包装了一些postfix命令,以便我们在linux环境中安全地执行这些postfix命令
可能会判断错误,其实是/etc/postfix/main.cf 配置文件内常用的几个参数是
我们接下来修改一下,行数只是参考,主要看注释是否是这个位置
96 myhostname = redhat8.lipengchao.com # 服务器主机名称
104 mydomain = lipengchao.com # 邮件域名称
120 myorigin = $mydomain # 来源 直接解开即可
137 inet_interfaces = all # 那些地址可以提供服务,默认是本机,如果需要也可以修改成all
185 mydestination = $myhostname, localhost.$mydomain, localhost # 可以接收邮件的主机和域名
更改了main.cf文件的内容,则必须运行postfix reload命令使其生效。或者重启服务
2.5 [[email protected] lipengchao]# systemctl startus postfix
[[email protected] lipengchao]# systemctl enable postfix
================ 安装配置bind-chroot 功能就是将此服务的权限定义在dns服务里,不允许出去,这样会更安全,当然不是必须,这里只配置正解析文件
3.1 yum install bind-chroot
3.2 主配置文件是 vim /etc/named.conf 守护进程也是named
listen-on port 53 { 127.0.0.1; }; 定义多个网卡中的一个或者使用any任何一个都可以,端口53
allow-query { localhost; }; 谁可以使用我们的dns 默认是本机,如果不限制使用any即可
3.3 修改vim /etc/named.rfc1912.zones 里面默认会有一些模板,可以用也可以删除掉自己写
zone "lipengchao.com" IN {
type master; # 表示主服务器
file "lipengchao.com.zone"; # 域名解析配置文件
allow-update{none;}; # 是否允许从服务器过来更新,有从服务器放开即可
};
3.4 补齐上面需要的配置文件
定义解析文件:cp /var/named/named.localhost /var/named/lipengchao.com.zone 然后编辑,这里的邮箱后面没有增加. 底下的服务器地址也需要增加.否则是有问题的
3.5设置完之后,重启服务起不来,然后重启服务器起不来,经过排查之后发现是因为修改了/etc/hostname的原因,修改回localhost.localdomain即可,但是重启服务起不来,我们还需要解决,上课的时候忽然听到权限的问题,几个配置文件都修改
[[email protected] lipengchao]# chown named:named /var/named/lipengchao.com.zone
[[email protected] lipengchao]# chmod 664 /var/named/lipengchao.com.zone
[[email protected] lipengchao]# chown named:named /etc/named*
然后启动,启动正常
3.6 防火墙放行,服务启动增加到开机启动
[[email protected] ~]# firewall-cmd --permanent --add-service=dns
===========================================
-
安装配置dovecot
- yum install devecot
- vim /etc/dovecot/dovecot.conf
protocols = imap pop3 lmtp # 设置协议
disable_plaintext_auth=no # 暂时没有加密系统,所以关闭禁止明文认证
login_trusted_networks = 192.168.88.0/200 设置受信任的网段,如果不修改就是全部都可以使用
-
- 配置邮件格式与存储路径:
vim /etc/dovecot/conf.d/10-mail.conf
路径默认设置好的,我们解开注释
mail_location = mbox:~/mail:INBOX=/var/mail/%u
-
- 切换到指定用户,然后新建存放的目录
[[email protected] ~]$ su – lipengchao
[[email protected] ~]$ mkdir -p mail/.imap/INBOX # 这里没看懂为啥是新建这个目录,这和上面定义的不符合
[[email protected] lipengchao]# systemctl restart dovecot
[[email protected] lipengchao]# systemctl enable dovecot
- 然后就可以和正常使用一样来操作测试了
6 设置用户别名信箱
别名就是可以为自己的邮箱设置一个完全虚拟的地址,从而隐藏自己真实的邮箱地址,而且我们可以收到发来的邮件,我们通过查看cat /etc/aliases文件可以看到很多,比如:
ftp: root 就会将发送给ftp的邮件展示给root来看,但是发出去的时候还是会显示ftp这样的功能,如果我们需要的时候,则可以在此文件中进行新增对应关系,然后执行newaliases来刷新关系,所以严格来说我们看到的许多邮箱可能都是一个人
7 以后实际部署可以参考 https://www.cnblogs.com/zhchngzng/p/3591498.html
1. postfix 实现邮件发送服务器的角色。
2. dovecot 作为邮件接收服务器的角色。
3. extmail 实现利用web界面收发信件。
4. extman 用户注册同个extman的页面
5. mysql数据库,存放用户的账户信息
6. cyrus-sasl courier-authlib 实现用户的身份验证