ค้นหาเว็บไซต์

วิธีกำหนดค่าและรวมบริการ iRedMail เข้ากับ Samba4 AD DC - ตอนที่ 11


ในบทช่วยสอนนี้ จะได้เรียนรู้วิธีแก้ไข daemons หลัก iRedMail ซึ่งให้บริการเมล ตามลำดับ Postfix ที่ใช้สำหรับการถ่ายโอนเมล และ Dovecot ซึ่งส่งอีเมลไปยังกล่องจดหมายของบัญชี เพื่อที่จะรวมทั้งสองอย่างไว้ใน Samba4 Active Directory Domain Controller

ด้วยการรวม iRedMail เข้ากับ Samba4 AD DC คุณจะได้รับประโยชน์จากคุณสมบัติต่อไปนี้: การตรวจสอบผู้ใช้ การจัดการ และสถานะผ่าน Samba AD DC สร้างรายชื่ออีเมลด้วยความช่วยเหลือของกลุ่ม AD และ Global LDAP Address Book ใน Roundcube

ความต้องการ

  1. ติดตั้ง iRedMail บน CentOS 7 สำหรับการรวม Samba4 AD

ขั้นตอนที่ 1: เตรียมระบบ iRedMail สำหรับการผสานรวม Sama4 AD

1. ในขั้นตอนแรก คุณต้องกำหนดที่อยู่ IP แบบคงที่สำหรับเครื่องของคุณ ในกรณีที่คุณใช้ที่อยู่ IP แบบไดนามิกที่ได้รับจากเซิร์ฟเวอร์ DHCP

เรียกใช้คำสั่ง ifconfig เพื่อแสดงรายการชื่ออินเทอร์เฟซเครือข่ายของเครื่องของคุณและแก้ไขอินเทอร์เฟซเครือข่ายที่เหมาะสมด้วยการตั้งค่า IP ที่คุณกำหนดเองโดยออกคำสั่ง nmtui-edit กับ NIC ที่ถูกต้อง

เรียกใช้คำสั่ง nmtui-edit ด้วยสิทธิ์รูท

ifconfig
nmtui-edit eno16777736

2. เมื่อเปิดอินเทอร์เฟซเครือข่ายสำหรับการแก้ไข ให้เพิ่มการตั้งค่า IP แบบคงที่ที่เหมาะสม ตรวจสอบให้แน่ใจว่าคุณได้เพิ่มที่อยู่ IP ของเซิร์ฟเวอร์ DNS ของ Samba4 AD DC ของคุณและชื่อโดเมนของคุณเพื่อสืบค้น ขอบเขตจากเครื่องของคุณ ใช้ภาพหน้าจอด้านล่างเป็นแนวทาง

3. หลังจากที่คุณกำหนดค่าอินเทอร์เฟซเครือข่ายเสร็จแล้ว ให้รีสตาร์ท daemon เครือข่ายเพื่อใช้การเปลี่ยนแปลงและออกชุดคำสั่ง ping กับชื่อโดเมนและตัวควบคุมโดเมน samba4 FQDN

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 tecmint.lan     # Ping domain name
ping -c2 adc1            # Ping first AD DC
ping -c2 adc2            # Ping second AD DC

4. ถัดไป ซิงค์เวลากับตัวควบคุมโดเมน samba โดยการติดตั้งแพ็คเกจ ntpdate และค้นหาเซิร์ฟเวอร์ NTP ของเครื่อง Samba4 โดยใช้คำสั่งด้านล่าง:

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

5. คุณอาจต้องการให้เวลาท้องถิ่นซิงโครไนซ์กับเซิร์ฟเวอร์เวลา samba AD โดยอัตโนมัติ เพื่อให้บรรลุการตั้งค่านี้ ให้เพิ่มงานที่กำหนดเวลาไว้เพื่อให้รันทุกชั่วโมงโดยออกคำสั่ง crontab -e และต่อท้ายบรรทัดต่อไปนี้:

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

ขั้นตอนที่ 2: เตรียม Samba4 AD DC สำหรับการผสานรวม iRedMail

6. ตอนนี้ ให้ย้ายไปยังเครื่อง Windows ที่ติดตั้งเครื่องมือ RSAT เพื่อจัดการ Samba4 Active Directory ตามที่อธิบายไว้ในบทช่วยสอนนี้ที่นี่

เปิด DNS Manager ไปที่โดเมนของคุณ Forward Lookup Zones และเพิ่มระเบียน A ใหม่ ระเบียน MX และ บันทึก PTR เพื่อชี้ไปยังที่อยู่ IP ของระบบ iRedMail ของคุณ ใช้ภาพหน้าจอด้านล่างเป็นแนวทาง

เพิ่มบันทึก A (แทนที่ชื่อและที่อยู่ IP ของเครื่อง iRedMail ตามลำดับ)

เพิ่มระเบียน MX (เว้นโดเมนลูกว่างไว้และเพิ่มลำดับความสำคัญ 10 สำหรับเซิร์ฟเวอร์อีเมลนี้)

เพิ่มบันทึก PTR โดยขยายเป็น Reverse Lookup Zones (แทนที่ที่อยู่ IP ของเซิร์ฟเวอร์ iRedMail ตามลำดับ) ในกรณีที่คุณยังไม่ได้กำหนดค่าโซนย้อนกลับสำหรับตัวควบคุมโดเมนของคุณ โปรดอ่านบทช่วยสอนต่อไปนี้:

  1. จัดการนโยบายกลุ่ม DNS ของ Samba4 จาก Windows

7. หลังจากที่คุณได้เพิ่มบันทึก DNS พื้นฐานซึ่งทำให้เซิร์ฟเวอร์อีเมลทำงานได้อย่างถูกต้อง ให้ย้ายไปยังเครื่อง iRedMail ติดตั้งแพ็คเกจ bind-utils และค้นหาแพ็คเกจที่เพิ่มใหม่ บันทึกจดหมายตามที่แนะนำในข้อความที่ตัดตอนมาด้านล่าง

เซิร์ฟเวอร์ DNS ของ Samba4 AD DC ควรตอบสนองด้วยบันทึก DNS ที่เพิ่มในขั้นตอนก่อนหน้า

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

จากเครื่อง Windows ให้เปิดหน้าต่าง พร้อมรับคำสั่ง และออกคำสั่ง nslookup กับบันทึกเซิร์ฟเวอร์อีเมลข้างต้น

8. ตามข้อกำหนดเบื้องต้นขั้นสุดท้าย ให้สร้างบัญชีผู้ใช้ใหม่ที่มีสิทธิ์ขั้นต่ำใน Samba4 AD DC โดยใช้ชื่อ vmail เลือกรหัสผ่านที่คาดเดายากสำหรับผู้ใช้รายนี้ และตรวจสอบให้แน่ใจ รหัสผ่านสำหรับผู้ใช้รายนี้ไม่มีวันหมดอายุ

บัญชีผู้ใช้ vmail จะถูกใช้โดยบริการ iRedMail เพื่อสืบค้นฐานข้อมูล Samba4 AD DC LDAP และดึงบัญชีอีเมล

หากต้องการสร้างบัญชี vmail ให้ใช้เครื่องมือกราฟิก ADUC จากเครื่อง Windows ที่เชื่อมต่อกับขอบเขตด้วยเครื่องมือ RSAT ที่ติดตั้งดังที่แสดงในภาพหน้าจอด้านล่าง หรือใช้บรรทัดคำสั่ง samba-tool โดยตรงจากตัวควบคุมโดเมนตามที่อธิบายไว้ในหัวข้อต่อไปนี้

  1. จัดการ Samba4 Active Directory จาก Linux Command Line

ในคู่มือนี้ เราจะใช้วิธีการแรกที่กล่าวถึงข้างต้น

9. จากระบบ iRedMail ให้ทดสอบความสามารถของผู้ใช้ vmail ในการสืบค้นฐานข้อมูล Samba4 AD DC LDAP โดยใช้คำสั่งด้านล่าง ผลลัพธ์ที่ส่งคืนควรเป็นจำนวนรายการออบเจ็กต์ทั้งหมดสำหรับโดเมนของคุณตามที่แสดงในภาพหน้าจอด้านล่าง

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

หมายเหตุ: แทนที่ชื่อโดเมนและ dn ฐาน LDAP ใน Samba4 AD ('cn=users,dc=tecmint,dc=lan' ) ตามนั้น

ขั้นตอนที่ 3: รวมบริการ iRedMail เข้ากับ Samba4 AD DC

10. ตอนนี้ถึงเวลาแก้ไขบริการ iRedMail (Postfix, Dovecot และ Roundcube) เพื่อสอบถาม Samba4 Domain Controller สำหรับบัญชีเมล

บริการแรกที่จะแก้ไขคือตัวแทน 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'	#Replace with your own domain
postconf -e virtual_mailbox_domains='tecmint.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 "tecmint.lan dovecot" > /etc/postfix/transport		# Add your domain with dovecot transport
cat /etc/postfix/transport					# Verify transport file
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 
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 
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 
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 [email  ldap:/etc/postfix/ad_virtual_mailbox_maps.cf
postmap -q [email  ldap:/etc/postfix/ad_sender_login_maps.cf
postmap -q [email  ldap:/etc/postfix/ad_virtual_group_maps.cf

แทนที่บัญชีผู้ใช้ AD และบัญชีผู้ใช้ตามนั้น นอกจากนี้ ตรวจสอบให้แน่ใจว่ากลุ่มโฆษณาที่คุณใช้นั้นมีสมาชิกผู้ใช้ AD บางส่วนที่ได้รับมอบหมายให้ทำ

16. ในขั้นตอนถัดไปให้แก้ไขไฟล์การกำหนดค่า Dovecot เพื่อสอบถาม Samba4 AD DC เปิดไฟล์ /etc/dovecot/dovecot-ldap.conf เพื่อแก้ไขและเพิ่มบรรทัดต่อไปนี้

hosts           = tecmint.lan:389
ldap_version    = 3
auth_bind       = yes
dn              = [email 
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/ บนระบบ Linux

17. ตรวจสอบให้แน่ใจว่าเปิดใช้งานโปรโตคอล pop3 และ imap ในไฟล์การกำหนดค่าหลัก dovecot ตรวจสอบว่าปลั๊กอินโควต้าและอีเมล ACL เปิดใช้งานอยู่หรือไม่โดยเปิดไฟล์ /etc/dovecot/dovecot.conf และตรวจสอบว่ามีค่าเหล่านี้อยู่หรือไม่

18. อีกทางหนึ่ง หากคุณต้องการตั้งค่าโควต้าฮาร์ดโควต้าส่วนกลางให้ไม่เกินพื้นที่เก็บข้อมูลสูงสุด 500 MB สำหรับผู้ใช้โดเมนแต่ละราย ให้เพิ่มบรรทัดต่อไปนี้ใน /etc/dovecot/dovecot ไฟล์คอนฟิก

quota_rule = *:storage=500M 

19. สุดท้าย หากต้องการใช้การเปลี่ยนแปลงทั้งหมดที่ทำจนถึงตอนนี้ ให้รีสตาร์ทและตรวจสอบสถานะของ Postfix และ Dovecot daemons โดยออกคำสั่งด้านล่างพร้อมสิทธิ์รูท

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

หากคุณสามารถเข้าสู่ระบบ IMAP จากบรรทัดคำสั่งด้วยบัญชีผู้ใช้ Samba4 แสดงว่าเซิร์ฟเวอร์ iRedMail พร้อมที่จะส่งและรับเมลสำหรับบัญชี Active Directory

ในบทช่วยสอนถัดไปจะกล่าวถึงวิธีการผสานรวมเว็บเมล Roundcube เข้ากับ Samba4 AD DC และเปิดใช้งาน Global LDAP Address Book, ปรับแต่ง Roudcube, เข้าถึงอินเทอร์เฟซเว็บ Roundcube จากเบราว์เซอร์ และปิดใช้งานบริการ iRedMail ที่ไม่จำเป็นบางอย่าง