QuanTriMang.com - Trong bài viết sau, Quản Trị Mạng sẽ giới thiệu với các bạn cách thiết lập hệ thống email server trên Ubuntu sử dụng Qmail như MTA, OpenLDAP là phần back-end cho người sử dụng, và Courier IMAP dành cho IMAP server.
Qmail là 1 ứng dụng chuyển tin nhắn đảm bảo an ninh, tính bảo mật, độ ổn định và khá đơn giản. Chương trình được thiết kế dành riêng cho những host sử dụng Unix. Trong bài thử nghiệm này, chúng ta sử dụng tên miền yourdomain.com, và có các bản ghi MX được thiết lập như mail.yourdomain.com. Lưu ý rằng tất cả các lệnh đều được thực hiện dưới tài khoản root, để kiểm tra thông tin về các bản ghi MX, các bạn sử dụng lệnh sau:
dig mx yourdomain.com
Tải các gói cần thiết dành cho Qmail:
apt-get install libldap2-dev libssl-dev openssl sharutils unzip maildrop perl-suid
mkdir /downloads
cd /downloads
wget http://www.qmailrocks.org/downloads/qmail-1.03.tar.gz
wget http://www.qmailrocks.org/downloads/ucspi-tcp-0.88.tar.gz
wget http://www.qmailrocks.org/downloads/daemontools-0.76.tar.gz
wget http://www.qmailrocks.org/downloads/patches/daemontools-0.76.errno.patch
wget http://www.qmailrocks.org/downloads/patches/ucspi-tcp-0.88.errno.patch
wget http://www.qmailrocks.org/downloads/scripts/finalize/qmailctl
wget http://www.nrg4u.com/qmail/qmail-ldap-1.03-20060201.patch.gz
gzip /downloads/qmail-ldap-1.03-20060201.patch.gz
Tạo các tài khoản người sử dụng và nhóm quản lý:
mkdir -p /var/qmail
groupadd nofiles
useradd -g nofiles -d /var/qmail/alias -s /sbin/nologin -p'*' alias
useradd -g nofiles -d /var/qmail -s /sbin/nologin -p'*' qmaild
useradd -g nofiles -d /var/qmail -s /sbin/nologin -p'*' qmaill
useradd -g nofiles -d /var/qmail -s /sbin/nologin -p'*' qmailp
groupadd qmail
useradd -g qmail -d /var/qmail -s /sbin/nologin -p'*' qmailq
useradd -g qmail -d /var/qmail -s /sbin/nologin -p'*' qmailr
useradd -g qmail -d /var/qmail -s /sbin/nologin -p'*' qmails
groupadd vmail
useradd -g vmail -s /bin/true vmail
mkdir /home/vmail
chown vmail.vmail /home/vmail
chmod 700 /home/vmail
Quá trình compile Qmail:
mkdir -p /var/qmail
mkdir /usr/src/qmail
cd /usr/src/qmail
tar zxvf /downloads/qmail-1.03.tar.gz
cd qmail-1.03
patch -p1 < /downloads/qmail-ldap-1.03-20060201.patch
vi Makefile
LDAPFLAGS=-DQLDAP_CLUSTER -DEXTERNAL_TODO -DDASH_EXT -DDATA_COMPRESS -DQMQP_COMPRESS -DSMTPEXECCHECK
# ZLIB needed for -DDATA_COMPRESS and -DQMQP_COMPRESS
ZLIB=-lz
# to enable the auto-maildir-make feature
MDIRMAKE=-DAUTOMAILDIRMAKE
# to enable the auto-homedir-make feature
HDIRMAKE=-DAUTOHOMEDIRMAKE
# on most systems we need this to make auth_pop and auth_imap
SHADOWLIBS=-lcrypt
# to enable the possibility to log and debug imap and pop
DEBUG=-DDEBUG
make setup check
File cấu hình và thiết lập của Qmail và ldap:
cd /var/qmail/control
echo 100 > concurrencyincoming
echo 255 > concurrencyremote
echo ./Maildir/ > defaultdelivery
echo yourdomain.com > defaultdomain
echo 10000 > defaultquotacount
echo 10000000 > defaultquotasize
echo /var/qmail/bin/dirmaker > dirmaker
echo yourdomain.com > defaultdomain
echo dc=yourdomain,dc=com > ldapbasedn
echo 0 > ldapcluster
id -g vmail > ldapgid
echo cn=manager,dc=yourdomain,dc=com > ldaplogin
echo /home/vmail > ldapmessagestore
echo qmailUser > ldapobjectclass
echo secret > ldappassword
echo 127.0.0.1 > ldapserver
id -u vmail > ldapuid
echo mail.yourdomain.com > me
echo 80000000 > qmail-smtpd-softlimit
echo 80000000 > qmail-pop3d-softlimit
echo 3 > qmail-pop3d-loglevel
echo 3 > qmail-start-loglevel
echo yourdomain.com > rcpthosts
ln -s rcpthosts locals
Cài đặt UCSPI-TCP / Daemontools
cd /usr/src/qmail
tar zxvf /downloads/ucspi-tcp-0.88.tar.gz
cd ucspi-tcp-0.88
patch < /downloads/ucspi-tcp-0.88.errno.patch
make && make setup check
mkdir -p /package
chmod 1755 /package
cd /package
tar zxvf /downloads/daemontools-0.76.tar.gz
cd /package/admin/daemontools-0.76/src
patch < /downloads/daemontools-0.76.errno.patch
cd /package/admin/daemontools-0.76
package/install
/command/svscanboot &
chmod 755 /etc/rc.local
vi /etc/rc.local
/command/svscanboot &
exit 0
Chạy các đoạn script của Qmail:
Xem file tại đây
Lưu ý rằng giá trị 192.168... là dải ip local của hệ thống. Để tìm hiểu thêm về các lựa chọn sử dụng, các bạn hãy truy cập vào đây hoặc đây:
mkdir /var/log/qmail
cd /var/log/qmail
mkdir qmail-send qmail-smtpd qmail-pop3d
chown -R qmaill:root /var/log/qmail
chmod -R 750 /var/log/qmail
cd /var/qmail
cp -p /downloads/qmailctl /var/qmail/bin/.
chmod 755 /var/qmail/bin/qmailctl
ln -s /var/qmail/bin/qmailctl /usr/bin/
qmailctl cdb
cd /service/
ln -s /var/qmail/supervise/qmail-* .
OpenLDAP
LDAP nghĩa là Lightweight Directory Access Protocol – phiên bản rút gọn của giao thức X500. Các bạn có thể tìm thấy nhiều thông tin giới thiệu và chi tiết trên Wikipedia. LDAP là 1 giải pháp chuyển đổi thông tin qua Internet rất phổ biến, trong bài thử nghiệm này những thông tin được đề cập đến là tài khoản đăng nhập, mật khẩu và các thông tin hỗ trợ khác.
Trước tiên, chúng ta cần cài đặt ldap server daemon (slapd) trên server, và để làm việc này, hãy cài đặt các gói sau đây: slapd, ldap-utils, và db4.2-util:
sudo apt-get install slapd ldap-utils db4.2-util
cp -p /usr/src/qmail/qmail-1.03/qmail.schema /etc/ldap/schema/
Tiếp theo, tạo file cấu hình tạm thời:
vi slapd-tmp.conf
include /etc/ldap/schema/core.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/inetorgperson.schema
include /etc/ldap/schema/nis.schema
include /etc/ldap/schema/qmail.schema
pidfile /var/run/slapd/slapd.pid
argsfile /var/run/slapd/slapd.args
moduleload back_hdb
database hdb
suffix "dc=yourdomain,dc=com"
rootdn "cn=manager,dc=yourdomain,dc=com"
rootpw {SSHA}+xDld2OXYtm0NRlJYXL050VGym/sYUn+
index objectClass eq,pres
index ou,cn,mail,surname,givenname eq,pres,sub
index uidNumber,gidNumber,loginShell eq,pres
index uid,memberUid eq,pres,sub
index nisMapName,nisMapEntry eq,pres,sub
Hãy nhớ thay đổi tham số rootpw bằng mã mật khẩu mới – dùng lệnh slappasswd:
rm -rf /etc/ldap/slapd.d/*
slaptest -f slapd-tmp.conf -F /etc/ldap/slapd.d
chown openldap.openldap -R /etc/ldap/slapd.d
chown openldap.openldap -R /var/lib/ldap
/etc/init.d/slapd restart
Tiếp theo, thử gắn 1 số cơ sở dữ liệu vào:
vi yourdomain.ldif
# base dn
dn: dc=yourdomain,dc=com
objectClass: dcObject
objectClass: organization
o: yourdomain
dc: yourdomain
# ou, yourdomain.com
dn: ou=yourdomain.com,dc=yourdomain,dc=com
objectClass: top
objectClass: organizationalUnit
ou: yourdomain.com
vi test.ldif
# test, yourdomain.com
dn: uid=test,ou=yourdomain.com,dc=yourdomain,dc=com
objectClass: top
objectClass: inetOrgPerson
objectClass: qmailUser
cn: Test User
sn:: User
mail: test@yourdomain.com
accountStatus: active
mailMessageStore: yourdomain.com/test
uid: test
mailHost: mail.yourdomain.com
deliveryMode: noforward
userPassword:: e0NSWVBUfUJuZGZpVzJHQkd0enc=
ldapadd -x -D "cn=manager,dc=yourdomain,dc=com" -W -f yourdomain.ldif
ldapadd -x -D "cn=manager,dc=yourdomain,dc=com" -W -f test.ldif
Với Courier IMAP:
apt-get install courier-authdaemon courier-authlib courier-authlib-userdb courier-base courier-imap expect courier-ldap courier-authlib-ldap
vi /etc/courier/authdaemonrc
authmodulelist="authldap"
authmodulelistorig="authldap"
vi /etc/courier/authldaprc
LDAP_URI ldap://mail.yourdomain.com
LDAP_BASEDN dc=yourdomain,dc=com
LDAP_BINDDN cn=manager,dc=yourdomain,dc=com
LDAP_BINDPW secret
LDAP_MAIL uid
LDAP_FILTER (&(objectClass=qmailUser)(accountStatus=active))
LDAP_GLOB_UID vmail
LDAP_GLOB_GID vmail
LDAP_HOMEDIR mailMessageStore
LDAP_MAILROOT /home/vmail
LDAP_DEFAULTDELIVERY defaultDelivery
vi /etc/courier/imapd
IMAPDSTART=YES
/etc/init.d/courier-ldap start
/etc/init.d/courier-authdaemon start
/etc/init.d/courier-imap start
Trên đây là 1 số bước để cài đặt, thiết lập và cấu hình Qmail OpenLdap trên nền tảng Ubuntu. Chúc các bạn thành công!