如何将 iRedMail Roundcube 与 Samba4 AD DC 集成 - 第 12 部分
Roundcube 是 Linux 中最常用的 Webmail 用户代理之一,它为最终用户提供了一个现代化的 Web 界面,可以与所有邮件服务进行交互,以便阅读、撰写和发送电子邮件。 Roundcube 支持多种邮件协议,包括安全协议,例如 IMAPS、POP3S 或提交。
在本主题中,我们将讨论如何使用 IMAPS 在 iRedMail 中配置 Roundcube 和提交安全端口来检索和发送 Samba4 AD 帐户的电子邮件,如何从浏览器访问 iRedMail Roundcube Web 界面并添加 Web 地址别名,如何启用 Samba4全局 LDAP 通讯簿的 AD 集成以及如何禁用一些不需要的 iRedMail 服务。
要求
- 如何在 CentOS 7 上安装 iRedMail 进行 Samba4 AD 集成
- 在 CentOS 7 上配置 iRedMail 以进行 Samba4 AD 集成
第 1 步:在 Samba4 AD DC 中声明域帐户的电子邮件地址
1. 为了发送和接收 Samba4 AD DC 域帐户的邮件,您需要编辑每个用户帐户,并通过打开来自安装了 RSAT 工具并加入到 Samba4 AD 的 Windows 计算机的 ADUC 工具,如下图所示。
2. 同样,要使用邮件列表,您需要在 ADUC 中创建组,为每个组添加相应的电子邮件地址,并分配适当的用户帐户作为组的成员。
通过将此设置创建为邮件列表,Samba4 AD 组的所有成员邮箱都将收到发往 AD 组电子邮件地址的邮件。使用下面的屏幕截图作为指南来声明为 Samba4 组帐户归档的电子邮件并将域用户添加为该组的成员。
确保添加到群组的所有帐户成员都已声明其电子邮件地址。
在此示例中,发送到为“域管理员”群组声明的[email 电子邮件地址的所有邮件都将由该群组的每个成员邮箱接收。
3. 您可以用来声明 Samba4 AD 帐户的电子邮件地址的另一种方法是直接从 AD DC 控制台之一使用 samba-tool 命令行创建用户或组并使用 --mail-address
标志指定电子邮件地址。
使用以下命令语法之一创建指定电子邮件地址的用户:
samba-tool user add [email --surname=your_surname --given-name=your_given_name your_ad_user
创建一个指定电子邮件地址的组:
samba-tool group add [email your_ad_group
要将成员添加到组中:
samba-tool group addmembers your_group user1,user2,userX
要列出用户或组的所有可用 samba-tool 命令字段,请使用以下语法:
samba-tool user add -h
samba-tool group add -h
第 3 步:保护 Roundcube Webmail
4. 在修改 Roundcube 配置文件之前,首先,使用通过egrep过滤器传递的netstat命令列出Dovecot和Postfix侦听的套接字并确保正确保护的端口(IMAPS为993,提交为587)处于活动状态并已启用。
netstat -tulpn| egrep 'dovecot|master'
5. 要在安全的 IMAP 和 SMTP 端口上强制执行 Roundcube 和 iRedMail 服务之间的邮件接收和传输,请打开位于 /var/www/roundcubemail/config/config.inc.php 的 Roundcube 配置文件 并确保更改以下行(在本例中为 localhost),如下面的摘录所示:
// For IMAPS
$config['default_host'] = 'ssl://127.0.0.1';
$config['default_port'] = 993;
$config['imap_auth_type'] = 'LOGIN';
// For SMTP
$config['smtp_server'] = 'tls://127.0.0.1';
$config['smtp_port'] = 587;
$config['smtp_user'] = '%u';
$config['smtp_pass'] = '%p';
$config['smtp_auth_type'] = 'LOGIN';
如果 Roudcube 安装在远程主机而不是提供邮件服务(IMAP、POP3 或 SMTP 守护程序)的远程主机上,强烈建议您进行此设置。
6. 接下来,不要关闭配置文件,搜索并进行以下小更改,以便只能通过 HTTPS 协议访问 Roundcube,隐藏版本号并自动附加域名适用于在 Web 界面中登录的帐户。
$config['force_https'] = true;
$config['useragent'] = 'Your Webmail'; // Hide version number
$config['username_domain'] = 'domain.tld'
7.另外,通过在前面添加注释(//)
来禁用以下插件:managesieve和password以 $config['plugins'] 开头的行。
用户登录并验证域后,将在加入 Samba4 AD DC 的 Windows 或 Linux 计算机上更改密码。系统管理员将全局管理域帐户的所有筛选规则。
// $config['plugins'] = array('managesieve', 'password');
8. 最后,保存并关闭配置文件,然后打开浏览器访问 Roundcube Webmail,并通过 HTTPS 协议导航到 iRedMail IP 地址或 FQDN/邮件位置。
当您第一次访问 Roundcube 时,由于 Web 服务器使用自签名证书,浏览器上应该会出现警告。接受证书并使用 Samba AD 帐户凭据登录。
https://iredmail-FQDN/mail
步骤 3:在 Roundcube 中启用 Samba AD 联系人
9. 要配置 Samba AD 全局 LDAP 通讯簿以显示 Roundcube 联系人,请再次打开 Roundcube 配置文件进行编辑并进行以下更改:
导航到文件底部并找到以“# Global LDAP Address Book with AD”开头的部分,删除其所有内容直到文件末尾,并将其替换为以下代码块:
Global LDAP Address Book with AD.
#
$config['ldap_public']["global_ldap_abook"] = array(
'name' => 'tecmint.lan',
'hosts' => array("tecmint.lan"),
'port' => 389,
'use_tls' => false,
'ldap_version' => '3',
'network_timeout' => 10,
'user_specific' => false,
'base_dn' => "dc=tecmint,dc=lan",
'bind_dn' => "[email ",
'bind_pass' => "your_password",
'writable' => false,
'search_fields' => array('mail', 'cn', 'sAMAccountName', 'displayname', 'sn', 'givenName'),
'fieldmap' => array(
'name' => 'cn',
'surname' => 'sn',
'firstname' => 'givenName',
'title' => 'title',
'email' => 'mail:*',
'phone:work' => 'telephoneNumber',
'phone:mobile' => 'mobile',
'department' => 'departmentNumber',
'notes' => 'description',
),
'sort' => 'cn',
'scope' => 'sub',
'filter' => '(&(mail=*)(|(&(objectClass=user)(!(objectClass=computer)))(objectClass=group)))',
'fuzzy_search' => true,
'vlv' => false,
'sizelimit' => '0',
'timelimit' => '0',
'referrals' => false,
);
在此代码块中替换 name、hosts、base_dn、bind_dn 和 bind_pass相应的值。
10.完成所有必要的更改后,保存并关闭文件,登录 Roundcube 网络邮件界面并进入地址簿菜单。
点击您选择的全局通讯簿名称,所有域帐户(用户和组)及其指定电子邮件地址的联系人列表应该可见。
步骤 4:为 Roundcube Webmail 界面添加别名
11. 要通过以下形式的网址访问 Roundcube https://webmail.domain.tld,而不是 iRedMail 默认提供的旧地址,您需要以下变化。
从安装了 RSAT 工具的已连接 Windows 计算机中,打开 DNS 管理器并为 iRedMail FQDN 添加新的 CNAME 记录,名为 webmail,如下图所示。
12. 接下来,在 iRedMail 计算机上,打开位于 /etc/httpd/conf.d/ssl.conf 中的 Apache Web 服务器 SSL 配置文件,并将 DocumentRoot 指令更改为指向/var/www/roundcubemail/ 系统路径。
文件 /etc/httpd/conf.d/ssl.conf 摘录:
DocumentRoot “/var/www/roundcubemail/”
重新启动 Apache 守护进程以应用更改。
systemctl restart httpd
13. 现在,将浏览器指向以下地址,应该会出现 Roundcube 界面。接受自签名证书错误以继续登录页面。将本示例中的domain.tld 替换为您自己的域名。
https://webmail.domain.tld
步骤 5:禁用 iRedMail 未使用的服务
14. 由于 iRedMail 守护进程配置为查询 Samba4 AD DC LDAP 服务器以获取帐户信息和其他资源,因此您可以通过以下方式安全地停止和禁用 iRedMail 计算机上的某些本地服务,例如 LDAP 数据库服务器和 iredpad 服务发出以下命令。
systemctl stop slapd iredpad
systemctl disable slapd iredpad
15. 另外,通过在 crontab 文件的每一行前面添加注释 (#) 来禁用 iRedMail 执行的一些计划任务,例如 LDAP 数据库备份和 iRedPad 跟踪记录如下面的屏幕截图所示。
crontab -e
第 6 步:在 Postfix 中使用邮件别名
16. 要将所有本地生成的邮件(发往 postmaster,随后重定向到 root 帐户)重定向到特定的 Samba4 AD 帐户,请打开位于 /etc/postfix/aliases 中的 Postfix 别名配置文件 并修改 root 行如下:
root: [email
17. 应用别名配置文件,以便 Postfix 可以通过执行 newaliases 命令以自己的格式读取它,并通过发出以下命令测试邮件是否发送到正确的域电子邮件帐户。
echo “Test mail” | mail -s “This is root’s email” root
18. 邮件发送后,使用您为邮件重定向设置的域帐户登录 Roundcube 网络邮件,并验证您的帐户收件箱中是否会收到之前发送的邮件。
仅此而已!现在,您拥有了一个与 Samba4 Active Directory 集成的完全正常工作的邮件服务器。域帐户可以为其内部域或其他外部域发送和接收邮件。
本教程中使用的配置可以成功应用于将 iRedMail 服务器集成到 Windows Server 2012 R2 或 2016 Active Directory。