Samba 系列(十一):如何配置並集成 iRedMail 服務到 Samba4 AD DC 中
在本教程中,將學習如何修改提供郵件服務的 iRedMail 主要守護進程,相應地,Postfix 用於郵件傳輸,Dovecot 將郵件傳送到帳戶郵箱,以便將它們集成到 Samba4 AD 域控制器中。
將 iRedMail 集成到 Samba4 AD DC 中,你將得到以下好處:通過 Samba AD DC 得到用戶身份驗證、管理和狀態,在 AD 組和 Roundcube 中的全局 LDAP 地址簿的幫助下創建郵件列表。
要求
第一步:準備 iRedMail 系統用於 Samba4 AD 集成
1、 在第一步中,你需要為你的機器分配一個靜態的 IP 地址以防你使用的是由 DHCP 伺服器提供的動態 IP 地址。
運行 ifconfig 命令列出你的機器網路介面名,並對正確的網卡發出 nmtui-edit 命令,使用自定義 IP 設置編輯正確的網路介面。
root 許可權運行 nmtui-edit 命令。
# ifconfig
# nmtui-edit eno16777736
找出網路介面名
2、 在打開要編輯的網路介面後,添加正確的靜態 IP 設置,確保添加了 Samba4 AD DC 的 DNS 伺服器 IP 地址以及你的域的名字,以便從機器查詢 realm。使用以下截圖作為指導。
配置網路設置
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
驗證網路 DNS 配置
4、 接下來,用下面的命令安裝 ntpdate
包,與域控制器同步時間,並請求 samba4 機器的 NTP 伺服器:
# yum install ntpdate
# ntpdate -qu tecmint.lan # querry domain NTP servers
# ntpdate tecmint.lan # Sync time with the domain
與 Samba NTP 伺服器同步時間
5、 你或許想要本地時間自動與 samba AD 時間伺服器同步。為了實現這個設置,通過運行 crontab -e 命令並追加下面的行添加一條計劃任務。
0 */1 * * * /usr/sbin/ntpdate tecmint.lan > /var/log/ntpdate.lan 2>&1
自動與 Samba NTP 同步時間
第二步:為 iRedMail 集成準備 Samba4 AD DC
6、 現在,如這篇教程所述進入一台安裝了 RSAT 工具的 Windows 機器管理 Samba4 AD。
打開 DNS 管理器,轉到你的域轉發查找區並添加新的 A 記錄、MX記錄還有 PTR 記錄指向你的 iRedMail 系統的 IP 地址。使用以下截圖作為指導。
添加一條 A 記錄(相應地用 iRedMail 機器的名字和 IP 替換)。
為 iRedMail 創建 DNS A 記錄
添加 MX 記錄(將子域留空,優先順序為 10)。
為 iRedMail 創建 DNS MX 記錄
在反向查找區域(相應地替換 iRedMail 伺服器的 IP 地址)添加 PTR 記錄。如果你尚未為域控制器配置反向區域,請閱讀以下教程:從 Windows 管理 Samba4 DNS 組策略
為 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
安裝 Bind 並查詢郵件記錄
在一台 Windows 機器上,打開命令行窗口並使用 nslookup 命令查詢上面的郵件伺服器記錄。
8、 作為最後一個先決要求,在 Samba4 AD DC 中創建一個具有最小許可權的新用戶帳戶,並使用名稱 vmail, 為此用戶選擇一個強密碼, 並確保該用戶的密碼永不過期。
vmail 帳戶將被 iRedMail 服務用來查詢 Samba4 AD DC LDAP 資料庫並拉取電子郵件帳戶。
要創建 vmail 賬戶,如截圖所示,使用加入了已安裝 RSAT 工具域的 Windows 機器上的 ADUC 圖形化工具,或者按照先前主題中那樣用 samba-tool 命令行直接在域控制器中運行。
在本指導中,我們會使用上面提到的第一種方法。
AD 用戶和計算機
為 iRedMail 創建新的用戶
為用戶設置強密碼
9、 在 iRedMail 系統中,用下面的命令測試 vmail 用戶能夠查詢 Samba4 AD DC LDAP 資料庫。返回的結果應該是你的域的對象總數, 如下截圖所示。
# ldapsearch -x -h tecmint.lan -D 'vmail@tecmint.lan' -W -b 'cn=users,dc=tecmint,dc=lan'
注意:相應地替換域名以及 Samba4 AD 的 LDAP dn (cn=users,dc=tecmint,dc=lan
)。
查詢 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 = vmail@tecmint.lan
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 = vmail@tecmint.lan
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 = vmail@tecmint.lan
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_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 tecmint_user@tecmint.lan ldap:/etc/postfix/ad_virtual_mailbox_maps.cf
# postmap -q tecmint_user@tecmint.lan ldap:/etc/postfix/ad_sender_login_maps.cf
# postmap -q linux_users@tecmint.lan ldap:/etc/postfix/ad_virtual_group_maps.cf
驗證 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 = vmail@tecmint.lan
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
驗證是否啟用了 quota
和 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 伺服器似乎已經準備好發送和接收 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
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive