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-rcho 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
 

