搭建属于自己的个人邮件服务器 --EwoMai

0x01至于搭建个人邮件的原因?

哈哈,原因很简单,作为一个单身许久的程序员实在是无聊。一次偶然的机会接触到了公司搭建的个人邮件服务器。趁着周末时间看了一下网上开源的邮件服务器iredmail、extmail、emos、umail 等;都各有个的优点,论安全性的话我觉得 extmail 邮箱服务器很好,至于我为什么不选择 extmail 因为我尝试了一下,这个是基于 PHP 写的,配置起来太痛苦了,于是小编找遍网上各种开源的 Email 服务器,于是选择了 EwoMai . 原因是界面还不错,还可以切换主题,至于安全性的嘛开源版本的没有绝对的安全,这就点忽略了。

0x02EwoMail 简介

EwoMail 是基于 Linux 的开源邮件服务器软件,集成了众多优秀稳定的组件,是一个快速部署、简单高效、多语言、安全稳定的邮件解决方案,帮助你提升运维效率,降低 IT 成本,兼容主流的邮件客户端,同时支持电脑和手机邮件客户端。

安全与稳定:

集成知名的开源反垃圾和防病毒组件,为你的邮件保驾护航,服务器定时更新病毒库,无需管理。支持基于 TLS/SSL(POP3/IMAP/SMTP)邮件传输加密,支持服务器与邮件账号的密码破解防御。数据安全,可以根据需求在你的服务器定时备份数据(包括邮件数据)

集成组件

  • Postfix:邮件服务器

  • Dovecot:IMAP/POP3/邮件存储

  • Amavisd:反垃圾和反病毒 (低配置服务器建议关闭)

  • Fail2ban:监控策略

  • LNAMP:apache2.2,nginx1.8, mysql5.5,php5.4

  • EwoMail-Admin:Web 邮箱管理后台

  • Rainloop:webmail

0x03安装环境

服务器需要干净环境,要求全新干净系统,不能安装在已有的 apache,mysql 的环境中。在上面吃过亏数据库给搞坏了,恢复数据大半天放弃了。

配 置:

  1. 云服务器(CentOS 6/7 系统)

  2. 域名(国内需要备案)

最低配置:

  • CPU:1 核

  • 内存:1G

  • 磁盘: 40G

由于新版本的杀毒软件占用的内存比较多,512M 到 2GB 内存请参考降低内存占用

0x03准备工作

Nginx 反向配置,SSL 证书配置

域名解析配置

首先进入到各大服务商的域名控制台,点击解析按钮,配置以下参数;

主机记录

记录类型

解析线路

记录值

mail

A

默认

服务器 IP

@

A

默认

服务器 IP

pop3

CNAME

默认

mail.slera.cn

pop

CNAME

默认

mail.slera.cn

imap

CNAME

默认

mail.slera.cn

smtp

CNAME

默认

mail.slera.cn

@

TXT

默认

v=spf1 include:118.24.188.192 -all

@

MX

默认

mail.slera.cn

删除线部分需要改成服务器的 ip 地址,_dnsauth 这两个是申请 ssl 证书的时候解析的地址,在 SSL 证书申请完成后会自动添加不需要手动添加。pop3,pop,imap 是邮局的协议目前流行的是 imap 协议,其他两个可以不用配置。

至此,域名解析就配置完成,可以进行准备安装了!!

0x04EwoMail 安装

CentOS 6/7 防火墙

安装成功后,系统会开放以下的端口 ,CentOS 系统是默认开启防火墙的,可关闭

默认开放的端口

端口都是 TCP 类型

8000,8010,443,8020,25,143,993,995,587,110,109,22,80,465

如果是使用的是云服务器,可能需要在控制面板的防火墙开放以上端口

必须打开的端口 8000,8010,25,143

关闭防火墙

服务器开启端口

如果不关闭防火墙可以将端口添加为白名单

关闭 selinux

检查 swap

如果没启动 swap,这会导致 EwoMail 的防病毒组件不能启动,所以在安装前先检查 swap 是否已经启动,如已启动可跳过该步骤。

创建 swap 分区(内存超过 2G,可不配置)

创建 1G 的 swap,可以根据你的服务器配置来调整大小

设置交换分区文件

启动 swap

设置开机时自启用 swap 分区

个人觉得这地方最好重启一下,可能会因为/etc/fstab 挂载错误导致系统不能启动

邮箱域名

EwoMail 本身是可以配置多个域名来收发邮件的,但在安装前需要一个邮箱的主域名。本次教程例子使用的主域名是 iredteam.cn

设置主机名(可不配置主机名)

EwoMail 在安装后会默认使用域名前缀 mail 的主机名,例如: mail.iredteam.cn

将系统主机名改成 iredteam.cn

查看当前主机名

CentOS7 配置

输入命令:

修改文件 /etc/hosts , 添加 mail.iredteam.cn,添加 hosts 可以加快域名解析(也可以不配置)

安装(方法一)

虽然官方建议使用此方法安装,但是个人不建议使用 Git 方式安装,个人推荐下面方法二通过一个链接就可以安装完成,因为我尝试了 N 次虽然显示安装成功了,

但是实际并没有,还有个原因版本库是在 GitHub 上面,国外的网站访问速度有限制。

GitHub 项目地址 https://github.com/gyxuehu/EwoMail

安装 (方法二)

安装前请服务器必须已链接网络,安装时间将会根据你的系统配置和网络环境大概会在 10 分钟内安装完成。(需要 root 权限)

打开:http://www.ewomail.com/list-11.html 输入域名获取安装代码

复制上面代码注意修改域名,执行安装命令后全程会自动安装(需要 root 权限);

安装过程中可能会显示 shutting down postfix : FAILED,如果它的下面再出现一条 starting postfix : OK ,那就是正常的。

安装成功后将会输出”Complete installation”。

查看安装的域名和数据库密码

遇到的报错

部分 CentOS 版本可能会在安装时不兼容的情况,会出现 ewomail-lamp install failed

在 sh ./start.sh xxx.com 安装域名后面加-f

完整语句

注意:使用该命令安装,必须要求你的系统是全新干净的系统,而且系统没有安装 apache,mysql,nginx 这些组件,否则千万别执行该命令安装。

启用 Nginx 代理 (Http 协议 + Https 协议)

https 协议需要申请 SSL 证书,阿里云、腾讯云等都可以免费申请

http 下加入 include /ewomail/nginx/conf.d/*.conf;

0x05邮箱管理后台

登录界面

在浏览器输入你的邮箱管理后台地址,例如:http://IP:8010

默认账号:admin密码:ewomail123

首次登陆后请尽快改密码。http://服务器 IP:8010/Admin/user

邮箱域名管理

系统安装后会自动把邮箱主域名添加,手动在后台添加的域名基本是副域名。

添加域名后需要设置副域名的 DNS 才能正常收发邮件。

邮箱系统设置

系统安装后会自动添加配置信息,在更改主域名后才需要更改邮箱配置信息,一般情况下不建议修改。

imap 和 smtp 是客户端的配置信息。

邮箱用户管理

接下来就可以通过 http://服务器 IP:8010 进行登录了。

无法连接服务器

1、安装过程检查是否有报错

2、检查运营商是否开放 25 端口出站方向

  • 25 端口是邮局通信的固定端口,不能更换成其他端口,465 端口只用登录(465 端口不是用于发送邮件,只用于登录,将邮件数据加密传送到本地服务器,最后本地服务器将会链接对方邮局的 25 端口,进行邮件发送,基本所有的邮局,都只用于 25 端口来接收邮件)

  • 如果你的 25 端口出站方向被屏蔽了,那么你就不能发送邮件到外面的邮局。

  • 但你可以使用 465 端口登录第三方服务器的邮局

首先在服务器执行以下命令测试你的端口是否正常,注意(是在你搭建邮局的服务器执行)

以下命令不需修改,复制执行即可

正常情况下:

出于安全考虑,阿里云、腾讯云默认封禁 TCP 25 端口出方向的访问流量,即你无法在阿里云上的云服务器通过 TCP 25 端口连接外部地址,需要去云服器商申请开通 25 访问 详情

0x06降低内存占用

命令执行

在文件尾部加上该行参数

@bypass_virus_checks_maps= (1);

最后按下 esc 键,输入:wq 保存

修改后

输入以下命令即可完成杀毒软件的关闭

0x07数据备份与还原

EwoMail 主要目录在/ewomail,相关的数据与文件都存放在该目录。

数据备份

备份 ewomail 数据库,相关数据库备份操作可百度 MySQL 数据库操作

备份目录/ewomail/mail

数据还原

无论你在原有 EwoMail 或新安装的 EwoMail,都可以还原。

将备份的数据库覆盖 MySQL 的 ewomail 数据库

将备份的目录/ewomail/mail,覆盖回去。

执行下面的命令

apache/nginx

1.05 版本开始

nginx

默认绑定 80 端口,需手动启动。

可以利用 nginx 配置 php-fpm 或 apache,php-fpm 默认端口 9000,需手动启动。

配置目录:/ewomail/nginx

启动命令:

php-fpm 启动命令:

apache

取消 apache 的 80 端口,管理邮箱后台与 webmail 保留原来的端口。

配置目录:/ewomail/apache

启动命令:

数据管理

为了安全,可以关闭或更换端口

登录后 ewomail 为邮箱的数据库

数据库表说明:

说明

i_admin

是否管理员

i_admin_log

操作日志

i_admin_menu

角色表

i_domains

邮箱域名

i_mail_config

邮箱系统配置

i_quota

邮箱账号

i_system_config

系统配置

i_users

邮箱账号密码

忘记密码

管理员默认账号:admin

默认密码:ewomail123

忘记管理员

如果忘记管理员密码,需要进入数据库修改。

查看数据库密码

进入服务器执行命令:cat /ewomail/config.ini 红色部分为 MySQL root 的密码

http://服务器 IP:8020 phpmyadmin 页面

打开 ewomail 数据库,找到 i_admin 表,password 栏目为密码,使用 MD5 解密工具解密可查看密码,然后使用账号和密码登录即可。

0x08重装与卸载

1、重装需要重新安装系统,然后按照教程来安装。

2、卸载,因为依赖的组件比较多,所以卸载后再安装会有相关冲突,所以不能再次重装。

更多配置请查看官方文档:

http://doc.ewomail.com

最后更新于

这有帮助吗?