Thứ năm, 21/05/2020 | 00:00 GMT+7

Cách cài đặt và cấu hình Postfix trên Ubuntu 20.04

Postfix là một tác nhân truyền thư (MTA) open-souce phổ biến được dùng để định tuyến và gửi email trên hệ thống Linux. Người ta ước tính rằng khoảng 25% server thư công cộng trên internet chạy Postfix.

Trong hướng dẫn này, bạn sẽ học cách cài đặt và cấu hình Postfix trên server Ubuntu 20.04. Sau đó, bạn sẽ kiểm tra xem Postfix có thể định tuyến thư một cách chính xác hay không bằng cách cài đặt s-nail , một Mail User Agent (MUA), còn gọi là ứng dụng email .

Lưu ý mục tiêu của hướng dẫn này là giúp bạn cài đặt và chạy Postfix một cách nhanh chóng chỉ với một số chức năng email đơn giản. Bạn sẽ không có server email đầy đủ tính năng vào cuối hướng dẫn này, nhưng bạn sẽ có một số thành phần cơ bản của cài đặt như vậy để giúp bạn bắt đầu.

Yêu cầu

Để làm theo hướng dẫn này, bạn cần các thành phần sau :

  • Server chạy Ubuntu 20.04 để hoạt động như server thư Postfix của bạn. Server này phải có user không phải root có quyền sudo và firewall được cấu hình bằng UFW. Bạn có thể làm theo hướng dẫn cài đặt server ban đầu Ubuntu 20.04 của ta để cài đặt điều này.
  • Tên domain Đủ điều kiện đã chỉ vào server Ubuntu 20.04 của bạn. Bạn có thể tìm trợ giúp về cách cài đặt domain của bạn với DigitalOcean theo tài liệu Tên domain và Mạng DNS của ta . Hãy lưu ý nếu bạn định truy cập thư từ một vị trí bên ngoài, bạn cần đảm bảo bạn cũng có bản ghi MX trỏ đến server thư của bạn .

Lưu ý hướng dẫn này giả định bạn đang cấu hình một server có FQDN của mail.example.com . Khi cần thiết, hãy đảm bảo thay đổi example.com hoặc mail.example.com để phản ánh FQDN của bạn .

Bước 1 - Cài đặt Postfix

Postfix có trong repository lưu trữ mặc định của Ubuntu, vì vậy bạn có thể cài đặt nó với APT.

Để bắt đầu, hãy cập nhật cache ẩn gói apt local của bạn:

  • sudo apt update

Sau đó, cài đặt gói postfix bằng lệnh sau. Lưu ý ở đây ta chuyển biến môi trường DEBIAN_PRIORITY=low vào lệnh cài đặt này. Điều này sẽ khiến quá trình cài đặt nhắc bạn cấu hình một số tùy chọn bổ sung:

  • sudo DEBIAN_PRIORITY=low apt install postfix

Quá trình cài đặt này sẽ mở ra một loạt dấu nhắc tương tác. Với mục đích của hướng dẫn này, hãy sử dụng thông tin sau để điền vào dấu nhắc của bạn:

  • Loại cấu hình thư chung? : Đối với điều này, hãy chọn Trang web Internet vì điều này phù hợp với nhu cầu cơ sở hạ tầng của ta .
  • Tên thư hệ thống : Đây là domain cơ sở được sử dụng để tạo địa chỉ email hợp lệ khi chỉ phần account của địa chỉ được cung cấp. Ví dụ, giả sử tên server của server của bạn là mail. example.com . Bạn có thể sẽ muốn đặt tên thư hệ thống thành example.com để, với tên user user1 , Postfix sẽ sử dụng địa chỉ user1@ example.com .
  • Người nhận thư root và postmaster : Đây là account Linux sẽ được chuyển tiếp thư đến root@postmaster@ . Sử dụng account chính của bạn cho việc này. Trong trường hợp ví dụ này, sammy .
  • Các điểm đến khác để chấp nhận thư : Điều này xác định các điểm đến thư mà version Postfix này sẽ chấp nhận. Nếu bạn cần thêm bất kỳ domain nào khác mà server này sẽ chịu trách nhiệm nhận, hãy thêm các domain đó tại đây. Nếu không, giá trị mặc định sẽ là đủ.
  • Buộc cập nhật đồng bộ trên hàng đợi thư? : Vì bạn có thể đang sử dụng một hệ thống file log , hãy chấp nhận Không ở đây.
  • Mạng local : Đây là danh sách các mạng mà server thư của bạn được cấu hình để chuyển tiếp thư. Mặc định sẽ hoạt động cho hầu hết các trường hợp. Tuy nhiên, nếu bạn chọn sửa đổi nó, hãy đảm bảo rất hạn chế liên quan đến phạm vi mạng.
  • Giới hạn kích thước hộp thư : Điều này được dùng để giới hạn kích thước của thư. Đặt nó thành 0 vô hiệu hóa mọi giới hạn về kích thước.
  • Ký tự mở rộng địa chỉ local : Đây là ký tự được dùng để tách phần thông thường của địa chỉ khỏi phần mở rộng (được sử dụng để tạo alias động). Mặc định, + sẽ hoạt động cho hướng dẫn này.
  • Các giao thức Internet để sử dụng : Chọn có hạn chế version IP mà Postfix hỗ trợ hay không. Đối với mục đích của hướng dẫn này, hãy chọn tất cả .

Nói một cách rõ ràng, đây là những cài đặt được sử dụng trong hướng dẫn này:

  • Loại cấu hình thư chung? : Trang web Internet
  • Tên thư hệ thống : example.com (không phải mail.example.com )
  • Người nhận thư root và administrator bưu điện : Tên user của account Linux chính của bạn ( sammy trong ví dụ của ta )
  • Các điểm đến khác để chấp nhận thư cho : $myhostname, example.com , mail.example.com , localhost.example.com , localhost
  • Buộc cập nhật đồng bộ trên hàng đợi thư? : Không
  • Mạng local : 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
  • Giới hạn kích thước hộp thư : 0
  • Ký tự của phần mở rộng về địa chỉ local : +
  • Các giao thức Internet để sử dụng : tất cả

Lưu ý : Nếu bạn cần quay lại để thay đổi các cài đặt này, bạn có thể thực hiện bằng cách nhập:

  • sudo dpkg-reconfigure postfix

Các dấu nhắc sẽ được điền trước với các câu trả lời trước đó của bạn.

Khi quá trình cài đặt kết thúc, bạn đã sẵn sàng thực hiện một vài cập nhật cho cấu hình Postfix của bạn .

Bước 2 - Thay đổi cấu hình Postfix

Đến đây bạn có thể điều chỉnh một số cài đặt mà quá trình cài đặt gói không nhắc bạn. Nhiều cài đặt cấu hình của Postfix được xác định trong file /etc/postfix/main.cf . Thay vì chỉnh sửa trực tiếp file này, bạn có thể sử dụng lệnh postconf của Postfix để truy vấn hoặc đặt cài đặt cấu hình.

Để bắt đầu, hãy đặt vị trí cho hộp thư của user Ubuntu không phải root của bạn. Trong hướng dẫn này, ta sẽ sử dụng định dạng Maildir , định dạng này tách thư thành các file riêng lẻ, sau đó được di chuyển giữa các folder dựa trên hành động của user . Tùy chọn thay thế không được đề cập trong hướng dẫn này là định dạng mbox , định dạng này lưu trữ tất cả thư trong một file duy nhất.

Đặt biến home_mailbox thành Maildir/ . Sau đó, bạn sẽ tạo một cấu trúc folder dưới tên đó trong folder chính của user của bạn. Cấu hình home_mailbox bằng lệnh :

  • sudo postconf -e 'home_mailbox= Maildir/'

Tiếp theo, đặt vị trí của bảng virtual_alias_maps , bảng này ánh xạ các account email tùy ý với các account hệ thống Linux. Chạy lệnh sau, lệnh này ánh xạ vị trí bảng tới file database băm có tên /etc/postfix/virtual :

  • sudo postconf -e 'virtual_alias_maps= hash:/etc/postfix/virtual'

Đến đây bạn đã xác định vị trí của file bản đồ ảo trong file main.cf của bạn , bạn có thể tạo file đó và bắt đầu ánh xạ account email với account user trên hệ thống Linux của bạn . Tạo file bằng editor bạn muốn ; trong ví dụ này, ta sẽ sử dụng nano :

  • sudo nano /etc/postfix/virtual

Liệt kê bất kỳ địa chỉ nào mà bạn muốn chấp nhận email, theo sau là khoảng trắng và user Linux mà bạn muốn gửi thư đó đến.

Ví dụ: nếu bạn muốn chấp nhận email tại contact@ example.comadmin@ example.com và muốn gửi những email đó đến user sammy Linux, bạn có thể cài đặt file của bạn như sau:

/ etc / postfix / virtual
contact@example.com sammy admin@example.com sammy 

Sau khi bạn đã ánh xạ tất cả các địa chỉ tới các account server thích hợp, hãy lưu file . Nếu bạn đã sử dụng nano , hãy thực hiện việc này bằng cách nhấn CTRL + X , Y , sau đó ENTER .

Áp dụng ánh xạ bằng lệnh :

  • sudo postmap /etc/postfix/virtual

Khởi động lại quy trình Postfix đảm bảo rằng tất cả các thay đổi đã được áp dụng:

  • sudo systemctl restart postfix

Giả sử bạn đã làm theo hướng dẫn Cài đặt Server Ban đầu tiên quyết , bạn sẽ cấu hình firewall với UFW. Tường lửa này sẽ chặn các kết nối bên ngoài đến các dịch vụ trên server của bạn theo mặc định trừ khi các kết nối đó được cho phép một cách rõ ràng, vì vậy bạn sẽ phải thêm luật firewall để cho phép một ngoại lệ cho Postfix.

Bạn có thể cho phép kết nối với dịch vụ bằng lệnh :

  • sudo ufw allow Postfix

Như vậy, Postfix được cấu hình và sẵn sàng chấp nhận các kết nối bên ngoài. Tuy nhiên, bạn vẫn chưa sẵn sàng để thử nghiệm nó với ứng dụng thư khách. Trước khi bạn có thể cài đặt một ứng dụng client và sử dụng nó để tương tác với thư được gửi đến server của bạn , bạn cần thực hiện một vài thay đổi đối với cài đặt server Ubuntu của bạn .

Bước 3 - Cài đặt Ứng dụng Thư và Khởi tạo Cấu trúc Maildir

Để tương tác với thư được gửi, bước này sẽ hướng dẫn bạn quá trình cài đặt gói s-nail . Đây là một biến thể giàu tính năng của ứng dụng client xmail BSD có thể xử lý chính xác định dạng Maildir.

Tuy nhiên, trước khi cài đặt ứng dụng client , cần thận trọng đảm bảo rằng biến môi trường MAIL của bạn được đặt chính xác. s-nail sẽ tìm kiếm biến này để tìm ra nơi tìm thư cho user của bạn.

Để đảm bảo biến MAIL được đặt dù bạn truy cập vào account của bạn bằng cách nào - chẳng hạn như thông qua ssh , su , su - hoặc sudo - bạn cần đặt biến trong file /etc/bash.bashrc và thêm nó thành một file trong /etc/profile.d đảm bảo rằng nó được đặt cho tất cả user theo mặc định.

Để thêm biến vào các file này, hãy nhập:

  • echo 'export MAIL=~/Maildir' | sudo tee -a /etc/bash.bashrc | sudo tee -a /etc/profile.d/mail.sh

Để đọc biến vào phiên hiện tại của bạn, hãy mã nguồn file /etc/profile.d/mail.sh :

  • source /etc/profile.d/mail.sh

Sau khi hoàn tất, hãy cài đặt ứng s-nail email s-nail với APT:

  • sudo apt install s-nail

Trước khi chạy ứng dụng client , bạn cần điều chỉnh một số cài đặt. Mở file /etc/s-nail.rc trong editor :

  • sudo nano /etc/s-nail.rc

Ở cuối file , hãy thêm các tùy chọn sau:

/etc/s-nail.rc
. . . set emptystart set folder=Maildir set record=+sent 

Đây là những gì những dòng này làm:

  • set emptystart : cho phép khách hàng mở ngay cả với hộp thư đến trống
  • set folder=Maildir : đặt Maildir folder vào nội bộ folder biến
  • set record=+sent tạo một file mbox sent để lưu trữ thư đã gửi trong bất kỳ folder nào được đặt làm biến folder , trong trường hợp này là Maildir

Lưu file khi bạn hoàn tất. Đến đây bạn đã sẵn sàng để khởi tạo cấu trúc Maildir của hệ thống.

Một cách nhanh chóng để tạo cấu trúc Maildir trong folder chính của bạn là gửi cho mình một email bằng lệnh s-nail . Bởi vì file sent sẽ chỉ khả dụng sau khi Maildir được tạo, bạn nên tắt tính năng ghi vào nó cho email đầu tiên này. Thực hiện việc này bằng cách chuyển tùy chọn -Snorecord .

Gửi email bằng cách nối một chuỗi vào lệnh s-nail . Điều chỉnh lệnh để đánh dấu user Linux của bạn là người nhận:

  • echo 'init' | s-nail -s 'init' -Snorecord sammy

Lưu ý : Bạn có thể nhận được phản hồi sau:

Output
Can't canonicalize "/home/sammy/Maildir"

Điều này là bình thường và chỉ có thể xuất hiện khi gửi tin nhắn đầu tiên này.

Bạn có thể kiểm tra đảm bảo rằng folder đã được tạo bằng cách tìm folder ~/Maildir của bạn:

  • ls -R ~/Maildir

Bạn sẽ thấy cấu trúc folder đã được tạo và một file tin mới nằm trong folder ~/Maildir/new :

Output
/home/sammy/Maildir/: cur new tmp /home/sammy/Maildir/cur: /home/sammy/Maildir/new: 1463177269.Vfd01I40e4dM691221.mail.example.com /home/sammy/Maildir/tmp:

Bây giờ cấu trúc folder đã được tạo, bạn đã sẵn sàng để kiểm tra ứng dụng client s-nail bằng cách xem thư init bạn đã gửi và gửi thư đến một địa chỉ email bên ngoài.

Bước 5 - Kiểm tra khách hàng

Để mở ứng dụng client , hãy chạy lệnh s-nail :

  • s-nail

Trong console của bạn , bạn sẽ thấy một hộp thư đến thô sơ với thông báo init đang chờ:

Output
s-nail version v14.9.15. Type `?' for help "/home/sammy/Maildir": 1 message 1 new >N 1 sammy@example.com 2020-05-19 15:40 14/392 init

Nhấn ENTER để hiển thị thông báo:

Output
[-- Message 1 -- 14 lines, 369 bytes --]: From sammy@example.com Tue May 19 15:40:48 2020 Date: Tue, 19 May 2020 15:40:48 +0000 To: sammy@example.com Subject: init Message-Id: <20160513220749.A278F228D9@mail.example.com> From: sammy@example.com init

Bạn có thể quay lại danh sách thư bằng lệnh h , rồi ENTER :

  • h
Output
>R 1 sammy@example.com 2020-05-19 15:40 14/392 init

Lưu ý thông báo bây giờ có trạng thái R , cho biết rằng nó đã được đọc.

Vì thông báo này không hữu ích lắm, bạn có thể xóa nó bằng cách nhấn d , sau đó ENTER :

  • d

Để quay lại terminal , hãy nhập q và sau đó ENTER :

  • q

Để kiểm tra cuối cùng, hãy kiểm tra xem s-nail có thể gửi email một cách chính xác hay không. Để thực hiện việc này, bạn có thể chuyển nội dung của file văn bản vào quy trình s-nail , giống như bạn đã làm với thông báo init mà bạn đã gửi ở bước trước.

Bắt đầu bằng cách viết một tin nhắn thử nghiệm trong một editor :

  • nano ~/test_message

Bên trong, hãy nhập một số văn bản bạn muốn gửi:

~ / test_message
Hello,  This is a test.  Please confirm receipt! 

Lưu file sau khi viết tin nhắn của bạn.

Sau đó, sử dụng lệnh cat để chuyển thông điệp đến quy trình s-nail . Bạn có thể làm như vậy với ví dụ sau, sử dụng các tùy chọn sau:

  • -s : Điều này xác định dòng chủ đề của email
  • -r : Một thay đổi tùy chọn đối với trường “Từ:” của email. Theo mặc định, user Linux mà bạn đăng nhập sẽ được sử dụng để điền trường này. Tùy chọn -r cho phép bạn overrides địa chỉ này bằng một địa chỉ hợp lệ, chẳng hạn như một trong những địa chỉ bạn đã xác định trong file /etc/postfix/virtual . Để minh họa, lệnh sau sử dụng contact@example.com

Ngoài ra, hãy đảm bảo thay đổi user @ email.com thành một địa chỉ email hợp lệ mà bạn có quyền truy cập:

  • cat ~/test_message | s-nail -s 'Test email subject line' -r contact@example.com user@email.com

Sau đó, chuyển đến hộp thư đến cho địa chỉ email mà bạn đã gửi tin nhắn. Bạn sẽ thấy tin nhắn của bạn đang chờ ở đó gần như ngay lập tức.

Lưu ý : Nếu thư không có trong hộp thư đến của bạn, nó có thể đã được chuyển đến folder Spam của bạn.

Bạn có thể xem các tin nhắn đã gửi của bạn trong khách hàng s-nail của bạn. Bắt đầu lại ứng dụng client tương tác:

  • s-nail

Từ ứng dụng email, xem các tin nhắn đã gửi của bạn bằng lệnh :

  • file +sent

Bạn sẽ thấy kết quả như thế này:

Output
+[/home/sammy/Maildir/]sent: 1 message 1 new ▸N 1 contact@example.com 2020-05-19 15:47 12/297 Test email subject line

Bạn có thể quản lý thư đã gửi bằng các lệnh tương tự mà bạn sử dụng cho thư đến.

Kết luận

Đến đây bạn đã cấu hình Postfix trên server Ubuntu 20.04 của bạn . Quản lý server email có thể là một nhiệm vụ khó khăn đối với các administrator hệ thống mới, nhưng với cấu hình này, bạn sẽ có đủ chức năng email MTA để bắt đầu.


Tags:

Các tin liên quan

Cách cài đặt Composer trên Ubuntu 20.04 [Quickstart]
2020-05-19
Cách cài đặt R trên Ubuntu 20.04 [Khởi động nhanh]
2020-05-19
Cách cài đặt và cấu hình Nextcloud trên Ubuntu 20.04
2020-05-18
Cách cài đặt và cấu hình Ansible trên Ubuntu 20.04
2020-05-15
Cách cài đặt R trên Ubuntu 18.04 [Khởi động nhanh]
2020-05-14
Cách thiết lập NFS Mount trên Ubuntu 20.04
2020-05-14
Cách cài đặt R trên Ubuntu 18.04
2020-05-14
Cách cài đặt R trên Ubuntu 20.04
2020-05-14
Cách cài đặt MariaDB trên Ubuntu 20.04
2020-05-12
Cách cài đặt MariaDB trên Ubuntu 18.04
2020-05-12