Nội dung chính của đồ án này là phải xây dựng Mail Server với các chức năng sau: Cho phép người dùng gửi và nhận mail trực tiếp thông qua Internet với tênmiền của trung tâm.. Làm báo
Trang 1KHOA CÔNG NGHỆ THÔNG TIN
Tel (84-511) 736 949, Fax (84-511) 842 771Website: itf.ud.edu.vn, Mail: cntt@edu.ud.vn
LUẬN VĂN TỐT NGHIỆP KỸ SƯ
NGÀNH CÔNG NGHỆ THÔNG TIN
MÃ NGÀNH: 05115
ĐỀ TÀI:
TRIỂN KHAI MAIL SERVER CHO TRƯỜNG TÂN GROUP
Mã số: 06T-025 06T-035 Ngày bảo vệ: 15-16/06/2011
SINH VIÊN: NGUYỄN THỊ THANH LY NGUYỄN THÀNH TÂM LỚP : 06T1
CBHD : PGS.TS VÕ TRUNG HÙNG
ĐÀ NẴNG, 06/2011
Trang 2Chúng em xin chân thành cảm ơn thầy giáo PGS.TS Võ Trung Hùng đã tận tình hướng dẫn và giúp đỡ chúng em hoàn thành đồ án này.
Ngoài ra, cũng xin gởi lời cám ơn tới anh Nguyễn Duy Hải giảng viên của Trường Tân Group đã hướng dẫn và tạo điều kiện để chúng em hoàn thành đồ án.
Chúng em rất mong nhận được sự góp ý của các thầy giáo, cô giáo cũng như của bạn bè và những người có quan tâm đến lĩnh vực mà cuốn đồ
án này đã được trình bày.
Sinh viên Nguyễn Thị Thanh Ly Nguyễn Thành Tâm
Trang 3Em xin cam đoan:
1 Những nội dung trong luận văn này là do em thực hiện dưới sự hướng dẫn trực tiếp của thầy PGS.TS Võ Trung Hùng và Giảng viên của Trường Tân Group anh Nguyễn Duy Hải.
2 Mọi tham khảo dùng trong luận văn đều được trích dẫn rõ ràng tên tác giả, tên công trình, thời gian, địa điểm công bố.
3 Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá,
em xin chịu hoàn toàn trách nhiệm.
Sinh viên Nguyễn Thị Thanh Ly Nguyễn Thành Tâm
Trang 4NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
Đà Nẵng, ngày tháng năm 2011 Giáo viên hướng dẫn
Trang 5………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
Đà Nẵng, ngày tháng năm 2011 Giáo viên phản biện
Trang 6Mục lục
MỤC LỤC
MỞ ĐẦU
CHƯƠNG I:
TỔNG QUAN VỀ MAIL SERVER 10
I Các khái niệm cơ bản 10
I.1 Email là gì? 10
I.2 Địa chỉ E-mail 10
I.3 Email client (trình duyệt thư) 11
I.4 Hoạt động của một Mail Server đơn giản 11
I.5 Lợi ích của việc sử dụng Mail 12
II Giới thiệu về hệ thống Mail Server 13
II.1 Hệ thống email ngày nay 13
II.2 Cấu trúc của hệ thống Mail Server 17
III Các giao thức truyền nhận mail 18
III.1 Giao thức SMTP 18
III.2 Giao thức POP3 25
III.3 Giao thức IMAP4 (RFC2060, RFC2193…) 29
I Giới thiệu về Trường Tân Group 37
I.1 Quá trình hình thành và phát triển 37
I.2 Các đối tác hiện nay của TTG training center 40
I.3 Trụ sở TRUONG TAN Group Training Center 40
I.4 Chứng chỉ đào tạo của Truong Tan Group Training Center 41
II Khảo sát và đặc tả nhu cầu 42
II.1 Khảo sát 42
II.2 Đặc tả yêu cầu 44
III Phân tích và thiết kế hệ thống 46
III.1 Phân tích hiện trạng: 46
III.2 Phân tích hệ thống 47
IV Đưa ra giải pháp 48
IV.1 Mail Server 48
IV.2 Mail Client 50
I Cài đặt và cấu hình MAIL SERVER 51
I.1 Cài đặt 51
I.2 Cấu hình theo các dịch vụ 51
II Xây dựng chương trình gửi và nhận Mail 89
Trang 7phương tiện liên lạc không thể thiếu đối với mọi người, nhất là đối với các doanh nghiệp.Chính vì nhu cầu đó việc xây dựng một Mail Server là hết sức cần thiết để trang bị chomỗi thành viên của công ty một Account Mail riêng dùng để gởi và nhận mail với bênngoài Tạo thuận lợi cho công tác quản lý cũng như là bảo vệ tư liệu mật thiết của công
ty E-Mail ngoài công dụng trao đổi thư tín, nó còn là hình thức quảng bá và khẳng địnhhình ảnh thương hiệu của doanh nghiệp, tổ chức
Sau hai tháng thực tập tại Truong Tan Group Training Center, chúng em được tìmhiểu về hệ thống mạng của trung tâm Được tìm hiểu về các giao thức SMTP, POP3,IMAP, TCP/IP…Và triển khai các dịch vụ (SSTP/AD Right Managemant) cũng như triểnkhai hệ thống mạng cho các doanh nghiệp
Dựa vào các kiến thức đã học tại trường và thực nghiệm trong quá trình thực tập tạiTrường Tân Group Chúng em quyết định chọn đề tài “TRIỂN KHAI MAIL SERVER CHO TRƯỜNG TÂN GROUP” để thực hiện đồ án tốt nghiệp với mong muốn tối ưuhóa hệ thống mạng doanh nghiệp
Việc triển khai Mail Server cho TTG có ý nghĩa quan trọng:
Giúp học viên liên lạc với Giảng viên trao đổi bài vở, gửi/nhận bài giảng
Trao đổi thông tin giữa các bộ phận trong công ty
Bảo mật được thông tin nội bộ
Xây dựng môi trường làm việc chuyên nghiệp
Nội dung chính của đồ án này là phải xây dựng Mail Server với các chức năng sau:
Cho phép người dùng gửi và nhận mail trực tiếp thông qua Internet với tênmiền của trung tâm
Khả năng hạn chế được Mail spam và Virus trước khi chuyển tiếp tới ngườinhận
Người dùng có thể gửi và nhận mail thông qua Mail Client và Web mail
Người dùng có thể nhận và gửi mail bình thường khi đi công tác xa và ngườiquản trị mạng có thể quản trị hệ thống Mail Server của công ty thông quaInternet
Hệ thống mail phải có tính bảo mật
Thiết lập dung lượng tối đa cho từng mail
Quản lý được nội dung mail của người dùng
Tự động sao lưu dữ liệu
Thực hiện đồ án theo tiến trình sau:
Khảo sát mô hình, cơ sở hạ tầng của doanh nghiệp
Đưa ra mô hình tổng quan cho cơ sở hạ tầng đã khảo sát
Trang 8 Nghiên cứu các lý thuyết liên quan : Hệ điều hành Windows Server 2003, cácgiao thức gửi nhận mail (SMTP, POP3, IMAP…), cơ chế hoạt động của MailServer.
Khảo sát hệ thống Mail Server đang được triển khai tại Trường Tân
Triển khai và cài đặt
Kiểm tra và đề ra giải pháp khắc phục sự cố (nếu có)
So sánh đánh giá kết quả mình đã thực hiện
Làm báo cáo đồ án theo bố cục như sau
Chương I : TỔNG QUAN VỀ MAIL SERVER
Chương II : THIẾT KẾ HỆ THỐNG MAIL SERVER
Chương III: TRIỂN KHAI ỨNG DỤNG
Để hiểu rõ hơn hoạt động bên trong của ứng dụng Mail ở phần cung cấp dịch vụ màthường được gọi là Mail Server, cuốn đồ án này sẽ trình bày, kiến trúc và nguyên lý làmviệ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ỉnhtrên môi trường Windows – 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 trên nền hệ điềuhành Windows Server 2003
Trang 9I Các khái niệm cơ bản
Hằng ngày, có hàng tỉ “bức thư điện tử” được gửi qua Internet Nếu bạn làm việc ởtrên mạng Internet nhiều, có thể bạn sẽ gửi và nhận hàng tá email hoặc hơn nữa mà bạnkhông nhớ Thực tế email đã trở thành một công cụ liên lạc vô cùng hữu hiệu trong cuộcsống hiện đại của chúng ta
I.1 Email là gì?
E-Mail - Electronic mail hay còn gọi là thư điện tử là cách gọi phổ thông của cách
thức giao tiếp, liên lạc của hệ thống xây dựng dựa trên những chiếc máy tính Tại mộtthời điểm cách đây khá lâu, thuật ngữ máy tính được dùng để ám chỉ những cỗ máy làmviệc với kích thước khổng lồ, người dùng phải áp dụng phương pháp dial-up để truy cập,
và mỗi chiếc máy tính đều được trang bị bộ nhớ và thiết bị lưu trữ dành cho nhiều tàikhoản Sau đó không lâu, những nhà phát minh đã tìm cách để các bộ máy này “giao tiếp”với nhau Ứng dụng đầu tiên ra đời, nhưng họ chỉ gửi được tin nhắn đến các người sửdụng khác trong cùng 1 hệ thống cho tới tận năm 1971 Và thời gian qua đi, công nghệ đã
được phát triển lên 1 tầm cao mới khi Ray Tomlinson trở thành người đầu tiên trên toàn
thế giới gửi được bức thư điện tử tới người khác sử dụng ký hiệu @
Mail là một phương tiện thông tin rất nhanh Một mẫu thông tin (thư từ) có thể đượcgửi đi ở dạng mã hoá hay dạng thông thường và được chuyển qua các mạng máy tính đặcbiệt là mạng Internet Nó có thể chuyển mẫu thông tin từ một máy nguồn tới một hay rấtnhiều máy nhận trong cùng lúc
I.2 Địa chỉ E-mail
Địa chỉ E-mail là một định danh trên Internet cho phép người sử dụng nhận biết đượcchính xác người cần liên hệ, giao dịch, trao đổi thông tin và ra lệnh gửi các thông điệp, tàiliệu, hình ảnh tới định danh này
Địa chỉ E-mail bao giờ cũng bao gồm 2 phần:
Phần tên miền quản lý địa chỉ mail này
Ví dụ: http://yahoo.com , http://gmail.com
Phần tên chính của địa chỉ mail, để phân biệt với các địa chỉ Mail khác do cùng
1 tên miền quản lý
Ví dụ: thanhly, thanhtam…
Giữa 2 phần của địa chỉ E-mail liên kết bởi dấu @
Tên một địa chỉ mail đầy đủ sẽ là: thanhly@yahoo.com.vn hay thanhtam@gmail.com
Trang 10I.3 Email client (trình duyệt thư)
Khi bạn đang nhận được một bức email Để đọc được nó, bạn phải sử dụng một vàiloại email client (trình duyệt thư) Rất nhiều người sử dụng thành thạo những phần mềmđơn lẻ như Microsoft Outlook, Outlook Express, Eudora… Một vài người khác đăng kídịch vụ email miễn phí như Hotmail, Yahoo… thì sử dụng Email client hiển thị trên trangWeb Bất kể kiểu Email client nào bạn đang sử dụng, nó đều mang 4 đặc điểm sau:
Email client cho bạn thấy một danh sách mesage trong hộp thư của bạn bằngcách hiển thị các đầu mục của message (message header) Message header nàychỉ cho bạn ai đã gửi message, tiêu đề của message, và những thông tin khácnhư thời gian gửi, thời gian nhận, kích cỡ…
Email client cho phép bạn chọn và đọc nội dung của một message
Email client cho phép bạn tạo một message mới và gửi nó đi Bạn nhập vào địachỉ người gửi, tiêu đề và nội dung của message…
Hầu hết các Email client cho phép đính kèm file, văn bản, hình ảnh… vàomessage gửi đi và lưu những đính kèm khác từ message nhận được
Những Email client phức tạp còn có thể có những chức năng khác nhưng nói chung vềbản chất, đấy là tất cả những gì mà một Email client có
I.4 Hoạt động của một Mail Server đơn giản
Khi đã có Email client trên máy tính thì đã sẵn sàng để gửi và nhận thư điện tử Tất cảbạn cần bây giờ là một máy chủ thư điện tử để Email client kết nối đến
Những hệ thống máy tính trên Internet có thể chạy những phần mềm ứng dụng đượcgọi là Server (máy chủ) Chúng gồm những loại server như Web server (máy chủ web), FTP server (máy chủ truyền file), Telnet server (máy chủ telnet) và Email server (máychủ thư điện tử)… Những máy chủ này chạy suốt ngày đêm và kiểm tra những “cổng đặcbiệt” (Specific ports), chờ đợi những chương trình kết nối vào các cổng đó Một máy chủemail đơn giản nhất sẽ làm những việc như sau:
Mail Server có một danh sách tài khoản email, với mỗi tài khoản ứng với mỗingười có thể nhận email trên máy chủ Tên tài khoản có thể là thanhly,thanhtam hoặc theo một số quy định khác
Mail Server sẽ có một file văn bản ứng với mỗi tài khoản trong danh sách Filevăn bản trong danh sách có thể sẽ là thanhly.txt, thanhtam.txt
Nếu Tâm muốn gửi một message ngắn (ví dụ “Ly, ngày mai học tại phòng Lab
2 nhé Tâm”) và chỉ ra rằng bức thư này sẽ được gửi đến cho Ly Khi người đó
ấn chuột vào nút gửi, Email client sẽ kết nối tới máy chủ thư điện tử và chuyểncho máy chủ tên của người nhận là Ly, tên của người gửi và nội dung của bứcthư
Máy chủ sẽ định dạng đoạn văn bản ngắn này và gắn nó vào phần cuối của fileLy.txt Phần thêm vào của file sẽ có dạng như sau:
From: Tâm
To: Ly
Trang 11Khi những người khác gửi mesage cho Ly, Mail server sẽ đơn giản là gắn tiếp nhữngbức thư đó vào phần cuối của file Ly.txt File văn bản sẽ bao gồm một nhóm 5 hoặc 10bức thư và cuối cùng Ly sẽ truy nhập vào và đọc chúng Khi Ly muốn đọc thư, Emailclient của cô ấy sẽ kết nối vào máy chủ và trong một tiến trình đơn giản nhất Email clientsẽ:
Hỏi Mail server để gửi một bản sao của file Ly.txt
Hỏi Mail server để xoá và điều chỉnh lại file Ly.txt
Lưu file Ly.txt trên máy tính cục bộ
Phân tích file Ly.txt ra từng bức thư riêng biệt (tìm từ “From” để tách các bứcthư)
Hiển thị cho Ly tất cả các message header theo danh sách
Khi Ly nhấn đúp chuột lên một đầu mục thư, trình duyệt sẽ tìm nội dung thư đó trongfile Ly.txt và hiển thị lên màn hình
I.5 Lợi ích của việc sử dụng Mail
Thay vì viết thư bằng giấy mực và bút thì người gửi chỉ cần gõ chữ từ bàn phím củamáy tính và biết dùng một phần mềm thư điện tử (Mail program)
Tốc độ cao : Vì mail được chuyển qua đường Internet dưới dạng các tín hiệu điện nên
tốc độ di chuyển của mail gần như là tức thời Với các bức thư tín bình thường, bạn có thểphải mất một vài ngày để thư có thể tới được địa chỉ cần thiết nhưng với mail, sau cúclick chuột vào nút gửi thư, người nhận đã có thể đọc được nội dung thư của bạn gửi chohọ
Chi phí rẻ: Với các thư tín bình thường, bạn phải tốn một khoản chi phí khá lớn khi
gửi các bức thư của mình đi Còn với mail, bạn chỉ tốn một khoản phí rất nhỏ để kết nốiInternet cùng với chi phí cho dịch vụ mail của bạn Bạn cũng có thể dùng dịch vụ mailmiễn phí Khi đó chi phí của bạn cho các bức thư hầu như không đáng kể
Không có khoảng cách: Với mail, người nhận cho dù ở xa bạn nửa vòng trái đất hay
ngay cùng phòng làm việc với bạn, việc gửi và nhận thư cũng đều được thực hiện gầnnhư ngay lập tức Và chi phí cho các bức thư đó cũng đều rẻ như nhau
Bảo mật : Dùng thư điện tử thì bất kỳ lúc nào cũng có thể mở phần mềm thư điện tử ra
đọc nên tiện lợi hơn là việc phải bỏ thư ở các thùng thư Đồng thời, vì mỗi người dùngthư đều phải nhập mật khẩu vào máy nên thư điện tử sẽ khó bị người ở chung đọc lén sovới thư gửi bưu điện Nhưng ngược lại, các tay tin tặc xa lạ có thể xâm nhập vào hệ thốngthư điện tử của cá nhân nếu như các mật mã hay các hệ thống an toàn phần mềm bị bẻgãy
Trang 12Khối lượng gửi và nhận thư điện tử có thể nhiều hơn thư bưu điện rất nhiều lần Đốivới các dịch vụ thư điện tử mới thì dung lượng có thể lên đến hàng GBYTE như dịch vụcủa Gmail chẳng hạn, hay nhiều hơn Số thư có thể dự trữ trong dung lượng này tươngđương với vài bộ tự điển bách khoa
Các trường hợp thư phá hoại trên hệ thống bưu điện (như là thư có bột antrax, thưbom, ) rất hiếm có nhưng có thể gây thương vong Ngược lại, hệ thống thư điện tử,không thể gây thương tích mà thường rất phải đương đầu với nhiều vấn nạn như virusmáy, Spam mail, Mail quảng cáo và các mail có nội dung không lành mạnh Đối với cácloại thư độc hại (Malicious mail) này người dùng cần phải cài đặt thêm các tiện ích haychức năng lọc để giảm trừ Tuy nhiên, một điều chắc chắn là không có công cụ phần mềmnào là tuyệt đối
II Giới thiệu về hệ thống Mail Server
Có bao giờ bạn nghĩ làm thế nào email được gửi từ máy tính của bạn đi khắp thế giớikhông? Máy chủ POP3 (POP3 server) là gì? Làm thế nào nó quản lí email của bạn? Vàcòn rất rất nhiều câu hỏi khác nữa Câu trả lời có thể làm bạn ngạc nhiên, bởi vì hệ thốngemail về mặt bản chất rất đơn giản Chúng ta hãy cùng xem xét xem nó hoạt động như thếnào?
II.1 Hệ thống email ngày nay
Một hệ thống thư điện tử bao gồm hai ứng dụng khác nhau cùng chạy trên một máychủ Ứng dụng thứ nhất gọi là máy chủ SMTP (SMTP server - Simple Mail TransferProtocol – Giao thức truyền thư đơn giản) Máy chủ SMTP xử lý thư điện tử đi Ứngdụng còn lại gọi là máy chủ POP3 (POP3 server – Post Office Protocol – Giao thức hộpthư) Máy chủ POP3 xử lý thư đến Một máy chủ thư điện tử điển hình có định dạng nhưhình vẽ sau:
Hình 1: Hệ thống Email ngày nay.
Ứng dụng SMTP kiểm soát cổng số 25 trong khi ứng dụng POP3 kiểm soát cổng 110
II.1.1 SMTP Server
Mỗi khi bạn gửi một message, Email client của bạn tương tác với SMTP server để xử
lý việc gửi SMTP server trên máy chủ của bạn có thể có giao tiếp với SMTP server trênmáy chủ khác để chuyển bức thư đó
Trang 13Hình 2 : SMTP Server
Bạn muốn gửi một bức thư Định danh của bạn là thanhly, và bạn có tài khoản trêngoogle.com.vn Bạn muốn gửi thư cho thanhtam@fpt.vn bạn đang sử dụng email clientOutlook Express
Khi cài đặt tài khoản trên google.com.vn, bạn chỉ định cho Outlook Express tên củamáy chủ thư điện tử - mail.google.com.vn Khi soạn thảo bức thư rồi ấn nút gửi, quátrình xảy ra như sau:
Outlook Express kết nối với SMTP server trên mail.google.com qua cổng 25
Outlook Express trao đổi với SMTP server và chuyển giao cho nó địa chỉ củangười gửi, địa chỉ của người nhận cũng như nội dung của bức thư
SMTP server lấy địa chỉ đến thanhtam@fpt.vn và cắt nó thành hai bộ phận
Tên người nhận (thanhtam)
Tên miền (fpt.vn)
Nếu địa chỉ đến là địa chỉ ở cùng miền google.com.vn, SMTP server sẽ dễ dàng chuyển bức thư đó đến POP3 server trên cùng miền đó (sử dụng một ứngdụng nhỏ gọi là delivery agent) Khi địa chỉ đến ở miền khác, SMTP server phải trao đổi thông tin với miền khác
SMTP server sẽ giao tiếp với DNS server để hỏi địa chỉ IP của SMTP servercủa miền fpt.vn DNS Server sẽ trả lời là một hoặc nhiều địa chỉ IP của SMTPserver mà fpt.vn đang quản lí
SMTP server ở google.com.vn kết nối với SMTP server ở fpt.vn qua cổng 25(bằng IP đã được cung cấp) Nó có sự trao đổi giống như Email client của bạntrao đổi với SMTP server ở google.com.vn tức là chuyển bức thư (địa chỉ đi,địa chỉ đến, nội dung…) cho máy chủ fpt.vn Máy chủ fpt.vn nhận ra rằng tênmiền của thanhtam là fpt.vn, nó sẽ chuyển tiếp cho POP3 server của chính nó
và bức thư sẽ được chuyển vào hộp thư của thanhtam
Trang 14Trong một vài trường hợp, SMTP server tại google.com.vn không thể kết nối vớiSMTP server tại fpt.vn, message sẽ được xếp vào một hàng đợi SMTP server trên hầuhết các máy chủ sử dụng một chương trình gọi là sendmail để gửi và hàng đợi này đượcgọi là sendmail queue Sendmail sẽ cố gắng gửi lại những message trong queue của nótheo định kì Ví dụ nó có thể định kì gửi lại sau mỗi 15 phút Sau 4 giờ nó sẽ gửi lại chobạn một thông điệp nói rằng có một vài lỗi nào đó xảy ra Sau 5 ngày hầu hết các thiết lậpsendmail sẽ ngừng gửi và gửi trả message của bạn lại cho bạn, báo rằng message khônggửi được (các thiết lập có thể khác nhau tùy theo từng hệ thống)
Về mặt thực tế, sự trao đổi giữa một Email client với một SMTP server rất đơn giản và
dễ hiểu Nó được gọi là “Yêu cầu cho ý kiến” (RFC – Requests For Comments), và đoạntrao đổi có dạng điển hình như sau:
helo test
250 mx1.mindspring.com Hello abc.sample.com
[220.57.69.37], pleased to meet you
mail from: test@sample.com
221 2.0.0 mx1.mindspring.com closing connection
Connection closed by foreign host
Email client hỏi và SMTP server trả lời Email client giới thiệu bản thân nó, thông báođịa chỉ đi và đến (“from” và “to”), chuyển nội dung của message rồi thoát khỏi tiến trình.Trong thực tế, chúng ta có thể telnet vào một Mail server qua cổng 25 và có một trongnhững đoạn hội thoại như trên Điều này cho hay tại sao có những thư điện tử giả mạo.SMTP server hiểu được những lệnh ký tự đơn giản như HELO, MAIL, RCPT vàDATA Những lệnh thường thấy như sau:
HELO: giới thiệu bản thân
EHLO: giới thiệu bản thân và yêu cầu “extended mode”
MAIL FROM: định danh người gửi
RCPT TO: định danh người nhận
DATA: định danh nội dung (To:, From: và Subject: thường là 3 dòng đầu)
RSET: reset
Trang 15 QUIT: thoát khỏi tiến trình.
HELP: lệnh lấy hướng dẫn trợ giúp
VRFY: xác nhận lại một địa chỉ
EXPN: mở rộng một địa chỉ
II.1.2 POP3 Server
POP3 server xử lí một tập hợp các file văn bản Mỗi file ứng với mỗi tài khoản email.Khi một message được gửi đến, POP3 server chỉ đơn giản là thêm chính message đó vàophần cuối file của người nhận
Khi bạn duyệt mail, email client sẽ kết nối vào POP3 server qua cổng 110 POP3server yêu cầu bạn cung cấp một account name (định danh tài khoản email của bạn) vàpassword Sau khi bạn đăng nhập, POP3 server sẽ mở file văn bản của bạn và cho phépbạn truy xuất nó
Cũng giống như SMTP server, POP3 server cũng hiểu một tập hợp các lệnh kí tự đơngiản như sau:
USER: Nhập vào tài khoản định danh của bạn
PASS: Nhập vào mật mã (password) của bạn
QUIT: Thoát khỏi POP3 server
LIST: Liệt kê danh sách message của bạn với kích thước
RETR: Lấy ra message của bạn và chuyển cho nó một con số
DELE: Xóa một message chuyển cho nó một con số
TOP: Hiển thị lên trên cùng x dòng của một message, chuyển cho nó một con
số và số dòng
Email client của bạn sẽ kết nối vào POP3 server và đưa ra một tập hợp các lệnh để tảibản sao của message của bạn về máy tính cục bộ Thông thường, email client sẽ xoá hếtcác message trên máy chủ trừ khi bạn bỏ tính năng đó
Bạn có thể thấy rằng POP3 server đơn giản là phần giao diện giữa email client và filevăn bản chứa những message của bạn Và ở đây bạn lại thấy POP3 server thật quá đơngiản Bạn có thể telnet vào nó qua cổng 110 và tự sử dụng các lệnh nếu bạn muốn
II.2 Cấu trúc của hệ thống Mail Server
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ànhphần như sau:
Trang 16Hình 3: Kiến trúc Mail Server
Chức năng của các thành phần như sau:
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ửimail 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
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 mail từ máy tính đến một nơi khác (Mail Delivery Agent) Các chươngtrì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)
Mail Delivery Agent (MDA): là dịch vụ tiếp nhận các mail 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)
Mail Submission Agent (MSA): là chương trình nhận mail từ MUA qua cổng
587 (Bảo mật hơn SMTP cổng 25 vì nó đòi hỏi chứng thực hay các hành độngtương tự để chống spam trong local) và kết hợp với MTA để chuyển mail Đa
số các MTA làm nhiệm vụ MSA luôn (posfix, Sendmail), trên MS Exchangethì MSA do Mailbox role và Client receive connector (trên Hub transport role)đảm nhiệm
Mail Access Agent/ Mail Retrieval Agent (MAA/MRA): MRA là chương trình
tìm về hoặc lấy Mail về từ Remote Mail Server, và kết hợp với MDA để phânphố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 mail về Các chương trình tiêu biểu: IMAP, POP3 Server,
Trang 17Dovecot (Linux), Client Access Server trên MS Exchange (Windows) MRAbây giờ thường do các MUA đảm nhiệm đó chính là các POP3, IMAP Client
III Các giao thức truyền nhận mail
III.1 Giao thức SMTP
III.1.1 Giới thiệu
SMTP là một chuẩn truyền tải thư điện tử qua mạng Internet Mục đích của giao thứcSMTP là truyền mail một cách tin cậy và hiệu quả Giao thức SMTP không phụ thuộc vàobất kỳ hệ thống đặc biệt nào và nó chỉ yêu cầu trật tự của dữ liệu truyền trên kênh truyềnđảm bảo tính tin cậy Giao thức SMTP được thiết kế dựa vào mô hình giao tiếp sau:
Hình 4: Mô hình tổng quát sử dụng giao thức SMTP
Khi có yêu cầu từ user về dịch vụ mail, sender-SMTP thiết lập một kênh truyền haichiều tới reciever-SMTP Reciever- SMTP có thể là đích cuối cùng hoặc chỉ là đích trunggian nhận mail Các lệnh trong giao thức SMTP được sender-SMTP gởi tới reciever-SMTP và reciever-SMTP gởi đáp ứng trở lại cho sender-SMTP
III.1.2 Các lệnh giao dịch SMTP Server
Những lệnh SMTP định nghĩa sự truyền mail hay chức năng của hệ thống mail đượcyêu cầu bởi user Những lệnh SMTP là những chuỗi ký tự kết thúc bằng <CRLF> Bảnthân mã lệnh là những ký tự chữ kết thúc bởi <SP> nếu có những tham số theo sau vànếu không có thì <CRLF> Cú pháp của những mailbox phải tuân theo những qui ước củareceiver
Một phiên giao dịch mail chứa đựng một vài đối tượng dữ liệu, được truyền như lànhững đối số cho các lệnh khác nhau Reverse-path là đối số của lệnh MAIL Forward-path là đối số của lệnh RCPT Và mail data là đối số của lệnh DATA Những đối số haynhững đối tượng dữ liệu này được truyền đi và duy trì cho đến khi xác nhận truyền xongbởi sự chỉ định kết thúc của mail data Mô hình hiện thực cho cách làm này là nhữngbuffer riêng biệt được cung cấp để lưu trữ kiểu của đối tượng dữ liệu, đó là các bufferreverse-path, forward-path, và mail data buffer Những lệnh xác định tạo ra thông tinđược gắn vào một buffer xác dịnh, hoặc xoá đi một hay một số buffer nào đó
HELLO (HELO)
Receiver - SMTP
Sender - SMTP
SMTP Commands / Replies
and Mail File
System
Sender SMTP
Receiver SMTP File
System
User
Trang 18Lệnh này được dùng để xác định ra ai là người gởi mail Vùng đối số chứa host namecủa bên gởi.
Bên nhận định danh cho nó đối với sender thông qua việc bắt tay trả lời kết nối
Với lệnh này và sự trả lời OK để xác định rằng cả sender và reciever đang ở trạng tháikhởi đầu, tất cả các bảng trạng thái và buffer đã được xoá sạch
Lệnh này sẽ xoá các buffer sau: reverse-path, forward-path, và mail data buffer, và nóthêm thông tin của reverse-path từ lệnh này vào reverse-path buffer
Khi mail đã được truyền tiếp vận, host làm công việc này phải bỏ phần định danh nó từchỗ bắt đầu forward-path và đặt nó vào chỗ bắt đầu của reverse-path Khi mail đến đượcđích cuối cùng rồi, reciever-SMTP bỏ nó vào trong mailbox với sự đồng ý của host mailđó
Lệnh này sẽ chèn đối số là forward-path vào forward-path buffer
DATA
Reciever sẽ xử lý những dòng theo sau lệnh khi mail data đến từ sender Lệnh này tạo
ra mail data để đặt vào mail data buffer Mail data có thể chứa bất kỳ ký tự nào trong bộ
mã ASCII
Mail data được kết thúc bởi một dòng mà nó chỉ chứa một dấu chấm “ ”.
Sự kết thúc mail data để yêu cầu receiver phải xử lý việc lưu trữ thông tin trong phiêngiao dịch mail ngay Quá trình xử lý này sử dụng thông tin nằm trong reverse-path buffer,trong forward-path buffer, và trong mail data buffer, khi hoàn tất lệnh này những buffernày sẽ bị xoá Nếu quá trình xử lý thành công, reciever phải gởi trả lời OK Nếu bị lỗi,reciever phải gởi thông báo lỗi
Trang 19Khi reciever chấp nhận một message cho sự truyền tiếp vậnän hoặc phân phát đếnđích cuối cùng, nó thêm vào chỗ khởi đầu của mail data một dòng đánh dấu thời gian.Dòng đánh dấu thời gian chỉ ra định danh của host mà nó nhận message, và ngày tháng vàthời gian mà mailđược nhận Những message được truyền tiếp vận sẽ có nhiều dòngđánh dấu thời gian.
Khi reciever tạo ra “final delivery” của một message, nó thêm vào đầu của mail datamột dòng đường dẫn quay về Đường dẫn quay về duy trì thông tin trong <reverse-path>
từ lệnh MAIL Ở đây, “final delivere” có nghĩa là message thoát khỏi môi trường SMTP.Thông thường điều này có nghĩa là nó đã được phân phát tới user đích, nhưng trong mộtvài trường hợp nó có thể được xử lý tiếp và được truyền đi bằng một hệ thống mail khác
SEND
Lệnh này được dùng để khởi tạo sự truyền mail mà ở đó maildata sẽ được truyền đi tớimột hay nhiều terminal Vùng đối số chứa phần reverse-path lệnh thực thi thành công khimessage được phân phát tới terminal
Reverse-path bao gồm một danh sách tuỳ ý các host và mailbox của sender Khi danhsách của host được chỉ ra, nó là lộ trình nguồn quay về và chỉ ra rằng mail đã đượctruyền tiếp vận thông qua mỗi host trên danh sách Danh sách này được dùng như là lộtrình nguồn để trả về thông báo non-delivery cho sender Mỗi khi truyền tiếp vận, hostthêm phần định danh của chính nó vào chỗ bắt đầu của danh sách, nó phải sử dụng têncủa nó khi đã biết trong IPCE mà ở đó mail được truyền tiếp vận hơn là mail được truyềntới ( nếu chúng có sự khác nhau)
Lệnh nay sẽ xoá các buffer sau : reverse-path, forward-path, và mail data buffer, đồngthời nó thêm reverse-path ở lệnh này vào reverse-path buffer
SEND OR MAIL (SOML)
Lệnh này được sử dụng để khởi tạo sự truyền mail mà ở đó mail data một hay nhiềuterminal hoặc các mailbox Đối với người nhận, mail data được phân phát tới terminalcủa người nhận nếu người nhận có tích cực, trái lại, là mailbox của người nhận Lệnh nàythành công khi message được phân phát tới terminal hoặc là mailbox
Reverse-path bao gồm một danh sách tuỳ ý các host và mailbox của sender Khi danhsách này được chỉ ra,nó là lộ trình nguồn quay về và chỉ ra mail đã được truyền tiếp vậnthông qua những host trong danh sách Danh sách này được dùng như là lộ trình nguồn
để trả về thông báo non-delivery cho sender Mỗi khi có sự truyền tiếp vận, host thêmphần định danh của chính nó vào đầu danh sách, nó phải sử dụng tên của nó khi đã biếttrong IPCE mà ở đó mail được truyền tiếp vận hơn là mail được truyền tới ( nếu chúng có
sự khác nhau)
Lệnh này sẽ xoá đi các buffer sau: reverse-path, forward-path, và mail data buffer,đồng thời nó thêm thông tin reverse-path từ lệnh này vào reverse-path buffer
SEND AND MAIL (SAML)
Lệnh này được sử dụng để khởi tạo sự truyền mail mà ở đó mail data một hay nhiềuterminal hoặc các mailbox Đối với người nhận, mail data được phân phát tới terminalcủa người nhận nếu người nhận có tích cực, và đối với mọi người nhận mail sẽ tớimailbox của những người nhận đó
Trang 20Vùng đối số chứa đựng một reverse-path Lệnh này thành công khi, message đượcphân phát tới mailbox.
Reverse-path bao gồm một danh sách tuỳ ý các host và mailbox của sender Khi danhsách này được chỉ ra,nó là lộ trình nguồn quay về và chỉ ra mail đã được truyền tiếp vậnthông qua những host trong danh sách Danh sách này được dùng như là lộ trình nguồn
để trả về thông báo non-delivery cho sender Mỗi khi có sự truyền tiếp vận, host thêmphần định danh của chính nó vào đầu danh sách, nó phải sử dụng tên của nó khi đã biếttrong IPCE mà ở đó mail được truyền tiếp vận hơn là mail được truyền tới ( nếu chúng có
sự khác nhau)
Lệnh này sẽ xoá đi các buffer sau: reverse-path, forward-path, và mail data buffer,
đồng thời nó thêm thông tin reverse-path từ lệnh này vào reverse-path buffer
RESET (RSET)
Lệnh này xác định sự truyền mail hiện tại đã bị huỷ bỏ Các sender, recipient, maildata đã lưu sẽ bị huỷ bỏ và tất cả các bảng trạng thái, các buffer bị xoá Receiver phải gửimột reply OK
VERIFY (VRFY)
Lệnh này yêu cầu receiver xác nhận đối số là định danh một user Nếu nó là một username, full name của user đó (nếu receiver biết) và mailbox đặc tả đầy đủ được trảvề.Lệnh này không ảnh hưởng đến reverse-path buffer, forward-path buffer và data mailbuffer
EXPAND (EXPN)
Lệnh này yêu cầu receiver xác nhận đối số là một mailing list(danh sách địa chỉ) và trả
về một thành phần trong danh sách đó Full name của các user (nếu biết) và nhữngmailbox đã xác định đầy đủ được trả về trong một reply gồm nhiều dòng.Lệnh này khôngảnh hưởng đến reverse-path buffer, forward-path buffer và data mail buffer
QUIT
Lệnh này định rõ receiver phải gửi một reply OK và sau đó đóng kênh truyền.Receiver sẽ không đóng kênh truyền cho đến khi nó nhận và trả lời cho lệnh QUIT(ngay cả nếu có một lỗi xảy ra) Sender sẽ không đóng kênh truyền cho đến khi nó gửimột lệnh QUIT và nhận reply đó (ngay cả nếu có một lỗi trả lời cho lệnh trước đó) Nếu
mà kết nối bị đóng trước thời gian mong muốn receiver sẽ làm việc như nếu vừa nhậnđược một lệnh RSET (bỏ tất cả các giao dịch đang treo mà chưa làm, nhưng không
Trang 21“undo” những đã truyền hoàn tất trước đó) sender sẽ hành động ngay khi lệnh hay quátrình truyền đó trong quy trình nhận được một lỗi tạm thời (4xx).
TURN
Lệnh này xác định receiver phải gửi một trong hai reply sau: (1) reply OK và sau đónhận vai trò của một sender-SMTP, hay (2) gửi một reply từ chối và giữ lại vai trò mộtreceiver-SMTP
Nếu program-A hiện tại là một sender-SMTP và nó gửi một lệnh TURN và nhận mộtreply OK (250) thì program-A trở thành receiver-SMTP sau đó program-A sẽ trong trạngthái khởi động ngay khi kênh truyền đã được mở, và sau đó nó gởi lời chào là hỏi dịch vụ
đã sẵn sàng (220) Nếu chương trình B hiện tại là reciever và nó nhận được lệnh TURN
và nó trả lời OK thì B trở thành sender B khi đó ở trạng thái khởi tạo ngay khi kênhtruyền được mở, và nó chờ nhận trả lời dịch vụ đã sẵn sàng (220)
Để từ chối thay đổi vai trò receiver gửi một reply 502
Có một vài hạn chế về trật tự khi dùng những lệnh này.Đầu tiên trong một phiên traođổi phải là lệnh HELLO, lệnh này có thể được dùng sau đó trong một cuộc trao đổi khác.Nếu đối số trong lệnh HELLO không được chấp nhận, một reply failure 501 phải được trả
về và receiver-SMTP đó phải ở trong cùng trạng thái
Các lệnh NOOP, HELP, EXPN, và VRFY có thể được sử dụng vào bất kỳ thời điểmnào
Các lệnh MAIL, SEND, SAML bắt đầu cho sự truyền mail Khi được khởi động, sựtruyền mail bao gồm một trong các lệnh khởi tạo, một hoặc nhiều lệnh RCPT và lệnhDATA Sự truyền mail có thể bị huỷ bỏ bởi lệnh RSET Có thể có nhiều hoặc không có
sự truyền nào trong một phiên truyền
Nếu đối số bắt đầu phiên truyền không được chấp nhận, thông báo 501 failure phảiđược trả về và reciever-SMTP phải nằm trong cùng trạng thái Nếu các lệnh trong phiêntruyền không có thứ tự, thì thông báo 503 failure sẽ được trả về và reciever-SMTP phảinằm trong cùng trạng thái
Lệnh cuối cùng trong phiên truyền là lệnh QUIT Lệnh này không thể được sử dụng tạibất kỳ thời gian nào trong phiên truyền
III.1.3 Cú pháp của các lệnh
Các lệnh bao gồm một mã lệnh theo sau là đối số của lệnh Mã lệnh là 4 ký tựalphabetic Không phân biệt chữ thường hoặc chữ hoa
Giữa mã lệnh và đối số là một hoặc nhiều khoảng trắng Tuy nhiên trong reverse-path
và forward-path, kiểu chữ rất quan trọng Đặc biệt, trên một số host, tên user cũng phânbiệt kiểu chữ hoa và thường
Đối số bao gồm một chuỗi ký tự có chiều dài biến đổi kết thúc bằng chuỗi ký tự
“<CRLF> “
Dấu ngoặc vuông biểu diễn cho một vùng đối số tuỳ chọn
Sau đây là những lệnh SMTP:
HELO <SP> <domain> <CRLF>
Trang 22III.1.4 Các reply của SMTP Server
Sự trả lời cho những lệnh của SMTP được đặt ra để đảm bảo cho sự đồng bộ cho cácyêu cầu và những hoạt động trong quy trình truyền mail, và để bảo đảm rằng sender-SMTP luôn luôn biết trạng thái của reciever-SMTP Mỗi lệnh SMTP phải tạo ra chínhxác một reply
Một reply SMTP bao gồm một số ba chữ số (được truyền như ba ký tự chữ số) và theosau là một số văn bản (text) Số đó được sử dụng một cách tự động để xác định trạng tháiđưa vào kế tiếp Text ở trên là dành cho người sử dụng Ba chữ số đó được ấn định chứađầy đủ thông tin được mã hoá mà sender-SMTP không cần kiểm tra text đó và có thể huỷ
bỏ hay chuyển nó qua một user thích hợp Đặc biệt text này có thể phụ thuộc vào receiver
và vào ngữ cảnh, vì vậy có sự giống nhau trong sự phân biệt text cho từng mã reply
Reply codes by function groups:
500: Lỗi cú pháp, không nhậ dạng được lệnh.
501: Lỗi cú pháp về thông số hoặc đối số.
503: Chuổi lệnh lỗi.
504: Thông số lệnh không có.
211: Trạng thái hệ thống, hay trả lời giúp đỡ về hệ thống.
214: Thông điệp giúp đỡ.
220: <domain> dịch vụ sẳn sàng.
221: <domain> dịch vụ đóng kênh truyền.
421: <domain> dịch vụ không dùng được, đóng kênh truyền.
250: Hành động mail yêu cầu OK, hoàn thành.
Trang 23 251: User không cục bộ, sẽ hướng đến “forward-path”.
450: Mail được yêu cầu không có, mailbox không tồn tại.
451: Bỏ qua hành động được yêu cầu; lỗi trong quá trình xử lý.
551: User không cục bộ, thử lại <forward-path>.
452:Hành động được yêu cầu không thu được : hệ thống lưu trữ không đủ.
552: Bỏ qua hành động yêu cầu mail : vượt quá cấp phát lưu trữ.
553: Hành động được yêu cầu không chấp nhận: tên mailbox không cho phép
[như sai cú pháp mailbox]
354:Khởi động việc nhận mail; kết thúc với <CLRF>.<CLRF>.
554:Tryuền bị bị sai.
III.1.5 Nghi thức mở rộng ESMTP
SMTP có một hạn chế gây khó khăn lớn trong việc truyền nhận mail là giới hạn tối đakích thước nội dung một bức mail chỉ là 128KB Ngày nay nội dung các bức mail khôngchỉ là dạng văn bản đơn thuần mà còn bao gồm hình ảnh, âm thanh và nhiều loại dữ liệukhác nữa, giới hạn 128KB trở nên quá nhỏ Do vậy người ta đã cải tiến chuẩn SMTPthành một chuẩn mở rộng mới gọi là ESMTP
Chuẩn này cho phép tăng kích thước mail, nó đưa thêm từ khoá SIZE=nnnnnnnnn saulệnh khởi động cuộc giao dịch, nhờ đó ta có thể tăng giới hạn kích thước của mail lên trên1MB, đủ để chứa thêm vào các âm thanh, hình ảnh…
Để biết xem Server MTA có theo chuẩn ESMTP hay không, thay vì dùng lệnh HELLO
ở đầu một cuộc giao dịch, Client MTA dùng lệnh mới HELLO, nếu Server MTA có trang
bị, nó sẽ trả về mã thành công là 250 Ngày nay chuẩn ESMTP đã thay thế chuẩn SMTP
ở đa số các hệ thống
Ví dụ : Để khởi động cuộc giao dịch với kích thước mail lên tới 1MB, dòng lệnh sẽ là: MAIL FROM :<thanhly@sample> SIZE=1000000
III.2 Giao thức POP3
III.2.1 Giới thiệu
POP3 là một giao thức chuẩn trên internet cho phép một một workstation có thể truyxuất động đến một maildrop trên một server từ xa Có nghĩa là Pop3 được dùng để chophép workstation lấy mail mà server đang giữ nó
Port chuẩn dành cho dịch vụ Pop3 đươc qui ước là TCP port 110 Pop3 server sẽ khởiđộng và lắng nghe trên port này Một client muốn sử dụng các dịch vụ của Pop3 thì nóphải thiết lập một kết nối tới Pop3 server Khi kết nối được thiết lập thì Pop3 server sẽ gởitới client một lời chào Sau đó, Pop3 Client và Pop3 Server sau đó trao đổi các request vàreply cho đến khi kết nối được đóng hay loại bỏ
Các lệnh trong Pop3 không phân biệt chữ thường và chữ hoa, bao gồm một tập từ khoá(chiều dài từ 3 đến 4 ký tự), có thể có hoặc không có đối số theo sau (chiều dài của đối số
Trang 24có thể lên đến 40 ký tự) Các từ khoá và đối số phân cách nhau bởi một ký tự trắng đơn,
và không phải là các ký tự đặc biệt
Các reply trong Pop3 bao gồm phần chỉ định trạng thái và từ khoá có thể có các thôngtin hỗ trợ theo sau Chiều dài của reply có thể lên tới 512 ký tự, kết thúc bằng cặp CRLF
Có hai loại chỉ định trạng thái là: “+OK” và “-ERR” Server phải gởi các chỉ định trạngthái ở dạng chữ hoa
Reply cho các lệnh có thể bao gồm nhiều dòng Sau khi dòng đầu tiên và cặp ký tựCRLF được gởi đi, các dòng thêm vào được gởi đi, mỗi dòng kết thúc bằng một cặpCRLF Dòng cuối là ký tự “.” và cặp ký tự CRLF Nếu có dòng nào bắt đầu bằng ký tự
“.” thì phải kiểm tra xem có phải là cặp ký tự kết thúc CRLF
Một Pop3 session sẽ phải trải qua các trạng thái: xác nhận (Authorization), giao dịch(transaction) và trạng thái cập nhật (Update)
Trong trạng thái xác nhận, client phải thông báo cho server biết nó là ai Khi server đãxác nhận được client, session sẽ đi vào trạng thái giao dịch Trong trạng thái này, clienthoạt động bằng cách gởi các request tới server Khi client gởi lệnh “QUIT”, session sẽ đivào trạng thái cập nhật (Update) Trong trạng thái này, Pop3 server giải phóng các tàinguyên và gởi lời tạm biệt Sau đó kết nối TCP đóng lại
Các reply của Pop3 Server cho Pop3 client sẽ là “-ERR” nếu lệnh không nhận ra đượcbởi Pop3 server, hoặc không thực hiện được, hoặc sai cú pháp, hoặc sai trạng thái
Một Pop3 server có một khoảng thời gian time out Khi xảy ra time out, session không
đi vào trạng thái cập nhật (Update) mà server sẽ tự đóng kết nối TCP mà không xoá bất
kỳ message nào hay gởi đáp ứng cho client
III.2.2 Các trạng thái của POP3
Một khi kết nối TCP được mở ra bởi một Pop3 client Pop3 server sẽ gởi lại cho Pop3client một lời chào
Đầu tiên, client sẽ gởi lệnh “USER username”, nếu Pop3 server trả lời với chỉ thị trạngthái “-ERR” thì client có thể đưa ra một lệnh xác nhận mới hay có thể đưa ra lệnh
“QUIT”
Nếu Pop3 server trả lời với chỉ thị trạng thái “+OK”, thì client có thể gởi tiếp lệnh
“PASS password” để hoàn tất sự xác nhận hoặc gởi lệnh “QUIT” để kết thúc session Khi client phát ra một lệnh “PASS”, POP3 server dùng cặp đối số từ lệnh USER vàPASS để xác định nếu đúng client sẽ cho truy xuất đến maildrop thích hợp
Sau khi trải qua quá trình xác nhận, Pop3 server sẽ cho phép client truy xuất tới nhữngmailbox thích hợp Lúc này, Pop3 server sẽ tạo ra một khoá truy xuất loại trừ trên
Trang 25maildrop để đảm bảo cho message không bị sửa đổi hay bị xoá trước khi session đi vàotrạng thái cập nhật (Update) Nếu thành công, Pop3 server sẽ trả lời với chỉ thị trạng thái
“+OK” và session sẽ đi vào trạng thái giao dịch (transaction) mà không có message bịđánh dấu xoá Nếu maildrop không mở được vì một lý do nào đó (ví dụ: sai khoá, client
bị từ chối truy xuất tới maildrop này), Pop3 server sẽ trả lời với chỉ thị trạng thái “-ERR”
và server sẽ đóng kết nối Nếu kết nối không bị đóng thì client có thể gởi lệnh xác nhậnmới và bắt đầu trở lại hoặc có thể phát ra lệnh “QUIT”
Sau khi Pop3 server mở được maildrop, nó gán số thứ tự cho mỗi message và biểu thịkích thước message theo byte
Chú ý rằng, đây là thông tin phản hồi từ phía POP3 Server Dấu ”+” có nghĩa là thànhcông, ngược lại, dấu ”-” là không thành công bị lỗi Phiên làm việc POP3 hiện tại đang ởtrạng thái AUTHORIZATION Phía Client bây giờ cần phải đưa vào các lệnh để xác địnhngười nhận thư cho POP3 Server
b Trạng thái giao dịch (transaction)
Sau khi Pop3 server đã xác nhận thành công client, và mở cho nó một maildrop thíchhợp Session sẽ bước vào trạng thái giao dịch (transaction) Lúc này, Pop3 client có thểgởi các request cho Pop3 server (các request có thể được gởi nhiều lần, tức là có thể lặplại), và cứ sau mỗi request thì Pop3 server sẽ phản hồi lại cho Pop3 client một reply Cuốicùng, nếu client phát ra lệnh “QUIT” thì session sẽ đi vào trạng thái cập nhật (Update)
c Trạng thái cập nhật (Update)
Khi client phát ra lệnh “QUIT” từ trạng thái giao dịch (transaction), session sẽ đi vàotrạng thái cập nhật (Update) Nếu client phát ra lệnh “QUIT” từ trạng thái xác nhận(authorization), session sẽ kết thúc nhưng không đi vào trạng thái cập nhật
Nếu session kết thúc vì các lý do khác sau đó một lệnh “QUIT” được phát ra từ client,session sẽ không đi vào trạng thái cập nhật (Update) và phải không xoá một message nào
từ maildrop
III.2.3 Các lệnh của POP3
a Các lệnh có tác dụng trong quá trình xác nhận (authorization)
Đối số là một password cho mailbox hay server
Trả lời: +OK khoá maildrop và sẵn sàng
-ERR password không hiệu lực
-ERR không được phép khoá maildrop
Trang 26b Các lệnh có tác dụng trong quá trình giao dịch (transaction)
Trả lời: +OK scan listing follow
-ERR nosuch message
Một scan listing bao gồm số thứ tự message (message number) của message đó, theosau là khoảng trắng đơn, và kích thước chính xác của message đó tính theo byte
RETR msg
Đối số: số thứ tự của message, có thể không tham khảo tới các message đã được đánhdấu xoá
Trả lời: +OK message follows
-ERR no such message
Trả lời của lệnh RETR là multi-line
DELE msg
Đối số: số thứ tự của message, có thể không tham khảo tới các message đã được đánhdấu xoá
Trả lời: +OK message deleted
-ERR no such message
Pop3 server sẽ đánh dấu xoá các message này Tuy nhiên, quá trình xoá thật sự sẽ diễn
Trang 27Trả lời: +OK.
III.3 Giao thức IMAP4 (RFC2060, RFC2193…)
Internet Message Access Protocol (IMAP) cung cấp lệnh để phần mềm thư điện tử trênmáy khách và máy chủ dùng trong trao đổi thông tin phiên bản 4( IMAP4rev1) Đó làphương pháp để người dùng cuối truy cập thông điệp thư điện tử hay bản tin điện tử từmáy chủ về thư trong môi trường cộng tác Nó cho phép chương trình thư điện tử dùngcho máy khách - như Netscape Mail, Eudora của Qualcomm, Lotus Notes hay MicrosoftOutlook - lấy thông điệp từ xa trên máy chủ một cách dễ dàng như trên đĩa cứng cục bộ.IMAP khác với giao thức truy cập thư điện tử Post Office Protocol POP lưu trữ toàn
bộ thông điệp trên máy chủ Người dùng kết nối bằng đường điện thoại vào máy chủ vàPOP sẽ đưa các thông điệp vào in-box của người dùng, sau đó xoá thư trên máy chủ Haigiao thức này đã được dùng từ hơn 10 năm nay Theo một nhà phân tích thì khác biệtchính giữa POP (phiên bản hiện hành 3.0) và IMAP (phiên bản hiện hành 4.0) là POP3cho người dùng ít quyền điều khiển hơn trên thông điệp
IMAP4rev1 được kế thừa từ [IMAP2] tuy nhiên trong giao thức IMAP4rev1 khôngtồn tại các giao thức hay cấu trúc của [IMAP2] nhưng những khuôn dạng dữ liệu vẫnđược kế thừa và sử dụng IMAP4rev1 bao gồm những thao tác tạo ra, xoá, và đổi tên cáchòm thư, kiểm tra mail mới, thường xuyên cập nhật lại cờ những mail cũ nhưng thao tácnày được trình bày trong RFC822(RFC dùng chuẩn hoá message) và những thao tác này
là duy nhất
IMAP là cơ chế cho phép lấy thông tin về thư điện tử của bạn, hay chính các thôngđiệp từ mail server của môi trường cộng tác Giao thức thư điện tử này cho phép ngườidùng kết nối bằng đường điện thoại vào máy chủ Internet từ xa, xem xét phần tiêu đề vàngười gửi của thư điện tử trước khi tải những thư này về máy chủ của mình Với IMAPngười dùng có thể truy cập các thông điệp như chúng được lưu trữ cục bộ trong khi thực
tế lại là thao tác trên máy chủ cách xa hàng ki lô mét Với khả năng truy cập từ xa này,IMAP dễ được người dùng cộng tác chấp nhận vì họ coi trọng khả năng làm việc lưuđộng
Một kết nối của IMAP4rev1 được thành lập theo một kết nối Client/Server và sự tươngtác trao đổi thông tin hay lấy mail về từ Server của người sử dụng thông qua các lệnh truysuất mà IMAP4rev1 đã định dạng sẵn trong giao thức IMAP Người sử dụng bắt đầu một
mã lệnh trong giao thức IMAP theo một quy luật là : đầu mỗi câu lệnh thêm vào các ký tựtượng trưng (nó tượng trưng cho lý lịch hay thứ tự của lệnh…)
III.3.1 Các lệnh của IMAP4
Những tập lệnh của IMAP4rev1 được định nghĩa trong rfc2060 cũng nhưng quá trìnhbắt đầu và kết thúc của một phiên làm việc Vì trong chương trình em chỉ sử dụng một sốlệnh cơ bản trong bộ giao thức này, dưới đây là ý nghĩ cũng như cách sử dụng chúng
CAPABILITY
Arguments: none
Kết quả trả về : OK - capability completed
BAD - command unknown or arguments invalid
Trang 28Đây là lệnh thực hiện trước tiên của bất kỳ một trình mail Client nào muốn lấy mail từtrình chủ bằng giao thức IMAP, mục đích là kiểm tra version giao thức có đáp ứng đượcyêu cầu không Version hiện nay đang dùng là IMAP4(IMAP4rev1).
Ví dụ C: abcd CAPABILITY
S: * CAPABILITY IMAP4rev1
S: abcd OK CAPABILITY completed
LOGIN
Arguments: [user name] [password ]
Kết quả trả về là: OK - login completed, now in authenticated state
NO - login failure: user name or password rejected
BAD - command unknown or arguments invalid
Lệnh này để xác nhận người sử dụng có hợp pháp không? Nếu thành công thìngười dùng sẽ thực hiện các thao tác lệnh tiếp theo
Ví dụ C: a001 LOGIN Thanhlytm01 kimThanhtam
S: a001 OK LOGIN completed
CHECK
Arguments: none
Kết quả trả về: OK - check completed
BAD - command unknown or arguments invalid
Lệnh này dùng để kiểm tra tại thời điểm này lệnh SELECT đã thực hiện hay chưa, nếuthực hiện rồi trả về OK
SELECT
Arguments: mailbox name (tên hòm thư)
Kết quả trả về : OK - select completed, now in selected state
NO - select failure, now in authenticated state: no such mailbox, can'taccess mailbox
BAD - command unknown or arguments invalid
Lệnh Select dùng để nhận biết được hòm thư có bao nhiêu thư bao gồm thư mới, thưđọc rồi và thư đã xoá Lệnh này cho phép ta thay đổi thuộc tính của hòm thư cũng nhưnhưng lá thư mà chúng lưu trữ bởi các lệnh khác trong IMAP
CLOSE
Arguments: none
Kết quả trả về : OK - close completed, now in authenticated state
NO - close failure: no mailbox selected
BAD - command unknown or arguments invalid
Trang 29Lệnh này dùng để đóng lệnh SELECT lại hay có thể hiểu loại bỏ lệnh này và khônglưu lại các thuộc tính đã thay đổi với hòm thư này.
FETCH
Arguments: message set message data item names
Kết quả: OK - fetch completed
NO - fetch error: can't fetch that data
BAD - command unknown or arguments invalid
Lệnh dùng để hiển thị nội dung của một lá thư Thông số theo sau gồm có hai thôngsố: đầu tiên là số thứ tự của lá thư và thông số thư hai là message data item names nhưngthông số này phải tuân theo RFC822 được trình bày ở trên
UID
Arguments: là các lệnh trong IMAP
Kết quả trả về: OK - UID command completed
NO - UID command error
BAD - command unknown or arguments invalid
EXAMINE
Arguments: mailbox name
Kết quản trả về: OK - examine completed, now in selected state
NO - examine failure, now in authenticated state: no such mailbox,can't access mailbox
BAD - command unknown or arguments invalid
Lệnh này tương tự như lệnh SELECT cùng một kế quả trả về nhưng khi dùng lệnh nàychúng ta chỉ xem thông tin không thay đổi được trạng thái của hòm thư cũng như cácthuộc tính của nó
CREATE
Arguments: tên hòm thư cần tạo
Kết quả trả về:OK - create completed
NO - create failure: can't create mailbox with that name
BAD - command unknown or arguments invalid
Lệnh tạo ra một hòm thư mới với tên đã chọn và trả lại là OK nếu quá trình tạo ra hòmthư trên Server không gặp lỗi
Ví dụ: C: A003 CREATE Thanhly
S: A003 OK CREATE completed
C: A004 CREATE Inbox
S: A004 No mailbox name Exist
DELETE
Trang 30Arguments: tên hòm thư cần xoá.
Kết quả trả về:OK - delete completed
NO - delete failure: can't delete mailbox with that name
BAD - command unknown or arguments invalid
Lệnh xoá hòm thư, nếu xoá thành công thì kết quả nhận được là OK
RENAME
Arguments: (tên hòm thư tồn tại) (tên hòm thư mới)
Kết quả: OK - rename completed
NO – renamefailure: can't rename mailbox with that name,
can't rename to mailbox with that name
BAD - command unknown or arguments invalid
Lệnh chuyển đổi tên hòm thư, kết quả là OK nếu thành công
COPY
Arguments: tên lá thư đến tên hòm thư
Kết quả trả về:OK - copy completed
NO - copy error: can't copy those messages or to that name
BAD - command unknown or arguments invalid
Đây là lệnh copy một lá thư từ hòm thư này sang hòm thư khác
SUBSCRIBE
Arguments: tên hòm thư
Kết quả trả về: OK - subscribe completed
NO - subscribe failure: can't subscribe to that name
BAD - command unknown or arguments invalid
Lệnh dùng để thiết lập thuộc tính active của hòm thư,tuy nhiên nó không thể thay đổiđược đặc tính hòm thư hay nói cách khác nó dùng để kiểm tra xem hòm thư này có tồn tạihay không
UNSUBSCRIBE
Arguments: tên hòm thư
Kết quả trả về: OK - unsubscribe completed
NO - unsubscribe failure: can't unsubscribe that name
BAD - command unknown or arguments invalid
Lệnh này ngược lại với SUBSCRIBE nghĩa là nó loại bỏ thuộc tính active của hòmthư
LIST
Trang 31Arguments: tên hay những ký tự đặc trưng.
Kết quả trả về: OK - list completed
NO - list failure: can't list that reference or name
BAD - command unknown or arguments invalid
Nếu tên hay những ký tự theo sau hợp lệ thì lệnh này trả về tập tên các hòm thư,thường tên hay ký tự theo sau là “% ,*, “”, /, String*,” Chúng ta tạm hiểu nó như mộtlệnh Dir trong MS-DOS
LUSB
Arguments: tên hay những ký tự đặc trưng
Kết quả trả về: OK - list completed
NO - list failure: can't list that reference or name
BAD - command unknown or arguments invalid
Lệnh này tương tự như list nhưng chỉ khác một điều là nhưng hòm thư nhận được phải
ở trạng thái active
STATUS
Arguments: tên hòm thư (trạng thái)
Kết quả trả về: OK - status completed
NO - status failure: no status for that name
BAD - command unknown or arguments invalid
Lệnh này trả về trạng thái hiện tại của hòm thư, nó không làm ảnh hưởng đến sựchuyển đổi của hòm thư cũng như các trạng thái của các lá thư Trạng thái theo sao hiệnnay trong IMAP4rev1 như sau Chức năng của lệnh này dùng để check mail
MESSAGES: số thư mới trong hòm thư.
RECENT: số lá mail cũ.
UIDNEXT: giá trị UID tiếp theo sẽ được gán cho một lá thư mới trong hòm thư.
UIDVALIDITY: giá trị UID của hòm thư.
UNSEEN: những lá thư của mà người dùng chưa xem nội dung.
Ví dụ : C: A042 STATUS Thanhly (MESSAGES RECENT)
S: * STATUS Thanhly (MESSAGES 23 RECENT 40)S: A042 OK STATUS completed
NOOP
Arguments: none
Kết quả trả về: OK - noop completed
BAD - command unknown or arguments invalid
Trang 32Lệnh này thực chất không làm gì cả mà mục đích để kiểm tra xem giữa mail Client vàmail Server còn liên lạc với nhau không.
STORE
Arguments: message set message data item name value for message data item
Responses: untagged responses: FETCH
Result: OK - store completed
NO - store error: can't store that data
BAD - command unknown or arguments invalid
Thiết lập lại trạng thái của thư, mỗi lá thư có nhưng trạng thái như thư mới nhận làRecent tiếp theo là trạng thái chưa đọc Unsen, đọc rồi Seen và trạng thái xoá Deleted vàmột số cờ đặt trưng khác
Nếu thêm trạng thái thì dùng lệnh trong Arguments tương ứng là +FLAGS <flag list>hay +FLAGS.SILENT <flag list>
Nếu loại bỏ trạng thái thì dùng lệnh trong Arguments tương ứng là -FLAGS <flaglist> hay -FLAGS.SILENT <flag list>
FLAGS.SILENT là thiết lập lại trạng thái server hồi đáp lại là hiên tại lá thư đó đang ởnhững trạng thái nào lệnh này ngược lại với lệnh –FLAGS
EXPUNGE Command
Arguments: none
Responses: untagged responses: EXPUNGE
Result : OK - expunge completed
NO - expunge failure: can't expunge (e.g permission denied)
BAD - command unknown or arguments invalid
Lệnh dùng để kiểm tra những lá thư có trạng thái deleted và loại nó ra khỏi hòm thư,đưa vào thùng rác(hòm thư trash) Nếu những như hòm thư Trash được chọn thì những láthư này sẽ được xoá ra khỏi mail của bạn
LOGOUT
Arguments: none
Kết quả tả về: OK - logout completed
BAD - command unknown or arguments invalid
Lệnh dùng để đóng kết nối lại sao một phiên làm việc
Ngoài các lệnh trên trong IMAP4 còn một số lệnh khá hay khác như SEARCH,AUTHENTICATE, vì thời gian và năng lực có hạn nên đồ án của em có lẽ chỉ dừng lại
ở các lệnh trên
Trang 33I Giới thiệu về Trường Tân Group
I.1 Quá trình hình thành và phát triển
Tiền thân là công ty DTSCorp có trụ sở chính tại Tp.HCM, thành lập vào năm 2005,hoạt động trong lĩnh vực tư vấn giải pháp CNTT, thiết kế và thi công các hệ thống mạng,
an ninh mạng, các ứng dụng CNTT cho các doanh nghiệp
Tháng 5 năm 2006 hợp tác với công ty TNHH VSIC Informatics - công ty 100% vốnnước ngoài - đầu tư và thành lập chi nhánh công ty TNHH VSIC Informatics tại ĐàNẵng, hoạt động chuyên về lĩnh vực đào tạo CNTT
Tháng 01 năm 2008: Mua lại toàn bộ chi nhánh công ty TNHH VSIC Informatics tại
Đà Nẵng, tăng vốn điều lệ và đổi tên thành TTG Training Center.
Từ thời điểm có mặt tại Đà Nẵng năm 2006 VSIC Informatics (nay là TTG Training
Center) đã từng bước khẳng định và dần trở thành một trong những Trung tâm đào tạo
Công nghệ mạng máy tính hàng đầu tại Đà Nẵng nói riêng và các tỉnh miền Trung nóichung
Để giữ vững vị thế hàng đầu trong đào tạo Công nghệ mạng máy tính, TTG Training
Center tiếp tục những nỗ lực để duy trì chất lượng đào tạo ưu việt cùng với những dịch
vụ hỗ trợ học viên tốt nhất
TTG Training Center hiện là nhà cung cấp hàng đầu về dịch vụ đào tạo trong lĩnh
lực công nghệ thông tin và truyền thông tại Việt Nam:
iảng viên đẳng cấp Quốc tế, nhiệt tình, tận tâm và kinh nghiệm thực tiễn
Trang 34Hình 5:Giới thiệu về TTG
Thiết bị đầy đủ, hiện đại của chính hãng
Hình 6: Giới thiệu về TTG
Chương trình, giáo trình luôn được cập nhật Version mới nhất
Thực hành ngoài giờ trên thiết bị và không giới hạn thời gian
Trang 35Hình 7: Giới thiệu về TTG
Tham gia miến phí các Hội thảo chuyên đề hàng tuần để bổ sung thêm kiếnthức thực tiễn
Hình 8: Giới thiệu về TTG
Trang 36I.2 Các đối tác hiện nay của TTG training center
Hình 9: Giới thiệu về TTG
Cơ sở 1: 134 Lê Duẩn, Quận Hải Châu, Thành phố Đà Nẵng
Trang 37Cơ sở 2: 75 Nguyễn Khuyến, Quận Thanh Khê, Thành phố Đà Nẵng
Hình 10: Giới thiệu về TTG Điện thoại: (0511) 3867768 - Fax: (0511) 3867767 - Email: info@ttgtc.com.
I.4 Chứng chỉ đào tạo của Truong Tan Group Training
Center
Hình 11: Giới thiệu về TTG
Trang 38II Khảo sát và đặc tả nhu cầu
II.1 Khảo sát
II.1.1 Khảo sát nhu cầu người sử dụng
Đối tượng chủ yếu là các nhân viên trong công ty, ngoài ra các học viện cũng có thểđăng kí sử dụng hộp mail của công ty
Các nhân viên lễ tân gửi mail cho các học viên , các đối tác Những nhân viên này cónhu cầu gửi mail nhiều nhất
Phòng kĩ thuật gửi mail cho các phòng ban khác Phòng này có nhiệm vụ kiểm soáttoàn bộ mail ra vào công ty , đảm bảo thông tin bảo mật , lọc mail , phục hồi dữ liệu …Ban giám đốc gửi mail cho đối tác của công ty , mail cho nhân viên trong công ty.Việcgửi mail của ban giám đốc đòi hỏi tính bảo mật cao nhất
Các giảng viên liên lạc với các nhân viên khác trong công ty cũng như trao đổi với họcviên về các vấn đề trong bài giảng
Các học viên có nhu cầu cũng có thể đăng kí mail tại hộp thư của trung tâm , để tiệncho việc trao đổi thông tin với trung tâm nhằm phục vụ cho việc học
II.1.2 Khả năng đáp ứng của Trường Tân
Trường Tân Group là một danh nghiệp vừa và hiện tại đang sử dụng Mailbox free từgoogle, tuy nhiên khả năng đáp ứng về mặt thiết bị của trung tâm là có thể đảm bảo, như
là thuê đường leased line đảm bảo về đường truyền , đảm bảo các thiết bị phần cứng cơbản như router, switch, PC, modem… Tuy nhiên việc mua Server riêng về dùng choMailServer dường như là quá tốn kém với một doanh nghiệp cỡ vừa như Trường Tân.Tuy nhiên do nhu cầu phát triển và mở rộng của trung tâm về sau cũng như để đảmbảo tính bảo mật cao hơn thì sau này trung tâm có thế sẽ cần đến một Mailbox tốt hơn,cần 1 Server mạnh và cho riêng mình… Do vậy cuốn đồ án này là nhóm tụi em cùng vớianh Nguyễn Duy Hải bên Trường Tân Group cùng nhau thử nghiệm cho việc xây dựng
mô hình MailServer mới bảo mật hơn, của riêng trung tâm mình về sau
Vì sao lại là thí nghiệm, vì thực tế thì triển khai Mail Server cho một doanh nghiệp cỡvừa mà dùng Exchange thì có nhiều vấn đề, do vậy việc triển khai này chỉ mang tính cục
bộ và thử nghiệm để test các chức năng của hệ thống Mail Server Exchange 2007 nhằmđưa ra một số so sánh với hệ thống đang dùng hiện tại Và cũng từ đó làm tiền đề chohướng đi mở rộng hệ thống MailServer của trung tâm sau này
II.1.3 Một số hình ảnh thiết bị của Trường Tân
Trang 39II.1.4 Mô hình mạng trong Trường Tân
Hình 12: Mô hình thiết kế Mail Server
Mô hình ở đây là 1 máy làm Domain Controller + Mail Server , các Client kết nối vật
lý với nó thông qua Switch.Một router được định tuyến để đi ADSL
Trang 40Các phòng ban được đặt Group Mailbox riêng , phân quyền riêng giữa các phòngban.Quản trị viên MailServer có quyền quản lý vào ra , đọc thông tin, giới hạn một sốtính năng , ngăn chặn Mail Spam và Virus , sao lưu và phục hồi dữ liệu cho user…
II.2 Đặc tả yêu cầu
II.2.1 Đối với hệ thống MailServer
a Chức năng sản phẩm
Thiết kế phải đảm bảo các điều kiện như :
Cho phép người dùng gửi và nhận mail trực tiếp thông qua Internet với tênmiền của trung tâm
Khả năng hạn chế được Mail spam và Virus trước khi chuyển tiếp tới ngườinhận
Người dùng có thể gửi và nhận mail thông qua Mail Client và Web mail
Người dùng có thể nhận và gửi mail bình thường khi đi công tác xa và ngườiquản trị mạng có thể quản trị hệ thống Mail Server của công ty thông quaInternet
Hệ thống mail phải có tính bảo mật
Thiết lập dung lượng tối đa cho từng mailbox
Quản lý được nội dung mail của người dùng
Có thể sao lưu và phục hồi dữ liệu
b Yêu cầu phi chức năng
Yêu cầu giao diện phần cứng:
Bộ xử lý (CPU):Vi xử lý Xeon hoặc Pentium 4 64-bit / AMD Opteron hoặcAthalon 64-bit
Bộ nhớ (Memory) RAM 1GB cộng với 7MB trên từng mailbox
Không gian đĩa còn trống Khoảng 1.2 Gb trống để cài đặt Exchangeserver2007
Dung lượng đĩa cứng trên ổ hệ thống ít nhất là 200MB
Yêu cầu phần mềm:
Cài đặt Microsoft NET Framework v2.0
Cài đặt MMC v3.0
Cài đặt Windows PowerShell
Máy cài đặt Exchange phải là máy chạy hệ điều hành Server 2003 và đã Joinvào Domain
Upgrade DC Server lên Domain Functional Level (Raise)
Máy đã cài đặt Enterprise Root CA