搭建属于自己的个人邮件服务器 --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 的环境中。在上面吃过亏数据库给搞坏了,恢复数据大半天放弃了。
配 置:
云服务器(CentOS 6/7 系统)
域名(国内需要备案)
最低配置:
CPU:1 核
内存:1G
磁盘: 40G
由于新版本的杀毒软件占用的内存比较多,512M 到 2GB 内存请参考降低内存占用
0x03准备工作
Nginx 反向配置,SSL 证书配置
域名解析配置
首先进入到各大服务商的域名控制台,点击解析按钮,配置以下参数;
主机记录 | 记录类型 | 解析线路 | 记录值 |
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: |
@ | 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、卸载,因为依赖的组件比较多,所以卸载后再安装会有相关冲突,所以不能再次重装。
更多配置请查看官方文档:
最后更新于