网站搜索

如何配置 iRedMail 服务并将其集成到 Samba4 AD DC - 第 11 部分


在本教程中,我们将学习如何修改提供邮件服务的 iRedMail 主守护进程,分别是用于邮件传输的 Postfix 和将邮件发送到帐户邮箱的 Dovecot,以便将它们集成到 Samba4 Active Directory 域控制器中。

通过将 iRedMail 集成到 Samba4 AD DC,您将受益于以下功能:通过 Samba AD DC 进行用户身份验证、管理和状态,借助 AD 组和 Roundcube 中的全局 LDAP 地址簿创建邮件列表。

要求

  1. 在 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地址)。如果您到目前为止尚未为域控制器配置反向区域,请阅读以下教程:

  1. 从 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 命令行,如以下主题中所述。

  1. 从 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_hostbind_dnbind_pwsearch_base 中的值以反映您自己的域自定义设置。

14. 接下来,打开 Postfix 主配置文件并通过添加注释 # 搜索并禁用 iRedAPD check_policy_servicesmtpd_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 服务。