Hướng dẫn cách cài đặt và cấu hình Postfix trên Ubuntu 20.04

Lượt xem
Home

Postfix là một Mail Transfer Agent (MTA) mã nguồn mở phổ biến được dùng để định tuyến và gửi email trên hệ điều hành Linux. Có đến 25% các mail server công khai trên internet chạy Postfix. Trong bài viết dưới đây, Vietnix sẽ hướng dẫn bạn cách cài đặt và cấu hình Postfix trên Ubuntu 20.04 nhanh chóng.

Yêu cầu để cài đặt và cấu hình Postfix trên Ubuntu 20.04

Việc thiết lập và duy trì một mail server dùng riêng khá phức tạp và tốn thời gian. Ngoài ra, yêu cầu phải có kiến thức chuyên môn để có thể cấu hình và bảo trì mail server đó. Tuy nhiên, nếu không muốn dành quá nhiều thời gian và công sức cho quá trình này thì bạn có thể tận dụng một mail server trả phí như Email Doanh Nghiệp của Vietnix.

Khi sử dụng Email Doanh Nghiệp của Vietnix, bạn sẽ được hưởng nhiều lợi ích như không cần phải lo lắng về công việc bảo trì, cập nhật và nâng cấp mail server. Ngoài ra, các dịch vụ Email Doanh Nghiệp của Vietnix còn được thiết kế để đảm bảo tỷ lệ gửi thư vào inbox tới 99%, antispam, antivirus, backup mỗi ngày,… giúp bạn yên tâm hơn khi sử dụng email. Với Email Doanh Nghiệp của Vietnix, bạn có thể tập trung vào công việc kinh doanh chính của mình mà không cần phải lo lắng quá nhiều về vấn đề liên quan đến mail server.

Nếu như đã cân nhắc kỹ và thực sự muốn chạy một máy chủ email cho riêng mình, bạn cần chuẩn bị trước những điều sau:

  • Một máy chủ chạy Ubuntu 20.04 để hoạt động như mail server Postfix của bạn. Máy chủ này nên có một non-root user với đặc quyền sudo và một tường lửa đã được cấu hình với UFW.
  • Một Fully Qualified Domain Name trỏ đến máy chủ Ubuntu 20.04 của bạn. Nếu có ý định truy cập mail từ external location, bạn cần đảm bảo có một bản ghi MX trỏ đến mail server của mình.

Hướng dẫn này giả định rằng bạn đang cấu hình một máy chủ có FQDN là mail.example.com. Bất cứ khi nào cần, bạn cần bảo đảm thay đổi example.com hoặc mail.example.com để phản ánh FQDN của riêng mình.

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

Dưới đây là hướng dẫn cách cài đặt và cấu hình Postfix trên Ubuntu 20.04. Với các bước tiến hành này sẽ không giúp bạn có được một mail server với đầy đủ tính năng. Nó sẽ giúp bạn nhanh chóng cài đặt và chạy Postfix với một số chức năng email cơ bản để bắt đầu sử dụng.

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

Postfix đã được có sẵn trong kho lưu trữ mặc định của Ubuntu, do đó bạn có thể sử dụng APT để cài đặt.

Đầu tiên, bạn cần cập nhật bộ nhớ đệm gói apt cục bộ của mình:

$ sudo apt update

Sau đó, bạn sử dụng câu lệnh dưới đây để cài postfix. Lưu ý rằng ở đây bạn cần truyền biến môi trường DEBIAN_PRIORITY=low vào lệnh cài đặt này. Việc này sẽ giúp quá trình cài đặt hiển thị các yêu cầu 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 sẽ xuất hiện một loại các lời nhắc tương tác. Bạn hãy điền vào lời nhắc được hiển thị dựa trên các thông tin hướng dẫn sau:

  • General type of mail configuration: Lựa chọn Internet Site vì nó phù hợp với nhu cầu hạ tầng của bạn.
  • System mail name: Đây là tên miền cơ sở được dùng để tạo ra một địa chỉ email hợp lệ chỉ với phần tài khoản của địa chỉ được cung cấp. Ví dụ tên máy chủ của bạn là mail.example.com. Bạn muốn đặt tên mail hệ thống là example.com, khi đó với tên người dùng user1, Postfix sẽ sử dụng địa chỉ là user1@example.com.
  • Root and postmaster mail recipient: Đây là tài khoản Linux dùng để chuyển tiếp mail đến root@ postmaster@. Bạn hãy sử dụng tài khoản chính của mình. Trong ví dụ này điền sammy.
  • Other destinations to accept mail for: Lựa chọn này giúp xác định các điểm đến của mail được phiên bản Postfix chấp nhận. Nếu bạn muốn thêm bất kỳ tên miền nào khác thì hãy thêm ở đây.
  • Force synchronous updates on mail queue: Bạn có thể là đang sử dụng một hệ thống tập tin ghi nhật ký, hãy nhấn No.
  • Local networks: Đây là danh sách các mạng mà mail server của bạn được cấu hình để chuyển tiếp các tin nhắn. Hầu hết các trường hợp sẽ được cài đặt giá trị mặc định. Nếu bạn muốn lựa chọn sửa đổi nó, cần đảm bảo rất hạn chế đối với phạm vi mạng.
  • Mailbox size limit: Lựa chọn này được sử dụng để giới hạn kích thước các tin nhắn. Bạn đặt nó thành 0 để vô hiệu hóa bất kì hạn chế kích thước nào.
  • Local address extension character: Đây là ký tự được dùng để phân tách phần thông thường của địa chỉ với phần mở rộng. Ký tự mặc định là +, nó cũng được sử dụng trong các bước hướng dẫn dưới đây.
  • Internet protocols to use: Lựa chọn xem bạn có hạn chế các phiên bản IP mà Postfix hỗ trợ hay không. Với mục đích của hướng dẫn này, bạn lựa chọn all. 

Để hình dung rõ ràng hơn về các lựa chọn cài đặt, hãy thực hiện theo các thiết lập cụ thể dưới đây:

  • General type of mail configuration?: Internet Site.
  • System mail name: example.com (không phải là mail.example.com).
  • Root and postmaster mail recipient: Tên người dùng tài khoản Linux chính của bạn. Ở ví dụ này thiếp lập là sammy. 
  • Other destinations to accept mail for: $myhostname, example.com, mail.example.com, localhost.example.com, localhost.
  • Force synchronous updates on mail queue?: No.
  • Local networks: 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128.
  • Mailbox size limit: 0.
  • Local address extension character: +.
  • Internet protocols to use: All.

Lưu ý, nếu muốn quay lại để thay đổi các cài đặt này, bạn sử dụng câu lệnh sau đây:

$ sudo dpkg-reconfigure postfix

Các thông báo sẽ được điền sẵn những câu trả lời trước đó của bạn.

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

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

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

Đặt biến home_mailbox thành Maildir/, sau đó bạn tạo cấu trúc thư mục với tên đó trong thư mục gốc của người dùng. Cấu hình home_mailbox bằng câu lệnh:

$ sudo postconf -e 'home_mailbox= Maildir/'

Tiếp theo, bạn đặt vị trí của bảng virtual_alias_maps ánh xạ các tài khoản email tùy ý đến các tài khoản hệ thống Linux. Bạn sử dụng câu lệnh sau đây, ánh xạ vị trí của bảng đến một tệp cơ sở dữ liệu hash có tên /etc/postfix/virtual:

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

Lúc này, bạn đã xác định được vị trí của virtual maps trong tệp main.cf. Bạn có thể tự tạo tệp đó và bắt đầu mapping các tài khoản email đến tài khoản user trên hệ thống Linux của mình. Tạo file bằng trình chỉnh sửa văn bản thường dùng, ví dụ dưới đây sử dụng nano:

$ sudo nano /etc/postfix/virtual

Liệt kê các địa chỉ bạn cho phép nhận email, tiếp theo là một dấu cách và tên user Linux bạn muốn nhận email.

Ví dụ, bạn muốn nhận email tại địa chỉ contact@example.com admin@example.com, và email được gửi đến cho user sammy, khi đó thiết lập như sau:

contact@example.com sammy
admin@example.com sammy

Sau khi bạn đã mapping các địa chỉ đến các tài khoản máy chủ phù hợp, nhấn lưu và đóng tệp. Nếu sử dụng nano, bạn có thể thực hiện bằng cách nhấn CTRL+X, Y, sau đó nhấn ENTER.

Áp dụng mapping đã thực hiện xong bằng câu lệnh:

$ sudo postmap /etc/postfix/virtual

Khởi động lại tiến trình Postfix để đảm bảo rằng tất cả các thay đổi trên đều đã được áp dụng:

$ sudo systemctl restart postfix

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

Cho phép kết nối đến dịch vụ server bằng câu lệnh:

$ sudo ufw allow Postfix

Khi đó, Postfix sẽ được cấu hình và cho phép nhận các kết nối từ bên ngoài. Tuy nhiên, lúc này máy chủ của bạn vẫn chưa sẵn sàng để thử nghiệm với một mail client. Vì vậy trước khi cài đặt một client và sử dụng nó để tương tác với mail được gửi đến máy chủ thì bạn cần thực hiện một số thay đổi cài đặt.

Bước 3: Cài đặt Client và khởi tạo cấu trúc Maildir

Ở bước này, Vietnix sẽ hướng dẫn bạn quá trình cài đặt gói phần mềm s-nail để tương tác với email nhận được. Đây là một phiên bản đa tính năng của client BSD xmail giúp xử lý định dạng Maildir chính xác.

Trước khi cài đặt client, bạn cần bảo đảm biến môi trường MAIL được thiết lập chính xác. s-nail sẽ tìm đến biến này để xác định nơi tìm email cho user của bạn.

Để chắc chắn rằng biến MAIL được thiết lập bất kể bạn truy cập tài khoản của mình thông qua ssh, su, su - hay sudo, hãy đặt nó trong tệp /etc/bash.bashrc và thêm biến đó vào một tệp trong /etc/profile.d để bảo đảm biến này được thiết lập mặc định cho tất cả user.

Để thêm biến vào các file này, sử dụng lệnh:

$ 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 khởi tạo file /etc/profile.d/mail.sh:

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

Sau khi hoàn tất, bạn cài đặt trình email client s-nail với APT: 

$ sudo apt install s-nail

Trước khi chạy client, bạn cần thay đổi một số thiết lập. Mở tệp /etc/s-nail.rc trong trình soạn thảo văn bản:

$ sudo nano /etc/s-nail.rc

Ở cuối tệp, bạn thêm dòng sau:

. . .
set emptystart
set folder=Maildir
set record=+sent

Đây là những nội dung tương ứng của các dòng sẽ thực hiện:

  • set emptystart: Cho phép client mở ngay cả khi hộp thư đến trống.
  • set folder=Maildir: Đặt thư mục Maildir vào biến nội bộ folder.
  • set record=+sent: Tạo một tệp sent mbox để lưu trữ email đã gửi trong bất kỳ thư mục nào được đặt làm biến folder, ở trường hợp này là Maildir

Sau khi hoàn tất, bạn nhấn lưu và đóng file. Bây giờ bạn đã có thể khởi tạo cấu trúc Maildir cho hệ thống của mình.

Một cách nhanh chóng để tạo cấu trúc Maildir trong thư mục chính đó là gửi cho chính bạn một email bằng lệnh s-nail. Bởi vì file sent sẽ chỉ khả dụng khi Maildir được tạo do đó bạn nên tắt chế độ ghi lại cho email ban đầu này bằng cách truyền tùy chọn -Snorecord.

Bạn gửi email bằng cách nối một chuỗi vào lệnh s-nail. Điều chỉnh lại câu 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 cảnh báo như sau:

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

Đây là một hiển thị thông thường và có thể xuất hiện khi gửi tin nhắn đầu tiên.

Kiểm tra để đảm bảo rằng thư mục đã được tạo thành công bằng cách tìm kiếm ~/Maildir:

$ ls -R ~/Maildir

Bạn sẽ thấy cấu trúc thư mục đã tạo và một tệp tin nhắn mới trong thư mục ~/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:

Tiếp theo. bạn đã có thể thử nghiệm s-nail client bằng cách xem tin nhắn init đã gửi đi và một tin nhắn đến địa chỉ email bên ngoài.

Bước 4: Kiểm tra Client

Để kiểm tra client, bạn chạy câu lệnh sau:

$ s-nail

Trong cửa sổ console, bạn sẽ thấy một hộp thư đến với tin nhắn 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ị tin nhắn:

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 tin nhắn bằng cách nhập h sau đó nhấn ENTER:

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

Lưu ý rằng tin nhắn hiển thị trạng thái R có nghĩa là tin nhắn đó đã được đọc.

Vì tin nhắn này không có ý nghĩa nên bạn có thể xóa nó bằng cách nhấn d rồi nhấn ENTER:

? d

Để quay lại màn hình terminal, bạn gõ  q rồi nhấn ENTER:

? q

Cuối cùng hãy kiểm tra xem s-nail có thể gửi email đúng cách hay không. Để kiểm tra, hãy thêm nội dung của một file text vào tiến trình s-nail tương tự như bạn đã thực hiện với tin nhắn init ở bước làm trên.

Trước tiên, viết một đoạn tin nhắn kiểm tra trong trình soạn thảo bất kỳ:

$ nano ~/test_message

Ở trong đó, bạn nhập nội dung muốn gửi đi, ví dụ:

Hello,
This is a test. Please confirm receipt!

Sau khi viết xong đoạn tin nhắn, bạn lưu và đóng tệp. Tiếp theo, sử dụng lệnh cat để đưa tin nhắn trên vào tiến trình s-nail. Bạn có thể sử dụng các tùy chọn sau:

  • -s: Dùng để xác định chủ đề của email.
  • -r: Đây là một tùy chọn thay đổi trường “From” của email. Thông thường mặc định user đang đăng nhập sẽ được sử dụng để điền vào đây. Tùy chọn -r cho phép bạn ghi đè lên đó bằng một địa chỉ hợp lệ, chẳng hạn như các địa chỉ bạn đã định nghĩa trong tệp /etc/postfix/virtual. Ví dụ sau đây sử dụng địa chỉ contact@example.com

Cần điều chỉnh 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 đó, hãy truy cập vào hộp thư đến của địa chỉ email mà bạn đã gửi tin nhắn. Nếu tin nhắn không nằm trong đó thì hãy kiểm tra thư mục Spam.

Bạn có thể xem các tin nhắn với s-nail client. Bắt đầu lại các tương tác với client:

$ s-nail

Từ email client, bạn có thể xem lại các tin nhắn đã gửi bằng cách gõ lệnh:

? file +sent

Output như sau:

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ý email đã gửi bằng cách dùng các câu lệnh tương tự như đã dùng cho thư đến.

Lời kết

Như vậy, Vietnix đã hướng dẫn bạn xong các bước cấu hình PostFix trên máy chủ Ubuntu 20.04. Quản lý mail server là một công việc không dễ dàng đối với một người mới tiếp cận. Với các bước thiết lập như trên, bạn đã có thể bắt đầu định tuyến và gửi email trên Linux với các tính năng cơ bản ban đầu. Nếu có bất cứ ý kiến đóng góp nào, hãy để lại bình luận phía dưới cho Vietnix nhé.

Chia sẻ lên

Theo dõi trên

Logo Google new

Đánh giá

5/5 - (182 bình chọn)

Hưng Nguyễn

Kết nối với mình qua

Icon Quote
Icon Quote
Đăng ký nhận tin
Để không bỏ sót bất kỳ tin tức hoặc chương trình khuyến mãi từ Vietnix

Bình luận

Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận