Tìm hiểu tổng quan về FTP, Web Server, SSH một cách cụ thể. Giúp người đọc hiểu cơ bản về các chức năng, cấu trúc của FTP, Web Server và SSH.Trong đó cơ chế vận hành của FTP được mô tả tỉ mỉ chi tiết. Làm cơ sở để tìm hiểu tiếp tục về FTPS.
HỌC VIỆN KỸ THUẬT QUÂN SỰ KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN CÔNG NGHỆ MẠNG BÁO CÁO MÔN QUẢN TRỊ MẠNG TÌM HIỂU VỀ FTP, WEBSERVER, SSH Nhóm 10 Ngô Hồng Quân – TH2 Trần Văn Anh Tuấn – TH2 HÀ NỘI - 2016 MỤC LỤC CHƯƠNG 1: FTP – File Transfer Protocol 1.1 Khái niệm hoạt động FTP Những người phát triển giao thức FTP cần cân nhu cầu việc phát triển giao thức vừa có nhiều chức vừa đơn giản triển khai Hoạt động giao thức chia thành nhiều thành phần nhỏ, hoạt động để thực công việc khởi tạo kết nối, truyền thông tin điều khiển truyền lệnh Dịch vụ FTP dịch vụ cung cấp chế truyền, nhận file qua giao thức TCP/IP Dịch vụ FTP hoạt động hai port: • Port 20: data port Dữ liệu truyền port • Port 21: control port Port dùng để trao đổi lệnh, reply client server 1.2 Mô hình hoạt động, thành phần giao thức, thuật ngữ FTP Giao thức FTP mô tả cách đơn giản thông qua mô hình hoạt động FTP Nó mô tả thành phần FTP dùng để quản lý kênh hai phía – truyền nhận Do đó, mô hình tạo cho ta khởi điểm lý tưởng để xem xét hoạt động FTP mức khái quát 1.2.1 Tiến trình Server-FTP User-FTP FTP giao thức dạng client/server truyền thống, nhiên thuật ngữ client thông thường thay thuật ngữ user – người dùng – thực tế người sử dụng đối tượng trực tiếp thao tác lệnh FTP máy clients Bộ phần mềm FTP cài đặt thiết bị gọi tiến trình Phần mềm FTP cài đặt máy Server gọi tiến trình Server-FTP, phần máy client gọi tiến trình UserFTP 1.2.2 Kênh điều khiển kênh liệu FTP Một khái niệm cốt yếu mà ta cần phải nắm FTP là: giao thức sử dụng kết nối TCP, không dùng kênh TCP phần lớn giao thức truyền thông khác Mô hình FTP chia trình truyền thông phận Server với phận client làm hai kênh logic: - Kênh điều khiển: kênh logic TCP dùng để khởi tạo phiên kết nối FTP Nó trì xuyên suốt phiên kết nối FTP sử dụng để truyền thông tin điều khiển, lệnh hồi đáp FTP Nó không dùng để truyền file - Kênh liệu: Mỗi liệu truyền từ server tới client, kênh kết nối TCP định lại khởi tạo chúng Dữ liệu truyền qua kênh kết nối – gọi kênh liệu Khi file truyền xong, kênh ngắt Việc sử dụng kênh riêng lẻ tạo linh hoạt việc truyền truyền liệu – mà ta thấy phần Tuy nhiên, tạo cho FTP độ phức tạp định 1.2.3 Các tiến trình thuật ngữ FTP Do chức điều khiển liệu sử dụng kênh khác nhau, nên mô hình hoạt động FTP chia phần mềm thiết bị làm hai thành phần logic tương ứng với kênh Thành phần Protocol Interpreter (PI) thành phần quản lý kênh điều khiển, với chức phát nhận lệnh Thành phần Data Transfer Process (DTP) có chức gửi nhận liệu phía client với server Ngoài ra, cung cấp cho tiến trình bên phía người dùng có thêm thành phần thứ ba giao diện người dùng FTP – thành phần phía server Do đó, có hai tiến trình xảy phía server, ba tiến trình phía client Các tiến trình gắn với mô hình FTP để mô tả chi tiết hoạt động giao thức FTP Dưới hình đối chiếu tiến trình vào mô hình FTP: Các tiến trình phía server: Các tiến trình phía server bao gồm hai giao thức: - Server Protocol Interpreter (Server-PI): chịu trách nhiệm quản lý kênh điều khiển server Nó lắng nghe yêu cầu kết nối hướng tới từ users cổng dành riêng Khi kết nối thiết lập, nhận lệnh từ phía UserPI, trả lời lại, quản lý tiến trình truyền liệu server - Server DataTransfer Process (Server-DTP): làm nhiệm vụ gửi nhận file từ phận User-DTP Server-DTP vừa làm nhiệm thiết lập kết nối kênh liệu lắng nghe kết nối kênh liệu từ user Nó tương tác với server file hệ thống cục để đọc chép file Các tiến trình phía client: - User Protocol Interpreter (User-PI): chịu trách nhiệm quản lý kênh điều khiển phía client Nó khởi tạo phiên kết nối FTP việc phát yêu cầu tới phía Server-PI Khi kết nối thiết lập, xử lý lệnh nhận giao diện người dùng, gửi chúng tới Server-PI, nhận phản hồi trở lại Nó quản lý tiến trình User-DTP - User Data Transfer Process (User-DTP): phận DTP nằm phía người dùng, làm nhiệm vụ gửi nhận liệu từ Server-DTP User-DTP thiết lập lắng nghe yêu cầu kết nối kênh liệu server Nó tương tác với thiết bị lưu trữ file phía client - User Interface: cung cấp giao diện xử lý cho người dùng Nó cho phép sử dụng lệnh đơn giản hướng người dùng, cho phép người điều khiển phiên FTP theo dõi thông tin kết xảy tiến trình 1.3 Thiết lập kênh điều khiển chứng thực người dùng FTP Mô hình hoạt động FTP mô tả rõ kênh liệu điều khiển thiết lập FTP client FTP server Trước kết nối sử dụng để thực truyền file, kênh điều khiển cần phải thiết lập Một tiến trình định sau dùng để tạo kết nối tạo phiên FTP lâu bền thiết bị để truyền files Như giao thức client/server khác, FTP server tuân theo luật passive kênh điều khiển Bộ phận Server Protocol Interpreter (Server-PI) lắng nghe cổng TCP dành riêng cho kết nối FTP cổng 21 Phía User-PI tạo kết nối việc mở kết nối TCP từ thiết bị người dùng tới server cổng Nó sử dụng cổng làm cổng nguồn phiên kết nối TCP Khi TCP cài đặt xong, kênh điều khiển thiết bị thiết lập, cho phép lệnh truyền từ User-PI tới Server-PI, Server-PI đáp trả kết mã thông báo Bước sau kênh vào hoạt động bước đăng nhập người dùng (login sequence) Bước có hai mục đích: - Access Control - Điều khiển truy cập: trình chứng thực cho phép hạn chế truy cập tới server với người dùng định Nó cho phép server điều khiển loại truy cập người dùng - Resource Selection - Chọn nguồn cung cấp: Bằng việc nhận dạng người dùng tạo kết nối, FTP server đưa định cung cấp nguồn cho người dùng nhận dạng 1.3.1 Trình tự truy cập chứng thực FTP Quy luật chứng thực FTP đơn giản, cung cấp username/password Trình tự việc chứng thực sau: i người dùng gửi username từ User-PI tới Server-PI lệnh USER Sau password người dùng gửi lệnh PASS ii Server kiểm tra tên người dùng password database người dùng Nếu người dùng hợp lệ, server gửi trả thông báo tới người dùng phiên kết nối mở Nếu người dùng không hợp lệ, server yêu cầu người dùng thực lại việc chứng thực Sau số lần chứng thực sai định, server ngắt kết nối Giả sử trình chứng thực thành công, server sau thiết lập kết nối phép loại truy cập người dùng cấp quyền Một số người dùng truy cập vào số file định, vào số loại file định Một số server cấp quyền cho số người dùng đọc viết lên server, cho phép đọc người dùng khác Người quản trị mạng nhờ mà đáp ứng nhu cầu truy cập FTP Một kết nối thiết lập, server thực lựa chọn tài nguyên dựa vào nhận diện người dùng Ví dụ: hệ thống nhiều người dùng, người quản trị thiết lập FTP để có người dùng kết nối tới, tự động đưa tới “home directory” Lệnh tùy chọn ACCT (account) cho phép người dùng chọn tài khoản cá nhân có nhiều tài khoản 1.3.2 Mở rộng bảo mật FTP Giống phần lớn giao thức cũ, phương pháp đăng nhập đơn giản FTP kế thừa từ giao thức thời kỳ đầu Internet Ngày nay, không bảo đảm tính an toàn cần thiết môi trường Internet toàn cầu username password gửi qua kênh kết nối điều khiển dạng clear text Điều làm cho thông tin đăng nhập bị nghe Chuẩn RFC 2228 phần mở rộng cho bảo mật FTP định thêm nhiều tùy chọn chứng thực mã hóa phức tạp cho muốn tăng thêm mức độ an toàn vào phần mềm FTP họ 1.4 Quản lý kênh liệu FTP, kết nối kênh liệu dạng chủ động (mặc định) bị động với việc sử dụng cổng Kênh điều khiển tạo Server-PI User-PI sử dụng trình thiết lập kết nối chứng thực trì suốt phiên kết nối FTP Các lệnh hồi đáp trao đổi phận PI (Protocol Interpreter) qua kênh điều khiển, liệu không Mỗi cần phải truyền liệu server client, kênh liệu cần phải tạo Kênh liệu kết nối phận User-DTP với Server-DTP Kết nối cần thiết cho hoạt động chuyển file trực tiếp (gửi nhận file) việc truyền liệu ngầm, yêu cầu danh sách file thư mục server Chuẩn FTP định hai phương thức khác để tạo kênh liệu Khác biệt hai phương thức mặt thiết bị: phía client hay phía server phía đưa yêu cầu khởi tạo kết nối Điều nghe qua đơn giản, lại quan trọng 1.4.1 Kết nối kênh liệu dạng chủ động Phương thức gọi kết nối kênh liệu dạng thông thường (vì phương pháp mặc định) gọi kết nối dạng chủ động (để đối chiếu với dạng kết nối bị động mà ta xét phần sau) Trong dạng kết nối này, phía Server-DTP khởi tạo kệnh liệu việc mở cổng TCP cho phía User-DTP Phía server sử dụng cổng dành riêng, cổng 20 cho kênh liệu Trên máy client, giá trị cổng chọn theo mặc định cổng sử dụng kênh điều khiển, nhiên phía client chọn hai cổng riêng biệt cho hai kênh Giả sử phía User-PI thiết lập kết nối điều khiển từ cổng 1678 tới cổng điều khiển server cổng 21 Khi đó, để tạo kênh liệu cho việc truyền liệu, phía Server-PI báo cho phía ServerDTP khởi tạo kênh kết nối TCP từ cổng 20 tới cổng 1678 phía client Sau phía client chấp nhận kênh khởi tạo, liệu truyền Thực tế, việc sử dụng cổng cho kênh liệu kênh điều khiển ý hay, làm cho hoạt động FTP trở nên phức tạp Do đó, phía client nên định sử dụng cổng khác việc sử dụng lệnh PORT trước truyền liệu Ví dụ: giả sử phía client định cổng 1742 với lệnh PORT Phía Server-DTP sau tạo kết nối từ cổng 20 tới cổng 1742 phía client thay cổng 1678 mặc định Quá trình mô tả hình Thông thường, kênh liệu FTP, phía server khởi tạo việc truyền liệu cách mở kết nối liệu tới client Trong trường hợp trên, phía client trước tiên đưa lệnh PORT để yêu cầu server sử dụng cổng 1742 Sau đó, server mở kết nối kênh liệu từ cổng 20 mặc định tới cổng 1742 phía client Dữ liệu sau truyền thiết bị qua cổng 1.4.2 Kết nối kênh liệu dạng bị động Phương pháp gọi kết nối liệu dạng bị động Phía client nhận server phía bị động, làm nhiệm vụ chấp nhận yêu cầu kết nối kênh liệu khởi tạo từ phía client Server trả lời lại phía client với địa IP địa cổng mà sử dụng Phía Server-DTP sau lắng nghe kết nối TCP từ phía User-DTP cổng Mặc định, phía client sử dụng cổng hai kênh điều khiển liệu trường hợp kết nối chủ động Tuy nhiên, đây, lần phía client chọn sử dụng giá trị cổng khác cho kênh liệu Ta xét lại ví dụ lần nữa, với cổng điều khiển phía client 1678 tới cổng 21 phía server Nhưng lần truyền liệu theo phương thức kết nối bị động, mô tả hình đây: Phía client sử dụng lệnh PASV để yêu cầu server muốn dùng phương thức điều khiển liệu bị động Phía Server-PI trả lời lại phía client với giá trị cổng mà client sử dụng, từ cổng 2223 Sau phía Server PI hướng cho phía Server-DTP lắng nghe cổng 2223 Phía User-PI hướng cho phía User-DTP tạo phiên kết nối từ cổng 1742 phía client tới cổng 2223 phía server Sau Server chấp nhận kết nối này, liệu bắt đầu truyền 1.4.3 Các vấn đề tính hiệu tính bảo mật việc chọn phương thức kết nối Vấn đề phía phía khởi tạo kết nối kênh liệu đưa câu hỏi: khác hai phương thức gì? Điều giống việc hỏi thực điện thoại nội Câu trả lời bảo mật Việc FTP sử dụng nhiều kết nối TCP giải vấn đề phần mềm phần cứng mà người dùng cần phải có để đảm bảo an toàn cho hệ thống họ Khi xem xét việc xảy trường hợp kênh liệu chủ động ví dụ phía trên: Đối với phía client, có kênh kết nối điều khiển thiết lập từ cổng 1678 client tới cổng 21 server Nhưng kênh liệu lại khởi tạo từ phía server Do đó, client nhận yêu cầu kết nối tới cổng 1678 (hoặc cổng khác) Một số client nghi ngờ việc nhận kết nối tới vậy, tình thông thường, client phía khởi tạo kết nối đáp trả kết nối Do kênh kết nối TCP hướng tới mang theo mối đe dọa định, số client ngăn chặn luồng kết nối hướng tới việc sử dụng tường lửa Tại người ta lại không làm cho phía client chấp nhận kết nối từ số port dùng kênh điều khiển? Vấn đề client thường dùng cổng khác cho phiên kết nối việc sử dụng câu lệnh PORT Và điều lại thực hiện? Vì theo luật TCP: sau kết nối đóng lại , có khoảng thời gian trống trước cổng sử dụng lại – điều để ngăn ngừa tình trạng phiên kết nối liên tiếp bị lẫn với Điều tạo độ trễ gửi nhiều file – phía client thường dùng giá trị cổng khác cho kết nối Điều hiệu dẫn tới việc firewall client hỏi có chấp nhận phiên kết nối tới với nhiều giá trị cổng không ổn định hay không Việc dùng kết nối kiểu kênh gián tiếp giảm thiểu vấn đề cách hiệu Phần lớn tường lửa có nhiều vấn đề liên quan tới kết nối hướng với giá trị cổng bất kỳ, gặp vấn đề với kết nối hướng Ta xem chi tiết vấn đề chuẩn RFC 1579 Chuẩn khuyến nghị phía client nên sử dụng kết nối kiểu bị động làm dạng mặc định thay sử dụng kiểu kết nối dạng chủ động với lệnh PORT, để ngăn chặn tình trạng block theo cổng Tất nhiên, phương thức kết nối kiểu bị động không hoàn toàn giải vấn đề, chúng đẩy vấn đề phía server mà Phía server, phải đối mặt với việc có nhiều kênh kết nối hướng hàng loạt cổng khác Tuy nhiên việc xử lý vấn đề bảo mật nhóm nhỏ server dễ nhiều so với việc phải đối mặt với lượng lớn vấn đề từ nhiều client FTP server phải cấu hình chấp nhận phương thức truyền bị động từ client, cách thông thường để thiết lập server thiết lập chấp nhận số cổng kết nối hướng server khóa yêu cầu kết nối hướng cổng khác 10 1.5 Các phương thức truyền liệu FTP Khi kênh liệu thiết lập xong Server-DTP với User-DTP, liệu truyền trực tiếp từ phía client tới phía server, ngược lại, dựa theo lệnh sử dụng Do thông tin điều khiển gửi kênh điều khiển, nên toàn kênh liệu sử dụng để truyền liệu (Tất nhiên, hai kênh logic kết hợp với lớp với tất kết nối TCP/UDP khác hai thiết bị, điều không hẳn cải thiện tốc độ truyền liệu so với truyền kênh – làm cho hai việc truyền liệu điều khiển trở nên độc lập với mà thôi) FTP có ba phương thức truyền liệu, nêu lên cách mà liệu truyền từ thiết bị tới thiết bị khác kênh liệu khởi tạo, là: stream mode, block mode, compressed mode 1.5.1 Stream mode Trong phương thức này, liệu truyền dạng byte không cấu trúc liên tiếp Thiết bị gửi đơn đầy luồng liệu qua kết nối TCP tới phía nhận Không có trường tiêu đề định sử dụng phương thức làm cho khác so với nhiều giao thức gửi liệu rời rạc khác Phương thức chủ yếu dựa vào tính tin cậy truyền liệu TCP Do cầu trúc dạng header, nên việc báo hiệu kết thúc file đơn giản thực việc phía thiết bị gửi ngắt kênh kết nối liệu truyền xong Trong số ba phương thưc, stream mode phương thức sử dụng nhiều triển khai FTP thực tế Có số lý giải thích điều Trước hết, phương thức mặc định đơn giản nhất, việc triển khai dễ dàng Thứ hai, phương pháp phổ biến nhất, xử lý với file đơn xử lý dòng byte, mà không để ý tới nội dung file Thứ ba, phương thức hiệu không tốn lượng byte “overload” để thông báo header 1.5.2 Block mode Đây phương thức truyền liệu mang tính quy chuẩn hơn, với việc liệu chia thành nhiều khối nhỏ đóng gói thành FTP blocks Mỗi block có trường header byte báo hiệu độ dài, chứa thông tin khối liệu gửi Một thuật toán đặc biệt sử dụng để kiểm tra liệu truyền để phát hiện, khởi tạo lại phiên truyền liệu bị ngắt 1.5.3 Compressed mode Đây phương thức truyền sử dụng kỹ thuật nén đơn giản, “run-length encoding” – có tác dụng phát xử lý đoạn lặp liệu truyền để giảm chiều dài toàn thông điệp Thông tin nén, xử lý block mode, với trường 11 header Trong thực tế, việc nến liệu thường sử dụng chỗ khác, làm cho phương thức truyền kiểu compressed mode trở nên không cần thiết Ví dụ: bạn truyền file qua internet với modem tương tự, modem bạn thông thường thực việc nén lớp 1; file lớn FTP server thường nén sẵn với số định dạng ZIP, làm cho việc nén tiếp tục truyền liệu trở nên không cần thiết CHƯƠNG 2: WEB SERVER 2.1 Khái niệm Web Server Webserver máy chủ cài đặt chương trình (phần mềm) phục vụ ứng dụng web Webserver có khả tiếp nhận yêu cầu từ trình duyệt web gửi phản hồi đến máy khách trang web thông qua môi trường mạng Internet qua giao thức HTTP giao thức khác Mỗi loại Web server hỗ trợ số loại tập tin riêng biệt, ví dụ IIS hỗ trợ số tập tin asp, aspx, html, php,… Apache hỗ trợ php Có nhiều phần mềm web server khác như: Apache, Nginx, LiteSpeed, IIS, … Web server thông dụng nhất nay: 2.2 Tổng quan Web Server Máy chủ Web Server máy chủ có dung lượng lớn, tốc độ cao dùng để lưu trữ thông tin ngân hàng liệu chứa website thiết kế với thông tin liên quan khác (các mã Script, chương trình, file Multimedia) 2.2.1 - Môi trường giao thức Web Server có khả gửi đến máy khách trang Web thông qua môi trường Internet (hoặc Intranet) qua giao thức HTTP – giao thức thiết kế để gửi file đến trình duyệt Web (Web Browser), giao thức khác 12 Tất Web Server có địa IP (IP Address) có Domain Name Giả sử bạn đánh vào Address trình duyệt bạn dòng http://www.abc.com sau gõ phím Enter bạn gửi yêu cầu đến Server có Domain Name www.abc.com Server tìm trang Web có tên index.htm gửi đến trình duyệt bạn 2.2.2 – Web Server Software Bất kỳ máy tính trở thành Web Server việc cài đặt lên chương trình phần mềm Server Software sau kết nối vào Internet Khi máy tính bạn kết nối đến Web Server gửi đến yêu cầu truy cập thông tin từ trang Web đó, Web Server Software nhận yêu cầu gửi lại cho bạn thông tin mà bạn mong muốn Giống phần mềm khác mà bạn cài đặt máy tính mình, Web Server Software ứng dụng phần mềm Nó cài đặt, chạy máy tính dùng làm Web Server, nhờ có chương trình mà người sử dụng truy cập đến thông tin trang Web từ máy tính khác mạng (Internet, Intranet) Web Server Software tích hợp với CSDL (Database), hay điều khiển việc kết nối vào CSDL để truy cập kết xuất thông tin từ CSDL lên trang Web truyền tải chúng đến người dùng Web Server phải hoạt động liên tục 24/24 giờ, ngày tuần 365 ngày năm, để phục vụ cho việc cung cấp thông tin trực tuyến Vị trí đặt server đóng vai trò quan trọng chất lượng tốc độ lưu chuyển thông tin từ server máy tính truy cập 2.3 Giới thiệu số phần mềm Web Server phổ biến 2.3.1 Apache HTTP server Apache HTTP server hay gọi Apache phần mềm web server sử dụng rộng rãi giới Apache phát triển trì cộng đồng mã nguồn mở bảo trợ Apache Software Foundation Apache phát hành với giấy phép Apache License, phần mềm tự do, miễn phí Tính đến tháng năm 2013, apache ước tính phục vụ cho 54.2% trang web hoạt động 53.3% số máy chủ hàng đầu lĩnh vực 13 Apache chạy hệ điều hành windows, linux, unix, freeBSD, solaris, … Apache có tính chứng thực người dùng, virtual hosting, hỗ trợ CGI, FCGI, SCGI, WCGI, SSI, ISAPI, HTTPS, Ipv6, 2.3.2 Nginx Nginx web server nhẹ, không chiếm nhiều tài nguyên hệ thống Nginx reserse proxy mã nguồn mở Nginx phần mềm ổn định, cấu hình đơn giản hiệu suất cao Nginx phát triển Igor Sesoev vào năm 2002 chủ yếu để phục vụ cho website rambler.ru (trang web truy cập nhiều thứ hai nước Nga) Nginx phần mềm mã nguồn mở phần mềm miễn phí, phát hành rộng rãi theo giấy phép BSD Nginx phát triển ngôn ngữ C Theo thống kê Netcaft, triệu website lớn giới có 6.52% sử dụng Nginx Tại Nga, quê hương Nginx, có 46.9% sử dụng máy chủ Nginx chạy hệ điều hành Linux, FreeBSD, Windows, Solaris, MacOS… Nginx có tính chứng thực người dùng, hỗ trợ HTTPS, virtual hosting, hỗ trợ FastGCI, hỗ trợ Ipv6… 2.3.3 Internet Information Services (IIS) IIS Microsoft phát triển, sản phẩm tích hợp với hệ điều hành Windows Server Trong IIS bao gồm nhiều dịch vụ như: dịch vụ Web Server, dịch vụ FTP Server Tính đến thời điểm tháng năm 2015 thì số lượng trang Web sử dụng máy chủ IIS gần 248 triệu trang web Tất tính web server quản lí độc lập dễ dàng thêm, loại bỏ thay tính web server IIS đảm bảo an toàn cho máy chủ cách giảm diện tích bề mặt công Giảm diện tích bề mặt công cách mạnh mẽ để đảm bảo hệ thống máy chủ Với IIS, loại bỏ tính máy chủ không cần thiết để máy chủ đạt diện tích bề 14 mặt nhỏ mà giữ tính cần thiết Bằng cách loại bỏ số tính máy chủ không sử dụng, làm giảm số lượng nhớ mà máy chủ sử dụng, cải thiện hiệu suất cách làm giảm số lượng đoạn code cần thực Bằng cách lựa chọn tập hợp tính máy chủ xây dựng máy chủ để tối ưu hóa chức liên kết ứng dụng, chẵn hạn nhớ đệm cân tải Chúng ta thêm tính thay tính có cách sử dụng thành phần máy chủ bên thứ ba thành phần tự xây dựng phần mở rộng API Cấu trúc phần cung cấp lợi ích lâu dài cho cộng động IIS: tạo điều kiện phát triển tính cần thiết cho nhà phát triển Microsoft bên thứ ba Nhờ tích hợp ASP.NET IIS sử dụng toàn sức mạnh ASP.NET Module ASP.NET làm cho máy chủ phát triển nhanh chóng nhờ vào giao diện quen thuộc dịch vụ ứng dụng ASP.NET IIS hỗ trợ chứng thực người dùng, virtual hosting, CGI, FCGI, ISAPI, php, hỗ trợ Ipv6, … 15 CHƯƠNG 3: SSH – SECURE SHELL 3.1 Giao thức SSH gì? SSH (tiếng Anh: Secure Shell) giao thức mạng dùng để thiết lập kết nối mạng cách bảo mật SSH hoạt động lớp mô hình phân lớp TCP/IP Các công cụ SSH (như OpenSSH, PuTTy, ) cung cấp cho người dùng cách thức để thiết lập kết nối mạng mã hoá để tạo kênh kết nối riêng tư Mỗi liệu gửi máy tính vào mạng, SSH tự động mã hoá Khi liệu nhận vào, SSH tự động giải mã Kết việc mã hoá thực suốt: người dùng làm việc bình thường, việc truyền thông họ mã hoá an toàn mạng 3.2 Lịch sử phát triển phiên SSH SSH1 giao thức SSH-1 trình bày năm 1995 Tatu Ylõnen, nhà nghiên cứu trường đại học kĩ thuật Helsinki Phần Lan Sau mạng trường đại học ông ta nạn nhân công đánh cắp password vào đầu năm Năm 1998, SCS phát hành sản phẩm phần mềm "SSH Secure Shell" (SSH2), dựa giao thức SSH-2 Tuy nhiên, SSH2 không thay SSH1 số lĩnh vực, có lí Thứ nhất, SSH2 số tiện ích, đặc điểm có ích cấu hình tuỳ chọn SSH1 Thứ hai, SSH2 có nhiều giới hạn việc đăng kí 3.3 Tổng quan đặc điểm SSH Các đặc điểm giao thức SSH là: - Tính bí mật (Privacy) liệu thông qua việc mã hoá mạnh mẽ - Tính toàn vẹn (integrity) thông tin truyền, đảm bảo chúng không bị biến đổi - Chứng minh xác thực (authentication) nghĩa chứng để nhận dạng bên gửi bên nhận - Giấy phép (authorization) :dùng để điều khiển truy cập đến tài khoản - Chuyển tiếp (forwarding) tạo đường hầm (tunneling) để mã hoá phiên khác dựa giao thức TCP/IP 3.3.1 Tính bí mật (Privacy) Tính bí mật có nghĩa bảo vệ liệu không bị phơi bày Mạng máy tính bình thường không bảo đảm tính bí mật, truy cập đến phần 16 cứng mạng đến host kết nối với mạng đọc tất liệu qua mạng Mặc dù mạng chuyển mạch đại giảm vấn đề mạng vùng cục vấn đề nghiêm trọng mật dễ bị kẻ xấu đánh cắp SSH cung cấp tính bí mật việc mã hoá liệu qua mạng Đó việc mã hoá hai đầu dựa khoá ngẫu nhiên (sinh để phục vụ cho phiên kết nối huỷ phiên kết nối thành công) SSH hỗ trợ nhiều thuật toán mã hoá phiên liệu, thuật toán mã hoá chuẩn như: AES, ARCFOUR, Blowfish, Twofish, IDEA, DES tripleDES (3DES) 3.3.2 Tính toàn vẹn (Integrity) Tính toàn vẹn nghĩa bảo đảm liệu truyền từ đầu đến đầu mạng không bị thay đổi Giao thức SSH sử dụng phương pháp kiểm tra toàn vẹn mật mã, phương pháp kiểm tra việc liệu có bị biến đổi hay không liệu đến có đầu gửi hay không Nó sử dụng thuật toán băm khoá MD5 SHA-1 3.3.3 Chứng minh xác thực (Authentication) Chứng minh xác thực kiểm tra định danh để xác định xác người hay không Mỗi kết nối SSH bao gồm hai việc xác thực: client kiểm tra định danh SSH server (server authentication) server kiểm tra định danh người sr dụng yêu cầu truy cập (user authentication) Server authentication chắn SSH server xác kẻ lừa đảo để đề phòng kẻ công lại gửi kết nối mạng đến máy khác Server authentication bảo vệ việc bị kẻ xấu ngồi hai bên, lừa gạt hai bên nghĩa kẻ xấu nói với server client nói với client server để đọc liệu trao đổi hai bên User authentication theo truyền thống làm việc với mật Để xác thực định danh bạn, bạn phải đưa mật khẩu, dễ bị lấy cắp Thêm nữa, để dễ nhớ mật khẩu, người ta thường đặt ngắn có ý nghĩa nên dễ bị kẻ xấu đoán Đối với mật dài người ta thường chọn từ câu ngôn ngữ bẩm sinh nên dễ bị bẻ khoá SSH hỗ trợ xác thực mật khẩu, mã hoá mật truyền mạng Đây cải thiện lớn so với giao thức truy cập từ xa thông thường khác (Telnet, FTP) mà chúng gửi mật qua mạng dạng clear text Tuy nhiên, việc chứng thực chứng thực mật đơn giản SSH cung cấp chế mạnh dễ sử dụng hơn: user có nhiều chữ kí khoá công cộng (per-user public-key 17 signature) cải tiến rlogin-style xác thực với định danh host kiểm tra khoá công khai Hơn nữa, bổ sung khác SSH hỗ trợ vài hệ thống khác bao gồm Kerberos, RSA, mật S/Key one-time PAM Một SSH client SSH server đàm phán với để xác định chế xác thực sử dụng dựa cấu hình chúng server chí yêu cầu nhiều kiểu xác thực 3.3.4 Việc cấp giấy phép (Authorization) Việc cấp giấy phép có tác dụng định làm Nó diễn sau xác thực, bạn chấp nhận có quyền chưa biết SSH server có nhiều cách khác để giới hạn hành động client Truy cập đến phiên đăng nhập tác động lẫn TCP port X Window forwarding, key agent forwarding, … tất điều khiển tất đặc điểm có sẵn tất bổ sung SSH,và chúng không luôn tống quát linh hoạt bạn ý muốn Giấy phép điều khiển mức server rộng (ví dụ: /etc/ssh/sshd_config file OpenSH) theo tài khoản phụ thuộc vào phương thức xác thực sử dụng 3.3.5 Chuyển tiếp (Forwarding) tạo đường hầm (tunneling) Chuyển tiếp tạo đường hầm tóm lược dịch vụ dựa TCP khác Telnet IMAP phiên SSH mang lại hiệu bảo mật SSH đến với dịch vụ dựa TCP khác Ví dụ, kết nối Telnet bình thường truyền username, password bạn phiên đăng nhập bạn dạng clear text Bằng cách chuyển tiếp telnet thông qua SSH, tất liệu tự động mã hoá kiểm tra định danh bạn xác nhận dùng SSH tin cậy SSH hỗ trợ kiểu chuyển tiếp: TCP port forwarding: SSH dùng TCP/IP làm chế truyền, thường dùng port 22 máy server mã hoá giải mã lưu lượng mạng Ở nói đến đặc điểm mã hoá giải mã lưu lựong TCP/IP thuộc ứng dụng khác, cổng TCP khác dùng SSH Tiến trình gọi port forwarding, có tính suốt cao va mạnh Telnet, SMTP, NNTP, IMAP giao thức không an toàn khác chạy TCP bảo đảm việc chuyển tiếp kết nối thông qua SSH Port forwarding gọi tunneling kết nối SSH cung cấp “đường hầm” xuyên qua để kết nối TCP khác qua Giả sử bạn có máy H nhà chạy IMAP bạn muốn kết nối đến IMAP server máy S để đọc gửi mail Bình thường việc kết nối không đảm bảo an toàn, tài khoản mật mail bạn 18 truyền dạng clear text chương trình mail bạn server Đối với SSH port forwarding, bạn định tuyến lại suốt kết nối IMAP ( tìm cổng TCP 143 server S) để truyền thông qua SSH, mã hoá bảo đảm liệu truyền kết nối Máy IMAP server phải chạy SSH server cho port forwarding để cung cấp việc bảo đảm Tuy nhiên, SSH port forwarding hoạt động giao thức TCP không làm việc giao thức khác UDP hay AppleTalk X forwarding X hệ thống window phổ biến trạm làm việc Unix, đặc điểm tốt tính suốt Sử dụng X bạn chạy ứng dụng X từ xa để mở cửa sổ chúng hình hiển thị cục bạn Agent forwarding SSH client làm việc với SSH agent máy Sử dụng mọt đặc trưng gọi agent forwarding, client liên lạc với agent máy từ xa Điều thuận lợi cho phép client nhiều máy làm việc với agent tránh vấn đề liên quan đến tường lửa 3.4 Kiến trúc chung hệ thống SSH SSH có khoảng 12 thuộc tính riêng lẻ, thành phần tác động lẫn cho nét đặc trưng riêng 19 SSH có khoá (keys), phiên (sessions) thứ khác Ở qui định tóm tắt tổng quan tất thành phần, ví bắt đầu thấy tranh lớn SSH sau: Server Một chương trình cho phép vào kết nối SSH với máy, trình bày xác thực, cấp phép, … Trong hầu hết SSH bổ sung Unix server thường sshd Client Một chương trình kết nối đến SSH server đưa yêu cầu “log me in” “copy this file” Trong SSH1, SSH2 OpenSSH, client chủ yếu ssh scp Session Một phiên kết nối client server Nó bắt đầu sau client xác thực thành công đến server kết thúc kết nối chấm dứt Session tương tác với chuyến riêng Key Một lượng liệu tương đối nhỏ, thông thường từ mười đến hai ngàn bit Tính hữu ích việc sử dụng thuật toán ràng buộc khoá hoạt động vài cách để giữ khoá: mã hoá, chắn người giữ khoá (hoặc có liên quan) giải mã thông điệp, xác thực, cho phép bạn kiểm tra trễ người giữ khoá thực kí hiệu vào thông điệp Có hai loại khóa: khoá đối xứng khoá bí mật khoá bất đối xứng khóa công khai Một khoá bất đối xứng khoá công khai có hai phần: thành phần công khai thàn phần bí mật 3.5 Cách thức làm việc SSH SSH làm việc thông qua bước đơn giản: Định danh host - xác định định danh hệ thống tham gia phiên làm việc SSH Mã hoá - thiết lập kênh làm việc mã hoá Chứng thực - xác thực người sử dụng có quyền đăng nhập hệ thống 3.5.1 Định danh host Việc định danh host thực qua việc trao đổi khoá Mỗi máy tính có hỗ trợ kiểu truyền thông SSH có khoá định danh Khoá 20 gồm hai thành phần: khoá riêng khoá công cộng Khoá công cộng sử dụng cần trao đổi máy chủ với phiên làm việc SSH, liệu mã hoá khoá công khai giải mã khoá riêng Khi có thay đổi cấu hình máy chủ: thay đổi chương trình SSH, thay đổi hệ điều hành, khoá định danh thay đổi Khi người sử dụng SSH để đăng nhập vào máy chủ cảnh báo thay đổi Khi hai hệ thống bắt đầu phiên làm việc SSH, máy chủ gửi khoá công cộng cho máy khách Máy khách sinh khoá phiên ngẫu nhiên mã hoá khoá khoá công cộng máy chủ, sau gửi lại cho máy chủ Máy chủ giải mã khoá phiên khoá riêng nhận khoá phiên Khoá phiên khoá sử dụng để trao đổi liệu hai máy Quá trình xem bước nhận diện máy chủ máy khách 3.5.2 Mã hoá Sau hoàn tất việc thiết lập phiên làm việc bảo mật (trao đổi khoá, định danh), trình trao đổi liệu diễn thông qua bước trung gian mã hoá/giải mã Điều có nghĩa liệu gửi/nhận đường truyền mã hoá giải mã theo chế thoả thuận trước máy chủ máy khách Việc lựa chọn chế mã hoá thường máy khách định Các chế mã hoá thường chọn bao gồm: 3DES, IDEA, Blowfish Khi chế mã hoá lựa chọn, máy chủ máy khách trao đổi khoá mã hoá cho Việc trao đổi bảo mật dựa đinh danh bí mật máy Kẻ công khó nghe trộm thông tin trao đổi đường truyền khoá mã hoá Các thuật toán mã hoá khác ưu, nhược điểm loại: • 3DES (cũng biết Triple-DES) phương pháp mã hoá mặc định cho SSH • IDEA—Nhanh 3DES, chậm Arcfour Blowfish • Arcfour—Nhanh, vấn đề bảo mật phát • Blowfish—Nhanh bảo mật, phương pháp mã hoá cải tiến 3.5.3 Chứng thực Việc chứng thực bước cuối ba bước, bước đa dạng Tại thời điểm này, kênh trao đổi thân bảo mật Mỗi định danh truy nhập người sử dụng cung cấp theo nhiều cách khác Chẳng hạn, kiểu chứng thực rhosts sử dụng, mặc định; đơn giản kiểm tra định danh máy khách liệt kê file rhost (theo DNS địa IP) Việc chứng thực mật cách thông dụng để định danh người sử 21 dụng, có cách khác: chứng thực RSA, sử dụng sshkeygen ssh-agent để chứng thực cặp khoá 22 [...]... 1998, SCS phát hành sản phẩm phần mềm "SSH Secure Shell" (SSH2 ), dựa trên giao thức SSH- 2 Tuy nhiên, SSH2 không thay thế SSH1 trong một số lĩnh vực, có 2 lí do Thứ nhất, SSH2 không có một số tiện ích, các đặc điểm có ích và cấu hình tuỳ chọn như SSH1 Thứ hai, SSH2 có nhiều giới hạn về việc đăng kí 3.3 Tổng quan về các đặc điểm của SSH Các đặc điểm chính của giao thức SSH là: - Tính bí mật (Privacy) của... php,… còn Apache hỗ trợ php Có nhiều phần mềm web server khác nhau như: Apache, Nginx, LiteSpeed, IIS, … Web server thông dụng nhất hiện nay: 2.2 Tổng quan về Web Server Máy chủ Web Server là máy chủ có dung lượng lớn, tốc độ cao được dùng để lưu trữ thông tin như một ngân hàng dữ liệu chứa những website đã được thiết kế cùng với những thông tin liên quan khác (các mã Script, các chương trình, và... SSH cũng có khoá (keys), phiên (sessions) và những thứ khác Ở đây chúng ta qui định một bản tóm tắt tổng quan của tất cả các thành phần, ví thế có thể bắt đầu thấy được bức tranh lớn về SSH như sau: Server Một chương trình cho phép đi vào kết nối SSH với một bộ máy, trình bày xác thực, cấp phép, … Trong hầu hết SSH bổ sung của Unix thì server thường là sshd Client Một chương trình kết nối đến SSH. .. dữ liệu trở nên không cần thiết CHƯƠNG 2: WEB SERVER 2.1 Khái niệm Web Server Webserver là máy chủ cài đặt các chương trình (phần mềm) phục vụ các ứng dụng web Webserver có khả năng tiếp nhận yêu cầu từ các trình duyệt web và gửi phản hồi đến máy khách những trang web thông qua môi trường mạng Internet qua giao thức HTTP hoặc các giao thức khác Mỗi loại Web server chỉ hỗ trợ một số loại tập tin riêng... www.abc.com Server này sẽ tìm trang Web có tên là index.htm rồi gửi nó đến trình duyệt của bạn 2.2.2 – Web Server Software Bất kỳ một máy tính nào cũng có thể trở thành một Web Server bởi việc cài đặt lên nó một chương trình phần mềm Server Software và sau đó kết nối vào Internet Khi máy tính của bạn kết nối đến một Web Server và gửi đến yêu cầu truy cập các thông tin từ một trang Web nào đó, Web Server Software... 3: SSH – SECURE SHELL 3.1 Giao thức SSH là gì? SSH (tiếng Anh: Secure Shell) là một giao thức mạng dùng để thiết lập kết nối mạng một cách bảo mật SSH hoạt động ở lớp trên trong mô hình phân lớp TCP/IP Các công cụ SSH (như là OpenSSH, PuTTy, ) cung cấp cho người dùng cách thức để thiết lập kết nối mạng được mã hoá để tạo một kênh kết nối riêng tư Mỗi khi dữ liệu được gửi bởi một máy tính vào mạng, SSH. .. qua SSH, tất cả dữ liệu sẽ tự động được mã hoá và kiểm tra định danh và bạn có thể xác nhận dùng SSH tin cậy SSH hỗ trợ 3 kiểu chuyển tiếp: TCP port forwarding: SSH dùng TCP/IP làm cơ chế truyền, thường dùng port 22 trên máy server khi nó mã hoá và giải mã lưu lượng đi trên mạng Ở đây chúng ta nói đến một đặc điểm mã hoá và giải mã lưu lựong TCP/IP thuộc về ứng dụng khác, trên cổng TCP khác dùng SSH. .. hành Windows Server Trong IIS bao gồm nhiều dịch vụ như: dịch vụ Web Server, dịch vụ FTP Server Tính đến thời điểm tháng 5 năm 2015 thì thì số lượng trang Web sử dụng máy chủ IIS gần 248 triệu trang web Tất cả các tính năng của web server được quản lí độc lập do đó chúng ta có thể dễ dàng thêm, loại bỏ hoặc thay thế các tính năng của web server IIS đảm bảo an toàn cho máy chủ bằng cách giảm diện tích... trong phiên làm việc SSH, dữ liệu sẽ được mã hoá bằng khoá công khai và chỉ có thể giải mã bằng khoá riêng Khi có sự thay đổi về cấu hình trên máy chủ: thay đổi chương trình SSH, thay đổi cơ bản trong hệ điều hành, khoá định danh cũng sẽ thay đổi Khi đó mọi người sử dụng SSH để đăng nhập vào máy chủ này đều được cảnh báo về sự thay đổi này Khi hai hệ thống bắt đầu một phiên làm việc SSH, máy chủ sẽ gửi... dạng clear text giữa chương trình mail của bạn và server Đối với SSH port forwarding, bạn có thể định tuyến lại trong suốt kết nối IMAP ( tìm cổng TCP 143 trên server S) để truyền đi thông qua SSH, mã hoá bảo đảm dữ liệu truyền đi trên kết nối Máy IMAP server phải chạy một SSH server cho port forwarding để cung cấp việc bảo đảm đó Tuy nhiên, SSH port forwarding chỉ hoạt động trên giao thức TCP và không ... phần mềm "SSH Secure Shell" (SSH2 ), dựa giao thức SSH- 2 Tuy nhiên, SSH2 không thay SSH1 số lĩnh vực, có lí Thứ nhất, SSH2 số tiện ích, đặc điểm có ích cấu hình tuỳ chọn SSH1 Thứ hai, SSH2 có nhiều... Apache hỗ trợ php Có nhiều phần mềm web server khác như: Apache, Nginx, LiteSpeed, IIS, … Web server thông dụng nhất nay: 2.2 Tổng quan Web Server Máy chủ Web Server máy chủ có dung lượng lớn,... thiết CHƯƠNG 2: WEB SERVER 2.1 Khái niệm Web Server Webserver máy chủ cài đặt chương trình (phần mềm) phục vụ ứng dụng web Webserver có khả tiếp nhận yêu cầu từ trình duyệt web gửi phản hồi