在运行mailcow: dockerized之前,你应该检查一些需求:
提醒
不要尝试在Synology/QNAP设备(任何NAS)、OpenVZ、LXC或其他容器平台上安装mailcow。支持KVM、ESX、Hyper-V等全虚拟化平台。
提示
mailcow: dockerized需要一些端口对传入的连接开放,所以请确保你的防火墙没有阻止这些连接。
确保没有其他应用程序干扰mailcow的配置,例如另一个邮件服务
正确的DNS设置对于每个良好的邮件服务器设置都至关重要,因此在开始之前,请确保您至少已经了解了基本知识!
确保你的系统有正确的日期和时间设置。这对于诸如双因素TOTP身份验证等各种组件至关重要。
请确保您的系统至少有以下资源:
资源 | 最小的需求 |
---|---|
CPU | 1 GHz |
内存 | 最少6 GiB +1 GiB交换(默认配置) |
磁盘 | 20 GiB(不带电子邮件) |
体系结构 | x86_64, ARM64 |
不支持
OpenVZ, Virtuozzo and LXCOpenVZ, Virtuozzo和LXC
ClamAV和Flatcurve (FTS引擎)可能会占用RAM。您可以在
mailcow.conf中禁用它们,
通过设置SKIP_CLAMD=y 和
SKIP_FTS=y
。
提示
我们知道单纯MTA可以在128 MiB RAM上运行。Mailcow是一个成熟的、随时可用的群件,具有许多额外功能,使生活更轻松。mailcow配备了web服务器,webmailer, ActiveSync (MS),反病毒,反垃圾邮件,索引,文档扫描(Oletools), SQL (MariaDB),缓存(Redis), MDA, MTA等各种web服务。
一个SOGo worker在被清除之前可能占用大约350 MiB的RAM。你计划使用的ActiveSync连接越多,你需要的RAM就越多。默认配置生成20个工作进程。
如果一家公司有15台手机(启用了EAS)和大约50个并发的IMAP连接,那么它应该规划16 GiB RAM。
6 GiB RAM+1 GiB swap适合大多数私有安装,而8 GiB RAM推荐给大约5到10个用户。
作为我们支持的一部分,我们可以帮助您正确规划设置。
很重要
mailcow使用Docker作为基础组件,由于跨多个平台的一些技术差异,我们不支持所有平台,即使它们可以运行Docker。
下表包含了我们正式支持和测试的所有操作系统(截至2024年12月):
OS | 兼容性 |
---|---|
3.19以后版本的Alpine | ⚠️ |
Debian 11, 12 | ✅ |
Ubuntu 22.04(或更新版本) | ✅ |
Alma Linux 8, 9 | ✅ |
Rocky Linux 9 | ✅ |
说明
✅ = 使用说明开箱即用。
⚠️ = 需要一些手动调整,否则可用。
❌ = 一般不兼容。
❔ =待定。提醒
注意:所有其他操作系统(未提到)也可以工作,但尚未正式测试。
请检查是否有任何mailcow的标准端口是开放的,并没有被其他应用程序使用:
ss -tlpn | grep -E -w '25|80|110|143|443|465|587|993|995|4190' # or: netstat -tulpn | grep -E -w '25|80|110|143|443|465|587|993|995|4190'
风险
在启用防火墙/ufw的系统上运行mailcow有几个问题。
如果此命令返回任何结果,请删除或停止在该端口上运行的应用程序。您也可以通过
mailcow.conf 配置文件来调整mailcows端口。
如果你在mailcow前面有防火墙,请确保这些端口对进入的连接是开放的:
Service | Protocol | Port | Container | Variable |
---|---|---|---|---|
Postfix SMTP | TCP | 25 | postfix-mailcow | ${SMTP_PORT} |
Postfix SMTPS | TCP | 465 | postfix-mailcow | ${SMTPS_PORT} |
Postfix Submission | TCP | 587 | postfix-mailcow | ${SUBMISSION_PORT} |
Dovecot IMAP | TCP | 143 | dovecot-mailcow | ${IMAP_PORT} |
Dovecot IMAPS | TCP | 993 | dovecot-mailcow | ${IMAPS_PORT} |
Dovecot POP3 | TCP | 110 | dovecot-mailcow | ${POP_PORT} |
Dovecot POP3S | TCP | 995 | dovecot-mailcow | ${POPS_PORT} |
Dovecot ManageSieve | TCP | 4190 | dovecot-mailcow | ${SIEVE_PORT} |
HTTP(S) | TCP | 80/443 | nginx-mailcow | ${HTTP_PORT}/ |
当需要为某个IP地址绑定业务时,可以为该IP地址添加前缀:
SMTP_PORT=1.2.3.4:25
重要
:您不能使用IP:端口绑定
HTTP_PORT
和
HTTPS_PORT
。请用
HTTP_PORT=1234
和
HTTP_BIND=1.2.3.4
来代替。
使用mailcow需要一些传出连接。确保mailcow可以与以下主机或端口通信:
Service | Protocol | Port | Target | Reason |
---|---|---|---|---|
Clamd | TCP | 873 | rsync.sanesecurity.net | 下载ClamAV签名(在mailcow中预打包) |
Dovecot 鸽舍 | TCP | 443 | spamassassin.heinlein-support.de | 下载由Rspamd处理的Spamassassin规则,通过Dovecot下载 |
mailcow Processes | TCP | 80/443 | github.com | 下载mailcow更新(基于代码) |
mailcow Processes | TCP | 443 | hub.docker.com | 下载Docker镜像(直接从Docker Hub下载) |
mailcow Processes | TCP | 443 | asn-check.mailcow.email | 请求错误的ASN检查API(针对Spamhaus Free blocklist) |
mailcow Processes | TCP | 80 | ip4.mailcow.email & ip6.mailcow.email | 获取公网IP地址在UI中显示(可选) |
Postfix | TCP | 25, 465 | Any | MTA的传出连接 |
Rspamd | TCP | 80 | fuzzy.mailcow.email | 下载糟糕的主题正则表达式映射(由Servercow训练) |
Rspamd | TCP | 443 | bazaar.abuse.ch | 下载恶意软件MD5校验供Rspamd检测 |
Rspamd | TCP | 443 | urlhaus.abuse.ch | 下载用于Rspamd检测的恶意软件链接 |
Rspamd | UDP | 11445 | fuzzy.mailcow.email | 连接到全局mailcow fuzzy(由Servercow+社区训练) |
Rspamd | UDP | 11335 | fuzzy1.rspamd.com & fuzzy2.rspamd.com | 连接到全局Rspamd模糊(由Rspamd团队训练) |
Unbound | TCP & UDP | 53 | Any 任何 | 用于mailcow堆栈的DNS解析(用于DNSSEC验证和检索垃圾邮件列表信息) |
Unbound | ICMP (Ping) | 1.1.1.1, 8.8.8.8, 9.9.9.9 | 基本的互联网连接检查 |
通过https://github.com/mailcow/mailcow-dockerized/issues/497#issuecomment-469847380引用https://github.com/chermsen(谢谢!)
对于所有正在与赫茨纳防火墙作斗争的人:
在这种情况下,端口53对于防火墙配置不重要。根据文档,unbound使用1024-65535端口范围进行外发请求。 由于Hetzner机器人防火墙是一个静态防火墙(每个传入的数据包都被检查并隔离)-必须应用以下规则:
For TCP 为TCP
SRC-IP: --- DST IP: --- SRC Port: --- DST Port: 1024-65535 Protocol: tcp TCP flags: ack Action: Accept
For UDP 对于UDP
SRC-IP: --- DST IP: --- SRC Port: --- DST Port: 1024-65535 Protocol: udp Action: Accept
如果你想应用更严格的端口范围,你必须首先更改unbound的配置(在安装后):
{mailcow-dockerized}/data/conf/unbound/unbound.conf:
outgoing-port-avoid: 0-32767
现在防火墙规则可以进行如下调整:
[...] DST Port: 32768-65535 [...]
为了确保您的系统上有正确的日期和时间设置,请检查
timedatectl status 的输出:
$ timedatectl status Local time: Sat 2017-05-06 02:12:33 CEST Universal time: Sat 2017-05-06 00:12:33 UTC RTC time: Sat 2017-05-06 00:12:32 Time zone: Europe/Berlin (CEST, +0200) NTP enabled: yes NTP synchronized: yes RTC in local TZ: no DST active: yes Last DST change: DST began at Sun 2017-03-26 01:59:59 CET Sun 2017-03-26 03:00:00 CEST Next DST change: DST ends (the clock jumps one hour backwards) at Sun 2017-10-29 02:59:59 CEST Sun 2017-10-29 02:00:00 CET
NTP enabled: yes 和
NTP synchronized: yes 表示是否启用了NTP以及是否同步。
启用NTP需要执行
timedatectl set-ntp true 命令。你还需要编辑
/etc/systemd/timesyncd.conf :
# vim /etc/systemd/timesyncd.conf [Time] NTP=0.pool.ntp.org 1.pool.ntp.org 2.pool.ntp.org 3.pool.ntp.org
检查
/etc/network/interfaces.d/50-cloud-init.cfg ,将IPv6接口从eth0:0改为eth0:
# Wrong: auto eth0:0 iface eth0:0 inet6 static # Right: auto eth0 iface eth0 inet6 static
重启或重启接口。 你可能想要禁用cloud-init网络更改。
对OpenStack用户尤其重要:检查MTU并在docker-compose.yml中设置相应的MTU。请参阅我们的安装指南中的故障排除。
【版权声明】
本站部分内容来源于互联网,本站不拥有所有权,不承担相关法律责任。如果发现本站有侵权的内容,欢迎发送邮件至masing@13sy.com 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。
上一篇:mailcow信息与支持
下一篇:没有了