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

Discussion in 'Internet' started by 16ifix, Apr 29, 2014.

  1. 16ifix

    16ifix Moderator

    Joined:
    Dec 11, 2013
    Messages:
    1,497
    Likes Received:
    148
    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).

    >>> Chạy SquirrelMail trên Nginx (LEMP) trong Debian Squeeze/Ubuntu 11.04

    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ực SMTP-AUTH, TLSquota (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à hostname server1.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/i386 nế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

    [Broken External Image]:http://pixel.quantserve.com/pixel/p-89EKCgBk8MZdE.gif

    Theo: Quản trị mạng
     
  2. Loading...


  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice