Điều chỉnh và thiết lập Dovecot
Dovecot được dùng để nhận email thông qua POP3 hoặc IMAP. Và đương nhiên, Dovecot phải được cài đặt trên mailstore, nhưng với hệ thống có nhiều mailstore thì chúng ta cần POP / IMAP proxy có thể định vị được toàn bộ kết nối tới mailstore lưu giữ mailbox để nhận email. Dovecot hiện giờ đang là POP / IMAP server khá phổ biến và được ứng dụng rộng rãi.
Với Dovecot trên mailstore:
Tại đây, chúng ta sẽ tiến hành thiết lập dovecot trên mailstore. Có 2 file cấu hình để điều chỉnh, file /etc/dovecot/dovecot.conf:
protocols = imap imaps pop3 pop3s managesive
disable_plaintext_auth = no
log_timestamp = "%Y-%m-%d %H:%M:%S "
mail_location = maildir:%h/MailDir
mail_privileged_group = mail
#mail_debug = yes
first_valid_uid = 8
last_valid_uid = 8
first_valid_gid = 8
last_valid_gid = 8
protocol imap {
mail_plugins = quota imap_quota
}
protocol pop3 {
pop3_uidl_format = %08Xu%08Xv
mail_plugins = quota
}
protocol managesieve {
login_executable = /usr/lib/dovecot/managesieve-login
mail_executable = /usr/lib/dovecot/managesieve
}
protocol lda {
postmaster_address = postmaster@denetor.middle.earth
hostname = denetor@middle.earth
mail_plugins = quota sieve
auth_socket_path = /var/run/dovecot/auth-master
sieve_global_path = /var/sieve/global
sieve=~/.dovecot.sieve
}
auth default {
mechanisms = plain login
passdb ldap {
args = /etc/dovecot/dovecot-ldap.conf
}
userdb ldap {
args = /etc/dovecot/dovecot-ldap.conf
}
userdb prefetch {
}
user = root
socket listen {
master {
path = /var/run/dovecot/auth-master
mode = 0660
group = mail
}
client {
path = /var/run/dovecot/auth-client
mode = 0660
group = mail
}
}
}
dict {
}
plugin {
quota = maildir:User quota
quota_warning = storage=90%% /usr/local/bin/quota-warning.sh 90
sieve_before = /var/sieve/global
}
và file /etc/dovecot/dovecot-ldap.conf:
uris = ldap://ldap.middle.earth
dn = uid=dovecot,dc=middle,dc=earth
dnpass = dovecotpopper
ldap_version = 3
base = dc=%d,ou=domains,dc=middle,dc=earth
scope = subtree
user_attrs = homeDirectory=home,uidNumber=uid,gidNumber=gid,mailQuota=quota_rule=*:storage=%$
user_filter = (&(objectClass=inetLocalMailRecipient)(objectClass=posixAccount)(uid=%n))
pass_attrs = mailRoutingAddress=user,userPassword=password,homeDirectory=userdb_home,uidNumber
=userdb_uid,gidNumber=userdb_gid,mailQuota=userdb_quota_rule=*:storage=%$
pass_filter = (&(objectClass=inetLocalMailRecipient)(objectClass=posixAccount)(uid=%n))
default_pass_scheme = LDAP-MD5
Như là 1 phần của bộ lọc tổng hợp chúng ta đã định nghĩa và khởi tạo bên trên, và được sử dụng để lưu trữ dữ liệu trong mục Junk – bị spamassassin ngăn chặn và báo cáo với phân loại spam:
sudo mkdir /var/sieve
Bộ lọc được sử dụng ở đây là /var/sieve/global:
require "fileinto";
if header :contains ["X-Spam-Flag"] ["Yes"] {
fileinto "Junk";
stop;
}
sudo chown mail -R /var/sieve
và cũng như 1 phần của plugin quota, chúng ta cần tạo ra 1 đoạn mã ngắn để cảnh báo người sử dụng rằng họ đã gần sử dụng hết lưu lượng cho phép, thông tin này được lưu trữ tại /usr/local/bin/quota-warning.sh:
#!/bin/sh
PERCENT=$1
FROM="postmaster@denetor.middle.earth"
qwf="/tmp/quota.warning.$$"
echo "From: $FROM
To: $USER
To: postmaster@domain.org
Subject: Your email quota is $PERCENT% full
Content-Type: text/plain; charset='UTF-8'
This message is automatically created
by mail delivery software.
The size of your mailbox has exceeded
a warning threshold that is
set by the system administrator.
You *must* delete mails or empty some folders
or you may loose emails in the future.">> $qwf
cat $qwf | /usr/sbin/sendmail -f $FROM "$USER"
rm -f $qwf
exit 0
sudo chmod +x /usr/local/bin/quota-warning.sh
Thiết lập Dovecot trên MX
Trên hệ thống lưu trữ này, chúng ta sẽ điều chỉnh và thiết lập lại Dovecot để hoạt động như 1 proxy. Tất cả thông tin thiết lập đều nằm trong file /etc/dovecot/dovecot.conf:
protocols = imap imaps pop3 pop3s managesieve
disable_plaintext_auth = no
log_timestamp = "%Y-%m-%d %H:%M:%S "
login_process_per_connection = no
login_processes_count = 8
mail_uid = 8
mail_gid = 8
mail_privileged_group = mail
first_valid_uid = 8
last_valid_uid = 8
first_valid_gid = 8
last_valid_gid = 8
protocol imap {
}
protocol pop3 {
pop3_uidl_format = %08Xu%08Xv
}
protocol managesieve {
}
auth default {
mechanisms = plain login
passdb ldap {
args = /etc/dovecot/dovecot-ldap.conf
}
userdb passwd {
}
userdb static {
}
user = nobody
}
dict {
}
plugin {
}
và /etc/dovecot/dovecot-ldap.conf:
uris = ldap://ldap.middle.earth
dn = uid=dovecot,dc=middle,dc=earth
dnpass = dovecotpopper
base = dc=%d,ou=domains,dc=middle,dc=earth
pass_attrs==nopassword=1,=password=,=proxy=y,mailHost=host,=destuser=%u
pass_filter = (&(objectClass=inetLocalMailRecipient)(objectClass=posixAccount)(uid=%n))
Các lưu ý cần quan tâm
Nếu muốn dùng nhiều mailstore, ban có thể áp dụng cơ sở dữ liệu sql để lưu trữ dữ liệu bayesian và chia sẻ trên tất cả các mailstore (nhưng hiện tại thì tính năng lưu trữ bayesian trong ldap chưa có sẵn)
Để quản lý các tài khoản người sử dụng, domain và tất cả các thành phần liên quan thì người dùng có thể áp dụng bất cứ mô hình ldap client nào, ví dụ như PHPLDAPAdmin
Trong bài hướng dẫn trên, tất cả các hoạt động đều được thực hiện trên tài khoản mail, tùy từng hệ thống của người dùng mà các bạn nên có những thay đổi cần thiết và thích hợp
Trên đây là 1 số bước hướng dẫn để thiết lập hệ thống Mail Server sử dụng Exim4, Clamav, Dovecot, SpamAssassin … trên nền tảng Debian. Chúc các bạn thành công!