特固企业快速入门¶
Choose a language: RU | EN | ZH
- Содержание
- 特固企业快速入门
- 快速启动 TEGU 企业版
- DNS 区域
- 配置路由器
- 安装 TEGU Enterprise 邮件服务器
- Postgres 安装和配置
- 初始设置
- Tegu 基本设置
- 配置消息队列
- 配置用户数据库参数。
- 定义 LDAP 连接设置
- 安装和生成 Letsencrypt 证书
- 生成 DKIM
- 最后微调 DNS
- 邮箱管理
本节旨在帮助您快速安装和配置邮件服务器,并在测试我们产品的过程中将损失降到最低。
为此,我们尽可能详细地介绍了所有材料,并考虑到了在这一工作过程中可能等待您的所有微妙之处和陷阱。
我们特意没有将重点放在不同的操作系统上,而是只将 Linux Debian 作为参考。
但这并不意味着你必须选择这个特定的发行版,相反,这完全取决于你的经验和技术背景。
我们首先要提请你注意的是:
有必要仔细研读 “快速启动 ”一文,严格按照顺序清楚地完成每个步骤,不要跳过任何部分,否则就有可能浪费时间。
为了控制每个步骤,最好制作一份检查表,严格记录完成任务过程中的每个步骤:
- 请记住,6 个小时的调试可以节省 5 分钟的文档阅读时间,但我们还是建议您从阅读文档开始。
- 在第一次设置服务器时,先学习如何用最简单的方法进行设置,然后再开始构建奇特的方案。
- 正确指定*所有* DNS 区域。(如果可能,最好公开资源记录,否则有可能浪费时间配置和调试内部 DNS 区域)。
- 进行必要的路由设置。
- 安装 Tegu 邮件服务器。
- 安装和配置 Postgres 数据库。
- 执行初始邮件服务器配置。
- 添加邮件存储。
- 配置消息队列。
- 与目录服务器集成(在此,您需要非常谨慎地处理这一部分,所有设置都是针对每个目录服务器的,错误的参数设置不能保证正确运行,因此我们建议您将注意力集中在这一阶段的配置上)。
- 安装和配置证书。
- 生成 DKIM。
- 执行 DNS 区域的最终配置。
- 安装许可证。
- 开始测试产品。
联系技术支持的规则:
- 请记住,简短的描述会不必要地浪费您的时间。我们将与您对话,直到获得解决问题所需的全部信息。
- 因此,您的上诉书应尽可能内容翔实。
- 对问题的描述应循序渐进,不遗漏行动,不泛泛而谈,不使用模棱两可的俗语,用简单的语言,严格地从系统的角度进行描述。
- 提供系统信息。为此,请运行 /opt/tegu/bin/teguctl dump 命令,并将其输出返回给我们。
- 启用并分析系统日志信息。为此,请使用 journalctl -f -u tegu -n 200 -a 命令。
- 如果您不懂英语,无法阅读杂志,请使用翻译。
- 联系技术支持时,请引用日志中与您描述的问题相关的部分。
- 如果可能,请在描述中附上截图。
- 在描述您的行动时,请务必提供您开展工作所依据的文件参考。
快速启动 TEGU 企业版¶
通过本文,您可以快速安装并启动 TEGU 邮件服务器。本文不包括所有可能的配置,也不描述所有功能,因此不能取代阅读其他文档。
关于 TEGU 的几句话。与所有其他类似系统不同,本产品完全从零开始编写,是一个单一的编译文件、
它可以在所有基于 systemd 的现代 Linux 操作系统上运行、
而且不依赖 systemd 库。
因此,你开箱就能获得一个完全正常运行的网络界面,而不需要像 apache 或 nginx 这样的额外组件、
对邮箱和网络界面本身提供内置保护,防止密码暴力破解。
网络界面¶
从 1.43.1 版开始,将有许多重大变化:
- 带有新界面的稳定版本
- 为管理员和用户管理提供了全新的网络界面。
- 增加了英语支持(未来将增加中文支持)。
- 添加了交互式文档。
- 在整个界面中添加了搜索功能。
- 改进并开发了控件功能(分页、搜索等)。
- 重新组合了一些控件。
- 界面已为角色模型实施和完全多租户做好准备。
- TEGU 的进一步发展将在该界面上实现。
邮件服务器修订:
Tegu 有两个不同的版本:
Free — 免费使用,制造商建议最多使用 50 个邮箱、
Tegu Enterprise - 是一款商用服务器,支持 Postgres 数据库中的集中式邮件存储,无限支持计算节点的水平扩展,内置共享个人和日历服务器,以及共享和个人地址簿服务器。
外部服务:
Tegu 可与目录服务器一起使用,不会在任何地方维护或同步用户群,因此不会泄露密码。
目录服务器可以是 Microsoft Active Directory、ALD Pro、FreeIPA、OpenLDAP,数量不限。
重要:Tegu 不会更改 LDAP,包括更改账户密码
Tegu 企业数据架构:
TEGU 服务器在运行中使用三个存储库,分别用于:
1. 配置存储。
2. SMTP 队列存储。
3. 数据存储(邮件信息、日历、地址簿等)。
存储可以是本地存储,也可以是网络存储。
• 本地磁盘上的 SQLite 或网络资源上的 Postgres 可用于存储配置和队列。
• 要存储数据,服务器可使用 MailDir 格式的本地磁盘或网络资源上的 Postgres。
邮政服务器部署:
成功部署邮件系统需要什么?
了解并掌握以下基础知识:网络、邮件协议、DNS、目录服务,并能清晰地按顺序执行本文中的步骤。
部署所需的组件:
Linux Debian 12 操作系统、postgres、证书、目录服务器(假设已安装和配置)、路由器端口转发。
今天,我们将考虑在单节点配置中安装 postgres 数据库(在生产系统中,数据库应始终与后节点分开放置)。
准备工作。
DNS 区域¶
DNS (Domain Name System) - 是一个全球分布式数据库,存储每个互联网域的记录。
邮件服务器要想成功运行,就必须正确、熟练地指定 DNS 区域,然后就可以一劳永逸了。
通常,在实践中我遇到过很多错误的 DNS 区域配置,一方面是荒谬的:
缺少 DKIM、MX、SFP 或存在多个 SFP 记录,还有一些记录拼写错误、
还有一些记录拼写错误,导致邮件无法到达服务器,原因很简单,DNS 不知道邮件的存在。
结论: DNS — 这是邮件服务器未来工作的基础,强烈建议不要忽略或跳过这一部分。
应该创建哪些 DNS 条目,它们负责什么?
SOA 记录 (Start of Authority) - 描述区的基本/初始设置。
每个区只能有一个 SOA 条目,而且应该是第一个。
NS 记录 (name server) - 表示域名委托给哪些服务器。
(通常情况下,在向主机商订购 Internet 域名时,这些服务器已经存在)。
A 记录 (address record) - 将主机名(域名)映射到 IPv4 地址。
必须为机器的每个网络接口创建一条 A 记录。
MX 记录 (mail exchange) - 指定向域发送邮件的主机。
(这可能是最重要的记录,没有它,邮件系统就无法工作)。
TXT 记录 用于 DKIM - 验证发件人真伪的机制。
验证通过数字签名进行,数字签名的公共部分位于相应区域的 DNS 中。
DKIM 可防止发送带有伪造发件人地址的邮件。
TXT 记录 用于 DMARC - 一种减少垃圾邮件和网络钓鱼邮件数量的机制。
DMARC 描述了服务器对未通过 DKIM 和 SPF 检查的电子邮件采取的措施。
它还描述了每天一次发送这些行动报告的地址。
DNS 反向区 - 是一个特殊的域名区,允许域名相对于 IP 地址的反向解析。
反向区实际上只允许一条 A 类记录,称为 PTR。
这很重要 - 在设置邮件服务器之前,应要求 ISP 设置 PTR 记录、
否则,在与其他邮件服务器进行初始通信时,域名和 IP 地址都有可能受到影响。
恢复可能需要大量时间。
在基本设置中对邮件服务器进行初始配置时,服务器最近会自行提供 DNS 区域中应创建的记录。
但如果出于某种原因你不知道或不理解需要写什么,可以将此项目推迟到我们开始配置邮件服务器的时候,在所有设置之后会有一个包含所有参数的工具提示。
如果你已经完成了所有必要的输入,那么现在就是检查 DNS 区域的时候了。
NS 记录验证:
$ host -t ns tegu.online
tegu.online name server ns4-cloud.nic.ru.
tegu.online name server ns4-l2.nic.ru.
tegu.online name server ns8-cloud.nic.ru.
tegu.online name server ns3-l2.nic.ru.
tegu.online name server ns8-l2.nic.ru.
CNAME 记录验证:
$ host mail.tegu.online mail.tegu.online has address 79.137.210.127
MX 记录验证:
$ host -t mx tegu.online tegu.online mail is handled by 10 mail.tegu.online.
验证 SPF 的 TXT 记录:
$ host -t txt tegu.online tegu.online descriptive text "v=spf1 mx -all"
用于 DMARC 的 TXT 记录验证:
$ host -t txt _dmarc.tegu.online _dmarc.tegu.online descriptive text "v=DMARC1; p=quarantine; rua=mailto:abuse@tegu.online"
TXT 记录验证 DKIM:
$ host -t txt mail._domainkey.tegu.online mail._domainkey.tegu.online descriptive text "v=DKIM1; h=sha256; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDRKjngoDbWD3Cj1NHc/GB9YB4i3bjmJV2R0HfVpph2Hze1e6u1a9p8PiTkZQOA/Meuusb9YwrnxD27L+boZways1CQvWWvK3aySEWMy5VcauJw3BBNRJK4cMwlXv1DC9hzrFLqjynVQfqEWtKGk3Dgm6K+nH1IBu6ZVUwCC35nQQIDAQAB"
配置路由器¶
向外转发端口,以便服务器正确运行。
邮件服务器的标准 TCP 端口:
25, 80, 443, 465, 993 其他一切都是可有可无的。
在使用 OpenWRT 固件的路由器上,所有端口都在 “Port Forwards ”部分转发。
在带有邮件服务器的虚拟机上将 Yandex DNS 指定为 DNS 也很重要。
和 NAT Rules。
安装 TEGU Enterprise 邮件服务器¶
这很重要 - 安装前,有必要检查系统中是否安装了 Postfix
或其他邮件服务器,如果安装了,则应将其删除,否则它会干扰我们的工作并占用端口。
还要注意的是,teguctl 工具可以完全访问服务器的参数,因此出于安全考虑,有必要赋予它必要的运行权限。
在 Debian 中,您可以这样做:
查看
systemctl status postfix
删除
apt purge postfix
安装前请注意,所有工作都必须以 root 身份进行。
转到发行版页面。https://downloads.mbk-lab.ru/
复制本文写作时的 tegu-ent-v1.42.18-x86_64.tar.gz 版本链接。
重要的是不要混淆架构,事实上 Tegu 可在 x86_64 和 arm 架构下编译。
然后,在控制台中使用 wget 命令粘贴链接
wget https://downloads.mbk-lab.ru/stable/enterprise/x86_64/1.42/tegu-ent-v1.42.18-x86_64.tar.gz
在此解压
$ tar -xvf tegu-ent-v1.42.18-x86_64.tar.gz
tegu-ent-v1.42.18-x86_64/ tegu-ent-v1.42.18-x86_64/sbin/ tegu-ent-v1.42.18-x86_64/sbin/tegu
为服务器创建目录结构:
$ mkdir /opt/tegu $ mkdir /opt/tegu/{bin,sbin,data,certs}
将可执行文件复制到工作目录:
$ cp tegu-ent-v1.42.18-x86_64/sbin/* /opt/tegu/sbin/ $ cp tegu-ent-v1.42.18-x86_64/bin/* /opt/tegu/bin/
分配用户和权限:
$ chown -R mail. /opt/tegu/{data,certs} $ chgrp -R mail /opt/tegu/{bin,sbin} $ chmod 750 /opt/tegu/{data,certs} $ chmod -R 750 /opt/tegu/sbin $ chmod -R 750 /opt/tegu/bin
检查创建的目录和文件是否正确,权限是否正确:
$ ls -l /opt/tegu
应该是这样的:
$ ls -l /opt/tegu /opt/tegu: итого 16 drwxr-x--- 2 root mail 4096 апр 11 14:32 bin drwxr-x--- 2 mail mail 4096 апр 11 14:32 certs drwxr-x--- 2 mail mail 4096 апр 11 14:32 data drwxr-x--- 2 root mail 4096 апр 11 14:33 sbin 自定义启动和管理机制: $ nano /etc/systemd/system/tegu.service
/etc/systemd/system/tegu.service 文件的内容应如下所示:
[Unit] Description=Tegu. MBK-Lab Mail Server [Service] ExecStart=/opt/tegu/sbin/tegu User=mail Group=mail UMask=0007 RestartSec=10 Restart=always [Install] WantedBy=multi-user.target
允许服务器以非特权用户身份运行:
$ setcap CAP_NET_BIND_SERVICE=+eip /opt/tegu/sbin/tegu
您需要在 /etc/tegu.conf 中创建一个配置文件,内容如下:
$ nano /etc/tegu.conf
[global] dataDir = /opt/tegu/data [Log] debug = false [WEB] adminPassword = admin httpPort = 8888 httpsPort = 9999 ctlPort = 8899
并更换驾照:
$ chown root.mail /etc/tegu.conf
$ chmod 640 /etc/tegu.conf
首次启动时,服务器将按以下顺序查找配置文件:
• /etc/tegu.conf
• ~/tegu.conf (например, /var/mail/tegu.conf)
如果未找到该文件,则将在 ~/tegu.conf 路径下创建该文件。
要详细记录服务器运行情况,请更改参数值
debug = true
使用 adminPassword 参数值登录管理界面(使用 admin 员登录)。
重要 - 立即更改管理员密码以确保安全。
允许服务器在操作系统启动时自动运行:
$ systemctl enable tegu.service
该命令会在磁盘上的某一点创建一个符号链接,指向 /etc/systemd/system/tegu.service 中服务文件的副本、
在该位置 systemd 查找要自动运行的文件,同时更新 systemd 配置。
请记住,每次更改 /etc/systemd/system/tegu.service 中的配置时,都必须更新 systemd 配置。
更新可通过命令 sudo systemctl reload tegu.service 完成。
启动服务器(手动):
$ systemctl start tegu.service
控制服务的启动(服务状态):
$ systemctl status tegu.service
Правильно работающий сервер возвращает примерно такое:
● tegu.service - Tegu. MBK-Lab Mail Server Loaded: loaded (/etc/systemd/system/tegu.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2022-04-11 13:58:09 MSK; 50min ago Main PID: 88519 (tegu) Tasks: 9 (limit: 9357) Memory: 3.3M CGroup: /system.slice/tegu.service └─88519 /opt/tegu/sbin/tegu апр 11 13:58:09 systemd[1]: Started Tegu. MBK-Lab Mail Server.
如果前面的所有步骤都已正确完成,您就可以访问基于网络的服务器管理面板,在此进行所有其他设置。
至此,服务器安装完成。
下面我们继续安装 Postgres 数据库服务器。
Postgres 安装和配置¶
apt install postgresql postgresql-contrib
检查服务状态。
systemctl status postgresql
安装后立即检查服务器是否侦听 5432 端口以及侦听的地址。
ss -lnpt | grep 5432
应大致看到这一结论。
LISTEN 0 244 127.0.0.1:5432 0.0.0.0:* users:(("postgres",pid=26097,fd=6)) LISTEN 0 244 [::1]:5432 [::]:* users:(("postgres",pid=26097,fd=5))
自动启动 Postgresql。
systemctl enable postgresql
创建数据库。
我们需要创建 tegu 用户。
转到 postrges
su - postgres -s /bin/bash
创建用户:
createuser -d -S -E -P tegu
创建 3 个数据库。
tegu_queue - 队列数据库
tegu_mailboxes - 邮件存储数据库
tegu_settings - 邮件服务器设置数据库
createdb -E UTF-8 -O tegu tegu_queue createdb -E UTF-8 -O tegu tegu_mailboxes createdb -E UTF-8 -O tegu tegu_settings
规定子网的访问权限。
nano /var/lib/pgsql/data/pg_hba.conf
Если версия Pro то путь может быть такой
nano /var/lib/pgpro/std-14/data/pg_hba.conf
例如,我们的配置 pg_hba.conf
# TYPE DATABASE USER ADDRESS METHOD # "local" is for Unix domain socket connections only local all all peer # IPv4 local connections: host all all 127.0.0.1/32 md5 # IPv6 local connections: host all all ::1/128 md5 # Allow replication connections from localhost, by a user with the # replication privilege. local replication all peer host replication all 127.0.0.1/32 md5 host replication all ::1/128 md5 host all all 10.199.199.0/24 md5 host all all 10.44.44.0/24 md5 host all all 10.0.0.0/8 md5
*
还需要在配置文件中取消对端口 5432 和可以连接数据库的 IP 地址的注释。
例如
listen_addresses = '*' # what IP address(es) to listen on; # comma-separated list of addresses; # defaults to 'localhost'; use '*' for all # (change requires restart) port = 5432 # (change requires restart)
用于普通版本的 postgres
nano /var/lib/pgsql/data/postgresql.conf
или для версии pro
nano /var/lib/pgpro/std-14/data/postgresql.conf
更改配置文件后,有必要重新启动数据库以应用设置中的更改。
Полезные команды*
看看我们有哪些数据库。
psql -U postgres -c "\l+"
删除数据库。
psql DROP DATABASE tegu_mailboxes;
检查数据库服务器连接的命令:
psql -U tegu -d tegu_settings -h 172.16.10.2 -p 5432 -W
-U (用户名) -d (数据库名) -h (数据库服务器主机) -p (庇护) -W (暗号)
初始设置¶
通过你的 IP 地址进入网络界面,我用的是 localhost,你可以用自己的地址。
http://localhost:8888
我们首先看到的是数据库类型的选择,我们选择 postgreSQL。
在新参数数据库中填写相应设置。
点击保存设置。
保存后,邮件服务器将重新启动,你将看到一个完整的 Web 界面,我们需要对其进行配置。
我们首先看到的是信息面板,在这里我们立刻被没有许可证所吸引。
许可证可以稍后安装,也可以立即安装,没有许可证不会影响设置。
要安装许可证,请打开面板中的部分 - 定制 → 许可 → 下载许可证文件。
下载许可证后,您将在信息面板中看到许可证状态已更改。
Tegu 基本设置¶
在主设置中,我们首先看到的是一个新的控制面板,分为多个清晰的部分。
我们将依次填写。
我们首先看到的是基本设置:
通常,很多人在这里都会犯一个大错误:他们写的不是邮件服务器的名称,而是服务器所在节点的名称。
1. 基本设置:
就我而言,这里将使用以下设置: mail.tegu.online
如果 DNS 区域正确无误,那么在 ping 该资源时,我们会看到该资源响应的是外部 IP 地址。
要配置其余设置,必须添加邮件域:
这很重要: 注意参数 - 邮件域。
这里我们指定的是互联网域名,在我们的例子中是 tegu.online,而不是 mail.tegu.online。
点击添加域按钮后,我们进入邮件存储设置:再次选择 Postgres 作为存储。
写入数据库服务器的连接设置、相应的数据库名称tegu_mailboxes、登录名和密码。
您还可以在此为所有邮箱设置配额,并启用恢复文件夹、
这是一项新功能,将来可以从回收站恢复已删除的邮件。
配置消息队列¶
配置消息队列时,选择 PostgreSQL 作为处理程序
填入所有数据,应该如下所示。
检查 SQL Server 的可用性并保存设置。
配置用户数据库参数。¶
定义 LDAP 连接设置¶
在随意指定任何设置之前,最好使用 ldapsearch 工具。
通过该工具,我们可以正确查找并指定所有设置。
让我们进入邮件服务器的控制台,在命令行中检查未来连接的正确性。
如果没有 ldapsearch 工具,请使用此命令安装 ldap-utils 软件包:
apt install ldap-utils
团队简介:
ldapsearch -x -b <search_base> -H <ldap_host> -D <bind_dn> -W
在我的案例中,收到了以下连接到 LDAP 的命令:
ldapsearch -x -b "DC=tegu,DC=online" -H ldap://10.44.44.16:389
该团队的成果相当有趣,不言自明。
不过,你和我都会要求获得一个特定用户 uid=ikurennov 的信息:
$ ldapsearch -x -b "uid=ikurennov,ou=People,DC=tegu,DC=online" -H ldap://10.44.44.16:389
# extended LDIF # # LDAPv3 # base <uid=ikurennov,ou=People,DC=tegu,DC=online> with scope subtree # filter: (objectclass=*) # requesting: ALL # # iurennov, People, tegu.online dn: uid=ikurennov,ou=People,dc=tegu,dc=online objectClass: posixAccount objectClass: inetOrgPerson objectClass: organizationalPerson objectClass: person homeDirectory: /home/ikurennov loginShell: /bin/bash uid: ikurennov uidNumber: 10001 gidNumber: 10000 title:: 0JjQvdC20LXQvdC10YA= o:: 0JzQkdCaLdCb0LDQsQ== mail: ikurennov@tegu.online sn:: 0JrQsNC70YzQvNC10YLQvtCy givenName:: 0JjQs9C+0YDRjA== cn:: 0JrQsNC70YzQvNC10YLQvtCyINCY0LPQvtGA0Yw= jpegPhoto:: /9j/4AAQSkZJRgABAQAASABIAAD/7QByUGhvdG9zaG9wIDMuMAA4QklNBAQAAAAAAD ocAVoAAxslRxwCAAACAAIcAigAFm0zTXV6VDhMVHNHQ0JLWCUwc0t4MEEcAhkAC1Bob3RvIEJvb3R Bh479yI1rrF7bn/9k= facsimileTelephoneNumber: 10000 # search result search: 2 result: 0 Success # numResponses: 2 # numEntries: 1
如何解释此输出结果?
• 邮件服务器可以通过登录 BindDN:cn=admin,dc=tegu,dc=online 和密码访问 LDAP 服务器 ldap://10.44.44.16:389;
• 搜索区域的定义 BaseDN dc=tegu,dc=online ;
• 定义的领域 Attr for mailbox e-mail = mail ;
• 定义的领域 Attr for mailbox quota (value in MB) = facsimileTelephoneNumber。
现在我们继续在 Tegu 管理界面中设置用户数据库提供程序。
• 场 Provider Name - 任何表示连接名称的文本;
• Local Domain Name - 域名 (但不是服务器,即电子邮件地址中 @ 后面的内容。);
• LDAP server connection URI - 发现并验证以上内容后让服务器;
• BindDN - 登录;
• Password - 暗号;
• BaseDN - 在上面找到搜索过滤器;
• Atr for mailbox e-mail - 字段名,在 LDAP 中,该字段名由用户的电子邮件地址(重要!带域后缀)填充;
• Atr for mailbox quota - LDAP 用于定义配额的字段名称。
这是我们与目录服务器成功集成所需的最低设置。
这很重要: 由于我们使用的是 OpenLDAP,因此 BindDN 字段的格式为 UPN - user@realm.com、
此选项也适用于 Microsoft AD,但如果使用 FreeIPA 或 ALD Pro 作为目录服务器、
那么 BindDN 必须是完整的 DN (uid=user,ou=org_unit,dc=domain,dc=com)
连接到 Active Directory 的示例。¶
这足以开始创建用户和发送邮件。
安装和生成 Letsencrypt 证书¶
证书颁发机构免费提供 X.509 加密证书,用于加密互联网上传输的 HTTPS 数据和互联网上服务器使用的其他协议。
证书签发过程完全自动化。
Let's Encrypt 证书颁发机构颁发的证书有效期为 90 天。
要获得证书,必须转发以下端口:80、443。
这很重要!
在生成或购买证书时,证书*终必须以邮件服务器名称而非域名签发!
适用于 Debian 发行版。
检查软件包更新
apt update
安装Letsencrypt
apt install certbot
为邮件域获取证书
certbot certonly --standalone -m ваша_почта@yandex.ru -d mail.вашдомен.рф
- ваша_почта@yandex.ru - Здесь вы указываете действующий рабочий почтовый ящик, куда будут приходить письма от Letsencrypt
我们检查证书是否已收到
cd /etc/letsencrypt/live/mail.вашдомен.рф/ ls
您应该看到以下文件:
cert.pem chain.pem fullchain.pem privkey.pem README
我们感兴趣的是 fullchain.pem privkey.pem
对于 RED OS 7.3
为了获取并安装证书,我们需要安装 certbot 软件包、
但 RED OS 版本库中没有这个软件包,所以我们将使用 Python 安装。
Python 已经安装好了,让我们安装缺少的软件包。
dnf install python-virtualenv
创建目录
mkdir -p /web/install/python/
转到该目录
cd /web/install/python/
接下来,我们需要为应用程序创建一个虚拟环境。我们将把这个环境称为 python-red
python3 -m venv python-red
接下来,激活 python-red 应用程序环境
source python-red/bin/activate
如果一切操作正确,我们将看到现在已进入 python 开发环境
接下来,我们需要更新
pip install --upgrade pip
现在安装 certbot 软件包
pip install certbot
安装软件包后,开始获取 SSL 证书的程序
certbot certonly --standalone -m ваша_почта@yandex.ru -d mail.вашдомен.рф
检查证书是否已收到
cd /etc/letsencrypt/live/mail.вашдомен.рф/ ls
应该能看到以下文件 :
cert.pem chain.pem fullchain.pem privkey.pem README
我们感兴趣的是 fullchain.pem privkey.pem
自动更新证书¶
在根文件夹中创建一个工作文件夹,这在以后会很有用
mkdir work
在 Letsencrypt 文件夹中创建一个 Letsencrypt 钩子,内容如下:
nano /etc/letsencrypt/renewal-hooks/deploy/hook01
#!/bin/sh do if [ "$domain" = mail.вашдомен.рф ] then /root/work/tegu_certs /bin/systemctl restart tegu fi done
使其可执行
chmod +x /etc/letsencrypt/renewal-hooks/deploy/hook01
Далее создаем еще один скрипт
nano /root/work/tegu_certs
并在其中写入以下几行
#!/bin/bash cat /etc/letsencrypt/live/mail.вашдомен.рф/fullchain.pem > /opt/tegu/certs/cert.pem cat /etc/letsencrypt/live/mail.вашдомен.рф/privkey.pem > /opt/tegu/certs/key.pem chgrp mail /opt/tegu/certs/* chmod 640 /opt/tegu/certs/*
使脚本可执行
chmod +x /root/work/tegu_certs
更改所有权组
chgrp root /etc/letsencrypt/archive/mail.вашдомен.рф/*
运行脚本
/root/work/tegu_certs
检查脚本的执行结果
ls -lh /opt/tegu/certs/
证书应出现在此文件夹中
cert.pem key.pem
因此,我们在邮件服务器的主设置中指定了以下证书路径。
/opt/tegu/certs/cert.pem /opt/tegu/certs/key.pem
应该是这样的
证书生成并写入邮件服务器后,应在主设置中启用 “授权需要 TLS/SSL 加密 ”选项
让我们重新启动邮件服务器:
systemctl restart tegu
重要的是要记住 要成功自动生成证书,80 和 443 端口必须向外转发。
完成所有设置后,您就可以检查邮件服务器监听的端口了。
netstat -lnp
作为回应,你应该看到:
root@tegu:~# netstat -tulpn | grep tegu tcp 0 0 127.0.0.1:8899 0.0.0.0:* LISTEN 81/tegu tcp6 0 0 :::8888 :::* LISTEN 81/tegu tcp6 0 0 :::9999 :::* LISTEN 81/tegu tcp6 0 0 :::25 :::* LISTEN 81/tegu tcp6 0 0 :::143 :::* LISTEN 81/tegu tcp6 0 0 :::465 :::* LISTEN 81/tegu tcp6 0 0 :::993 :::* LISTEN 81/tegu
生成 DKIM¶
转到 DKIM 部分,按下按钮
添加 DKIM 密钥。
最后微调 DNS¶
在完成所有设置后,如果之前没有配置过 DNS 区域,请进入 Web 界面的 “信息面板 ”部分。
在最下方,我们可以看到所有以 BIND 格式进行的设置,TEGU 建议您这样做。
请注意这一点。
邮箱管理¶
要在域帐户中创建邮箱,必须设置:
登录; 暗号; 电子邮件字段必须包含完整格式的用户电子邮件地址。例如:test@tegu.ooline
创建邮箱的前提条件¶
用户邮箱有两种管理方式:
#在本地 JSON File User DB中创建帐户。 此方法仅适用于非常小的单节点服务器。 这种方法是唯一可用于TEGU免费版的方法。
#在目录服务器上创建帐户(与邮件服务器集成)。 这种方法对于大多数信息系统是有利的。
- 用户名;
- 密码;
- 场地 Email 必须包含完整格式的用户电子邮件地址。示例: ik@mbk-lab.ru .
其他字段可选,但建议使用。例如配额等。
创建邮箱¶
邮箱工作的具体细节主要取决于服务器处理用户凭证的具体细节。
前面我们已经写到,服务器不会同步目录服务器的数据,而是在需要执行用户授权时访问目录服务器。同时,服务器并不保存接收到的信息,而只是将其缓存一段时间。
缓存是必要的,以防止邮件服务器在出现 DDOS 时向目录服务器发出大量请求。
默认情况下缓存时间为 10 秒,您可以使用参数 “User DB Providers/<selected provider>/Cache TTL (seconds) ”自行更改。
这意味着,在需要授权之前,服务器不会知道您在目录服务器上创建的用户的存在。
需要授权的情况有:
- 服务器已收到该用户的电子邮件;
- 服务器收到该用户的电子邮件;
- 用户配置客户端软件或在网络邮件网站注册。
如果没有这种情况,但服务器不知道该用户的存在,因此不会创建邮箱。此外,该用户也不会参与已使用许可的计算。
不过,在首次成功授权时,邮箱会自动创建。
删除邮箱¶
让我们考虑一下相反的情况。您删除了域中的一个用户,该用户账户已不存在。这只意味着服务器不再接收任何身份验证请求,但并不意味着应该删除邮箱。它将保留在邮件服务器上。
因此,这意味着您必须自行(手动)删除已不活动的邮箱。
要删除邮箱,请使用 “邮件存储/邮件控制面板<相关域>/邮箱 ”对话框。
这种特殊性乍一看可能很奇怪,但其目的是确保邮件服务器运行的高度安全性。