ubuntu22.04下搭建iRedMail邮件服务器

老友@ 2024-08-11 15:07:03 阅读 55

文章目录

前言一、iredmail介绍?1. iredmail是什么?2. iRedMail 的主要特点3. 总结

二、安装环境1. linux系统环境2. 域名申请3. 环境配置

iRedMail安装与配置1. 下载iRedMail安装包2. iRedMail安装

四、其他配置(可选)1. iRedMail调整邮件附件大小2. 修改邮箱服务器的SSL证书(nginx、postfix、dovecot)3. Java邮件客户端验证目标服务器的SSL证书4. 更新病毒数据库5. amavis启动失败,缺少'.pre' 文件,v320.pre6.配置netdata汉化补丁7. 配置组件日志8. 关闭全局灰名单9. 对外发邮件禁用垃圾扫描、病毒扫描10. DKIM 解析记录11. 关闭postscreen 拦截器12. 允许不带 STARTTLS 的不安全 POP3/IMAP/SMTP 连接12. 修改Cron定时任务的接收邮箱

五、报错问题一:


前言

例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。


一、iredmail介绍?

1. iredmail是什么?

iRedMail是一个开源、免费的邮件服务器项目,基于GPL(v2)协议发布。官网 www.iredmail.org (国内不能访问),可以通过www.iredmail.com访问。

iRedMail 是一个强大且开源的电子邮件服务器套件,它简化了在 Linux 和 BSD 系统上部署和管理电子邮件服务器的过程。

iRedMail 集成了多个开源软件和服务,提供了一整套完整的电子邮件服务器解决方案,包括以下主要组件:

Postfix

功能:作为 SMTP 服务器,负责电子邮件的发送和接收。作用:处理邮件传输、路由和投递,确保邮件能够正确发送和接收。

Dovecot

功能:作为 POP3/IMAP/Managesieve 服务器,负责邮件存储和用户访问。作用:允许用户通过邮件客户端(如 Outlook、Thunderbird)或 Web 邮箱(如 Roundcube)访问和管理邮件,支持管理 Sieve 过滤规则。

Apache

功能:作为 Web 服务器,提供 HTTP/HTTPS 服务。作用:支持 iRedAdmin 和 Roundcube 等基于 Web 的应用,处理用户的 Web 请求。

数据库

选项:可以选择 OpenLDAP、MySQL/MariaDB、PostgreSQL 作为用户和邮件账户的存储后台。功能:用于存储其他程序的数据,也可用于存储邮件帐号。作用:管理用户账户信息、配置数据和其他应用程序数据。

OpenLDAP

功能:用于存储邮件帐号。作用:提供集中化的用户认证和账户管理服务。

Policyd

功能:作为 Postfix policy server,提供策略控制。作用:实现限速、灰名单等策略,增强 Postfix 的功能。

Amavisd

功能:集成 DKIM 签名及校验、SPF 校验、垃圾邮件和病毒扫描。作用:调用 SpamAssassin 进行垃圾邮件扫描,调用 ClamAV 进行病毒扫描,并为外发邮件添加免责声明内容。

SpamAssassin

功能:基于内容的垃圾邮件过滤。作用:检测并过滤垃圾邮件,提高邮件服务器的安全性和可靠性。

ClamAV

功能:开源的防病毒引擎。作用:扫描和检测电子邮件中的病毒和恶意软件,保护邮件服务器免受病毒攻击。

Roundcube

功能:提供基于 Web 的邮箱客户端。作用:用户可以通过 Web 浏览器访问和管理电子邮件,支持丰富的插件和扩展。

Awstats

功能:分析 Apache 和 Postfix 日志文件,并生成图表。作用:提供详细的访问和使用统计报告,帮助管理员监控和分析邮件服务器的运行状况。

Fail2ban

功能:扫描日志文件,发现多次密码错误等情况时自动封禁对方 IP。作用:防止暴力破解攻击,提高服务器的安全性。

iRedAdmin

功能:基于 Web 的邮件账户管理程序。作用:管理员可以通过 Web 界面管理用户、域名、邮件列表和服务器配置,简化管理流程。

SOGo

功能:提供基于 Web 的邮件、日历和联系人管理。作用:用户可以通过 Web 界面访问电子邮件、管理日历和联系人,支持同步功能。

Sieve

功能:邮件过滤脚本语言。作用:用户可以创建自定义的邮件过滤规则,自动处理和分类邮件。

Netdata

功能:实时性能监控和分析。作用:监控服务器性能,提供详细的系统和服务的实时统计数据,帮助管理员快速诊断和解决问题。

2. iRedMail 的主要特点

开源和免费:iRedMail 是完全开源的,用户可以自由下载、使用和修改。

易于安装和配置:提供自动化安装脚本,简化了安装过程。

安全性:集成了多种安全机制,如 SSL/TLS 加密、垃圾邮件和病毒过滤等。

基于 Web 的管理界面:通过 iRedAdmin 提供方便的 Web 管理界面,用于管理用户、域名和邮件列表等。

多平台支持:支持多种 Linux 发行版(如 Ubuntu、CentOS、Debian)和 FreeBSD。

3. 总结

iRedMail 是一个功能强大、易于使用的开源邮件服务器解决方案。

通过集成多种开源软件和服务,iRedMail 提供了一个完整的电子邮件服务器平台,适合中小型企业和个人用户使用。

安装和配置简单,管理和维护方便,是搭建电子邮件服务器的理想选择。

二、安装环境

1. linux系统环境

<code>注意:最新的iredmail已经不支持centos6、7等操作系统环境,需要查询所安装的版本支持哪些环境,否则执行安装脚本时会报错

Release version of the operating system on this server is unsupported by iRedMail, please access below link to get the latest iRedMail and a list of supported Linux/BSD distributions and release versions.

在这里插入图片描述

当前最新iredmail-1.6.8 所支持的版本

在这里插入图片描述

2. 域名申请

需要申请独立的域名(可以采用本地映射的发送测试,但是只能发生邮件,不能接收邮件)

3. 环境配置

设置ubuntu系统的主机名,修改/etc/hosts文件,具体修改如下所示:

<code>sudo vim /etc/hosts

修改主机名

图1. 修改主机名

修改/etc/hostname文件,具体内容如下所示。

在这里插入图片描述

图2. 修改/etc/hostname文件

终端输入reboot命令,重启ubuntu系统。

<code>reboot

iRedMail安装与配置

1. 下载iRedMail安装包

获取方式一: iredmail-1.6.8.tar.gz 下载地址:

https://codeload.github.com/iredmail/iRedMail/tar.gz/refs/tags/1.6.8

获取方式二:

在这里插入图片描述

图3. iRedMail安装包

获取方式三:wget http://www.iredmail.com/iRedMail-1.6.8.tar.bz2

(当前最新版本为1.6.8,以后会变,请到http://www.iredmail.com/download.html 下载最新版本)

2. iRedMail安装

解压iRedMail-1.6.8.tar.gz

<code>tar -zxvf iRedMail-1.6.8.tar.gz

执行iRedMail.sh脚本

在这里插入图片描述

图4. iRedMail.sh

进入iRedMail的解压目录,给安装脚本iRedMail.sh文件添加可执行文件

<code>chmod +x iRedMail.sh

运行安装脚本iRedMail脚本,进行iRedMail软件的安装并进行iRedMail的软件配置

bash iRedMail.sh

如果需要指定数据库地址可以使用

USE_EXISTING_MYSQL='YES' \code>

MYSQL_SERVER_ADDRESS='192.168.2.156' \code>

MYSQL_SERVER_PORT='3306' \code>

MYSQL_ROOT_USER='root' \code>

MYSQL_ROOT_PASSWD='root' \code>

MYSQL_GRANT_HOST='192.168.80.135' \code>

INITIALIZE_SQL_DATA='NO' \code>

bash iRedMail.sh

它将像往常一样启动iRedMail安装向导。

在上面的命令行中使用的参数:

USE_EXISTING_MYSQL:远程MySQL服务器地址。

MYSQL_SERVER_ADDRESS:远程MySQL服务器地址。

MYSQL_SERVER_PORT:远程MySQL服务器端口。默认值为 。3306

MYSQL_ROOT_USER:在安装iRedMail之前,我们在远程MySQL服务器上创建的MySQL用户名。

MYSQL_ROOT_PASSWD:我们在安装iRedMail之前在远程MySQL服务器上创建的MySQL密码。

MYSQL_GRANT_HOST:iRedMail服务器的主机名或IP地址。

iRedMail 将为 Postfix、Amavisd、 Roundcube 网络邮件等,并授予它们适当的权限,这些权限将连接 从 iRedMail 服务器。

另一个可选参数是 。如果你不想 iRedMail安装程序初始化任何sql记录,请设置。

这样 iRedMail 安装程序只需配置 相关配置文件以使用远程MySQL服务器。

INITIALIZE_SQL_DATA=NO

在这里插入图片描述

下载完misc中的依赖包后,开始进行软件配置

在这里插入图片描述

图5. 需要下载的依赖包

详细流程如下图所示:

在这里插入图片描述

图6. 确定安装iRedMail

在这里插入图片描述

图7. 选择默认邮件存储路径(注意:要确保/目录挂在路径的存储容量够用)

在这里插入图片描述

图8.选择Nginx作为web服务器

在这里插入图片描述

图9.选择MariaDB作为数据库

在这里插入图片描述

图10.设置数据库密码

在这里插入图片描述

图11 设置第一个域名(cx.com)

在这里插入图片描述

图12 设置第一个域名管理员(postmaster@cx.com)的密码

在这里插入图片描述

图13 选择默认的插件

核对安装的配置信息,都选择y进行软件的安装过程,持续时间大约10分钟左右

<code>注意:确保外网连接,需要自动下载插件和库 如果速度较慢可以更换下载源 为huaweicloud 进行下载

在这里插入图片描述

图14 更换ubuntu的下载源

在这里插入图片描述

图15 iRedMail安装完成

重启ubuntu系统,获得ubuntu的ip地址(ifconfig命令),由于ubuntu虚拟机采用NAT网络连接,因此获得IP地址为:192.168.80.133。如下所示:

在这里插入图片描述

图16 获得ubuntu系统的ip地址

iRedMail的访问地址有3类,分别是普通邮件用户登录地址,邮件服务器状态地址和管理员地址,分别如下所示:

https://你的域名/mail ——邮件登录地址

https://你的域名/netdata ——服务器状态监控

https://你的域名/iredadmin ——邮件服务器后台管理

以上ubuntu系统的ip地址为192.168.80.133,因此以上3类网页地址分别为:

https://192.168.80.133/mail ——邮件登录地址

https://192.168.80.133/netdata ——服务器状态监控

https://192.168.80.1335/iredadmin ——邮件服务器后台管理

在浏览器上分别输入以上3类地址,访问结果如下所示:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

四、其他配置(可选)

1. iRedMail调整邮件附件大小

iRedMail软件默认的邮件附件大小为10MByte

修改/etc/php/8.1/fpm/php.ini文件(8.1版本不一定相同),主要修改upload_max_filesize和post_max_size这两个参数,需要注意post_max_size需要大于等于upload_max_filesize。具体修改如下所示:

在这里插入图片描述

图 修改upload_max_filesize参数

在这里插入图片描述

图 修改post_max_size参数

修改/etc/postfix/main.cf文件的message_size_limit参数,如下所示:

在这里插入图片描述

图 修改message_size_limit参数

修改/opt/www/roundcubemail/config/config.inc.php文件中的max_message_size参数,如下所示:

在这里插入图片描述

图 修改最大消息的大小

修改完成后,重启ubuntu系统,通过网页进入邮件登录帐号,进入撰写新邮件界面,可以看到附件大小已经修改为100MB了。

2. 修改邮箱服务器的SSL证书(nginx、postfix、dovecot)

配置 Nginx

在这里插入图片描述

配置后重启nginx服务

配置 postfix

编辑 <code> /etc/postfix/main.cf 文件以使用 SSL 证书。

添加或修改以下行:

在这里插入图片描述

重启 Postfix

<code>systemctl restart postfix

配置 dovecot

编辑 /etc/dovecot/dovecot.conf文件以使用 SSL 证书。

在这里插入图片描述

重启 Dovecot

<code>systemctl restart dovecot

3. Java邮件客户端验证目标服务器的SSL证书

导入目标服务器的证书到Java信任库

可以将目标服务器的证书导入到Java的信任库中。步骤如下:

获取目标服务器的证书

使用以下命令来获取目标服务器的证书并保存到一个文件中(例如,server.crt):

echo | openssl s_client -connect mail.cx.com:993 | openssl x509 > server.crt

将证书导入到Java信任库

假设你的jdk安装在/path/to/java,可以使用keytool命令将证书导入到Java的信任库中:

keytool -import -alias mail -keystore /opt/env/jdk11/lib/security/cacerts -file /opt/iredMail/ssl/iRedMail.crt

系统会提示输入信任库的密码,默认密码是changeit。

4. 更新病毒数据库

更新 ClamAV 的病毒数据库文件。使用 freshclam 命令更新数据库:

sudo pkill -f freshclam

sudo freshclam

检查病毒数据库路径: 确保 ClamAV 配置文件中指定的病毒数据库路径是正确的。编辑 /etc/clamav/freshclam.conf 和 /etc/clamav/clamd.conf 配置文件,确认病毒数据库路径。

sudo vim /etc/clamav/freshclam.conf

sudo vim /etc/clamav/clamd.conf

在文件中,确保如下配置项:

DatabaseDirectory /var/lib/clamav

重新启动 ClamAV 服务

sudo systemctl start clamav-daemon

sudo systemctl status clamav-daemon

如果更新不了,或者更新特别慢,可以手动下载病毒库文件,放到/var/lib/clamav/文件下,在更新病毒库。

病毒库文件链接(三个文件):

bytecode.cvd:http://db.local.clamav.net/bytecode.cvd

daily.cvd:http://db.local.clamav.net/daily.cvd

main.cvd:http://db.local.clamav.net/main.cvd

5. amavis启动失败,缺少’.pre’ 文件,v320.pre

去SpamAssassin官网,下载对应版本的完整压缩包

https://spamassassin.apache.org/downloads.html

获取/Mail-SpamAssassin-3.4.6/rules/v320.pre 文件

将其放置到/etc/spamassassin/ 文件夹下

sudo systemctl restart spamassassin

sudo systemctl restart amavis

6.配置netdata汉化补丁

1.先备份或者重命名下面四个文件

dashboard_info.js dashboard.js main.js index.html

下载地址:https://github.com/DX-Kevin/Netdata-chinese-patch

下载本项目四个文件到 /opt/netdata/usr/share/netdata/web/ 目录

dashboard_info.js dashboard.js main.js index.html

修改四个文件的权限为:netdata:netdata

chown -R netdata:netdata /usr/share/netdata/web/

4.在系统防火墙添加默认端口:19999到例外

Ubuntu命令:

sudo ufw allow 19999

7. 配置组件日志

打开 dovecot.conf 文件

vim /etc/dovecot/dovecot.conf

单独配置日志 (需要将dovecot目录的权限设置为777 否则其他组件可能无法写入记录)

在这里插入图片描述

2. 打开 /etc/clamav/clamd.conf 文件

<code>vim /etc/clamav/clamd.conf

单独配置日志

在这里插入图片描述

3. 打开/etc/clamav/freshclam.conf文件

<code>vim /etc/clamav/freshclam.conf

在这里插入图片描述

打开 /etc/netdata/netdata.conf文件

<code>vim /etc/netdata/netdata.conf

单独配置日志

在这里插入图片描述

8. 关闭全局灰名单

编辑 /opt/iredapd/settings.py 配置文件,将其中 plugins 默认启用的 greylisting 模块给删除,如

<code>plugins = ['reject_null_sender', 'amavisd_wblist', 'throttle', 'reject_sender_login_mismatch']

在这里插入图片描述

9. 对外发邮件禁用垃圾扫描、病毒扫描

要对外发邮件禁用垃圾扫描、病毒扫描功能,可以在 Amavisd 配置文件 /etc/amavisd/amavisd.conf

(RHEL/CentOS) 或 /etc/amavis/conf.d/50-user (Debian/Ubuntu) 或

/usr/local/etc/amavisd.conf (FreeBSD) 中增加 bypass 设置。

这些设置可以添加到 $policy_bank{‘ORIGINATING’} 配置里。例如:

在这里插入图片描述

或者

Amavisd 对本地外发的邮件不做邮件内容过滤和病毒扫描

在这里插入图片描述

更改设置后需要重启 Amavisd 服务以使更改生效

<code>sudo systemctl restart amavis

10. DKIM 解析记录

查看本地值(就像是申请ssl证书使用的csr一样)

amavisd-new showkeys (部分其他OS 可能会使用 amavisd 代替 amavisd-new)

如果提示 /etc/amavisd.conf not found 那就带上你的绝对路径:amavisd-new -c /etc/amavisd/amavisd.conf showkeys

输出内容:

在这里插入图片描述

我们只需把换行内容和 “” 和最上面的提示删掉就好了

<code>在DNS服务提供商添加一条TXT记录,解析值为除去引号和空格再相连后的DKIM数据:

v=DKIM1; p=MIIBIjANBgk……………………………………1QIDAQAB

本地检查

amavisd-new testkeys

如果输出内容如下(提示 pass)则设置成功!

在这里插入图片描述

可以通过测试网址,测试你的邮箱发出的邮件评分。

https://www.mail-tester.com/https://smtpserver.com/cn/mail-tester

11. 关闭postscreen 拦截器

Postfix的postscreen 又名垃圾邮件等拦截器

因国内的邮件过多的发送垃圾邮件,所以国内的好多都发不了

vi /etc/postfix/master.cf

找到大约12行后把

smtp inet n - - - 1 postscreen

修改为

smtp inet n - - - - smtpd

在这里插入图片描述

12. 允许不带 STARTTLS 的不安全 POP3/IMAP/SMTP 连接

使用默认的 iRedMail 设置时,所有客户端都强制使用 POP3/IMAP/SMTP 通过 STARTTLS 的服务实现安全连接。如果您的邮件客户端 尝试在没有 TLS 支持的情况下通过协议 POP3/IMAP 访问邮箱

允许不安全的 POP3/IMAP 连接

如果出于某种原因想要启用不带 STARTTLS 的 POP3/IMAP 服务 (同样,不推荐),请在 Dovecot 配置中更新以下两个参数 文件并重新启动 Dovecot 服务:/etc/dovecot/dovecot.conf

<code>disable_plaintext_auth=no

ssl=yes

同样,强烈建议仅使用 POP3S/IMAPS 以获得更好的安全性。

iRedMail 配置的默认设置和推荐设置为:

disable_plaintext_auth=yes

ssl=required

允许端口 25 上不安全的 SMTP 连接

请在 Postfix 配置文件中注释掉下面的行,然后重新加载或重新启动 Postfix 服务:/etc/postfix/main.cf

smtpd_sasl_auth_enable = yes

smtpd_sasl_security_options = noanonymous

# force all clients to use secure connection through port 25

# smtpd_tls_auth_only=yes

12. 修改Cron定时任务的接收邮箱

修改 /etc/crontab文件

vim /etc/crontab

增加这一行MAILTO

在这里插入图片描述

重启 cron 生效

<code>sudo systemctl restart cron

五、报错

问题一:

ubuntu apt 安装报错:Media change: please insert the disc labeled ‘Ubuntu 22.04.4 LTS Focal Fossa - Release amd64 (20220831)’ in the drive ‘/cdrom/’ and press [Enter]

原因:

如果你在 Ubuntu 上使用 apt 安装软件包时遇到 “Media change: please insert the disc labeled …” 的错误消息,这通常是因为 apt 源列表中包含 CD/DVD 源,但你的系统中没有插入相应的安装介质(CD 或 DVD)。

解决方案:

检查 /etc/apt/sources.list文件中,是否出现 CD/DVD 源。

类似 deb cdrom:[Ubuntu 22.04.4 LTS Focal Fossa - Release amd64 (20220831)]/ focal main restricted 的行,则表示你的 apt 源列表中包含 CD/DVD 源。

编辑 /etc/apt/sources.list 文件,使用 # 注释 CD/DVD 源所在行,然后保存文件。

更新 apt 缓存,并清除旧的源信息:

sudo apt-get update

sudo apt-get clean



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。