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



Aliases

Đây là địa chỉ thứ 2 dành cho mailbox, chúng phải thuộc về cùng 1 domain cũng như địa chỉ đến. 1 Alias có thể được gán đến nhiều mailbox, nếu trong trường hợp tất cả các mailbox nhận email để gửi tới các địa chỉ có sẵn. Trong mục dữ liệu mẫu, baggins@middle.earth là 1 alias của frodo@middle.earthshire@middle.earth là alias của cả 2, frodo@middle.earthsam@middle.earth.

Để gán các alias vào mailbox có sẵn, các bạn chỉ cần thêm thuộc tính mailLocalAddress với địa chỉ mail của alias đó. File /etc/exim4/conf.d/router/070_mailMEO_alias đảm nhận nhiệm vụ định tuyến cho những địa chỉ như mailMEO_alias:

mailMEO_alias:

 driver = redirect 

  debug_print = "R: locally aliased from $local_part@$domain

  domains = +mailMEO_domains 

  qualify_domain = MAILMEO_MAINDOMAIN 

  check_ancestor = true 

  local_parts = <\n ${sg{\ 

        ${sg{\ 

            ${lookup ldapm \ 

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

                ldap:///dc=MAILMEO_MAINDOMAIN,MAILMEO_DOMAINROOT?mailLocalAddress?one?\ 

                (&(objectClass=inetLocalMailRecipient)(objectClass=inetOrgPerson)(mailLocalAddress=$local_part@$domain))}\ 

            }}{([\\w\\-\\.]+)@([\\w\\-]+\\.)([\\w\\-]+)}{\$1}}\ 

        }{,}{\\n}} 

  data = ${sg{\ 

        ${lookup ldapm \ 

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

            ldap:///dc=MAILMEO_MAINDOMAIN,MAILMEO_DOMAINROOT?uid?one?\ 

            (&(objectClass=inetLocalMailRecipient)(objectClass=inetOrgPerson)(mailLocalAddress=$local_part@$domain))}}\ 

        }{([\\w\-\.]+)}{\$1@$domain}\ 

    }

Chuyển tiếp – Forwarder

Quá trình chuyển tiếp này khá giống với alias ngoại trừ việc chúng có thể luân chuyển email đến các địa chỉ không thuộc trên domain hoặc thậm chí là những địa chỉ remote. Để tạo mail forward, hãy tạo LDAP entry bên dưới domain entry theo mẫu sau:

dn: uid=gmail,dc=middle.earth,ou=domains,dc=middle,dc=earth

cn: %FWD_LOCALPART%

mail: %DEST_MAILADDR%

mailHost: %IPADDR_OF_MAILSTORE%

mailRoutingAddress: %DEST_MAILADDR%

objectClass: inetMailForwarder

objectClass: inetOrgPerson

objectClass: top

sn: Alias address

uid: %FWD_LOCALPART%

File /etc/exim4/conf.d/router/071_mailMEO_fwd cũng thuộc dạng địa chỉ này:

mailMEO_fwd_routes:

driver = redirect 

  debug_print = "R: Forwarded from $local_part@$domain

  domains = +mailMEO_domains 

  qualify_domain = MAILMEO_MAINDOMAIN 

  check_ancestor = true 

  forbid_pipe = true 

  forbid_file = true 

  forbid_exim_filter = true 

  local_parts = ${lookup ldap \ 

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

            ldap:///dc=MAILMEO_MAINDOMAIN,MAILMEO_DOMAINROOT?uid?one?\ 

            (&(uid=$local_part)(objectClass=inetOrgPerson)(objectClass=inetMailForwarder))}\ 

        } 

  data = ${lookup ldap \ 

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

            ldap:///dc=MAILMEO_MAINDOMAIN,MAILMEO_DOMAINROOT?mailRoutingAddress?one?\ 

            (&(uid=$local_part)(objectClass=inetOrgPerson)(objectClass=inetMailForwarder))}\ 

        }

Catchall

Có thể hiểu nôm na đây là 1 hòm thư rác phân loại, có thể nhận tất cả các email được gửi tới các domain khác nhau bất kể đường dẫn local là gì. Người sử dụng có thể hòa nhập mailbox bình thường hoặc mailbox catchall này với nhau (dĩ nhiên là chỉ được sử dụng 1 catchall trên 1 domain mà thôi). Và để gán các địa chỉ catchall tới domain, hãy ghép posixAccount tới domain entry (và tất cả các thuộc tính cần thiết) như mailLocalAddress và mailQuota:

objectClass: posixAccount

mailLocalAddress: %CATCHALL_ADDR%

gidNumber: %gID%

homeDirectory: %MAILDIR_PATH%

uid: %CATCHALL_LOCALPART%

uidNumber: %UID%

userPassword:: %HASH_PASS_STR%

mailQuota: %KB%

File /etc/exim4/conf.d/router/079_mailMEO_catchall sẽ khởi tạo giá trị định tuyến cho catchall:

mailMEO_catchall: 

  driver = redirect 

  debug_print = "R: domain catchall for $domain <- $local_part" 

  domains = <\n ${sg{${lookup ldapm {\ 

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

    ldap:///ou=domains,dc=middle,dc=earth?associatedDomain?one?\ 

    (&(objectClass=inetLocalMailRecipient)(objectClass=posixAccount)(objectClass=dNSDomain)(mailHost=$primary_hostname))}}}{,}{\\n}} 

  qualify_domain = MAILMEO_MAINDOMAIN 

  data = ${lookup ldap \ 

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

        ldap:///dc=MAILMEO_MAINDOMAIN,MAILMEO_DOMAINROOT?uid?base?}\ 

    }

Các tài khoản người sử dụng ảo

Để tạo được tài khoản này, các bạn hãy ghép LDAP entry bên dưới domain theo mẫu sau:

dn: uid=%LOCALPART%,dc=%DOMAIN%,ou=domains,dc=middle,dc=earth

cn: %SOMETHING_DESCRIPTIVE%

displayName: %SOMETHING_DESCRIPTIVE%

gidNumber: %GID%

givenName: %SOMETHING_DESCRIPTIVE%

homeDirectory: %MAILDIR_PATH%

mail: %EMAIL_ADDR%

mailHost: %IPADDR_OF_MAILSTORE%

mailQuota: %KB%

objectClass: inetLocalMailRecipient

objectClass: inetOrgPerson

objectClass: posixAccount

objectClass: top

sn: %SOMETHING_DESCRIPTIVE%

uidNumber: %UID

uid: %LOCALPART%

userPassword:: %HASH_PASS_STR%

mailLocalAddress: %EMAIL_ADDR%

Nhưng hãy lưu ý rằng các địa chỉ email chính phải được thiết lập theo tính năng mailLocalAddress giống như của alias. Quá trình định tuyến được thực hiện dựa vào file /etc/exim4/conf.d/router/077_mailMEO_users:

mailMEO_virtual: 

  driver = accept 

  debug_print = "R: mailMEO virtual for $local_part@$domain

  domains = +mailMEO_domains 

  local_parts = ${lookup ldap\ 

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

            ldap:///dc=MAILMEO_MAINDOMAIN,MAILMEO_DOMAINROOT?uid?sub?\ 

            (&(objectClass=inetLocalMailRecipient)(uid=$local_part))}\ 

        } 

  transport = mailMEO_virtual_delivery

Spamassassin

Chức năng này được sử dụng để kiểm tra email, ngăn chặn spam bằng spamassassin daemon:

spamcheck_router:

no_verify

condition = ${if and { {<{$message_size}{90K}} {!def:header_X-Spam-Flag:} {!eq {$received_protocol}{spam-scanned}}} {1}{0}}

driver = accept

transport = spamcheck

Quá trình kiểm tra này được áp dụng với tất cả các email nhận diện trong spamassassin daemon. Và SA transport được thiết lập trong file /etc/exim4/conf.d/transport/50_mailMEO_spamcheck:
spamcheck: 

    driver = pipe 

    command = /usr/sbin/exim4 -oMr spam-scanned -bS 

    use_bsmtp = true 

    transport_filter = /usr/bin/spamc -u $local_part@$domain 

    home_directory = "/dev/shm" 

    current_directory = "/dev/shm" 

    # must use a privileged user to set $received_protocol on the way back in! 

    user = mail 

    group = mail 

    log_output = true 

    return_fail_output = true 

    return_path_add = false 

    message_prefix = 

    message_suffix =

Và bây giờ là các thao tác điều chỉnh SpamAssassin, hầu hết các file cấu hình đều được lưu trữ trong /etc/spamassassin/local.cf:

user_scores_dsn ldap://ldap.middle.earth/ou=domains,dc=middle,dc=earth?spamassassinUserPrefs?sub?(&(mailLocalAddress=__USERNAME__)(objectClass=inetLocalMailRecipient))

user_scores_ldap_username       uid=exim,dc=middle,dc=earth

user_scores_ldap_password       eximmta

clear_headers

add_header all Flag _YESNO_
add_header spam Result _SCORE_/_REQD_ (_TESTS_)

Với việc thay đổi thiết lập này, bạn có thể phân loại ra cho từng tài khoản, chỉ việc áp dụng thuộc tính spamassassinUserPrefs với form mẫu item value. Bên cạnh đó, chúng ta cần kích hoạt thêm spamd tại /etc/default/spamassassin:

ENABLED=1

OPTIONS="-x --ldap-config -u nobody --max-children 5"

và khởi động tính năng này:

sudo /etc/init.d/spamassassin restart

Khởi động lại exim:

sudo /etc/init.d/exim4 restart

Tại thời điểm này, toàn bộ email chưa thể gửi đến mailstore (cần điều chỉnh lại dovecot), và hầu hết các chức năng bảo mật đều chưa được kích hoạt.




Đượ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