Bài số 5: Thiết lập hệ thống email cho một domain

Trong bài thực hành này, ta sẽ cấu hình máy chủ email có tên miền mail.mydomain.vn chạy Postfix để cung cấp dịch vụ email cho domain “mydomain.vn”. Đây là phần mềm Email server phổ biến hiện nay và có sẵn trên CentOS. Trên các máy trạm, sử dụng các phần mềm mail hoặc mutt. Các bước thực hiện như sau:

  • Cấu hình Email server Postfix
  • Cài đặt Email client mail hoặc mutt
  • Vận hành và kiểm tra hệ thống
  • Sử dụng các bí danh (aliases)

Bước 1: Cấu hình Email server Postfix

Thiết lập tên hostname
Tên miền của máy chủ email là mail.mydomain.vn, tức là khi máy chủ liên lạc với các máy chủ khác sẽ sử dụng tên miền này để tìm kiếm. Trong khi đó, các email được giao dịch trong domain và ra ngoài domain có dạng <user name>@mydomain.vn. Postfix sử dụng tham số myhostname để đưa vào phần domain trong các địa chỉ email. Sửa lại (hoặc thêm mới) tham số myhostname trong file cấu hình /etc/postfix/main.cf:

myhostname = mydomain.vn

Thiết lập domain được Postfix cung cấp dịch vụ
Postfix dựa vào tên domain trong địa chỉ email để xác định email đó có thuộc phạm vi cung cấp dịch vụ của mình không (máy chủ email có thể đồng thời cung cấp dịch vụ email cho nhiều domain – xem bài thực hành sau). Tham số mydestination trong file config liệt kê các domain này:

mydestination = $myhostname

Thiết lập tên miền tự động gắn vào địa chỉ email
Khi các user gửi mail trong nội bộ domain, có thể dùng tên login thay cho địa chỉ email. Khi gửi email ra ngoài domain, Postfix sẽ kiểm tra và tự động gắn thêm tên miền vào email. Tham số myorigin trong file config thiết lập phần tên domain này:

myorigin = $myhostname

Bước 2: Cài đặt Email client mail hoặc mutt

Có nhiều lựa chọn cho user để làm việc với mail trên Linux. Mailmutt là 2 phần mềm phổ dụng. Mail nhỏ gọn nhưng sử dụng khá bất tiện. Mutt cung cấp giao diện khá tiện dụng. Sử dụng yum để cài đặt các ứng dụng này trên các máy client:

[root@Client ~]# yum install mail mutt
. . .
Resolving Dependencies
--> Running transaction check
---> Package mailx.x86_64 0:12.4-8.el6_6 will be installed
---> Package mutt.x86_64 5:1.5.20-7.20091214hg736b6a.el6 will be installed
--> Processing Dependency: urlview for package: 5:mutt-1.5.20-7.20091214hg736b6a.el6.x86_64
--> Processing Dependency: libtokyocabinet.so.8()(64bit) for package: 5:mutt-1.5.20-7.20091214hg736b6a.el6.x86_64
--> Running transaction check
---> Package tokyocabinet.x86_64 0:1.4.33-6.el6 will be installed
---> Package urlview.x86_64 0:0.9-7.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved
. . .

Installed:
mailx.x86_64 0:12.4-8.el6_6                              mutt.x86_64 5:1.5.20-7.20091214hg736b6a.el6                            

Dependency Installed:
tokyocabinet.x86_64 0:1.4.33-6.el6                                   urlview.x86_64 0:0.9-7.el6                                 

Complete!

Giao diện tương tác người dùng của các phần mềm mail và mutt như sau:

> mail
Heirloom Mail version 12.4 7/29/08.  Type ? for help.
"/var/spool/mail/root": 3 messages 2 unread
>U  1 Mail Delivery System  Thu Nov 12 10:25  78/2403  "Undelivered Mail Retu"
A  2 root                  Thu Nov 12 10:42  22/582   "123"
U  3 root                  Thu Nov 12 10:43  27/736   "Re: 123"
&___

Bước 3: Vận hành và kiểm tra hệ thống

Khởi động lại dịch vụ mail để cập nhật các thay đổi cấu hình vừa tiến hành:

> service postfix restart

Tạo một số user trong hệ thống bằng lệnh adduserpasswd để vận hành dịch vụ Email:

> adduser hp01
> passwd hp01
Changing password for user hp01.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
> adduser hp02
> passwd hp03
Changing password for user hp02.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

 

Sử dụng mutt hoặc mail để gửi nhận mail giữa root, hp01hp02. Có thể kiểm tra hệ thống bằng cách sử dụng telnet để nói chuyện với Postfix theo giao thức SMTP:

> telnet 127.0.0.1 25
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
220 mydomain.vn ESMTP Postfix
HELO client.mydomain.vn
250 mydomain.vn
MAIL FROM: <hp02@mydomain.vn>
250 2.1.0 Ok
RCPT TO: <hp01@mydomain.vn>
250 2.1.5 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
test abbbbb
.
250 2.0.0 Ok: queued as 137DF401A4
QUIT
221 2.0.0 Bye
Connection closed by foreign host.

Bước 4: Sử dụng các bí danh (aliases)

Đa phần các trường hợp tên hiển thị trong email khác với tên login vào hệ thống. Ngoài ra, với trường hợp các user đặc biệt như root, việc gửi/nhận mail trực tiếp đến user này có thể gây nhiều bài toán an ninh. Để xử lý vấn đề này, mỗi tài khoản user trong hệ thống nên được gắn với một hoặc nhiều bí danh. Các bí danh này sẽ được sử dụng trong địa chỉ email khi gửi/nhận mail thay vì tên login.
File /etc/aliases cho phép liệt kê các bí danh của user trong hệ thống. Một số bí danh mặc định đã có như postmaster (cho root), fptadmin (cho fpt), v.v.. Ta có thể tạo thêm các bí danh cho từng người sử dụng hoặc nhóm:

> cat /etc/aliases
#users
hoang.pham:     hp01
phamhuyhoang:   hp02

#groups
prof:           hp01, hp02

Chú ý: sau khi cập nhật file aliases phải chạy index lại bằng lệnh newaliases và khởi động lại Postfix:

> newaliases
> service postfix restart
Shutting down postfix:                                     [  OK  ]
Starting postfix:                                          [  OK  ]

Hệ thống khởi động thành công sẽ cho phép gửi nhận mail với các bí danh thay vì tên login. Sử dụng mail hoặc mutt để kiểm tra chức năng này.