Giới thiệu Thiết lập một máy chủ SMTP không phải là một nhiệm vụ cho những người thiếu kinh nghiệm. Không chỉ là về vấn đề an ninh, mà email deliverability là một vấn đề lớn hơn. Đảm bảo deliverability cao của email từ một nhà máy chủ SMTP mà không bị đánh dấu là spam rất khó khăn, do mức độ cao về bảo vệ thư rác được cung cấp bởi các nhà cung cấp email hiện nay. Một mail relay giải quyết cả hai vấn đề. Nó là đơn giản hơn nhiều để cấu hình hơn một máy chủ SMTP toàn diện bởi vì bạn chỉ đơn giản là chuyển tiếp bất kỳ email nào được tạo ra bởi máy chủ của bạn đến một máy chủ SMTP chuyên nghiệp quản lý. Kết quả là, bạn sẽ được miễn phí từ hầu hết các rắc rối deliverability email. Có hai loại chuyển tiếp mail: open và closed. Một open mail relay chuyển tiếp mail từ các nguồn bên ngoài cũng như máy chủ mail nội bộ. Đây là loại relay chính mà người gửi thư rác sẽ sử dụng. Một closed relay chỉ chuyển tiếp các thông điệp được tạo ra trong nội bộ trên máy chủ của chúng tôi và mạng nội bộ. Trong khi bạn có thể sử dụng bất kỳ máy chủ SMTP bên ngoài để định tuyến email, Mailgun cung cấp nhiều lợi thế hơn các máy chủ SMTP khác. Nó miễn phí lên đến 10.000 email mỗi tháng, nó vô cùng đáng tin cậy, và nó cho phép bạn gửi thư từ một separate domain. Hướng dẫn này sẽ giúp bạn tạo ra và thiết lập một tài khoản Mailgun miễn phí và subdomain, thiết lập các bản ghi DNS DigitalOcean cần thiết, và thiết lập một closed mail relay sử dụng Postfix. Bước 1 - Thiết lập một tài khoản Mailgun Tạo một tài khoản mới tại https://mailgun.com/signup. Một khi hoàn tất đăng ký, đăng nhập vào bảng điều khiển của bạn và nhấp vào Domains trong menu ở phía trên cùng của trang. Bạn sẽ thấy một miền sandbox, mà Mailgun tạo ra cho bạn. Thay vì sử dụng sandbox, tạo một subdomain cho Mailgun bằng cách nhấp vào Add New Domain. Bạn có thể đặt tên subdomain tùy theo ý của bạn, chẳng hạn như mailgun.example.com hoặc bulkemail.example.com. Hướng dẫn này sẽ sử dụng mg.example1.com trong các ví dụ của nó. Sau khi tạo subdomain của bạn, trang Tên miền của bạn sẽ giống như hình dưới đây: Tiếp theo, đi tới trang chính của subdomain của bạn bằng cách nhấn vào liên kết hiển thị dòng tên subdomain đó. Bạn sẽ thấy ba bộ thiết lập DNS, như thể hiện trong hình dưới đây: Bạn sẽ cần phải thêm các bản ghi DNS cho tên miền của bạn trong bảng điều khiển. DNS record for Sending and Tracking được yêu cầu, nhưng bạn có thể bỏ qua DNS record for Receiving. Bạn sẽ sử dụng các thông tin trên trang này để tạo ra các bản ghi DNS thích hợp trong các bước tiếp theo, vì vậy giữ cho trang này mở để bạn có thể sao chép các giá trị cho những record này. Bước 2 - Cài đặt và Cấu hình Postfix Chúng tôi sẽ sử dụng quản lý built-in pacakge để cài đặt Postfix. Kết nối với máy chủ của bạn là user không phải user root của bạn: Mã: ssh sammy@your_server_ip Thông thường, quá trình cài đặt Postfix sử dụng một số màn hình tương tác để nhắc bạn cho thông tin. Để ngăn chặn bất kỳ lỗi nào có thể trong thiết lập này, chúng ta hãy cấu hình trước thông tin này trước khi bắt đầu quá trình cài đặt. Đầu tiên, cấu hình Postfix để hoạt động như một mail relay : Mã: debconf-set-selections <<< "postfix postfix/main_mailer_type select Satellite system" Sau đó cấu hình Postfix sử dụng hostname của máy chủ của bạn cho hostname của mail server: Mã: debconf-set-selections <<< "postfix postfix/mailname string $HOSTNAME" Sau đó cấu hình Postfix để sử dụng máy chủ Mailgun's SMTP cho relayed mail: Mã: debconf-set-selections <<< "postfix postfix/relayhost string smtp.mailgun.org" Cài đặt Postfix: Mã: apt -y install postfix Để cho Postfix kết nối với với Mailgun, bạn phải tạo một tập tin thông tin với tên người dùng và mật khẩu cho các Mailgun subdomain. Tạo và chỉnh sửa một tập tin thông tin mới: Mã: nano /etc/postfix/sasl_passwd Thêm dòng sau vào tập tin mới: Mã: smtp.mailgun.org your_mailgun_smtp_user@your_subdomain_for_mailgun:your_mailgun_smtp_password Tiếp theo, bảo vệ các tập tin bằng cách hạn chế quyền đọc và viết tới root và dùng lệnh postmap để cập nhật các bảng tra cứu Postfix để sử dụng tập tin mới: Mã: chmod 600 /etc/postfix/sasl_passwd postmap /etc/postfix/sasl_passwd Tiếp theo, tăng cường bảo mật mail relay bằng cách ngăn chặn đăng nhập vô danh và xác định các tập tin thông tin để cung cấp thông tin đăng nhập an toàn đến Mailgun. Chỉnh sửa tập tin cấu hình Postfix: Mã: nano /etc/postfix/main.cf và thêm những dòng này vào cuối file: Mã: smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = noanonymous smtp_sasl_tls_security_options = noanonymous smtp_sasl_mechanism_filter = AUTH LOGIN Bây giờ khởi động lại Postfix để áp dụng cấu hình mới: Mã: systmctl restart postfix Bạn cũng nên chắc chắn rằng không có cổng SMTP được mở bằng cách chạy lệnh này để kiểm tra tình trạng của firewall của bạn: Mã: ufw status Kết quả ra phải giống như thế này: Mã: Output To Action From -- ------ ---- 22 ALLOW IN Anywhere 22 (v6) ALLOW IN Anywhere (v6) Kết quả ra không được chứa bất kỳ những cổng như 25, 465, hoặc 587. Những cổng này được sử dụng để truy cập SMTP, và bạn không muốn cho phép lưu lượng gửi đến sử dụng mail relay của bạn. Thông thường, để thiết lập một máy chủ SMTP sử dụng Postfix, tên hostname của máy chủ của bạn phải giống như tên miền đầy đủ của trang web của bạn (FQDN). Nếu tên hostname của máy chủ của bạn là một FQDN, bạn có thể bỏ qua và đến bước 4. Nếu không, hãy đọc tiếp. Bước 3 - Thiết lập Domain Mapping Từ khi chúng ta đang sử dụng Mailgun cho máy chủ SMTP của chúng tôi thay vì Postfix, tên hostname của máy chủ của bạn không cần phải trùng khớp với FQDN mà bạn đang sử dụng cho email của bạn. Điều này là rất phổ biến. Ví dụ, nếu máy chủ của bạn là một máy chủ cơ sở dữ liệu hoặc một máy chủ theo dõi, nó thường không phải là một FQDN. Chúng tôi có thể thiết lập một mapping table, mà thay thế một địa chỉ e-mail cho người khác. Tạo và chỉnh sửa một mapping table mới bằng cách tạo ra tập tin /etc/postfix/generic: Mã: nano /etc/postfix/generic Thêm dòng này vào tập tin: Mã: sammy@your_hostname sender@your_subdomain_for_mailgun Bạn có thể thay thế người gửi với bất cứ tên gì bạn muốn, chẳng hạn như wordpress hoặc no-reply Phần duy nhất mà thực sự quan trọng là your_subdomain_for_mailgun, mà phải là Mailgun suddomain của bạn mà bạn đã chỉ định tại bước 1. Bạn có thể chỉ định nhiều user bằng cách tạo ra nhiều dòng như thế này. Bây giờ thêm mapping này tới các bảng tra cứu Postfix bằng cách sử dụng lệnh postmap: Mã: postmap /etc/postfix/generic Sau đó chỉnh sửa tập tin cấu hình Postfix của bạn để thêm tập tin mapping: Mã: nano /etc/postfix/main.cf Thêm dòng này vào cuối file: Mã: smtp_generic_maps = hash:/etc/postfix/generic Cuối cùng, khởi động lại Postfix để áp dụng những thay đổi: Mã: systemctl restart postfix Bây giờ hãy kiểm tra mail relay để đảm bảo mọi thứ đều được cấu hình đúng. Bước 4 - Kiểm tra mail relay của bạn Để kiểm tra mail relay mới của bạn, bạn sẽ gửi một thông điệp đến địa chỉ email cá nhân của bạn từ máy chủ của bạn. Cài đặt mailutils, do đó bạn có thể gửi một email thử nghiệm một cách nhanh chóng. Mã: apt -y install mailutils Sau đó sử dụng mailutils để soạn và gửi tin nhắn đến tài khoản email cá nhân của bạn khỏi người dùng hiện tại của bạn trên máy chủ. Mã: mail -s "Test mail" your_email_address <<< "A test message using Mailgun" Bạn có thể thay đổi thông điệp tới bất cứ điều gì mà bạn muốn. Kiểm tra ứng dụng email của bạn, nếu bạn nhận được tin nhắn kiểm tra thì xin chúc mừng bạn đã thành công trong việc thiết lập một mail relay. Bước 5 - Khắc phục sự cố mail relay của bạn Trước tiên, hãy chắc chắn Mailgun đã xác nhận các bản ghi DNS của bạn. Không có gì có thể xảy ra cho đến khi bước đó là thành công. Kiểm tra giao diện người dùng Mailgun và đảm bảo rằng các tên miền đã được xác minh. Tiếp theo, kiểm tra tập tin thông tin của bạn (/etc/postfix/sasl_passwd). Hãy chắc chắn rằng tên người dùng và mật khẩu của bạn trùng khới với các user subdomain tương ứng trong Mailgun. Kiểm tra bản log email của bạn cho bất kỳ thông báo lỗi. Có hai nơi mà bạn sẽ muốn kiểm tra. Đầu tiên, kiểm tra đăng nhập vào máy chủ của bạn, mà bạn có thể tìm thấy trong các tập tin /var/log/mail.log. Bạn có thể xem các mục mới nhất với lệnh sau: Mã: tail -f /var/log/mail.log Ngoài máy chủ của bạn, Mailgun cũng lưu trữ log. Di chuyển vào Dashboard Mailgun của bạn và chọn menu Logs để xem bất kỳ thông báo lỗi có thể xảy ra mà ngăn chặn các tin nhắn được chuyển tiếp.