> For the complete documentation index, see [llms.txt](https://wiki.iredteam.cn/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://wiki.iredteam.cn/prophase-interaction/c2-preparation/fishing/set-up.md).

# 搭建属于自己的个人邮件服务器 --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
* &#x20;磁盘： 40G

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

## 0x03准备工作

Nginx 反向配置,SSL 证书配置

### 域名解析配置

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

![](/files/-MUMdBgQ-OaJLuofa0Pc)

![](/files/-MUMdM2an8K5UmvTqwmH)

| 主机记录 | 记录类型  | 解析线路 | 记录值                                    |
| ---- | ----- | ---- | -------------------------------------- |
| 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

### **关闭防火墙**

```
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动

#firewall 关闭之后看一下iptables状态

service iptables status
systemctl disable iptables.service
service iptables stop
```

### **服务器开启端口**

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

```
firewall-cmd --zone=public --add-port=80/tcp --permanent
```

### **关闭 selinux**

```
vi /etc/sysconfig/selinux
SELINUX=enforcing 改为 SELINUX=disabled
```

![](/files/-MUMeNBlsKyex9o3n5Xp)

### 检查 swap

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

```
查看swap
free -m
```

![](/files/-MUMeamnj94v4tlzdjhQ)

### **创建 swap 分区（内存超过 2G，可不配置）**

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

```
dd if=/dev/zero of=/mnt/swap bs=1M count=1024  
```

设置交换分区文件

```
mkswap /mnt/swap
```

启动 swap

```
swapon /mnt/swap
```

设置开机时自启用 swap 分区

```
需要修改文件 /etc/fstab 中的 swap 行，添加
/mnt/swap swap swap defaults 0 0
```

![](/files/-MUMfWoCivQHwuqZhFkK)

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

### 邮箱域名

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

### 设置主机名（可不配置主机名）

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

将系统主机名改成 iredteam.cn

查看当前主机名

```
hostname -f
```

### **CentOS7 配置**

输入命令：

```
hostnamectl set-hostname mail.iredteam.cn
```

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

### 安装(方法一)

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

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

GitHub 项目地址 [https://github.com/gyxuehu/EwoMail](https://link.ld246.com/forward?goto=https%3A%2F%2Fgithub.com%2Fgyxuehu%2FEwoMail)

```
yum -y install git
cd /root
git clone https://github.com/gyxuehu/EwoMail.git
cd /root/EwoMail/install
#需要输入一个邮箱域名，不需要前缀，列如下面的ewomail.cn
sh ./start.sh ewomail.cn
```

### 安装 (方法二)

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

打开：[http://www.ewomail.com/list-11.html](https://link.ld246.com/forward?goto=http%3A%2F%2Fwww.ewomail.com%2Flist-11.html) 输入域名获取安装代码

```
wget -c http://download.ewomail.com:8282/ewomail-1.05.sh && sh ewomail-1.05.sh slera.cn
```

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

![](/files/-MUMgEtXCuer23FBz4Ky)

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

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

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

```
cat /ewomail/config.ini
```

#### 遇到的报错

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

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

#### 完整语句

```
sh ./start.sh xxx.com -f
```

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

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

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

```
vim /ewomail/nginx/conf/nginx.conf
```

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

![](/files/-MUMhSuk8I2iQ6To538k)

```
#创建conf.d文件夹
mkdir -p /ewomail/nginx/conf.d/

#进入conf.d路径下
cd /ewomail/nginx/conf.d/

#创建文件mail.conf
touch mail.conf

#编辑文件mail.conf
vim mail.conf
upstream mail{
   ip_hash;
   server 127.0.0.1:8000 max_fails=3 fail_timeout=600s;
server {
     listen 80;
     server_name slera.cn; #填写绑定证书的域名
     # 获取真实IP
     proxy_set_header X-Real-IP $remote_addr;
     proxy_set_header REMOTE-HOST $remote_addr;
     # 获取代理者的真实ip
     proxy_set_header X-Forwarded-For   $proxy_add_x_forwarded_for;
     proxy_http_version 1.1;
     #proxy_set_header Connection "";
     proxy_buffering off;
     proxy_redirect off;
     location / {
             proxy_pass http://mail;
     }
}

#下面是Https协议，需要申请SSL证书。[申请SSL证书](https://www.slera.cn/articles/2019/11/02/1572624076821.html)

#ssl_certificate和ssl_certificate_key分别是证书文件名称和私钥文件名称(很重要！！)
server {
        listen 443 ssl backlog=65535;
        #ssl on;
        server_tokens off;
        server_name slera.cn;
        #access_log /gs/nginx-logs/teach.access.log;
        #proxy_set_header Host $host:$server_port;
        proxy_set_header Host $host;
        # 获取真实IP
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header REMOTE-HOST $remote_addr;
        # 获取代理者的真实ip
        proxy_set_header X-Forwarded-For   $proxy_add_x_forwarded_for;
        proxy_http_version 1.1;
        #proxy_set_header Connection "";
        proxy_buffering off;
#        proxy_redirect off;
        ssl_certificate /ewomail/nginx/crt/slera.cn.pem;#证书文件名称
        ssl_certificate_key /ewomail/nginx/crt/slera.cn.key;#私钥文件名称
        ssl_session_timeout 5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #请按照这个协议配置
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#请按照这个套件配置
        ssl_prefer_server_ciphers on;
    location / {
             proxy_pass http://mail;
     }
}
```

## 0x05邮箱管理后台

### 登录界面

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

默认账号：admin密码：ewomail123

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

![](/files/-MUMhfTGhDtv1HWFHBDV)

### 邮箱域名管理

![](/files/-MUMht5uBm_XsfTnU8LH)

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

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

### 邮箱系统设置

![](/files/-MUMi3aJkuVfxh7edmqU)

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

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

### 邮箱用户管理

![](/files/-MUMiG1fHuTRrJHHqCuQ)

![](/files/-MUMiKJM2fsr8eCsY7uE)

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

### 无法连接服务器

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

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

* 25 端口是邮局通信的固定端口，不能更换成其他端口，465 端口只用登录（465 端口不是用于发送邮件，只用于登录，将邮件数据加密传送到本地服务器，最后本地服务器将会链接对方邮局的 25 端口，进行邮件发送，基本所有的邮局，都只用于 25 端口来接收邮件）
* 如果你的 25 端口出站方向被屏蔽了，那么你就不能发送邮件到外面的邮局。
* 但你可以使用 465 端口登录第三方服务器的邮局

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

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

```
yum install xinetd telnet telnet-server -y
telnet smtp.qq.com 25 
```

正常情况下：

![](/files/-MUMijYj_Xwy7XAwRReV)

出于安全考虑，阿里云、腾讯云默认封禁 TCP 25 端口出方向的访问流量，即你无法在阿里云上的云服务器通过 TCP 25 端口连接外部地址，需要去云服器商申请开通 25 访问 [详情](https://help.aliyun.com/knowledge_detail/56130.html)

## 0x06降低内存占用

```
#查看内存占比命令
free -m
```

命令执行

```
#安装vim
yum install vim -y
#修改文件（修改前请备份文件）
vim /etc/amavisd/amavisd.conf
输入 :set number 回车显示行号
输入 i 回车可以编辑修改
找到大概在383行左右，将图片以下的4行前面加上#符号
```

![](/files/-MUMjHGlrzq43CyBgs-t)

在文件尾部加上该行参数

~~`@bypass_virus_checks_maps= (1);`~~

最后按下 esc 键，输入：wq 保存

```
修改文件（参考上面的例子操作命令修改）
vim /usr/lib/systemd/system/amavisd.service
在 Wants=clamd@amavisd.service 前面加上#符号
保存文件
```

修改后

![](/files/-MUMk1XAexCx1KTTwfK2)

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

```
systemctl daemon-reload
systemctl stop clamd@amavisd
systemctl disable clamd@amavisd
systemctl restart amavisd
```

## 0x07数据备份与还原

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

> 数据备份

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

备份目录/ewomail/mail

> 数据还原

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

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

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

&#x20;执行下面的命令

```
chown -R vmail:vmail /ewomail/mail
systemctl restart dovecot
```

### apache/nginx

1.05 版本开始

> nginx

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

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

配置目录：/ewomail/nginx

启动命令：

```
service nginx start
```

php-fpm 启动命令：

```
service php-fpm start
```

> apache

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

配置目录：/ewomail/apache

启动命令：

```
service httpd start
```

### 数据管理

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

登录后 ewomail 为邮箱的数据库

![](/files/-MUMkFQnd3Zs4RdkR4TW)

#### **数据库表说明：**

| 表                 | 说明     |
| ----------------- | ------ |
| i\_admin          | 是否管理员  |
| i\_admin\_log     | 操作日志   |
| i\_admin\_menu    | 角色表    |
| i\_domains        | 邮箱域名   |
| i\_mail\_config   | 邮箱系统配置 |
| i\_quota          | 邮箱账号   |
| i\_system\_config | 系统配置   |
| i\_users          | 邮箱账号密码 |

### 忘记密码

管理员默认账号：admin

&#x20;默认密码：ewomail123

> 忘记管理员

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

查看数据库密码

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

![](/files/-MUMkUTxArK7r4O53HE_)

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

打开 ewomail 数据库，找到 i\_admin 表，password 栏目为密码，使用 [MD5 解密工具](https://link.ld246.com/forward?goto=https%3A%2F%2Fwww.somd5.com%2F)解密可查看密码，然后使用账号和密码登录即可。

![](/files/-MUMkgLxP2p3hCO5W8nZ)

![](/files/-MUMkjoVbCwCL_JZwOpi)

## 0x08重装与卸载

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

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

## 更多配置请查看官方文档：

[http://doc.ewomail.com](https://link.ld246.com/forward?goto=http%3A%2F%2Fdoc.ewomail.com)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://wiki.iredteam.cn/prophase-interaction/c2-preparation/fishing/set-up.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
