网站搜索

如何将 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 服务。

要求

  1. 如何在 CentOS 7 上安装 iRedMail 进行 Samba4 AD 集成
  2. 在 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.另外,通过在前面添加注释(//)来禁用以下插件:managesievepassword$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,
);

在此代码块中替换 namehostsbase_dnbind_dnbind_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。