ต่อจาก
Mail Clustering with Cyrus Murder และ How Cyrus Murder (Mail Clustering) work?

คราวนี้ มาลง รายละเอียดทีละขั้นตอน

ระบบ Cyrus IMAP Cluster หรือ Cyrus Murder นี้ ประกอบด้วยเครื่องคอมพิวเตอร์ ขั้นต่ำ 3 เครื่อง คือ frontend, backend, mupdate ต่อไปนี้ จะเป็นวิธีการทำ แต่ละเครื่อง

 

Prerequisite

ทั้งหมดเป็น Ubuntu 16.04 Server, ทำการ update และ upgrade แล้ว และ เข้า SSH ด้วย user ที่สามารถ sudo ได้ และรุ่นของ cyrus-imapd, cyrus-murder ที่ใช้เป็น 2.4.18
ทุกเครื่อง มี user ชื่อ ‘cyrus’ และ ทำการตั้งรหัสผ่านไว้เรียบร้อย
เฉพาะเครื่องที่เป็น Backend จะต้องมี uesr ชื่อ ‘mailproxy’ และทำการตั้งรหัสผ่านไว้เรียบร้อย ด้วยอีก 1 คน
ในที่นี้ จะใช้ pam-ldap ติดตั้งใน Backend ทุกเครื่อง

MUPDATE ( mupdate1.example.com )

  1. ติดตั้ง cyrus-murder ด้วยคำสั่ง
    sudo apt install cyrus-murder cyrus-common sasl2-bin

    ระบบจะติดตั้งตั้งโปรแกรมที่เกี่ยวข้อง รวมถึง postfix ด้วย ให้เลือกเป็น No configuration ไป

  2. แก้ไขไฟล์ /etc/cyrus.conf ใน Section “SERVICES” ประมาณบรรทัดที่ 62 ให้ uncomment เพื่อได้บรรทัดนี้
    mupdate       cmd="mupdate -m" listen=3905 prefork=1

    จุดสำคัญคือ mupdate -m คือ ตัวที่จะบอกว่า ทำหน้าที่เป็น MUPDATE Master

  3. แก้ไขไฟล์ /etc/imapd.conf เพื่อกำหนด admins ในที่นี้ให้ใช้ชื่อ cyrus โดยการ uncomment ประมาณบรรทัดที่ 55
    และแก้ sasl_pwcheck_method เป็น saslauthd

    sasl_pwcheck_method: saslauthd
    sasl_mech_list: PLAIN
    admins: cyrus
  4. จากนั้น start ระบบขึ้นมา จะพบว่ามีการเปิด port 3905 รออยู่
    sudo /etc/init.d/cyrus-imapd start
    netstat -nl | grep 3905
  5. แก้ไขไฟล์ /etc/default/saslauthd บรรทัดที่ 7
    START=yes

    แล้ว start saslauthd

    sudo /etc/init.d/saslauthd start

BACKEND ( backend01.example.com)

  1. ติดตั้ง
    sudo apt install cyrus-imapd cyrus-common cyrus-clients sasl2-bin
  2. แก้ไขไฟล์ /etc/imapd.conf โดยเพิ่มบรรทัดต่อไปนี้ไว้ท้ายไฟล์
    #SASL
    sasl_pwcheck_method: saslauthd
    sasl_mech_list: PLAIN
    
    # MUPDATE
    servername: backend01.example.com
    admins: cyrus   
    proxyservers:   mailproxy
    lmtp_admins: mailproxy
    mupdate_server: mupdate.example.com
    mupdate_port: 3905
    mupdate_username: cyrus
    mupdate_authname: cyrus
    mupdate_password: <secret>
    
  3. แก้ไข /etc/cyrus.conf
    ใน START section ให้ uncomment

    mupdatepush cmd="/usr/sbin/cyrus ctl_mboxlist -m"
  4. เพิ่มส่วนนี้ ท้ายไฟล์ /etc/services ด้วย
    #MUPDATE
    mupdate 3905/tcp # MUPDATE
    mupdate 3905/udp # MUPDATE
  5. *** ติดตั้ง PAM LDAP
    sudo apt-get install ldap-auth-client nscd

    ตั้งค่าต่อไปนี้

    LDAP server Uniform Resource Identifier: ldap://ldap.your.domain/
    Distinguished name of the search base: dc=example,dc=com
    LDAP version to use: 3
    Make local root Database admin: No
    Does the LDAP database require login? No

    ต่อไป สั่งให้ระบบแก้ไขเงื่อนไขการ authen เป็น LDAP

    sudo auth-client-config -t nss -p lac_ldap

    จากนั้นใช้คำสั่งต่อไปนี้ เพื่อเริ่มใช้งาน PAM LDAP

    sudo pam-auth-update

    จะมีคำถามว่า
    PAM profiles to enable:
    ให้เลือกทั้ง
    Unix authentication และ
    LDAP Authentication

    สุดท้าย

    sudo /etc/init.d/nscd restart
  6. แก้ไขไฟล์ /etc/default/saslauthd บรรทัดที่ 7
    START=yes

    แล้ว start saslauthd

    sudo /etc/init.d/saslauthd start

FRONTEND ( frontend01.example.com )

  1. ติดตั้ง
    sudo apt install cyrus-imapd cyrus-common cyrus-clients sasl2-bin
  2. แก้ไขไฟล์ /etc/imapd.conf โดยเพิ่มบรรทัดต่อไปนี้ไว้ท้ายไฟล์
    #SASL
    sasl_pwcheck_method: saslauthd
    sasl_mech_list: PLAIN
    
    # MUPDATE
    mupdate_server: mupdate.example.com
    mupdate_port: 3905
    mupdate_username: cyrus
    mupdate_authname: cyrus
    mupdate_password: <secret>
    
    #PROXY
    serverlist: backend01.example.com
    backend01_password: mailproxy
    proxy_authname: mailproxy
    
  3. แก้ไข /etc/cyrus.conf
    ใน SERVICE section ให้ uncomment

    mupdate cmd="mupdate" listen=3905 prefork=1
  4. เพิ่มส่วนนี้ ท้ายไฟล์ /etc/services ด้วย
    #MUPDATE
    mupdate 3905/tcp # MUPDATE
    mupdate 3905/udp # MUPDATE
  5. แก้ไขไฟล์ /etc/default/saslauthd บรรทัดที่ 7
    START=yes

    แล้ว start saslauthd

    sudo /etc/init.d/saslauthd start

และ เมื่อทุกอย่างพร้อม ทุกเครื่องก็

sudo /etc/init.d/cyrus-imapd restart

เมื่อจะเพิ่มเครื่อง Backend ก็ทำตามขั้นตอน แล้ว เพิ่มใน /etc/imapd.conf ของเครื่อง Frontend ในส่วนของ serverlist และ password เช่น
จะเพิ่มเครื่อง backend02.example.com ก็ต้องเพิ่มดังนี้

#PROXY
serverlist: backend01.example.com backend02.example.com
backend01_password: <secret>
backend02_password: <secret>
proxy_authname: mailproxy

เมื่อต้องการเพิ่ม Frontend ก็ให้ Sync ตัวไฟล์ /etc/imapd.conf ไปให้เหมือนกันทุกเครื่อง

หวังว่าจะเป็นประโยชน์

Share the Post:

Related Posts

ทำความรู้จักกับ Outlook บนเว็บ

Post Views: 5 Outlook เป็นเครื่องมือจัดการอีเมลและปฏิทินที่ทรงพลัง ซึ่งช่วยให้คุณมีระเบียบและเพิ่มความสามารถในการทำงาน ด้วยอินเทอร์เฟซที่ใช้งานง่าย คุณสามารถจัดการกล่องขาเข้าของคุณ นัดหมาย และทำงานร่วมกับเพื่อนร่วมงานได้อย่างง่ายดาย ฟีเจอร์ที่แข็งแกร่งของ Outlook รวมถึงแม่แบบอีเมลที่ปรับแต่งได้ ความสามารถในการค้นหาขั้นสูง และการผสานรวมที่ไร้รอยต่อกับแอปพลิเคชัน Microsoft Office อื่นๆ ไม่ว่าคุณจะเป็นมืออาชีพที่ยุ่งอยู่หรือเป็นนักเรียนที่ต้องจัดการกับภารกิจหลายอย่าง Outlook

Read More

[บันทึกกันลืม] JupyterHub Authenticated with OIDC

Post Views: 36 ต่อจากตอนที่แล้ว [บันทึกกันลืม] JupyterHub ด้วย Docker คราวนี้ ถ้าต้องการให้ ยืนยันตัวตนด้วย OpenID เช่น PSU Passport เป็นต้น ก็ให้ทำดังนี้ ในไฟล์ jupyterhub_config.py ใส่

Read More