Skip to main content

Ảo hóa người dùng và tên miền với Postfix, Courier, MySQL và SquirrelMail

Quản Trị Mạng - Postfix là một MTA (Mail Transport Agent), được viết bởi Wietse Venema khi ông đang làm việc ở trung tâm nghiên cứu T. J. Watson của IBM. Đặc điểm của Postfix: dễ quản lý, nhanh, an toàn. Chỉ cần một server với hardware thông thường, Postfix có thể chuyển giao hàng triệu email một ngày. Trong bài viết sau chúng tôi sẽ hướng dẫn các bạn cách cài đặt một mail server Postfix cơ bản trên user và domain ảo (tức là user và domain được lưu trong cơ sở dữ liệu MySQL).
Ngoài ra, bài viết sẽ thể hiện quá trình cài đặt và cấu hình Courier (Courier-POP3, Courier-IMAP), từ đó Courier có thể xác thực cơ sở dữ liệu MySQL mà Postfix sử dụng. Kết quả là máy chủ Postfix có khả năng xác thựcSMTP-AUTH, TLS  quota (quota không được xây dựng trong Postfix theo mặc định, chúng ta sẽ vá Postfix một cách thích hợp). Những mật khẩu sẽ được lưu trữ trong form encrypted của database. Đồng thời chúng tôi sẽ trình bày tới các bạn cách cài đặt Amavisd, SpamAssassin và ClamAV để các email này được quét và kiểm tra spam, virus. Cuối cùng chúng ta sẽ tiến hành cài đặt giao diện webmail SquirrelMail để các user có thể đọc và gửi mail, thay đổi password.

Tổng quan

Ưu điểm của một thiết lập “ảo” (user và domain ảo trong MySQL database) là nó làm tăng rất nhiều hiệu suất so với một thiết lập cơ bản dựa trên user hệ thống “real”. Với thiết lập ảo, mail server của bạn có thể xử lý hàng ngàn domain và user. Bên cạnh đó, việc quản trị cũng trở nên dễ dàng hơn bởi bạn chỉ cần xử lý với MySQL database khi thêm user/domain mới hoặc chỉnh sửa những tài khoảng hiện có. Không cần những lệnh postmapđể tạo file db, không cần tải lại Postfix... việc quản lý MySQL database có thể thông qua công cụ web nhưphpMyAdmin (sẽ được cài đặt trong hướng dẫn này). Ưu điểm thứ ba là người dùng sẽ có một địa chỉ email chính là tên user thay vì một username và một email gây phiền phức.

1. Một số lưu ý

Ở đây chúng tôi sử dụng hệ thống Fedora 15 x86_64, có địa chỉ IP tĩnh 192.168.0.100 và hostnameserver1.example.com. Bạn cần chắc chắn rằng tường lửa và SELinux đều được vô hiệu hóa.

2. Một số phần mềm cần thiết

Trước tiên chúng ta cần cập nhập các gói có sẵn trên hệ thống:
yum update
Sau đó cài đặt một số phần mềm cần thiết:
yum groupinstall 'Development Tools'
yum groupinstall 'Development Libraries'

3. Cài đặt Apache, MySQL, phpMyAdmin

Bộ phần mềm này có thể được cài cùng lúc qua một dòng lệnh sau (bao gồm các gói cần xây dựng cho Courier-IMAP):
yum install ntp httpd mysql-server php php-mysql php-mbstring rpm-build gcc mysql-devel openssl-devel cyrus-sasl-devel pkgconfig zlib-devel phpMyAdmin pcre-devel openldap-devel postgresql-devel expect libtool-ltdl-devel openldap-servers libtool gdbm-devel pam-devel gamin-devel libidn-devel

4. Cài đặt Courier-IMAP, Courier-Authlib, And Maildrop

Thật không may vì gói rpm không được tích hợp sẵn cho Courier-IMAP, Courier-Authlib, và Maildrop. Do đó chúng ta cần xây dựng nó để sử dụng. Các gói rpm không nên xây dựng với quyền là root, courier-imap sẽ từ chối biên dịch nếu phát hiện gói này chạy ở root. Vì vậy chúng tôi sẽ tạo một tài khoản bình thường (ví dụquantrimang) và gán cho nó một mật khẩu:
useradd -m -s /bin/bash quantrimang
passwd quantrimang
Sau đó chúng ta sử dụng lệnh sudo để quantrimang có thể biên dịch và cài đặt các gói rpm. Nhưng trước tiên cần cho phép quantrimang chạy tất cả các lệnh sử dụng sudo:
visudo
Trong tập tin được mở, tại dòng root ALL=(ALL) ALL thêm một dòng tương tự dành cho quantrimang bên dưới:
[...]
## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
quantrimang   ALL=(ALL)       ALL
[...]
Bây giờ là lúc xây dựng gói rpm. Đầu tiên trở thành quantrimang:
su quantrimang
Tiếp theo tạo môi trường xây dựng:
mkdir $HOME/rpm
mkdir $HOME/rpm/SOURCES
mkdir $HOME/rpm/SPECS
mkdir $HOME/rpm/BUILD
mkdir $HOME/rpm/BUILDROOT
mkdir $HOME/rpm/SRPMS
mkdir $HOME/rpm/RPMS
mkdir $HOME/rpm/RPMS/i386
mkdir $HOME/rpm/RPMS/x86_64

echo "%_topdir $HOME/rpm" >> $HOME/.rpmmacros
Tạo thư mục downloads và tải về tập tin nguồn tại đây:
mkdir $HOME/downloads
cd $HOME/downloads

wget https://sourceforge.net/projects/courier/files/authlib/0.63.0/courier-authlib-0.63.0.tar.bz2/download
wget https://sourceforge.net/projects/courier/files/imap/4.9.3/courier-imap-4.9.3.tar.bz2/download
wget https://sourceforge.net/projects/courier/files/maildrop/2.5.4/maildrop-2.5.4.tar.bz2/download
Vẫn ở trong $HOME/downloads, chúng ta xây dựng courier-authlib:
sudo rpmbuild -ta courier-authlib-0.63.0.tar.bz2
Sau khi hoàn thành, gói rpm có thể được tìm thấy trong /root/rpmbuild/RPMS/x86_64 (/root/rpmbuild/RPMS/i386nếu bạn đang chạy hệ thống i386):
sudo ls -l /root/rpmbuild/RPMS/x86_64
Các gói có sẵn của rpm hiển thị như sau:
[quantrimang@server1 downloads]$ sudo ls -l /root/rpmbuild/RPMS/x86_64
total 520
-rw-r--r-- 1 root root 123448 May 25 18:06 courier-authlib-0.63.0-1.fc15.x86_64.rpm
-rw-r--r-- 1 root root 265144 May 25 18:06 courier-authlib-debuginfo-0.63.0-1.fc15.x86_64.rpm
-rw-r--r-- 1 root root  34876 May 25 18:06 courier-authlib-devel-0.63.0-1.fc15.x86_64.rpm
-rw-r--r-- 1 root root  17448 May 25 18:06 courier-authlib-ldap-0.63.0-1.fc15.x86_64.rpm
-rw-r--r-- 1 root root  13808 May 25 18:06 courier-authlib-mysql-0.63.0-1.fc15.x86_64.rpm
-rw-r--r-- 1 root root  13020 May 25 18:06 courier-authlib-pgsql-0.63.0-1.fc15.x86_64.rpm
-rw-r--r-- 1 root root   8276 May 25 18:06 courier-authlib-pipe-0.63.0-1.fc15.x86_64.rpm
-rw-r--r-- 1 root root  34108 May 25 18:06 courier-authlib-userdb-0.63.0-1.fc15.x86_64.rpm
[quantrimang@server1 downloads]$
Chọn một gói bạn muốn, sau đó cài đặt nó tương tự dưới đây:
sudo rpm -ivh /root/rpmbuild/RPMS/x86_64/courier-authlib-0.63.0-1.fc15.x86_64.rpm /root/rpmbuild/RPMS/x86_64/courier-authlib-mysql-0.63.0-1.fc15.x86_64.rpm /root/rpmbuild/RPMS/x86_64/courier-authlib-devel-0.63.0-1.fc15.x86_64.rpm
Quay trở lại thư mục downloads:
cd $HOME/downloads
Chạy các lệnh sau đây để tạo các thư mục tiếp nhận yêu cầu/cho phép thay đổi (nếu không quá trình xây dựng Courier-Imap sẽ thất bại):
sudo mkdir /var/cache/ccache/tmp
sudo chmod o+rwx /var/cache/ccache/
sudo chmod 777 /var/cache/ccache/tmp
Bây giờ chạy lệnh rpmbuild lần nữa, lưu ý rằng không thông qua sudo bởi trình biên dịch không cho phép nó chạy như là root.
rpmbuild -ta courier-imap-4.9.3.tar.bz2
Sau đó gói rpm sẽ được tìm thấy trong $HOME/rpm/RPMS/x86_64 ($HOME/rpm/RPMS/i386 nếu là hệ thống i386):
cd $HOME/rpm/RPMS/x86_64
Chạy lệnh sau:
ls -l
Bạn sẽ nhận được các gói rpm có sẵn:
[quantrimang@server1 x86_64]$ ls -l
total 1040
-rw-rw-r-- 1 quantrimang quantrimang 315872 May 25 18:33 courier-imap-4.9.3-1.15.x86_64.rpm
-rw-rw-r-- 1 quantrimang quantrimang 743200 May 25 18:33 courier-imap-debuginfo-4.9.3-1.15.x86_64.rpm
[quantrimang@server1 x86_64]$
Cài đặt courier-imap bằng lệnh sau:
sudo rpm -ivh courier-imap-4.9.3-1.15.x86_64.rpm
Quay trở lại thư mục downloads:
cd $HOME/downloads
Chạy lệnh rpmbuild để xây dựng gói maildrop:
sudo rpmbuild -ta maildrop-2.5.4.tar.bz2
Sau đó gói rpm có thể tìm thấy tại /root/rpmbuild/RPMS/x86_64 (/root/rpmbuild/RPMS/i386 với hệ thống i386).
sudo ls -l /root/rpmbuild/RPMS/x86_64
Các gói rpm có sẵn được liệt kê:
[quantrimang@server1 downloads]$ sudo ls -l /root/rpmbuild/RPMS/x86_64
total 1628
-rw-r--r-- 1 root root 123448 May 25 18:06 courier-authlib-0.63.0-1.fc15.x86_64.rpm
-rw-r--r-- 1 root root 265144 May 25 18:06 courier-authlib-debuginfo-0.63.0-1.fc15.x86_64.rpm
-rw-r--r-- 1 root root  34876 May 25 18:06 courier-authlib-devel-0.63.0-1.fc15.x86_64.rpm
-rw-r--r-- 1 root root  17448 May 25 18:06 courier-authlib-ldap-0.63.0-1.fc15.x86_64.rpm
-rw-r--r-- 1 root root  13808 May 25 18:06 courier-authlib-mysql-0.63.0-1.fc15.x86_64.rpm
-rw-r--r-- 1 root root  13020 May 25 18:06 courier-authlib-pgsql-0.63.0-1.fc15.x86_64.rpm
-rw-r--r-- 1 root root   8276 May 25 18:06 courier-authlib-pipe-0.63.0-1.fc15.x86_64.rpm
-rw-r--r-- 1 root root  34108 May 25 18:06 courier-authlib-userdb-0.63.0-1.fc15.x86_64.rpm
-rw-r--r-- 1 root root 278520 May 25 18:50 maildrop-2.5.4-1.15.x86_64.rpm
-rw-r--r-- 1 root root 685672 May 25 18:50 maildrop-debuginfo-2.5.4-1.15.x86_64.rpm
-rw-r--r-- 1 root root  99924 May 25 18:50 maildrop-devel-2.5.4-1.15.x86_64.rpm
-rw-r--r-- 1 root root  63968 May 25 18:50 maildrop-man-2.5.4-1.15.x86_64.rpm
[quantrimang@server1 downloads]$
Cài đặt maildrop bằng lệnh sau:
sudo rpm -ivh /root/rpmbuild/RPMS/x86_64/maildrop-2.5.4-1.15.x86_64.rpm
Sau khi biên dịch và cài đặt thành công các gói cần thiết, bạn có thể trở lại root bằng lệnh:
exit

5. Áp dụng bản vá Quota Patch cho Postfix

Chúng ta phải lấy các nguồn Postfix rpm, vá nó với bản vá quota, xây dựng một gói Postfix rpm mới và cài đặt nó:
cd /usr/src
wget http://ftp-stud.fht-esslingen.de/pub/Mirrors/fedora/linux/releases/15/Everything/source/SRPMS/postfix-2.8.2-2.fc15.src.rpm
rpm -ivh postfix-2.8.2-2.fc15.src.rpm
Các cảnh báo sau hiện ra, bạn có thể bỏ qua nó:
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
cd /root/rpmbuild/SOURCES
wget http://vda.sourceforge.net/VDA/postfix-vda-v10-2.8.2.patch
cd /root/rpmbuild/SPECS/
Chúng ta cần sửa lại tập tin postfix.spec:
vi postfix.spec
Và thêm Patch0: postfix-vda-v10-2.8.2.patch vào đoạn # Patches, thêm %patch0 -p1 -b .vda-v10 vào đoạn %setup -q như sau:
[...]
# Patches

Patch0: postfix-vda-v10-2.8.2.patch
Patch1: postfix-2.7.0-config.patch
Patch2: postfix-2.6.1-files.patch
Patch3: postfix-alternatives.patch
Patch8: postfix-large-fs.patch
Patch9: pflogsumm-1.1.3-datecalc.patch
[...]
%prep
%setup -q
# Apply obligatory patches
%patch0 -p1 -b .vda-v10
%patch1 -p1 -b .config
%patch2 -p1 -b .files
%patch3 -p1 -b .alternatives
%patch8 -p1 -b .large-fs
[...]
Sau đó xây dựng gói Postfix rpm mới với quota và hỗ trợ MySQL:
rpmbuild -ba postfix.spec
Vào thư mục chứa postfix rpm trong /root/rpmbuild/RPMS/x86_64 (/root/rpmbuild/RPMS/i386 nếu là hệ thống i386):
cd /root/rpmbuild/RPMS/x86_64
Chạy lệnh:
ls -l
Bạn sẽ nhận được các gói có sẵn:
[root@server1 x86_64]# ls -l
total 8308
-rw-r--r-- 1 root root  123528 Jun 20 16:33 courier-authlib-0.63.0-1.fc15.x86_64.rpm
-rw-r--r-- 1 root root  265100 Jun 20 16:33 courier-authlib-debuginfo-0.63.0-1.fc15.x86_64.rpm
-rw-r--r-- 1 root root   34876 Jun 20 16:33 courier-authlib-devel-0.63.0-1.fc15.x86_64.rpm
-rw-r--r-- 1 root root   17452 Jun 20 16:33 courier-authlib-ldap-0.63.0-1.fc15.x86_64.rpm
-rw-r--r-- 1 root root   13812 Jun 20 16:33 courier-authlib-mysql-0.63.0-1.fc15.x86_64.rpm
-rw-r--r-- 1 root root   13040 Jun 20 16:33 courier-authlib-pgsql-0.63.0-1.fc15.x86_64.rpm
-rw-r--r-- 1 root root    8280 Jun 20 16:33 courier-authlib-pipe-0.63.0-1.fc15.x86_64.rpm
-rw-r--r-- 1 root root   34144 Jun 20 16:33 courier-authlib-userdb-0.63.0-1.fc15.x86_64.rpm
-rw-r--r-- 1 root root  278628 Jun 20 18:29 maildrop-2.5.4-1.15.x86_64.rpm
-rw-r--r-- 1 root root  685320 Jun 20 18:29 maildrop-debuginfo-2.5.4-1.15.x86_64.rpm
-rw-r--r-- 1 root root   99920 Jun 20 18:29 maildrop-devel-2.5.4-1.15.x86_64.rpm
-rw-r--r-- 1 root root   63964 Jun 20 18:29 maildrop-man-2.5.4-1.15.x86_64.rpm
-rw-r--r-- 1 root root 2170848 Jun 20 18:40 postfix-2.8.2-2.fc15.x86_64.rpm
-rw-r--r-- 1 root root 4599208 Jun 20 18:40 postfix-debuginfo-2.8.2-2.fc15.x86_64.rpm
-rw-r--r-- 1 root root   63536 Jun 20 18:40 postfix-perl-scripts-2.8.2-2.fc15.x86_64.rpm
[root@server1 x86_64]#
Chọn một gói bạn muốn và cài đặt như dưới đây:
rpm -ivh postfix-2.8.2-2.fc15.x86_64.rpm
Trang: 
Theo QTM

Comments

Popular posts from this blog

Phần mềm sao lưu SQL Server tự động tốt nhất

Sau bao nhiêu năm làm việc với SQL Server, mình phát hiện thấy có nhiều trường hợp SQL Server bị lỗi phần tự động sao lưu dẫn đến không thể sao lưu hoặc các bản SQL Express không có phần tự động sao lưu gây khó khăn cho người quản trị database. Nhằm đáp ứng nhu cầu đó nên mình đã viết ra phần mềm SaigonIT SQL Server Backup and Shrink Log . Chương trình đặc biệt hữu ích cho khách hàng sử dụng các bản SQL Server Express. Tính năng chính: Hoạt động theo cơ chế service, không cần login vào hệ điều hành hệ thống vẫn chạy được. Đáp ứng tốt cho các máy chạy Windows Server. Hỗ trợ sao lưu cho các server chạy SQL Server 2000 trở lên. Tự động nén dữ liệu sao lưu thành file zip để tiết kiệm không gian đĩa. Cho phép đặt mật khẩu file sao lưu. Tính năng thu nhỏ file log. Đặt lịch sao lưu theo các ngày trong tuần vào một giờ quy định. Gửi email đến quản trị thông báo mỗi khi sao lưu thành công. Hỗ trợ tốt tài khoản email của Gmail. Cho phép thiết lập chỉ lưu số lượng nhất định bản ...

Thủ tướng bổ nhiệm ông Trương Minh Tuấn làm Thứ trưởng Bộ TT&TT

ICTnews - Ngày 22/1/2014, Thủ tướng Chính phủ đã ký quyết định số 176/QĐ – TTg bổ nhiệm ông Trương Minh Tuấn, nguyên Phó Trưởng Ban Tuyên giáo Trung ương giữ chức Thứ trưởng Bộ TT&TT.   Ông Trương Minh Tuấn được bổ nhiệm giữ chức Thứ trưởng Bộ TT&TT từ ngày 22/1/2014   Thông tin từ Cổng thông tin điện tử Chính phủ cho biết, ông Trương Minh Tuấn sinh năm 1960. Trước khi được bổ nhiệm giữ chức Thứ trưởng Bộ TT&TT, ông Trương Minh Tuấn đã trải qua các chức vụ: Vụ trưởng, Trưởng cơ quan thường trực Ban Tuyên giáo Trung ương tại thành phố Đà Nẵng; Giám đốc Trung tâm Thông tin công tác tuyên giáo, Ban Tuyên giáo Trung ương; Phó Trưởng Ban Tuyên giáo Trung ương. Theo ICTnews

10 lệnh thông dụng mới trong Windows Vista

Mặc dù phiên bản Vista chưa cải tiến nhiều về tính bảo mật nhưng Microsoft cũng đã tích hợp vào khá nhiều câu lệnh mới so với Windows XP. Các câu lệnh này sẽ giúp bạn thực hiện khá nhiều tiện ích thông qua môi trường DOS trong Windows. 1. BcdEdit - Giúp chỉnh sửa tập tin boot.ini. 2. DxConfig - Thiết lập DirectX. 3. iCacls. 4. MkLink - Thu gọn đường dẫn những link dài. 5. Msconfig. 6. Net user administrator activate:yes - Kích hoạt tính năng ẩn của tài khoản Administrator. 7. Slmgr hoặc Slmgr.vbs - Cho bạn quản lý bản quyền phần mềm (Software Licensing Manager) cho Vista. 8. Powercfg. 9. VSSadmin. 10. Ctrl + Shift + Enter - Thực thi chương trình dưới quyền Admin. Phạm Lê Minh Định