Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 28 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
28
Dung lượng
557,82 KB
Nội dung
LỜI NÓI ĐẦU
Ngày nay thư điện tử là một công cụ giúp việc rất hiệu quả để chuyển tải tâm tư
tình cảm của con người cũng như trong kinh doanh. Ngoài ra tên miền của địa chỉ thư
cũng là một thương hiệu đại diện cho giá trị của một cơ quan, tổ chức hoạt độn cho bất cứ
một lĩnh vực nào. Do vậy nhu cầu xấy dựng một hệ thống thư điện tử cho riêng mình là
rất cần thiết. Nó cho phép các đơn vị có thể tự quản lý hệ thống máy chủ thư điện tử của
chính mình điệu đó đồng nghĩa với việc chủ động trong việc quản trị máy chủ thư điện tử
cũng như đảm bảo an toàn hơn cho thông tin của doanh nghiệp.
Cùng với đó trong những năm gần đây HDH Linux đang ngày càng trở nên phổ
biến trong trường học và môi trường công nghiệp. Hệ Unix này, với chức năng và tính ổn
địnhcho phép nó tồn tại song song với các hệ điều hành thương mại khác. Hơn nữa,
sự phổ biến của mã nguồn Linux trên Internet đã đóng góp rất nhiều cho sự phổ cập của
linux. Điều này là lý do cho nhóm đã chọn đề tài nghiên cứu và phát triển các dịch vụ
mail server trên môi trường Linux.
Chúng em xin chân thành cảm ơn thầy đã nhiệt tinh giúp đỡ chúng em trong suốt
quá trình học tập để chúng em có thể hoàn thành đồ án một cách tốt nhất. Do mới tiếp
cận ngôn ngữ lập trình này nên chương trình còn nhiều thiếu sót, mong thầy giúp đỡ và
góp ý để em có thể hoàn thiện tốt hơn.
Chúng em xin chân thành cảm ơn thầy cô.
MỤC LỤC
DANH SÁCH CÁC HÌNH VẼ
CHƯƠNG 1. GIỚI THIỆU TỔNG QUAN VỀ LINUX
1.1 Giới Thiệu Về Hệ Điều Hành Linux
Linux là hệ điều hành dạng UNIX ( Unix-like Operating System) chạy trên máy PC
với bộ điều khiển trung tâm (CPU) Intel 80386 hoặc cácthế hệ sau đó, hay các bộ vi xử lý
trung tâm tương thích như AMD, Cyrix. Linux ngàyy nay còn có thể chạy trên các máy
Macsintosh hoặc Sun Sparc. linux thoả mãn chuẩn POSIX.1.
Linux được viết lại toàn bộ như con số không, tức là không sử dụng một dòng lệnh
nào của Unix, để tránh vấn đề bản quyền của Linux, tuy nhiên hoạt động của Linux hoàn
toàn dựa trên nguyên tắc của hệ điều hành Unix. Vì vậy một người nắm được Linux thì sẽ
nắm được Unix. Nên chú ý rằng giữa các Unix sự khác nhau cũng không kém gì Unix và
Linux.
Năm 1991 Linus Tovalds, sinh viên của đại học tổng hợp Helsinki (Phần Lan), bắt
đầu xem xét Minix, một phiên bản của Unix, làm ra với mục đích nghiên cứu cách tạo ra
một hệ điều hành Unix chạy trên máy PC với bộ vi xủ lý intel 80368. Ngày 25/8/1991,
Linus cho ra version 0.01 và thông báo trên comp.os.minix của Internet về chương trình
của mình. 1/1992, Linus cho ra version 0.12 với Shell và C compilre. Linus không cần
Minix nữa để biên dịch lại hệ điều hành của mình. Linus đặt tên hệ điều hành
của mình là Linux. Năm 1994 phiên bản chính thức 1.0 được phát hành. Quá trình phát
triển của Linux được tăng tốc bởi sự giúp đỡ của chương trình GNU (GNU’s Not unix)
đó là chương trình phát triển các Unix có khả năng chạy trên nhiều platform. Đến hôm
nay, cuối 2001 phiên bản mới nhất của Linux kernel là 2.4.2-2, có khả năng điều khiển
các máy đa bộ vi xử lý và rất nhiều các tính năng khác.
Nó hổ trợ nhiều phầm mềm:
•
Xử lý văn bản:WYSWYG (What you see what you get ).
•
Ngôn ngữ lập trình: Linux cung cấp một môi trường lập trình đầy đủ bao gồm các
thư viện chuẩn, các công cụ lập trình, trình biên dịch debuggers.
•
X-windows là giao diện người dùng đồ hoạ chuẩn với nhiều ứng dụng (nhiều của
sổ terminal, trên cùng một màn hình với mỗi phiên làm việc riêng ).
•
card mạng phổ biến, ngoài ra nó còn hổ trợ SLIP, PPP để kết nối Internet qua
Modem, NFS, FTP, sendmailm
4
Ngoài ra, còn hổ trợ kết nối chia sẽ file với windowns thông qua Samba và kết nối với
máy chạy Macintosh với các giao thức Apple Talk và Local Talk, cả giao thức IPX và
Novell.
•
Và các ứng dụng khác:Cơ sở dữ liệu quan hệ như Postgres. MySQL, ingress
Mbase… Các ứng +dụng tinh toán khoa học: FEELT, Gnuplet, Octave (gần giống
như Matlab),xspred (bảng tính),.. Các chươnbg trình hổ trợ Media như Cdplaper,
…
•
Các khuyết điểm: thiếu trợ giúp kỹ thhuật, và các vấn đề về phần cứng.
1.2 Kiến Trúc Về Hệ Điều Hành Linux
1.2.1 Hat Nhân (Kernel)
Là trung tâm điều khiển của hệ điều hành Linux chứa các mã nguồn điều khiển hoạt
động toàn bộ của hệ thống. Hạt nhân được phát triển không ngừng, thường có hai phiên
bản mới nhất, một bản để phát triển và một bản ổn định. Kernel thiết kế theo dạng
module, do vậy kích thước thật sự của Kernel rất nhỏ. Chúng chỉ tải được những bộ phận
cần thiết lên bộ nhớ, các bộ phận khác sẽ được tải lên nếu có yêu cầu sử dụng. Do đó
không sử dụng lãng phí bộ nhớ.
Kernel Linux có thể truy xuất tới toàn bộ tính năng phần cứng của máy tính. Ngoài ra,
do yêu cầu của các chương trình cần nhiều bộ nhớ, trong khi hệ thống có ít bộ nhớ, hệ
điều hành sử dụng không gian hoán đổi đĩa (Swap pace) để lưu trữ các dữ liệu xử lý của
chương trình. bên cạnh đó Linux còn hổ trợ các đặc tính sau:
Bảo vệ vùng nhớ giữa các tiến trình, điều này không cho phép một tiến trình làm
tắt toàn bộ hệ thống.
• Chi tải các chương trình khi có yêu cầu.
•
1.2.2 Shell
Shell cung cấp các tập lệnh cho người dùng thao tác với kernel để thực hiện công
việc.Shell đọc các lệnh từ người dùng và xử lý.
Ngoài ra Shell còn cung cấp các đặc tính như: chuyển hướng xuất nhập, ngôn ngữ
lệnh để tạo các file lệnh tương tự như file.bat trong đó.
Có nhiều loại Shell được dùng trong Linux. Điểm quan trọng để phân biệt các shell
với nhau là bộ lệnh của mỗi shell. Ví dụ C shell sử dụng các lệnh tương tự như ngôn ngữ
C, Bourne shell thì dùng ngôn ngữ lệnh khác.
5
Shell sử dụng chính trong Linux là GNU Bourne Again Shell. Shell này là shell phát
triển từ Bourne shell. Là shell sử dụng chính trong hệ thống Unix, với nhiều tính năng
như: điều khiển các tiến trình, các lệnh history, tên file dài …
CHƯƠNG 2. GIỚI THIỆU ĐỀ TÀI
2.1 Mục tiêu và đối tượng
Mục tiêu của báo cáo là hướng dẫn người đọc có thể hiểu kiến trúc và nguyên lý làm
việc của một Mail Server, đồng thời biết cách triển khai một hệ thống Mail hoàn chỉnh
trên môi trường Linux – Với đầy đủ các thành phần như SMTP/POP3/IMAP Server,
AntiVirus, AntiSpam, và Mail Store. Cụ thể ở đây là cài đặt Mail Server với Postfix trên
nền hệ điều hành CentOS.
Tài liệu này cần thiết cho những người mới (newbie) muốn xây dựng một Mail Server
đơn giản trên nền Linux, không những thế tài liệu này còn hỗ trợ cho những
Administrator triển khai nhanh một Mail Server trên Linux.
2.2
Giới Thiệu Cấu Trúc Hệ Thống E-Mail
Cấu trúc và mô hình hoạt động của một hệ thống mail thường có đầy đủ các thành
phần như sau:
6
Hình 2.1 – Kiến Trúc Mail Server
Chức năng của các thành phần như sau:
o
Mail User Agent (MUA): đây là các chương trình gửi và nhận mail được cài đặt trên
máy người dùng, nó giúp người dùng quản lý, soạn thảo, nhận và gửi mail một cách tiện
lợi và nhanh chóng. Các chương trình MUA tiêu biểu là: Outlook (Windows), Evolution
(Linux), ThunderBird va Eudora
o
Mail Transport Agent (MTA)(thường gọi là Mail Transport Agent, Message Transfer
Agent, or SMTP Daemond): Là một dịch vụ trên máy tính có nhiệm vụ chuyển Email từ
máy tính đến một nơi khác (Mail Delivery Agent). Các chương trình cung cấp dịch vụ
MTA tiêu biểu là: Qmail, Sendmail, Postfix (Linux), Edge/Hub Tranpost của MS
Exchange Server (Windows).
o
Mail Delivery Agent (MDA): Là Dịch vụ tiếp nhận các Email và phân phối chúng đến
các hộp thư cá nhân. Các chương trình cung cấp dịch vụ tiêu biểu là: Procmail,
Mail.local, rmail (Linux), Mailbox Server trong MS Exchange (Windows).
o
Mail Submission Agent (MSA): Là chương trình nhận Email từ MUA qua cổng 587
(Bảo mật hơn SMTP cổng 25 vì nó đòi hỏi Authenticate hay các hành động tương tự để
chống spam trong local) và kết hợp với MTA để chuyển Email. Đa số các MTA làm
7
nhiệm vụ MSA luôn (posfix, Sendmail), trên MS Exchange thì MSA do Mailbox role +
Client receive connector (trên Hub transport role) đảm nhiệm.
o
Mail Access Agent/ Mail Retrieval Agent (MAA/MRA): MRA là chương trình tìm về
hoặc lấy Email về từ remote Mail server, và kết hợp với MDA để phân phối mail về local
hoặc remote mailbox. MAA là dịch vụ cung cấp để truy cập đến tìm kiếm và lấy email
về. Các chương trình tiêu biểu: IMAP, POP3 Server, dovecot (Linux), Client Access
Server trên MS Exchange (Windows). MRA bây giờ thường do các MUA đảm nhiệm đó
chính là các POP3, IMAP Client.
2.3
Mô Hình Mail Server Với Postfix.
Báo cáo hướng dẫn cho người đọc có thể dễ dàng xây dựng một mail server hoạt động
ổn định và chi phí thấp, cho doanh nghiệp vừa và nhỏ, dựa trên nền Linux.
Hình 2.2 – Kiến trúc Mail Server sẽ triển khai
2.3.1 Lý Do Chọn Đề Tài.
Có rất nhiều hãng trên thế giới cung cấp các giải pháp trọn gói cho hệ thống mail cho
các doanh nghiệp vừa và nhỏ như IBM, Microsoft, TrenMicro, Cisco … Với đầy đủ các
thành phần chuyên dụng như: Mail Server, AntiSpam, AntiVirus … Ngoài ra còn có các
8
hãng cung cấp các phần mềm và giải pháp Mail Server cho các doanh nghiệp khác,
nhưng chủ yếu chạy trên nền Linux hoặc Windows.
Các giải pháp với thiết bị chuyên dụng: Được cung cấp bởi các hãng như IBM, Cissco
…
• Ưu điểm: Thiết bị đồng bộ, hoạt động ổn định, tính chịu lỗi cao, dễ dàng nâng cấp và mở
rộng, độ bảo mật cao, dễ dàng quản trị hệ thống, Được hỗ trợ kỹ thuật trực tiếp từ nhà
cung cấp.
• Nhược điểm: Giá thành cao
-
Các giải pháp trên nền Windows: Được Microsoft cung cấp với hệ thống Phần cứng
chuyên dụng hoặc phần mềm.
• Ưu điểm: Dễ dàng quản trị và triển khai, hoạt động ổn định, độ bảo mật cao, dễ dàng
nâng cấp và mở rộng, hỗ trợ kỹ thuật trực tiếp từ nhà sản xuất.
• Nhược điểm: Giá thành tương đối, yêu cầu về tài nguyên phần cứng cao (đối với phần
mềm).
-
Các giải pháp trên nền Linux – Unix: Được một vài công ty phân phối hoặc tổ chức
phát triển.
• Ưu điểm: Hoạt động ổn định, có khả năng chịu lỗi tốt, yêu cầu tài nguyên phần cứng
thấp, độ bảo mật cao, miễn phí, được trợ giúp từ cộng đồng sử dụng.
• Nhược điểm: Khó quản trị và triển khai, nâng cấp và mở rộng tương đối phức tạp.
-
Do đó, các hệ thống Linux rất phù hợp với các doanh nghiệp vừa và nhỏ (thậm chí là
các doanh nghiệp cỡ lớn nếu admin có khả năng xây dựng và quản trị). Chọn triển khai
Postfix vì đây là một trong những hệ thống mail phổ biến chạy trên nền Linux, và
CentOS cũng là một trong những Distro Linux khá phổ biến và hoạt động tương đối ổn
định. Và cũng có khá nhiều doanh nghiệp triển khai theo mô hình này.
2.3.2 Giới Thiệu Các Thành Phần.
a, Giới Thiệu Postfix.
Postfix là một MTA đượ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. Ngày nay postfix là một trong nhưng MTA khá phổ biến trên các mail server.
b, Giới Thiệu Dovecot.
9
Dovecot là một MAA cung cấp các dịch vụ IMAP và POP3 được cài phổ biến trên
các CentOS, Nó là một phần mềm mã nguồn mở được Timo Sirainen viết và phát triển.
Đặc điểm của Dovecot là: bảo mật, nhanh và dễ quản lý.
c, Giới Thiệu SquirrelMail.
SquirrelMail là một trong những Web mail phổ biến nhất trên các Mail Server, nó hỗ
trợ cả các giao thức IMAP/POP3 và SMTP, được viết bằng PHP4 và là một phần mềm
mã nguồn mở, nó giúp người dùng có thể đọc và quản lý e-mail của mình trong môi
trường Web.
2.3.3 Yêu Cầu Hệ Thống.
Với các hệ thống Linux yêu cầu về phần cứng rất bình thường, một server với cấu
hình trung bình vẫn có thể cài đặt và chạy ổn định.
Về phần các phần mềm trên hệ thống:
•
•
•
•
•
•
•
2.4
Hệ Điều Hành: CentOS 5.3 Chạy dạng command Line hay đồ họa đều được (chế
độ Command Line thì tốn ít ổ cứng, và chạy tốn ít RAM và CPU hơn).
SMTP Server: Postfix 2.3.3
POP3/IMAP Server: 1.0.7
Web Mail: SquirrelMail 1.4.8
Web Server: Apache 2.2.3 Cần thiết để cho User có thể dùng web mail.
AntiSpam: SpamAssassin 3.2.5
AntiVirus: ClamAV 0.95.2, Amavisd-new 2.6.4
Vấn đề Bảo Mật Cho Hệ Thống E-Mail.
Ngày nay vấn đề Virus và spam vẫn là những nguy cơ đe dọa đến sự vận hành ổn
định của hệ thống, đồng thời nguy cơ mất mát hoặc bị đánh cắp dữ liệu là rất cao, điều
này ảnh hưởng trực tiếp đến lợi ích của người dùng và doanh nghiệp. Vì thế khi triển khai
xây dựng hệ thống mail cho doanh nghiệp cần phải tính tới các vấn đề về bảo mật chống
Spam và Virus.
2.4.1 AntiSpam
a, Giới thiệu DNS-Base Blocklists.
UCE (unsolicited commercial email), hay spam, thường được gửi từ những mail
server có vài đặc điểm nhất định. Ví dụ, từ những server có cấu hình không hoàn chỉnh
(open relay, không tuân thủ tiêu chuẩn RFC), những server không có thông tin rõ ràng về
người quản trị (máy kết nối bằng dial-up, máy không có reverse DNS), hay từ những
10
server chuyên gửi spam. Người ta đã lập được danh sách những mail server như vậy,
danh sách này được update thường xuyên, gọi chung là RBL (real-time blackhole list),
hay DNSBL (DNS-based Blocklist). Ưu điểm của phương pháp này là kiểm tra nhanh ít
hao tốn tài nguyên của server vì bước kiểm tra được thực hiện trước khi gửi mail và việc
kiểm tra chỉ dựa vào kết quả tìm kiếm của DNS.
b, Giới thiệu SpamAsssassin.
SpamAssassin phát hiện và đánh dấu spam mail bằng cách phân tích thông tin trong
header và nội dung mail. SpamAssassin tiêu tốn khá nhiều tài nguyên (cpu, memory, thời
gian xử lý) của server, đặc biệt khi phải xử lý những mail có size lớn. Ưu điểm của việc
dùng SpamAssassin là ít thay đổi cấu hình mặc định của postfix và có thể xây dựng quy
tắc kiểm tra spam cho riêng mình.
SpamAssassin là một project được phát triển bởi Apache, SpamAssassin được ứng
dụng khá nhiều trên các mail server dùng nền Linux.
2.4.2 AntiVirus.
Dùng để chống việc lây lan Virus trong thông qua hệ thống mail, đồng thời hạn chế
sự lây lan của Virus khi một máy nào đó trong mạng bị nhiễm. Có hai chương trình
antivirus phổ biến dùng trên mail server đó là ClamAV và Amavisd-new.
a, Giới thiệu ClamAV.
ClamAV là một antivirus mã nguồn mở chạy trên hệ thống Linux, nó đặc biệt được
thiết kế cho việc quét virus trên mail gateways, nó uyển chuyển dễ cấu hình, và chạy đa
luồng dịch vụ. Đặc điểm là hoạt động ổn định, nhanh, và tương đối hiệu quả.
b, Giới thiệu Amavisd-new.
Amavisd-new là một giao tiếp hiệu năng cao, hoạt động giữa MTA và các thành phần
kiểm tra nội dung như: Virus scanners, và SpamAssassin. Đặc điểm của Amavisd-new là
hoạt động nhanh phối hợp các thành phần trong hệ thống mail.
11
CHƯƠNG 3. TRIỂN KHAI & CÀI ĐẶT
Có hai hình thức cài đặt đó là từ Source và cài đặt tập tin từ binary. Thông thường để
bảo mật và tối ưu hóa khi cài đặt và để cập nhật phiên bản mới nhất ta nên cài từ source,
nhưng nó đòi hỏi người quản trị phải nắm rõ cách biên dịch và cài đặt, đồng thời hiểu rõ
chương trình cần cài đặt và nhu cầu của hệ thống. Ở đây hướng dẫn cài đặt từ binary (gói
rpm) cho đơn giản.
Source Postfix có thể tải tại đây: ftp://ftp4.tnc.edu.tw/pub1/Postfix/official/postfix
2.6.3.tar.gz
Tải Source Dovecot tại đây http://www.dovecot.org/releases/1.2/dovecot-1.2.3.tar.gz
Tải Source SquirrelMail tại http://squirrelmail.org/countdl.php?fileurl=http%3A%2F
%2Fprdownloads.sourceforge.net%2Fsquirrelmail%2Fsquirrelmail-1.4.20-RC2.tar.gz
Tải Source ClamAV tại http://downloads.sourceforge.net/clamav/clamav-0.95.2.tar.gz.
Tải Source Amavisd-new tại http://www.ijs.si/software/amavisd/amavisd-new2.6.4.tar.gz.
3.1
Cài Đặt Postfix và Dovecot
3.1.1 Cài Đặt và Cấu Hình Postfix
Cài đặt từ gói rpm ta dùng lệnh yum:
[root@localhost ~]# yum install postfix
Nếu cài đặt postfix sử dụng MySQL làm mail store thì dùng lệnh:
12
[root@localhost ~]# yum --enablerepo=centosplus install postfix mysql-server
Những file cấu hình của Postfix nằm trong thư mục /etc/postfix. Để cấu hình một mail
server cơ bản, chỉ cần vài thay đổi nhỏ trong những file sau đây
/etc/postfix/main.cf: cấu hình cơ bản
Chỉnh sửa tại các dòng sau:
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
home_mailbox = Maildir/
Dạng lưu trữ Maildir tốt hơn so với dạng lưu trữ Mailbox, tuy nhiên tùy vào nhu cầu cụ
thể mà chọn kiểu lưu trữ cho thích hợp.
// chỉ tạo hộp thư cho một user nào đó
$ mkdir $HOME/Maildir
$ mkdir $HOME/Maildir/cur
$ mkdir $HOME/Maildir/new
$ mkdir $HOME/Maildir/tmp
$ chmod -R 700 $HOME/Maildir
// tạo hộp thư cho tất cả user (mỗi user sẽ có hộp thư riêng khi tạo user mới)
$ su # mkdir /etc/skel/Maildir
# mkdir /etc/skel/Maildir/cur
# mkdir /etc/skel/Maildir/new
# mkdir /etc/skel/Maildir/tmp
# chmod -R 700 /etc/skel/Maildir
Tiến hành khởi động lại postfix
[root@localhost ~]# service postfix restart
Shutting down postfix:
[ OK ]
Starting postfix:
[ OK ]
[root@localhost ~]#
Bây giờ có thể dùng postfix được rồi. Kiểm tra postfix đã hoạt động tốt chưa bằng cách
kết nối thử đến cổng 25.
13
[root@localhost ~]# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
220 localhost.localdomain ESMTP Postfix
helo host
250 localhost.localdomain
quit
221 2.0.0 Bye
Connection closed by foreign host.
Nếu có lỗi phát sinh ta kiểm tra log tại /var/log/mailog.
3.1.2 Cài Đặt và Cấu Hình Dovecot
Cài đặt từ gói rpm ta dùng lệnh:
[root@localhost ~]# yum install dovecot
/etc/dovecot.conf file cấu hình cơ bản.
Chỉnh sửa file dovecot:
[root@localhost ~]# vi /etc/dovecot.conf
Tìm và sửa các dòng sau:
protocols = pop3 pop3s imap imaps
mail_location = maildir:~/Maildir/
pop3_uidl_format = %08Xu%08Xv
imap_client_workarounds = delay-newmail outlook-idle netscape-eoh
pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
Tiến hành khởi động lại dovecot:
[root@localhost ~]# service dovecot restart
Stopping Dovecot Imap:
14
[ OK ]
Starting Dovecot Imap:
[root@localhost ~]#
[ OK ]
Kiểm tra lại dovecot đã hoạt động tốt chưa bằng cách kết nối đến cổng 110
[root@localhost ~]# telnet localhost 110
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
+OK Dovecot ready.
quit
+OK Logging out
Connection closed by foreign host.
Chúng ta đã cài hoàn tất Postfix + Dovecot giờ tiến hành cài đặt webmail với
SquirrelMail.
3.1.3
Khắc phục lỗi firewall
Centos đang được mở và nó kiểm soát chặt chẽ các lệnh thao tác với dovecot và postfix.
bạn cần kiểm tra và tắt 2 cơ chế firewall này đi bằng các lệnh sau:
# service iptables status
# service iptables stop
# vi /etc/sysconfig/selinux và gõ vào 2 dòng dưới đây:
SELINUX=disable
SELINUXTYPE=targeted
3.1.4
Gửi thử email từ localhost bằng lệnh telnet
Để gửi mail test chúng ta dùng lệnh telnet cổng 25 và user root sẵn có của Centost. Lệnh
này sẽ tạo một email và gửi qua dịch vụ của postfix, cổng 25. Các bước thực hiện như
trong hình vẽ bên dưới
15
Giải thích các lệnh trong telnet port 25
- helo khoat là chuỗi khởi đầu để mailserver thiết lập phiên giao dịch
- mail from: .... là xác định account của người gửi, tạm thời dùng account root
- rcpt to: ... để xác định địa chỉ mail người nhận
- data ....... là bắt đầu nội dung email
- Enter, sau đó gõ dấu . là để các định kết thúc của nội dung mail và bắt đầu gửi thư đi
- quit, là để thoát khỏi telnet port 25.
Giờ chúng ta dùng các lệnh sau để kiểm tra email có đến hòm thư hay không
16
Giải thích:
- lệnh user user2 là lệnh đăng nhập vào hòm thư với user user2.
- lệnh pass 123456 là lệnh cung cấp password để kiểm tra password là 123456
- lệnh list để kiểm tra xem có bao nhiêu email trong inbox, trong hình ảnh ví dụ, có 2 email.
- lệnh retr 2 là đọc email số 2, sau lệnh này nội dung email sẽ được list ra, tuy nhiên trong hình
bạn không thấy nội dung mail vì tôi đã cắt đi.
- khi đọc xong mail chúng ta gõ lệnh quit để ra khỏi dovecot.
3.2
Cài Đặt Webmail Với SquirrelMail.
17
Lưu ý: Trước tiên cần phải cài đặt web server và imap server và php.
Cài đặt SquirrelmMail:
[root@localhost ~]# yum install squirrelmail
Cấu hình cho SquirrelMail.
[root@localhost ~]#/usr/share/squirrelmail/config/conf.pl
Sẽ thấy như sau:
SquirrelMail Configuration : Read: config.php (1.4.0)
--------------------------------------------------------Main Menu -1. Organization Preferences
2. Server Settings
3. Folder Defaults
4. General Options
5. Themes
6. Address Books
7. Message of the Day (MOTD)
8. Plugins
9. Database
10. Languages
D. Set pre-defined settings for specific IMAP servers
C Turn color off
S Save data
Q Quit
Command >>
18
Chọn menu thích hợp và cung cấp những thông tin cần thiết. Quan trọng nhất ở bước này
là "2. Server Settings", phần IMAP server. Sau khi chỉnh sửa xong, chọn "S Save data"
(lưu giữ cấu hình) và "Q Quit" (thoát). Cấu hình sẽ được ghi lại trong file
"/etc/squirrelmail/config.php". Phần “2. Server Sttings” như sau:
SquirrelMail Configuration : Read: config.php (1.4.0)
--------------------------------------------------------Server Settings
General
------1. Domain
: localhost
2. Invert Time
: false
3. Sendmail or SMTP
: Sendmail
A. Update IMAP Settings : localhost:143 (uw)
B. Change Sendmail Config : /usr/sbin/sendmail
R
C
S
Q
Return to Main Menu
Turn color off
Save data
Quit
Command >>
Kiểm tra lại lần cuối
[root@localhost ~]# vi /etc/squirrelmail/config.php
Phần chính của file /etc/squirrelmail/config.php thường có cấu trúc như sau:
###-------------------------------------------------------------$org_name = "My Webmail Service";
19
$squirrelmail_default_language = 'en_US';
$domain = 'real.domain.name';
$imapServerAddress = 'localhost';
$imapPort = 143;
$useSendmail = true;
$smtpServerAddress = 'localhost';
$smtpPort = 25;
$sendmail_path = '/usr/sbin/sendmail';
// trườngng hợp IMAP server là courier-imap
$imap_server_type = 'courier';
$default_folder_prefix = 'INBOX.';
$trash_folder = 'Trash';
$sent_folder = 'Sent';
$draft_folder = 'Drafts';
###------------------------------------------------------Chạy SquirrelMail bằng cách gõ http://localhost/webmai.
3.3
Cài Đặt Bộ Lọc Spam.
3.3.1 Lọc Spam Dùng DNS-Base Blocklists (DNSBL, RBL).
Ghi thêm vào file main.cf (/etc/postfix/main.cf) những dòng sau:
smtpd_client_restrictions = permit_mynetworks, reject_rbl_client list.dsbl.org,
reject_rbl_client relays.ordb.org, reject_rbl_client sbl-xbl.spamhaus.org
smtpd_recipient_restrictions = permit_mynetworks, reject_rbl_client list.dsbl.org,
reject_rbl_client relays.ordb.org, reject_rbl_client sbl-xbl.spamhaus.org
Reload postfix.
[root@localhost ~]# postfix reload
postfix/postfix-script: refreshing the Postfix mail system
20
[root@localhost ~]#
Nói thêm về cách block spam bằng cách kiểm tra trước khi email thực sự được gửi đi.
Không liên quan đến RBL, tuy nhiên có những đặc điểm giống cách lọc spam bằng RBL:
chỉ kiểm tra header, dựa vào DNS. Chèn thêm các dòng sau vào file main.cf
(/etc/postfix/main.cf):
Yêu cầu client phải gửi lệnh HELO (EHLO)
smtpd_helo_required = yes
smtpd_helo_restrictions = permit_mynetworks, reject_invalid_hostname
Từ chối relay (Reject) nếu không tìm thấy A, MX record
smtpd_sender_restrictions = reject_unknown_sender_domain
Từ chối relay từ một số địa chỉ IP nhất định (vì nhiễm virus?)
# ví dụ 192.168.1.100, 172.16.1.0/24
smtpd_client_restrictions = permit_mynetworks, check_client_access
hash:/etc/postfix/reject_client
Nội dung file /etc/postfix/reject_client
192.168.1.100 REJECT
172.16.1 REJECT
Tạo database /etc/postfix/reject_client.db bằng lệnh sau
/usr/sbin/postmap /etc/postfix/reject_client
Từ chối relay từ một số người nhất định (spammer)
# ví dụ spammer@domain1.name, *@domain2.name
smtpd_sender_restrictions = reject_unknown_sender_domain, reject_non_fqdn_sender,
hash:/etc/postfix/reject_sender
21
File /etc/postfix/reject_sender có nội dung như sau:
spammer@domain1.name REJECT
domain2.name REJECT
Tạo database /etc/postfix/reject_sender.db
/usr/sbin/postmap /etc/postfix/reject_sender
Sau khi thêm các dòng cần thiết vào ta phải reload postfix.
3.3.2 Lọc Spam Dùng SpamAssassin.
Cài đặt procmail và SpamAssassin:
[root@localhost ~]# yum install procmail
[root@localhost ~]# yum install spamassassin
Sửa file main.cf (/etc/postfix/main.cf) để procmail xử lý mail. Tìm và uncomment (bỏ
dấu thăng (#)) dòng sau:
mailbox_command = /some/where/procmail
Sửa dòng trên lại thành:
mailbox_command = /usr/bin/procmail
Tiếp đến tạo một file /etc/procmailrc như sau:
MAILDIR=$HOME
DEFAULT=$MAILDIR/Maildir/
DROPPRIVS=yes
# spam thường có size nhỏ hơn 10 KiB (10*1024=10240 bytes),
# Ấn định kích thước mail cần kiểm tra
22
:0fw
* < 10240
| /usr/bin/spamc
Lập các qui tắc kiểm tra mail cho SpamAssassin, File local.cf
(/etc/mail/spamassassin/local.cf) ghi quy tắc chung cho mọi user.
# Ngôn ngữ trong mail thường sử dụng tiếng anh và tiếng viêt
ok_locales vi en
# These should be safe assumptions and allow for simple visual sifting
# without risking lost emails.
required_hits 5
report_safe 0
rewrite_header Subject [SPAM]
# Những mail quan trọng không đánh dấu là spam
whitelist_from longnh@uitnetwork.com
whitelist_from *@fpt.com.vn
Khởi động SpamAssassin
[root@localhost ~]# service spamassassin start
3.4
Cài Đặt AntiVirus.
3.4.1 Cài Đặt ClamAV.
Để cài ClamAV từ bằng lệnh yum ta phải cài yum-priorities và rpmforge
[root@localhost ~]# yum install yum-priorities
[root@localhost ~]# rpm -Uhv
http://apt.sw.be/redhat/el5/en/i386/RPMS.dag/rpmforge-release-0.3.61.el5.rf.i386.rpm
23
Kiểm tra phiên bản mới.
[root@localhost ~]# yum check-update
Cài đặt ClamAV.
[root@localhost ~]# yum install clamav clamd
File /etc/freshclam.conf (tự động cập nhật thông tin virus), File /etc/clamav.conf
(chương trình chính). Thường thì khi cài từ binary thì ta để các file này mặc định.
Khởi động ClamAV
[root@localhost ~]# service clamd start
Để kiểm tra xem ClamAV ta có thể chạy lệnh:
[root@localhost ~]# clamscan
Để Update database cho ClamAV ta dùng lệnh:
[root@localhost ~]# freshclam
24
CHƯƠNG 4. KẾT LUẬN
4.1
Kết Quả Đạt Được.
Đã xây dựng được một Mail Server với đầy đủ chức năng gửi nhận mail dùng giao
thức POP3/IMAP – SMTP, có các chức năng lọc Spam và Virus, ở mức cơ bản. Đồng
thời cho phép người dùng có thể nhận gửi mail trực tiếp trên môi trường web (Web
Mail). Chưa có các thành phần xác thực người dùng, tất cả các thành phần đều chạy trên
một server nên độ bảo mật không cao, khi một thành phần bị lỗi có thể ảnh hưởng đến
toàn bộ hệ thống.
4.2
Hướng Phát Triển.
Một hệ thống mail của doanh nghiệp thường có mô hình như sau:
25
Hình 4.1 – Mô hình Front-End/Back-End
Xây dựng một Mail Gateways với Postfix và tiến hành lọc Spam và Virus trước
khi chuyển tiếp mail vào trong Mail Store, đồng thời có thể tiến hành lọc Spam và Virus
khi người dùng gửi mail vào trong hệ thống. Sơ đồ lọc Mail tại Mail Gateways.
26
Hình 4.2 – Sơ đồ hệ thống lọc Mail
Xác thực người dùng khi người dùng đăng nhập vào hệ thống để check mail. Xây
dựng hệ thống quản lý mail tập trung cho người dùng với LDAP hoặc lưu trữ mail trên hệ
thống cơ sở dữ liệu MySQL.
Hình 4.3 - Mô hình xác thực khi truy cập vào Mail Server
Dùng giao thức HTTPS thay cho HTTP khi người dùng quản lý mail bằng giao
diện web.
27
Kiện toàn bảo mật cho các thành phần trên mail server: Chỉ cài đặt những modules
cần thiết và tối thiểu để tránh tình trạng lỗi xuất hiện trên những modules ko dùng đến
gây nguy hại đến server. Trên linux dùng chroot để ấn định các thành phần của Mail
Server (Postfix, Dovecot, Apache … ) hoạt động chạy trên khu vực quy đinh sắn (khái
niệm này đôi khi gọi là “Jail” ), để dễ dàng kiểm soát và giới hạn quyền truy cập của ứng
dụng đó, nếu lỗi phát sinh tại ứng dụng đó thì Hacker chỉ có thể truy cập đến các thành
phần được ấn định sẵn cho ứng dụng đó nên không gây nguy hại đến các thành phần khác
hoặc cả server.
28
[...]... Mail Xác thực người dùng khi người dùng đăng nhập vào hệ thống để check mail Xây dựng hệ thống quản lý mail tập trung cho người dùng với LDAP hoặc lưu trữ mail trên hệ thống cơ sở dữ liệu MySQL Hình 4.3 - Mô hình xác thực khi truy cập vào Mail Server Dùng giao thức HTTPS thay cho HTTP khi người dùng quản lý mail bằng giao diện web 27 Kiện toàn bảo mật cho các thành phần trên mail server: Chỉ cài đặt... SpamAsssassin SpamAssassin phát hiện và đánh dấu spam mail bằng cách phân tích thông tin trong header và nội dung mail SpamAssassin tiêu tốn khá nhiều tài nguyên (cpu, memory, thời gian xử lý) của server, đặc biệt khi phải xử lý những mail có size lớn Ưu điểm của việc dùng SpamAssassin là ít thay đổi cấu hình mặc định của postfix và có thể xây dựng quy tắc kiểm tra spam cho riêng mình SpamAssassin là một... Lọc Spam Dùng SpamAssassin Cài đặt procmail và SpamAssassin: [root@localhost ~]# yum install procmail [root@localhost ~]# yum install spamassassin Sửa file main.cf (/etc/postfix/main.cf) để procmail xử lý mail Tìm và uncomment (bỏ dấu thăng (#)) dòng sau: mailbox_command = /some/where/procmail Sửa dòng trên lại thành: mailbox_command = /usr/bin/procmail Tiếp đến tạo một file /etc/procmailrc như sau:... ĐẶT Có hai hình thức cài đặt đó là từ Source và cài đặt tập tin từ binary Thông thường để bảo mật và tối ưu hóa khi cài đặt và để cập nhật phiên bản mới nhất ta nên cài từ source, nhưng nó đòi hỏi người quản trị phải nắm rõ cách biên dịch và cài đặt, đồng thời hiểu rõ chương trình cần cài đặt và nhu cầu của hệ thống Ở đây hướng dẫn cài đặt từ binary (gói rpm) cho đơn giản Source Postfix có thể tải tại ... việc Mail Server, đồng thời biết cách triển khai hệ thống Mail hoàn chỉnh môi trường Linux – Với đầy đủ thành phần SMTP/POP3/IMAP Server, AntiVirus, AntiSpam, Mail Store Cụ thể cài đặt Mail Server. .. http://www.ijs.si/software/amavisd/amavisd-new2.6.4.tar.gz 3.1 Cài Đặt Postfix Dovecot 3.1.1 Cài Đặt Cấu Hình Postfix Cài đặt từ gói rpm ta dùng lệnh yum: [root@localhost ~]# yum install postfix Nếu cài đặt postfix sử dụng MySQL làm mail store... Mail Server với Postfix hệ điều hành CentOS Tài liệu cần thiết cho người (newbie) muốn xây dựng Mail Server đơn giản Linux, tài liệu hỗ trợ cho Administrator triển khai nhanh Mail Server Linux 2.2