在本教程中,将学习如何修改iRedMail主要守护程序,分别提供邮件服务的Postfix,以及将邮件传递到帐户邮箱的Dovecot ,以便将它们集成到Samba4 Active Directory域控制器中 。
通过将iRedMail集成到Samba4 AD DC,您将受益于以下功能:通过Samba AD DC进行用户身份验证,管理和状态,在RoundCube中的AD组和全局LDAP通讯簿的帮助下创建邮件列表。
要求
第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记录。 如果您尚未为域控制器配置反向区域,请阅读以下教程:
为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命令行,如以下主题所述。
在本指南中,我们将使用上述第一种方法。
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_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 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协议从命令行测试邮件服务器配置,请使用telnet或netcat命令 ,如下例所示。
# 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服务。