Thứ sáu, 06/07/2018 | 00:00 GMT+7

Cách cài đặt và cấu hình Postfix trên Ubuntu 18.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, ta sẽ dạy bạn cách cài đặt và chạy nhanh chóng với Postfix trên server Ubuntu 18.04.

Yêu cầu

Để làm theo hướng dẫn này, bạn phải có quyền truy cập vào user không phải root với các quyền sudo . Bạn có thể làm theo hướng dẫn cài đặt server ban đầu Ubuntu 18.04 của ta để tạo user cần thiết.

Để cấu hình Postfix đúng cách, bạn cần một Tên domain Đủ điều kiện được trỏ đến server Ubuntu 18.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 hướng dẫn này . Nếu bạn định chấp nhận thư, bạn cần đảm bảo bạn cũng có bản ghi MX trỏ đến server thư của bạn .

Với mục đích của hướng dẫn này, ta sẽ giả định bạn đang cấu hình server lưu trữ có FQDN của mail.example.com .

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

Postfix có trong repository lưu trữ mặc định của Ubuntu, vì vậy việc cài đặt rất đơn giản.

Để bắt đầu, hãy cập nhật cache ẩn gói apt local của bạn và sau đó cài đặt phần mềm. Ta sẽ chuyển biến môi trường DEBIAN_PRIORITY=low vào lệnh cài đặt của ta để trả lời một số dấu nhắc bổ sung:

  • sudo apt update
  • sudo DEBIAN_PRIORITY=low apt install postfix

Sử dụng thông tin sau để điền vào dấu nhắc của bạn một cách chính xác cho môi trường của bạn:

  • Loại cấu hình thư chung? : Đối với điều này, ta sẽ 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ụ: tên server của server của ta là mail.example.com , nhưng ta có thể cầ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 của ta , 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 đó vào đây, nếu không, mặc định sẽ hoạt động tốt.
  • 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. 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” sẽ 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).
  • Các giao thức Internet để sử dụng : Chọn có hạn chế version IP mà Postfix hỗ trợ hay không. Ta sẽ chọn "tất cả" cho mục đích của ta .

Nói một cách rõ ràng, đây là những cài đặt ta sẽ sử dụng cho 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 : sammy
  • 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ự phần mở rộng về địa chỉ local : +
  • Các giao thức Internet để sử dụng : tất cả

Nếu bạn cần quay lại để điều chỉnh lạ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 bạn hoàn tất, bây giờ ta có thể thực hiện thêm một chút cấu hình để cài đặt hệ thống của ta theo cách ta muốn.

Bước 2 - Tinh chỉnh cấu hình Postfix

Tiếp theo, ta có thể điều chỉnh một số cài đặt mà gói không nhắc ta .

Để bắt đầu, ta có thể đặt hộp thư. Ta sẽ sử dụng định dạng Maildir , định dạng này phân 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 khác là định dạng mbox (mà ta sẽ không đề cập ở đây) lưu trữ tất cả thư trong một file duy nhất.

Ta sẽ đặt biến home_mailbox thành Maildir/ sẽ tạo cấu trúc folder dưới tên đó trong folder chính của user . Lệnh postconf được dùng để truy vấn hoặc cài đặt cài đặt cấu hình. Cấu hình home_mailbox bằng lệnh :

  • sudo postconf -e 'home_mailbox= Maildir/'

Tiếp theo, ta có thể đặ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. Ta sẽ tạo bảng này tại /etc/postfix/virtual . , ta có thể sử dụng lệnh postconf :

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

Bước 3 - Ánh xạ địa chỉ thư với account Linux

Tiếp theo, ta có thể cài đặt file bản đồ ảo. Mở file trong editor của bạn:

  • sudo nano /etc/postfix/virtual

Bảng bản đồ alias ảo sử dụng một định dạng rất đơn giản. Ở bên trái, bạn có thể liệt kê bất kỳ địa chỉ nào mà bạn muốn chấp nhận email. Sau đó, được phân tách bằng khoảng trắng, hãy nhập 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 .

Ta có thể á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ủa ta đã được áp dụng:

  • sudo systemctl restart postfix

Bước 4 - Điều chỉnh firewall

Nếu bạn đang chạy firewall UFW, như được cấu hình trong hướng dẫn cài đặt server ban đầu, ta sẽ phải 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

Thành phần server Postfix đã được cài đặt và sẵn sàng. Tiếp theo, ta sẽ cài đặt một ứng dụng client có thể xử lý thư mà Postfix sẽ xử lý.

Bước 5 - Cài đặt Môi trường để Trùng với Vị trí Thư

Trước khi cài đặt ứng dụng client , ta nên đảm bảo biến môi trường MAIL của ta được đặt chính xác. Máy khách sẽ kiểm tra biến này để tìm ra nơi cần tìm thư của user .

Để biến được đặt dù bạn truy cập account của bạn bằng cách nào (thông qua ssh , su , su - , sudo , v.v.), ta cần đặt biến ở một vài vị trí khác nhau. Ta sẽ thêm nó vào /etc/bash.bashrc và một file bên trong /etc/profile.d đảm bảo rằng mỗi user đều có cấu hình này.

Để 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, bạn có thể nguồn file /etc/profile.d/mail.sh :

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

Bước 6 - Cài đặt và cấu hình ứng dụng thư

Để tương tác với thư được chuyển, ta sẽ cài đặt gói s-nail . Đây là một biến thể của ứng dụng client xmail BSD, có nhiều tính năng, có thể xử lý chính xác định dạng Maildir và hầu hết là tương thích ngược. Phiên bản GNU của mail có một số hạn chế, chẳng hạn như luôn lưu thư đã đọc vào định dạng mbox dù định dạng nguồn là gì.

Để cài đặt gói s-nail , hãy nhập:

  • sudo apt install s-nail

Ta nên điều chỉnh một vài 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 

Điều này sẽ cho phép khách hàng mở ngay cả với một hộp thư đến trống. Nó cũng sẽ đặt folder Maildir thành biến folder bên trong và sau đó sử dụng nó để tạo một file mbox sent trong đó, để lưu trữ thư đã gửi.

Lưu file khi bạn hoàn tất.

Bước 7 - Khởi tạo Maildir và Kiểm tra Máy khách

Bây giờ, ta có thể kiểm tra khách hàng.

Khởi tạo cấu trúc folder

Cách dễ nhất để tạo cấu trúc Maildir trong folder chính của ta là gửi email cho chính ta . Ta có thể làm điều này bằng lệnh s-nail . Bởi vì file sent sẽ chỉ có sẵn sau khi Maildir được tạo, ta nên tắt tính năng ghi vào đó cho email ban đầu của ta . Ta có thể làm điều 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

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. Ta có thể kiểm tra đảm bảo rằng folder đã được tạo bằng cách tìm folder ~/Maildir của ta :

  • 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:

Có vẻ như thư của ta đã được gửi.

Quản lý Thư với Khách hàng

Sử dụng ứng dụng client để kiểm tra thư của bạn:

  • s-nail

Bạn sẽ thấy tin nhắn mới của bạn đang chờ:

Output
s-nail version v14.8.6. Type ? for help. "/home/sammy/Maildir": 1 message 1 new >N 1 sammy@example.com Wed Dec 31 19:00 14/369 init

Chỉ cần nhấn ENTER sẽ hiển thị thông báo của bạn:

Output
[-- Message 1 -- 14 lines, 369 bytes --]: From sammy@example.com Wed Dec 31 19:00:00 1969 Date: Fri, 13 May 2016 18:07:49 -0400 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ư của bạn bằng lệnh h , sau đó ENTER :

  • h
Output
s-nail version v14.8.6. Type ? for help. "/home/sammy/Maildir": 1 message 1 new >R 1 sammy@example.com Wed Dec 31 19:00 14/369 init

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

  • d

Thoát để quay lại terminal bằng lệnh q và sau đó ENTER :

  • q

Gửi thư với khách hàng

Bạn có thể kiểm tra việc gửi thư bằng lệnh tin nhắn vào editor :

  • nano ~/test_message

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

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

Sử dụng lệnh cat , ta có thể chuyển thông điệp tới quy trình s-nail . Điều này sẽ gửi thông báo với quyền là user Linux của bạn theo mặc định. Bạn có thể điều chỉnh trường “Từ” bằng cờ -r nếu bạn muốn sửa đổi giá trị đó thành giá trị khác:

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

Các tùy chọn trên là:

  • -s : 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 điều này.
  • user@email.com : Tài khoản để gửi email đến. Thay đổi account này thành account hợp lệ mà bạn có quyền truy cập.

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 bằng lệnh :

  • s-nail

Sau đó, xem tin nhắn đã gửi của bạn bằng lệnh :

  • file +sent

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 18.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 mới bắt đầu, nhưng với cấu hình này, bạn nên có chức năng email MTA cơ bản để bắt đầu.


Tags:

Các tin liên quan

Cách cài đặt Git trên Ubuntu 18.04
2018-07-06
Cách thiết lập vsftpd cho Thư mục người dùng trên Ubuntu 18.04
2018-07-06
Cách cài đặt WordPress với LAMP trên Ubuntu 18.04
2018-07-06
Cách thiết lập ứng dụng Node.js để sản xuất trên Ubuntu 18.04
2018-07-05
Cách thêm không gian swap trên Ubuntu 18.04
2018-07-05
Cách thiết lập NFS Mount trên Ubuntu 18.04
2018-07-05
Cách cài đặt và cấu hình Nextcloud trên Ubuntu 18.04
2018-07-05
Cách cài đặt và cấu hình ownCloud trên Ubuntu 18.04
2018-07-05
Cách thiết lập firewall với UFW trên Ubuntu 18.04
2018-07-05
Triển khai các ứng dụng React với Webhooks và Slack trên Ubuntu 16.04
2018-06-20