Thiết lập Mail Server trên nền tảng Debian (Phần 2)



Thiết lập MTAs

Tại đây, chúng ta sẽ sử dụng MTA Exim4 trên hệ thống MX, server làm nhiệm vụ chuyển tiếp và lưu trữ email.

Với server chuyển tiếp:

Trước tiên, chúng ta cần gán thêm repository volatile trong file /etc/apt/source.list.d/volatile.list:

deb http://volatile.debian.org/debian-volatile lenny/volatile main

và cập nhật cơ sở dữ liệu apt:

sudo apt-get update

Sau đó là bước cài đặt exim4, nhớ chọn Yes để chia nhỏ các file cấu hình:

sudo apt-get install exim4-daemon-heavy clamav-daemon clamav-freshclam openssl

Theo thứ tự, để sử dụng TLS thông qua các session của SMTP thì hệ thống cần có chứng nhận – certificate. Đó có thể là chứng nhận do các tổ chức, doanh nghiệp cung cấp hoặc chỉ là do hệ thống tự tạo ra. Ở đây, chúng ta sẽ sử dụng trường hợp thứ 2 - certificate tự tạo, khi sử dụng các máy tính trạm sẽ hiển thị thông tin cảnh báo về những certificate này.

Tạo RSA key:

openssl genrsa 2048

chmod 640 exim.key

Yêu cầu Certificate:

openssl req -new -key exim.key -out exim.csr

Xác nhận Certificate:

openssl x509 -req -signkey exim.key -in exim.csr -days 9999 -out exim.c

Copy file:

chown Debian-exim exim.key

sudo cp exim.key exim.crt /etc/exim4

Kích hoạt TLS trong file /etc/exim4/update-exim4.conf.conf:

...

MAIN_TLS_ENABLE='true'

...

Sau đó, tạo file macro khởi tạo /etc/exim4/conf.d/main/04_mailMEOmacrodefs:

ldap_default_servers = ldap.middle.earth

.ifndef MAILMEO_DOMAINROOT

MAILMEO_DOMAINROOT = ou=domains,dc=middle,dc=earth

.endif

Trong đó MAILMEO_DOMAINROOT định nghĩa và khởi tạo giá trị LDAP root dn – nơi lưu trữ thông tin về domain và user. Với những server làm nhiệm vụ chuyển tiếp thì các tài khoản người dùng sẽ được xác nhận trước khi email được gửi đi, mô hình này là SMTP-AUTH. Và để thực hiện quá trình này, chúng ta phải tạo file cấu hình khác /etc/exim4/conf.d/auth/50_mailMEO_authsmtp:
plain_server: 

   driver = plaintext 

   public_name = PLAIN 

   server_condition = ${if ldapauth \ 

        {user="uid=${quote_ldap_dn:${extract{1}{@}{$2}{$value} fail}},\ 

        dc=${quote_ldap_dn:${extract{2}{@}{$2}{$value} fail}},\ 

        MAILMEO_DOMAINROOT" \ 

    pass=${quote:$3} \ 

    ldap:///}{yes}{no}} 

   server_set_id = $auth2 

   server_prompts = : 

  .ifndef AUTH_SERVER_ALLOW_NOTLS_PASSWORDS 

   server_advertise_condition = ${if eq{$tls_cipher}{}{}{*}} 

   .endif

login_server: 

   driver = plaintext 

   public_name = LOGIN

   server_condition = ${if ldapauth \ 

        {user="uid=${quote_ldap_dn:${extract{1}{@}{$1}{$value} fail}},\ 

        dc=${quote_ldap_dn:${extract{2}{@}{$1}{$value} fail}},\ 

        MAILMEO_DOMAINROOT" \ 

    pass=${quote:$2} \ 

    ldap:///}{yes}{no}} 

   server_set_id = $auth1

   server_prompts = "Username:: : Password::"

  .ifndef AUTH_SERVER_ALLOW_NOTLS_PASSWORDS 

   server_advertise_condition = ${if eq{$tls_cipher}{}{}{*}} 

   .endif

Vì chúng ta lưu trữ các mật khẩu dưới dạng mã hóa, do vậy bắt buộc phải sử dụng cơ chế xác thực mật khẩu một cách rõ ràng dựa vào PLAIN hoặc LOGIN (hoặc là cả 2). Mặt khác, những người quản trị chỉ nên dùng chuẩn AUTH để “giấu” các session SMTP. Và nếu muốn dùng chức năng AUTH để xóa bỏ toàn bộ các session, hãy khởi tạo thông số AUTH_SERVER_ALLOW_NOTLS_PASSWORDS (ví dụ đặt bằng giá trị true) trong file /etc/exim4/conf.d/main/04_mailMEOmacrodefs. Bên cạnh đó, chúng ta sẽ yêu cầu exim truyền toàn bộ dữ liệu qua cổng 587 – thường được dùng phổ biến hơn MUA để đăng tải email, và để báo cho chuẩn TLS. Trong file cấu hình /etc/exim4/update-exim4.conf.conf, hãy sửa lại tham số dc_local_interfaces theo giá trị sau:

dc_local_interfaces='0.0.0.0:0.0.0.0.587'

Chức năng bảo mật được các chương trình Antivirus – ở đây là clamav đảm nhận, ứng dụng này liên kết chặt chẽ với exim4. Tất cả những gì cần làm là kích hoạt lựa chọn trong file /etc/exim4/conf.d/main/02_exim4-config_options:

av_scanner = clamd:/var/run/clamav/clamd.ctl

Bỏ chú thích của 3 dòng trong file /etc/exim4/conf.d/acl/40_exim4-config_check_data:

deny

   malware = *

   message = This message was detected as possible malware ($malware_name).

Gán các tài khoản clamav tới nhóm Debian-exim:

sudo adduser clamav Debian-exim

Sau đó, khởi động lại clamav và exim4, và chúng ta cũng đã hoàn thành các công đoạn cơ bản với server chuyển tiếp:

sudo /etc/init.d/clamav-daemon restart

sudo /etc/init.d/exim4 restart

Với server lưu trữ – Mailstore

Server này có nhiệm vụ lưu trữ tất cả các dữ liệu email trên hệ thống, quá trình kiểm tra và phân loại spam cũng được thực hiện tại đây. Thực chất, quá trình này sẽ “ngốn” rất nhiều tài nguyên của hệ thống, do vậy hầu hết mọi người chỉ muốn làm bước này sau mỗi quá trình lọc (DNSBL hoặc tương tự). Để tận dụng tối đa hiệu quả của dovecot, chúng ta nên sử dụng phiên bản 1.2.x. Nhưng thật không may rằng các phiên bản 1.0 dành cho Debian thiếu khá nhiều chức năng quan trọng, điển hình là quotawarning. Để khắc phục tình trạng này, chúng ta cần ghép thêm repository backport bằng file /etc/apt/sources.list.d/backports.list:

deb http://backports.debian.org/debian-backports lenny-backports main

và chạy tiếp các lệnh sau:

sudo apt-get update

sudo apt-get install spamassassin exim4-daemon-heavy

sudo apt-get -t lenny-backports install dovecot-imapd dovecot-pop3d

Các định nghĩa về exim trong file /etc/exim4/conf.d/main/04_mailMEOmacrodefs:

ldap_default_servers = ldap.middle.earth

 # mailMEO macros definitions

.ifndef MAILMEO_DOMAINROOT

MAILMEO_DOMAINROOT = ou=domains,dc=middle,dc=earth

.endif

.ifndef MAILMEO_MAINDOMAIN

MAILMEO_MAINDOMAIN = ${lookup ldap {USER=userid=exim,dc=middle,dc=earth PASS=eximmta ldap:///MAILMEO_DOMAINROOT?dc?one?(associatedDomain=$domain)}}

.endif

domainlist mailMEO_domains = <\n ${sg{${lookup ldapm {\ 

    USER=userid=exim,dc=middle,dc=earth PASS=eximmta \ 

    ldap:///MAILMEO_DOMAINROOT?associatedDomain?one?\ 

    (&(objectClass=inetLocalMailRecipient)(objectClass=dNSDomain)(mailHost=${loo

kup dnsdb{a=$primary_hostname}{$value}fail}))}}}{,}{\\n}}

trong đó giá trị mailMEO_domains sẽ trả lại kết quả là danh sách các domain được nắm giữ trong LDAP, và để kích hoạt các tính năng quản lý với các domain trong LDAP, đơn giản chúng ta chỉ cần tạo thêm các entry entry dựa vào mẫu sau (hãy thay đổi các thông số kỹ thuật theo hệ thống của bạn):

dn: dc=%MYDOMAIN.TLD%,ou=domains,dc=middle,dc=earth
dc: middle.earth

objectClass: dNSDomain

objectClass: top

objectClass: inetLocalMailRecipient

objectClass: domainRelatedObject

mailHost: %IPADDR_OF_MAILSTORE%

associatedDomain: %MYDOMAIN%

Mặt khác, chúng ta phải chỉ định rõ ràng tới exim để chấp nhận các domain đó bằng cách thêm domainlist vào file rcpt acl: /etc/exim4/conf.d/acl/30_exim4-config_check_rcpt, hãy thay đổi các thông số sau:

require

  message = relay not permitted

  domains = +local_domains : +relay_to_domains

thành:

require

  message = relay not permitted

  domains = +local_domains : +relay_to_domains : +mailMEO_domains

Tại đây, MAILMEO_MAINDOMAIN đề cập đến 1 chức năng mà chúng ta hay gọi là domain aliasing, nó cho phép các địa chỉ email của domain này cũng có thể tồn tại trong domain khác. Trong dữ liệu mẫu lotr.middle.earth là 1 domain alias của middle.earth, do vậy mailbox của frodo có thể được truy cập từ frodo@middle.earth hoặc frodo@lotr.middle.earth. Trong đó middle.earth là domain chính, với mức phân quyền nhất định, ví dụ tính năng xác thực qua chuẩn POP/IMAP/SMTP chỉ có thể dùng được qua domain chính này.




Được tạo bởi liennp
Lần sửa cuối 08/10/10

Giới thiệu PLANETPhản hồi trực tuyến Mua hàng ở đâySơ đồ WebsiteEnglish  

Sử dụng bộ phần mềm TVIS 3.0
© Bản quyền của công ty máy tính NETCOM Co.,Ltd 2000-2016

Số lần truy cập:

Mọi kết nối tới Website này cũng như việc tái sử dụng lại nội dung phải được sự đồng ý của công ty NETCOM Co.,Ltd.
Mọi chi tiết xin liên hệ theo địa chỉ sau: Công ty máy tính NETCOM Co.,Ltd Số 46A/120 Đường Trường Chinh - Phương Mai - Đống Đa - Hà Nội.
Tel: (04)35737747 , Fax: (04)35737748 , Email: support@netcom.com.vn