Hôm trước mình có hướng dẫn các bạn cách cài đặt một Mail Server với iRedMail, tuy nhiên cách đó vẫn hơi phức tạp. Hôm nay mình sẽ giới thiệu một cách mới, cài đặt Mail Server dễ dàng hơn với Mail-in-a-Box.

Mail-in-a-box

Thay vì đưa ra rất nhiều tùy chọn khi cài đặt như iRedMail thì Mail-in-a-Box giúp bạn lựa chọn những gì tốt nhất và tự động cài đặt. Với kinh nghiệm quản lý Mail Server hơn 15 năm của tác giả Joshua Tauberer, chúng ta có thể hoàn toàn tin tưởng sử dụng Mail-in-a-Box.

Để bảo mật cho server, Mail-in-a-Box sử dụng Fail2ban và SSL certificate (self-signed). Nó cũng tự cấu hình UFW firewall và chỉ mở những port cần thiết. Ngoài ra, để chống spam, Mail-in-a-Box sử dụng các tính năng bảo mật như graylisting, SPF, DKIM, DMARC, opportunistic TLS, strong ciphers, HSTS, và DNSSEC (với DANE TLSA).

Mail-in-a-Box được thiết kế để xử lý SMTP, IMAP/POP, spam filtering, webmail, và thậm chí tự quản lý DNS, bạn sẽ không cần phải cấu hình SPF, DKIM bằng tay nữa. Tuy nhiên, không phải nhà cung cấp domain nào cũng hỗ trợ tạo Nameserver record nên mình sẽ không hướng dẫn trong bài này.

Mục tiêu cuối cùng: tạo được Mail Server hoạt động độc lập với domain chính pibox.vn, sử dụng subdomain mail.pibox.vn. Email có dạng account@pibox.vn.

1. Deploy VPS ở Vultr

Để cài được Mail-in-a-Box, bạn cần sử dụng hệ điều hành Ubuntu 14.04 x86-64, trong bài này mình sử dụng VPS ở Vultr. VPS cần ít nhất 768 MB RAM, tốt nhất nên là 1GB.

Email tên miền mình sử dụng vẫn là pibox.vn, tên miền mới tinh nên khả năng cao email gửi đi sẽ bị vào Spam. Mình sẽ dùng tên miền này để tìm cách đảm bảo email gửi đi vào được Inbox. DNS quản lý ở CloudFlare.

Sau khi tạo Deploy xong VPS ở Vultr, bạn hãy vào tab IPv4 để update Reverse DNS về mail.pibox.vn. Nhớ trỏ record mail của tên miền về địa chỉ IP của VPS nữa nhé.

Vultr Reverse DNS

Tạo MX  record

– Để nhận được mail, bạn hãy tạo record MX với name là pibox.vn, Server: mail.pibox.vn và Priority mặc định 1

– Ngoài ra, để xác nhận chính xác mail được gửi đi từ server, bạn cần thêm một record SPF nữa. Record type: TXT, Name: pibox.vn với Content: v=spf1 ip4:IP_ADDRESS -all

Kết quả tương tự như hình bên dưới:

DNS Records

Để test SPF record bạn có thể sử dụng http://mxtoolbox.com với câu lệnh: spf:domain.com

Thay đổi hostname

Đảm bảo hostname của VPS được chuyển thành pibox.vn.

echo "pibox.vn" > /etc/hostname
hostname -F /etc/hostname

Thay đổi tiếp trong file hosts

nano /etc/hosts

Thêm một dòng chứa IP nếu chưa có, ví dụ của mình:

45.63.59.104     mail.pibox.vn

Restart lại VPS shutdown -r now và chạy lệnh hostname xem đã chuẩn chưa nhé.

root@pibox:~# hostname
pibox.vn

2. Cài đặt Mail-in-a-Box

Script cài đặt Mail-in-a-Box sẽ tự động cài toàn bộ những package cần thiết. Chúng ta chỉ cần chạy duy nhất một lệnh đơn giản:

curl -s https://mailinabox.email/bootstrap.sh | sudo bash

Bạn sẽ nhận được một thông báo giới thiệu về Mail-in-a-Box như sau, nhấn Enter để tiếp tục.

Mail-in-a-Box Installation

Tiếp theo hãy nhập tài khoản mail admin.

Mail-in-a-Box Admin Email Address

Trong bảng Hostname, hãy sử dụng subdomain mail.

Mail-in-a-Box Hostname

Country Code hãy chọn, VN Vietnam, nó ở ngay trên cùng.

Mail-in-a-Box Country

Sau đó, quá trình cài đặt sẽ tự động diễn ra. Bạn hãy nhập password cho tài khoản admin khi được hỏi:

Okay. I'm about to set up admin@pibox.com for you. This account will also have access to the box's control panel.
password:

Nếu không có vấn đề gì xảy ra, cuối cùng bạn sẽ nhận được thông báo như bên dưới:

mail user added
added alias postmaster@pibox.vn (=> administrator@mail.pibox.vn)
added alias hostmaster@mail.pibox.vn (=> administrator@mail.pibox.vn)
updated DNS: pibox.vn
web updated

alias added
added alias admin@mail.pibox.vn (=> administrator@mail.pibox.vn)
added alias postmaster@mail.pibox.vn (=> administrator@mail.pibox.vn)

-----------------------------------------------

Your Mail-in-a-Box is running.

Please log in to the control panel for further instructions at:

https://45.63.59.104/admin

You will be alerted that the website has an invalid certificate. Check that
the certificate fingerprint matches:

A5:31:33:99:80:61:D3:F0:DC:F2:B6:35:44:C7:1B:AF:98:8C:05:84

Then you can confirm the security exception and continue.

3. Cấu hình Mail-in-a-Box

Bây giờ các bạn có thể truy cập vào trang quản lý Mail-in-a-Box có dạng http://ip_address/admin, login sử dụng tài khoản và password như đã nhập trong bước trước.

Bởi vì server sử dụng chứng chỉ self-signed, nên bạn sẽ nhận được cảnh báo warning như bên dưới, hãy nhấn Advanced, rồi Proceed.

Certificate Warning

Giao diện trang admin sẽ như sau:

Admin Interface

  • System: cấu hình và quản lý hệ thống
  • Mail: thêm/sửa/xóa account và các thông tin IMAP/SMTP/Exchange/ActiveSync
  • Contacts/Calendar: thông số cấu hình để synchronize trên các thiết bị di động hoặc ứng dụng
  • Web: nội dung khi truy cập mail.pibox.vn
  • Version: phiên bản hiện tại và kiểm tra nâng cấp

Việc cần làm đầu tiên là vào menu System, chọn External DNS để Mail-in-a-Box kiểm tra tình trạng hiện tại và đưa ra các thông số cấu hình domain. Bước này rất quan trọng do chúng ta không sử dụng chức năng quản lý DNS của Mail-in-a-Box, không thực hiện thì email gửi đi sẽ bị vào SPAM.

Các thông tin đưa ra như bên dưới:

Mail-in-a-Box External DNS

Tiếp theo, bạn hãy vào CloudFlare và add từng record như thông tin Mail-in-a-Box cung cấp (bỏ qua ns1.mail.pibox.vn và ns2.mail.pibox.vn). Cần add những record Required và Recommended, Optional thì tùy từng DNS Server mà có hỗ trợ hay không. Đây là điểm mình đánh giá rất cao, bạn cứ copy rồi paste thôi, vậy là đảm bảo domain được cấu hình chuẩn rồi.

Lưu ý: có thể mất một khoảng thời gian để DNS được cập nhật xong, lúc này kết quả mới chính xác nhất. Đừng vội lo lắng khi email của bạn bị rơi vào SPAM.

4. Truy cập Webmail và gửi Email

Sau khi cấu hình các bản ghi cho tên miền, các bạn truy cập link https://mail.pibox.vn/mail để vào hòm mail. Giao diện Roundcube quen thuộc sẽ xuất hiện:

Mail-in-a-Box Roundcube

Giờ hãy login và gửi thử sang Gmail, sẽ thấy mail bay thẳng vào Inbox luôn.

Để email không bị coi là Spam cần lưu ý:

  1. Cấu hình đầy đủ SPF record, DKIM record cho tên miền.
  2. VPS cần cấu hình hostname chuẩn, nhớ restart lại VPS để check lại một lần nữa trước khi cài đặt tiếp.
  3. VPS cần cấu hình Reverse DNS chuẩn. Thường mất vài tiếng đến cả ngày mới update xong rDNS nên bạn cần kiên nhẫn.
  4. Với mỗi tài khoản mail, cần phải có Display Name. Cài đặt trong phần Settings/Identities/Display Name. Nên tạo tài khoản mới để test sendmail, đừng dùng tài khoản postmaster/admin.
  5. Cuối cùng cần đảm bảo IP của bạn không bị liệt vào danh sách blacklist: http://mxtoolbox.com/blacklists.aspx

5. Kết quả

Cuối cùng, mình đã cài đặt thành công một Mail Server với Mail-in-a-Box. Đặc biệt Mail Server hoạt động độc lập với Web Server.

Đường link để đăng nhập có dạng http://mail.pibox.vn; email có dạng account@pibox.vn. Tất nhiên bạn sẽ tạo được không giới hạn số tài khoản với Mail-in-a-Box.

Lưu ý: mình không khuyến khích các bạn tự cài đặt một Mail Server, nên sử dụng các dịch vụ trung gian cho email để đảm bảo hệ thống hoạt động ổn định, ví dụ như:

  • G Suite
  • Yandex
  • Zoho
  • Gandi (5 email address, 1.000 forwarding addresses )
  • GoDaddy (100 email alias)

Nếu muốn gửi email marketing, mời bạn tham khảo 2 nhà cung cấp nổi tiếng hiện nay là GetResponseSendy.

Chúc các bạn thành công!

Comment của bạn

Lưu ý: tất cả comment đều được kiểm duyệt cẩn thận! Nếu có code bạn hãy up lên pastebin.com rồi để lại link trong comment.

107 Comments