Matei Cezar 发布的文章

本教程将告诉你如何将 Ubuntu 桌面版机器加入到带有 SSSD 和 Realm 服务的 Samba4 活动目录域中,以在活动目录中认证用户。

要求:

  1. 在 Ubuntu 上用 Samba4 创建一个活动目录架构

第 1 步:初始配置

1、 在把 Ubuntu 加入活动目录前确保主机名被正确设置了。使用 hostnamectl 命令设置机器名字或者手动编辑 /etc/hostname 文件。

$ sudo hostnamectl set-hostname your_machine_short_hostname
$ cat /etc/hostname
$ hostnamectl

2、 接下来,编辑机器网络接口设置并且添加合适的 IP 设置,并将正确的 DNS IP 服务器地址指向 Samba 活动目录域控制器,如下图所示。

如果你已经配置了 DHCP 服务来为局域网机器自动分配包括合适的 AD DNS IP 地址的 IP 设置,那么你可以跳过这一步。

设置网络接口

设置网络接口

上图中,192.168.1.254192.168.1.253 代表 Samba4 域控制器的 IP 地址。

3、 用 GUI(图形用户界面)或命令行重启网络服务来应用修改,并且对你的域名发起一系列 ping 请求来测试 DNS 解析如预期工作。 也用 host 命令来测试 DNS 解析。

$ sudo systemctl restart networking.service
$ host your_domain.tld
$ ping -c2 your_domain_name
$ ping -c2 adc1
$ ping -c2 adc2

4、 最后, 确保机器时间和 Samba4 AD 同步。安装 ntpdate 包并用下列指令和 AD 同步时间。

$ sudo apt-get install ntpdate
$ sudo ntpdate your_domain_name

第 2 步:安装需要的包

5、 这一步将安装将 Ubuntu 加入 Samba4 活动目录域控制器所必须的软件和依赖:Realmd 和 SSSD 服务。

$ sudo apt install adcli realmd krb5-user samba-common-bin samba-libs samba-dsdb-modules sssd sssd-tools libnss-sss libpam-sss packagekit policykit-1 

6、 输入大写的默认 realm 名称,然后按下回车继续安装。

输入 Realm 名称

输入 Realm 名称

7、 接着,创建包含以下内容的 SSSD 配置文件。

$ sudo nano /etc/sssd/sssd.conf

加入下面的内容到 sssd.conf 文件。

[nss]
filter_groups = root
filter_users = root
reconnection_retries = 3
[pam]
reconnection_retries = 3
[sssd]
domains = tecmint.lan
config_file_version = 2
services = nss, pam
default_domain_suffix = TECMINT.LAN
[domain/tecmint.lan]
ad_domain = tecmint.lan
krb5_realm = TECMINT.LAN
realmd_tags = manages-system joined-with-samba
cache_credentials = True
id_provider = ad
krb5_store_password_if_offline = True
default_shell = /bin/bash
ldap_id_mapping = True
use_fully_qualified_names = True
fallback_homedir = /home/%d/%u
access_provider = ad
auth_provider = ad
chpass_provider = ad
access_provider = ad
ldap_schema = ad
dyndns_update = true
dyndsn_refresh_interval = 43200
dyndns_update_ptr = true
dyndns_ttl = 3600

确保你对应地替换了下列参数的域名:

domains = tecmint.lan
default_domain_suffix = TECMINT.LAN
[domain/tecmint.lan]
ad_domain = tecmint.lan
krb5_realm = TECMINT.LAN

8、 接着,用下列命令给 SSSD 配置文件适当的权限:

$ sudo chmod 700 /etc/sssd/sssd.conf

9、 现在,打开并编辑 Realmd 配置文件,输入下面这行:

$ sudo nano /etc/realmd.conf

realmd.conf 文件摘录:

[active-directory]
os-name = Linux Ubuntu
os-version = 17.04
[service]
automatic-install = yes
[users]
default-home = /home/%d/%u
default-shell = /bin/bash
[tecmint.lan]
user-principal = yes
fully-qualified-names = no

10、 最后需要修改的文件属于 Samba 守护进程。 打开 /etc/samba/smb.conf 文件编辑,然后在文件开头加入下面这块代码,在 [global] 之后的部分如下图所示。

workgroup = TECMINT
client signing = yes
client use spnego = yes
kerberos method = secrets and keytab
realm = TECMINT.LAN
security = ads

配置 Samba 服务器

配置 Samba 服务器

确保你替换了域名值,特别是对应域名的 realm 值,并运行 testparm 命令检验设置文件是否包含错误。

$ sudo testparm

测试 Samba 配置

测试 Samba 配置

11、 在做完所有必需的修改之后,用 AD 管理员帐号验证 Kerberos 认证并用下面的命令列出票据。

$ sudo kinit [email protected]
$ sudo klist

检验 Kerberos 认证

检验 Kerberos 认证

第 3 步: 加入 Ubuntu 到 Samba4 Realm

12、 键入下列命令将 Ubuntu 机器加入到 Samba4 活动目录。用有管理员权限的 AD DC 账户名字,以便绑定 realm 可以如预期般工作,并替换对应的域名值。

$ sudo realm discover -v DOMAIN.TLD
$ sudo realm list
$ sudo realm join TECMINT.LAN -U ad_admin_user -v
$ sudo net ads join -k

加入 Ubuntu 到 Samba4 Realm

加入 Ubuntu 到 Samba4 Realm

列出 Realm Domain 信息

列出 Realm Domain 信息

加入用户到 Realm Domain

添加用户到 Realm Domain

表列 Realm Domain 信息

添加 Domain 到 Realm

13、 区域绑定好了之后,运行下面的命令确保所有域账户允许在这台机器上认证。

$ sudo realm permit -all

然后你可以使用下面举例的 realm 命令允许或者禁止域用户帐号或群组访问。

$ sudo realm deny -a
$ realm permit --groups ‘domain.tld\Linux Admins’
$ realm permit [email protected]
$ realm permit DOMAIN\\User2

14、 从一个 安装了 RSAT 工具的 Windows 机器上你可以打开 AD UC 并浏览“ 电脑 computers ”容器,并检验是否有一个使用你机器名的对象帐号已经创建。

确保域被加入 AD DC

确保域被加入 AD DC

第 4 步:配置 AD 账户认证

15、 为了在 Ubuntu 机器上用域账户认证,你需要用 root 权限运行 pam-auth-update 命令并允许所有 PAM 配置文件,包括为每个域账户在第一次注册的时候自动创建家目录的选项。

按 [空格] 键检验所有配置项并点击 ok 来应用配置。

$ sudo pam-auth-update

PAM 配置

PAM 配置

16、 在系统上手动编辑 /etc/pam.d/common-account 文件,下面这几行是为了给认证过的域用户自动创建家目录。

session    required    pam_mkhomedir.so    skel=/etc/skel/    umask=0022

17、 如果活动目录用户不能用 linux 命令行修改他们的密码,打开 /etc/pam.d/common-password 文件并在 password 行移除 use_authtok 语句,最后如下:

password       [success=1 default=ignore]      pam_winbind.so try_first_pass

18、 最后,用下面的命令重启并启用以应用 Realmd 和 SSSD 服务的修改:

$ sudo systemctl restart realmd sssd
$ sudo systemctl enable realmd sssd

19、 为了测试 Ubuntu 机器是是否成功集成到 realm ,安装 winbind 包并运行 wbinfo 命令列出域账户和群组,如下所示。

$ sudo apt-get install winbind
$ wbinfo -u
$ wbinfo -g

列出域账户

列出域账户

20、 同样,也可以针对特定的域用户或群组使用 getent 命令检验 Winbind nsswitch 模块。

$ sudo getent passwd your_domain_user
$ sudo getent group ‘domain admins’

检验 Winbind Nsswitch

检验 Winbind Nsswitch

21、 你也可以用 Linux id 命令获取 AD 账户的信息,命令如下:

$ id tecmint_user

检验 AD 用户信息

检验 AD 用户信息

22、 用 su - 后跟上域用户名参数来认证 Ubuntu 主机的一个 Samba4 AD 账户。运行 id 命令获取该 AD 账户的更多信息。

$ su - your_ad_user

AD 用户认证

AD 用户认证

pwd 命令查看你的域用户当前工作目录,和用 passwd 命令修改密码。

23、 在 Ubuntu 上使用有 root 权限的域账户,你需要用下面的命令添加 AD 用户名到 sudo 系统群组:

$ sudo usermod -aG sudo [email protected]

用域账户登录 Ubuntu 并运行 apt update 命令来更新你的系统以检验 root 权限。

24、 给一个域群组 root 权限,用 visudo 命令打开并编辑 /etc/sudoers 文件,并加入如下行:

%domain\ [email protected]              ALL=(ALL:ALL) ALL

25、 要在 Ubuntu 桌面使用域账户认证,通过编辑 /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf 文件来修改 LightDM 显示管理器,增加以下两行并重启 lightdm 服务或重启机器应用修改。

greeter-show-manual-login=true
greeter-hide-users=true

域账户用“你的域用户”或“你的域用户@你的域” 格式来登录 Ubuntu 桌面。

26、 为使用 Samba AD 账户的简称格式,编辑 /etc/sssd/sssd.conf 文件,在 [sssd] 块加入如下几行命令。

full_name_format = %1$s

并重启 SSSD 守护进程应用改变。

$ sudo systemctl restart sssd

你会注意到 bash 提示符会变成了没有附加域名部分的 AD 用户名。

27、 万一你因为 sssd.conf 里的 enumerate=true 参数设定而不能登录,你得用下面的命令清空 sssd 缓存数据:

$ rm /var/lib/sss/db/cache_tecmint.lan.ldb

这就是全部了!虽然这个教程主要集中于集成 Samba4 活动目录,同样的步骤也能被用于把使用 Realm 和 SSSD 服务的 Ubuntu 整合到微软 Windows 服务器活动目录。


作者简介:

Matei Cezar - 我是一名网瘾少年,开源和基于 linux 系统软件的粉丝,有4年经验在 linux 发行版桌面、服务器和 bash 脚本。


via: https://www.tecmint.com/integrate-ubuntu-to-samba4-ad-dc-with-sssd-and-realm/

作者:Matei Cezar 译者:XYenChi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

本指南将向你介绍如何使用 Authconfig 在命令行中将无图形界面的 CentOS 7 服务器集成到 Samba4 AD 域控制器中。

这类设置提供了由 Samba 持有的单一集中式帐户数据库,允许 AD 用户通过网络基础设施对 CentOS 服务器进行身份验证。

要求

  1. 在 Ubuntu 上使用 Samba4 创建 AD 基础架构
  2. CentOS 7.3 安装指南

步骤 1:为 Samba4 AD DC 配置 CentOS

1、 在开始将 CentOS 7 服务器加入 Samba4 DC 之前,你需要确保网络接口被正确配置为通过 DNS 服务查询域。

运行 ip address 命令列出你机器网络接口,选择要编辑的特定网卡,通过针对接口名称运行 nmtui-edit 命令(如本例中的 ens33),如下所示。

# ip address
# nmtui-edit ens33

List Network Interfaces

列出网络接口

2、 打开网络接口进行编辑后,添加最适合 LAN 的静态 IPv4 配置,并确保为 DNS 服务器设置 Samba AD 域控制器 IP 地址。

另外,在搜索域中追加你的域的名称,并使用 [TAB] 键跳到确定按钮来应用更改。

当你仅对域 dns 记录使用短名称时, 已提交的搜索域保证域对应项会自动追加到 dns 解析 (FQDN) 中。

Configure Network Interface

配置网络接口

3、最后,重启网络守护进程以应用更改,并通过对域名和域控制器 ping 来测试 DNS 解析是否正确配置,如下所示。

# systemctl restart network.service
# ping -c2 tecmint.lan
# ping -c2 adc1
# ping -c2 adc2

Verify DNS Resolution on Domain

验证域上的 DNS 解析

4、 另外,使用下面的命令配置你的计算机主机名并重启机器应用更改。

# hostnamectl set-hostname your_hostname
# init 6

使用以下命令验证主机名是否正确配置。

# cat /etc/hostname
# hostname

5、 最后,使用 root 权限运行以下命令,与 Samba4 AD DC 同步本地时间。

# yum install ntpdate
# ntpdate domain.tld

Sync Time with Samba4 AD DC

与 Samba4 AD DC 同步时间

步骤 2:将 CentOS 7 服务器加入到 Samba4 AD DC

6、 要将 CentOS 7 服务器加入到 Samba4 AD 中,请先用具有 root 权限的帐户在计算机上安装以下软件包。

# yum install authconfig samba-winbind samba-client samba-winbind-clients

7、 为了将 CentOS 7 服务器与域控制器集成,可以使用 root 权限运行 authconfig-tui,并使用下面的配置。

# authconfig-tui

首屏选择:

  • 在 User Information 中:

    • Use Winbind
  • 在 Authentication 中使用[空格键]选择:

    • Use Shadow Password
    • Use Winbind Authentication
    • Local authorization is sufficient

Authentication Configuration

验证配置

8、 点击 Next 进入 Winbind 设置界面并配置如下:

  • Security Model: ads
  • Domain = YOUR\_DOMAIN (use upper case)
  • Domain Controllers = domain machines FQDN (comma separated if more than one)
  • ADS Realm = YOUR\_DOMAIN.TLD
  • Template Shell = /bin/bash

Winbind Settings

Winbind 设置

9、 要加入域,使用 [tab] 键跳到 “Join Domain” 按钮,然后按[回车]键加入域。

在下一个页面,添加具有提升权限的 Samba4 AD 帐户的凭据,以将计算机帐户加入 AD,然后单击 “OK” 应用设置并关闭提示。

请注意,当你输入用户密码时,凭据将不会显示在屏幕中。在下面再次点击 OK,完成 CentOS 7 的域集成。

Join Domain to Samba4 AD DC

加入域到 Samba4 AD DC

Confirm Winbind Settings

确认 Winbind 设置

要强制将机器添加到特定的 Samba AD OU 中,请使用 hostname 命令获取计算机的完整名称,并使用机器名称在该 OU 中创建一个新的计算机对象。

将新对象添加到 Samba4 AD 中的最佳方法是已经集成到安装了 RSAT 工具的域的 Windows 机器上使用 ADUC 工具。

重要:加入域的另一种方法是使用 authconfig 命令行,它可以对集成过程进行广泛的控制。

但是,这种方法很容易因为其众多参数造成错误,如下所示。该命令必须输入一条长命令行。

# authconfig --enablewinbind --enablewinbindauth --smbsecurity ads --smbworkgroup=YOUR_DOMAIN --smbrealm YOUR_DOMAIN.TLD --smbservers=adc1.yourdomain.tld --krb5realm=YOUR_DOMAIN.TLD --enablewinbindoffline --enablewinbindkrb5 --winbindtemplateshell=/bin/bash--winbindjoin=domain_admin_user --update  --enablelocauthorize   --savebackup=/backups

10、 机器加入域后,通过使用以下命令验证 winbind 服务是否正常运行。

# systemctl status winbind.service

11、 接着检查是否在 Samba4 AD 中成功创建了 CentOS 机器对象。从安装了 RSAT 工具的 Windows 机器使用 AD 用户和计算机工具,并进入到你的域计算机容器。一个名为 CentOS 7 Server 的新 AD 计算机帐户对象应该在右边的列表中。

12、 最后,使用文本编辑器打开 samba 主配置文件(/etc/samba/smb.conf)来调整配置,并在 [global] 配置块的末尾附加以下行,如下所示:

winbind use default domain = true
winbind offline logon = true

Configure Samba

配置 Samba

13、 为了在 AD 帐户首次登录时在机器上创建本地家目录,请运行以下命令:

# authconfig --enablemkhomedir --update

14、 最后,重启 Samba 守护进程使更改生效,并使用一个 AD 账户登陆验证域加入。AD 帐户的家目录应该会自动创建。

# systemctl restart winbind
# su - domain_account

Verify Domain Joining

验证域加入

15、 通过以下命令之一列出域用户或域组。

# wbinfo -u
# wbinfo -g

List Domain Users and Groups

列出域用户和组

16、 要获取有关域用户的信息,请运行以下命令。

# wbinfo -i domain_user

List Domain User Info

列出域用户信息

17、 要显示域摘要信息,请使用以下命令。

# net ads info

List Domain Summary

列出域摘要

步骤 3:使用 Samba4 AD DC 帐号登录CentOS

18、 要在 CentOS 中与域用户进行身份验证,请使用以下命令语法之一。

# su - ‘domain\domain_user’
# su - domain\\domain_user

或者在 samba 配置文件中设置了 winbind use default domain = true 参数的情况下,使用下面的语法。

# su - domain_user
# su - [email protected]

19、 要为域用户或组添加 root 权限,请使用 visudocommand 编辑 sudoers 文件,并添加以下截图所示的行。

YOUR_DOMAIN\\domain_username             ALL=(ALL:ALL) ALL      #For domain users
%YOUR_DOMAIN\\your_domain\  group            ALL=(ALL:ALL) ALL  #For domain groups

或者在 samba 配置文件中设置了 winbind use default domain = true 参数的情况下,使用下面的语法。

domain_username                  ALL=(ALL:ALL) ALL      #For domain users
%your_domain\  group             ALL=(ALL:ALL) ALL  #For domain groups

Grant Root Privileges on Domain Users

授予域用户 root 权限

20、 针对 Samba4 AD DC 的以下一系列命令也可用于故障排除:

# wbinfo -p #Ping domain
# wbinfo -n domain_account #Get the SID of a domain account
# wbinfo -t  #Check trust relationship

21、 要离开该域, 请使用具有提升权限的域帐户对你的域名运行以下命令。从 AD 中删除计算机帐户后, 重启计算机以在集成进程之前还原更改。

# net ads leave -w DOMAIN -U domain_admin
# init 6

就是这样了!尽管此过程主要集中在将 CentOS 7 服务器加入到 Samba4 AD DC 中,但这里描述的相同步骤也适用于将 CentOS 服务器集成到 Microsoft Windows Server 2012 AD 中。


作者简介:

Matei Cezar - 我是一个电脑上瘾的家伙,开源和基于 linux 的系统软件的粉丝,在 Linux 发行版桌面、服务器和 bash 脚本方面拥有大约 4 年的经验。


via: https://www.tecmint.com/integrate-centos-7-to-samba4-active-directory/

作者:Matei Cezar 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

本教程将指导你如何使用 iRedMail 服务器配置 Mozilla Thunderbird 客户端,以便通过 IMAPS 和 SMTP 提交协议发送和接收邮件,如何使用 Samba AD LDAP 服务器设置联系人数据库以及如何配置其他相关的邮件功能,例如通过 LDAP 数据库离线副本启用 Thunderbird 联系人。

安装和配置 Mozilla Thunderbird 客户端的过程适用于安装在 Windows 或 Linux 操作系统上的 Thunderbird 客户端。

要求

  1. 如何在 CentOS 7 上安装 iRedMail 集成到 Samba4 AD
  2. 如何配置和集成 iRedMail 服务到 Samba4 AD DC
  3. 将 iRedMail Roundcube 与 Samba4 AD DC 集成

第一步:为 iRedMail 服务器配置 Thunderbird

1、 在安装完成 Thunderbird 邮件客户端之后,点击启动器或者快捷方式打开程序,并在首屏检查 E-mail 系统集成,然后点击跳过集成按钮继续。

Thunderbird System Integration

Thunderbird 系统集成

2、 在欢迎界面点击跳过并使用我已存在的邮件按钮添加你的名字、你的 Samba 帐户邮件地址以及密码,检查记住密码区域并点击继续按钮启动你的邮箱帐户设置。

在 Thunderbird 客户端尝试识别由 iRedMail 服务器提供的正确的IMAP设置后,点击手动配置按钮手动设置 Thunderbird。

Thunderbird Mail Account Setup

Thunderbird 邮箱帐户设置

3、 邮件帐户设置窗口展开后,通过添加正确的 iRedMail 服务器 FQDN 来手动编辑 IMAP 和 SMTP 设置,为邮件服务添加安全端口(IMAPS 为 993,发送为 587),为每个端口选择合适的 SSL 通信通道并验证然后点击完成完成设置。使用以下图片作为指导。

Thunderbird iRedMail Settings

Thunderbird iRedMail 设置

4、 由于你的 iRedMail 服务器使用自签名证书,屏幕上应会显示一个新的“安全异常”窗口。点击永久存储此异常并按确认安全异常按钮添加此安全性异常,Thunderbird 客户端应该就被成功配置了。

Thunderbird Security Exception

Thunderbird 安全异常

你会看到你的域帐号的所有已收文件,并且你能够从你的域或者其他域发送或者接收文件。

Domain Mails Inbox

域邮箱收件箱

第二步:使用 Samba AD LDAP 设置 Thunderbird 联系人数据库

5、 为了让 Thunderbird 客户端查询 Samba AD LDAP 数据库中的联系人,点击“设置”菜单,在左边面板右键单击您的帐户,如下图片所示找到 “Composition & Addressing → Addressing → Use a different LDAP server → Edit Directories”

Thunderbird Samba AD LDAP Settings

Thunderbird Samba AD LDAP 设置

Thunderbird Composition & Addressing Settings

Thunderbird Composition & Addressing 设置

6、 LDAP 目录服务器窗口应该带开了,点击添加按钮并将下面的内容填写到目录服务器属性窗口中:

在 “常规” 选项卡上添加此对象的描述性名称,添加你的域的名称或 Samba 域控制器的 FQDN,你的域的基本 DN 形式是 “dc=你的域,dc=tld”,LDAP 端口号 389,vmail 绑定 DN 帐户用于以 vmail@your\_domain.tld 的形式查询 Samba AD LDAP 数据库。

使用下面的截图作为指导:

Directory Server Properties

目录服务器属性

7、 在下一步中,从目录服务器属性进入高级选项卡,并在搜索过滤栏添加下面的内容:

(&(mail=*)(|(&(objectClass=user)(!(objectClass=computer)))(objectClass=group)))

Add Search Filter

添加搜索过滤

让其他的设置保持默认,并点击 OK 按钮来应用更改,再次点击 OK 按钮关闭 LDAP 目录服务器窗口,在账户设置界面点击 OK 关闭窗口。

Select LDAP Directory Server

选择 LDAP 目录服务器

8、 要测试 Thunderbird 是否能够向 Samba AD LDAP 数据库请求联系人,点击上方的地址簿图标,选择之前创建的 LDAP 数据库名。

添加绑定 DN 帐户密码来查询 AD LDAP 服务器,勾选使用密码管理器记住密码,然后点击确定按钮保存更改并关闭窗口。

Thunderbird Samba AD LDAP Testing

Thunderbird Samba AD LDAP 测试

9、 使用上面的搜索框搜索 Samba AD 联系人,并提供一个域名帐户名。注意没有在 AD E-mail 字段声明的邮件地址的 Samba AD 帐户不会在 Thunderbird 地址簿搜索中列出。

Search Samba AD Mail Contacts

搜索 Samba AD 邮件联系人

10、 要在编写电子邮件时搜索联系人,请单击视图→联系人侧边栏或按 F9 键打开 “联系人” 面板。

Search Mail Contacts in Thunderbird

在 Thunderbird 中搜索联系人

11、 选择合适的地址簿,你应该能够搜索并添加收件人的电子邮件地址。发送第一封邮件时,会出现一个新的安全警报窗口。点击确认安全例外,邮件应该就能发送到收件人地址中了。

Send Mail in Thunderbird

在 Thunderbird 发送邮件

12、 如果你想通过仅针对特定 AD 组织单位的 Samba LDAP 数据库搜索联系人,请从左边面板编辑你的目录服务器名称的地址簿,点击属性并添加自定义的 Samba AD OU,如下所示。

ou=your_specific_ou,dc=your_domain,dc=tld 

Search Contacts in Samba LDAP Database

Samba LDAP 数据库中搜索联系人

第三步:设置 LDAP 离线副本

13、 要为 Thunderbird 配置 Samba AD LDAP 离线副本,请点击“地址簿”按钮,选择你的 LDAP 通讯录,打开“目录服务器属性” -> “常规” 选项卡,将端口号更改为 3268。

接着切换到离线选项卡并点击“现在下载”按钮开始在本地复制 Samba AD LDAP 数据库。

Setup LDAP Offline Replica in Thunderbird

在 Thunderbird 设置 LDAP 离线副本

Download LDAP Database for Offline

为离线下载 LDAP 数据库

当同步联系人完成后,你将收到消息复制成功通知。点击 OK 并关闭所有窗口。在无法访问 Samba 域控制器的情况下,你仍然可以通过离线方式进行搜索。


作者简介:

我是一个电脑上瘾的家伙,开源和基于 linux 的系统软件的粉丝,在 Linux 发行版桌面、服务器和 bash 脚本方面拥有大约4年的经验。


via: https://www.tecmint.com/configure-thunderbird-with-iredmail-for-samba4-ad-ldap/

作者:Matei Cezar 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Roundcube 是 Linux 中最常用的 Webmail 用户代理之一,它为终端用户提供了一个现代化的 Web 界面,它可以与所有邮件服务进行交互,以便阅读、撰写和发送电子邮件。Roundcube 支持各种邮件协议,包括安全的邮件协议,如IMAPS、POP3S 或者 submission。

在本文中,我们将讨论如何在 iRedMail 中使用 IMAPS 以及 submission 安全端口配置 Roundcube,以检索和发送 Samba4 AD 帐户的电子邮件、如何从浏览器访问 iRedMail Roundcube Web 界面,并添加网址别名、如何启用 Samba4 AD 集成全局 LDAP 地址簿以及如何禁用某些不需要的 iRedMail 服务。

要求

  1. 如何在 CentOS 7 上安装 iRedMail,用于Samba4 AD集成
  2. 在 CentOS 7 上配置 iRedMail,用于 Samba4 AD 集成

第一步:在 Samba4 AD DC 中声明域帐户的电子邮件地址

1、 为了发送和接收 Samba4 AD DC 域账户的邮件,您需要编辑每个用户帐户,如下所示,通过从安装了 RSAT 工具的 Windows 机器并且已经加入 Samba4 AD 中打开 ADUC 工具显式地在邮箱字段填写正确的地址。

Add Email Account to Join Samba4 AD DC

添加邮箱帐户来加入 Samba4 AD DC

2、 相似地,要使用邮件列表,你需要在 ADUC 中创建组,为每个组添加相应的电子邮件地址,并分配合适的用户帐户作为每个组的成员。

这步创建了一个邮件列表,所有 Samba4 AD 组成员的邮箱都会收到给这个 AD 组邮箱地址的邮件。使用下面的截图作为指导为 Samba4 组声明电子邮件字段,并为组添加域成员。

确保所有的域账户成员都添加到了声明了邮件地址的组中。

Create Group Admin for Samba4 AD DC

为 Samba4 AD DC 创建组管理员

Add Users to Group

将用户添加到组

在本例中,发送给 [email protected] 的所有邮件地址将被该组的每个成员邮箱接收,它是 “Domain Admins” 组声明的电子邮件地址。

3、 你可以声明 Samba4 AD 帐户的电子邮件地址的另一种方法是直接从其中一个 AD DC 控制台使用 samba-tool 命令行创建一个用户或组,并使用 --mail-address 标志指定邮件地址。

使用下面其中一个命令创建一个指定邮件地址的用户:

# samba-tool user add  [email protected]  --surname=your_surname  --given-name=your_given_name  your_ad_user

创建一个指定邮件地址的组:

# samba-tool group add  [email protected]  your_ad_group

将成员添加到组中:

# samba-tool group addmembers your_group user1,user2,userX

使用下面的语法列出 samba-tool 中有关用户或者组的命令字段:

# samba-tool user add -h
# samba-tool group add -h

第二步:安全 Roundcube Webmail

4、 开始修改 Roundcube 配置文件之前,首先使用 netstat 命令管道输出给 egrep 过滤器来列出 Dovecot 和 Postfix 监听的套接字,并确保安全端口(IMAPS 是 993,submission 是 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、 接下来,不要关闭配置文件,搜索并做如下小的修改以便 Roundcube 能够通过 HTTPS 协议访问、隐藏版本号以及自动为登录 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/mail 位置。

由于浏览器使用的是自签名证书,所以你首次访问 Roundcube 会在浏览器上看到一个警告。接受证书并用 Samba AD 帐户凭证登录。

https://iredmail-FQDN/mail

Roundcube Webmail Login

Roundcube Webmail 登录

第三步:在 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 protected]",
  '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 webmail 界面,并进入地址簿菜单。

所有域名帐户(用户和组)与其指定的电子邮件地址的联系人列表都将被显示在全局地址簿上。

Roundcube User Contact List

Roundcube 用户联系人列表

第四步:为 Roundcube Webmail 界面添加一个别名

11、 要从 https://webmail.domain.tld 访问 Roundcube 而不是从 iRedMail 默认提供的旧地址,你需要进行以下更改。

在已安装 RSAT 工具的已加入的 Windows 机器上打开 DNS 管理器,并如下所示,添加一条 iRedMail FQDN、named webmail 的 CNAME 记录。

DNS Webmail Properties

DNS 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

第五步:禁用 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

Disable iRedMail Tasks

禁用 iRedMail 任务

第六步:在 Postfix 中使用邮件别名

16、 要将所有本地生成的邮件(发往 postmaster 并随后重定向到 root 帐户)重定向到特定的 Samba4 AD 帐户,请打开位于 /etc/postfix/aliases 中的 Postfix 别名配置文件,并修改 root 行,如下所示:

root:   [email protected]

17、 应用别名配置文件,以便 Postfix 可以通过执行 newaliases 命令以其自己的格式读取它,并测试邮件是否通过发出以下命令发送到正确的域电子邮件帐户。

# echo “Test mail” | mail -s “This is root’s email” root

18、 邮件发送完毕后,请使用你为邮件重定向设置的域帐户登录 Roundcube webmail,并验证先前发送的邮件应该在你的帐户收件箱中。

Verify User Mail

验证用户邮件

就是这样了!现在你已经有了一个完全工作的与 Samba4 AD 集成的邮件服务器了。域帐户可以用它们的内部或者其他外部域发送和接收邮件了。

本教程中使用的配置可以成功将 iRedMail 服务器集成到 Windows Server 2012 R2 或 2016 AD 中。


作者简介:

我是一个电脑上瘾的家伙,开源和基于 linux 的系统软件的粉丝,在 Linux 发行版桌面、服务器和 bash 脚本方面拥有大约4年的经验。


via: https://www.tecmint.com/integrate-iredmail-roundcube-with-samba4-ad-dc/

作者:Matei Cezar 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

在本教程中,将学习如何修改提供邮件服务的 iRedMail 主要守护进程,相应地,Postfix 用于邮件传输,Dovecot 将邮件传送到帐户邮箱,以便将它们集成到 Samba4 AD 域控制器中。

将 iRedMail 集成到 Samba4 AD DC 中,你将得到以下好处:通过 Samba AD DC 得到用户身份验证、管理和状态,在 AD 组和 Roundcube 中的全局 LDAP 地址簿的帮助下创建邮件列表。

要求

  1. 在 CentOS 7 中为 Samba4 AD 集成安装 iRedMail

第一步:准备 iRedMail 系统用于 Samba4 AD 集成

1、 在第一步中,你需要为你的机器分配一个静态的 IP 地址以防你使用的是由 DHCP 服务器提供的动态 IP 地址。

运行 ifconfig 命令列出你的机器网络接口名,并对正确的网卡发出 nmtui-edit 命令,使用自定义 IP 设置编辑正确的网络接口。

root 权限运行 nmtui-edit 命令。

# ifconfig
# nmtui-edit eno16777736

Find Network Interface Name

找出网络接口名

2、 在打开要编辑的网络接口后,添加正确的静态 IP 设置,确保添加了 Samba4 AD DC 的 DNS 服务器 IP 地址以及你的域的名字,以便从机器查询 realm。使用以下截图作为指导。

Configure Network Settings

配置网络设置

3、 在你完成配置网络接口后,重启网络进程使更改生效,并对域名以及 samba 4 域控制器的 FQDN 使用 ping 命令测试。

# systemctl restart network.service
# cat /etc/resolv.conf     # 验证 DNS 解析器配置是否对域解析使用了正确的 DNS 服务器 IP
# ping -c2 tecmint.lan     # ping 域名
# ping -c2 adc1            # ping 第一个 AD DC
# ping -c2 adc2            # Ping 第二个 AD DC

Verify Network DNS Configuration

验证网络 DNS 配置

4、 接下来,用下面的命令安装 ntpdate 包,与域控制器同步时间,并请求 samba4 机器的 NTP 服务器:

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

Sync Time with Samba NTP Server

与 Samba NTP 服务器同步时间

5、 你或许想要本地时间自动与 samba AD 时间服务器同步。为了实现这个设置,通过运行 crontab -e 命令并追加下面的行添加一条计划任务。

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

Auto Sync Time with Samba NTP

自动与 Samba NTP 同步时间

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

6、 现在,如这篇教程所述进入一台安装了 RSAT 工具的 Windows 机器管理 Samba4 AD。

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

添加一条 A 记录(相应地用 iRedMail 机器的名字和 IP 替换)。

Create DNS A Record for iRedMail

为 iRedMail 创建 DNS A 记录

添加 MX 记录(将子域留空,优先级为 10)。

Create DNS MX Record for iRedMail

为 iRedMail 创建 DNS MX 记录

在反向查找区域(相应地替换 iRedMail 服务器的 IP 地址)添加 PTR 记录。如果你尚未为域控制器配置反向区域,请阅读以下教程:从 Windows 管理 Samba4 DNS 组策略

Create DNS PTR Record for iRedMail

为 iRedMail 创建 DNS PTR 记录

7、添加了使邮件服务器正常运行的基本 DNS 记录后,请进入 iRedMail 机器,安装 bind-utils 软件包,并按如下建议查询新添加的邮件记录。

Samba4 AD DC DNS 应该会响应之前添加的 DNS 记录。

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

Install Bind and Query Mail Records

安装 Bind 并查询邮件记录

在一台 Windows 机器上,打开命令行窗口并使用 nslookup 命令查询上面的邮件服务器记录。

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

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

要创建 vmail 账户,如截图所示,使用加入了已安装 RSAT 工具域的 Windows 机器上的 ADUC 图形化工具,或者按照先前主题中那样用 samba-tool 命令行直接在域控制器中运行。

在本指导中,我们会使用上面提到的第一种方法。

Active Directory Users and Computers

AD 用户和计算机

Create New User for iRedMail

为 iRedMail 创建新的用户

Set Strong Password for User

为用户设置强密码

9、 在 iRedMail 系统中,用下面的命令测试 vmail 用户能够查询 Samba4 AD DC LDAP 数据库。返回的结果应该是你的域的对象总数, 如下截图所示。

# ldapsearch -x -h tecmint.lan -D '[email protected]' -W -b 'cn=users,dc=tecmint,dc=lan'

注意:相应地替换域名以及 Samba4 AD 的 LDAP dn (cn=users,dc=tecmint,dc=lan)。

Query Samba4 AD DC LDAP

查询 Samba4 AD DC LDAP

第三步:将 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='tecmint.lan' #用你自己的域替换
# postconf -e virtual_mailbox_domains='tecmint.lan' #用你自己的域替换   
# postconf -e transport_maps='hash:/etc/postfix/transport'
# postconf -e smtpd_sender_login_maps='proxy:ldap:/etc/postfix/ad_sender_login_maps.cf'  # 检查 SMTP 发送者
# postconf -e virtual_mailbox_maps='proxy:ldap:/etc/postfix/ad_virtual_mailbox_maps.cf'  # 检查本地邮件帐户
# postconf -e virtual_alias_maps='proxy:ldap:/etc/postfix/ad_virtual_group_maps.cf'  # 检查本地邮件列表
# cp /etc/postfix/transport /etc/postfix/transport.backup   # 备份 transport 配置
# echo "tecmint.lan dovecot" > /etc/postfix/transport       # 添加带 dovecot transport 的域
# cat /etc/postfix/transport                    # 验证 transport 文件
# postmap hash:/etc/postfix/transport

11、 接下来,用你最喜欢的文本编辑器创建 Postfix 的 /etc/postfix/ad_sender_login_maps.cf 配置文件,并添加下面的配置。

server_host     = tecmint.lan
server_port     = 389
version         = 3
bind            = yes
start_tls       = no
bind_dn         = [email protected]
bind_pw         = ad_vmail_account_password
search_base     = dc=tecmint,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     = tecmint.lan
server_port     = 389
version         = 3
bind            = yes
start_tls       = no
bind_dn         = [email protected]
bind_pw         = ad_vmail_account_password
search_base     = dc=tecmint,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     = tecmint.lan
server_port     = 389
version         = 3
bind            = yes
start_tls       = no
bind_dn         = [email protected]
bind_pw         = ad_vmail_account_password
search_base     = dc=tecmint,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 [email protected] ldap:/etc/postfix/ad_virtual_mailbox_maps.cf
# postmap -q [email protected] ldap:/etc/postfix/ad_sender_login_maps.cf
# postmap -q [email protected] ldap:/etc/postfix/ad_virtual_group_maps.cf

Verify Postfix Binding to Samba AD

验证 Postfix 绑定到了 Samba AD

相应替换 AD 用户及组帐户。同样,确保你使用的 AD 组已被分配了一些成员。

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

hosts           = tecmint.lan:389
ldap_version    = 3
auth_bind       = yes
dn              = [email protected]
dnpass          = ad_vmail_password
base            = dc=tecmint,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 帐户的邮箱将会存储在 /var/vmail/vmail1/your_domain.tld/your_domain_user/Maildir/ 中。

17、 确保 dovecot 的主配置文件中启用了 pop3 和 imap 协议。打开 /etc/dovecot/dovecot.conf 验证是否启用了 quotaacl 邮件插件,并检查这些值是否存在。

Enable Pop3 and Imap in Dovecot

在 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

Test iRedMail Configuration

测试 iRedMail 配置

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

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


作者简介:

我是一个电脑上瘾的家伙,开源和基于 linux 的系统软件的粉丝,在 Linux 发行版桌面、服务器和 bash 脚本方面拥有大约4年的经验。


via: https://www.tecmint.com/integrate-iredmail-to-samba4-ad-dc-on-centos-7/

作者:Matei Cezar 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

本系列教程将引导你了解如何在 CentOS 7 安装 iRedMail 以及 Samba4 AD 域控制器,以便域帐户可以通过 Thunderbird 桌面客户端或通过 Roundcube Web 界面发送或接收邮件。

将要安装 iRedMail 的 CentOS 7 服务器需允许通过 25 和 587 端口进行 SMTP 或邮件路由服务,并且还将通过 Dovecot 作为邮件传递代理,提供 POP3 和 IMAP 服务,两者都使用安装过程中签发的自签名证书进行安全保护。

收件人邮箱将与 Roundcube 提供的 webmail 用户代理一起存储在同一台 CentOS 服务器上。iRedMail 将使用 Samba4 AD 来查询和验证收件人帐户,在 AD 组的帮助下创建邮件列表,并通过 Samba4 AD DC 控制邮件帐户。

需要:

步骤 1:在 CentOS 7 上安装 iRedMail

1、 在安装 iRedMail 之前,请先确保你使用下面的指南在你的机器上安装了一个全新的 CentOS 7 操作系统:

2、 同样使用下面的命令确保系统更新了最新的安全补丁和软件包。

# yum update

3、 系统同样需要一个 FQDN 主机名,使用下面的命令设置。使用你自定义的 FQDN 代替 mail.tecmint.lan 变量。

# hostnamectl set-hostname mail.tecmint.lan

使用下面的命令验证系统主机名。

# hostname -s   # Short name
# hostname -f   # FQDN
# hostname -d   # Domain
# cat /etc/hostname  # Verify it with cat command

Verify CentOS 7 Hostname

验证 CentOS 7 主机名

4、 通过手动编辑 /etc/hosts,将机器的 FQDN 和短名称映射到机器的回环 IP 地址。添加如下所示的值,并相应替换 mail.tecmint.lan 和 mail 的值。

127.0.0.1   mail.tecmint.lan mail  localhost localhost.localdomain

5、 iRedMail 专家建议应该完全禁用 SELinux。通过编辑 /etc/selinux/config 并将 SELINUX 参数的值从 permissive 设置成 disabled 来禁用 SELinux。

SELINUX=disabled

重启机器并应用新的 SELinux 策略,或者运行 setenforce 带上参数 0 来强制 SELinux 立即禁用。

# reboot
或者
# setenforce 0

6、 接下来,安装下面这些接下来会用来系统管理的软件包:

# yum install bzip2 net-tools bash-completion wget

7、 要安装 iRedMail,首先打开下载页 http://www.iredmail.org/download.html 中并用下面的命令下载最新的版本。

# wget https://bitbucket.org/zhb/iredmail/downloads/iRedMail-0.9.6.tar.bz2

8、 下载完成后,使用下面命令解压压缩包并进入解压后的 iRedMail 目录。

# tar xjf iRedMail-0.9.6.tar.bz2 
# cd iRedMail-0.9.6/
# ls

9、 使用下面的命令执行 iRedMail 的 shell 脚本来开始安装。接下来安装器会询问一系列的问题。

# bash iRedMail.sh

10、 在首个欢迎提示中,点击 Yes 来继续安装。

iRedMail Setup Wizard

iRedMail 安装向导

11、 接下来,选择邮件存储的位置。iRedMail 默认邮箱的存储位置在 /var/vmail/ 中。

如果这个目录所在的分区有足够的空间来保存你所有域帐户的邮件,接着点击 Next 来继续。

否则,如果你已经配置一个更大的分区来用于邮件存储,那么就用不同的目录来更改默认位置。

iRedMail Mail Storage Path

iRedMail 邮件存储路径

12、 在下一步中,选择要与 iRedMail 进行交互的前端 Web 服务器。今后将完全禁用 iRedMail 管理面板,因此我们将使用前端 Web 服务器仅通过 Roundcube Web 面板访问帐户邮件。

如果你每小时没有数以千计的邮件帐户访问 webmail 界面,那么你应该使用 Apache Web 服务器来实现其灵活性和易于管理。

iRedMail Preferred Web Server

iRedMail 首选的 Web 服务器

13、 在此步骤中,由于 Samba4 域控制器的兼容性原因,请选择 OpenLDAP 后端数据库,并点击 Next 继续,但是一旦将 iRedMail 集成到 Samba 域控制器中,我们将不再使用该 OpenLDAP 数据库。

iRedMail LDAP Backend

iRedMail LDAP 后端

14、 接下来,如下图所示,为你的 Samba4 域名指定 LDAP 后缀,然后点击 Next 继续。

iRedMail LDAP Suffix

iRedMail LDAP 后缀

15、 在接下来的提示中,只要输入你的域名,并点击 Next 继续。相应地替换 tecmint.lan 值。

iRedMail Mail Domain

iRedMail 邮件域

16、 现在,为 [email protected] 管理员设置一个密码,并点击 Next 继续。

iRedMail Mail Domain Administrator

iRedMail 邮件域管理员

17、 接下来,从列表中选择要与邮件服务器集成的可选组件。我强烈建议你安装 Roundcube,以便为域帐户提供访问邮件的 Web 界面,尽管你也可以在不同的计算机上安装并配置 Roundcube,以便在高负载情况下释放邮件服务器资源。

对于受限访问互联网的本地域,特别是在我们使用域集成时,除了 Awstats 可以用于你进行邮件分析,其他组件不是非常有用。

iRedMail Optional Components

iRedMail 可选组件

18、 在下一步中输入 Y 来应用配置并开始安装。

iRedMail Configuration Changes

iRedMail 配置更改

19、 最后,所有的问题都输入 Y,接受 iRedMail 脚本自动配置你的防火墙以及 MySQL 配置文件。

iRedMail System Configuration

iRedMail 系统配置

20、 安装完成后,安装器会提供一些敏感信息。比如 iRedAdmin 凭证、web 面板的 URL 地址以及安装过程中使用的所有参数的文件位置。

iRedMail Installation Summary

iRedMail 安装总结

仔细阅读上面的信息,使用下面的命令重启机器来使所有的邮件服务启用。

# init 6

21、 系统重启后,使用 root 权限的帐户登录或以 root 身份登录,并使用下面的命令列出所有的网络套接字以及你邮件服务器监听的相关程序。

在套接字列表中,你会看到邮件服务器几乎覆盖邮件服务正常运行所需的所有服务:SMTP/S、POP3/S、IMAP/S 和防病毒以及垃圾邮件保护。

# netstat -tulpn

iRedMail Network Sockets

iRedMail 网络套接字

22、 为了查看 iRedMail 已修改的所有配置文件的位置、iRedMail 安装过程中用于数据库管理的凭据、邮件管理帐户以及其他帐户,那么就显示 iRedMail.tips 这个文件。

该文件位于你最初解压安装包的目录中。请注意,你应该移动并保护此文件,因为它包含有关邮件服务器的敏感信息。

# less iRedMail-0.9.6/iRedMail.tips

23、 上面提到的包含邮件服务器详细信息的文件也将自动发送到 postmaster 这个邮件服务器管理员帐户中。

通过在浏览器中输入机器的 IP 地址,你可以通过 HTTPS 协议安全地访问 webmail。接受 iRedMail 自签名证书在浏览器中生成的错误,并使用在安装中为 postmaster@your\_domain.tld 帐户设置的密码登录。阅读并将此电子邮件存储到一个安全的邮箱。

https://192.168.1.254

iRedMail Account Login

iRedMail 登录帐户

iRedMail Web Mail

iRedMail Web 邮件

就是这样了!到目前为止,你已经配置了一台完整的自己运行的邮件服务器了,但尚未与 Samba4 AD 域控制器服务集成。

在下一部分中,我们将看到如何修改 iRedMail 服务(postfix,dovecot 和 roundcube 配置文件),以便查询域帐户、发送、接收和读取邮件。


作者简介:

我是一个电脑上瘾的家伙,开源和基于 linux 系统软件的粉丝,在 Linux 发行版桌面、服务器和 bash 脚本方面拥有大约 4 年的经验。


via: http://www.tecmint.com/install-iredmail-on-centos-7-for-samba4-ad-integration/

作者:Matei Cezar 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出