Cấu hình Postfix để sử dụng Gmail làm Mail Relay

theanh

Administrator
Nhân viên
Nếu bạn có tài khoản Gmail, bạn có thể cấu hình MTA của mình để chuyển tiếp thư đi qua Gmail. Điều này mang lại cho bạn lợi ích về độ tin cậy và cơ sở hạ tầng mạnh mẽ của Gmail, đồng thời cung cấp cho bạn phương tiện đơn giản để gửi email từ dòng lệnh.

Trong hướng dẫn này, chúng ta sẽ sử dụng Postfix làm MTA của mình. Postfix là một tác nhân chuyển thư miễn phí, mã nguồn mở, được bảo trì tích cực và có tính bảo mật cao.

Ở mỗi bước, chúng tôi sẽ đề cập đến các hướng dẫn cụ thể cho các hệ điều hành sau:
  • Debian 9
  • Ubuntu18.04 LTS
  • CentOS 7
  • OpenSUSELeap 15.0
  • Arch Linux 2019.03.01
  • FreeBSD 12.0
Chúng tôi cũng sẽ cài đặt mailutils/mailx để chúng tôi có thể gửi email thử nghiệm. Khi cần thiết, chúng tôi sẽ cài đặt các thư viện SASL bổ sung.

Tất cả các lệnh bắt đầu bằng # yêu cầu quyền root.

1. Cài đặt phần mềm cần thiết​

Debian, Ubuntu:​

Mã:
apt-get update && apt-get install postfix mailutils
Khi được nhắc nhập "Kiểu chung của cấu hình thư", hãy chọn Internet Site.

Khi được nhắc nhập "Mail name", hãy chọn tên máy chủ để sử dụng trong tiêu đề thư làm nguồn gốc của email. Nên sử dụng tên miền đủ điều kiện, nhưng sử dụng tên máy chủ đơn giản của máy bạn cũng được. Bất kể bạn nhập gì ở đây, địa chỉ trả lời của bạn sẽ hiển thị với người nhận là địa chỉ Gmail của bạn.

Bạn có thể được nhắc đặt "Người nhận thư gốc và postmaster". Nhập root hoặc người dùng khác sẽ nhận được thông báo hệ thống con thư.

Đối với bất kỳ lời nhắc nào khác, bạn có thể chọn các giá trị mặc định.

Fedora:
Mã:
dnf update && dnf install postfix mailx
CentOS:
Mã:
yum update && yum install postfix mailx cyrus-sasl cyrus-sasl-plain
OpenSUSE:
Mã:
zypper update && zypper install postfix mailx cyrus-sasl
Arch Linux:
Mã:
pacman -Sy postfix mailutils
FreeBSD:

Biên dịch Postfix từ bộ sưu tập cổng để kết hợp hỗ trợ cho SASL:
Mã:
portsnap fetch extract update
Mã:
cd /usr/ports/mail/postfix
Mã:
make config
Trong hộp thoại cấu hình, chọn Hỗ trợ SASL. Tất cả các tùy chọn khác có thể giữ nguyên. Sau đó:
Mã:
make install clean
Mailx có thể được cài đặt từ gói nhị phân:
Mã:
pkg install mailx

2. Cấu hình Xác thực Gmail​

Tạo hoặc sửa đổi tệp mật khẩu sẽ được Postfix sử dụng để thiết lập xác thực với Gmail. Trong thông tin xác thực bên dưới, hãy thay thế username bằng tên người dùng Gmail của bạn và password bằng mật khẩu Gmail của bạn. Nếu bạn đang sử dụng tên miền Gmail Apps tùy chỉnh, bạn có thể thay thế gmail.com bằng tên miền Google Apps của mình.

Tệp mật khẩu sẽ nằm trong thư mục cấu hình Postfix. Tệp có thể được đặt tên tùy ý, nhưng tên tệp được đề xuất là sasl_passwd.

Debian, Ubuntu, Fedora, CentOS, OpenSUSE, Arch Linux:

Các tệp cấu hình Postfix nằm trong thư mục /etc/postfix. Tạo hoặc chỉnh sửa tệp mật khẩu:
Mã:
nano /etc/postfix/sasl_passwd
Thêm dòng:
Mã:
[smtp.gmail.com]:587 [emailprotected]:password
Lưu và đóng tệp. Mật khẩu Gmail của bạn được lưu trữ dưới dạng văn bản thuần túy, vì vậy hãy chỉ cho phép root truy cập tệp:
Mã:
chmod 600 /etc/postfix/sasl_passwd
FreeBSD:

Các tệp cấu hình Postfix nằm trong thư mục /usr/local/etc/postfix. Tạo hoặc chỉnh sửa tệp mật khẩu:
Mã:
nano /usr/local/etc/postfix/sasl_passwd
Thêm dòng:
Mã:
[smtp.gmail.com]:587 [emailprotected]:password
Lưu và đóng tệp. Chỉ cho phép root truy cập tệp:
Mã:
chmod 600 /usr/local/etc/postfix/sasl_passwd

3. Cấu hình Postfix​

Có sáu tham số phải được thiết lập trong tệp cấu hình Postfix main.cf. Các tham số là:

relayhost, chỉ định máy chủ chuyển tiếp thư và số cổng. Tên máy chủ sẽ được đặt trong dấu ngoặc vuông để chỉ định rằng không cần tra cứu MX.

smtp_use_tls, cho phép (hoặc vô hiệu hóa) bảo mật lớp truyền tải.

smtp_sasl_auth_enable, cho phép (hoặc vô hiệu hóa) xác thực SASL.

smtp_sasl_security_options, trong cấu hình sau sẽ được đặt thành trống, để đảm bảo không có tùy chọn bảo mật nào không tương thích với Gmail được sử dụng.

smtp_sasl_password_maps, chỉ định tệp mật khẩu sẽ sử dụng. Tệp này sẽ được biên dịch và băm bởi postmap ở bước sau.

smtp_tls_CAfile, tệp này chỉ định danh sách các cơ quan cấp chứng chỉ sẽ sử dụng khi xác minh danh tính máy chủ.

Debian, Ubuntu, Arch Linux:

Chỉnh sửa tệp cấu hình Postfix chính:
Mã:
nano /etc/postfix/main.cf
Thêm hoặc sửa đổi các giá trị sau:
Mã:
relayhost = [smtp.gmail.com]:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_security_options =
smtp_sasl_password_maps = băm:/etc/postfix/sasl_passwd
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
Lưu và đóng tệp.

Fedora, CentOS:

Chỉnh sửa tệp cấu hình Postfix chính:
Mã:
nano /etc/postfix/main.cf
Thêm hoặc sửa đổi các giá trị sau:
Mã:
relayhost = [smtp.gmail.com]:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_security_options =
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_tls_CAfile = /etc/ssl/certs/ca-bundle.crt
Lưu và đóng tệp.

OpenSUSE:

Chỉnh sửa tệp cấu hình Postfix chính:
Mã:
nano /etc/postfix/main.cf
Thêm hoặc sửa đổi các giá trị sau:
Mã:
relayhost = [smtp.gmail.com]:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_security_options =
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_tls_CAfile = /etc/ssl/ca-bundle.pem
Lưu và đóng tệp.

OpenSUSE cũng yêu cầu tệp cấu hình quy trình chính Postfix master.cf phải được sửa đổi. Mở nó để chỉnh sửa:
Mã:
nano /etc/postfix/master.cf
Xác định vị trí dòng có nội dung:
Mã:
#tlsmgr unix - - n 1000? 1 tlsmg
Bỏ chú thích để có nội dung:
Mã:
tlsmgr unix - - n 1000? 1 tlsmg
Lưu và đóng tệp.

FreeBSD:

Chỉnh sửa tệp cấu hình Postfix chính:
Mã:
nano /usr/local/etc/postfix/main.cf
Thêm hoặc sửa đổi các giá trị sau:
Mã:
relayhost = [smtp.gmail.com]:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_security_options =
smtp_sasl_password_maps = hash:/usr/local/etc/postfix/sasl_passwd
smtp_tls_CAfile = /etc/mail/certs/cacert.pem
Lưu và đóng tệp.

4. Xử lý tệp mật khẩu​

Sử dụng postmap để biên dịch và băm nội dung của sasl_passwd. Kết quả sẽ được lưu trữ trong thư mục cấu hình Postfix của bạn trong tệp sasl_passwd.db.

Debian, Ubuntu, Fedora, CentOS, OpenSUSE, Arch Linux:
Mã:
postmap /etc/postfix/sasl_passwd
FreeBSD:
Mã:
postmap /usr/local/etc/postfix/sasl_passwd

5. Khởi động lại Postfix​

Khởi động lại dịch vụ Postfix, áp dụng các thay đổi của bạn.

Debian, Ubuntu, Fedora, CentOS, OpenSUSE, Arch Linux:
Mã:
systemctl restart postfix.service
FreeBSD:

Để khởi động dịch vụ Postfix chỉ cho phiên này:
Mã:
service postfix onestart
Để tự động khởi động Postfix khi hệ thống khởi tạo, hãy mở /etc/rc.conf để chỉnh sửa:
Mã:
nano /etc/rc.conf
Thêm dòng:
Mã:
postfix_enable=YES
Lưu và đóng tệp. Sau đó, bạn có thể chạy:
Mã:
service postfix start
Để khởi động Postfix.

6. Bật "Ứng dụng kém an toàn" trong Gmail​

Theo mặc định, chỉ những lần đăng nhập an toàn nhất, chẳng hạn như đăng nhập vào Gmail trên web, mới được phép đối với tài khoản Gmail của bạn. Để cho phép yêu cầu chuyển tiếp, hãy đăng nhập vào tài khoản Gmail của bạn và bật Cho phép ứng dụng kém an toàn.

Để biết thêm thông tin, hãy xem tài liệu Hỗ trợ của Google "Cho phép ứng dụng kém an toàn truy cập vào tài khoản của bạn."

7. Gửi email thử nghiệm​

Kiểm tra cấu hình mới của bạn bằng cách gửi email bằng lệnh mail. Chạy:
Mã:
mail -s "Đối tượng thử nghiệm" [emailprotected]
Bạn sẽ thấy một dòng trống (hoặc trường CC:, bạn có thể bỏ qua bằng cách nhấn Enter). Nhập nội dung tin nhắn của bạn, nhấn Enter để xuống dòng. Khi bạn soạn xong email, hãy nhập CTRL-D để gửi. Để hủy email, hãy nhấn CTRL-C hai lần.

Để gửi email đã soạn sẵn, hãy sử dụng lệnh:
Mã:
mail -s "Subject Here" [emailprotected] < textfile
Trong đó textfile là tên của tệp chứa văn bản cần gửi.

Khắc phục sự cố​

Nếu không hoạt động, hãy kiểm tra nhật ký để tìm lỗi Postfix:

Debian:
Mã:
less /var/log/mail.log
Ubuntu, Fedora, CentOS, OpenSUSE, Arch Linux:
Mã:
journalctl
FreeBSD:
Mã:
less /var/log/maillog
Nếu bạn nhận được lỗi xác thực từ Gmail, hãy xác minh rằng Cho phép ứng dụng ít an toàn hơn được bật trong cài đặt tài khoản Gmail của bạn, như đã chỉ định trong Bước 6.

Xác minh rằng tệp mật khẩu sasl_passwd tồn tại và nội dung của tệp đó là được định dạng đúng, như đã chỉ định trong Bước 2. Nếu bạn thực hiện bất kỳ thay đổi nào đối với tệp mật khẩu, hãy đảm bảo lặp lại Bước 4 và 5 để băm tệp mật khẩu mới và khởi động lại Postfix.

Nếu bạn thấy bất kỳ lỗi TLS nào, hãy kiểm tra lại cấu hình trong main.cf như đã chỉ định trong Bước 3. Nếu bạn thực hiện bất kỳ thay đổi cấu hình nào, hãy khởi động lại Postfix như đã chỉ định trong Bước 5.
 
Back
Bên trên