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

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介:

如何配置并集成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 服务。





作者:Matei Cezar
来源:51CTO
目录
相关文章
|
3月前
|
存储 数据可视化 Java
基于MicrometerTracing门面和Zipkin实现集成springcloud2023的服务追踪
Sleuth将会停止维护,Sleuth最新版本也只支持springboot2。作为替代可以使用MicrometerTracing在微服务中作为服务追踪的工具。
169 1
|
4月前
|
Java Maven Windows
使用Java创建集成JACOB的HTTP服务
本文介绍了如何在Java中创建一个集成JACOB的HTTP服务,使Java应用能够调用Windows的COM组件。文章详细讲解了环境配置、动态加载JACOB DLL、创建HTTP服务器、实现IP白名单及处理HTTP请求的具体步骤,帮助读者实现Java应用与Windows系统的交互。作者拥有23年编程经验,文章来源于稀土掘金。著作权归作者所有,商业转载需授权。
使用Java创建集成JACOB的HTTP服务
|
30天前
|
机器学习/深度学习 人工智能 自然语言处理
Voice-Pro:开源AI音频处理工具,集成转录、翻译、TTS等一站式服务
Voice-Pro是一款开源的多功能音频处理工具,集成了语音转文字、文本转语音、实时翻译、YouTube视频下载和人声分离等多种功能。它支持超过100种语言,适用于教育、娱乐和商业等多个领域,为用户提供一站式的音频处理解决方案,极大地提高工作效率和音频处理的便捷性。
104 10
Voice-Pro:开源AI音频处理工具,集成转录、翻译、TTS等一站式服务
|
2月前
|
安全 测试技术 数据安全/隐私保护
原生鸿蒙应用市场开发者服务的技术解析:从集成到应用发布的完整体验
原生鸿蒙应用市场开发者服务的技术解析:从集成到应用发布的完整体验
|
3月前
|
存储 Java 开发工具
【三方服务集成】最新版 | 阿里云OSS对象存储服务使用教程(包含OSS工具类优化、自定义阿里云OSS服务starter)
阿里云OSS(Object Storage Service)是一种安全、可靠且成本低廉的云存储服务,支持海量数据存储。用户可通过网络轻松存储和访问各类文件,如文本、图片、音频和视频等。使用OSS后,项目中的文件上传业务无需在服务器本地磁盘存储文件,而是直接上传至OSS,由其管理和保障数据安全。此外,介绍了OSS服务的开通流程、Bucket创建、AccessKey配置及环境变量设置,并提供了Java SDK示例代码,帮助用户快速上手。最后,展示了如何通过自定义starter简化工具类集成,实现便捷的文件上传功能。
【三方服务集成】最新版 | 阿里云OSS对象存储服务使用教程(包含OSS工具类优化、自定义阿里云OSS服务starter)
|
3月前
|
存储 JavaScript 数据库
ToB项目身份认证AD集成(一):基于目录的用户管理、LDAP和Active Directory简述
本文介绍了基于目录的用户管理及其在企业中的应用,重点解析了LDAP协议和Active Directory服务的概念、关系及差异。通过具体的账号密码认证时序图,展示了利用LDAP协议与AD域进行用户认证的过程。总结了目录服务在现代网络环境中的重要性,并预告了后续的深入文章。
|
3月前
|
人工智能 JavaScript 网络安全
ToB项目身份认证AD集成(三完):利用ldap.js实现与windows AD对接实现用户搜索、认证、密码修改等功能 - 以及针对中文转义问题的补丁方法
本文详细介绍了如何使用 `ldapjs` 库在 Node.js 中实现与 Windows AD 的交互,包括用户搜索、身份验证、密码修改和重置等功能。通过创建 `LdapService` 类,提供了与 AD 服务器通信的完整解决方案,同时解决了中文字段在 LDAP 操作中被转义的问题。
|
3月前
|
开发框架 .NET API
Windows Forms应用程序中集成一个ASP.NET API服务
Windows Forms应用程序中集成一个ASP.NET API服务
111 9
|
3月前
|
安全 Java 测试技术
ToB项目身份认证AD集成(二):快速搞定window server 2003部署AD域服务并支持ssl
本文详细介绍了如何搭建本地AD域控测试环境,包括安装AD域服务、测试LDAP接口及配置LDAPS的过程。通过运行自签名证书生成脚本和手动部署证书,实现安全的SSL连接,适用于ToB项目的身份认证集成。文中还提供了相关系列文章链接,便于读者深入了解AD和LDAP的基础知识。
|
5月前
|
jenkins 持续交付 网络安全
利用 Jenkins 实现持续集成与持续部署-代码拉取终端的配置
【8月更文挑战第30天】在Jenkins服务器中,git和Gitee是常用的代码拉取终端。Git作为分布式版本控制系统,具备出色的灵活性和可扩展性;而Gitee则在国内网络环境下表现更佳,适合团队协作。Git配置包括安装、设置用户信息及生成SSH密钥等步骤;Gitee配置也类似,需注册账号、创建仓库、配置基本信息并设置远程仓库地址。开发人员提交代码后,可通过Webhook、定时轮询或事件监听等方式触发Jenkins动作,确保持续集成和部署高效运行。正确配置这些触发机制并通过测试验证其有效性至关重要。
78 2