Postfix cũng là một giải pháp thay thế nhẹ hơn để chạy một máy chủ SMTP hoàn chỉnh, trong khi vẫn giữ được các chức năng cần thiết. Trong hướng dẫn này, Vietnix sẽ hướng dẫn bạn cài đặt và cấu hình Postfix làm Server SMTP chỉ gửi trên Ubuntu 20.04.
Giới thiệu về Postfix
Postfix là một ứng dụng chuyển thư (mail transfer agent – MTA) dùng để gửi và nhận email. Nó có thể được cấu hình để chỉ có thể được sử dụng chỉ gửi email bằng ứng dụng cục bộ. Điều này hữu ích trong các tình huống khi bạn cần thường xuyên gửi thông báo qua email từ ứng dụng của mình hoặc có nhiều lưu lượng truy cập ra bên ngoài mà nhà cung cấp dịch vụ email bên thứ ba không cho phép.
Yêu cầu để cài đặt và cấu hình Postfix làm Server SMTP chỉ gửi trên Ubuntu 20.04
Việc thiết lập và duy trì server mail riêng rất phức tạp và tốn thời gian. Đối với hầu hết người dùng, việc sử dụng dịch vụ mail trả phí sẽ thực tế hơn.
Nếu bạn muốn cài đặt và cấu hình Postfix, bạn cần:
- Một server Ubuntu 20.04 bao gồm cả việc tạo một sudo non-root user.
- Tên miền được đăng ký. Hướng dẫn này sẽ sử dụng
vietnixtest.com
. - Một bản ghi A DNS với
vietnixtest.com
trỏ đến địa chỉ IP máy chủ của bạn.
Bước 1: Cài đặt Postfix
Cách nhanh nhất là cài đặt package mailutils
, bao gồm Postfix với một vài chương trình bổ sung mà bạn sẽ sử dụng để kiểm tra việc gửi email.
Đầu tiên, cập nhật cơ sở dữ liệu package:
sudo apt update
Cài đặt Postfix bằng cách chạy lệnh sau:
sudo apt install mailutils
Gần cuối quá trình cài đặt, bạn sẽ thấy tùy chọn cấu hình Postfix:
Tùy chọn mặc định là Internet Site
. Đó là tùy chọn được đề xuất cho trường hợp của bạn, vì vậy hãy nhấn TAB
rồi ENTER
. Nếu chỉ thấy dòng mô tả nhấn TAB
chọn OK
rồi ENTER
.
Nếu không thấy tự động hiển thị, hãy chạy lệnh sau để khởi động nó:
sudo dpkg-reconfigure postfix
Sau đó, bạn sẽ nhận được một lời nhắc cấu hình khác liên quan đến System mail name:
System mail name phải giống với tên bạn đã gán cho server của mình khi tạo. Khi bạn hoàn tất, hãy nhấn TAB
, sau đó là ENTER
.
Bước 2: Cấu hình Postfix
Trong bước này, bạn sẽ cấu hình Postfix để chỉ gửi và nhận email từ server nó đang chạy, nghĩa là từ localhost
.
Để điều đó xảy ra, bạn cần cấu hình Postfix để chỉ nghe trên loopback interface, giao diện mạng ảo mà server sử dụng để liên lạc nội bộ. Để thực hiện các thay đổi, bạn cần chỉnh sửa file cấu hình Postfix chính có tên là main.cf
, được lưu trữ trong etc/postfix
.
Mở nó để chỉnh sửa bằng trình soạn thảo của bạn:
sudo nano /etc/postfix/main.cf
Hãy tìm các dòng lệnh sau đây:
/etc/postfix/main.cf
. . .
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
. . .
Đặt giá trị của cài đặt inet_interfaces
thành loopback-only
:
/etc/postfix/main.cf
. . .
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = loopback-only
Một directive khác mà bạn sẽ cần sửa đổi là mydestination
, chỉ định danh sách các domain được gửi qua phương tiện chuyển phát thư local_transport
. Theo mặc định, các giá trị tương tự như sau:
/etc/postfix/main.cf
. . .
mydestination = $myhostname, vietnixtest.com, localhost.com, , localhost
Đổi dòng lệnh giống như thế này:
/etc/postfix/main.cf
. . .
mydestination = localhost.$mydomain, localhost, $myhostname
Nếu domain của bạn là một subdomain và bạn muốn các email giống như được gửi từ domain chính, thì bạn có thể thêm dòng sau vào cuối main.cf
:
/etc/postfix/main.cf
...
masquerade_domains = vietnixtest.com
Cài đặt masquerade_domains
tùy chọn chỉ định các domain mà subdomain sẽ bị xóa trong địa chỉ email.
Khi bạn đã hoàn tất, hãy lưu và đóng file.
Lưu ý: Nếu bạn đang lưu trữ nhiều miền trên một máy chủ, thì các miền khác cũng có thể được chuyển tới Postfix bằng directive mydestination
.
Sau đó, khởi động lại Postfix bằng cách chạy lệnh sau:
sudo systemctl restart postfix
Bạn đã cấu hình Postfix để chỉ gửi email từ server của mình. Bây giờ, bạn sẽ kiểm tra nó bằng cách gửi một thông báo mẫu đến một địa chỉ email.
Nếu bạn đang tìm kiếm một giải pháp máy chủ mạnh mẽ, linh hoạt để cài đặt và cấu hình Postfix làm Server SMTP Send-Only trên Ubuntu 20.04, bạn có thể tham khảo dịch vụ VPS của Vietnix.
Vietnix cung cấp đa dạng các gói VPS như VPS Giá rẻ, VPS Phổ Thông, VPS Cao Cấp, VPS NVMe và VPS GPU. Với VPS Vietnix, bạn sẽ có quyền truy cập vào một môi trường máy chủ ảo độc lập, giúp bạn cài đặt và cấu hình Postfix một cách dễ dàng, nhanh chóng.
Truy cập ngay với trang dịch vụ VPS của Vietnix để tìm hiểu thông tin chi tiết và lựa chọn gói phù hợp với nhu cầu.
Bước 3: Thử nghiệm Server SMTP
Trong bước này, bạn sẽ kiểm tra xem Postfix có thể gửi email đến tài khoản email bên ngoài hay không bằng cách sử dụng lệnh mail
, đây là một phần của gói mailutils
mà bạn đã cài đặt ở bước đầu tiên.
echo "This is the body of the email" | mail -s "This is the subject line" vietnix@email.com
Bạn có thể thay đổi nội dung và chủ đề của email theo ý thích của mình. Hãy nhớ thay vietnix@email.com
bằng một địa chỉ email hợp lệ mà bạn có thể truy cập.
Bây giờ, hãy kiểm tra địa chỉ email mà bạn đã gửi tin nhắn này. Bạn sẽ thấy tin nhắn trong hộp thư đến của bạn. Nếu không có, hãy kiểm tra thư mục thư rác của bạn. Thường tại thời điểm này, tất cả các email bạn gửi đều không mã hóa, khiến các nhà cung cấp dịch vụ cho rằng đó có thể là thư rác. Bạn sẽ thiết lập mã hóa sau.
Nếu bạn nhận được lỗi từ lệnh mail
hoặc bạn chưa nhận được thư sau một khoảng thời gian dài, hãy kiểm tra xem cấu hình Postfix mà bạn đã chỉnh sửa có hợp lệ không và tên server cũng như tên hostname của bạn đã được đặt theo miền của bạn chưa.
Lưu ý rằng với cấu hình này, địa chỉ trong trường From
cho các email kiểm tra bạn gửi sẽ ở dạng your_user_name@vietnixtest.com
, trong đó your_user_name
là tên người dùng của server người dùng mà bạn đã chạy lệnh.
Bây giờ bạn đã gửi một email từ server của mình và xác minh rằng nó đã được nhận thành công.
Bước 4: Chuyển tiếp System Mail
Trong bước này, bạn sẽ thiết lập chuyển tiếp email cho người dùng root
để các thư do hệ thống tạo ra được gửi tới nó trên server của bạn được chuyển tiếp tới một địa chỉ email bên ngoài.
File /etc/aliases
chứa danh sách các tên thay thế cho người nhận email. Hãy mở nó để chỉnh sửa:
sudo nano /etc/aliases
Trong trạng thái mặc định sẽ giống như thế này:
/etc/aliases
# See man 5 aliases for format
postmaster: root
Directive duy nhất hiện diện xác định rằng các email do hệ thống tạo sẽ được gửi tới root
.
Hãy thêm dòng sau vào cuối file:
/etc/aliases
...
root: vietnix@email.com
Với dòng lệnh này, bạn chỉ định rằng các email được gửi đến root
sẽ được chuyển tiếp đến một địa chỉ email. Nhớ thay vietnix@email.com
bằng địa chỉ email cá nhân của bạn. Khi bạn đã hoàn tất, hãy lưu và đóng file.
Để thay đổi có hiệu lực, hãy chạy lệnh sau:
sudo newaliases
Việc chạy lệnh newaliases
sẽ tạo cơ sở dữ liệu về bí danh mà lệnh mail
sử dụng, được lấy từ file cấu hình bạn vừa chỉnh sửa.
Kiểm tra xem việc gửi email tới root
có hoạt động không bằng cách chạy:
echo "This is the body of the email" | mail -s "This is the subject line" root
Bạn sẽ nhận được email tại địa chỉ email của bạn. Nếu không có ở đó, hãy kiểm tra thư mục thư rác của bạn.
Trong bước này, bạn thiết lập chuyển tiếp thư do hệ thống tạo đến địa chỉ email của mình. Bây giờ, bạn sẽ bật mã hóa thư để tất cả các email mà server của bạn gửi không bị giả mạo trong quá trình chuyển tiếp và sẽ được xem là hợp pháp hơn.
Bước 5: Bật mã hóa SMTP
Bây giờ, bạn sẽ bật mã hóa SMTP bằng cách yêu cầu chứng chỉ TLS miễn phí từ Let’s Encrypt cho miền của bạn (sử dụng Certbot) và định cấu hình Postfix để sử dụng chứng chỉ này khi gửi tin nhắn.
Ubuntu bao gồm Certbot trong repository gói mặc định của họ, vì vậy bạn có thể cài đặt nó bằng cách chạy lệnh sau:
sudo apt install certbot
Khi được yêu cầu xác nhận, hãy nhập Y
và nhấn ENTER
.
Là một phần của thiết lập server ban đầu trong các điều kiện tiên quyết, bạn đã cài đặt ufw
, một tường lửa cơ bản. Người dùng sẽ cần cấu hình nó để cho phép cổng HTTP 80
, để có thể hoàn tất quá trình xác minh tên miền. Chạy lệnh sau để kích hoạt nó:
sudo ufw allow 80
Output sẽ trông như thế này:
Output
Rule added
Rule added (v6)
Bây giờ cổng đã mở, hãy chạy Certbot để lấy chứng chỉ:
sudo certbot certonly --standalone --rsa-key-size 4096 --agree-tos --preferred-challenges http -d vietnixtest.com
Lệnh này ra lệnh cho Certbot cấp chứng chỉ có kích thước khóa RSA là 4096 bit, để chạy máy chủ web độc lập tạm thời (--standalone
) để xác minh và kiểm tra qua cổng 80
(--preferred-challenges http
). Hãy nhớ thay thế vietnixtest.com
bằng tên miền của bạn trước khi chạy lệnh và nhập địa chỉ email của bạn khi được nhắc.
Ouput sẽ tương tự như thế này:
Output
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator standalone, Installer None
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for `vietnixtest.com`
Waiting for verification...
Cleaning up challenges
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/vietnixtest.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/vietnixtest.com/privkey.pem
Your cert will expire on 2020-07-11. To obtain a new or tweaked
version of this certificate in the future, simply run certbot
again. To non-interactively renew *all* of your certificates, run
"certbot renew"
- If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le
Như đã viết trong ghi chú, chứng chỉ và file khóa cá nhân của bạn đã được lưu trong /etc/letsencrypt/live/vietnixtest.com
.
Bây giờ bạn đã có chứng chỉ của mình, hãy mở main.cf
để chỉnh sửa:
sudo nano /etc/postfix/main.cf
Hãy tìm phần sau đây:
/etc/postfix/main.cf
# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_tls_security_level=may
smtp_tls_CApath=/etc/ssl/certs
smtp_tls_security_level=may
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
Sửa đổi nó thành như sau, nhớ thay vietnixtest.com
bằng tên miền của bạn nếu cần. Điều này sẽ cập nhật cài đặt TLS của bạn cho Postfix:
/etc/postfix/main.cf
# TLS parameters
smtpd_tls_cert_file=/etc/letsencrypt/live/vietnixtest.com/fullchain.pem
smtpd_tls_key_file=/etc/letsencrypt/live/vietnixtest.com/privkey.pem
smtpd_tls_security_level=may
smtp_tls_CApath=/etc/ssl/certs
smtp_tls_security_level=may
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
Khi bạn đã hoàn tất, hãy lưu và đóng file. Áp dụng các thay đổi bằng cách khởi động lại Postfix:
sudo systemctl restart postfix
Bây giờ, hãy thử gửi lại email:
echo "This is the body of an encrypted email" | mail -s "This is the subject line" vietnix@email.com
Sau đó, kiểm tra địa chỉ email bạn đã cung cấp. Có thể bạn sẽ thấy thư trong hộp thư đến của mình ngay lập tức vì các nhà cung cấp dịch vụ email có nhiều khả năng đánh dấu các thư không được mã hóa là thư rác.
Bạn có thể kiểm tra thông tin kỹ thuật về thông báo email nơi client của mình để biết rằng thư thực sự được mã hóa.
Vietnix là nhà cung cấp dịch vụ VPS tốc độ cao hàng đầu tại Việt Nam. Nếu bạn đang tìm kiếm một giải pháp VPS cho việc triển khai các dự án, hãy liên hệ trực tiếp với Vietnix.
Với hơn 11 năm kinh nghiệm trong lĩnh vực cung cấp VPS, Vietnix đã trở thành đối tác đáng tin cậy của hơn 50.000 khách hàng. Vietnix sở hữu công nghệ chống DDoS độc quyền tại Việt Nam, giúp bảo vệ hệ thống của bạn khỏi các cuộc tấn công DDoS hiệu quả.
Trong quá trình hoạt động, Vietnix đã kích hoạt hơn hơn 100.000 dịch vụ và đạt được tỷ lệ hài lòng cao với 97% khách hàng đánh giá 5 sao. Đáng chú ý, 89% khách hàng duy trì sử dụng dịch vụ của Vietnix đến thời điểm hiện tại, cho thấy sự tin tưởng và hài lòng từ phía khách hàng.
Vietnix còn nhận được giải thưởng Thương hiệu Việt Nam xuất sắc 2022, giải thưởng này càng khẳng định vị thế của Vietnix trên thị trường.
Thông tin liên hệ:
- Địa chỉ: 265 Hồng Lạc, Phường 10, Quận Tân Bình, Thành Phố Hồ Chí Minh
- Hotline: 1800 1093
- Email: sales@vietnix.com.vn
Lời kết
Bây giờ bạn có một server email chỉ gửi, được hỗ trợ bởi Postfix. Mã hóa tất cả thư gửi đi là bước đầu tiên hiệu quả để các nhà cung cấp dịch vụ email không đánh dấu thư của bạn là thư rác ngay lập tức. Cám ơn bạn đã đọc bài viết về cách cài đặt và cấu hình Postfix làm Server SMTP chỉ gửi trên Ubuntu 20.04. Nếu có điều gì chưa rõ, hãy bình luận bên dưới để được hỗ trợ nhé.