在 Linux 中安装带有虚拟域、Webmail、SpamAssassin 和 ClamAV 的“iRedMail”(全功能邮件服务器)
在 HTTP 和影子 DNS 服务之后,邮件(SMTP、POP、IMAP 和所有相关的加密邮件协议)是 Internet 中最常用的服务之一,而且由于垃圾邮件和开放中继邮件服务器,也是最明智的服务之一。
本教程将指导您在几分钟内在 RHEL、CentOS、Scientific Linux 和 Debian、Ubuntu、带有 Postfix 的 Linux Mint、带有 MySQL 的虚拟域和用户、Dovecot – 支持 POP3/POP3S、 IMAP/IMAPS、Roundcube – Webmail 以及使用 SpamAssassin 和 ClamAV 进行邮件垃圾邮件和病毒扫描,所有这些都使用名为“iRedMail”的单个软件包进行安装。
什么是 iRedMail
iRedMail 是一个开源的全功能邮件服务器解决方案,可以为系统管理员节省大量时间进行复杂的配置,支持所有主要的 Linux 发行版,并附带以下 Linux 软件包。
- Postfix:SMTP 服务 – 默认 MTA。
- Dovecot:POP3/POP3S、IMAP/IMAPS、Managesieve 服务 – 默认 MDA。
- 阿帕奇:网络服务器。
- MySQL/PostgreSQL:存储应用程序数据和/或邮件帐户。
- OpenLDAP:存储邮件帐户。
- Policyd:Postfix 策略服务器。
- Amavisd:Postfix 和 SpamAssassin、ClamAV 之间的接口。用于垃圾邮件和病毒扫描。
- Roundcube:Webmail – 默认 MUA。
- Awstats:Apache 和 Postfix 日志分析器。
- Fail2ban:扫描日志文件(例如/var/log/maillog)并禁止显示恶意系统尝试的IP。
要求
- CentOS 6.5 最小安装 – CentOS 6.5 安装指南
- 指向负责您域名的邮件服务器的有效 DNS MX 记录。
另外,本教程仅用于测试和学习目的,不使用有效的 MX 记录,也不使用有效的 DNS 域鬃毛,所有配置都是使用 MySQL 的虚拟收件人在本地进行的(只能在本地域用户之间接收或发送邮件) – 从主机文件提供的本地域名)但请注意,虽然我们的系统无法接收来自互联网域的邮件,但它实际上可以通过 Postfix MTA 将邮件中继到这些域邮件服务器,即使您驻留在私有 IP 地址空间上,没有有效的 MX 记录并使用虚构的域,因此请特别注意您正在做的事情。
第 1 步:初始配置和静态 IP 地址
1.首次重新启动后,使用您的root帐户登录并确保您的系统是最新的并安装一些稍后使用所需的有用软件包。
在 RHEL/CentOS/Scientific Linux 上
yum update && yum upgrade
yum install nano wget bzip2
在 Debian/Ubuntu/Linux Mint 上
apt-get update && apt-get upgrade
apt-get install nano wget bzip2
2.由于此框的作用类似于邮件服务器,因此需要在网络接口上配置静态IP。要添加静态 IP,请打开并编辑位于 /etc/sysconfig/network-scripts/ 路径中的 NIC 配置文件,并添加以下值。
在 RHEL/CentOS/Scientific Linux 上
nano /etc/sysconfig/network-scripts/ifcfg-eth0
使用此文件作为模板并将其替换为您的自定义值。
DEVICE="eth0"
BOOTPROTO="static"
HWADDR="00:0C:29:01:99:E8"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
UUID="7345dd1d-f280-4b9b-a760-50208c3ef558"
NAME="eth0"
IPADDR=192.168.1.40
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=192.168.1.1
DNS2=8.8.8.8
完成 NIC 文件的编辑后,从与上述相同的位置打开网络文件,并在 HOSTNAME 指令中添加服务器非限定主机名。
nano /etc/sysconfig/network-scripts/network
在 Debian/Ubuntu/Linux Mint 上
nano /etc/network/interfaces
将以下值替换为您的设置。
auto eth0
iface eth0 inet static
address 192.168.1.40
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 192.168.1.1
dns-search 8.8.8.8
完成网络文件后,现在将主机名添加到 /etc/hostname 文件中。
nano /etc/hostnames
3. 然后打开 /etc/resolv.conf 文件并在系统范围内添加您的 DNS IP 服务器,如下面的屏幕截图所示。
nano /etc/resolv.conf
使用您最喜欢的名称服务器添加以下内容。
search mydomain.lan
nameserver 8.8.8.8
nameserver 8.8.8.8
4.将上述所有配置写入相应文件后,重新启动网络服务以应用新配置,并使用 ping 和 ifconfig 命令进行验证。
service network restart [On RedHat based systems]
service networking restart [On Debian based systems]
ifconfig
5. 现在您的静态网络已完全运行,请编辑 /etc/hosts 文件并添加您的非限定主机名和 FQDN 主机名,如下例所示。
nano /etc/hosts
127.0.0.1 centos.mydomain.lan centos localhost localhost.localdomain
192.168.1.40 centos.mydomain.lan centos
要验证主机名配置问题,请运行 hostname 和 hostname –f 命令。
hostname
hostname -f
6.另一个有用的软件包是bash-completion(使用[Tab]键自动完成命令序列),它由RedHat下的EPEL存储库提供基于系统,然后更新您的来源。
在 RHEL/CentOS/Scientific Linux 上
rpm –Uvh http://fedora.mirrors.romtelecom.ro/pub/epel/6/i386/epel-release-6-8.noarch.rpm
yum repolist && yum upgrade
更新源代码后,安装 bash-completion 实用程序(对所有问题回答是)。
yum install bash-completion
在 Debian/Ubuntu/Linux Mint 上
可以使用以下命令轻松安装基于 Debian 的系统下的 bash-completion 软件包。
apt-get install bash-completion
7.最后一步是添加具有root权限的系统用户。首先添加用户并设置其密码。
adduser your_user
passwd your_user
添加用户后,打开 /etc/sudoers 文件并取消注释 %wheel 组,然后将新创建的用户添加到wheel组。
nano /etc/sudoers
搜索并取消注释轮组线,如下所示。
%wheel ALL=(ALL) ALL
关闭文件并将您的用户添加到wheel组,发出以下命令。
usermod -aG wheel your_user
8. 在我们开始下载和安装 iRedMail 软件之前,请重新启动系统,然后使用新创建的用户登录并确保一切功能正常。
第2步:安装iRedMail
9. 要下载 iRedMail 存档包,您必须访问其官方下载页面部分,或者您可以使用 wget 命令下载最新版本 ( 0.8.7 在撰写本文时)。
wget https://bitbucket.org/zhb/iredmail/downloads/iRedMail-0.8.7.tar.bz2
10. iRedMail 存档下载完成后,使用以下命令将其解压。
tar xvjf iRedMail-0.8.7.tar.bz2
11.然后进入新解压的iRedMail目录路径,将iRedMail.sh脚本标记为可执行权限并运行。
cd iRedMail-0.8.7
chmod +x iRedMail.sh
sudo ./iRedMail.sh
12. 初始系统检查后,程序开始添加所需的存储库,然后第一个指导提示会询问您是否要继续安装或中止。选择是继续。
13. iRedMail 使用 Maildir 格式将电子邮件存储在 /var/vmail 系统路径上,并为您附加的每个域创建单独的目录到您的 MTA 服务器。如果您对此路径感到满意,请点击下一步继续进行服务器配置,否则请提供您所需的位置,然后点击下一步。
14. 在下一步中,选择您首选的数据库来存储将连接到 Postfix 的邮件域名和收件人。本教程重点介绍 MySQL 数据库,因此使用 [Space] 栏选择 MySQL,然后继续下一步,并为 MySQL root 帐户提供强密码。
15. 在下一步中添加您的第一个虚拟域名。如果您拥有在此处添加的注册域名(仅添加域名而不是系统 FQDN)。
16. 默认情况下,iRedAdmin 创建一个对您的服务器具有完全权限的管理用户,可以通过 iRedAdmin 面板或通过 Dovecot 协议(默认 Roundcube Webmail 界面或任何其他 IMAP/POP MUA 软件,如 SquirrelMail、Rainloop)访问该用户、Microsoft Outlook、Mozilla Thunderbird、Evolution、Mutt、Elm 等)。
此外,系统还使用此邮政管理员管理帐户来报告与邮件功能或其他系统故障或有用信息相关的事件 - logwatch 通常在此处发送其统计信息 - 因此选择一个强密码并继续下一步。
17.下一步选择您的其他邮件服务器组件,例如 iRedAdmin 官方管理面板到 Postfix、DKIM 域密钥 –(在邮件标头中添加签名,评估邮件信任以进行最终传递或进一步转发)、Roundcube默认 Webmail 界面(如果您计划使用其他邮件传送代理,请跳过 Roundcube)、PhpMyadmin(如果您熟悉 MySQL 命令行,您还应该跳过安装 PhpMyAdmin)、Awstats(有用的日志统计和分析器)、Fail2ban(保护您的服务器免受暴力攻击)。
18. 对于接下来的一系列问题,根据您安装的可选组件,您应该回答是。请特别注意 $HOME 提取目录中的 iRedMail.tips 文件,因为它包含敏感的邮件服务器信息,例如服务器应用程序的用户名和密码、服务器配置文件、默认 URL 和其他重要信息。
19.安装完成后重新启动您的系统并验证iRedmail.tips文件以查看您的服务器默认设置 - 您应该将此文件移动到安全的位置具有 600 权限的系统路径。
20. 访问以下 URL 上的默认 Web 应用程序。
- Roundcube Webmail – https://domain_name 或 server_IP/mail/
- IRedAdmin 面板 – https://domain_name 或 server_IP/iredadmin/
- PhpMyadmin – https://domain_name 或 server_IP /phpmyadmin/
- Awstats – https://domain_name 或 server_IP/awstats/awstats.pl?config=web(或 ?config=smtp)
- Policyd 反垃圾邮件插件 – https://domain_name 或 server_IP/cluebringer/
第 3 步:初始 Webmail 配置
21. iRedAdmin 管理面板提供了一个基本的 Web 邮件界面,您可以在其中为 Postfix 可以通过 MySQL 后端处理的邮件服务器添加虚拟域和帐户。要登录 iRedAdmin 面板,请将浏览器指向 https://domain_name/iredadmin/ 或 https://server_IP/iredadmin/ URL 并使用以下默认凭据。
- 用户名:postmaster@your_domain_name.tld
- 密码:在#16点设置的postmaster密码
22. 要添加用户,请导航至添加 -> 用户,然后提供您所需的用户名、邮件地址和密码。您还可以使用配额设置用户邮箱可以处理的空间量,还可以通过将用户标记为全局管理员来通过 iRedAdmin 面板提升用户的管理权限。
23. 读取用户电子邮件是由 Roundcube Web 界面提供的。要访问它,请导航到 https://domain_name/mail 或 https://server_IP/mail/ URL 并以 [ 的形式提供您的邮件帐户凭据电子邮件受保护]。
访问默认的管理邮件帐户 postmaster,您会发现两封初始电子邮件,其中一封包含您的服务器敏感信息。现在,您可以从这里阅读电子邮件、撰写邮件并将邮件发送给其他域用户。
24. 要访问服务器 Policyd 反垃圾邮件策略,请导航至 https://domain_name/cluebringer 或 https://server_IP/ Leadbringer/ 并提供以下凭据。
- 用户名:[电子邮件受保护]
- 密码:邮政管理员密码
25. 要查看邮件服务器统计信息,请导航至 https://mydomain.lan/awstats/awstats.pl/?config=smtp 或 https:// mydomain.lan/awstats/awstats.pl 并使用以下凭据。
- 用户名:[电子邮件受保护]
- 密码:邮政管理员密码
26.如果您想检查服务器打开的连接以及监听守护进程及其传入套接字的状态,请发出以下命令。
netstat -tulpn ## numerical view
netstat -tulp ## semantic view
27. 要调试邮件事务的其他问题或查看服务器的实时工作情况,您可以使用以下命令。
tailf /var/log/maillog ## visualize mail logs in real time
mailq ## inspect mail queue
telnet ## test your server protocols and security form a different location
nmap ## scan your server opened connections from different locations
28. 现在您已经部署了完整的邮件环境,至少在本主题中唯一缺少的是具有 MX DNS 记录的有效域名来接收邮件来自其他 Internet 域的邮件,但本地 SMTP 服务器可以并且将会在其他 Internet 有效域上中继邮件,因此请特别注意您发送邮件的对象,因为您可能会遇到 ISP 的非法问题。
从下面的屏幕截图中您可以看到,我已从本地无效域向我的一个 google.com 帐户发送了一封电子邮件,并且我的 google 帐户已成功收到该电子邮件。
与其他网络服务不同,在其他网络服务中,您安装后就会忘记它们,管理邮件服务器是一项持续的艰苦工作,因为邮件服务相关的问题(如垃圾邮件、开放转发和邮件退回)。
参考链接
iRedMail 主页