Проект

Общее

Профиль

特固企业快速入门

Choose a language: RU | EN | ZH

Table of contents

本节旨在帮助您快速安装和配置邮件服务器,并在测试我们产品的过程中将损失降到最低。

为此,我们尽可能详细地介绍了所有材料,并考虑到了在这一工作过程中可能等待您的所有微妙之处和陷阱。

我们特意没有将重点放在不同的操作系统上,而是只将 Linux Debian 作为参考。
但这并不意味着你必须选择这个特定的发行版,相反,这完全取决于你的经验和技术背景。

我们首先要提请你注意的是:

有必要仔细研读 “快速启动 ”一文,严格按照顺序清楚地完成每个步骤,不要跳过任何部分,否则就有可能浪费时间。
为了控制每个步骤,最好制作一份检查表,严格记录完成任务过程中的每个步骤:

  1. 请记住,6 个小时的调试可以节省 5 分钟的文档阅读时间,但我们还是建议您从阅读文档开始。
  2. 在第一次设置服务器时,先学习如何用最简单的方法进行设置,然后再开始构建奇特的方案。
  3. 正确指定*所有* DNS 区域。(如果可能,最好公开资源记录,否则有可能浪费时间配置和调试内部 DNS 区域)。
  4. 进行必要的路由设置。
  5. 安装 Tegu 邮件服务器。
  6. 安装和配置 Postgres 数据库。
  7. 执行初始邮件服务器配置。
  8. 添加邮件存储。
  9. 配置消息队列。
  10. 与目录服务器集成(在此,您需要非常谨慎地处理这一部分,所有设置都是针对每个目录服务器的,错误的参数设置不能保证正确运行,因此我们建议您将注意力集中在这一阶段的配置上)。
  11. 安装和配置证书。
  12. 生成 DKIM。
  13. 执行 DNS 区域的最终配置。
  14. 安装许可证。
  15. 开始测试产品。

联系技术支持的规则:

  • 请记住,简短的描述会不必要地浪费您的时间。我们将与您对话,直到获得解决问题所需的全部信息。
  • 因此,您的上诉书应尽可能内容翔实。
  • 对问题的描述应循序渐进,不遗漏行动,不泛泛而谈,不使用模棱两可的俗语,用简单的语言,严格地从系统的角度进行描述。
  • 提供系统信息。为此,请运行 /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 -
此选项也适用于 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 必须包含完整格式的用户电子邮件地址。示例: .

其他字段可选,但建议使用。例如配额等。

创建邮箱

邮箱工作的具体细节主要取决于服务器处理用户凭证的具体细节。
前面我们已经写到,服务器不会同步目录服务器的数据,而是在需要执行用户授权时访问目录服务器。同时,服务器并不保存接收到的信息,而只是将其缓存一段时间。

缓存是必要的,以防止邮件服务器在出现 DDOS 时向目录服务器发出大量请求。
默认情况下缓存时间为 10 秒,您可以使用参数 “User DB Providers/<selected provider>/Cache TTL (seconds) ”自行更改。

这意味着,在需要授权之前,服务器不会知道您在目录服务器上创建的用户的存在。

需要授权的情况有:

  • 服务器已收到该用户的电子邮件;
  • 服务器收到该用户的电子邮件;
  • 用户配置客户端软件或在网络邮件网站注册。

如果没有这种情况,但服务器不知道该用户的存在,因此不会创建邮箱。此外,该用户也不会参与已使用许可的计算。

不过,在首次成功授权时,邮箱会自动创建。

删除邮箱

让我们考虑一下相反的情况。您删除了域中的一个用户,该用户账户已不存在。这只意味着服务器不再接收任何身份验证请求,但并不意味着应该删除邮箱。它将保留在邮件服务器上。
因此,这意味着您必须自行(手动)删除已不活动的邮箱。

要删除邮箱,请使用 “邮件存储/邮件控制面板<相关域>/邮箱 ”对话框。

这种特殊性乍一看可能很奇怪,但其目的是确保邮件服务器运行的高度安全性。