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à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/