如何配置 iRedMail 服务并将其集成到 Samba4 AD DC - 第 11 部分
在本教程中,我们将学习如何修改提供邮件服务的 iRedMail 主守护进程,分别是用于邮件传输的 Postfix 和将邮件发送到帐户邮箱的 Dovecot,以便将它们集成到 Samba4 Active Directory 域控制器中。
通过将 iRedMail 集成到 Samba4 AD DC,您将受益于以下功能:通过 Samba AD DC 进行用户身份验证、管理和状态,借助 AD 组和 Roundcube 中的全局 LDAP 地址簿创建邮件列表。
要求
- 在 CentOS 7 上安装 iRedMail 以进行 Samba4 AD 集成
第 1 步:准备 iRedMail 系统以进行 Sama4 AD 集成
1.第一步,如果您使用 DHCP 服务器提供的动态 IP 地址,则需要为您的计算机分配静态 IP 地址。
运行 ifconfig 命令列出您的计算机网络接口名称,并通过针对正确的 NIC 发出 nmtui-edit 命令,使用自定义 IP 设置编辑正确的网络接口。
使用root权限运行nmtui-edit命令。
ifconfig
nmtui-edit eno16777736
2. 打开网络接口进行编辑后,添加正确的静态 IP 设置,确保添加 Samba4 AD DC 的 DNS 服务器 IP 地址和域名称,以便查询来自您机器的领域。使用下面的屏幕截图作为指导。
3. 完成网络接口配置后,重新启动网络守护程序以应用更改,并对域名和 samba4 域控制器 FQDN 发出一系列 ping 命令。
systemctl restart network.service
cat /etc/resolv.conf # verify DNS resolver configuration if the correct DNS servers IPs are queried for domain resolution
ping -c2 tecmint.lan # Ping domain name
ping -c2 adc1 # Ping first AD DC
ping -c2 adc2 # Ping second AD DC
4. 接下来,通过安装 ntpdate 软件包与 samba 域控制器同步时间,并通过发出以下命令查询 Samba4 机器的 NTP 服务器:
yum install ntpdate
ntpdate -qu tecmint.lan # querry domain NTP servers
ntpdate tecmint.lan # Sync time with the domain
5.您可能希望本地时间自动与Samba AD时间服务器同步。为了实现此设置,请通过发出 crontab -e 命令添加一个每小时运行的计划作业并附加以下行:
0 */1 * * * /usr/sbin/ntpdate tecmint.lan > /var/log/ntpdate.lan 2>&1
步骤 2:为 iRedMail 集成准备 Samba4 AD DC
6. 现在,转移到安装了 RSAT 工具的 Windows 计算机来管理 Samba4 Active Directory,如本教程中所述。
打开 DNS 管理器,转到您的域正向查找区域,然后添加新的 A 记录、MX 记录和指向您的 iRedMail 系统 IP 地址的 PTR 记录。使用下面的屏幕截图作为指导。
添加A记录(相应替换iRedMail机器的名称和IP地址)。
添加 MX 记录(将子域留空并为此邮件服务器添加 10 优先级)。
通过扩展到反向查找区域添加PTR记录(相应地替换iRedMail服务器的IP地址)。如果您到目前为止尚未为域控制器配置反向区域,请阅读以下教程:
- 从 Windows 管理 Samba4 DNS 组策略
7. 添加了使邮件服务器正常运行的基本 DNS 记录后,移动到 iRedMail 计算机,安装 bind-utils 软件包并查询新添加的以下摘录中建议的邮件记录。
Samba4 AD DC DNS 服务器应使用上一步中添加的 DNS 记录进行响应。
yum install bind-utils
host tecmint.lan
host mail.tecmint.lan
host 192.168.1.245
在 Windows 计算机上,打开命令提示符窗口,并对上述邮件服务器记录发出 nslookup 命令。
8. 作为最后的先决条件,在 Samba4 AD DC 中创建一个具有最低权限的新用户帐户,名称为 vmail,为此用户选择一个强密码并确保该用户的密码永不过期。
iRedMail 服务将使用 vmail 用户帐户来查询 Samba4 AD DC LDAP 数据库并提取电子邮件帐户。
要创建 vmail 帐户,请从已加入领域并安装了 RSAT 工具的 Windows 计算机使用 ADUC 图形工具(如下面的屏幕截图所示),或直接从域控制器使用 samba-tool 命令行,如以下主题中所述。
- 从 Linux 命令行管理 Samba4 Active Directory
在本指南中,我们将使用上面提到的第一种方法。
9. 在 iRedMail 系统中,通过发出以下命令来测试 vmail 用户查询 Samba4 AD DC LDAP 数据库的能力。返回的结果应该是您的域的对象条目总数,如下面的屏幕截图所示。
ldapsearch -x -h tecmint.lan -D '[email ' -W -b 'cn=users,dc=tecmint,dc=lan'
注意:替换 Samba4 AD 中的域名和 LDAP 基本 dn ('cn=users,dc=howtoing,dc=lan' ) 因此。
步骤 3:将 iRedMail 服务集成到 Samba4 AD DC
10. 现在是时候篡改 iRedMail 服务(Postfix、Dovecot 和 Roundcube)来查询 Samba4 域控制器的邮件帐户了。
第一个要修改的服务是 MTA 代理 Postfix。发出以下命令以禁用一系列 MTA 设置,将您的域名添加到 Postfix 本地域和邮箱域,并使用 Dovecot 代理将收到的邮件本地传送到用户邮箱。
postconf -e virtual_alias_maps=' '
postconf -e sender_bcc_maps=' '
postconf -e recipient_bcc_maps= ' '
postconf -e relay_domains=' '
postconf -e relay_recipient_maps=' '
postconf -e sender_dependent_relayhost_maps=' '
postconf -e smtpd_sasl_local_domain='tecmint.lan' #Replace with your own domain
postconf -e virtual_mailbox_domains='tecmint.lan' #Replace with your own domain
postconf -e transport_maps='hash:/etc/postfix/transport'
postconf -e smtpd_sender_login_maps='proxy:ldap:/etc/postfix/ad_sender_login_maps.cf' # Check SMTP senders
postconf -e virtual_mailbox_maps='proxy:ldap:/etc/postfix/ad_virtual_mailbox_maps.cf' # Check local mail accounts
postconf -e virtual_alias_maps='proxy:ldap:/etc/postfix/ad_virtual_group_maps.cf' # Check local mail lists
cp /etc/postfix/transport /etc/postfix/transport.backup # Backup transport conf file
echo "tecmint.lan dovecot" > /etc/postfix/transport # Add your domain with dovecot transport
cat /etc/postfix/transport # Verify transport file
postmap hash:/etc/postfix/transport
11. 接下来,使用您喜欢的文本编辑器创建 Postfix /etc/postfix/ad_sender_login_maps.cf
配置文件,并添加以下配置。
server_host = tecmint.lan
server_port = 389
version = 3
bind = yes
start_tls = no
bind_dn = [email
bind_pw = ad_vmail_account_password
search_base = dc=tecmint,dc=lan
scope = sub
query_filter = (&(userPrincipalName=%s)(objectClass=person)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))
result_attribute= userPrincipalName
debuglevel = 0
12.使用以下配置创建/etc/postfix/ad_virtual_mailbox_maps.cf
。
server_host = tecmint.lan
server_port = 389
version = 3
bind = yes
start_tls = no
bind_dn = [email
bind_pw = ad_vmail_account_password
search_base = dc=tecmint,dc=lan
scope = sub
query_filter = (&(objectclass=person)(userPrincipalName=%s))
result_attribute= userPrincipalName
result_format = %d/%u/Maildir/
debuglevel = 0
13.使用以下配置创建/etc/postfix/ad_virtual_group_maps.cf
。
server_host = tecmint.lan
server_port = 389
version = 3
bind = yes
start_tls = no
bind_dn = [email
bind_pw = ad_vmail_account_password
search_base = dc=tecmint,dc=lan
scope = sub
query_filter = (&(objectClass=group)(mail=%s))
special_result_attribute = member
leaf_result_attribute = mail
result_attribute= userPrincipalName
debuglevel = 0
在所有三个配置文件中,替换 server_host、bind_dn、bind_pw 和 search_base 中的值以反映您自己的域自定义设置。
14. 接下来,打开 Postfix 主配置文件并通过添加注释 #
搜索并禁用 iRedAPD check_policy_service 和 smtpd_end_of_data_restrictions在以下几行前面。
nano /etc/postfix/main.cf
注释以下行:
#check_policy_service inet:127.0.0.1:7777
#smtpd_end_of_data_restrictions = check_policy_service inet:127.0.0.1:7777
15. 现在,通过发出一系列查询,使用现有域用户和域组验证 Postfix 与 Samba AD 的绑定,如以下示例所示。
结果应该与下面的屏幕截图所示类似。
postmap -q [email ldap:/etc/postfix/ad_virtual_mailbox_maps.cf
postmap -q [email ldap:/etc/postfix/ad_sender_login_maps.cf
postmap -q [email ldap:/etc/postfix/ad_virtual_group_maps.cf
相应地替换 AD 用户和组帐户。另外,请确保您使用的 AD 组已分配了一些 AD 用户成员。
16.下一步修改Dovecot配置文件以查询Samba4 AD DC。打开文件 /etc/dovecot/dovecot-ldap.conf
进行编辑并添加以下行。
hosts = tecmint.lan:389
ldap_version = 3
auth_bind = yes
dn = [email
dnpass = ad_vmail_password
base = dc=tecmint,dc=lan
scope = subtree
deref = never
user_filter = (&(userPrincipalName=%u)(objectClass=person)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))
pass_filter = (&(userPrincipalName=%u)(objectClass=person)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))
pass_attrs = userPassword=password
default_pass_scheme = CRYPT
user_attrs = =home=/var/vmail/vmail1/%Ld/%Ln/Maildir/,=mail=maildir:/var/vmail/vmail1/%Ld/%Ln/Maildir/
Samba4 AD 帐户的邮箱将存储在 Linux 系统上的 /var/vmail/vmail1/your_domain.tld/your_domain_user/Maildir/ 位置。
17. 确保在 dovecot 主配置文件中启用了 pop3 和 imap 协议。通过打开文件 /etc/dovecot/dovecot.conf
验证配额和 acl 邮件插件是否也已启用,并检查这些值是否存在。
18. (可选)如果要将全局硬配额设置为不超过每个域用户的最大存储空间 500 MB,请在 /etc/dovecot/dovecot.conf 中添加以下行: conf 文件。
quota_rule = *:storage=500M
19. 最后,为了应用迄今为止所做的所有更改,请使用 root 权限发出以下命令来重新启动并验证 Postfix 和 Dovecot 守护程序的状态。
systemctl restart postfix dovecot
systemctl status postfix dovecot
20. 要使用 IMAP 协议从命令行测试邮件服务器配置,请使用 telnet 或 netcat 命令,如下例所示。
nc localhost 143
a1 LOGIN ad_user@your_domain.tld ad_user_password
a2 LIST “” “*”
a3 LOGOUT
如果您可以使用 Samba4 用户帐户从命令行执行 IMAP 登录,那么 iRedMail 服务器似乎已准备好为 Active Directory 帐户发送和接收邮件。
下一篇教程将讨论如何将 Roundcube Webmail 与 Samba4 AD DC 集成并启用全局 LDAP 地址簿、自定义 Roudcube、从浏览器访问 Roundcube Web 界面以及禁用一些不需要的 iRedMail 服务。