Cách cài đặt Mailserver với Postfix và Dovecot, kết nối IMAP qua Thunderbird với hệ điều hành Ubuntu
Để thiết lập Ubuntu làm máy chủ gửi và nhận email với địa chỉ info@demo.com, bạn cần cài đặt và cấu hình một Mail Transfer Agent (MTA) như Postfix, đồng thời thiết lập các dịch vụ liên quan để hỗ trợ giao thức nhận email (POP3/IMAP) như Dovecot. Dưới đây là các bước chi tiết (Ta sẽ ví dụ tên miền cần trỏ và xây dựng Mailserver là demo.com):
1. Yêu cầu hệ thống
- Một máy chủ chạy Ubuntu (bản mới nhất hoặc LTS khuyến nghị).
- Một tên miền (ở đây là
demo.com
) đã được trỏ DNS đúng cách. - Quyền truy cập root hoặc sudo.
2. Cấu hình DNS
Đảm bảo bạn cấu hình các bản ghi DNS cho tên miền của mình:
- MX Record: Trỏ về máy chủ mail.
- A Record: Địa chỉ IP của máy chủ mail.
- SPF Record: Cho phép máy chủ gửi mail hợp lệ.
- DKIM và DMARC: Thêm cấu hình bảo mật email (xem bước 6).
3. Cài đặt Postfix
-
Cài đặt Postfix:
-
Cấu hình Postfix: Trong quá trình cài đặt, bạn sẽ được yêu cầu chọn kiểu cấu hình:
- Chọn "Internet Site".
- Điền tên miền chính là
demo.com
.
-
Kiểm tra và chỉnh sửa file cấu hình: Mở file
/etc/postfix/main.cf
:Thêm/chỉnh sửa các dòng sau:
Lưu và khởi động lại Postfix:
4. Cài đặt Dovecot
-
Cài đặt Dovecot:
-
Cấu hình Dovecot: Mở file
/etc/dovecot/conf.d/10-mail.conf
:Tìm và sửa dòng:
Đảm bảo user mail có quyền truy cập vào thư mục
/home/username/Maildir
.Khởi động lại Dovecot:
5. Tạo tài khoản email
-
Tạo một user trên hệ thống:
Đặt mật khẩu cho user này (đây sẽ là mật khẩu email).
-
Tạo thư mục Maildir cho user:
6. Cấu hình bảo mật email (SPF, DKIM, DMARC)
-
SPF: Đã cấu hình trong bước DNS.
-
DKIM:
-
Cài đặt OpenDKIM:
-
Cấu hình OpenDKIM:
Thêm/chỉnh sửa:
Domain demo.com KeyFile /etc/opendkim/keys/demo.com/default.private Selector default
-
Tạo key DKIM:
-
Thêm bản ghi TXT vào DNS:
-
-
-
DMARC:
- Thêm bản ghi DMARC vào DNS:
7. Cấu hình TLS cho SMTP
-
Cài đặt chứng chỉ TLS (dùng Let's Encrypt):
-
Cấu hình Postfix để sử dụng TLS: Mở
/etc/postfix/main.cf
và thêm:Khởi động lại Postfix:
Vấn đề SSL trong quá trình sử dụng
Gần đây Nam gặp một vấn đề khá khó chịu là Mailserver 1 hôm chết nghẻo - tìm hiểu lý do thì là do chứng chỉ bảo mật hết hạn, chính vì vậy ta cần xử lý Cron Job để luôn gia hạn chứng chỉ hàng ngày, như vậy sẽ đỡ mất thời gian và làm gián đoạn luồng Email của khách hàng. Nhận thấy ở Server Litespeed của Nam khi chạy Cronjob thì luôn không được do cổng 80 đã bị lấy mất (Bởi dịch vụ Openlitespeed) chính vì vậy ta sẽ cần Disable chúng, chạy lệnh Renew sau đó lại Start lại Openlitespeed server
sudo nano /usr/local/bin/certbot-renew-lsws.sh
Ta sẽ tạo 1 file Script để Cronjob chạy chúng theo lịch trình
#!/bin/bash
echo "==== STARTING SSL RENEWAL ===="
# Stop OpenLiteSpeed
echo "[*] Stopping lsws..."
sudo systemctl stop lsws
# Renew SSL certificates
echo "[*] Renewing certbot certificates..."
sudo certbot renew
# Start OpenLiteSpeed
echo "[*] Starting lsws..."
sudo systemctl start lsws
echo "==== SSL RENEWAL DONE ===="
Thực hiện thực thi hành động
sudo chmod +x /usr/local/bin/certbot-renew-lsws.sh
Tạo Cron Job
sudo crontab -e
Thêm dòng sau để chạy mỗi ngày lúc 3 giờ sáng (bạn có thể chỉnh thời gian tùy thích):
0 3 * * * /usr/local/bin/certbot-renew-lsws.sh >> /var/log/certbot-lsws.log 2>&1