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

在本教程中,将学习如何修改iRedMail主要守护程序,分别提供邮件服务的Postfix,以及将邮件传递到帐户邮箱的Dovecot ,以便将它们集成到Samba4 Active Directory域控制器中

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

要求

  1. 在CentOS 7上安装iRedMail,用于Samba4 AD集成

第1步:为Sama4 AD集成准备iRedMail系统

1.在第一步,您需要为机器分配静态IP地址,以防您使用DHCP服务器提供的动态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 youcl.lan     # Ping domain name
# ping -c2 adc1            # Ping first AD DC
# ping -c2 adc2            # Ping second AD DC

验证网络DNS配置

4.接下来,通过安装ntpdate软件包并通过发出以下命令查询Samba4机器NTP服务器,与samba域控制器同步时间:

# yum install ntpdate
# ntpdate -qu youcl.lan      # querry domain NTP servers
# ntpdate youcl.lan          # Sync time with the domain

与Samba NTP服务器同步时间

5.您可能希望本地时间与samba AD时间服务器自动同步。 为了实现此设置,通过发出crontab -e命令添加一个计划的作业,每小时运行一次,并附加以下行:

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

与Samba NTP自动同步时间

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

现在,转到具有安装了RSAT工具Windows机器来管理Samba4 Active Directory,如本教程中所述。

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

添加记录(相应地替换iRedMail机器的名称和IP地址)。

为iRedMail创建DNS记录

添加MX记录(留下子域黑色并为此邮件服务器添加10个优先级)。

为iRedMail创建DNS MX记录

通过扩展为反向查找区域 (相应地替换iRedMail服务器的IP地址)来添加PTR记录。 如果您尚未为域控制器配置反向区域,请阅读以下教程:

  1. 从Windows管理Samba4 DNS组策略

为iRedMail创建DNS PTR记录

7.添加了使邮件服务器正常运行的基本DNS记录后,请转到iRedMail计算机,安装bind-utils软件包,并按照下面的摘录建议查询新添加的邮件记录。

Samba4 AD DC DNS服务器应该响应上一步添加的DNS记录。

# yum install bind-utils
# host youcl.lan
# host mail.youcl.lan
# host 192.168.1.245

安装绑定和查询邮件记录

从Windows机器,打开一个命令提示符窗口并针对上述邮件服务器记录发出nslookup命令

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

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

要创建vmail帐户,请使用安装了RSAT工具的Windows机器的ADUC图形工具,如以下屏幕截图所示安装,或直接从域控制器使用samba-tool命令行,如以下主题所述。

  1. 从Linux命令行管理Samba4 Active Directory

在本指南中,我们将使用上述第一种方法。

Active Directory用户和计算机

为iRedMail创建新用户

为用户设置强密码

9.从iRedMail系统中,通过发出以下命令,测试vmail用户查询Samba4 AD DC LDAP数据库的能力。 返回的结果应该是您的域的对象条目的总数,如以下屏幕截图所示。

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

注意 :相应地替换Samba4 AD(' cn = users,dc = youcl,dc = lan ')中的域名和LDAP基础dn。

查询Samba4 AD DC LDAP

第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='youcl.lan'	#Replace with your own domain
# postconf -e virtual_mailbox_domains='youcl.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 "youcl.lan dovecot" > /etc/postfix/transport		# Add your domain with dovecot transport
# cat /etc/postfix/transport					# Verify transport file
# postmap hash:/etc/postfix/transport

接下来,使用您喜欢的文本编辑器创建Postfix /etc/postfix/ad_sender_login_maps.cf配置文件,并添加以下配置。

server_host     = youcl.lan
server_port     = 389
version         = 3
bind            = yes
start_tls       = no
bind_dn         = vmail@youcl.lan
bind_pw         = ad_vmail_account_password
search_base     = dc=youcl,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     = youcl.lan
server_port     = 389
version         = 3
bind            = yes
start_tls       = no
bind_dn         = vmail@youcl.lan
bind_pw         = ad_vmail_account_password
search_base     = dc=youcl,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     = youcl.lan
server_port     = 389
version         = 3
bind            = yes
start_tls       = no
bind_dn         = vmail@youcl.lan
bind_pw         = ad_vmail_account_password
search_base     = dc=youcl,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 youcl_user@youcl.lan ldap:/etc/postfix/ad_virtual_mailbox_maps.cf
# postmap -q youcl_user@youcl.lan ldap:/etc/postfix/ad_sender_login_maps.cf
# postmap -q linux_users@youcl.lan ldap:/etc/postfix/ad_virtual_group_maps.cf

验证Postfix绑定到Samba AD

相应地替换AD用户和组帐户。 此外,请确保您使用的AD组有一些AD用户成员分配给它。

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

hosts           = youcl.lan:389
ldap_version    = 3
auth_bind       = yes
dn              = vmail@youcl.lan
dnpass          = ad_vmail_password
base            = dc=youcl,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/位置。

确保在dovecot主配置文件中启用pop3和imap协议。 通过打开/etc/dovecot/dovecot.conf文件/etc/dovecot/dovecot.conf检查配额和acl邮件插件是否也启用,并检查这些值是否存在。

在Dovecot中启用Pop3和Imap

18.或者,如果要将全局硬配额设置为不超过每个域用户的最大500 MB存储空间,请在/etc/dovecot/dovecot.conf文件中添加以下行。

quota_rule = *:storage=500M 

19.最后,为了应用到目前为止所做的所有更改,通过使用root权限发出以下命令来重新启动和验证Postfix和Dovecot守护程序的状态。

# systemctl restart postfix dovecot
# systemctl status postfix dovecot

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

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

测试iRedMail配置

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

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

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏