Hướng dẫn cài đặt Postfix làm SMTP Server trên Ubuntu 22.04
Bài viết hướng dẫn chi tiết cách cài đặt và cấu hình Postfix làm SMTP Server trên Ubuntu 22.04, bao gồm các cấu hình cơ bản, bảo mật SASL và chống Spam.
Postfix là một trong những Mail Transfer Agent (MTA) phổ biến nhất trên Linux, đóng vai trò làm SMTP Server giúp bạn gửi và nhận email. Nó nổi tiếng vì dễ cấu hình, hiệu năng cao và rất an toàn.
Trong bài viết này, mình sẽ hướng dẫn các bạn cách cài đặt và cấu hình Postfix trên hệ điều hành Ubuntu 22.04, cùng với các thiết lập bảo mật SMTP-Auth và chống Spam cơ bản nhất.
1. Chuẩn bị
Trước khi bắt đầu, bạn cần:
- Một máy chủ Ubuntu 22.04 có quyền root hoặc sudo.
- Một tên miền đã được trỏ bản ghi DNS về IP của máy chủ (ví dụ:
mail.yourdomain.com).
Lưu ý: Trong bài viết này, mình sẽ sử dụng tên miền ví dụ là yourdomain.com và hostname là mail.yourdomain.com. Bạn hãy thay thế bằng thông tin thực tế của mình khi cấu hình nhé.
2. Cài đặt Postfix và SASL
Đầu tiên, hãy cập nhật hệ thống và cài đặt gói Postfix cùng với công cụ xác thực SASL (giúp hỗ trợ bảo mật kết nối SMTP).
sudo apt update
sudo apt install postfix sasl2-bin -y
Trong quá trình cài đặt, một màn hình cấu hình màu hồng sẽ hiện ra. Bạn hãy chọn No configuration (Không cấu hình) vì chúng ta sẽ tự cấu hình thủ công toàn bộ bằng file để hiểu rõ cách thức hoạt động của nó.
3. Cấu hình cơ bản cho Postfix
Sau khi quá trình cài đặt hoàn tất, file cấu hình mặc định chưa được tạo sẵn đầy đủ. Chúng ta sẽ copy từ file cấu hình mẫu:
sudo cp /usr/share/postfix/main.cf.dist /etc/postfix/main.cf
Mở file /etc/postfix/main.cf bằng trình soạn thảo Nano để bắt đầu chỉnh sửa:
sudo nano /etc/postfix/main.cf
Bạn hãy tìm và bỏ ghi chú (xóa dấu # ở đầu dòng) hoặc thêm mới các dòng sau đây. Hãy chú ý thay thế tên miền cho phù hợp:
# Thiết lập hostname và tên miền của bạn
myhostname = mail.yourdomain.com
mydomain = yourdomain.com
myorigin = $mydomain
# Lắng nghe trên tất cả các card mạng (sử dụng IPv4)
inet_interfaces = all
inet_protocols = ipv4
# Các domain mà server này sẽ nhận mail
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
# Cấu hình dải mạng được phép gửi mail qua server
mynetworks_style = subnet
mynetworks = 127.0.0.0/8, 10.0.0.0/24
# Thiết lập thư mục lưu trữ mail theo định dạng Maildir (lưu ở thư mục home của user)
home_mailbox = Maildir/
# Trỏ alias_maps và alias_database
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
# Đường dẫn đến các lệnh hệ thống
sendmail_path = /usr/sbin/postfix
newaliases_path = /usr/bin/newaliases
mailq_path = /usr/bin/mailq
setgid_group = postdrop
4. Tăng cường bảo mật và thiết lập SMTP-Auth
Vẫn trong file /etc/postfix/main.cf, bạn hãy cuộn xuống cuối file và thêm các cấu hình sau để bảo vệ SMTP Server:
# Ẩn phiên bản Postfix để bảo mật
smtpd_banner = $myhostname ESMTP
# Tắt lệnh VRFY để tránh bị hacker dò quét tài khoản
disable_vrfy_command = yes
# Yêu cầu client bắt buộc phải gửi lệnh HELO/EHLO
smtpd_helo_required = yes
# Giới hạn dung lượng tối đa của một email (ví dụ: 10MB)
message_size_limit = 10240000
# Cấu hình xác thực SMTP-Auth (sử dụng kết hợp với Dovecot SASL)
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
# Kiểm soát quyền gửi mail
smtpd_recipient_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination
Sau khi hoàn tất, bạn lưu file và thoát Nano (Ctrl+O, Enter, Ctrl+X).
Khởi tạo lại danh sách alias và khởi động lại Postfix để áp dụng cấu hình:
sudo newaliases
sudo systemctl restart postfix
sudo systemctl enable postfix
5. Cấu hình chặn Spam cơ bản (Tùy chọn)
Để hạn chế email rác (Spam) từ các server không rõ nguồn gốc, bạn có thể thêm các luật kiểm tra chặt chẽ hơn.
Lưu ý: Thiết lập này rất hiệu quả chặn spam nhưng đôi khi có thể chặn nhầm email từ một số hệ thống có cấu hình DNS không chuẩn.
Mở lại file cấu hình:
sudo nano /etc/postfix/main.cf
Thêm các dòng sau vào cuối file:
# Chặn các client có hostname không hợp lệ (không khớp giữa phân giải xuôi và ngược trên DNS)
smtpd_client_restrictions = permit_mynetworks, reject_unknown_client_hostname, permit
# Chặn các địa chỉ gửi (FROM) không tồn tại hoặc không phải là FQDN (tên miền đầy đủ)
smtpd_sender_restrictions = permit_mynetworks, reject_unknown_sender_domain, reject_non_fqdn_sender
# Chặn các lệnh HELO từ các hostname không hợp lệ khi SMTP server nhận kết nối
smtpd_helo_restrictions = permit_mynetworks, reject_unknown_hostname, reject_non_fqdn_hostname, reject_invalid_hostname, permit
Lưu file và khởi động lại dịch vụ:
sudo systemctl restart postfix
6. Tổng kết
Như vậy là bạn đã cài đặt và cấu hình thành công Postfix làm SMTP Server trên hệ điều hành Ubuntu 22.04 LTS.
Với các cấu hình ở trên, máy chủ của bạn đã có khả năng xử lý gửi/nhận mail cơ bản, đồng thời được trang bị thêm lớp xác thực SASL (để sẵn sàng kết nối với Dovecot) và các quy tắc chống spam mạnh mẽ. Ở các bước tiếp theo để hoàn thiện một Mail Server, bạn sẽ cần cài đặt thêm Dovecot (làm POP3/IMAP Server) và cấu hình SSL/TLS để mã hóa kết nối.
Chúc các bạn thành công!
Bình luận
Bài viết liên quan
Cấu hình IP tĩnh trên Ubuntu Server 20.04
Bài viết hướng dẫn chi tiết cách thiết lập địa chỉ IP tĩnh trên Ubuntu Server 20.04 sử dụng công cụ Netplan để đảm bảo các dịch vụ hoạt động ổn định.
Dockhand - Công cụ quản lý Docker giao diện web cho người mới
Dockhand là một công cụ quản lý Docker có giao diện web hiện đại, dễ sử dụng, rất phù hợp cho người mới bắt đầu và các hệ thống homelab.
Hướng Dẫn Cài Đặt Và Cấu Hình Fail2Ban Trên Ubuntu
Hướng dẫn chi tiết cách cài đặt và cấu hình Fail2Ban trên hệ điều hành Ubuntu giúp bảo vệ máy chủ Linux khỏi các cuộc tấn công Brute-force nguy hiểm.