Tìm hiểu về Microsoft Internet Information Server, xây dựng chương trình Internet mail

Tài liệu Tìm hiểu về Microsoft Internet Information Server, xây dựng chương trình Internet mail: ... Ebook Tìm hiểu về Microsoft Internet Information Server, xây dựng chương trình Internet mail

doc146 trang | Chia sẻ: huyen82 | Lượt xem: 1333 | Lượt tải: 0download
Tóm tắt tài liệu Tìm hiểu về Microsoft Internet Information Server, xây dựng chương trình Internet mail, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
. 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 1. Thế nào là một hệ điều hành mạng: Mạng bao gồm các tài nguyên (máy trạm, máy in…) và các thiết bị truyền thông (router, bridge). Với việc ghép nối các máy tính thành mạng thì cần thiết phải có một hệ thống phần mềm có chức năng quản lý tài nguyên, tính toán và xử lý truy cập một cách thống nhất trên mạng, hệ như vậy được gọi là hệ điều hành mạng. Mỗi tài nguyên của mạng như file, đĩa, thiết bị ngoại vi được quản lý bởi một tiến trình nhất định và hệ điều hành mạng điều khiển sự tương tác giữa các tiến trình và truy cập đến các tiến trình đó. Quản lý các tài nguyên: tập tin ở xa, nạp và chạy các App dùng chung, I/O với các thiết bị mạng dùng chung, chỉ cấp phát CPU trong tiến trình NOS. Căn cứ vào việc truy cập tài nguyên trên mạng mà người ta chia thực thể trong mạng thành hai loại chủ và khách, trong đó máy khách (Client) truy cập được vào tài nguyên của mình nhưng không chia xẻ tài nguyên của nó với mạng, còn máy chủ (Server) là máy tính nằm trên mạng và chia xẻ tài nguyên của nó với người dùng mạng. Hiện nay các hệ điều hành mạng thường được chia làm hai loại là hệ điều hành mạng ngang hàng và hệ điều hành mạng phân biệt (clent/server). Với hệ điều hành mạng ngang hàng, mỗi máy tính trên mạng vừa có thể đóng vai trò chủ lẫn khách tức là chúng có thể sử dụng tài nguyên của mạng lẫn chia xẻ tài nguyên của nó cho mạng. Ví dụ: Lantastic của Artisoft, Netware của Novell, Windows (for Workgroup, 95, NT client) của Microsoft. Với hệ điều hành mạng phân biệt các máy tính được phân biệt chủ và khách, trong đó máy chủ mạng (Server) giữ vai trò chủ và các 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 trên mạng các trạm tạo ra yêu cầu và gửi chúng tới server và sau đó server thực hiện và gửi trả lời. 2. Hệ điều hành mạng Windows NT Windows NT là hệ điều hành mạng cao cấp của hãng Microsoft. Phiên bản đầu tiên có tên là Windows NT 3.1 phát hành năm 1993 và phiên bản server là Windows NT Advanced Server (trước đó là LAN manager for Windows NT). Năm 1994 phiên bản Windows NT Server và Windows NT Workstation phiên bản 3.5 được phát hành. Tiếp theo đó là sự ra đời các phiên bản 3.51. Các phiên bản Workstation có thể sử dụng để thành lập mạng ngang hàng, còn các phiên bản Server dàng cho quản lý file tập trung, in ấn và chia sẻ các ứng dụng. Năm 1995, Windows NT Workstation phiên bản 4.0 và Windows NT Server 4.0 ra đời đã kết hợp với cấu trúc khung của người anh em Windows 95 nổi tiếng phát hành trước đó không lâu (trước đây cấu trúc khung của Windows NT giống Windows 3.1) đã được kết hợp giao diện quen thuộc, dễ sử dụng của Windows 95 và sự mạnh mẽ, an toàn, bảo mật cao của Windows NT. Windows NT có hai bản mà nó đi đôi với hai cách tiếp cận mạng khác nhau. Hai bản này gọi là Windows NT Workstation và Windows NT server. Với hệ điều hành chuẩn của NT ta có thể xây dựng mạng ngang hàng, server mạng và mọi công cụ quản trị cần thiết cho server mạng, ngoài ra còn có thể có nhiều giải pháp về xây dựng mạng diện rộng. Cả hai bản Windows NT Workstation và Windows NT server cùng được xây dựng trên cơ sở nhân NT chung và các giao diện và cả hai cùng có những đặc trưng an toàn theo tiêu chuẩn C2. Windows NT Workstation được sử dụng để kết nối những nhóm người sử dụng nhỏ, thường cùng làm việc trong một văn phòng. Tuy nhiên với Windows NT server ta có một khả năng chống hỏng hóc cao, những khả năng cung cấp dịch vụ mạng lớn và những lựa chọn kết nối khác nhau, Windows NT server không hạn chế số người có thể thâm nhập vào mạng. Với Windows NT server ta cũng có những công cụ quản trị từ xa vào mạng mà có thể thực hiện việc quản trị những máy tính ở xa. Nó tích hợp với tất cả những sơ đồ mạng BUS, STAR, RING và hỗn hợp. Windows NT là hệ điều hành có sức mạnh công nghiệp đầu tiên cho số lượng khổng lồ các máy tính IBM compatible, Windows NT là một hệ điều hành thực sự dành cho người dùng, các cơ quan, các công ty xí nghiệp. Windows NT là một hệ điều hành đa nhiệm, đa xử lý với địa chỉ 32 bit bộ nhớ. Nó yểm trợ các ứng dụng của DOS, Windows, Win 32 GUI và các ứng dụng dựa trên ký tự. Windows NT server là hệ điều hành mạng, đáp ứng cho mạng cục bộ (LAN) vừa đáp ứng cho mạng diện rộng (WAN) như Intranet, Internet. Windows NT server hơn hẳn các hệ điều hành khác bởi tính mềm dẻo, đa dạng trong 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 nhất các dịch vụ viễn thông, một dịch vụ được sử dụng rộng rãi trong tương lai. Windows NT server cài đặt đơn giản, nhẹ nhàng và điều quan trọng nhất là nó tương thích với hầu như tất cả các hệ mạng, nó không đòi hỏi người ta thay đổi những gì đã có. Cho phép dùng các dịch vụ truy cập từ xa, có khả năng phục vụ đến 64 cổng truy nhập từ xa. Đáp ứng cho các máy trạm Macintosh nối với Windows NT server. Windows NT server yểm trợ mọi nghi thức mạng chuẩn như NETBUEI, IPX/SPX, TCP/IP … và các nghi thức khác. Windows NT cũng tương thích với những mạng thông dụng hiện nay như Novell netware, Banyan VINES và Microsoft LAN Manager. Đối với mạng lớn và khả năng thâm nhập từ xa, sản phẩm Windows NT server cũng cung cấp các chức năng bổ sung nhu cầu , khả năng kết nối với máy tính lớn và máy Macintosh. III. TỔNG QUAN VỀ WEB SERVER : Web Server: Web server là một phần mềm server đằng sau WWW. Nó lắng nghe những yêu cầu từ phía client, chẳng hạn như một trình duyệt như Netscape hoặc Microsoft Internet Explorer. Khi nhận được một yêu cầu từ phía client, nó sẽ xử lý những yêu cầu đó và trả về một vài dữ liệu dưới dạng một fom chứa các trang được định dạng dưới dạng văn bản hoặc hình ảnh. Trình duyệt Web trả lại dữ liệu này với khả năng tốt nhất có thể và trình đến người sử dụng. Khái niệm về Web server đơn giản chỉ là một chương trình mà chúng chờ đợi những yêu cầu từ phía client và đáp ứng những yêu cầu đó khi nhận được. Web server kết nối với các trình duyệt hoặc các client sử dụng giao thức HTTP, đó là một giao thức đã được chuẩn hóa các phương thức của các yêu cầu gửi đi và xử lý các yêu cầu đó. Nó cho phép rất nhiều các client khác nhau kết nối với các server cung cấp mà không gặp bất kỳ một trở ngại nào trong vấn đề tương thích. Hầu hết các tài liệu yêu cầu hoặc đáp ứng đều phải được định dạng bằng ngôn ngữ HTML. HTML là một phần của một ngôn ngữ đánh dấu khác gọi là SGML, nó được sử dụng rộng rãi bởi nhiều tổ chức và trong các chính phủ liên bang. HTML là nguồn sống của Web. Nó là một ngôn ngữ đánh dấu đơn giản được sử dụng để định dạng văn bản. Trình duyệt thông dịch các thông tin đánh dấu này và hiển thị các thông tin cần đáp ứng này với khả năng tốt nhất có thể. Quan trọng hơn nữa, HTML cho phép liên kết với các tài liệu và tài nguyên khác, đây là sự thể hiện tính siêu văn bản của Web. Siêu văn bản cho phép người sử dụng xem một tài liệu khác lưu trữ ở trên cùng một máy hoặc trong một máy khác đặt ở một nơi khác trên thế giới. Nó cho phép thông tin tồn tại hầu như dưới dạng ba chiều. Người sử dụng không những chỉ có thể đọc tài liệu mà còn có thể chuyển đến một chỗ khác. Tiến trình tìm và mang thông tin về hoàn toàn trong suốt đối với người sử dụng. Nó là một ngôn ngữ uyển chuyển và dễ sử dụng. Sự điều hướng thông tin qua nhiều thông tin theo một cách đặc biệt. Nó cho phép ngwời sử dụng thu thập thông tin một cách dễ dàng và hiển thị chúng theo cách mà người sử dụng dễ lựa chọn nhất. Nếu bất ngờ người sử dụng hỏi bằng cách nào để tạo ra một trang Web. Thì họ sẽ giáp mặt với hàng loạt các vấn đề có liên quan mà họ cần phải tìm hiểu trước khi bắt đầu viết mã một trang HTML đầu tiên. Vấn đề quan trọng nhất và là lý do cơ bản nhất là phải lựa chọn phần mềm server nào để sử dụng, với những thông tin cơ bản nhất mà cuốn báo cáo này cung cấp, sự lựa chọn có lẽ là không khó. Các vấn đề mà cần phải quan tâm khi lựa chọn một Web server để giao phó công việc cho nó. - 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 hoặc tuỳbiến một vài diện mạo của server. - Các đặc trưng cơ bản. - 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ợ nền tảng. - Hỗ trợ đối với các phần mềm thứ ba. IV. INTERNET INFORMATION SERVER (IIS): IIS là một dịch vụ tuỳ chọn của Windows NT server cung cấp các tính năng về Web site. Giải pháp phổ biến nhất của Microsoft cho một Web site là chạy IIS trên nền Windows NT server. IIS là một thành phần cơ bản để xây dựng một Internet hoặc Intranet server trền nền Windows NT 4.0, Workstation và Win 95. IIS được tích hợp đầy đủ trong Windows NT 4.0. Với một bộ đầy đủ IIS và Windows NT 4.0 người sử dụng sẽ nhận được sự thuận tiện khi xây dựng một cơ chế bảo mật trên Windows NT server và Windows NT File System (NTFS). Người sử dụng có thể sử dụng các kỷ thuật Internet thêm vào được cung cấp bởi IIS để nâng cao các tính năng Microsoft Back Office, bao gồm các thành phần sau: - Hệ thống quản trị cơ sở dữ 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 của Microsoft (tập trung quản lý các hệ thống phân tán). -Microsoft Commercial Internet Server (MCIS). Với IIS người sử dụng có thể triển khai liên tục các ứng dụng mạng lên các server ra đời muộn các nội dung Web mơi nhất. IIS đầy đủ hỗ trợ các hệ thống ngôn ngữ lập trình VB, VB Script, J ScriptTM được phát triển bởi Microsoft và Java Component Nó cũng hỗ trợ các ứng dụng CGI dành cho các ngôn ngữ lập trình Web cơ sở và ISAPI mở rộng và các bộ lọc. 1. Cài đặt IIS trên Windows NT server: Microsoft cung cấp các chương trình cài đặt khá thân thiện để cài đặt IIS trên Windows NT server. Các bước cơ bản là lấy chương trình từ NT Option Pack hoặc tải từ Internet và chạy Setup.exe. Windows NT Option Pack: IIS là một thành phần của Windows NT Option Pack. Một bộ Windows NT Option Pack sau khi cài đặt đầy đủ phải bao gồm các 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 là một thành phần cơ bản giải quyết các tiến trình hệ thống cho các quá trình phát triển, phá huỷ và quản lý sự thi hành ở mức cao và các ứng dụng server mạnh. - MMC là một ứng dụng xuyên suốt phân chia các công cụ quản lý mà nó có thể đưa ra các cách để quản trị các chương trình mạng, thêm vào đó MMC được kết hợp với các sản phẩm của Microsoft như: Windows NT và tất cả các sản Office.phẩm thuộc MS Back Trong khi MMC tự nó không đưa cho người sử dụng bất kỳ một chức năng nào được thêm vào cả mà chỉ cung cấp một môi trường chung cho snap-ins. Snap-ins cung cấp môi trường quản trị ảo cho mỗi sản phẩm tương thích của nó. Snap-ins được trình bày trong IIS như là một dịch vụ quản lý Internet (ISN). Khi IIS khởi động, MMC cũng sẽ được khởi động và nạp vào snap-ins. Trong tương lai tất cả các sản phẩm của MS Back Office bao gồm cả Windows, Windows NT, các công cụ quản trị mạnh sẽ được chuyển sang MMC. Một bộ IIS phải bao gồm đầy đủ các 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. 2. Quản lý IIS Web server: + HTTP server: Dịch vụ này tạo một WWW server công cộng. Server này tạo nhiều trang HTML cho phép người sử dụng có thể chạy các ứng dụng CGI để thi hành các công việc thêm vào ở server dựa trên các yêu cầu của client. Văn bản, hình ảnh, âm thanh và các tài nguyên khác có thể được tải xuống WWW client. + Gopher Server: Dịch vụ này cung cấp các tài nguyên cho các Gopher client. Server gửi các file, các danh sách thư mục và các mục chọn trình đơn khác đến Gopher client. + FTP server: Dịch vụ này là một cập nhật đến server được cài đặt sẵn trên Windows NT (TM), nó chuyển các file có sẵn đến FTP client. Mặc dù WWW đã thay thế hầu hết các chức năng của FTP, tuy nhiên chỉ FTP mới có thể được sử dụng để sao chép các file từ một máy client đến một máy server. Nếu những 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 cả các dịch vụ trên là một phần của một tiến trình như nhau với mục đích là làm hạn chế sử dụng bộ nhớ ngoài và tăng hiệu quả. IIS cũng hỗ trợ thi hành sự giám sát các bộ đếm và kiểm tra SNMP với FTP, Gopher, HTTP… Bộ đếm SNMP nằm dưới nút IIS của cây tên MIB. + Internet Server API: Các API này cung cấp các ứng dụng cho giao diện với IIS. Có 2 cách để các API này sử dụng: + Các phần mở rộng CGI: Các API này cho phép người sử dụng viết các CGI DLL mà nó ở trong vùng bộ nhớ giống như IIS. Đây là sự khác biệt từ một CGI bình thường có thể thi hành, mà nó là một tiến trình rời rạc. Sử dụng các phần mở rộng này làm tăng khả năng thi hành của server và làm giảm bộ nhớ yêu cầu. + Bộ lọc: Các API này có thể được sử dụng để viết các DLL mà nó ngăn chặn tất cả khảng năng tải HTTP đang được nhận bởi server. Một ứng dụng có thể được viết mà nó thực hiện nén, giải nén, mã hóa, giải mã hoặc thêm vào các xác thực. + Internet Service Manager: Công cụ này được sử dụng để cấu hình và theo dõi tất cả các IIS trên một mạng. Nó sử dụng RPC để cấu hình IIS trên một máy khác. + Các ứng dụng client: IIS hỗ trợ các giao thức HTTP, Gopher, FTP và các client những giao thức này như là cá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 các cơ sở dữ liệu. - Tạo trang Web quản lý cơ sở dữ liệu. - Chèn, cập nhật và xóa thông tin cơ sở dữ liệu do người sử dụng muốn nhập vào từ trang Web. - Thực hiện các câu lệnh SQL khác. 3. IIS WWW Server: WWW là một bộ tập hợp các thông tin của client và server. Dữ liệu siêu văn bản (hyper text) được chia xẻ bởi các server đang chạy phần mềm Web và được truy cập bởi các client đang chay một phần mềm ứng dụng Web gọi là trình duyệt Web. WWW server cung cấp các thông tin phân tán và phần mềm, nhưng theo hướng site hơn là hướng thư mục. Tài liệu Web là một tài liệu siêu văn bản được viết bằng ngôn ngữ đánh dấu siêu văn bản (HTML), và với các thẻ đặc biệt để liên kêt đến nội dung các tài liệu khác, chúng được gọi là siêu liên kết (hypelink). Với siêu liên kết, xuất phát từ một trang tài liệu người sử dụng có thể đi đến mọi nơi trên thế giới để xem những trang tài liệu khác chỉ bằng bước kích chuột vào liên kết mà trình duyệt thể hiện. WWW đi kèm với mô hình mạng client/server và sử dụng giao thức HTTP giữa client và server. Tài liệu được chứa trên nhiều các server tự trị trên Internet và được truy cập bởi HTTP client gọi là trình duyệt Web. Để truy cập vào tài nguyên WWW, client phải: + Chạy một trình duyệt WWW chẳng hạn như Internet Explorer(TM) Masaic(TM) hoặc Netscape(TM)… Có vài WWW client có sẵn và chúng có thể được tải xuống trực tiếp từ Internet. + Kết nối đến một WWW server bằng cách cung cấp một địa chỉ URL và gửi yêu cầu HTTP. Điển hình như client yêu cầu một file (trang HTML, hình ảnh…) hoặc thư mục đang hiển thị từ server, client cũng có thể gửi một ứng dụng đến server. Server sẽ đáp ứng với trạng thái hoạt động hoặc thành công hoặc bị lỗi và dữ liệu trả về cho yêu cầu của client. Sau khi dữ liệu được gửi đi, kết nối sẽ đóng lại và không có phần nào của tài liệu đã gửi được giữ lại trên server. Mỗi đối tượng trong một tài liệu HTTP đòi hỏi một kết nối khác nhau. WWW với giao thức HTTP đã trở thành một cánh thông dụng để truy cập tài liệu trên Internet. WWW cung cập một cách dễ dàng nhất để truy cập dữ liệu trên Internet hoặc trên mạng Intranet của các công ty. A) CÁC TIỆN LỢI CỦA VIỆC SỬ DỤNG DỊCH VỤ WWW: - Trình duyệt WWW hỗ trợ nhiều kiểu dữ liệu. Một trình duyệt WWW có thể tự động tải xuống và hiển thị các file văn bản, hình ảnh, chạy video, sound clip và khởi chạy các ứng dụng trợ giúp cho tất cả các 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 hoặc sử dụng các file dữ liệu ở xa như thế nào chỉ đơn giản là trình duyệt đã giúp ta trong việc tải xuống và hiển thị các file. Một ví dụ: Một WWW client đang mở một file ảnh BMP, người sử dụng sẽ thấy nó hiển thị ngay lập tức nó trong cửa sổ ứng dụng của WWW client. Nếu sử dụng một ứng dụng khác, chẳng hạn như FTP sẽ chỉ tải file xuống và lưu trên đĩa, người sử dụng sẽ phải chạy một ứng dụng khác chẳng hạn như Paint Bruh để xem nó. - Trình duyệt WWW hỗ trợ nhiều giao thức. Trình duyệt WWW không có giới hạn để truy cập chỉ một kiểu server. Trình duyệt WWW hỗ trợ nhiều giao thức để truy cập file trên một FTP server, các bảng chọn trên Gopher server, Newgroups và tài nguyên WWW. B) GIỚI THIỆU VỀ GIAO THỨC HTTP: HTTP là một giao thức được sử dụng chủ yếu trên Internet ngày nay. HTTP là một giao thức đi tiên phong trong sự phát triển Web. Nó có một đặc điểm chung là tính không biên giới. Giao thức hướng đối tượng này được sinh ra từ sự cần thiết cho một giao thức toàn cầu để làm đơn giản việc truy cập vào Internet. HTTP là một giao thức client/server nằm ở tầng ứng dụng của mô hình phân tần Internet. Bằng việc mở rộng những phương thức hay dòng lệnh, người sử dụng có thể sử dụng HTTP cho nhiều chức năng khác nhau, kể cả chức năng quản lý hệ thống tên server và các đối tượng phân tán. HTTP không ngừng được cải tiến, dẫn đến việc W3C được đưa ra vào năm 1994 đã phát triển thành một tiêu chuẩn chung cho Web. C) HOẠT ĐỘNG CỦA HTTP: Các tiến trình xảy ra khi Client mở một tài liệu HTNL trên một WWW server: 1/ Kết nối TCP: Mặc định HTTP server sẽ lắng nghe ở cổng 80. Trình duyệt lựa chọn một cổng cục bộ (>1024) và thực hiện một kết nối TCP đến cổng một server trước khi dữ liệu được gửi. Một HTTP server có thể lắng nghe ở một cổng khác, tuy nhiên client cần phải cung cấp sô thứ tự cổng chính xác ở URL để có thể kết nối. 2/ Yêu cầu phía Client: Dòng yêu cầu: Chứa một câu lệnh yêu cầu gọi là phương thức và địa chỉ URL của đối tượng được giải quyết yêu cầu bởi phương thức. + Phương thức: Được sử dụng để chỉ thị cho server thi hành một công việc đặc biệt. Hầu hết các server bao gồm cả IIS chỉ hỗ trợ 3 phương thức bởi vì các phương thức không được thi hành bởi hầu hết các trình duyệt. GET: Phương thức này chỉ thị cho HTTP server gửi đến một đối tượng (các Web site, file, hình ảnh…) bằng địa chỉ URL. Phương thức này chỉ dùng trên HTTP client. HEAD: Phương thức này cũng giống như GET, tuy nhiên nó chỉ trả về thông tin header của đối tượng chứ không phải toàn bộ dữ liệu. POST: Phương thức này được sử dụng bởi HTTP client để gửi một đối tượng lên server. Ví dụ: GET www.microsoft.com/HTTP + Trường tiêu đề của gói tin: Đây là một tập các trường mô tả client và kiểu dữ liệu được gửi. + Dữ liệu: Nếu một client gửi một dữ liệu chẳng hạn một form đến một server, nó sẽ nằm trong phiên này của yêu cầu. 3/ Server trả lời: WWW server nhận một yêu cầu và quá trình này căn cứ trên phương thức yêu cầu chứa trong dòng lệnh yêu cầu. Server sau đó sẽ trả lời. Dòng Status : Chỉ ra yêu cầu thành công hoặc bị lỗi. Message Header Field: Nó cung cấp các thông tin về server và kiểu dữ liệu trả về. Dữ liệu trả lời: Đây là dữ 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 một kết nối bảm đảm bằng cách mã hóa và giải mã dữ liệu. Một SSL-enable server giống như IIS có thể kết nối với một SSL-enable client chẳng hạn như trình duyệt Internet Explorer. Giao thức SSL nằm ở tầng trình diễn OSI và di chuyển dữ 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 và kiểm tra tính toàn vẹn của dữ liệu. Chức năng chứng nhận bảo đảm rằng dự liệu được gửi đến đúng một server cần gửi và server thì bảo đảm. Việc mã hóa dữ liệu bảo đảm dữ liệu không thể bị đọc bởi bất kỳ một người nào khác ngoài server nhận. Giải mã dữ liệu bảm đảm dữ liệu không bị sửa đổi hoặc thay thế trong quá trình truyền đi. Khi một client kết nối đến một WWW server sử dụng SSL sẽ xảy ra các tiến trình sau: Client dành lấy chứng nhận server: Client và Server tự giới thiệu về chúng lẫn nhau bằng thông điệp HELLO và trao đổi thông tin (chứa các phương thức mã hóa) để sử dụng, tại phiên trao đổi thông tin, chứng nhận server (chứa một khoá công khai ủa server) và dữ liệu ngẫu nhiên sẽ được truyền đi. Client xác minh server: Client xác minh chứng nhận server từ một chứng thực và sau đó sử dụng nó để gửi một thông điệp để xác thực server. Nếu server không chuyển lại việc xác thực là đúng, client sẽ cảnh báo cho người sử dụng “server is not who it claims to be “ hoặc có thể là một “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 và server sẽ tạo ra một khóa bí mật ngẫu nhiên (chỉ ra như một Master Key trong đặc tả SSL) từ việc trao đổi dữ liệu ngẫu nhiên và phương thức mã hóa điển hình (chẳng hạn như RSA) Giải mã dữ liệu với một khóa: Tất cả các dữ liệu gửi ngoài kênh SSL thì được mã hóa với một khóa bí mật. 4. Tổ chức Web site: Các Web site phải tự nhập một mình có nghĩa là nó tự hỗ trợ chính nó. Mỗi Web site có thể di chuyển dến một máy khác để cân bằng việc tải xuống hoặc chỉ là cho mục đích lưu thông trên mạng. Để làm được việc này, chúng phải tự hỗ trợ mình, tự có các bảo mật riêng và các phạm vi ứng dụng riêng. Nếu người sử dụng là một nhà cung cấp Internet, họ sẽ muốn thiết kế, di chuyển và có người sử dụng cập nhật các Web site mà không quấy rầy đến các site khác trên cùng một máy. Giao thức HTTP sử dụng các URL để yêu cầu các file từ Web server. Từ khi hầu hết các file đều chứa trong hệ thống file, IIS cần chuyển một URL sang một tên đầy đủ của file, IIS làm công việc này cho mỗi yêu cầu. Tuy nhiên, nó sẽ đư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 trên một máy mà nó host nhiều Web site, người sử dụng cần biết sự khác nhau giữa thư mục gốc (Home Dir), thư mục gốc ảo (Virtual Root) và thư mục con (Sub Dir). Người sử dụng cũng cần biết khi nào thì phải sử dụng chúng. Home Dir: Một URL chứa một tên miền đang yêu cầu thư mục chủ. Ví dụ, URL dưới đây yêu cầu một file mặc định trong thư mục chủ: Công việc của người quản trị cần phải làm là giúp đỡ Web server ánh xạ URL đến thư mục chủ. Trong ví dụ trên, thư mục chủ của Web site này sẽ được ánh xạ đến: C:\inetpub\wwwroot Sub Dir: Sub Dir là một thư mục kế thừa một ánh xạ URL từ một cấu trúc hệ thống file. Ví dụ, nếu thư mục này đã tồn tại: C:\intetpub\wwwroot\sale3 Sau đó, URL này cũng đã tồn tại: Thư mục con không cần được định nghĩa đến Web server bởi người quản trị hệ thống. Bởi vì chỉ cần tạo ra một thư mục cha bằng Explorer là thư mục sẽ được tạo, không cần phải điều chỉnh trong cấu hình IIS. Virtual Root: Virtual Root là một thư mục con của một URL mà nó được ánh xạ đến các thư mục trong hệ thống file mà không thừa kế sự tồn tại của các hệ thống file này. Ví dụ: Nếu người sử dụng muốn site của họ chứa trong một URL đến: C:\inetpub\maketing\website\extenal Thư mục ảo sẽ tạo ra một Web site hiển thị như thể nó là một cấu trúc thư mục khác hơn hiện tại nó có trong hệ thống file. Khi nào thì cần sử dụng thư mục ảo: Thư mục ảo được sử dụng khi thư mục con không được sử dụng. Bởi vì thư mục con không giống như một Web server và chúng không có tất cả chức năng của một thư mục ảo, chúng có thể được dùng ở mọi nơi. Thêm vào đó, thư mụ con còn tổ chức tất cả các file chứa trong một nơi trung tâm cho các Web site. Các thư mục ảo dược dùng khi tất cả các file trong thư mục ảo không thể chứa được trên cùng một ổ đĩa. Ví dụ: Nếu người sử dụng có một Web site mà lớn hơn 2 Gb họ không thể chứa tất cả chúng trên cùng một ổ đĩa. Trong trường hợp này họ sẽ cần đến các Web site phân tán trong nhiều thư mục ảo trên các thư mục ở mỗi ổ đĩa. Để làm được người sử dụng phải chia Web site của họ lên nhiều đĩa. Về mặt lý thuyết, các truy cập ngẫu nhiên ngang qua nhiều ổ đĩa sẽ nhanh hơn các truy cập trên cùng một đĩa. Nếu người sử dụng có nhiều Web site và đang chia xẻ thông tin, các thư mục ảo có thể sử dụng để hoàn thành công việc này. Ví dụ, nếu phải chia xẻ hình ảnh, cả hai Web site cùng có một thư mục ảo gọi là Graphic mà nó ánh xạ tới cùng một vị trí trên ổ đĩa. Điều này sẽ không làm được với thư mục con. Sự cập nhật các file trong thư mục Graphic sẽ ảnh hưởng đến cả hai site. 5. Các kiểu của bảng thuộc tính của dịch vụ WWW Có 3 kiểu (hoặc còn gọi là lớp) khác nhau của bảng thuộc tính: Master, Default và File. Người sử dụng có thể định cấu hình riêng cho từng site của mình một trong 3 kiểu trên. Nhưng mọi sự thay đổi đều có ràng buộc với nhau, nó sẽ ảnh hưởng đến các site con và các file. Các loại bảng khác nhau của bảng thuộc tính sẽ có ích về khía cạnh phân cấp. Với bảng thuộc tính Master nằm ở phân cấp cao nhất và bảng thuộc tính File nằm ở cấp thấp nhất. Master: Các bảng thuộc tính Master quyết định các thuộc tính mặc định của các Web site ảo đã tạo với sự thiết lập của IIS, mà các Web site này quyết định các thuộc tính của các file đã được tạo ra trong mỗi Web site. Trong suốt quá trình cài đặt, IIS sẽ nạp các thuộc tính mặc định cho các bảng thuộc tính Master. Mỗi site ảo mà người sử dụng tạo ra sẽ kế thừa việc thiết lập này. Nếu họ thay đổi thiết lập ban đầu của bảng thuộc tính Master, các Web site ảo con sẽ kế thừa các thiết lập mới này nhưng các Web site ảo tạo trước đó sẽ giữ nguyên. Default: Quá trình cài đặt sẽ tạo ra các Web site với các thuộc tính mặc định của nó. Những các file nào mà được tạo ra với Web site mặc định sẽ kế thừa các thiết lập này. File: Các file tạo ra trong thư mục ảo sẽ kế thừa các thiết lập của thư mục ảo đó, ứng với các file được tạo ra trong các trang Web mặc định sẽ kế thừa các bảng thuộc tính của Web site đó. Sau khi một file được tạo ra thì các thuộc tính được cấu hình ở mức file. 6. Bảng thuộc tính WWW: Dịch vụ WWW trên IIS có thể cấu hình 9 bảng thuộc tính sau: Web Site: Sử dụng bảng thuộc tính Web Site để thiết lập sự nhận biết Web site, chỉ rõ số kết nối cho phép và cho phép hoặc cấm truy cập vào một Web site. Operators: Sử dụng bảng thuộc tính Operators để điều khiển các tài khoản người dùng nào có quyền quản trị các Web site của người sử dụng. Performance: Sử dụng bảng thuộc tính Performance để điều chỉnh cho thật tốt sự thi hành của các Web site. ISAPI filter: Sử dụng bảng thuộc tính ISAPI filter chứa các bộ lọc ISAPI. Người sử dụng có thể sử dụng ISAPI để chạy các ứng dụng từ xa. Yêu cầu một URL mà nó ánh xạ đến một bộ lọc đang hoạt động tại các ứng dụng đó. Có thể sử dụng các thông sô cài đặt của nó để ánh xạ một tên file đến bộ lọc cho phép trên một Web server. Home Direcory: Sử dụng bảng thuộc tính Home Direcory để thay đổi thư mục chứa các Web site và điều chỉnh các thuộc tính của nó. Document: Sử dụng bảng thuộc tính Document để chỉ định một tài liệu mặc định và gán các chức năng mặc định cho Web site. Directory Security: Sử dụng bảng thuộc tính Directory Security để cấu hình các tính năng bảo mật cho Web server. HTTP Header: Sử dụng bảng thuộc tính HTTP Header để thiết lập các gia trị trả về của trình duyệt trong phần header của một trang HTML. Custom Error: Sử dụng bảng thuộc tính Custom Error để liệt kê các thông báo trả về trình duyệt dành cho các lỗi HTTP. 7. Cấu hình WWW - Chia xẻ thư mục, file: Bảng thuộc tính của thư mục WWW trong Internet Service Manager (ISM) cho phép người quản trị chia xẻ các thư mục và file cho WWW client. Những thư mục này là những thư mục cụ bộ từ phân vùng FAT/NTFS hoặc là các thư mục từ những server khác mà IIS có thể truy cập được. WWW chia xẻ kết nối mặc định: Khi mà một client chỉ cung tên server ngay tại địa chỉ URL gọi là thư mục chủ. Ví dụ, nếu một client mở một địa chỉ: dịch vụ IIS trả về một tài liệu mặc định trong thư mục chủ trên www.microsofts server. Các thư mục chia xẻ khác vơi thư mục chủ được tham chiếu đến thư mục ảo. - Sử dụng ISM để chia xẻ thư mục: Có hai hộp thoại hiện ra cùng với ISM khi ta cấu hình việc chia xe thư mục WWW. Thẻ Directory, WWW hiện thị danh sách tất cả các cấu hình thư mục ảo WWW. Nó cũng cho phép người sử dụng thiết lập các thuộc tính kềm theo cho tất cả các thư mục chia xẻ. + Tài liệu mặc định: File này được trả về khi người sử dụng mở một thư mục và không chỉ định tên file. Điển hình cho file này là các file tên default.htm hoặc index.htm. + Thư mục đang duyệt: Nếu người sử dụng mở một thư mục mà không chứa một tài liệu mặc định, server sẽ trả về một danh sách các file trong thư mục. + Bảo mật: IIS có nhiều chức năng bảo mật để giữ gìn server và dữ liệu của người sử dụng khỏi những cuộc xâm nhập bất hợp pháp và hacker. IIS dựa vào sự thiết lập của Windows NT (TM) và một hệ thống chứng nhận C2. Giữ an toàn cho IIS server là một sự kết hợp của việc thiết lập bảo mật cho Windows NT và các chứng năng bảo mật của dịch vụ IIS. Thêm vào đó nếu server kết nối với Internet, một bộ chọn kênh (rooter) hoặc bức tường lửa có thể được thiết lập để cung cấp thêm độ an toàn. 8. Thư mục ảo: Thư mục ảo là một thư mục phi vật lý chứa trong thư mục chủ của dịch vụ IIS (WWW hoặc FTP) nhưng nó xuất hiện trong suốt đối với người sử dụng vào các Web site này. Thư mục ảo tăng khả năng linh hoạt cho việc người sử dụng quyết định lưu trữ file ở đâu trên server của họ. Bằng cách sử dụng các thư mục ảo để có thể cập nhật và truy cập dễ dàng nhất. Nó cũng cho phép tăng thêm dung lượng lưu trữ cho Web site mà không cần phải tắt server. Thư mục ảo có thế thiết lập cho cả dịch vụ WWW lẫn FTP chạy trên IIS. Thư mục ảo có thể tạo ra các thư mục định vị ở: - Trên cùng một đĩa: Như là các thư mục chủ WWWroot hoặc FTProot. - Một đĩa ở một máy khác trong mạng cục bộ. - Ở một đĩa của máy khác trên mạng, mà máy này phải cùng tên miền với máy có dịch vụ IIS. a) Thư mục ảo cục bộ: Người sử dụng có thể tạo ra các thư mục ảo cục bộ cho các thư mục được lưu trữ trên bất kỳ đĩa nào trên một máy tính được cài đặt IIS. Khi cấu hình mộït thư mục ảo cục bộ, người sử dụng phải cài đặt một biệt danh cho thư mục. Biệt danh này có thể là tên thư mục hoặc một tên bất kỳ nào khác mà nó nhận diện một Web site đến người sử dụng. Họ cũng phải cung cấp một đường dẫn đầy đủ cho thư mục ảo. b) Thư mục ảo từ xa: Sử dụng thư mục ảo từ x._.a cho các thư mục đã được cài đặt trên các máy khác với tên miền của máy đã cài đặt IIS. Cũng như đối với các thư mục ảo cục bộ, khi người sử dụng cấu hình một thư mục ảo từ xa, họ được yêu cầu tạo một biệt danh cho thư mục và phải cung cấp một một đia chỉ cho thư mục tuân theo quy ước UNC (quy ước đặt tên địa chỉ toàn cục). Để truy cập thư mục với một UNC, phải nhập vào một tên của người sử dụng và password phù hợp. Tên người sử dụng và password sẽ được sử dụng bởi người truy cập vào dữ liệu chứa trong thư mục ảo. Chú ý: Chắc chắn rằng tài khoản của người sử dụng mà đã thiết lập sẽ cho phép truy cập Internet đến một thư mục ảo từ xa mà chỉ cung cấp một quyền tối thiểu cho việc sử dụng site này. Đừng nên dùng tài khoản của nhà quản trị để truy cập các thư mục ảo. c) Thư mục ảo từ xa và FrontPage: Công cụ quản lý và soạn thảo FrontPage tự động quản lý việc sử dụng các thư mục ảo. Khi được cài đặt, FrontPage sẽ khởi tạo các thư mục ảo cho các thư mục chứa các phần mở rộng có thể thực thi. Thêm vào đó, ban có thể cho phép các phần mở rộng của file chuyển thành các đối tượng có thể thực thi được bằng cách đánh dấu vào các thư mục chứa chúng, chẳng hạn như các đối tượng mở rộng sau: Active Server Pages (.ASP) Các file Internet database connector (.idc) CGI Phần mở rộng ISAPI (.dll) Perl Script (.pl) Chú ý: bởi vì FrontPage không hỗ trợ đối với các vùng có nội dung không liền nhau vì vậy không thể dùng thư mục ảo để trộn các vùng có nội dung không liền nhau trong FrontPage. 9. Server ảo: Nhiều tên miền có thể được host lên một máy đơn đang chạy IIS bằng chách sử dụng server ảo. Với nhiều server ảo người sử dụng có thể host nhiều site Web và site FTP lên một máy đơn đang chạy IIS, điều này có nghĩa là không cần cấp một máy và một phần mềm trọn gói cho mỗi site này. Người sử dụng đơn giản chỉ cần một địa chỉ IP duy nhất cho mỗi tên miền được phân công đến server và bằng cách sử dụng Host Header người sử dụng có thể sử dụng một địa chỉ IP cho nhiều tên miền. Tuy nhiên chỉ site WWW mới có thể sử dụng Host Header. Server ảo cũng tập trung hóa việc áp dụng và đơn giản hóa việc nâng cấp các phần mềm server. Việc host nhiều server ảo lên cùng một máy có thể giảm bớt sự thi hành của phía server nói chung và server ảo sử dụng Host Header đòi hỏi một giao thức HTTP phiên bản 1 tương hợp với trình duyệt Web. Host Header: Khả năng của các Host Header của HTTP phiên bản 1 cho phép người sử dụng kết hợp nhiều tên của máy Host với chỉ một địa chỉ IP. IIS sử dụng thông tin Host Header để đổi địa chỉ các tên khác nhau của server ảo. Để sử dụng Host Header người sử dụng phải chuyển đổi từ Host name thành địa chỉ IP sử dụng cả hệ thống tên miền (DNS) server hoặc các file của các Host. Chức năng của file host là hỗ trợ sự chuyển đổi từ các tên Host thành các địa chỉ IP. Chú ý: IIS cung cấp các trình duyệt Web không tương thích với một danh sách các server tương thích với địa chỉ IP cho trước. Khi người sử dụng chọn một server, một cookie mới sẽ được thay thế trên ổ đĩa của người sử dụng và cookie này sẽ được sử dụng cho những lần truy cập sau đến server ảo. 10. IIS FTP Server: FTP là một giao thức được dùng để truyền nhận file giữa hai máy trên mạng Internet. FTP là một giao thức ra đời sớm nhất được sử dụng trên mạng TCP/IP và mạng Internet. Mặc dù WWW đã thay thế hầu hết các chức năng của FTP, FTP vẫn còn được sử dụng để chép một file từ một client đến một server trên Internet. Không như HTTP, FTP sử dụng 2 cổng, một để truyền và một để nhận file. Như vậy FTP vẫn còn có hiệu lực hơn HTTP cho những tác vụ đặc biệt của việc truyền file. Để sử dụng FTP truyền file giữa hai máy, cả hai máy đều phải có vai trò riêng, một là FTP Client, một là FTP Server. FTP Client ra lệnh cho server tải xuống hoặc đưa lên một file cũng như tạo và thay đổi các thư mục. FTP sử dụng giao thức TCP như một phương tiện cho tất cả các kết nối và dữ liệu trao đổi giữa client và server. TCP là một phương thức kết nối có định hướng, có nghĩa là có một phiên kết nối được thành lập giữa client và server trước khi dữ liệu được truyền đi. Sự kết nối còn lại này hoạt động trong toàn bộ phiên hoạt động của FTP. Giao thức có định hướng này rất nổi tiếng về độ tin cậy và sự phục hồi lỗi ứng với các đặc điểm sau: - Điều khiển luồng: Bởi vì các client và server đều tham gia trong việc truyền các gói tin vì vậy các vấn đề về việc truyền tin như là các gói tin làm tràn bộ nhớ và lạc mất các gói tin là không thể xảy ra. - Sự chứng nhận: Máy tính gửi các gói dữ liệu và mong chờ một tín hiệu chứng nhận từ các máy tính nhận. Sự chứng nhận này kiểm tra xem máy đó đã nhận được gói tin hay chưa. - Sự truyền lại: Nếu việc truyền đi của máy tính không nhận được một tín hiệu ACK ứng với một khoảng thời gian đã định trước, nó sẽ giả định rằng gói tin đó đã bị mất hoặc bị thất lạc thì sau đó nó sẽ truyền lại gói tin đó. Tính tuần tự: Tất cả các gói tin sẽ được đánh số và gửi cùng lúc, vì thế máy nhận sẽ biết cách tổ chức dữ liệu nhận được. - Checksum: Tất cả các gói tin được chứa trong một checksum để đảm bảo tính toàn vẹn của dữ liệu. Nếu dữ liệu bị thất lạc ở một nơi nào đó trong suốt quá trình truyền, checksum sẽ chỉ ra rằng dữ liệu nhận được không giống với dữ liệu gửi. a) Các thuộc tính của FTP trên IIS: Mỗi site FTP mà người sử dụng tạo ra đều có một bảng thuộc tính riêng của nó. Những cài đặt chung hoặc các thuộc tính cho mỗi site được hiển thị trong các bảng thuộc tính này. Dịch vụ FTP sử dụng 5 bảng thuộc tính để cấu hình cho các dịch vụ FTP, cụ thể như sau: FTP Site. (Site FTP) Security Account. (Bảo mật tài khoản) Messages. (Thông báo) Home Directory. (Thư mục gốc) Directory Secuity. (Bảo mật thư mục) Trong suốt quá trình cài đặt, IIS gán các giá trị mặc định cho việc thiết lập trên các bảng thuộc tính khác nhau. Người sử dụng có thể dùng chung các tài liệu trên site FTP của họ mà không phải thay đổi các thiết lập mặc định này nhưng cũng dễ dàng trong việc thay đổi các thuộc tính được thiết lập theo ý thích. Mỗi site FTP được tạo ra và mỗi file ứng với mỗi site FTP đều có một thuộc tính riêng mà người sử dụng có thể điều chỉnh để tuỳ biến những cấu hình thiết lập tên từng site một hoặc từng file một. Họ cũng có thể điều chỉnh việc thiết lập các thuộc tính mặc định các site và các file con đã thiết lập tuỳ biến trước đó. Có 3 kiểu (hoặc các lớp) của các bảng thuộc tính FTP với IIS và chúng tương tự như 3 lớp của bảng thuộc dùng trên các site WWW. Các lớp thuộc tính FTP gồm: Master, Dedault và File. Người sử dụng có thể tuỳ biến cấu hình của 3 kiểu thuộc tính này của bảng thuộc tính nhưng khi thay đổi cấu hình ở một nơi nào đó thì nó cũng ảnh hưởng đến các site và các file con mà họ đã tạo. b) Bảo mật FTP Các đặc trưng bảo mật của dịch vụ FTP cũng giống như dịch vụ WWW. Khác nhau cơ bản ở chỗ không có giao thức cho việc thiết lập bảo mật dữ liệu của FTP giống như HTTP và SSL - Truy cập phía server: Dịch vụ i có thể được cấu hình trên trang thuộc tính Security Account cho các kết nối đến client và những địa chỉ IP đặc biệt. Đây là một cách tốt để ngăn chặn những người sử dụng không mong muốn truy cập vào server. - Truy cập phía người dùng: Dành cho các server với các file chung, các client thường kết nối dưới một tên người dùng ẩn danh. Nếu dịch vụ FTP được cấu hình cho phép điều này trong thuộc tính Security Account, nó sẽ ánh xạ tên người dùng ẩn danh đến một cấu hình tài khoản của người sử dụng Windows NT. Tài khoản mặc định tạo ra là IUSR_computername và được sử dụng bởi IIS. Nếu cho phép sử dụng tên người dùng ẩn danh bị tắt. Người sử dụng sẽ được cung cấp một tên người dùng chính xác. Tên người dùng này phải đúng là môt tài khoản Windows NT ở FTP Server hoặc trong một miền mà FTP Server cung cấp. - Truy cập tài nguyên FTP: Dịch vụ FTP có thể cấu hình trên trang thuộc tính Security Directory để cho phép Client chỉ có thể đọc hoặc ghi lên file trong một thư mục được chia xẻ. - Truy cập File: Nếu các yêu cầu đã qua các kiểm tra bảo mật trước đó, dịch vụ FTP sẽ đưa các yêu cầu này đến hê thống file để đạt được tài nguyên. Dịch vụ FTP đóng vai trò của người sử dụng FTP Client khi tạo ra các yêu cầu. Nếu hệ thống file từ chối truy cập đến tài nguyên, FTP server sẽ trả về khoảng 550 tên file “Access Denied” (từ chối truy cập). Các truy cập file được cấu hình bằng cách sử dụng File Manager hoặc các thuộc tính file trong Explorer. V. APACHE WEB SERVER: 1. Giới thiệu về Apache Web Server: Apache là một phần mềm Web server được cung cấp bởi tập đoàn Apache Group. Đây là một Web server được hỗ trợ để chạy chủ yếu trên UNIX va LINUX và rất được phổ biến bởi tính chặt chẽ, uyển chuyển và linh hoạt. Hiện nay Apache là một Web server đang quản lý hơn 50% số Web site đang có trên thế giới. 2. Tổ chức Web site: Trước khi bắt đầu xây dựng một Web site, người sử dụng có thể muốn tìm hiểu tổ chức của nó. Khi có nhiều hơn các khả năng suy nghĩ về các cách tổ chức cấu trúc một Web site, người sử dụng có thể suy nghĩ về nó như một viễn cảnh đi lại. Trong những suy nghĩ thêm của nó về khía cạnh này, sẽ nảy sinh ra những câu hỏi: Người sử dụng có thể làm gì để dễ dàng giữ gìn Web site của mình? Các quy ước nào sẽ làm đơn giản Web site của họ? 3. Cài đặt Apache trên Windows: Chạy file Apache.msi đã tải Apache về, người sử dụng sẽ phải nhập các thông tin sau: - Có hay không việc chạy Apache cho tất cả mọi người sử dụng (như một dịch vụ) hoặc cài đặt Apache để chạy trên một cửa sổ giao tiếp khi chọn shortcut khởi động Apache. - Tên Server, tên miền và tài khoản email của người quản trị. - Tên thư mục để cài Apache vào (mặc định là C:\Program Files\Apache Group\Apache mặc dù người sử dụng có thể thay đổi sang một thư mục bất kỳ mà họ muốn) - Kiểu cài đặt. Chức năng “Complete” sẽ cài đặt mọi thứ, bao gồm cả mã nguồn nếu người sử dụng đã tải về gói –srm.msi. Chọn cài đặt “Custom” nếu không muốn chọn cài đặt tài liệu hoặc mã nguồn từ gói cài đặt này. Trong suốt quá trình cài đặt Apache sẽ cấu hình các file trong thư mục conf cho thư mục lựa chọn cài đặt của người sử dụng, tuy nhiên nếu bất kỳ những file nào trong thư mục này đã tồn tại chúng sẽ không bị chép chồng lên. Sau khi cài đặt xong, người sử dụng sẽ phải sửa đổi các file cấu hình trong thư mục conf. Những file này sẽ được cấu hình trong suốt quá trình cài đặt để sẵn sàng cho Apache chạy từ thư mục mà họ đã cài đặt vào với các tài liệu phục vụ từ thư mục con htdocs. Có rất nhiều chức năng trước khi bắt đầu thực sự sử dụng Apache. Tuy nhiên, để việc khởi động nhanh chóng các file này nên làm việc theo các cài đặt mặc định. Nếu người sử dụng tháo cài đặt Apache khỏi hệ thống, các cấu hình và các file log sẽ không được gỡ ra. Người sử dụng phải sẽ cần phải xóa các cây thư mục đã cài đặt (mặc định là C:\Program File\Apache Group\Apache) nếu người sử dụng không muốn giữ các cấu hình của họ và các file Web khác. Từ khi fie httpd.conf đã được cấu hình để sử dụng Apache, người sử dụng cũng phải phải gỡ bỏ nó và các file khác mà đã được tạo cũng như bất kỳ các file log nào mà Apache đã tạo. 4. Chạy Apache trên Windows: a) Chạy như một dịch vụ: Đây là các tốt nhất nếu muốn Apache tự động khởi động khi khởi động máy và giữ Apache vẫn chạy khi đã log-off. Để khởi động Apache như một dịch vụ, trước hết cần phải cài đặt Apache như một dịch vụ. Nhiều dịch vụ Apache có thể được cài đặt với mỗi tên và cấu hình khác nhau. Để cài đặt một dịch vụ Apache mặc định có tên “Apache”. Chọn “Install a Sevice for All User” khi bắt đầu bung gói cài đặt Apache. Sau khi cài xong có thể khởi động dịch vụ Apache bằng cách mở cửa sổ Service, chọn Apache, nhắp chuột vào Start, Apache sẽ bắt đầu chạy, ẩn trên màn hình. Sau đó có thể ngừng Apache bằng cách nhắp chuột vào Stop. Có một lựa chọn khác để sử dụng dịch vụ Apache từ các dòng lệnh sau tại cửa sổ giao tiếp: Net start Apache Net Stop Apache Sau khi khởi động Apache, người sử dụng có thể kiểm tra nó bằng cách sử dụng thủ tục như sau để chạy trên cửa sổ giao tiếp: Apache –n “service name” Để chắc chắn việc đang sử dụng các dịch vụ được cấu hình mặc định của Apache. Có nhiều dịch vụ khác của Apache được cài đặt và chạy như một dịch vụ. Các dòng lệnh sau sẽ khởi động, khởi động lại, Tắt và Ngừng các dịch vụ: - Apache –n “service name” –k start. - Apache –n “service name” –k restart. - Apache –n “service name” –k shutdown. - Apache –n “service name” –k stop. Ký hiệu chuyển đảo –n để chỉ các dịch vụ Apache mặc định, còn khi không có –n mà chỉ có –k dòng lệnh sẽ chỉ định rằng Apache đang chạy trên một cửa sổ giao tiếp, trường hợp này chỉ yêu cầu đối với các tên dịch vụ của Apache có chứa khoảng trắng. Ngoài ra để Stop Apache trên cửa sổ giao tiếp còn có thể ấn tổ hợp phím Ctrl + C hoặc Ctrl + Break. b) Chạy Apache trên cửa sổ giao tiếp: Một khi đóng cửa sổ giao tiếp sẽ kết thúc việc chạy Apache. Tại biểu tượng Start menu và trình Windows NT Service Manager có thể cung cấp một giao diện đơn giản để quản trị Apache. Nhưng dễ dàng nhất để làm việc là từ dòng lệnh. Khi làm việc với Apache điều quan trọng nhất là việc tìm các file cấu hình. Người sử dụng có thể chỉ ra file cấu hình bằng hai cách (dùng các dòng lệnh): * -f chỉ đến đường dẫn một file cấu hình: apache –f c:\myserver\conf\my.conf apache –f test\test.conf * -n đường dẫn đến một file cấu hình của một dịch vụ Apache đã được cài đặt. apache –n “service name” Trong các trường hợp trên, Server Root phải được thiết lập trong file cấu hình. Nếu người sử dụng chỉ ra một tên file cấu hình với –n và –f. Apache sẽ sử dụng tên file được biên dịch ở trong server, thường là “conf/httpd.conf”. Gọi đến Apache với ký hiệu chuyển đảo –v sẽ hiển thị các giá trị đã đánh nhãn SERVER-CONFIG-FILE. Apache sẽ quyết định ServerRoot của nó bằng các cách sau: - Một chỉ thị SeverRoot qua ký hiệu chuyển đảo –c. - Ký hiệu chuyển đảo –d trên dòng lệnh. - Thư mục đang làm việc hiện thời. - Một khóa registry được tạo nếu người sử dụng cài đặt nhị phân. - SeverRoot được biên dịch bên trong server. SeverRoot được biên dịch bên trong server thường là “/apache”. Nếu gọi đến Apache với ký hiệu chuyển đảo –v sẽ hiển thị các giá trị được đánh nhãn giống như là của “HTTPD Root”. Khi gọi đến Apache từ trình đơn Start. Apache thường bỏ qua các thông số vì thế sử dụng khoá registry là một kỹ thuật vẫn được ưa thích hơn cho Apache. Trong quá trình cài đặt, một khóa registry sẽ được tạo, ví dụ: HKEY_Local_machine\Sofware\ApacheGroup\Apache\1.3.13\ServerRoot Khóa này được biên dịch vào trong server và có thể cho phép kiểm tra các phiên bản mới mà không tác động đến phiên bản hiện thời. Dĩ nhiên, phải chắc rằng không cài đè phiên bản mới lên phiên bản cũ trong hệ thống file. Giá trị của khóa này là thư mục “ServerRoot” chứa trong thư mục Conf. Khi Apache khởi động, nó sẽ đọc file httpd.conf từ thư mục này. Nếu thư mục này chứa chỉ thị ServerRoot mà nó khác với thư mục đang tồn tại trong khóa registry, Apache sẽ quên khóa registry và sử dụng thư mục được thiết lập trong file cấu hình. Nếu người sử dụng chép một thư mục Apache hay các file cấu hình đến một nơi khác, nó sẽ vẫn còn cho đến khi cập nhật lại thư mục ServerRoot trong file httpd.conf đến một nơi khác. Để chạy Apache từ dòng lệnh như một ứng dụng giao tiếp, sử dụng dòng lệnh: apache Apache sẽ được bắt đầu và sẽ vẫn chạy cho đến khi người sử dụng nhấn tổ hợp phím Ctrl – C. Để kiểm tra việc thiết lập các thông số cho file cấu hình dùng lệnh: apache –t Lệnh này được sử dụng để thay đổi các file cấu hình khi Apache vẫn còn đang chạy. Người sử dụng có thể tạo ra các thay đổi, xác nhận việc thay đổi là tốt bằng lệnh “apache –t”, sau đó khởi động lại Apache với “apache –k restart”. Apache sẽ đọc lại các file cấu hình cho phép thực hiện bất kỳ một tiến trình nào để hoàn thành mà không xảy ra gián đoạn. Bất kỳ một yêu cầu nào cũng sẽ được phục vụ với việc sử dụng cấu hình mới. 5. Kiểm tra Apache trên Windows: Chạy Command Prompt danh sách Program của trình đơn Start. Chọn thư mục đã cài đặt Apache vào và gõ lệnh apache và đọc các thông báo lỗi (nếu có). Sau đó xem lại file error.log cho các cấu hình bị thiết lập sai. Nếu người sử dụng chấp nhận mặc định khi cài đặt Apache, các dòng lệnh sẽ là: c: cd "\program files\apache group\apache" apache Wait for Apache to exit, or press Ctrl+C more <logs\error.log Sau khi xem file error.log người sử dụng sẽ thấy một vài vấn đề bị lỗi và họ có thể sửa chữa và khởi động lại một lần nữa. Sau khi khởi động, Apache sẽ chạy (như ở cửa sổ giao tiếp hoặc như một dịch vụ) và sẽ bắt đầu lắng nghe ở cổng 80, trừ phi người sử dụng thay đổi Port, Listen hoặc BindAddress (trong file cấu hình). Hãy thực hiện kết nối đến server và truy cập trang Web mặc định bằng cách mở trình duyệt và nhập vào URL sau: Trình duyệt sẽ trả lại một trang Welcome và một liên kết đến sổ hướng dẫn Apache như sau: Nếu không người sử dụng sẽ nhận được một thông báo lỗi, có thể xem lại file error.log trong thư mục log. Nếu máy tính không nối mạng, họ có thể sử dụng URL sau đây: Một khi các cài đặt cơ sở đang làm việc, người sử dụng phải cấu hình các thuộc tính của nó bằng cách sửa đổi nội dung các file trong thư mục conf. 6. Virtual Host: Vitual Host là một sức mạnh thật sự của Apache. Virtual Host cho phép Apache Web Server chạy cùng lúc nhiều Web site. Apache là một HHTP server đầu tiên cung cấp các hỗ trợ cho việc xây dựng một virtual site. Trong khi các server của NCSA và các server khác cũng cung cấp sự hỗ trợ virtual site nhưng Apache cung cấp một khả năng thi hành tốt hơn và có nhiều điểm đặc trưng hơn các server khác. Chỉ mới nhìn qua, dường như sự thuận lợi chính của virtual site là chỉ để tô điểm, nó cho phép nhiều Web site được đánh địa chỉ tên miền của nó trên các máy đơn đã được chia xẻ. Tuy nhiên sự thuận lợi của nó nhiều kết quả rõ ràng nằm trong cách quản trị Web site và cách những máy khác sử dụng nó. Một Virtual host thường được tạo ra nhằm mục đích như sau: - Khách hàng có thể dễ dàng truy cập các Web site của mình trên các server cho thuê. Từ khi người thuê server có thể sử dụng tên miền của chính mình, các địa chỉ có khuynh hướng ngắn đi. Điều này đã giúp đỡ việc đưa ra tính chuyên nghiệp đồng nhất trên thế giới. Những người sử dụng thích nhớ những địa chỉ ngắn hơn từ khi tên miền có một vài sự thích hợp với tên của các tập đoàn công ty. - Rút gọn tối đa các máy tính và phần cứng mạng, nhiều site tốc độ chậm có thể nằm ở tại một máy đơn, điều này làm giảm bớt giá thành của việc đưa một site lên mạng. - Giảm bớt giá thành về con người kết hợp với các hệ thống quản trị. Thay cho việc quản lý và cấu hình một server chuyên dụng cho các tên miền. Một Web server chỉ cần duy trì vài file cấu hình và một số các box. Điều này sẽ dẫn đến việc giảm một số hệ thống cần để duy tu nó, như vậy việc duy trì một mảng sẽ đơn giản hơn và ít tốn kém hơn. Bởi vì hầu hết các Web site khi tạo ra đều không đủ đường truyền lưu thông để sử dụng hết các tài nguyên trên một máy đơn, điều đó là sự khát khao từ một người quản trị cá nhân cho phép một server đơn giản trên mạng và chạy như nhiều máy khác nhau thay vì dành cho phần cứng và tiền bạc để mỗi site được đưa lên, một vài server cấu hình các lệnh để đưa ra các kết quả như nhau: một virtual site. Bởi vì phí tổn để cài đặt một server có thể chia xẻ cho nhiều site, thời gian để cấu hình và quản lý Web site được giảm đi rất nhiều. Virtual host đã đem lại một khía cạnh chắc chắn của việc tạo ra một trang Web di động. Khi một site là ảo, nó dễ dàng di chuyển đến một Web server khác trong cùng một mạng hoặc ở một nơi nào khác. Đây chính là vấn đề của việc chuyển chỗ các trang HTML của các site đến một máy mới và điều chỉnh các thông tin DNS (Domain Name Server) của site đưa lên một server mới. Để việc thích nghi với DNS được cập nhật, đơn giản chỉ cần tạo ra sự đổi hướng trên server cũ . Điều này cho phép sự lưu thông được trôi chảy mà không có sự sai sót, đó là một vấn đề quan trọng với các site đang lớn mạnh đang được lưu thông để tạo ra kinh doanh. Về mặt lịch sử, khi người sử dụng muốn một site đang host sử dụng tên miền của họ, sự lựa chọn có thể được là mua hoặc thuê một máy tính và dùng nó để cấu hình như một Web server. Phải chịu các phí tổn để tiêu tốn cho việc quản lý server này. Các phí tổn này dễ thường là rất lớn, việc này đã thúc đẩy các nhà cung cấp dịch vụ Internet (ISP) thêm vào các cách để hỗ trợ nhiều Web site trên một host, điều này dẫn đến một vài giải pháp gần đây, chẳng hạn như Home Page Approach. Home Page Approach tạo ra một địa chỉ giống như: Home Page Approach là một cách thích hợp để phục vụ các trang người dùng cục bộ. Nhưng khi dùng nó để phục vụ cung cấp thông tin lớn và đang được truy cập thường xuyên bởi một số lớn người sử dụng thì việc này sẽ tạo ra một địa chỉ tồi mà rất khó nhớ, tên nhạp vào dài, dễ xảy ra sai sót phía người sử dụng và trông không được chuyên nghiệp lắm. Xây dựng một virtual host: Các phạm vi liên quan của virtual host, virtual site và multihomed server thông thường được sử dụng thay thế cho nhau. Để dễ hiễu hơn, chỉ cần suy nghĩ chúng như sau: Để tạo một virtual site, thì cần phải cấu hình một virtual host, để virtual host làm việc cần phải tạo một mutihomed server, như vậy rõ ràng là có sự khác nhau giữa chúng. Một máy tính multihomed là môt máy tính có thể trả lời cùng một lúc đến nhiều địa chỉ IP. Một máy tính mày có thể được truy cập bởi nhiều tên (chẳng hạn như www.mailhost.foo.com và www.foo.com) mà nó thi hành cho các địa chỉ IP như nhau không thể là một máy tính Multihomed. Việc đặt bí danh, một khả năng cung cấp bởi DNS trong một bảng ghi tài nguyên CNAME , hoặc liệt kê các tên máy tính trên etc/host/file đằng sau các địa chỉ IP thì chỉ tiện lợi cho người sử dụng đang truy cập vào một tài nguyên trên mạng. Thông thường người ta mất nhiều thời gian để nhớ tên, và một vài tên chẳng hạn như WWW hoặc FTP thì là tiêu chuẩn đặc trưng cho các máy tính mà nó đưa lên mạng các dịch vụ với tên tương tự. Người sử dụng chỉ cần nhớ tên miền nơi các tài nguyên nơi các tài nguyên đó sử dụng tên truyền thống (chẳng hạn www.aple.com, www.mailhost.com hoặc ftp.aple.com ) Một máy Multihomed cần nhiều hơn thế, nó phải trả lời cho cùng lúc hai hoặc nhiều địa chỉ IP chẳng hạn địa chỉ IP 1.2.3.4 là địa chỉ được ấn định bởi mạng làm việc Internet của người sử dụng cung cấp khi họ sign up với chúng. 7 .Virtual site: Virtual site là một Web site mà nó cùng nằm trên một server với các Web site khác. Mỗi Web site thì được truy cập bằng tên của chúng và chia xẻ tất cả tài nguyên phần cứng với các virtual site khác. Mặc dù tất các yêu cầu đều được trả lời bằng các xử lý như nhau trên HTTP server, nhưng các trang chủ khác nhau được trả về cho mỗi site phụ thuộc vào tên hoặc địa chỉ IP sử dụng khi truy cập các thông tin. Một vấn đề về mạng khác là việc phải đánh địa chỉ trước khi có thể multihome là DNS. DNS cung cấp một tên máy đến dịch vụ chuyển sang IP. Khi tên máy được đánh số, con người thích sử dụng tên máy hơn. DNS chuyển các tên sang số và các số sang tên. Sự thay đổi này có ý nghĩa là nếu người sử dụng kết nối với Internet, và đang chạy với một tên server . Nếu không thì ngược lại không một ai khác chạy nó. Nếu người sử dụng không phải đang chạy với DNS của chính mình, họ sẽ cần phải ngang hàng với quyền quản trị mạng của chính mình để thi hành bất kỳ sự thêm vào hoặc thay đổi DNS. 8. Cấu hình Apache trên Windows: a) Các file cấu hình của Apache server: Web server sẽ đọc 3 file chứa các chỉ thị cấu hình. Bất kỳ một chỉ nào nào được hiển thị trong các file này đều sẽ được thực hiện. Conf/httpd.conf: Chứa các chỉ thị mà nó điều khiển sự thi hành của server. Tên file có thể được lướt qua với ký hiệu khả chuyển –f. Conf/srm.conf: Chứa các chỉ thị mà nó điều khiển sự chỉ định các tài liệu mà server cung cấp cho các client. Tên file có thể được lướt qua với chỉ thị ResourceConfig. Conf/access.conf: Chứa các chỉ thị mà nó điều khiển sự truy cập các tài liệu. Tên file có thể được bỏ qua với chỉ thị AccessConfig. b) Thiết lập cấu hình Apache trên Windows: Apache được cấu hình bởi các file trong thư mục conf. Các file này cũng giống như các file được sử dụng để cấu hình cho Unix nhưng có một vài chỉ thị khác cho Apache trên Windows. Quá trình cấu hình sẽ được bắt đầu bằng cách tham khảo httpd.conf và các chỉ thị của nó. Mặc dù các file access.conf và srm.conf còn tồn tại song chúng là những file cũ mà không được sử dụng nhiều bởi hầu hết các nhà quản trị và người sử dụng sẽ không tìm thấy bất kỳ chỉ thị nào ở đó. Httpd.conf chứa rất nhiều các tư liệu của chính nó, được sinh ra bởi các chỉ thị cấu hình mặc định gửi gắm khi khởi động với Apache server. Bắt đầu bằng cách đọc các lời chú thích để hiểu file cấu hình và làm một số thay đổi nhỏ, khởi động lại Apache trong một cửa sổ giao tiếp với mỗi thay đổi. Nếu người sử dụng tạo ra một lỗi, nó sẽ dễ dàng sao lưu để định dạng lần làm việc cuối cùng . Các khác nhau của Apache trên Windows chính là: + Bởi vì Apache trên Windows thì đang luồng, nó không sử dụng các tiến trình riêng biệt cho mỗi yêu cầu như là của Unix. Thay cho việc thường chỉ có 2 tiến trình đang chạy: Một tiến trình cha và một tiến trình con để xử lý các yêu cầu. Với tiến trình con mỗi yêu cầu được xử lý bởi một luồng riêng.Vì thế tiến trình quản lý các chỉ thị là khác nhau: + Các chỉ thị mà chấp nhận các tên file như các đối số phải sử dụng các tên file kiểu Windows thay cho các tên file Unix. Tuy nhiên, bởi vì Apache server sử dụng các tên file kiểu Unix bên trong, phải tiến hành cắt bớt, không cắt phần sau. Các ký tự điều khiển có thể được sử dụng, nếu bỏ qua, ký tự điều khiển với Apache khả thi sẽ đảm nhận. + Apache trên Windows có khả năng nạp các mô đun ngay khi chay mà không biên dịch lại server. Nếu Apache biên dịch bình thường, nó sẽ cài đặt một số mô đun tuỳ chọn trong thư mục /module, để kích hoạt chúng hoặc các mô đun khác sử dụng lệnh sau đây: LoadModule status_module modules/mod_status.so + Apache cũng có thể nạp các phần mở rộng ISAPI (các dịch vụ ứng dụng Internet) chẳng hạn các ứng dụng được sử dụng bởi Microsoft IIS và các server Windows khác. (Chú ý: Apache không nạp các bộ lọc ISAPI). + Khi đang chạy CGI script, các phương thức Apache tìm kiếm các giải thích cho script được cấu hình đang sử dụng chỉ thị ScriptInterpreterSource. 9. Apache và các dịch vụ hỗ trợ: a) HTTPD: Tên dòng lệnh: httpd [ -X ] [ -R libexecdir ] [ -d serverroot ] [ -f config] [ -C directive ] [ -c directive ] [ -D parameter ] Mô tả: là một chương trình HTTP server . Nó được thiết kế để chạy như một tiến trình deamon một mình. Khi dùng đến dịch vụ này, nó sẽ tạo ra một nhóm các tiến trình con để đáp ứng các yêu cầu. Để ngừng dịch vụ này, nó sẽ gửi một tín hiệu TERM đến tiến trình cha. PIG của tiến trình này sẽ ghi lên một file và dưa vào file cấu hình. HTTPD sẽ được gọi bởi Internet deamon inetd mỗi khi có một kết nối đến dịch vụ HTTP đã được thiết lập. Các đối số cụ thể của dòng lệnh -R libexecdir: Tham số này chỉ có hiệu lực nếu Apache được cài đặt với tập SHARED_CORE cho phép, nó tác động đến nhân nhị phân của Apache để thay thế vào trong một file đối tượng chia xẻ động (DSO). File này được dò tìm trên một đường dẫn hardcoded bên dưới ServerRoot mặc định -d serverroot: Thiết lập giá trị ban đầu của chỉ thị ServerRoot đến serverroot. Chức năng này có thể bị bỏ qua bởi dòng lệnh ServerRoot trong file cấu hình. Mặc định server root là usr/local/apache. -f : Thực thi các lệnh trong file config khi Startup. Nếu file config không bắt đầu với a/, lúc đó nó sẽ lấy một một đường dẫn có liên quan đến ServerRoot. Mặc định của nó là conf/httpd.conf. -C directive: Thực hiện cấu hình các chỉ thị trước khi đọc file config. -c directive: Thực hiện cấu hình các chỉ thị sau khi đọc file config. -D parameter: Thiết lập một thông số cấu hình mà nó có thể sử dụng với cặp thẻ … trong các file cấu hình để bỏ qua có điều kiện hoặc thực hiện các lệnh. b) APACHECTD: Là một đầu vào các HTTP server. Nó được thiết kế để giúp người quản trị điều khiển các chức năng của Apache HTTPD deamon. Tên dòng lệnh: apachectl command [...] Với các lệnh: Start: Khởi động Apache deamon. Đưa ra một thông báo lỗi nếu chương trình đang chạy lúc đó. Stop: Ngừng dịch vụ Apache deamon. Restart: Khởi động lại Apache deamon bằng cách gửi cho nó một SIGHUP. Lệnh này tự động kiểm tra các file cấu hình qua văn bản cấu hình trước khi bắt đầu khởi động lại để chắc chắn rằng Apache vẫn còn đang hiện diện trong máy. Fullstatus: Hiển thị đầy đủ các báo cáo trạng thái từ mod_status. Để lệnh này được thi hành, cần phải cho phép mod_status trên server và một trình duyệt text_based chẳng hạn như Lynx có sẵn trong hệ thống. URL sử dụng nó để truy cập bản báo cáo trạng thái có thể được thiết lập bằng giá trị STATUSURL có sẵn trong script. Status: Hiển thị ngắn gọn bảng trạng thái giống như chức năng fullstatus trừ phi danh sách các yêu cầu phục vụ thời bị bỏ quên. Configtest: Chạy một đoạn văn bản các cụ pháp của file cấu hình. Nó phân tích các file cấu hình và các bảng Syntax Ok hoặc thông tin chi tiết về các lỗi cú pháp đặt biệt. Help: Hiển thị các thông báo lỗi được sắp xếp. c) APXS Tên dòng lệnh: apxs -g [ -S variable=value ] -n name apxs -q [ -S variable=value ] query ... apxs -i [ -S variable=value ] [ -n name ] [ -a ] [ -A ] dsofile ... apxs -e [ -S variable=value ] [ -n name ] [ -a ] [ -A ] dsofile ... Mô tả: Là một công cụ để xây dựng và các đặt các mô đun mở rộng cho Apache HTTP server. Được thực hiện bằng cách cài đặt một DSO từ một hay nhiều nguồn hoặc đối tượng file mà sau đó nó có thể nạp vào Apache trong thời gian chương trình đang chạy qua chỉ thị LoadModule từ mod_so. Để sử dụng kỹ thuật mở rộng này, máy tính của người sử dụng phải hỗ trợ DSO và Apache HTTPD nhị phân phải được xây dựng với mô đun mod_so. Công cụ apxs sẽ tự động nhắc nhở nếu là các trường hợp ngược lại. Ta cần phải kiểm tra việc này bằng dòng lệnh: $ httpd -l mô đun mod_so phải có trong danh sách được hiển thị. Nếu các yêu cầu này được thỏa mãn, thì có thể dễ dàng mở rộng các chức năng của Apache ._.25/10, A=deliver $u Mprog, P=/bin/sh, F=lsDFMeuP, S=10, A=sh -c $u Một agent phát thư đi cũng được chỉ định trong file sendmail.mc, file này được dùng để xây dựng file sendmail.cf. Nếu agent phát không chuyển thư đi, phải kiểm tra file sendmail.mc để chắc rằng agent chuyển mail đã được thiết lập các thuộc tính. Sendmail.mc là một file quan trọng và nó phải được đọc khi sendmail.m4 được xử lý. Thường có một dòng khai báo trong file sendmail.m4 để chắc rằng việc này phải xảy ra. Dòng này thường nằm ở phần đầu file sendmail.m4 include(Sendmail.mc)dnl Người sử dụng cần phải chỉ định một vài mục nhập trong biến PSEUDOMAINS. Biến này được dùng để điều khiển hệ thống mà nó không thể mở rộng vào trong các tên miền một cách chính xác, thông thường là hệ thống UUCP. Các mục nhập trong trường PSEUDOMAINS chỉ ra rằng Sendmail + IDA không sử dụng DNS cho những mạng đó. Biến PSEUDOMAINS được khai báo như sau: define(PSEUDODOMAINS, BITNET UUCP)dnl Có thể sử dụng biến PSEUDONYMS để làm ẩn tên máy của người sử dụng. Ví dụ, một mail nhận trên mạng khác sẽ chỉ thấy địa chỉ tpci.com mà không quan tâm đến việc dù là được gửi từ merlin.tpci.com hay chatton.tpci.com. Khi sử dụng biến PSEUDONYMS, Sendmail chấp nhận mail từ tất cả các máy được khai báo trong trường PSEUDONYMS. Trường PSEUDONYMS được hiển thị như sau: define(PSEUDONYMS, tpci.com)dnl Mục vào nhày cho phép một máy tính bất kỳ của mạng tpci.com gửi mail thông qua Sendmail. Để định nghĩa tên máy, sử dụng biến DEFAULT_HOST. Biến này thường được gán giá trị tên mail server của người sử dụng. Người sử dụng có thể khai báo như sau để thiết lập tên mail server mặc định: define(DEFAULT_HOST, merlin.tpci.com)dnl Nếu không gán một tên đúng cho biến DEFAULT_HOST sẽ không có mail được trả về chính xác đến hệ thống đang sử dụng. Nếu hệ thống không phải là một cổng nối mail lên Internet (hoặc các mạng khác được truy cập từ mạng LAN) người sử dụng có thể thiết lập cho hệ thống Linux cho phép gửi mail lên một máy khác để xử lý bằng cách thiết lập các biến RELAY_HOST và RELAY_MAILER trong file sendmail.m4. Các biến này sẽ đặt tên của mail server mà tất cả các mail sẽ được chuyển đến. Ví dụ: Để thiết lập cho hệ thống cục bộ dẫn hướng tất cả các mail bên ngoài đến một máy tên là wizard, phải khai báo 2 dòng như sau: define(RELAY_HOST, wizard)dnl define(RELAY_MAILER, UUCP=A)dnl Dòng thứ hai chỉ định mailer sử dụng để gửi message đến máy RELAY_HOST. 2. Điều chỉnh UUCP: Nếu phải đang làm việc với một hệ thống mail trên nền tảng UUCP, người sử dụng phải điều chỉnh một vài mục nhập trong file sendmail.m4. Sự điều chỉnh này là cần thiết bởi vì một hệ thống mail UUCP thường đánh địa chỉ khác so với các hệ thống trên nền tảng DNS. Các khai báo của UUCP trong file sendmail.m4 như sau: define(UUCPNAME, tpci)dnl define(UUCPNODES, |uuname|sort|uniq)dnl define(BANGIMPLIESUUCP)dnl define(BANGONLYUUCP)dnl Dòng đầu tiên khai báo UUCPNAME dùng để chỉ định tên của hệ thống cục bộ trong giới hạn UUCP. Tên này có thể khác hơn tên sử dụng trong DNS, mặc dù thông thường thì các tên đó trông cũng không khác nhau mấy. Biến UUCPNODES khai báo lệnh sử dụng để cung cấp một danh sách tên các host mà hệ thống kết nối tới thông qua UUCP. Biến BANGIMPLIESUUCP để cho Sendmail biết là bất kỳ một địa chỉ nào chứa dấu ! đều là địa chỉ kiểu UUCP. Biến BANGONLYUUCP thì làm điều ngược lại. Cả 2 biến này thường được khai báo bởi vì một vài hệ thống DNS sử dụng phương pháp đánh địa chỉ kiểu dấu chấm than. 3. Cấu hình các bảng định vị Có nhiều dòng trong file sendmail.m4 dùng để khai báo các bảng cấu hình. Các bảng cấu hình này nằm dưới thư mục khai báo bởi biến LIBDIR. Phần này gồm các dòng sau: define(ALIASES, LIBDIR/aliases)dnl define(DOMAINTABLE, LIBDIR/domaintable)dnl Có khoảng 7 file cấu được chỉ định trong toàn bộ. Người sử dụng có thể thay đổi bất kỳ giá trị nào nếu muốn nhưng phải chắc chắn rằng việc di chuyển nó thị vị trí được chỉ định. Để bảo đảm, tốt nhất nên gỡ bỏ các file khỏi các ví trí mặc định của nó. 4. Cấu hình mailertable Bảng mailertable khai báo các điều khiển đặc biệt cho cac host hoặc các tên miền. Trong hầu hết các trường hợp, mailertable chỉ định các tên miền chắc chắn hoặc các host được truy cập và các giao thức nào sử dụng cho các tên miền và các host đó. Người sử dụng không phải điều chỉnh file này nếu hệ thống đang sử dụng UUCP nhưng phải kiểm tra nội dung của nó nếu là đang sử dụng SMTP hoặc DNS. File mailertable được dọc từ dòng đầu tiên xuống và Sendmail xử lý mail dựa trên mỗi dòng trong file này. Trong mỗi trường hợp, nơi mà hầu hết các quy tắc chỉ định nằm ở đầu file, theo sau bởi các quy tắc thông thường khác. Các quy tắc chỉ ra phương thức của kết nối đầu tiên và sau đó liệt kê các hệ thống từ xa hoặc tên miền: mailer delimiter relayname remote Trong khai báo trên, mailer là giao thức chuyển vận được sử dụng, delimiter là ký tự đặc biệt, relayname là tên của hệ thống chuyển mail đến và remote là host từ xa hoặc tên miền. Mailer có thể là các giá trị: TCP-A: TCP với địa chỉ kiểu Internet. TCP-U: TCP với địa chỉ kiểu UUCP. UUCP-A: UUCP với địa chỉ kiểu Internet. Delimiter có một ý nghĩa đặc biệt và phải là một trong cac ký tự sau: ! Gỡ bỏ tên host từ phần địa chỉ trước khi gửi đi. , Không điều chỉnh địa chỉ cho tất cả. : Gỡ bỏ tên host chỉ khi các host trung gian được chỉ định. Có thể xây dựng các quy tắc mailertable một các dễ dàng khi chuyển mail đến một mail server từ xa. Ví dụ, để bắt buộc Sendmail sử dụng UUCP thông qua một mail server từ xa gọi là wizard kết nối đế một hệ thống từ xa roy.sailing.org, thêm một quy tắc như sau vào file mailertable: UUCP-A,wizard roy.sailing.org 5. File cấu hình uucprelays File uucprelays dùng để bỏ qua đường dẫn UUCP đến một site từ xa khi một đường dân tốt hơn đã tồn tại. Ví dụ, nếu người sử dụng thường sử dụng đường dẫn wizard!bignet!merlin!tpci và có thể tạo ra một liên kết chỉ đường đến tpci, nên sử dụng file uucprelays để đổi lại đường dẫn địa chỉ mail. 6. File cấu hình uucpxtalbe File uucpxtalbe được sử dụng khi một địa chỉ kiểu UUCP được sử dụng trong việc vận chuyển mail. File này cung cấp các chỉ dẫn cho công việc chuyển một địa chỉ kiểu DNS sang UUCP. Nếu người sử dụng đang sử dụng một mail server khác hơn mail server hiện tại hoặc muốn sử dụng UUCP để kết nối đến một máy cụ thể vì độ tin cây, file này thực sự cần thiết. File này chứa các mục vào liệt kê tên kiểu UUCP theo sau bởi tên miền: Chatton chatton.com Mục vào này chỉ ra rằng Sendmail mà một mail chatton.com bất kỳ nào đó đều phảøi được cập nhập qua UUCP đến chatton ( đánh địa chỉ kiểu UUCP). Mục vào này bắt buộc các địa chỉ mail đến yvone@chatton.com phải được viết lại giống như chatton!yvone, một địa chỉ mà UUCP có thể sử dụng. 7. Xây dựng file sendmail.cf từ file sendmail.m4 Bây giờ, đã cấu hình xong file sendmail.m4 và các file có liên qua của nó, có thể sử dụng bộ xử lý m4 để tạo ra file sendmail.cf. Một khi 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 khi file đã được tạo, chép nó sang thư mục /etc và khởi động Sendmail với dòng lệnh: /usr/lib/sendmail –bd –q1h hoặc 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 luôn kèm theo chương trình Sendmail 8.0 và có thể sẵn sàng cài đặt để sử dụng. Có một thay đổi nhỏ so với các phiên bản trước là Sendmail 8.0 gồm có 4 phần khác nhau để chọn lựa. - uucp-old: (cũng giống như uucp) : Sử dụng phiên bản này nếu cần khả năng tương thích với các hệ thống UUCP kiểu cũ. - uucp-new: (phiên bản mới nhất gần đây là suucp) cũng giống như Sendmail chỉ trừ việc nó có thêm lệnh rmail để gửi đến nhiều người nhận đồng thời. Phiên bản này không có cải tiến gì mấy so với uucp-old. - uucp-dom: Cho phép sử dụng các địa chỉ kiểu tên miền. Phiên bản này không có khả năng tương thích với một số hệ thống khác mà người sử dụng kết nối đến. - uucp-uudom: Là một sự kết hợp giữa uucp-new và uucp-dom cung cấp các nét đặc trưng nhất của cả hai. Nó cho phép sử dụng địa chỉ kiểu UUCP và kiểu tên miền. Thiết lập các thư mục cấu hình cho Sendmail Các file cấu hình Sendmail ngày càng trở nên nhỏ hơn để làm cho công việc của người quản trị được dễ dàng hơn. Hệ thống Sendmail có các thư mục chứa các file cần thiết cho công việc cấu hình, đó là: - cf: Thư mục này cung cấp cho người sử dụng các thông tin về các host được sử dụng bởi Sendmail. - hack: Thư mục này là một danh sách của các hack được sử dụng bởi các macro m4 để cung cấp các chỉ định mở rộng. Các thông tin mà thư mục này hỗ trợ được cung cấp một cách hợp lý trong các file cấu hình chính. - m4: Thư mục này cung cấp các file chứa các thông tin thích hợp cho tất cả các file cấu hình. - mailer: Thư mục này chứa các file định nghĩa các mailer được sử dụng bởi m4. Các file này thường cung cấp các thông tin cho mạng cục bộ, UUCP, USENET, phần mềm FAX … - site config: Thư mục này chứa các thông tin về site cục bộ. Một số các site rất quan trọng để cài đặt Sendmail và xử lý cấu hình. III. SỬ DỤNG SMAIL Hệ thống Smail cũng giống như hệ thống Sendmail trong hầu hết các chức năng, mặc dù quá trình cấu hình cấu hình thì khác. Trong nhiều trường hợp, Smail dễ dàng làm việc hơn Sendmail và nó có thể là một lựa chọn tốt cho các hệ thống nhỏ và vừa. Smail điều khiển việc chuyển nhận mail như thế nào? Hệ thống Smail được quản lý bởi một daemon, được khởi tạo khi hệ thống chạy ở chế độ nhiều người sử dụng đồng thời. Sau đó Smail chờ cho đến khi có kết nối (thường là TCP hoặc UUCP) và sẽ xử lý tất cả các mail vừa mới được nhận. Bởi vì Smail chạy như một daemon, điều này cho phép nó xử lý và phân phát nhanh các mail mới nhập mà không cần khởi động một chương trình mail. Hệ thống Smail điều khiển các mail gửi đi bằng cách sử dụng các kết nối đến mailer của người sử dụng. Ví dụ: Nếu message được gửi từ một mailer agent chẳng hạn như ELM hoặc mail, các chương trình dùng để gửi mail và các tên người nhận đến rmail, một chương trình chuyển phát mail. Có một vài mailer agent gửi mail đến chương trình Sendmail thay vì rmail. Như vậy, cả các mail nhận được và các mail gửi đi được điều khiển bằng các liên kết giữa Smail, rmail và Sendmail. Chương trình xử lý của Smail được chia thành 3 phần riêng biệt, bao gồm: Bộ dẫn đường (router), Bộ chuyển hướng (director) và chuyển vận (transport). - Bộ dẫn đường điều khiển quá trình xử lý các địa chỉ và cách mà message được gửi đi giữa các máy - Bộ chuyển hướng điều khiển quá trình gửi chuyển tiếp giữa các máy và giải quyết các bí danh được sử dụng trong message. - Bộ chuyển vận điều khiển các chuyển vận hiện tại của message. Hầu hết các hệ thống Linux đều có chương trình Smail nằm trong thư mục /usr/local/bin mặc dù cũng có khi chúng nằm ở thư mục khác vì thế cần phải biết chính xác đường dẫn đến thư mục Smail để cấu hình hệ thống một cách đúng đắn. Có thể định vị đường dẫn của nó với dòng lệnh: Find /-name Smail –print 1. Cài đặt Smail Hệ thống Smail đòi hỏi nhiều liên kết để Smail có thể thi hành đúng. Có 2 liên kết quan trọng hầu hết là đều đưa đến file /usr/sbin/rmail và /usr/lib/sendmail. Các liên kết này thực sự cần thiết bởi vì hầu hết những chương trình gửi mail của người sử dụng đều gửi mail đến hoặc là rmail hoặc là Sendmail (phụ thuộc vào chương trình mail đang sử dụng) và các mail này còn được gửi thêm một lần nữa đến Smail. Các liên kết cho phép quá trình chuyển hướng này xảy ra trong suốt đối với người sử dụng và các ứng dụng mail. Phải kiểm tra các file rmail và Sendmail có được liên kết đến Smail hay chưa, nếu chưa có thì phải thiết lập các liên kết. Các liên kết có sẵn thường chỉ được thiết lập tượng trưng và được hiển thị trong thư mục liệt kê các mục nhập như sau: lrwxrwxrwx 1 root root 6 Sep 16:35 file1 -> file2 Ký tự -> chỉ ra một biểu tượng liên kết tồn tại. Hãy kiểm tra trên cả rmail và Sendmail , nếu các biểu tượng liên kết chưa có, tạo ra chúng bằ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 được thay đổi cho phù hợp với đường dẫn của Smail, Sendmail và rmail trên máy. Một khi các liên kết đã được tạo, kiểm tra sự tồn tại của chúng bằng cách hiển thị các thư mục và tìm các ký hiệu biểu tượng liên kết. Nếu Smail đã được cài đặt vào hoặc sau đó gỡ bỏ khỏi hệ thông qua một kênh SMTP thì cũng cần phải thiết lập một liên kết giữa chương trình Smail và hệ thống SMTP bằng dòng lệnh: ln -s /usr/local/bin/smail /usr/sbin/smtpd Tiếp theo, dịch vụ SMTP phải được cho phép thông qua các file cấu hình TCP. Một file /etc/service phải được thiết lập để cho phép các kết nối SMTP thông qua dòng lệnh: smtp 25/tcp # Simple Mail Transfer Protocol Phải kiểm tra nội dung của dòng này để không xảy ra tình trạng kết nối ra ngoài. Dòng lệnh này cho phép liên kết SMTP được thiết lập giống như một cổng TCP số 25. Nếu lựa chọn cài đặt mặc định Smail như một daemon (tự động khởi tạo khi khởi động hệ thống), phải chắc chắn rằng Smail daemon đã được khởi tạo trong file rc (chẳng hạn như rc.inet2). Câu lệnh thường dùng đối với Smail daemon : /usr/local/bin/smail -bd -q15m Mục chọn –bd trả vệ quá trình hoạt động daemon của Smail và –q15m bắt buộc Smail xử lý các message cứ sau 15 phút. Nếu muốn thiết lập cho quá trình phân phát mail xảy ra thường xuyên hơn nữa hay thay đổi giá trị này. Nếu phải lựa chọn cài đặt Smail không chạy ở chế độ giống như một daemon và muốn nó xuất hiện bằng cách inetd mỗi khi có mail đến, điều này phải được chỉ ra trong file rc. Bởi vì không thể vừa chạy Smail trong cả hai chế độcùng một lúc. Tiếp đó, điều chỉnh các mục nhập trong file /etc/inetd.conf giống như sau: smtp stream tcp nowait root /usr/sbin/smtpd smtpd Biểu tượng liên kết giữa SMTPD và chương trình Smail phải được chỉ ra trong dòng lệnh này để phù hợp với chức năng hoạt động. Sự thay đổi các thiết lập trong các file cấu hình là cần thiết cho Smail, nó phụ thuộc vào hệ thống kết nối nào đang được sử dụng đối với mail hiện tại. Ở những nơi khác việc cấu hình còn thay đổi nếu đang sử dụng hệ thống UUCP hoặc một kết nối TCP trên mạng. Có thể chọn cả hai giải pháp nếu cho phép mail được phân phát thông qua cả hai giao thức. 2. Cấu hình Smail cho UUCP Việc cấu hình hệ thống Smail để sử dụng với các message mail UUCP gửi đến và gửi đi rất đơ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 bằng một chương trình soạn thảo ASCII bất kỳ bằng cách thay đổi giá trị của 4 biến sau: Visible_domain : Các tên miền site của người sử dụng có liên quan. Visible_name: Tên miền đầy đủ của site. UUCP_name: Tên UUCP cơ sở của site. Smart_host: Tên của host UUCP. 3. Thiết lập các tên miền cục bộ: Bắt đầu bằng cách thiết lập tên miền của máy cục bộ nằm trong 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 các tên miền site của người sử dụng trỏ tới. Trường này được sử dụng bởi Smail để tìm ra nếu người nhận message là một user cục bộ. Hệ thống Smail lấy message và trích ra địa chỉ của người nhận, đối chiếu nó dựa vào tên máy cục bộ (từ dòng lệnh hostname) và tất cả các giá trị chỉ định ở biến visible_domain. Nếu có một sự so khớp với một tên bất kỳ trong số đó, message dành cho người nhận cục bộ. Nếu không khớp, message được chuyển ra mạng bên ngoài. Nếu có hơn một giá trị hợp lệ cho tên miền cục bộ, các giá trị được cách ra bởi dấu hai chấm. Ví dụ: visible_domain = tpci : tpci.com : tpci.uucp Nếu site của người sử dụng được đăng ký hợp lệ trên các bảng định vị UUCP, thêm miền UUCP vào danh sách các giá trị hợp lệ. Trường hợp sau đay là khi người sử dụng trỏ tới miền tpci (từ tên miền đầy đủ tpci.com) và UUCP: visible_domain = tpci : tpci.com : uucp Khi một message được gửi ra khỏi một máy cục bộ, hệ thống Smail nối thêm tên miền đầy đủ của máy cục bộ như một phần của thông tin dẫn đường. Tên đầy đủ của mạng cục bộ được define trong 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 là một sự kết hợp của tên host và một của các tên miền nhận được trong giá trị visible_domain. Giá trị visible_domain thường là một tên miền đầy đủ của người sử dụng (nếu có) hoặc một tên miền đã tồn tại trong các bảng dẫn đường khác. 4. Các tên UUCP luân phiên: File cấu hình config đôi khi chứa một mục nhập cho một biến tên là uucp_name. Biến này thường được gán tuỳ ý, không bắt buộc với điều kiện là các biến visible_domain và visible_name được nhập các giá trị đúng. Biến này được dùng khi tên của hệ thống trả về bởi dòng lệnh hostname không phải là tên được đăng ký trong bảng định vị UUCP. Để thiết lập giá trị cho biến uucp_name, tìm (hoặc tạo ra nếu chưa có) bởi dòng khai báo sau: # uucp mapping name uucp_name = tpci.com Nếu tên của người sử dụng được đăng ký giống như đã thiết lập trong biến visible_name thì có thể đơn giản chỉ lặp lại giá trị trong biến uucp_name mà vẫn không mất đi tác dụng. Nếu tên site đã thay đổi, nhập vào giá trị thích hợp để thay thế. 5 Thiết lập UUCP Smart Host: Một vài hệ thống sử dụng máy khác bên ngoài như một smart host để điều khiển quá trình phát đi các message đến và nhận từ các mạng khác. Nếu đang sử dụng một smart host, người sử dụng phải đặt tên cho nó trong file cấu hình config đến biến smart_host. # Smart host smart_host = merlin; Trong trường hợp trên, bất kỳ mail nào cho các mạng ngoài khác đều được chuyển đi bởi Smail đến máy merlin mà máy này có thể để ý đến quá trình dẫn đường ra khỏi mạng. Bất kỳ tên máy nào được nhận trong biến smart_host đều phải thuộc phạm vi hoạt động của hệ thống UUCP. 6. 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 bằng nhiều cách khác nhau. Có thể thiết lập Smail chứa các message gửi đến và gửi đi trong một hàng đợi và xử lý chúng ngay sau đó hoặc xử lý ngay tức thì. Quá trình này được điều khiển với các biến queue_only và delivery_mode. Biến queue_only là một giá trị kiểu Boolean, nếu được thiết lập sẽ cho phép biến delivery_mode có thể thiết lập 1 trong 3 giá trị sau: Foreground: Xử lý các message gửi đến ngay tức thì. Background: Message được phát đi bởi một quá trình nhỏ. Queue: Giữ message lại để sau đó xử lý. Một khi hàng đợi đã được phép, các message được giữ lại trong một hàng đợi Smail (thường nằm ở /var/spool/smail/message) cho đến khi hàng đợi được xử lý. Quá trình xử lý được điều khiển bởi chức năng –q trên dòng lệnh Smail (nếu Smail được chạy như một daemon) hoặc bằng cách đưa ra dòng lệnh runq từ một file crontab (nếu Smail được chạy từ inetd), để quá trình làm việc sau đó được chính xác, runq cũng phải được liên kết Smail. Gọi dòng lệnh khởi động từ file rc: /usr/local/bin/smail/ -bd –q15 Chú ý là hàng đợi được xử lý cứ mỗi sau 15 phút, trong ví dụ trên, dòng lệnh xử lý hàng đợi có thể được thiết lập bất kỳ giá trị nào, nhưng phải không được quá dài để các file hàng đợi không nhận quá nhiều. Và cũng có thể hiển thị nội dung hiện tại của hàng đợi Smail bằng cách đưa ra dòng lệnh với chức năng –bd hoặc với dòng lệnh mailq (cũng được liên kết đến Smail). 7. Gỡ rối Smail Trên hệ điều hành Linux, Smail sử dụng 2 file log để ghi lại các công việc. Hầu hết các công việc đều được ghi lại trong file /var/spool/smail/log/logfile. Mỗi mục nhập trong trong file log tương ứng với một công việc Smail đã hoàn tất và chứa đứng thống số xác minh của message, người gửi, người nhập, time, kích cỡ và thông tin dẫn đường. Người sử dụng có thể xem nội dung của file log để kiểm tra hệ thống Smail làm việc được tốt hơn. Các lỗi và các vấn đề khác được ghi trong file paniclog (/var/spool/smail/log/paniclog). Một mục nhập trong file này cho thấy thông tin cơ bản về message và cả các lý do mà message không được gửi đi. Ví dụ: Các lỗi chung hầu hết là lỗi dẫn đường message thông qua SMTP (ERR_148) transport smtp: connect: Connection refused Nếu tìm thấy các lỗi này trong file paniclog thì điều này có nghĩa là SMTP đã bị lỗi, kết nối không được trả lời bởi vì một host từ xa không còn nữa hoặc dịch vụ TCP đã không được phép. Nếu mục nhập trong file paniclog không thể giúp người sử dụng giải quyết được vấn đề thì có thể cho phép một trình gỡ rối trên Smail bằng cách thêm vào chức năng –d theo sau một con số trong dòng lệnh khởi động. Con số cho thấy số lượng thông tin gỡ rối được sinh ra và hiển thi trên màn hình. . Nếu không nhận được bất kỳ mail nào chuyển đến mailbox của người sử dụng, kiểm tra tên đường dẫn của file mailbox. Nếu không chắc chắùn nơi chứa mailbox, cố gắng tạo ra liên kết giữa /usr/spool/mail/username và /var/spool/mail/username 8. Điều chỉnh cách vận hành Smail: Ba thành phần cơ bản của Smail (rooter, director và transport) có thể được cấu hình để điều chỉnh quá trình vận hành của chúng. Nhưng người sử dụng chỉ cần xem xét chi tiết thành phần rooter còn hai thành phần còn lại đều được tùy biến trong quá trình cài đặt Linux đầy đủ. Trong hầu hết các trường hợp, quá trình vận hành của mỗi thành phần trong Smail được điều khiển bởi một hoặc 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ừ các đĩa CD-ROM hoặc từ các site FTP Linux mà nó sẽ đưa ra các cấu hình khác nhau. Tìm một trong những file này và sau đó hiệu chỉnh nó cho phù hợp với hệ thống đang sử dụng. Thành phần router của Smail điều khiển quá trình xử lý các địa chỉ đích, dẫn đường đến mail host kế tiếp cho quá trình gửi message được xa hơn và xác định kiểu chuyển vận nào sẽ được sử dụng để gửi message đi. Thành phần rooter thực hiện một số tác vụ, đầu tiên là việc xác định nếu message gửi đến một máy cục bộ hay một máy từ xa (sử dụng các giá trị biến được khai báo trong /usr/lib/smail/config). Nếu message dành cho máy cục bộ, message sẽ được chuyển sang director. Nếu message dành cho một máy từ xa, địa chỉ của message được đưa đến router driver để xác định host nào mà message chuyển đến. Router driver được chỉ định trong file router (/usr/lib/smail/router). File này chứa tên các router driver, mỗi router driver được nhận địa chỉ đích của message để nhận ra nếu chúng có thông tin yêu cầu về router cụ thể để gửi message. Nếu đang sử dụng cả kết nối SLIP/PPP lẫn UUCP người sử dụng có thể gặp một số vấn đề đối với Smail là phải chờ đợi quá lâu cho một phiên kết nối. Để đơn giản kiểu cài đặt này, sắp xếp lại trật tự các router và kiểm tra đường dẫn file trước khi giải quyết các router. Khi một router nhận ra đường đi tốt nhất đến một máy đích, nó cũng nhận một transport được yêu cầu để liên lạc với router mail của máy đó. Đường dẫn thực sự đến máy đích có thể được hiệu chỉnh tại một số thời điểm. Ví dụ, nếu một máy tính từ xa chatton@bigcat.com có thể được truy cập đến tốt nhất thông qua một liên kết UUCP thay vì SMTP, các địa chỉ đích có thể được điều chỉnh lại bởi router đến bigcat!chatton (kiểu địa chỉ UUCP). Như vậy một địa chỉ đích có thể trở nên cụ thể và rõ ràng hơn. Ví dụ, địa chỉ chatton@bigcat.com có thể được giải quyết để chỉ định một máy khác chẳng hạn như chatton@whisker.bigcat.com nếu địa chỉ đó sẽ nhận message chuyển đến hiệu quả hơn. 9. Cấu hình Smail để sử dụng với hệ thống TCP Nếu cần phải sử dụng một kết nối mạng truyền mail thì cần phải điều chỉnh lại file config để chỉ định các kiểu kết nối và các tên host. Có nhiều cách để cấu hình các hệ thống mail cho một mạng. Các cách nào bao gồm sử dụng hệ thống NFS (Network File System) để cho phép một file cấu hình đơn lẻ chia sẻ với tất cả các máy, sử dụng POP hoặc IMAP để điều khiển mail trên một site trung tâm và cài đặt lên mỗi máy như một bộ điều khiển mail độc lập. Quá trình cấu hình cho tất cả các phương thức đó thì phần nhiều là giống nhau. Chỉ khác nhau ở chỗ có hay không các file cấu hình đặt trên mỗi máy trong mạng hoặc một máy đơn lẻ được truy cập sau đó bằng NFS hoặc SMTP bởi các máy khác. Bắt đầu quá trình cấu hình bằng cách thiết lập các tên miền cục bộ sử dụng các biến visible_domain và visible_name. Ví dụ: # Our domain name visible_domain=tpci.com # Our domain name for outgoing mail visible_name=tpci.com Đoạn mã này thiết lập tên miền cục bộ và các tên miền quyết định. Mục nhập cho biến visible_domain được sử dụng bởi Smail để gửi đính kèm đến tất cả các mail gửi đi. Cả hai biến thường được gán giống nhau. Bước cấu hình kế tiếp là thiết lập tên của smart_host điều khiển các message ra ngoài mạng cục bộ. Nếu không sử dụng smart_host hoặc máy của người sử dụng điều khiển các kết nối mạng đến chính nó thì không cần những giá trị này. Các biến có liên quan trong việc cài đặt lên một smart_host là smart_path ( chỉ định tên máy smarthost) và 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 của SMTP được sử dụng để nhận biết giao thức kết nối SMTP. C. HIỆN THỰC CHƯƠNG TRÌNH Trên cơ sở lý thuyết tìm hiểu về Mailing list và các Mail system em tiến hành xây dựng mô phỏng một hệ thống mail với các chức cơ bảng như năng gửi và nhận mail dựa trên 2 giao thức truyền nhận cơ bản là SMTP và POP3. Chương trình này là một chương trình Mail Client được viết bằng ngôn ngữ lập trình PERL Phần sau đây sẽ trình bày các lưu đồ thực hiện của chương trình và lưu đồ của các giao thức truyền nhận mail SMTP và POP3. LOGIN EXIT Logout CHECK MAIL SEND MAIL MENU MENU SEND RESET EXIT SEND MAIL CHECK MAIL EXIT READ RETURN DELETE CHECK MAIL MAIL BOX RETURN EXIT NO MAIL RETURN EXIT OK ERROR EXIT RETURN EXIT RETURN EXIT REPLY ADDRESS READ MAIL RETURN Lưu đồ tổng quát: HOẠT ĐỘNG CỦA CHƯƠNG TRÌNH POP3CLIENT: Chương trình Pop3 Client được thực thi đầu tiên khi có kết nối với Server Mail của nhà cung cấp dịch vụ. Khi được thực thi, đầu tiên, nó sẽ lấy các thông tin như: Tên máy hoặc địa chỉ IP Server Mail của nhà cung cấp dịch vụ, đây chính là Server gởi Mail, username và password dùng để login vào Mailbox trên máy Server nhận Mail, hộp thư Inbox trên máy cục bộ dùng để lưu giữ các thư được nhận về, số lần kết nối lại nếu chương trình đang nhận mà bị ngắt giữa chừng, và thời gian timeout trong trường hợp Server không trả lời. Kế tiếp, chương trình sẽ khởi tạo các signal dùng để xử lý các biến cố có thể xảy ra trong quá trình nhận Mail, ví dụ: đường truyền bị ngắt, timeout,…. Nếu các biến cố này xảy ra thì quá trình sẽ gọi các hàm cài đặt sẳn đi kèm với biến cố để xử lý. Tiếp theo, chương trình sẽ thực hiện việc kiểm tra lại xem username và password dùng để đăng nhập vào Mailbox của Server Mail đã có trong cấu trúc POP3_SERVER chưa, nếu đã có thì chương trình sẽ dùng username và password này để thực hiện quá trình login vào Mailbox của Server, nếu chưa có thì sẽ hiển thị yêu cầu nhập vào username và password để thực hiện quá trình login. Sau đó, Pop3Client sẽ mở một socket để thực hiện một kết nối tới Server nhận Mail, mà tên hoặc địa chỉ IP của computer mà chương trình Pop3Server đang chạy được lưu giữ trong trường host của cấu trúc POP3_SERVER. Nếu là tên, chương trình sẽ thực hiện việc chuyển đổi sang địa chỉ IP để thực hiện kết nối. Nếu kết nối thực hiện thành công, Pop3 Client sẽ nhận được một lời chào được gởi tới bởi Pop3 Server và session sẽ bước vào quá trình AUTHORIZATION. Lúc này, Pop3Client sẽ gởi username và password tới cho Pop3Server kiểm tra. Nếu quá trình AUTHORIZATION thực hiện thành công, session sẽ bước vào quá trình TRANSACTION, nếu không thành công, Pop3Server sẽ gởi thông báo lỗi lại cho Pop3Client. Lúc này, Pop3Client có thể thực hiện việc đăng nhập lại với username và password khác hoặc có thể gởi lệnh “QUIT” để thoát. Bước vào quá trình TRANSATION, đầu tiên Pop3 Client sẽ gởi lệnh “STAT” tới server để kiểm tra xem có mail trong mailbox hay không. Nếu có, server sẽ trả về tổng số thư hiện có trong mailbox và kích thước của mailbox. Tiếp đó, Pop3Client sẽ gởi lệnh “LIST” để lấy kích thước của từng message. Sau khi có được tổng số message có trong mailbox, Pop3 Client sẽ bước vào vòng lặp dùng để nhận mail, với mỗi bước của vòng lặp sẽ thực hiện một lệnh “RETR” với số thứ tự tương ứng với chỉ số của vòng lặp dùng để nhận message tương ứng. Sau khi nhận xong message, Pop3Client sẽ gởi lệnh “DELE i” tới server để xóa message này. Sau khi lấy hết các message có trong mailbox của server, Pop3Client sẽ gởi lệnh “QUIT” tới server để yêu cầu server chuyển Pop session sang trạng thái Update và thoát. Đối với Server, khi bước vào trạng thái UPDATE, nó sẽ xóa thật sự các message đã được đánh dấu xóa trong Mailbox vào đóng kết nối. Nếu một kết nối đã đóng lại mà Server không bước vào trạng thái UPDATE thì các message được đánh dấu xóa sẽ không được xóa trong Mailbox mà nó sẽ trở lại trạng thái ban đầu. Yes Yes Yes Tạo socket Connect server tại port 110 Gởi lệnh USER username \r\n Response = +OK Gởi lệnh PASS password \r\n Response = +OK Gởi lệnh PASS password \r\n Gởi lệnh STAT \r\n Response = +OK 1 Báo lỗi Đóng Socket No No No No Lưu Đồ Cho Getmail Lưu Đồ Cho Getmail (Tiếp tục) No 1 Xử lý hàng nhận được lấy tổng số message Gán i=1 Gởi lệnh RETR i Đọc từng vào từng dòng từ socket và ghi File cho đến khi kết thúc bức mail. incr i i <= số msg Gởi lệnh QUIT Đóng Socket Yes HOẠT ĐỘNG CỦA CHƯƠNG TRÌNH SMTP CLIENT Chương trình smtp client sẽ thực hiện lần lượt theo sơ đồ sau: Yes Deliver mail và tạo back up nếu có yêu cầu Đóng kết nối Mở và đọc file outbox Có thư cần gởi? Tạo socket kết nối tới server Thoát và báo lỗi tương ứng No END BEGIN ĐỀ CƯƠNG VIẾT ĐỒ ÁN TỐT NGHIỆP Tên đồ án: - Tìm hiểu về các Web Server thông dụng hiện nay. - Tìm hiểu về Mailing list và các Mail system. - Xây dựng một chương trình Internet mail. Đề cương viết đồ án: Chương I: Tìm hiểu về các Web Server thông dụng Chương II: Các nghi thức truyền nhận Phần I: Giao thức SMTP Phần II: Giao thức POP3 Chương III: Giới thiệu về Internet Mail Chương IV: Tìm hiệu về các hệ thống mail trên hệ điều hành Linux Mục lục ._.

Các file đính kèm theo tài liệu này:

  • docDA.doc