当前位置:   article > 正文

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

iredmail


前言

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


一、iredmail介绍?

1. iredmail是什么?

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

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

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

  1. Postfix
  • 功能:作为 SMTP 服务器,负责电子邮件的发送和接收。
  • 作用:处理邮件传输、路由和投递,确保邮件能够正确发送和接收。
  1. Dovecot
  • 功能:作为 POP3/IMAP/Managesieve 服务器,负责邮件存储和用户访问。
  • 作用:允许用户通过邮件客户端(如 Outlook、Thunderbird)或 Web 邮箱(如 Roundcube)访问和管理邮件,支持管理 Sieve 过滤规则。
  1. Apache
  • 功能:作为 Web 服务器,提供 HTTP/HTTPS 服务。
  • 作用:支持 iRedAdmin 和 Roundcube 等基于 Web 的应用,处理用户的 Web 请求。
  1. 数据库
  • 选项:可以选择 OpenLDAP、MySQL/MariaDB、PostgreSQL 作为用户和邮件账户的存储后台。
  • 功能:用于存储其他程序的数据,也可用于存储邮件帐号。
  • 作用:管理用户账户信息、配置数据和其他应用程序数据。
  1. OpenLDAP
  • 功能:用于存储邮件帐号。
  • 作用:提供集中化的用户认证和账户管理服务。
  1. Policyd
  • 功能:作为 Postfix policy server,提供策略控制。
  • 作用:实现限速、灰名单等策略,增强 Postfix 的功能。
  1. Amavisd
  • 功能:集成 DKIM 签名及校验、SPF 校验、垃圾邮件和病毒扫描。
  • 作用:调用 SpamAssassin 进行垃圾邮件扫描,调用 ClamAV 进行病毒扫描,并为外发邮件添加免责声明内容。
  1. SpamAssassin
  • 功能:基于内容的垃圾邮件过滤。
  • 作用:检测并过滤垃圾邮件,提高邮件服务器的安全性和可靠性。
  1. ClamAV
  • 功能:开源的防病毒引擎。
  • 作用:扫描和检测电子邮件中的病毒和恶意软件,保护邮件服务器免受病毒攻击。
  1. Roundcube
  • 功能:提供基于 Web 的邮箱客户端。
  • 作用:用户可以通过 Web 浏览器访问和管理电子邮件,支持丰富的插件和扩展。
  1. Awstats
  • 功能:分析 Apache 和 Postfix 日志文件,并生成图表。
  • 作用:提供详细的访问和使用统计报告,帮助管理员监控和分析邮件服务器的运行状况。
  1. Fail2ban
  • 功能:扫描日志文件,发现多次密码错误等情况时自动封禁对方 IP。
  • 作用:防止暴力破解攻击,提高服务器的安全性。
  1. iRedAdmin
  • 功能:基于 Web 的邮件账户管理程序。
  • 作用:管理员可以通过 Web 界面管理用户、域名、邮件列表和服务器配置,简化管理流程。
  1. SOGo
  • 功能:提供基于 Web 的邮件、日历和联系人管理。
  • 作用:用户可以通过 Web 界面访问电子邮件、管理日历和联系人,支持同步功能。
  1. Sieve
  • 功能:邮件过滤脚本语言。
  • 作用:用户可以创建自定义的邮件过滤规则,自动处理和分类邮件。
  1. Netdata
  • 功能:实时性能监控和分析。
  • 作用:监控服务器性能,提供详细的系统和服务的实时统计数据,帮助管理员快速诊断和解决问题。

2. iRedMail 的主要特点

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

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

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

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

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

3. 总结

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

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

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

二、安装环境

1. linux系统环境

注意:最新的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.
  • 1

在这里插入图片描述

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

在这里插入图片描述

2. 域名申请

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

3. 环境配置

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

    sudo vim /etc/hosts
    
    • 1

    修改主机名

    图1. 修改主机名
  2. 修改/etc/hostname文件,具体内容如下所示。
    在这里插入图片描述

    图2. 修改/etc/hostname文件

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

    reboot
    
    • 1

iRedMail安装与配置

1. 下载iRedMail安装包

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

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

  2. 获取方式二:
    在这里插入图片描述

图3. iRedMail安装包
  1. 获取方式三:wget http://www.iredmail.com/iRedMail-1.6.8.tar.bz2
    (当前最新版本为1.6.8,以后会变,请到http://www.iredmail.com/download.html 下载最新版本)

2. iRedMail安装

  1. 解压iRedMail-1.6.8.tar.gz

    tar -zxvf iRedMail-1.6.8.tar.gz
    
    • 1
  2. 执行iRedMail.sh脚本
    在这里插入图片描述

图4. iRedMail.sh
  • 进入iRedMail的解压目录,给安装脚本iRedMail.sh文件添加可执行文件
    chmod +x iRedMail.sh
    
    • 1
  • 运行安装脚本iRedMail脚本,进行iRedMail软件的安装并进行iRedMail的软件配置
    bash iRedMail.sh
    
    • 1

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

	USE_EXISTING_MYSQL='YES' \
	    MYSQL_SERVER_ADDRESS='192.168.2.156' \
	    MYSQL_SERVER_PORT='3306' \
	    MYSQL_ROOT_USER='root' \
	    MYSQL_ROOT_PASSWD='root' \
	    MYSQL_GRANT_HOST='192.168.80.135' \
	    INITIALIZE_SQL_DATA='NO' \
	    bash iRedMail.sh
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

它将像往常一样启动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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

在这里插入图片描述

  1. 下载完misc中的依赖包后,开始进行软件配置
    在这里插入图片描述
图5. 需要下载的依赖包
  • 详细流程如下图所示:
    在这里插入图片描述
图6. 确定安装iRedMail

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

图9.选择MariaDB作为数据库

在这里插入图片描述

图10.设置数据库密码

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

图13 选择默认的插件

核对安装的配置信息,都选择y进行软件的安装过程,持续时间大约10分钟左右
注意:确保外网连接,需要自动下载插件和库 如果速度较慢可以更换下载源 为huaweicloud 进行下载
在这里插入图片描述

图14 更换ubuntu的下载源

在这里插入图片描述

图15 iRedMail安装完成
  1. 重启ubuntu系统,获得ubuntu的ip地址(ifconfig命令),由于ubuntu虚拟机采用NAT网络连接,因此获得IP地址为:192.168.80.133。如下所示:
    在这里插入图片描述
图16 获得ubuntu系统的ip地址
  1. 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 ——邮件服务器后台管理

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

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

四、其他配置(可选)

1. iRedMail调整邮件附件大小

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

  1. 修改/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参数
  1. 修改/etc/postfix/main.cf文件的message_size_limit参数,如下所示:
    在这里插入图片描述
图 修改message_size_limit参数
  1. 修改/opt/www/roundcubemail/config/config.inc.php文件中的max_message_size参数,如下所示:
    在这里插入图片描述
图 修改最大消息的大小
  1. 修改完成后,重启ubuntu系统,通过网页进入邮件登录帐号,进入撰写新邮件界面,可以看到附件大小已经修改为100MB了。

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

  1. 配置 Nginx
    在这里插入图片描述
    配置后重启nginx服务

  2. 配置 postfix

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

  • 添加或修改以下行:

  • 在这里插入图片描述

  • 重启 Postfix

    systemctl restart postfix
    
    • 1
  1. 配置 dovecot
  • 编辑 /etc/dovecot/dovecot.conf文件以使用 SSL 证书。

在这里插入图片描述

  • 重启 Dovecot

    systemctl restart dovecot
    
    • 1

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

  1. 导入目标服务器的证书到Java信任库
    可以将目标服务器的证书导入到Java的信任库中。步骤如下:
  • 获取目标服务器的证书
    使用以下命令来获取目标服务器的证书并保存到一个文件中(例如,server.crt):
echo | openssl s_client -connect mail.cx.com:993 | openssl x509 > server.crt
  • 1
  • 将证书导入到Java信任库
    假设你的jdk安装在/path/to/java,可以使用keytool命令将证书导入到Java的信任库中:
keytool -import -alias mail -keystore /opt/env/jdk11/lib/security/cacerts -file /opt/iredMail/ssl/iRedMail.crt
  • 1

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

4. 更新病毒数据库

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

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

    sudo vim /etc/clamav/freshclam.conf
    sudo vim /etc/clamav/clamd.conf
    
    • 1
    • 2
  3. 在文件中,确保如下配置项:

    DatabaseDirectory /var/lib/clamav
    
    • 1
  4. 重新启动 ClamAV 服务

    sudo systemctl start clamav-daemon
    sudo systemctl status clamav-daemon
    
    • 1
    • 2

如果更新不了,或者更新特别慢,可以手动下载病毒库文件,放到/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

  1. 去SpamAssassin官网,下载对应版本的完整压缩包
    https://spamassassin.apache.org/downloads.html

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

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

sudo systemctl restart spamassassin
sudo systemctl restart amavis
  • 1
  • 2

6.配置netdata汉化补丁

  1. 1.先备份或者重命名下面四个文件
dashboard_info.js dashboard.js main.js index.html
  • 1

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

  1. 下载本项目四个文件到 /opt/netdata/usr/share/netdata/web/ 目录
dashboard_info.js dashboard.js main.js index.html
  • 1
  1. 修改四个文件的权限为:netdata:netdata
chown -R netdata:netdata /usr/share/netdata/web/
  • 1

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

sudo ufw allow 19999
  • 1

7. 配置组件日志

  1. 打开 dovecot.conf 文件
vim /etc/dovecot/dovecot.conf
  • 1

单独配置日志 (需要将dovecot目录的权限设置为777 否则其他组件可能无法写入记录)
在这里插入图片描述
2. 打开 /etc/clamav/clamd.conf 文件

vim /etc/clamav/clamd.conf
  • 1

单独配置日志
在这里插入图片描述
3. 打开/etc/clamav/freshclam.conf文件

vim /etc/clamav/freshclam.conf
  • 1

在这里插入图片描述

  1. 打开 /etc/netdata/netdata.conf文件
vim /etc/netdata/netdata.conf
  • 1

单独配置日志
在这里插入图片描述

8. 关闭全局灰名单

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

plugins = ['reject_null_sender', 'amavisd_wblist', 'throttle', 'reject_sender_login_mismatch']
  • 1

在这里插入图片描述

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 服务以使更改生效

sudo systemctl restart amavis
  • 1

10. DKIM 解析记录

  1. 查看本地值(就像是申请ssl证书使用的csr一样)
    amavisd-new showkeys (部分其他OS 可能会使用 amavisd 代替 amavisd-new)
    如果提示 /etc/amavisd.conf not found 那就带上你的绝对路径:amavisd-new -c /etc/amavisd/amavisd.conf showkeys
    输出内容:
    在这里插入图片描述

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

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

v=DKIM1; p=MIIBIjANBgk……………………………………1QIDAQAB
  • 1
  • 2
  • 3
  1. 本地检查
    amavisd-new testkeys
    如果输出内容如下(提示 pass)则设置成功!
    在这里插入图片描述

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

  1. https://www.mail-tester.com/
  2. 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 访问邮箱

  1. 允许不安全的 POP3/IMAP 连接
    如果出于某种原因想要启用不带 STARTTLS 的 POP3/IMAP 服务 (同样,不推荐),请在 Dovecot 配置中更新以下两个参数 文件并重新启动 Dovecot 服务:/etc/dovecot/dovecot.conf
disable_plaintext_auth=no
ssl=yes
  • 1
  • 2

同样,强烈建议仅使用 POP3S/IMAPS 以获得更好的安全性。
iRedMail 配置的默认设置和推荐设置为:

disable_plaintext_auth=yes
ssl=required
  • 1
  • 2
  1. 允许端口 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
  • 1
  • 2
  • 3
  • 4
  • 5

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

修改 /etc/crontab文件

vim /etc/crontab
  • 1

增加这一行MAILTO
在这里插入图片描述
重启 cron 生效

sudo systemctl restart cron
  • 1

14. sieve配置自动回复过滤脚本

  1. /etc/dovecot/dovecot.conf 中增加插件 vacation-seconds(可以采用秒为触发回复的间隔)
    在这里插入图片描述

     作用:启用 vacation-seconds 扩展。这个扩展允许你在自动回复配置中使用秒作为时间单位,提供比传统的 vacation扩展更细粒度的控制。 	sieve_vacation_min_period = 1h 	 	
     作用:指定自动回复的最小时间间隔为 1小时。这意味着即使启用了 vacation-seconds 扩展,也不能设置自动回复的时间间隔小于 1 小时。如果您尝试设置小于 1小时的时间间隔(例如 10 秒),将会失败。sieve_vacation_default_period = 10d 	
     作用:设置自动回复的默认时间间隔为 10 天。即如果没有指定特定的时间间隔,系统会使用这个默认值。sieve_vacation_max_period = 30d 	 	
     作用:指定自动回复的最大时间间隔为 30天。这表示在任何情况下,您不能设置超过 30 天的自动回复时间间隔。
    
    • 1
    • 2
    • 3
    • 4
  2. 编写用户下的sieve文件

    vim /var/vmail/vmail1/cx.com/l/i/n/lin-2024.07.05.18.15.21/sieve/dovecot.sieve
    
    • 1

配置为:

每间隔十秒可以触发一次该用户的回复;
回复主题为:自动回复 :+ 原主题信息
回复地址
回复内容:自动回复测试
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述

五、报错

问题一:

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
  • 1
  • 2
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/980819
推荐阅读
相关标签
  

闽ICP备14008679号