本教程来自http://blog.pztop.com/2016/04/20/Email-Server-With-Postfix-Dovecot-MailScanner-1/
本教程仅仅做翻译和注释,版权归原作者所有。
----------------------------------正文-----------------------------
邮件服务器相当复杂,并不仅仅是收发邮件即可,同时也需要做好其他协同功能和安全防护,刚好最近帮公司搭建一台邮件服务器,把整个流程整理了下来。
当然,也有其他简单、快速的方法可以搭建邮件服务器,比如iRedMail,但我更喜欢一步步从头做起,这样可以了解如何把不同的组件搭配,以及他们是如何协同工作的。就像开车,多知道一些引擎和变速器的知识,可以帮助了解我们哪里出了问题并改进。
功能和组件
首先我把重要的需要的功能列出来
- 支持域名和收件箱
- 支持TARTTLS方式的SMTP
- 支持SSL/TLS加密的MAP/POP3
- 有一个安全的网页邮箱地址
- 有邮箱账户管理后台界面
- 有ailScanner管理后台界面
下面是所需的组件
- LEMP环境(CentOS 7 + Nginx + MariaDB + PHP),也就是LNMP
- Postfix
- Dovecot (使用Sieve filter)
- MailScanner (使用ClamAV and Spamassassin)
- MailWatch (Web UI for MailScanner)
- RoundCube webmail
- Postfix Admin (postfix后台管理界面,可以新增域名和邮箱账户)
- Fail2ban and iptables (防火墙)
- OpenSSL and Let’s Encripts SSL certificate(SSL支持)
- OpenDKIM and SPF(增加邮件评分)
域名解析
搭建邮件服务器之前,先把域名解析设置好
mydomain.com. 600 IN A 服务器IPsmtp.mydomain.com. 3600 IN A 服务器IPmydomain.com. 3599 IN MX 10 smtp.mydomain.com.postfixadmin.mydomain.com. 1697 IN CNAME smtp.mydomain.com.mailwatch.mydomain.com. 1697 IN CNAME smtp.mydomain.com.roundcube.mydomain.com. 1697 IN CNAME smtp.mydomain.com.
有条件的VPS可以做好反向DNS
以centos7.2 64位系统为例进行安装,我会设置所有邮件保存到/home/vmail,所以请保证VPS有足够空间。
取消SELinux
sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/g‘ /etc/selinux/config
安装必要命令
yum -y install net-tools nano wget man bind-utils git mailx telnet
防火墙
centos7默认有Firewalld作为防火墙,但我更喜欢iptables,所以卸载原来的,安装iptables。
systemctl stop firewalld systemctl mask firewalld systemctl disable firewalld
安装iptables
yum -y install iptables-services systemctl enable iptables systemctl start iptables
安装fail2ban
yum install -y epel-release yum install -y fail2ban jwhois
创建fail2ban配置文件
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
vim /etc/fail2ban/jail.local
编辑此文件如下
[sshd] enabled = true ...
设置fail2ban启动和开机启动
systemctl start fail2ban.service systemctl enable fail2ban.service
时间: 2024-10-28 23:56:03