Cách cài đặt và cấu hình Postfix trên Ubuntu 16.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 16.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 16.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 16.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 cực kỳ đơ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-get update
- sudo DEBIAN_PRIORITY=low apt-get 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ànhexample.com
để với tên useruser1
, 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@
và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.com
và admin@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:
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ế khó chịu, 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-get 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:
. . . 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ể thực hiện việc này bằng lệnh mail
. 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 mail
. Điều chỉnh lệnh để đánh dấu user Linux của bạn là người nhận:
- echo 'init' | mail -s 'init' -Snorecord sammy
Bạn sẽ nhận được phản hồi sau:
OutputCan't canonicalize "/home/sammy/Maildir"
Điều này là bình thường và sẽ chỉ hiển thị trong 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:
- mail
Bạn sẽ thấy tin nhắn mới của bạn đang chờ:
Outputs-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 tin nhắn của bạn bằng lệnh h :
- h
Outputs-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 cho lắm, ta có thể xóa nó bằng d :
- d
Thoát để quay lại terminal bằng lệnh q :
- 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:
Hello, This is a test. Please confirm receipt!
Sử dụng lệnh cat
, ta có thể chuyển thông điệp đến quá trình mail
. Đ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 | mail -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 ứng dụng mail
của bạn. Bắt đầu lại ứng dụng client tương tác bằng lệnh :
- mail
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 16.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.
Các tin liên quan
how-to-monitor-system-metrics-with-the-tick-stack-on-ubuntu-16-042017-03-16
Cách cấu hình client FreeIPA trên Ubuntu 16.04
2017-03-08
Cách cài đặt Moodle trên Ubuntu 16.04
2017-03-02
Cách cài đặt và bảo mật MongoDB trên Ubuntu 16.04
2017-02-24
Cách cài đặt ionCube trên Ubuntu 16.04
2017-01-11
Cách thiết lập xác thực đa yếu tố cho SSH trên Ubuntu 16.04
2017-01-10
Cách chuyển cài đặt ownCloud sang Nextcloud trên Ubuntu 14.04
2017-01-06
Cách triển khai ứng dụng Node.js và MongoDB với Rancher trên Ubuntu 16.04
2017-01-05
Cách xây dựng Go từ Nguồn trên Ubuntu 16.04
2017-01-04
Cách thiết lập firewall với UFW trên Ubuntu 16.04
2016-12-22