Tạo lập mail server trên hệ thống GNU/Linux (Phần 1)

Bài này sẽ hướng dẫn các bạn cách thiết lập một mail server với không giới hạn số lượng users và domains, với truy cập IMAP, anti-spam, anti-virus, xác thực bảo mật, mã hoá, web mail interface ... trên một Ubuntu distribution platform, tuy nhiên hướng dẫn sẽ có thể dùng cho các distro khác. Các bước này đều tương đối đơn giản nhưng cuối cùng bạn sẽ có một mail server mạnh mẽ và bảo mật.

Các phần mềm sẽ sử dụng

1. Hệ điều hành: Ubuntu

www.ubuntu.com

Thiết lập này có thể hoạt động trên hầu hết các distros. Tại sao lại là Ubuntu? Vì nó miễn phí, đơn giản và nhanh. Ubuntu được tạo thành từ debian, nên các cài đặt được ghi ở đây sẽ dựa trên apt-get.

2. MTA: Postfix

www.postfix.com

Đơn giản, miễn phí, nhanh nhạy. Tôi thích những thứ có thể hoạt động một cách dễ dàng. Postfix mạnh, được thiết lập tốt, nhưng không quá cồng kềnh.

3. Pop/IMAP: Courier IMAP hoặc Dovecot

www.courier-mta.org/imap/

Một sự thay thế của Courier là Dovecot

www.dovecot.org

4. Database: MySQL

www.mysql.com

MySQL được hỗ trợ tốt cho nhu cầu tra cứu trên mail server

5. Content Check: Amavisd-new

www.ijs.si/software/amavisd/

Plug in dễ sử dụng, là giải pháp cho việc chống spam và hạn chế virus...

6. Anti-Spam: SpamAssassin

spamassassin.apache.org

7. Anti-virus: ClamAV

www.clamav.net

Trình quét virus miễn phí bao gồm cả việc update daemon.

8. Authentication: Cyrus SASL

www.imc.org/ietf-sasl/

Kỹ thuật mã hoá an toàn và được tin tưởng cho việc xaccs thực của SMTP traffic.

9. PostGrey

isg.ee.ethz.ch/tools/postgrey/

Postgrey là một script nhỏ như có võ, có thể ngăn chặn 96.69% các loại spam. Nó thực hiện việc kiểm tra ở lần liền lạc đầu tiên với các đối tượng được định nghĩa trong from-to combinations, yêu cầu server gửi mail gửi lại một lần nữa, điều mà hầu hết các spammer không có khả năng thực hiện. Nếu một server chuẩn thực hiện hiện gửi lại sau vài phút, nó sẽ cho phép đi qua.

10. Encryption: TLS

www.ietf.org/html.charters/tls-charter.html

Kỹ thuật mã hoá được sử dụng nhiều trong việc mã hoá của SMTP traffic.

11. WebMail: SquirrelMail hoặc Roundcube

www.squirrelmail.org

SquirrelMail là web mail client dựa trên php, có thể dễ dàng thiết lập và cho phép bạn mở rộng với nhiều plugin.

www.roundcube.net

Giao diện đẹp hơn so với SquirrelMail nhưng không mạnh bằng.

12. Platform: Amazon ec2

aws.amazon.com/ec2

Hướng dẫn này có thể cài đặt ở local, hoặc cũng có thể trên cloud.

Cài đặt

Distribution

Chúng ta sẽ sử dụng Ubuntu để cài đặt, và vì nó dựa trên debian nên ta sẽ sử dụng các apt packages. Nếu bạn sử dụng distribution khác, bạn cần bảo đảm rằng các package mà mình cài đặt tương ứng với version của bạn. Tôi đã thử thiết lập mail server sử dụng platform 32 bit và 64 bit x86.

Repository

Bạn nên chọn các repository archive gần với server của mình và chọn các repository được tin tưởng. Bạn cần sử dụng bản chính và bản universe. CÁc bản multiverse, restricted và partner cũng có thể được thêm vào nhưng không cần thiết. Đừng sử dụng backports.

sudo vi /etc/apt/sources.list

Bỏ comment ở những dòng bị comment là universe. Ví dụ:

 out universe. E.g. here are mine for ec2 in Europe:
deb http://eu-west-1.ec2.archive.ubuntu.com/ubuntu/ trusty universe
deb-src http://eu-west-1.ec2.archive.ubuntu.com/ubuntu/ trusty universe
deb http://eu-west-1.ec2.archive.ubuntu.com/ubuntu/ trusty-updates universe
deb-src http://eu-west-1.ec2.archive.ubuntu.com/ubuntu/ trusty-updates universe
deb http://security.ubuntu.com/ubuntu trusty-security universe
deb-src http://security.ubuntu.com/ubuntu trusty-security universe

Chú ý: repository bảo mật nằm ở non-mirrored server

Packages

Bạn cần cài đặt một số packages. Chúng ta sẽ cần cài chúng từng cái mộtmột. Đầu tiên bạn cần kiểm tra xem các package của bạn đã trỏ chính xác vào repositories main multiverse restricted universe của version Ubuntu hiện tại của bạn chưa.

sudo vi /etc/apt/sources.list

Tiếp theo, update hệ thống của bạn:

sudo apt-get update
sudo apt-get upgrade

Kiểm tra status của package

Để kiểm tra package nào bạn đã cài đặt, bạn có thể sử dụng:

sudo dpkg --list | grep postfix

Để tìm package nào có thể sử dụng:

apt-cache search postfix

Configuration

Tiếp theo chúng ta hãy thiết lập simple mail server sử dụng một số packages.

Firewall - Shorewall

Không cần thiết đối với một EC2 image, tuy nhiên nó là cần thiết đối với một server thông thường.

Cài đặt

sudo apt-get install shorewall shorewall-doc
# đối với version ubuntu trước thì hãy sử dụng package `shorewall-common shorewall-perl shorewall-doc`

Amazon cung cấp một firewall để điều khiển truy cập vào server, vì thế không phải lúc nào cũng cần thiết thiết lập, nhưng nếu có thì vẫn hơn. Và đối với các loại server khác thì Firewall là thứ bắt buộc phải có.

Configuration

Đầu tiên, bạn sẽ muốn chỉ allow SSH, sau đó là SMTP và IMAP cho chỉ IP của bạn. Khi bạn tự tin rằng mail server của bạn đủ bảo mật, bạn có thể mở SMTP cho tất cả IP. Nếu thích, bạn cũng có thể mở cả IMAP cho tất cả IP, trừ khi bạn chỉ support một lượng nhỏ các IP client.

Bạn có thể mở web access cho webmail và admin GUI. Lúc này bạn cũng cần giới hạn một số IP cụ thể.

SSH Only

Mặc định, Shorewall trong Ubuntu có thiết lập rỗng. Bạn có thể tìm thấy giá trị mặc định của thiết lập Shorewall trong /usr/share/shorewall/configfiles. Và ví dụ ở trong /usr/share/doc/shorewall/examples. Chúng ta sẽ tạo một setup cơ bản.

Đầu tiên, thiết lập network adapter nào đang sử dụng để truy cập vào internet.

sudo cp /usr/share/doc/shorewall/default-config/interfaces /etc/shorewall/;
sudo vi /etc/shorewall/interfaces
net     eth0            detect          dhcp,tcpflags,logmartians,nosmurfs

Tiếp theo ta config network zones

sudo cp /usr/share/doc/shorewall/default-config/zones /etc/shorewall/;
sudo vi /etc/shorewall/zones

Thêm firewall nếu chưa có và thêm internet như một zone.

fw	firewall
# loc 	ipv4
net     ipv4

Tài liêu tham khảo

http://flurdy.com/docs/postfix/