iRedMail开源邮件系统安装记录
iRedMail是一个集成了邮件服务器、管理控制面板和备份工具的开源软件。通过项目提供的脚本工具,可以快速部署多个开源组件。项目提供免费版本的web管理界面,可以对用户和域名做基本管理。如需在web界面上进行更多管理操作,则需要付费购买iRedAdmin-Pro。
1. 项目介绍
项目网站:iRedMail – Free, Open Source Mail Server Solution
iRedMail是一个集成了邮件服务器、管理控制面板和备份工具的开源软件。通过项目提供的脚本工具,可以快速部署多个开源组件。项目提供免费版本的web管理界面,可以对用户和域名做基本管理。如需在web界面上进行更多管理操作,则需要付费购买iRedAdmin-Pro。
项目涉及的套件如下:
参考:Major open source software used in iRedMail
名称 | 说明 |
Postfix | 提供MTA服务 |
Dovecot | 提供POP3、IMAP等服务 |
Nginx | 提供WEB服务 |
OpenLDAP | 提供目录服务,主要用于用户账号存储(可选) |
MySQL, MariaDB, PostgreSQL | 提供数据库服务,用于存储程序数据。也可以用来存储用户账号数据。 |
mlmmj | 提供邮件列表管理。iRedMail-0.9.8 及之后版本支持。 |
Amavisd-new | Postfix与Clamav、SpamAssassin之间的桥梁。简单理解由该模块调用Clamav和SpamAssassin进行反病毒、反垃圾检查。 |
SpamAssassin | 提供基于内容的反垃圾过滤。 |
ClamAV | 提供病毒扫描。 |
Roundcube webmail | 提供WebMail,基于PHP开发。 |
SOGo Groupware | 一组提供CalDAV、CardDAV、ActiveSync服务的套件。 |
Fail2ban | 基于日志扫描并对IP进行阻止的工具。简单理解可以用来防止暴力破解密码攻击。 |
iRedAPD | 由iRedMail团队开发的Postfix策略管理软件 |
2. 准备工作
参考:Install iRedMail on Red Hat Enterprise Linux, CentOS
2.1 注意事项
- iRedMail被设计为部署在全新服务器系统上,该系统没有安装与邮件相关的组件, 例如 MySQL、OpenLDAP、Postfix、Dovecot、Amavisd等。iRedMail 将安装并自动为您配置它们。否则,它可能会覆盖您的现有文件/配置,尽管它会备份文件之前修改,它可能无法按预期工作。
- 低流量生产邮件服务器启用垃圾邮件/病毒扫描至少需要4GB内存。
- 确保操作系统上3个UID/GID未被其他用户/组使用:2000、2001、2002。
2.2 操作系统基本配置
提示:本文操作系统以 Rocky Linux 9.4 为例。
# 主机名设置
(1)设置主机名FQDN(fully qualified domain name):
hostnamectl hostname mail.mailabc.cn
(2)修改/etc/hosts,将上面设置的主机名添加到解析列表
127.0.0.1 mail.mailabc.cn localhost
(3)确认主机名修改正确,如果没有生效则可能需要重启操作系统。
hostname -f
# selinux配置
# vi /etc/selinux/config
SELINUX=disabled
上述配置需要重启操作系统生效。
# YUM源配置
Rocky Linux9默认提供的yum源已启用appstream,使用默认配置即可。
额外安装EPEL yum源:
dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
2.3 下载安装包
# 下载
wget https://github.com/iredmail/iRedMail/archive/refs/tags/1.6.8.tar.gz
最新版请前往官网主页下载:Download the latest iRedMail release
3. 安装iRedMail
3.1 解压缩安装包
tar -zxvf iRedMail-1.6.8.tar.gz
cd iRedMail-1.6.8
3.2 执行安装
执行命令:
sh iRedMail.sh
根据下面提示界面进行配置:
下一步,设置邮件存储目录:
下一步,设置web服务器:
下一步,选择后台数据库,这里我使用的是MariaDB:
下一步,设置数据库root用户密码:
下一步,设置邮箱域名,注意不是主机名,这里以mailabc.cn为例:
下一步,设置postmaster管理员密码,该账号可以登录webmail和IRedAdmin管理后台:
下一步,选择需要安装的套件。SOGo慎重选择,需要额外配置yum源,并且下载很慢,如果确有需要,可以考虑通过其他手段先把安装包下载到本地:
汇总上面的选择信息:
输入y继续,下面即开始进行安装包的下载和校验。此时,上面所作的配置选择会被保存到iRedMail-1.6.8/config文件中,如果此时中断安装,下次重新执行安装脚本则会直接跳过上述的选择向导。
后续将下载软件包,首先下载的是下面5个安装包(注意:这是1.6.8版本所需的软件包,其他版本可能略有不同),下载目录位置为iRedMail-1.6.8/pkgs/misc:
iRedAdmin-2.5.tar.gz
mlmmjadmin-3.1.9.tar.gz
iRedAPD-5.3.3.tar.gz
netdata-v1.44.1.gz.run
roundcubemail-1.6.5-complete.tar.gz
如果下载很慢,可以通过其他手段到这里下载:Index of /yum/misc
如果选择了安装SOGo,下载也会非常慢,需要另行处理。
3.3 安装后注意事项
安装完成后,查看iRedMail-1.6.8/iRedMail.tips 该文件,这里记录了如下信息:
- URLs、基于Web的应用程序的用户名和密码。
- 邮件服务相关软件配置文件的位置。
- 其他一些重要和敏感的信息。
这里给出一份示例:
Admin of domain mailabc.cn:
* Account: postmaster@mailabc.cn
* Password: admin123
You can login to iRedAdmin with this account, login name is full email address.
First mail user:
* Username: postmaster@mailabc.cn
* Password: admin123
* SMTP/IMAP auth type: login
* Connection security: STARTTLS or SSL/TLS
You can login to webmail with this account, login name is full email address.
* Enabled services: rsyslog firewalld postfix mariadb nginx php-fpm dovecot clamd@amavisd amavisd clamav-freshclam fail2ban crond
SSL cert keys (size: 4096):
- /etc/pki/tls/certs/iRedMail.crt
- /etc/pki/tls/private/iRedMail.key
Mail Storage:
- Mailboxes: /var/vmail/vmail1
- Mailbox indexes:
- Global sieve filters: /var/vmail/sieve
- Backup scripts and backup copies: /var/vmail/backup
MySQL:
* Root user: root, Password: "admin@123" (without quotes)
* Bind account (read-only):
- Username: vmail, Password: m69iWEZlS2H5BTmd3Vp4v5VbSBtFiesp
* Vmail admin account (read-write):
- Username: vmailadmin, Password: qyIHTj6ntVi4qMDu3ha44wRRi4H9bTcK
* Config file: /etc/my.cnf
* RC script: /etc/init.d/mariadb
Virtual Users:
- /root/iRedMail-1.6.8/samples/iredmail/iredmail.mysql
- /root/iRedMail-1.6.8/runtime/*.sql
Backup MySQL database:
* Script: /var/vmail/backup/backup_mysql.sh
* See also:
# crontab -l -u root
Postfix:
* Configuration files:
- /etc/postfix
- /etc/postfix/aliases
- /etc/postfix/main.cf
- /etc/postfix/master.cf
* SQL/LDAP lookup config files:
- /etc/postfix/mysql
Dovecot:
* Configuration files:
- /etc/dovecot/dovecot.conf
- /etc/dovecot/dovecot-ldap.conf (For OpenLDAP backend)
- /etc/dovecot/dovecot-mysql.conf (For MySQL backend)
- /etc/dovecot/dovecot-pgsql.conf (For PostgreSQL backend)
- /etc/dovecot/dovecot-used-quota.conf (For real-time quota usage)
- /etc/dovecot/dovecot-share-folder.conf (For IMAP sharing folder)
* Syslog config file:
- /etc/rsyslog.d/1-iredmail-dovecot.conf (present if rsyslog >= 8.x)
* RC script: /etc/init.d/dovecot
* Log files:
- /var/log/dovecot/dovecot.log
- /var/log/dovecot/sieve.log
- /var/log/dovecot/lmtp.log
- /var/log/dovecot/lda.log (present if rsyslog >= 8.x)
- /var/log/dovecot/imap.log (present if rsyslog >= 8.x)
- /var/log/dovecot/pop3.log (present if rsyslog >= 8.x)
- /var/log/dovecot/sieve.log (present if rsyslog >= 8.x)
* See also:
- /var/vmail/sieve/dovecot.sieve
- Logrotate config file: /etc/logrotate.d/dovecot
Nginx:
* Configuration files:
- /etc/nginx/nginx.conf
- /etc/nginx/sites-available/00-default.conf
- /etc/nginx/sites-available/00-default-ssl.conf
* Directories:
- /etc/nginx
- /var/www/html
* See also:
- /var/www/html/index.html
php-fpm:
* Configuration files: /etc/php-fpm.d/www.conf
PHP:
* PHP config file for Nginx:
* Disabled functions: posix_uname,eval,pcntl_wexitstatus,posix_getpwuid,xmlrpc_entity_decode,pcntl_wifstopped,pcntl_wifexited,pcntl_wifsignaled,phpAds_XmlRpc,pcntl_strerror,ftp_exec,pcntl_wtermsig,mysql_pconnect,proc_nice,pcntl_sigtimedwait,posix_kill,pcntl_sigprocmask,fput,phpinfo,system,phpAds_remoteInfo,ftp_login,inject_code,posix_mkfifo,highlight_file,escapeshellcmd,show_source,pcntl_wifcontinued,fp,pcntl_alarm,pcntl_wait,ini_alter,posix_setpgid,parse_ini_file,ftp_raw,pcntl_waitpid,pcntl_getpriority,ftp_connect,pcntl_signal_dispatch,pcntl_wstopsig,ini_restore,ftp_put,passthru,proc_terminate,posix_setsid,pcntl_signal,pcntl_setpriority,phpAds_xmlrpcEncode,pcntl_exec,ftp_nb_fput,ftp_get,phpAds_xmlrpcDecode,pcntl_sigwaitinfo,shell_exec,pcntl_get_last_error,ftp_rawlist,pcntl_fork,posix_setuid
ClamAV:
* Configuration files:
- /etc/clamd.d/amavisd.conf
- /etc/freshclam.conf
- /etc/logrotate.d/clamav
* RC scripts:
+ /etc/init.d/clamd@amavisd
+ /etc/init.d/freshclamd
Amavisd-new:
* Configuration files:
- /etc/amavisd/amavisd.conf
- /etc/postfix/master.cf
- /etc/postfix/main.cf
* RC script:
- /etc/init.d/amavisd
* SQL Database:
- Database name: amavisd
- Database user: amavisd
- Database password: nm5GQ4NcNERpMPfOGtmYkRyGS1ptTQpc
DNS record for DKIM support:
; key#1 2048 bits, s=dkim, d=mailabc.cn, /var/lib/dkim/mailabc.cn.pem
dkim._domainkey.mailabc.cn. 3600 TXT (
"v=DKIM1; p="
"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArqDwKcOUovXQab1htrjk"
"46yt9lqtYOyqgf0rPviw/X2MSVyDh12WlGe3hSLTgavdeyvUB5T7QPJ+WlvNoO8S"
"B7QGCJnty3zIgxPKZKpVfelWTFa2vubv+vV0Xqc/wfSWIi2qBDv92alCPYtzCsGc"
"B/kIYHJrN6rZKyo1m5DlVHSt6EqdbBbWFUIzJN8vsgd/EbpoPOCSyOdqJHdwFN/j"
"W5s8SbDDUPCkn28t/Fyumy6h5hri5qsK9rwSOsT09h5yCfOM9keyB5fGggg0aGtO"
"GPjHqXZHjx6Fgu/jXtU/ggrH6fCcjtnJcYFNQU2F+tI8QabUNeVjkj8bq2eiWV50"
"JQIDAQAB")
SpamAssassin:
* Configuration files and rules:
- /etc/mail/spamassassin
- /etc/mail/spamassassin/local.cf
iRedAPD - Postfix Policy Server:
* Version: 5.3.3
* Listen address: 127.0.0.1, port: 7777
* SQL database account:
- Database name: iredapd
- Username: iredapd
- Password: NiMXyBOQn83zV6mvxhqAOBQw363CyGeI
* Configuration file:
- /opt/iredapd/settings.py
* Related files:
- /opt/iRedAPD-5.3.3
- /opt/iredapd (symbol link to /opt/iRedAPD-5.3.3
iRedAdmin - official web-based admin panel:
* Version: 2.5
* Root directory: /opt/www/iRedAdmin-2.5
* Config file: /opt/www/iRedAdmin-2.5/settings.py
* Web access:
- URL: https://mail.mailabc.cn/iredadmin/
- Username: postmaster@mailabc.cn
- Password: admin123
* SQL database:
- Database name: iredadmin
- Username: iredadmin
- Password: OYagG9UkBRble5lK2FE5y79cFqNDUJ4U
Roundcube webmail: /opt/www/roundcubemail-1.6.5
* Config file: /opt/www/roundcubemail-1.6.5/config
* Web access:
- URL: http://mail.mailabc.cn/mail/ (will be redirected to https:// site)
- URL: https://mail.mailabc.cn/mail/ (secure connection)
- Username: postmaster@mailabc.cn
- Password: admin123
* SQL database account:
- Database name: roundcubemail
- Username: roundcube
- Password: f4xKyFgYVbL5B9gXiF66NkBqIUbmEWoV
* Cron job:
- Command: "crontab -l -u root"
netdata (monitor):
- Config files:
- All config files: /opt/netdata/etc/netdata
- Main config file: /opt/netdata/etc/netdata/netdata.conf
- Modified modular config files:
- /opt/netdata/etc/netdata/go.d
- /opt/netdata/etc/netdata/python.d
- HTTP auth file (if you need a new account to access netdata, please
update this file with command like 'htpasswd' or edit manually):
- /etc/nginx/netdata.users
- Log directory: /opt/netdata/var/log/netdata
- SQL:
- Username: netdata
- Password: SaWFClrRLUdzAbEOXjd3kdeEzRsSNOQZ
- NOTE: No database required by netdata.
Admin of domain mailabc.cn:
* Account: postmaster@mailabc.cn
* Password: admin123
You can login to iRedAdmin with this account, login name is full email address.
First mail user:
* Username: postmaster@mailabc.cn
* Password: admin123
* SMTP/IMAP auth type: login
* Connection security: STARTTLS or SSL/TLS
You can login to webmail with this account, login name is full email address.
至此,部署工作结束。后续我们再探讨这套系统的具体使用方法。
参考来源:iRedMail开源邮件系统安装记录 | MailABC邮件知识百科
更多内容可以关注公众号mailabc获取。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)