Tổng quan về thiết kế Web Server
GVHD: Nguyễn Ngọc Bình ĐỒ ÁN TỐT NGHIỆP A YÊU CẦU CỦA ĐỀ TÀI: Bao gồm phần sau: Tìm hiểu Web server thông dụng nay: + Microsoft Internet Information Server + Apache Web Server Trình bày đặc điểm khả năng, cài đặt, vận hành, hỗ trợ ứng dụng Web so sánh điểm mạnh, yếu, ưu nhược điểm chúng Tìm hiểu hệ thống mailing list: Tìm hiểu nghi thức truyền nhận mail SMTP POP3 Tìm hiểu cách vận hành cài đặt hệ thống mail hệ điều hành thông dụng: + Internet Mail + Linux Mail B CƠ SỞ LÝ THUYẾT: CHƯƠNG I TÌM HIỂU VỀ CÁC WEB SERVER THÔNG DỤNG I GIỚI THIỆU VỀ HỆ ĐIỀU HÀNH WINDOWS NT Thếâ hệ điều hành mạng: Mạng bao gồm tài nguyên (máy trạm, máy in…) thiết bị truyền thông (router, bridge) Với việc ghép nối máy tính thành mạng cần thiết phải có hệ thống phần mềm có chức quản lý tài nguyên, tính toán xử lý truy cập cách thống mạng, hệ gọi hệ điều hành mạng Mỗi tài nguyên mạng file, đóa, thiết bị ngoại vi quản lý tiến trình định hệ điều hành mạng điều khiển tương tác tiến trình truy cập đến tiến trình Quản lý tài nguyên: tập tin xa, nạp chạy App dùng chung, I/O với thiết bị mạng dùng chung, cấp phát CPU tiến trình NOS Căn vào việc truy cập tài nguyên mạng mà người ta chia thực thể mạng thành hai loại chủ khách, máy khách (Client) truy cập vào tài nguyên không chia xẻ tài nguyên với mạng, máy chủ (Server) máy tính nằm mạng chia xẻ tài nguyên với người dùng mạng Hiện hệ điều hành mạng thường chia làm hai loại hệ điều hành mạng ngang hàng hệ điều hành mạng phân biệt (clent/server) trang ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình Với hệ điều hành mạng ngang hàng, máy tính mạng vừa đóng vai trò chủ lẫn khách tức chúng sử dụng tài nguyên mạng lẫn chia xẻ tài nguyên cho mạng Ví dụ: Lantastic Artisoft, Netware Novell, Windows (for Workgroup, 95, NT client) Microsoft Với hệ điều hành mạng phân biệt máy tính phân biệt chủ khách, máy chủ mạng (Server) giữ vai trò chủ máy người dùng giữ vai trò khách (các trạm) Khi có nhu cầu truy cập tài nguyên mạng trạm tạo yêu cầu gửi chúng tới server sau server thực gửi trả lời Hệ điều hành mạng Windows NT Windows NT hệ điều hành mạng cao cấp hãng Microsoft Phiên có tên Windows NT 3.1 phát hành năm 1993 phiên server Windows NT Advanced Server (trước LAN manager for Windows NT) Năm 1994 phiên Windows NT Server Windows NT Workstation phiên 3.5 phát hành Tiếp theo đời phiên 3.51 Các phiên Workstation sử dụng để thành lập mạng ngang hàng, phiên Server dàng cho quản lý file tập trung, in ấn chia sẻ ứng dụng Năm 1995, Windows NT Workstation phiên 4.0 Windows NT Server 4.0 đời kết hợp với cấu trúc khung người anh em Windows 95 tiếng phát hành trước không lâu (trước cấu trúc khung Windows NT giống Windows 3.1) kết hợp giao diện quen thuộc, dễ sử dụng Windows 95 mạnh mẽ, an toàn, bảo mật cao Windows NT Windows NT có hai mà đôi với hai cách tiếp cận mạng khác Hai gọi Windows NT Workstation Windows NT server Với hệ điều hành chuẩn NT ta xây dựng mạng ngang hàng, server mạng công cụ quản trị cần thiết cho server mạng, có nhiều giải pháp xây dựng mạng diện rộng Cả hai Windows NT Workstation Windows NT server xây dựng sở nhân NT chung giao diện hai có đặc trưng an toàn theo tiêu chuẩn C2 Windows NT Workstation sử dụng để kết nối nhóm người sử dụng nhỏ, thường làm việc văn phòng Tuy nhiên với Windows NT server ta có khả chống hỏng hóc cao, khả cung cấp dịch vụ mạng lớn lựa chọn kết nối khác nhau, Windows NT server không hạn chế số người thâm nhập vào mạng Với Windows NT server ta có công cụ quản trị từ xa vào mạng mà thực việc quản trị máy tính xa Nó tích hợp với tất sơ đồ mạng BUS, STAR, RING hỗn hợp Windows NT hệ điều hành có sức mạnh công nghiệp cho số lượng khổng lồ máy tính IBM compatible, Windows NT hệ điều hành thực dành cho người dùng, quan, công ty xí nghiệp Windows NT hệ điều hành đa nhiệm, đa xử lý với địa 32 bit nhớ Nó yểm trợ trang ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình ứng dụng DOS, Windows, Win 32 GUI ứng dụng dựa ký tự Windows NT server hệ điều hành mạng, đáp ứng cho mạng cục (LAN) vừa đáp ứng cho mạng diện rộng (WAN) Intranet, Internet Windows NT server hẳn hệ điều hành khác tính mềm dẻo, đa dạng quản lý Nó vừa cho phép quản lý mạng theo mô hình mạng phân biệt (Client/Server) vừa quản lý theo mô hình mạng ngang hàng (Peer to Peer) Windows NT server đáp ứng tốt dịch vụ viễn thông, dịch vụ sử dụng rộng rãi tương lai Windows NT server cài đặt đơn giản, nhẹ nhàng điều quan trọng tương thích với tất hệ mạng, không đòi hỏi người ta thay đổi có Cho phép dùng dịch vụ truy cập từ xa, có khả phục vụ đến 64 cổng truy nhập từ xa Đáp ứng cho máy trạm Macintosh nối với Windows NT server Windows NT server yểm trợ nghi thức mạng chuẩn NETBUEI, IPX/SPX, TCP/IP … nghi thức khác Windows NT tương thích với mạng thông dụng Novell netware, Banyan VINES Microsoft LAN Manager Đối với mạng lớn khả thâm nhập từ xa, sản phẩm Windows NT server cung cấp chức bổ sung nhu cầu , khả kết nối với máy tính lớn máy Macintosh III TỔNG QUAN VỀ WEB SERVER : Web Server: Web server phần mềm server đằng sau WWW Nó lắng nghe yêu cầu từ phía client, chẳng hạn trình duyệt Netscape Microsoft Internet Explorer Khi nhận yêu cầu từ phía client, xử lý yêu cầu trả vài liệu dạng fom chứa trang định dạng dạng văn hình ảnh Trình duyệt Web trả lại liệu với khả tốt trình đến người sử dụng Khái niệm Web server đơn giản chương trình mà chúng chờ đợi yêu cầu từ phía client đáp ứng yêu cầu nhận Web server kết nối với trình duyệt client sử dụng giao thức HTTP, giao thức chuẩn hóa phương thức yêu cầu gửi xử lý yêu cầu Nó cho phép nhiều client khác kết nối với server cung cấp mà không gặp trở ngại vấn đề tương thích Hầu hết tài liệu yêu cầu đáp ứng phải định dạng ngôn ngữ HTML HTML phần ngôn ngữ đánh dấu khác gọi SGML, sử dụng rộng rãi nhiều tổ chức phủ liên bang trang ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình HTML nguồn sống Web Nó ngôn ngữ đánh dấu đơn giản sử dụng để định dạng văn Trình duyệt thông dịch thông tin đánh dấu hiển thị thông tin cần đáp ứng với khả tốt Quan trọng nữa, HTML cho phép liên kết với tài liệu tài nguyên khác, thể tính siêu văn Web Siêu văn cho phép người sử dụng xem tài liệu khác lưu trữ máy máy khác đặt nơi khác giới Nó cho phép thông tin tồn dạng ba chiều Người sử dụng đọc tài liệu mà chuyển đến chỗ khác Tiến trình tìm mang thông tin hoàn toàn suốt người sử dụng Nó ngôn ngữ uyển chuyển dễ sử dụng Sự điều hướng thông tin qua nhiều thông tin theo cách đặc biệt Nó cho phép ngwời sử dụng thu thập thông tin cách dễ dàng hiển thị chúng theo cách mà người sử dụng dễ lựa chọn Nếu bất ngờ người sử dụng hỏi cách để tạo trang Web Thì họ giáp mặt với hàng loạt vấn đề có liên quan mà họ cần phải tìm hiểu trước bắt đầu viết mã trang HTML Vấn đề quan trọng lý phải lựa chọn phần mềm server để sử dụng, với thông tin mà báo cáo cung cấp, lựa chọn có lẽ không khó Các vấn đề mà cần phải quan tâm lựa chọn Web server để giao phó công việc cho - Phần mềm trả tiền hay đươc miễn phí - Dễ cài đặt - Dễ cấu hình - Dễ mở rộng tuỳbiến vài diện mạo server - Các đặc trưng - Sự phát triển liên tục - Hỗ trợ bảo mật - Mã nguồn sẵn có - Hỗ trợ công nghệ - Hỗ trợ tảng - Hỗ trợ phần mềm thứ ba IV INTERNET INFORMATION SERVER (IIS): IIS dịch vụ tuỳ chọn Windows NT server cung cấp tính Web site Giải pháp phổ biến Microsoft cho Web site chạy IIS Windows NT server IIS thành phần để xây dựng Internet Intranet server trền Windows NT 4.0, Workstation Win 95 IIS tích hợp đầy trang ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình đủ Windows NT 4.0 Với đầy đủ IIS Windows NT 4.0 người sử dụng nhận thuận tiện xây dựng chế bảo mật Windows NT server Windows NT File System (NTFS) Người sử dụng sử dụng kỷ thuật Internet thêm vào cung cấp IIS để nâng cao tính Microsoft Back Office, bao gồm thành phần sau: - Hệ thống quản trị sở liệu Microsoft SOL Server Client/Server - Hệ thống thông báo Microsoft Exchange Server Client/Server - Microsoft Proy Server - Microsoft SNA Server kết nối với mạng IBM enterprise - Hệ thống quản lý Server Microsoft (tập trung quản lý hệ thống phân tán) -Microsoft Commercial Internet Server (MCIS) Với IIS người sử dụng triển khai liên tục ứng dụng mạng lên server đời muộn nội dung Web mơi IIS đầy đủ hỗ trợ hệ thống ngôn ngữ lập trình VB, VB Script, J Script TM phát triển Microsoft Java Component Nó hỗ trợ ứng dụng CGI dành cho ngôn ngữ lập trình Web sở ISAPI mở rộng lọc Cài đặt IIS Windows NT server: Microsoft cung cấp chương trình cài đặt thân thiện để cài đặt IIS Windows NT server Các bước lấy chương trình từ NT Option Pack tải từ Internet chạy Setup.exe Windows NT Option Pack: IIS thành phần Windows NT Option Pack Một Windows NT Option Pack sau cài đặt đầy đủ phải bao gồm thành phần sau: Microsoft Transaction Server (MTC) Microsoft Management Console (MMC) Microsoft Index Server Microsoft Certificate Server Microsoft Site Server Express (SSE) - MTS thành phần giải tiến trình hệ thống cho trình phát triển, phá huỷ quản lý thi hành mức cao ứng dụng server mạnh - MMC ứng dụng xuyên suốt phân chia công cụ quản lý mà đưa cách để quản trị chương trình mạng, thêm vào MMC kết hợp với sản phẩm Microsoft như: Windows NT tất sản Office.phẩm thuộc MS Back Trong MMC tự không đưa cho người sử dụng chức thêm vào mà cung cấp môi trường chung cho snap-ins Snap-ins cung cấp môi trường quản trị ảo cho sản phẩm tương thích trang ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình Snap-ins trình bày IIS dịch vụ quản lý Internet (ISN) Khi IIS khởi động, MMC khởi động nạp vào snap-ins Trong tương lai tất sản phẩm MS Back Office bao gồm Windows, Windows NT, công cụ quản trị mạnh chuyển sang MMC Một IIS phải bao gồm đầy đủ thành phần sau: Content Index (Index Server) FTP Publishing Service IIS Admin Service (Internet Service Manager snap-in) Microsoft Network News Transfer Protocol (NNTP) Service Microsoft Simple Mail Transfer Protocol (SMTP) Service MSDTC (Microsoft Distributed Transaction Coordinator) World Wide Web Publishing Service Quản lý IIS Web server: + HTTP server: Dịch vụ tạo WWW server công cộng Server tạo nhiều trang HTML cho phép người sử dụng chạy ứng dụng CGI để thi hành công việc thêm vào server dựa yêu cầu client Văn bản, hình ảnh, âm tài nguyên khác tải xuống WWW client + Gopher Server: Dịch vụ cung cấp tài nguyên cho Gopher client Server gửi file, danh sách thư mục mục chọn trình đơn khác đến Gopher client + FTP server: Dịch vụ cập nhật đến server cài đặt sẵn Windows NT (TM), chuyển file có sẵn đến FTP client Mặc dù WWW thay hầu hết chức FTP, nhiên FTP sử dụng để chép file từ máy client đến máy server Nếu người truy cập từ xa cần làm việc đó, họ phải sử dụng FTP + Sự dễ dàng chia xẻ: Tất dịch vụ phần tiến trình với mục đích làm hạn chế sử dụng nhớ tăng hiệu IIS hỗ trợ thi hành giám sát đếm kiểm tra SNMP với FTP, Gopher, HTTP… Bộ đếm SNMP nằm nút IIS tên MIB + Internet Server API: Các API cung cấp ứng dụng cho giao diện với IIS Có cách để API sử dụng: + Các phần mở rộng CGI: Các API cho phép người sử dụng viết CGI DLL mà vùng nhớ giống IIS Đây khác biệt từ CGI bình thường thi hành, mà tiến trình rời rạc Sử dụng phần mở rộng làm tăng khả thi hành server làm giảm nhớ yêu cầu trang ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình + Bộ lọc: Các API sử dụng để viết DLL mà ngăn chặn tất khảng tải HTTP nhận server Một ứng dụng viết mà thực nén, giải nén, mã hóa, giải mã thêm vào xác thực + Internet Service Manager: Công cụ sử dụng để cấu hình theo dõi tất IIS mạng Nó sử dụng RPC để cấu hình IIS máy khác + Các ứng dụng client: IIS hỗ trợ giao thức HTTP, Gopher, FTP client giao thức trình duyệt : Internet Explorer, Netscape + Internet Database Connector (IDC): - Với IDC người sử dụng có thể: - Truy cập ODBC tương thích với sở liệu - Tạo trang Web quản lý sở liệu - Chèn, cập nhật xóa thông tin sở liệu người sử dụng muốn nhập vào từ trang Web - Thực câu lệnh SQL khác IIS WWW Server: WWW tập hợp thông tin client server Dữ liệu siêu văn (hyper text) chia xẻ server chạy phần mềm Web truy cập client chay phần mềm ứng dụng Web gọi trình duyệt Web WWW server cung cấp thông tin phân tán phần mềm, theo hướng site hướng thư mục Tài liệu Web tài liệu siêu văn viết ngôn ngữ đánh dấu siêu văn (HTML), với thẻ đặc biệt để liên kêt đến nội dung tài liệu khác, chúng gọi siêu liên kết (hypelink) Với siêu liên kết, xuất phát từ trang tài liệu người sử dụng đến nơi giới để xem trang tài liệu khác bước kích chuột vào liên kết mà trình duyệt thể WWW kèm với mô hình mạng client/server sử dụng giao thức HTTP client server Tài liệu chứa nhiều server tự trị Internet truy cập HTTP client gọi trình duyệt Web Để truy cập vào tài nguyên WWW, client phải: + Chạy trình duyệt WWW chẳng hạn Internet Explorer (TM) Masaic(TM) Netscape(TM)… Có vài WWW client có sẵn chúng tải xuống trực tiếp từ Internet + Kết nối đến WWW server cách cung cấp địa URL gửi yêu cầu HTTP Điển client yêu cầu file (trang HTML, hình ảnh…) thư mục hiển thị từ server, client gửi ứng dụng đến server trang ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình Server đáp ứng với trạng thái hoạt động thành công bị lỗi liệu trả cho yêu cầu client Sau liệu gửi đi, kết nối đóng lại phần tài liệu gửi giữ lại server Mỗi đối tượng tài liệu HTTP đòi hỏi kết nối khác WWW với giao thức HTTP trở thành cánh thông dụng để truy cập tài liệu Internet WWW cung cập cách dễ dàng để truy cập liệu Internet mạng Intranet công ty A) CÁC TIỆN LI CỦA VIỆC SỬ DỤNG DỊCH VỤ WWW: - Trình duyệt WWW hỗ trợ nhiều kiểu liệu Một trình duyệt WWW tự động tải xuống hiển thị file văn bản, hình ảnh, chạy video, sound clip khởi chạy ứng dụng trợ giúp cho tất loại file phổ biến Người sử dụng không cần biết trình duyệt tải xuống sử dụng file liệu xa đơn giản trình duyệt giúp ta việc tải xuống hiển thị file Một ví dụ: Một WWW client mở file ảnh BMP, người sử dụng thấy hiển thị cửa sổ ứng dụng WWW client Nếu sử dụng ứng dụng khác, chẳng hạn FTP tải file xuống lưu đóa, người sử dụng phải chạy ứng dụng khác chẳng hạn Paint Bruh để xem - Trình duyệt WWW hỗ trợ nhiều giao thức Trình duyệt WWW giới hạn để truy cập kiểu server Trình duyệt WWW hỗ trợ nhiều giao thức để truy cập file FTP server, bảng chọn Gopher server, Newgroups tài nguyên WWW B) GIỚI THIỆU VỀ GIAO THỨC HTTP: HTTP giao thức sử dụng chủ yếu Internet ngày HTTP giao thức tiên phong phát triển Web Nó có đặc điểm chung tính không biên giới Giao thức hướng đối tượng sinh từ cần thiết cho giao thức toàn cầu để làm đơn giản việc truy cập vào Internet HTTP giao thức client/server nằm tầng ứng dụng mô hình phân tần Internet Bằng việc mở rộng phương thức hay dòng lệnh, người sử dụng sử dụng HTTP cho nhiều chức khác nhau, kể chức quản lý hệ thống tên server đối tượng phân tán HTTP không ngừng cải tiến, dẫn đến việc W3C đưa vào năm 1994 phát triển thành tiêu chuẩn chung cho Web C) HOẠT ĐỘNG CỦA HTTP: Các tiến trình xảy Client mở tài liệu HTNL WWW server: 1/ Kết nối TCP: Mặc định HTTP server lắng nghe cổng 80 Trình duyệt lựa chọn cổng cục (>1024) thực kết nối TCP đến cổng trang ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình server trước liệu gửi Một HTTP server lắng nghe cổng khác, nhiên client cần phải cung cấp sô thứ tự cổng xác URL để kết nối 2/ Yêu cầu phía Client: Dòng yêu cầu: Chứa câu lệnh yêu cầu gọi phương thức địa URL đối tượng giải yêu cầu phương thức + Phương thức: Được sử dụng để thị cho server thi hành công việc đặc biệt Hầu hết server bao gồm IIS hỗ trợ phương thức phương thức không thi hành hầu hết trình duyệt GET: Phương thức thị cho HTTP server gửi đến đối tượng (các Web site, file, hình ảnh…) địa URL Phương thức dùng HTTP client HEAD: Phương thức giống GET, nhiên trả thông tin header đối tượng toàn liệu POST: Phương thức sử dụng HTTP client để gửi đối tượng lên server Ví dụ: GET www.microsoft.com/HTTP + Trường tiêu đề gói tin: Đây tập trường mô tả client kiểu liệu gửi + Dữ liệu: Nếu client gửi liệu chẳng hạn form đến server, nằm phiên yêu cầu 3/ Server trả lời: WWW server nhận yêu cầu trình phương thức yêu cầu chứa dòng lệnh yêu cầu Server sau trả lời Dòng Status : Chỉ yêu cầu thành công bị lỗi Message Header Field: Nó cung cấp thông tin server kiểu liệu trả Dữ liệu trả lời: Đây liệu yêu cầu dạng bit 4/ Đóng kết nối D) GIỚI THIỆU VỀ SECURE SOCKETS LAYER (SSL) SSL cung cấp kết nối bảm đảm cách mã hóa giải mã liệu Một SSL-enable server giống IIS kết nối với SSL-enable client chẳng hạn trình duyệt Internet Explorer Giao thức SSL nằm tầng trình diễn OSI di chuyển liệu từ tầng ứng dụng HTTP đến tầng chuyển vận TCP Nó chịu trách nhiệm cho việc chứng nhận, mã hóa kiểm tra tính toàn vẹn liệu Chức chứng nhận bảo đảm dự liệu gửi đến server cần gửi server bảo đảm Việc mã hóa liệu bảo đảm liệu bị đọc người khác server nhận Giải mã liệu bảm đảm liệu không bị sửa đổi thay trình truyền trang ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình Khi client kết nối đến WWW server sử dụng SSL xảy tiến trình sau: Client dành lấy chứng nhận server: Client Server tự giới thiệu chúng lẫn thông điệp HELLO trao đổi thông tin (chứa phương thức mã hóa) để sử dụng, phiên trao đổi thông tin, chứng nhận server (chứa khoá công khai server) liệu ngẫu nhiên truyền Client xác minh server: Client xác minh chứng nhận server từ chứng thực sau sử dụng để gửi thông điệp để xác thực server Nếu server không chuyển lại việc xác thực đúng, client cảnh báo cho người sử dụng “server is not who it claims to be “ “trojan” server Client/server xác nhận khóa chứng thực để sử dụng cho phiên này: Nếu server trả lời lại thành công, client server tạo khóa bí mật ngẫu nhiên (chỉ Master Key đặc tả SSL) từ việc trao đổi liệu ngẫu nhiên phương thức mã hóa điển hình (chẳng hạn RSA) Giải mã liệu với khóa: Tất liệu gửi kênh SSL mã hóa với khóa bí mật Tổ chức Web site: Các Web site phải tự nhập có nghóa tự hỗ trợ Mỗi Web site di chuyển dến máy khác để cân việc tải xuống cho mục đích lưu thông mạng Để làm việc này, chúng phải tự hỗ trợ mình, tự có bảo mật riêng phạm vi ứng dụng riêng Nếu người sử dụng nhà cung cấp Internet, họ muốn thiết kế, di chuyển có người sử dụng cập nhật Web site mà không quấy rầy đến site khác máy Giao thức HTTP sử dụng URL để yêu cầu file từ Web server Từ hầu hết file chứa hệ thống file, IIS cần chuyển URL sang tên đầy đủ file, IIS làm công việc cho yêu cầu Tuy nhiên, đưa lên người quản trị để cấu hình server mà URL ánh xạ đến thư mục Để thiết kế cấu trúc hệ thống file máy mà host nhiều Web site, người sử dụng cần biết khác thư mục gốc (Home Dir), thư mục gốc ảo (Virtual Root) thư mục (Sub Dir) Người sử dụng cần biết phải sử dụng chúng Home Dir: Một URL chứa tên miền yêu cầu thư mục chủ Ví dụ, URL yêu cầu file mặc định thư mục chủ: http://www.myserver.com Công việc người quản trị cần phải làm giúp đỡ Web server ánh xạ URL đến thư mục chủ Trong ví dụ trên, thư mục chủ Web site ánh xạ đến: trang 10 ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình File cấu hình uucprelays File uucprelays dùng để bỏ qua đường dẫn UUCP đến site từ xa đường dân tốt tồn Ví dụ, người sử dụng thường sử dụng đường dẫn wizard!bignet!merlin!tpci tạo liên kết đường đến tpci, nên sử dụng file uucprelays để đổi lại đường dẫn địa mail File cấu hình uucpxtalbe File uucpxtalbe sử dụng địa kiểu UUCP sử dụng việc vận chuyển mail File cung cấp dẫn cho công việc chuyển địa kiểu DNS sang UUCP Nếu người sử dụng sử dụng mail server khác mail server muốn sử dụng UUCP để kết nối đến máy cụ thể độ tin cây, file thực cần thiết File chứa mục vào liệt kê tên kiểu UUCP theo sau tên miền: Chatton chatton.com Mục vào Sendmail mà mail chatton.com phảøi cập nhập qua UUCP đến chatton ( đánh địa kiểu UUCP) Mục vào bắt buộc địa mail đến yvone@chatton.com phải viết lại giống chatton!yvone, địa mà UUCP sử dụng Xây dựng file sendmail.cf từ file sendmail.m4 Bây giờ, cấu hình xong file sendmail.m4 file có liên qua nó, sử dụng xử lý m4 để tạo file sendmail.cf Một file sendmail.m4 sẵn sàng để làm việc, bắt nguồn từ dòng lệnh: Make sendmail.cf Một file tạo, chép sang thư mục /etc khởi động Sendmail với dòng lệnh: /usr/lib/sendmail –bd –q1h khởi động lại máy tính II SỬ DỤNG SENDMAIL PHIÊN BẢN 8.0 Trên đóa CD-ROM Linux kèm theo chương trình Sendmail 8.0 sẵn sàng cài đặt để sử dụng Có thay đổi nhỏ so với phiên trước Sendmail 8.0 gồm có phần khác để chọn lựa - uucp-old: (cũng giống uucp) : Sử dụng phiên cần khả tương thích với hệ thống UUCP kiểu cũ - uucp-new: (phiên gần suucp) giống Sendmail trừ việc có thêm lệnh rmail để gửi đến nhiều người nhận đồng thời Phiên cải tiến so với uucp-old - uucp-dom: Cho phép sử dụng địa kiểu tên miền Phiên khả tương thích với số hệ thống khác mà người sử dụng kết nối đến trang 87 ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình - uucp-uudom: Là kết hợp uucp-new uucp-dom cung cấp nét đặc trưng hai Nó cho phép sử dụng địa kiểu UUCP kiểu tên miền Thiết lập thư mục cấu hình cho Sendmail Các file cấu hình Sendmail ngày trở nên nhỏ để làm cho công việc người quản trị dễ dàng Hệ thống Sendmail có thư mục chứa file cần thiết cho công việc cấu hình, là: - cf: Thư mục cung cấp cho người sử dụng thông tin host sử dụng Sendmail - hack: Thư mục danh sách hack sử dụng macro m4 để cung cấp định mở rộng Các thông tin mà thư mục hỗ trợ cung cấp cách hợp lý file cấu hình - m4: Thư mục cung cấp file chứa thông tin thích hợp cho tất file cấu hình - mailer: Thư mục chứa file định nghóa mailer sử dụng m4 Các file thường cung cấp thông tin cho mạng cục bộ, UUCP, USENET, phần mềm FAX … - site config: Thư mục chứa thông tin site cục Một số site quan trọng để cài đặt Sendmail xử lý cấu hình III SỬ DỤNG SMAIL Hệ thống Smail giống hệ thống Sendmail hầu hết chức năng, trình cấu hình cấu hình khác Trong nhiều trường hợp, Smail dễ dàng làm việc Sendmail lựa chọn tốt cho hệ thống nhỏ vừa Smail điều khiển việc chuyển nhận mail nào? Hệ thống Smail quản lý daemon, khởi tạo hệ thống chạy chế độ nhiều người sử dụng đồng thời Sau Smail chờ có kết nối (thường TCP UUCP) xử lý tất mail vừa nhận Bởi Smail chạy daemon, điều cho phép xử lý phân phát nhanh mail nhập mà không cần khởi động chương trình mail Hệ thống Smail điều khiển mail gửi cách sử dụng kết nối đến mailer người sử dụng Ví dụ: Nếu message gửi từ mailer agent chẳng hạn ELM mail, chương trình dùng để gửi mail tên người nhận đến rmail, chương trình chuyển phát mail Có vài mailer agent gửi mail đến chương trình Sendmail thay rmail Như vậy, mail nhận mail gửi điều khiển liên kết Smail, rmail Sendmail Chương trình xử lý Smail chia thành phần riêng biệt, bao gồm: Bộ dẫn đường (router), Bộ chuyển hướng (director) chuyển vận (transport) trang 88 ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình - Bộ dẫn đường điều khiển trình xử lý địa cách mà message gửi máy - Bộ chuyển hướng điều khiển trình gửi chuyển tiếp máy giải bí danh sử dụng message - Bộ chuyển vận điều khiển chuyển vận message Hầu hết hệ thống Linux có chương trình Smail nằm thư mục /usr/local/bin có chúng nằm thư mục khác cần phải biết xác đường dẫn đến thư mục Smail để cấu hình hệ thống cách đắn Có thể định vị đường dẫn với dòng lệnh: Find /-name Smail –print Cài đặt Smail Hệ thống Smail đòi hỏi nhiều liên kết để Smail thi hành Có liên kết quan trọng hầu hết đưa đến file /usr/sbin/rmail /usr/lib/sendmail Các liên kết thực cần thiết hầu hết chương trình gửi mail người sử dụng gửi mail đến rmail Sendmail (phụ thuộc vào chương trình mail sử dụng) mail gửi thêm lần đến Smail Các liên kết cho phép trình chuyển hướng xảy suốt người sử dụng ứng dụng mail Phải kiểm tra file rmail Sendmail có liên kết đến Smail hay chưa, chưa có phải thiết lập liên kết Các liên kết có sẵn thường thiết lập tượng trưng hiển thị thư mục liệt kê mục nhập sau: lrwxrwxrwx root root Sep 16:35 file1 -> file2 Ký tự -> biểu tượng liên kết tồn Hãy kiểm tra rmail Sendmail , biểu tượng liên kết chưa có, tạo chúng dòng lệnh: ln -s /usr/local/bin/smail /usr/bin/rmail ln -s /usr/local/bin/smail /usr/lib/sendmail Các đường dẫn cần phải thay đổi cho phù hợp với đường dẫn Smail, Sendmail rmail máy Một liên kết tạo, kiểm tra tồn chúng cách hiển thị thư mục tìm ký hiệu biểu tượng liên kết Nếu Smail cài đặt vào sau gỡ bỏ khỏi hệ thông qua kênh SMTP cần phải thiết lập liên kết chương trình Smail hệ thống SMTP dòng lệnh: ln -s /usr/local/bin/smail /usr/sbin/smtpd Tiếp theo, dịch vụ SMTP phải cho phép thông qua file cấu hình TCP Một file /etc/service phải thiết lập phép kết nối SMTP thông qua dòng lệnh: smtp 25/tcp # Simple Mail Transfer Protocol trang 89 ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình Phải kiểm tra nội dung dòng để không xảy tình trạng kết nối Dòng lệnh cho phép liên kết SMTP thiết lập giống cổng TCP số 25 Nếu lựa chọn cài đặt mặc định Smail daemon (tự động khởi tạo khởi động hệ thống), phải chắn Smail daemon khởi tạo file rc (chẳng hạn rc.inet2) Câu lệnh thường dùng Smail daemon : /usr/local/bin/smail -bd -q15m Mục chọn –bd trả vệ trình hoạt động daemon Smail –q15m bắt buộc Smail xử lý message sau 15 phút Nếu muốn thiết lập cho trình phân phát mail xảy thường xuyên hay thay đổi giá trị Nếu phải lựa chọn cài đặt Smail không chạy chế độ giống daemon muốn xuất cách inetd có mail đến, điều phải file rc Bởi vừa chạy Smail hai chế độcùng lúc Tiếp đó, điều chỉnh mục nhập file /etc/inetd.conf giống sau: smtp stream tcp nowait root /usr/sbin/smtpd smtpd Biểu tượng liên kết SMTPD chương trình Smail phải dòng lệnh để phù hợp với chức hoạt động Sự thay đổi thiết lập file cấu hình cần thiết cho Smail, phụ thuộc vào hệ thống kết nối sử dụng mail Ở nơi khác việc cấu hình thay đổi sử dụng hệ thống UUCP kết nối TCP mạng Có thể chọn hai giải pháp cho phép mail phân phát thông qua hai giao thức Cấu hình Smail cho UUCP Việc cấu hình hệ thống Smail để sử dụng với message mail UUCP gửi đến gửi đơn giản Chỉ cần phải điều chỉnh file cấu hình mặc định nằm /usr/lib/smail/config chương trình soạn thảo ASCII cách thay đổi giá trị biến sau: Visible_domain : Các tên miền site người sử dụng có liên quan Visible_name: Tên miền đầy đủ site UUCP_name: Tên UUCP sở site Smart_host: Tên host UUCP Thiết lập tên miền cục bộ: Bắt đầu cách thiết lập tên miền máy cục nằm file cấu hình config, nơi định nghóa biến visible_domain # Our domain name visible_domain = tpci; Biến visible_domain thiết lập tên miền site người sử dụng trỏ tới Trường sử dụng Smail để tìm người nhận message user cục Hệ thống Smail lấy message trích địa người nhận, đối trang 90 ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình chiếu dựa vào tên máy cục (từ dòng lệnh hostname) tất giá trị định biến visible_domain Nếu có so khớp với tên số đó, message dành cho người nhận cục Nếu không khớp, message chuyển mạng bên Nếu có giá trị hợp lệ cho tên miền cục bộ, giá trị cách dấu hai chấm Ví dụ: visible_domain = tpci : tpci.com : tpci.uucp Nếu site người sử dụng đăng ký hợp lệ bảng định vị UUCP, thêm miền UUCP vào danh sách giá trị hợp lệ Trường hợp sau đay người sử dụng trỏ tới miền tpci (từ tên miền đầy đủ tpci.com) UUCP: visible_domain = tpci : tpci.com : uucp Khi message gửi khỏi máy cục bộ, hệ thống Smail nối thêm tên miền đầy đủ máy cục phần thông tin dẫn đường Tên đầy đủ mạng cục define file/ usr/ lib/ smail/ config mà dial với biến visible_domain #Our domain name for outgoing mail visible_name = tpci.com Giá trị visible_domain phải kết hợp tên host tên miền nhận giá trị visible_domain Giá trị visible_domain thường tên miền đầy đủ người sử dụng (nếu có) tên miền tồn bảng dẫn đường khác Các tên UUCP luân phiên: File cấu hình config chứa mục nhập cho biến tên uucp_name Biến thường gán tuỳ ý, không bắt buộc với điều kiện biến visible_domain visible_name nhập giá trị Biến dùng tên hệ thống trả dòng lệnh hostname tên đăng ký bảng định vị UUCP Để thiết lập giá trị cho biến uucp_name, tìm (hoặc tạo chưa có) dòng khai báo sau: # uucp mapping name uucp_name = tpci.com Nếu tên người sử dụng đăng ký giống thiết lập biến visible_name đơn giản lặp lại giá trị biến uucp_name mà không tác dụng Nếu tên site thay đổi, nhập vào giá trị thích hợp để thay Thiết lập UUCP Smart Host: Một vài hệ thống sử dụng máy khác bên smart host để điều khiển trình phát message đến nhận từ mạng khác Nếu sử dụng smart host, người sử dụng phải đặt tên cho file cấu hình config đến biến smart_host trang 91 ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình # Smart host smart_host = merlin; Trong trường hợp trên, mail cho mạng khác chuyển Smail đến máy merlin mà máy để ý đến trình dẫn đường khỏi mạng Bất kỳ tên máy nhận biến smart_host phải thuộc phạm vi hoạt động hệ thống UUCP Thiết lập kiểu phát chuyển mail: Có thể thiết lập hệ thống Smail để xử lý mail gửi đến nhiều cách khác Có thể thiết lập Smail chứa message gửi đến gửi hàng đợi xử lý chúng sau xử lý tức Quá trình điều khiển với biến queue_only delivery_mode Biến queue_only giá trị kiểu Boolean, thiết lập cho phép biến delivery_mode thiết lập giá trị sau: Foreground: Xử lý message gửi đến tức Background: Message phát trình nhỏ Queue: Giữ message lại để sau xử lý Một hàng đợi phép, message giữ lại hàng đợi Smail (thường nằm /var/spool/smail/message) hàng đợi xử lý Quá trình xử lý điều khiển chức –q dòng lệnh Smail (nếu Smail chạy daemon) cách đưa dòng lệnh runq từ file crontab (nếu Smail chạy từ inetd), để trình làm việc sau xác, runq phải liên kết Smail Gọi dòng lệnh khởi động từ file rc: /usr/local/bin/smail/ -bd –q15 Chú ý hàng đợi xử lý sau 15 phút, ví dụ trên, dòng lệnh xử lý hàng đợi thiết lập giá trị nào, phải không dài để file hàng đợi không nhận nhiều Và hiển thị nội dung hàng đợi Smail cách đưa dòng lệnh với chức –bd với dòng lệnh mailq (cũng liên kết đến Smail) Gỡ rối Smail Trên hệ điều hành Linux, Smail sử dụng file log để ghi lại công việc Hầu hết công việc ghi lại file /var/spool/smail/log/logfile Mỗi mục nhập trong file log tương ứng với công việc Smail hoàn tất chứa đứng thống số xác minh message, người gửi, người nhập, time, kích cỡ thông tin dẫn đường Người sử dụng xem nội dung file log để kiểm tra hệ thống Smail làm việc tốt Các lỗi vấn đề khác ghi file paniclog (/var/spool/smail/log/paniclog) Một mục nhập file cho thấy thông tin message lý mà message không gửi Ví dụ: Các lỗi chung hầu hết lỗi dẫn đường message thông qua SMTP (ERR_148) transport smtp: connect: Connection refused trang 92 ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình Nếu tìm thấy lỗi file paniclog điều có nghóa SMTP bị lỗi, kết nối không trả lời host từ xa không dịch vụ TCP không phép Nếu mục nhập file paniclog giúp người sử dụng giải vấn đề cho phép trình gỡ rối Smail cách thêm vào chức –d theo sau số dòng lệnh khởi động Con số cho thấy số lượng thông tin gỡ rối sinh hiển thi hình Nếu không nhận mail chuyển đến mailbox người sử dụng, kiểm tra tên đường dẫn file mailbox Nếu không chắùn nơi chứa mailbox, cố gắng tạo liên kết /usr/spool/mail/username /var/spool/mail/username Điều chỉnh cách vận hành Smail: Ba thành phần Smail (rooter, director transport) cấu hình để điều chỉnh trình vận hành chúng Nhưng người sử dụng cần xem xét chi tiết thành phần rooter hai thành phần lại tùy biến trình cài đặt Linux đầy đủ Trong hầu hết trường hợp, trình vận hành thành phần Smail điều khiển nhiều file dựa vào thư mục cấu hình Smail (/usr/lib/smail) Tùy theo file cấu hình có sẵn từ đóa CD-ROM từ site FTP Linux mà đưa cấu hình khác Tìm file sau hiệu chỉnh cho phù hợp với hệ thống sử dụng Thành phần router Smail điều khiển trình xử lý địa đích, dẫn đường đến mail host cho trình gửi message xa xác định kiểu chuyển vận sử dụng để gửi message Thành phần rooter thực số tác vụ, việc xác định message gửi đến máy cục hay máy từ xa (sử dụng giá trị biến khai báo /usr/lib/smail/config) Nếu message dành cho máy cục bộ, message chuyển sang director Nếu message dành cho máy từ xa, địa message đưa đến router driver để xác định host mà message chuyển đến Router driver định file router (/usr/lib/smail/router) File chứa tên router driver, router driver nhận địa đích message để nhận chúng có thông tin yêu cầu router cụ thể để gửi message Nếu sử dụng kết nối SLIP/PPP lẫn UUCP người sử dụng gặp số vấn đề Smail phải chờ đợi lâu cho phiên kết nối Để đơn giản kiểu cài đặt này, xếp lại trật tự router kiểm tra đường dẫn file trước giải router Khi router nhận đường tốt đến máy đích, nhận transport yêu cầu để liên lạc với router mail máy Đường dẫn thực đến máy đích hiệu chỉnh số thời điểm Ví dụ, máy tính từ xa chatton@bigcat.com truy cập đến tốt thông trang 93 ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình qua liên kết UUCP thay SMTP, địa đích điều chỉnh lại router đến bigcat!chatton (kiểu địa UUCP) Như địa đích trở nên cụ thể rõ ràng Ví dụ, địa chatton@bigcat.com giải để định máy khác chẳng hạn chatton@whisker.bigcat.com địa nhận message chuyển đến hiệu Cấu hình Smail để sử dụng với hệ thống TCP Nếu cần phải sử dụng kết nối mạng truyền mail cần phải điều chỉnh lại file config để định kiểu kết nối tên host Có nhiều cách để cấu hình hệ thống mail cho mạng Các cách bao gồm sử dụng hệ thống NFS (Network File System) phép file cấu hình đơn lẻ chia sẻ với tất máy, sử dụng POP IMAP để điều khiển mail site trung tâm cài đặt lên máy điều khiển mail độc lập Quá trình cấu hình cho tất phương thức phần nhiều giống Chỉ khác chỗ có hay không file cấu hình đặt máy mạng máy đơn lẻ truy cập sau NFS SMTP máy khác Bắt đầu trình cấu hình cách thiết lập tên miền cục sử dụng biến visible_domain visible_name Ví dụ: # Our domain name visible_domain=tpci.com # Our domain name for outgoing mail visible_name=tpci.com Đoạn mã thiết lập tên miền cục tên miền định Mục nhập cho biến visible_domain sử dụng Smail để gửi đính kèm đến tất mail gửi Cả hai biến thường gán giống Bước cấu hình thiết lập tên smart_host điều khiển message mạng cục Nếu không sử dụng smart_host máy người sử dụng điều khiển kết nối mạng đến không cần giá trị Các biến có liên quan việc cài đặt lên smart_host smart_path ( định tên máy smarthost) smart_transport (chỉ định kiểu phương thức sử dụng để kết nối đến smarthost) Ví dụ: # smart host routing # smart host name smart_host=merlin # communications protocol to smart host smart_transport=smtp Giá trị smart_transport SMTP sử dụng để nhận biết giao thức kết nối SMTP trang 94 ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình C HIỆN THỰC CHƯƠNG TRÌNH Trên sở lý thuyết tìm hiểu Mailing list Mail system em tiến hành xây dựng mô hệ thống mail với chức bảng gửi nhận mail dựa giao thức truyền nhận SMTP POP3 Chương trình chương trình Mail Client viết ngôn ngữ lập trình PERL Phần sau trình bày lưu đồ thực chương trình lưu đồ giao thức truyền nhận mail SMTP POP3 trang 95 GVHD: Nguyễn Ngọc Bình ĐỒ ÁN TỐT NGHIỆP Lưu đồ tổng quát: LOGIN MENU SEND CHECK EXIT MAIL MAIL Logout SEND MAIL RESET EXIT ERROR END MAIL BOX S ETUR N EXIT ETUR N R CHECK CHECK MAIL OK R MAIL NO MAIL EXIT EAD R EXIT RETURN DELETE R EXIT ETURN R READ MAIL ADDRESS ETUR EPLY N R EXIT RETURN EXIT trang 96 ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Ngọc Bình HOẠT ĐỘNG CỦA CHƯƠNG TRÌNH POP3CLIENT: Chương trình Pop3 Client thực thi có kết nối với Server Mail nhà cung cấp dịch vụ Khi thực thi, đầu tiên, lấy thông tin như: Tên máy địa IP Server Mail nhà cung cấp dịch vụ, Server gởi Mail, username password dùng để login vào Mailbox máy Server nhận Mail, hộp thư Inbox máy cục dùng để lưu giữ thư nhận về, số lần kết nối lại chương trình nhận mà bị ngắt chừng, thời gian timeout trường hợp Server không trả lời Kế tiếp, chương trình khởi tạo signal dùng để xử lý biến cố xảy trình nhận Mail, ví dụ: đường truyền bị ngắt, timeout,… Nếu biến cố xảy trình gọi hàm cài đặt sẳn kèm với biến cố để xử lý Tiếp theo, chương trình thực việc kiểm tra lại xem username password dùng để đăng nhập vào Mailbox Server Mail có cấu trúc POP3_SERVER chưa, có chương trình dùng username password để thực trình login vào Mailbox Server, chưa có hiển thị yêu cầu nhập vào username password để thực trình login Sau đó, Pop3Client mở socket để thực kết nối tới Server nhận Mail, mà tên địa IP computer mà chương trình Pop3Server chạy lưu giữ trường host cấu trúc POP3_SERVER Nếu tên, chương trình thực việc chuyển đổi sang địa IP để thực kết nối Nếu kết nối thực thành công, Pop3 Client nhận lời chào gởi tới Pop3 Server session bước vào trình AUTHORIZATION Lúc này, Pop3Client gởi username password tới cho Pop3Server kiểm tra Nếu trình AUTHORIZATION thực thành công, session bước vào trình TRANSACTION, không thành công, Pop3Server gởi thông báo lỗi lại cho Pop3Client Lúc này, Pop3Client thực việc đăng nhập lại với username password khác gởi lệnh “QUIT” để thoát Bước vào trình TRANSATION, Pop3 Client gởi lệnh “STAT” tới server để kiểm tra xem có mail mailbox hay không Nếu có, server trả tổng số thư có mailbox kích thước mailbox Tiếp đó, Pop3Client gởi lệnh “LIST” để lấy kích thước message Sau có tổng số message có mailbox, Pop3 Client bước vào vòng lặp dùng để nhận mail, với bước vòng lặp thực lệnh “RETR” với số thứ tự tương ứng với số vòng lặp dùng để nhận message tương ứng Sau nhận xong message, Pop3Client gởi lệnh “DELE i” tới server để xóa message Sau lấy hết message có mailbox server, Pop3Client gởi lệnh “QUIT” tới server để yêu cầu server chuyển Pop session sang trạng thái Update thoát Đối với Server, bước vào trạng thái UPDATE, xóa thật message đánh dấu xóa Mailbox vào đóng kết nối Nếu kết nối đóng lại mà Server không bước vào trạng thái UPDATE message đánh dấu xóa không xóa Mailbox mà trở lại trạng thái ban đầu trang 97 GVHD: Nguyễn Ngọc Bình ĐỒ ÁN TỐT NGHIỆP Lưu Đồ Cho Getmail Tạo socket Connect server port 110 No Yes Gởi lệnh USER username \r\n Response = +OK No Yes Gởi lệnh Gởi lệnh PASS passwordPASS password \r\n \r\n Response = +OK No Yes Gởi lệnh STAT \r\n Response = +OK No Báo lỗi Đóng Socket trang 98 GVHD: Nguyễn Ngọc Bình ĐỒ ÁN TỐT NGHIỆP Lưu Đồ Cho Getmail (Tiếp tục) Xử lý hàng nhận lấy tổng số message Gán i=1 Gởi lệnh RETR i Đọc vào dòng từ socket ghi File kết thúc mail incr i Yes i