社区编辑申请
注册/登录
如何配置并集成iRedMail服务到Samba4 AD DC中
系统 Linux
在本教程中,将学习如何修改提供邮件服务的 iRedMail 主要守护进程,相应地,Postfix 用于邮件传输,Dovecot 将邮件传送到帐户邮箱,以便将它们集成到 Samba4 AD 域控制器中。

如何配置并集成iRedMail服务到Samba4 AD DC中

在本教程中,将学习如何修改提供邮件服务的 iRedMail 主要守护进程,相应地,Postfix 用于邮件传输,Dovecot 将邮件传送到帐户邮箱,以便将它们集成到 Samba4 AD 域控制器中。

将 iRedMail 集成到 Samba4 AD DC 中,你将得到以下好处:通过 Samba AD DC 得到用户身份验证、管理和状态,在 AD 组和 Roundcube 中的全局 LDAP 地址簿的帮助下创建邮件列表。

要求

在 CentOS 7 中为 Samba4 AD 集成安装 iRedMail

***步:准备 iRedMail 系统用于 Samba4 AD 集成

1、 在***步中,你需要为你的机器分配一个静态的 IP 地址以防你使用的是由 DHCP 服务器提供的动态 IP 地址。

运行 ifconfig 命令列出你的机器网络接口名,并对正确的网卡发出 nmtui-edit 命令,使用自定义 IP 设置编辑正确的网络接口。

root 权限运行 nmtui-edit 命令。

  1. # ifconfig 
  2. # nmtui-edit eno16777736 

 

找出网络接口名

2、 在打开要编辑的网络接口后,添加正确的静态 IP 设置,确保添加了 Samba4 AD DC 的 DNS 服务器 IP 地址以及你的域的名字,以便从机器查询 realm。使用以下截图作为指导。

 

配置网络设置

3、 在你完成配置网络接口后,重启网络进程使更改生效,并对域名以及 samba 4 域控制器的 FQDN 使用 ping 命令测试。

  1. # systemctl restart network.service 
  2. # cat /etc/resolv.conf     # 验证 DNS 解析器配置是否对域解析使用了正确的 DNS 服务器 IP 
  3. # ping -c2 tecmint.lan     # ping 域名 
  4. # ping -c2 adc1            # ping ***个 AD DC 
  5. # ping -c2 adc2            # Ping 第二个 AD DC 

 

验证网络 DNS 配置

4、 接下来,用下面的命令安装 ntpdate 包,与域控制器同步时间,并请求 samba4 机器的 NTP 服务器:

  1. # yum install ntpdate 
  2. # ntpdate -qu tecmint.lan      # querry domain NTP servers 
  3. # ntpdate tecmint.lan          # Sync time with the domain 

 

与 Samba NTP 服务器同步时间

5、 你或许想要本地时间自动与 samba AD 时间服务器同步。为了实现这个设置,通过运行 crontab -e 命令并追加下面的行添加一条计划任务。

  1. 0   */1   *   *   *   /usr/sbin/ntpdate tecmint.lan > /var/log/ntpdate.lan 2>&1 

 

自动与 Samba NTP 同步时间

第二步:为 iRedMail 集成准备 Samba4 AD DC

6、 现在,如这篇教程所述进入一台安装了 RSAT 工具的 Windows 机器管理 Samba4 AD。

打开 DNS 管理器,转到你的域转发查找区并添加新的 A 记录、MX记录还有 PTR 记录指向你的 iRedMail 系统的 IP 地址。使用以下截图作为指导。

添加一条 A 记录(相应地用 iRedMail 机器的名字和 IP 替换)。

 

为 iRedMail 创建 DNS A 记录

添加 MX 记录(将子域留空,优先级为 10)。

 

为 iRedMail 创建 DNS MX 记录

在反向查找区域(相应地替换 iRedMail 服务器的 IP 地址)添加 PTR 记录。如果你尚未为域控制器配置反向区域,请阅读以下教程:从 Windows 管理 Samba4 DNS 组策略

 

为 iRedMail 创建 DNS PTR 记录

7、添加了使邮件服务器正常运行的基本 DNS 记录后,请进入 iRedMail 机器,安装 bind-utils 软件包,并按如下建议查询新添加的邮件记录。

Samba4 AD DC DNS 应该会响应之前添加的 DNS 记录。

  1. # yum install bind-utils 
  2. # host tecmint.lan 
  3. # host mail.tecmint.lan 
  4. # host 192.168.1.245 

 

安装 Bind 并查询邮件记录

在一台 Windows 机器上,打开命令行窗口并使用 nslookup 命令查询上面的邮件服务器记录。

8、 作为***一个先决要求,在 Samba4 AD DC 中创建一个具有最小权限的新用户帐户,并使用名称 vmail, 为此用户选择一个强密码, 并确保该用户的密码永不过期。

vmail 帐户将被 iRedMail 服务用来查询 Samba4 AD DC LDAP 数据库并拉取电子邮件帐户。

要创建 vmail 账户,如截图所示,使用加入了已安装 RSAT 工具域的 Windows 机器上的 ADUC 图形化工具,或者按照先前主题中那样用 samba-tool 命令行直接在域控制器中运行。

在本指导中,我们会使用上面提到的***种方法。

 

AD 用户和计算机

 

为 iRedMail 创建新的用户

 

为用户设置强密码

9、 在 iRedMail 系统中,用下面的命令测试 vmail 用户能够查询 Samba4 AD DC LDAP 数据库。返回的结果应该是你的域的对象总数, 如下截图所示。

  1. # ldapsearch -x -h tecmint.lan -D 'vmail@tecmint.lan' -W -b 'cn=users,dc=tecmint,dc=lan' 

注意:相应地替换域名以及 Samba4 AD 的 LDAP dn (cn=users,dc=tecmint,dc=lan)。

 

查询 Samba4 AD DC LDAP

第三步:将 iRedMail 服务集成到 Samba4 AD DC 中

10、 现在是时候修改 iRedMail 服务(Postfix、Dovecot 和 Roundcube)以便为邮箱帐户查询 Samba4 域控制器。

***个要修改的服务是 MTA 代理,Postfix。执行以下命令禁用一系列的 MTA 设置,添加你的域名到 Postfix 本地域以及邮箱域中,并使用 Dovecot 代理发送已接收的邮件到用户邮箱中。

  1. # postconf -e virtual_alias_maps=' ' 
  2. # postconf -e sender_bcc_maps=' ' 
  3. # postconf -e recipient_bcc_maps= ' ' 
  4. # postconf -e relay_domains=' ' 
  5. # postconf -e relay_recipient_maps=' ' 
  6. # postconf -e sender_dependent_relayhost_maps=' ' 
  7. # postconf -e smtpd_sasl_local_domain='tecmint.lan' #用你自己的域替换 
  8. # postconf -e virtual_mailbox_domains='tecmint.lan' #用你自己的域替换    
  9. # postconf -e transport_maps='hash:/etc/postfix/transport' 
  10. # postconf -e smtpd_sender_login_maps='proxy:ldap:/etc/postfix/ad_sender_login_maps.cf'  # 检查 SMTP 发送者 
  11. # postconf -e virtual_mailbox_maps='proxy:ldap:/etc/postfix/ad_virtual_mailbox_maps.cf'  # 检查本地邮件帐户 
  12. # postconf -e virtual_alias_maps='proxy:ldap:/etc/postfix/ad_virtual_group_maps.cf'  # 检查本地邮件列表 
  13. # cp /etc/postfix/transport /etc/postfix/transport.backup   # 备份 transport 配置 
  14. # echo "tecmint.lan dovecot" > /etc/postfix/transport       # 添加带 dovecot transport 的域 
  15. # cat /etc/postfix/transport                    # 验证 transport 文件 
  16. # postmap hash:/etc/postfix/transport 

11、 接下来,用你最喜欢的文本编辑器创建 Postfix 的 /etc/postfix/ad_sender_login_maps.cf 配置文件,并添加下面的配置。

  1. server_host     = tecmint.lan 
  2. server_port     = 389 
  3. version         = 3 
  4. bind            = yes 
  5. start_tls       = no 
  6. bind_dn         = vmail@tecmint.lan 
  7. bind_pw         = ad_vmail_account_password 
  8. search_base     = dc=tecmint,dc=lan 
  9. scope           = sub 
  10. query_filter    = (&(userPrincipalName=%s)(objectClass=person)(!(userAccountControl:1.2.840.113556.1.4.803:=2))) 
  11. result_attribute= userPrincipalName 
  12. debuglevel      = 0 

12、 使用下面的配置创建 /etc/postfix/ad_virtual_mailbox_maps.cf。

  1. server_host     = tecmint.lan 
  2. server_port     = 389 
  3. version         = 3 
  4. bind            = yes 
  5. start_tls       = no 
  6. bind_dn         = vmail@tecmint.lan 
  7. bind_pw         = ad_vmail_account_password 
  8. search_base     = dc=tecmint,dc=lan 
  9. scope           = sub 
  10. query_filter    = (&(objectclass=person)(userPrincipalName=%s)) 
  11. result_attribute= userPrincipalName 
  12. result_format   = %d/%u/Maildir/ 
  13. debuglevel      = 0 

13、 使用下面的配置创建 /etc/postfix/ad_virtual_group_maps.cf。

  1. server_host     = tecmint.lan 
  2. server_port     = 389 
  3. version         = 3 
  4. bind            = yes 
  5. start_tls       = no 
  6. bind_dn         = vmail@tecmint.lan 
  7. bind_pw         = ad_vmail_account_password 
  8. search_base     = dc=tecmint,dc=lan 
  9. scope           = sub 
  10. query_filter    = (&(objectClass=group)(mail=%s)) 
  11. special_result_attribute = member 
  12. leaf_result_attribute = mail 
  13. result_attribute= userPrincipalName 
  14. debuglevel      = 0 

替换上面三个配置文件中的 server_host、bind_dn、bind_pw 和 search_base 以反应你自己域的设置。

14、 接下来,打开 Postfix 主配置文件,通过在下面的行前添加 # 注释,搜索并禁用 iRedAPD 的 check_policy_service 和 smtpd_end_of_data_restrictions。

  1. # nano /etc/postfix/main.cf 

注释下面的行:

  1. #check_policy_service inet:127.0.0.1:7777 
  2. #smtpd_end_of_data_restrictions = check_policy_service inet:127.0.0.1:7777 

15、 现在,通过执行一系列查询,验证 Postfix 是否使用现有的域用户和域组绑定到 Samba AD,如以下示例所示。

结果应与下面的截图类似。

  1. # postmap -q tecmint_user@tecmint.lan ldap:/etc/postfix/ad_virtual_mailbox_maps.cf 
  2. # postmap -q tecmint_user@tecmint.lan ldap:/etc/postfix/ad_sender_login_maps.cf 
  3. # postmap -q linux_users@tecmint.lan ldap:/etc/postfix/ad_virtual_group_maps.cf 

 

验证 Postfix 绑定到了 Samba AD

相应替换 AD 用户及组帐户。同样,确保你使用的 AD 组已被分配了一些成员。

16、 在下一步中修改 Dovecot 配置文件以查询 Samba4 AD DC。打开 /etc/dovecot/dovecot-ldap.conf 文件并添加下面的行。

  1. hosts           = tecmint.lan:389 
  2. ldap_version    = 3 
  3. auth_bind       = yes 
  4. dn              = vmail@tecmint.lan 
  5. dnpass          = ad_vmail_password 
  6. base            = dc=tecmint,dc=lan 
  7. scope           = subtree 
  8. deref           = never 
  9. user_filter     = (&(userPrincipalName=%u)(objectClass=person)(!(userAccountControl:1.2.840.113556.1.4.803:=2))) 
  10. pass_filter     = (&(userPrincipalName=%u)(objectClass=person)(!(userAccountControl:1.2.840.113556.1.4.803:=2))) 
  11. pass_attrs      = userPassword=password 
  12. default_pass_scheme = CRYPT 
  13. user_attrs      = =home=/var/vmail/vmail1/%Ld/%Ln/Maildir/,=mail=maildir:/var/vmail/vmail1/%Ld/%Ln/Maildir/ 

Samba4 AD 帐户的邮箱将会存储在 /var/vmail/vmail1/your_domain.tld/your_domain_user/Maildir/ 中。

17、 确保 dovecot 的主配置文件中启用了 pop3 和 imap 协议。打开 /etc/dovecot/dovecot.conf 验证是否启用了 quota 和 acl 邮件插件,并检查这些值是否存在。

 

在 Dovecot 中启用 POP3 和 IMAP

18、 可选地,如果要将全局硬配额设置为每个域用户的***不超过 500 MB 存储,请在 /etc/dovecot/dovecot.conf 文件中添加以下行。

  1. quota_rule = *:storage=500M 

19、 ***,为了使目前这些更改生效,用 root 权限执行下面的命令重启并验证 Postfix 和 Dovecot 守护进程的状态。

  1. # systemctl restart postfix dovecot 
  2. # systemctl status postfix dovecot 

20、 为了使用 IMAP 协议从命令行测试邮件服务器配置,请使用 telnet 或 netcat 命令,如下所示。

  1. # nc localhost 143 
  2. a1 LOGIN ad_user@your_domain.tld ad_user_password 
  3. a2 LIST “” “*” 
  4. a3 LOGOUT 

 

测试 iRedMail 配置

如果你可以使用 Samba4 用户帐户从命令行执行 IMAP 登录,那么 iRedMail 服务器似乎已经准备好发送和接收 AD 帐户的邮件。

在下一个教程中将讨论如何将 Roundcube webmail 与 Samba4 AD DC 集成,并启用全局 LDAP 地址簿,自定义 Roudcube,从浏览器访问 Roundcube Web 界面,并禁用某些不需要的 iRedMail 服务。 

责任编辑:庞桂玉 来源: Linux中国

同话题下的热门内容

如何选择适合的公共 DNSLinux终端居然也可以做文件浏览器?Linux 怎么防止 ssh 被暴力破解Linux下如何配置普通用户的sudo命令权限?如何在基于 Ubuntu 的 Linux 发行版上安装最新的 Vim 9.0Linux内存管理(Golang实现)Linux Kernel 5.19 正式发布,支持龙芯 CPU架构为有经验用户量身定制的 Linux

编辑推荐

Linux系统下安装MySQL的步骤详解CentOS与Ubuntu有什么不同?Linux下如何使用minicom USB串口为什么你可能想要略过Ubuntu 17.04?Linux中7个判断文件系统类型的方法
我收藏的内容
点赞
收藏

51CTO技术栈公众号