Hệ thống mạng được kết nối Internet sẽ có rất nhiều nguy cơ bị tấn công. Khi dữ liệu được truyền đi trên mạng, nhiều khả năng sẽ bị Hacker đọc trộm dữ liệu. Khi một hệ thống liên lạc với nhau thông qua địa chỉ để truyền nhận dữ liệu cũng dễ bị Hacker giả danh để lấy dữ liệu hoặc những vấn đề về Virus,… còn nhiều nguy cơ khác nữa khiến cho một hệ thống mạng của chúng ta trở nên không an toàn nghĩa là hệ thống của chúng ta có thể bị tấn công bằng nhiều hình thức khác nhau. SSH (Secure Shel) ra đời là lời giải đáp cho bài toán làm thế nào để thiết lập kết nối mạng một cách bảo mật. Trong đó SFTP sử dụng giao thức SSH để kết nối nên các dữ liệu di chuyển thông qua giao thức này cũng sẽ được mã hóa để bảo mật dữ liệu tốt hơn. Được sự hướng dẫn nhiệt tình của cô giáo Trần Thị Lượng, chúng em sẽ tìm hiểu về hai giao thức SSh và SFTP cũng như triển khai hệ thống của hai giao thức này.
BAN CƠ YẾU CHÍNH PHỦ HỌC VIỆN KỸ THUẬT MẬT Mà ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ BÁO CÁO TÌM HIỂU GIAO THỨC SSH, SFTP VÀ TRIỂN KHAI SỬ DỤNG HỆ THỐNG SSH VÀ SFTP Ngành: Cơng nghệ thơng tin Chun ngành: An tồn thơng tin Sinh viên thực hiện: Người hướng dẫn: Hà Nội, 2018 MỤC LỤC Nội dung Lời nói đầu ii Chương : Tìm hiểu SSH I Giao Thức SSH (Secure Shell): 1 Khái niệm SSH: Lịch sử phát triển phiên SSH: đặc điểm SSH: Cách thức hoạt động: Chứng thực Tạo private key public key client Tạo khóa server Chương 2: TÌM HIỂU VỀ SFTP II Giao thức SFTP 2.1 Giao thức FTP: 2.2 Giao thức SFTP : 11 2.3 Ưu nhược điểm giao thức SFTP 18 i LỜI NÓI ĐẦU Hệ thống mạng kết nối Internet có nhiều nguy bị công Khi liệu truyền mạng, nhiều khả bị Hacker đọc trộm liệu Khi hệ thống liên lạc với thông qua địa để truyền nhận liệu dễ bị Hacker giả danh để lấy liệu vấn đề Virus,… nhiều nguy khác khiến cho hệ thống mạng trở nên không an tồn nghĩa hệ thống bị cơng nhiều hình thức khác SSH (Secure Shel) đời lời giải đáp cho toán làm để thiết lập kết nối mạng cách bảo mật Trong SFTP sử dụng giao thức SSH để kết nối nên liệu di chuyển thông qua giao thức mã hóa để bảo mật liệu tốt Được hướng dẫn nhiệt tình giáo Trần Thị Lượng, chúng em tìm hiểu hai giao thức SSh SFTP triển khai hệ thống hai giao thức Do khả hạn chế kiến thức thực tế chưa nhiều nên tránh khỏi thiếu sót Rất mong nhận góp ý bạn bảo cô giáo để xác, đầy đủ hồn thiện ii CHƯƠNG : TÌM HIỂU VỀ SSH I Giao Thức SSH (Secure Shell): Khái niệm SSH: SSH ( 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 ) 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ã hố Khi liệu nhận vào SSH tự động giải mã Người dùng làm việc bình thường khơng biết việc truyền thơng họ mã hố an tồn mạng 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ứ SSH2 khơng có 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í đặ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ã hố mạnh mẽ - Tính tồ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 Cách thức hoạt động: 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 4.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á gồm hai thành phần: khố riêng khố cơng cộng Khố 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ã hố khố cơng khai giải mã khố 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, khố đị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 khố cơng cộng cho máy khách Máy khách sinh khố 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 khố riêng nhận khố 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 4.2 Mã hố: - Có kỹ thuật mã hóa là: + Mã hóa đối xứng.(AES) +Mã hóa bất đối xứng.(RSA) +Hàm băm.(MD5) a Mã hóa đối xứng: Điều khiến cho thuật tốn an tồn key khơng truyền mà ngầm định chia sẻ trước sau dung key tính khóa bí mật Thơng tin truyền mã hóa khóa bí mật, hacker bắt gói tin khơng thể tính đươc khóa bí mật khơng thể biết thuật tốn tạo key b Mã hóa bất đối xứng: bên có cặp khóa (public key private key) Public key khơng thể tìm private key Gói tin mã hóa Private key giải mã private key người nhận Mã hóa bất đối xứng khơng dùng để mã hóa tồn phiên SSH mà sử dụng trao đổi thuật tốn khóa.cả tạo cặp public – private key tạm, chia sẻ private key để tạo khóa secret key chung c Hàm băm Dữ liệu khóa bí mật băm gửi với rõ, bên nhận dung khóa mật chung để băm liệu kết băm giống xác thực đính danh người gửi thông điệp không bị sửa đổi 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, khơng phải 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ử dụng, ngồi có cách khác: chứng thực RSA, sử dụng ssh-keygen ssh-agent để chứng thực cặp khoá Tạo private key public key client - Tạo SSH key window Chọn thuật tốn mã hóa, măc định SSH-2 RSA chọn độ dại chuỗi mã hóa (512 - 1024 - 2048 - 4096…) Và chọn khóa (nhập tùy ý) Note : Save private key file có ppk Tạo khóa server Tìm đến file /ect/ssh/sshd_config : chỉnh thơng số ChallengeResponseAuthentication no PasswordAuthentication no UsePAM no Trên window sử dụng PuTTy để thử đăng nhập SSH key Chọn Auth để chuyển sang phần cài đặt sử dụng Key, sau Browse… chọn Private Key, nhấn Open tạo kết nối Chương 2: TÌM HIỂU VỀ SFTP II Giao thức SFTP 2.1 Giao thức FTP: 2.1.1 Khái quát giao thức FTP: - FTP (viết tắt File Transfer Protocol dịch "Giao thức truyền tập tin") thường dùng để trao đổi tập tin qua mạng lưới truyền thông dùng giao thức TCP/IP (chẳng hạn Internet - mạng ngoại - Intranet mạng nội bộ) Hoạt động FTP cần có hai máy tính, máy chủ máy khách) Máy chủ FTP, dùng chạy phần mềm cung cấp dịch vụ FTP, gọi trình chủ, lắng nghe yêu cầu dịch vụ máy tính khác mạng lưới Máy khách chạy phần mềm FTP dành cho người sử dụng dịch vụ, gọi trình khách, khởi đầu liên kết với máy chủ Một hai máy liên kết với nhau, máy khách xử lý số thao tác tập tin, tải tập tin lên máy chủ, tải tập tin từ máy chủ xuống máy mình, đổi tên tập tin, xóa tập tin máy chủ v.v Vì giao thức FTP giao thức chuẩn công khai, cơng ty phần mềm nào, hay lập trình viên viết trình chủ FTP trình khách FTP Hầu tảng hệ điều hành máy tính hỗ trợ giao thức FTP Điều cho phép tất máy tính kết nối với mạng lưới có TCP/IP, xử lý tập tin máy tính khác mạng lưới với mình, máy tính dùng hệ điều hành (nếu máy tính cho phép truy cập máy tính khác, dùng giao thức FTP) Hiện thị trường có nhiều trình khách trình chủ FTP, phần đơng trình ứng dụng cho phép người dùng lấy tự do, không tiền FTP thường chạy hai cổng, 20 21, chạy riêng TCP Trình chủ FTP lắng nghe yêu cầu dịch vụ từ kết nối vào máy trình khách FTP, cổng 21 Đường kết nối cổng 21 tạo nên dòng truyền điều khiển, cho phép dòng lệnh chuyển qua trình chủ FTP Để truyền tải tập tin qua lại hai máy, cần phải có kết nối khác Tùy thuộc vào chế độ truyền tải sử dụng, trình khách (ở chế độ chủ động - active mode) trình chủ (ở chế độ bị động - passive mode) lắng nghe yêu cầu kết nối đến từ đầu Trong trường hợp kết nối chế độ chủ động, (trình chủ kết nối với trình khách để truyền tải liệu), trình chủ phải trước tiên đóng kết nối vào cổng 20, trước liên lạc kết nối với trình khách Trong chế độ bị động, hạn chế khắc phục, việc đóng kết nối trước việc không cần phải làm Trong liệu truyền tải qua dòng liệu, dịng điều khiển đứng im Tình trạng gây số vấn đề, đặc biệt số lượng liệu đòi hỏi truyền tải lớn, đường truyền tải chạy thông qua tường lửa Bức tường lửa dụng cụ thường tự động ngắt phiên giao dịch sau thời gian dài im lặng Tuy tập tin truyền tải hồn thiện, song dòng điều khiển bị tường lửa ngắt mạch truyền thông quãng, gây báo lỗi 2.1.2 Mục đích giao thức FTP Mục đích giao thức FTP, phác thảo RFC, là: Khuyến khích việc dùng chung tập tin (như chương trình ứng dụng liệu) Khuyến khích việc sử dụng máy tính xa cách gián tiếp / âm thầm (implicit) Che đậy khác biệt hệ thống lưu trữ tập tin máy chủ, hầu cho người dùng không cần phải quan tâm đến khác biệt riêng tư chúng Truyền tải liệu cách đáng tin cậy có hiệu cao 2.1.3 Những vấn đề bảo đảm an toàn dùng FTP: FTP phương pháp truyền tập tin có truyền thống phi bảo an (khơng an tồn), theo thiết kế gốc đặc tả FTP, khơng có cách truyền tải liệu hình thức mật mã hóa Ảnh hưởng có nghĩa là, phần lớn cài đặt mạng lưới truyền thông, tên người dùng, mật khẩu, dòng lệnh FTP tập tin truyền tải, bị người khác mạng lưới, "ngửi" quan sát, dùng phần mềm phân tích giao thức (protocol analyzer) (hoặc cịn gọi "dụng cụ ngửi liệu", tiếng Anh "sniffer") Nên ý vấn đề thường thấy giao thức Internet thiết kế trước SSL (Secure Sockets Layer) đời (tạm dịch giao thức "tầng kết nối bảo mật"), HTTP, SMTP Telnet Giải pháp thường thấy, vấn đề này, dùng SFTP (Secure Shell File Transfer Protocol - tạm dịch "giao thức truyền tập tin dùng trình bao bảo mật"), giao thức dựa SSH, FTPS (FTP over SSL) SFTP FTP cộng thêm chức mã hoá liệu SSL TLS (Transport Layer Security - tạm dịch "Bảo mật tầng giao vận") 2.1.4 Dạng thức liệu Có hai chế độ dùng để truyền tải liệu qua mạng lưới truyền thông: Chế độ ASCII Chế độ Nhị phân Hai chế độ khác cách chúng gửi liệu Khi tập tin đưaợc truyền dùng chế độ ASCII, chữ, số, ký tự gửi dạng mã ASCII Máy nhận tin lưu trữ chúng tập tin văn thường, dạng thức thích hợp (chẳng hạn, máy dùng Unix lưu trữ dạng thức Unix, máy dùng Macintosh lưu trữ dạng thức Mac) Vì thế, chế độ ASCII dùng truyền tải liệu, phần mềm FTP tự cho liệu truyền gửi có dạng thức văn thường (plain text), lưu trữ máy nhận theo dạng thức máy Chuyển đổi dạng thức văn thường bao gồm việc, thay mã kết dòng mã kết tập tin, từ mã tự dùng máy nguồn, sang mã tự dùng 10 máy đích, chẳng hạn máy dùng hệ điều hành Windows, nhận tập tin từ máy dùng hệ điều hành Unix, máy dùng Windows thay chữ xuống dòng (carriage return) cặp mã, bao gồm mã xuống dòng mã thêm hàng (carriage return line feed pairs) Tốc độ truyền tải tập tin dùng mã ASCII nhanh chút, bit hàng cao byte tập tin bị bỏ Gửi tập tin dùng chế độ nhị phân khác với Máy gửi tập tin gửi bit sang cho máy nhận Máy nhận lưu trữ dòng bit, y gửi sang Nếu liệu khơng phải dạng thức văn thường, phải truyền tải chúng chế độ nhị phân, khơng, liệu bị thối hóa, khơng dùng Theo cài đặt sẵn, phần lớn trình khách FTP dùng chế độ ASCII khởi công Một số trình khách FTP xét nghiệm tên nội dung tập tin gửi, để xác định chế độ cần phải dùng 2.2 Giao thức SFTP : 2.2.1 Khái quát chung giao thức SFTP: "sFTP" viết tắt từ "Secure File Transfer Protocol", "SSH File Transfer Protocol" "một giao thức mạng giúp ta upload download liệu máy chủ" Ta sử dụng giao thức để sửa, tạo xóa tập tin thư mục máy chủ Linux Bởi sFTP sử dụng giao thức SSH để kết nối nên liệu bạn di chuyển thông qua giao thức mã hóa để bảo mật liệu tốt Các VPS Linux máy chủ riêng Linux mua cài sẵn SSH (hoặc bạn cài hướng dẫn này) Và cài SSH bao gồm ln giao thức sFTP để bạn truy cập vào máy chủ phần mềm hỗ trợ sFTP để upload/download liệu máy chủ 11 Ngồi cách sử dụng thường gặp nhiều bạn khơng quen sửa/xóa tập tin/thư mục lệnh SSH nên dùng giao thức sFTP giúp bạn dễ dàng làm việc 2.2.2 Cách đăng nhập vào SFTP: 2.2.2.1 Đăng nhập vào SFTP: Để đăng nhập vào sFTP, sử dụng lệnh phần mềm có hỗ trợ Mình khuyến khích bạn sử dụng phần mềm để dễ sử dụng hơn, phần mềm hỗ trợ FTP đa phần hỗ trợ ln sFTP Bạn sử dụng thơng tin đăng nhập giao thức SSH để đăng nhập vào sFTP, điều có nghĩa bạn sử dụng cổng mạng 22 máy chủ, bạn đổi cổng 22 thành cổng khác bạn sử dụng cổng bạn đổi sang để đăng nhập 2.2.2.2 Kết nối vào SFTP Window Giống SSH, sFTP extension SSH nên bạn dùng Windows mà muốn sử dụng giao thức để gửi file lên máy chủ download file từ máy chủ phải dùng sFTP Client Số lượng sFTP Client có nhiều mà phần mềm FTP Client quen thuộc FileZilla,FlashFXP, Cyberduck hỗ trợ Tuy nhiên đây, khuyến khích bạn sử dụng WinSCP nhẹ nhàng mà lại dễ sử dụng Sau tải cài đặt, bạn bật ứng dụng WinSCP lên 12 Ở bạn cần điền IP VPS hostname, port bạn đặt 22 (trùng với port giao thức SSH) đăng nhập với user root user VPS Sau ấn Login, hỏi bạn thêm fingerprint giống lần bạn đăng nhập vào SSH, Yes cho đẹp trời Khi login thành cơng, chuyển bạn đến thư mục user mà bạn đăng nhập 13 Bây bạn thoải mái duyệt thư mục sFTP tiến hành sửa/upload file mà bạn tùy thích giống bạn dùng FTP Bạn ngồi thư mục gốc vịng vịng cho biết, nhớ đừng có sửa hay xóa nhé, giải thích ý nghĩa từngthư mục sau 2.2.2.3 Kết nối vào sFTP Linux Nếu bạn dùng Mac/Ubuntu sử dụng FileZilla để kết nối đến VPS thông qua sFTP, hồn tồn miễn phí 14 Đăng nhập xong chuyển bạn đến thư mục user mà bạn đăng nhập vào Nếu user có quyền xem thư mục khác bạn truy cập vào thư mục khác Cịn bạn người thích sử dụng lệnh sử dụng lệnh ftp theo hướng dẫn Ubuntu Mac có cài FTP sẵn Cứ thong thả xem qua vòng, xem kỹ thư mục mà bạn thấy truy cập vào thư mục gốc (như bin, etc, var,….) phần giải thích ý nghĩa thư mục 2.2.2.4 Ý nghĩa thư mục mặc định Linux Khi truy cập vào thư mục gốc (thư mục /) bạn thấy thư mục khác sau: 15 Các thư mục mặc định VPS Linux Có q nhiều thư mục nên khơng giải thích hết mà giải thích thư mục quan trọng mà thơi Bạn đọc thêm • /bin – Là thư mục chứa tập tin thực thi lệnh Linux Chẳng hạn bạn sử dụng lệnh tên cp để copy file thư mục, bạn truy cập vào thư mục /bin bạn thấy có file tên cp • /boot – Là thư mục chứa file để khởi động hệ thống Linux mà bạn sử dụng, tốt đừng nên chạm vào 16 • /dev – Là thư mục chứa tập tin cấu hình phần cứng VPS RAM, ổ cứng, CPU,… • /etc – Là thư mục mà có lẽ sau bạn cần đụng tới nhiều chứa hầu hết file cấu hình ứng dụngmà bạn cài vào VPS Chẳng hạn sau bạn cài webserver Apache để cấu hình Apache, thêm virtualhost,…thì bạn vào thư mục • /home – Là thư mục chứa liệu user thêm vào hệ thống Dĩ nhiên nói phần trước rồi, bạn không thiết sử dụng thư mục để chứa liệu user Tuy nhiên, sau bạn cài VirtualHost dùng thư mục cho dễ quản lý • /lib – Là thư mục nguồn chứa tập tin quan trọng để vận hành máy chủ Linux bạn • /lost+found – Thư mục chứa tập tin hệ thống hệ thống có gặp lỗi hy hữu sập nguồn lý khơng hoạt động • /opt – Nếu bạn cài ứng dụng có dung lượng cài đặt lớn, lưu • /proc – Là thư mục lưu lại thơng tin xử lý tiến trình chạy, chứa thơng tin cấu hình VPS Xem thêm • /root – Đơn giản thư mục user root • /sbin – Là ứng dụng Shell dành riêng cho user root Nó tương tự thư mục /bin có root chạy lệnh đây, ví dụ lệnh aureport để báo cáo thông tin quan trọng server • /usr – Thư mục có nhiều thư mục mà cần giải thích thêm cho bạn hiểu Ý nghĩa thư mục chứa tác vụ chia sẻ nhiều user máy ảo khác Ý nghĩa xác đầy đủ thư mục bạn nên đọc 17 • /var – Thư mục chứa liệu mà hệ thống ghi hoạt động, chẳng hạn file log email spool Đôi lúc bạn cài Apache hay NGINX lưu thư mục /www để hiển thị web 2.3 Ưu nhược điểm giao thức SFTP • • • • • • • • • • Ưu điểm: Có tảng tiêu chuẩn tốt mà xác định nghiêm ngặt (nếu khơng phải tất cả) khía cạnh hoạt động Chỉ có kết nối (khơng cần kết nối DATA)a Kết nối đảm bảo Danh sách thư mục thống đọc máy Giao thức bao gồm thao tác cho phép thao tác thuộc tính, khố tập tin nhiều tính Nhược điểm: Giao tiếp nhị phân đăng nhập "như tại" cho việc đọc người Khóa SSH khó quản lý xác thực Các tiêu chuẩn xác định điều định tùy chọn đề xuất, dẫn đến số vấn đề tính tương thích phần mềm khác từ nhà cung cấp khác Khơng có chép từ máy chủ đến máy chủ thao tác loại bỏ đệ quy Khơng có hỗ trợ SSH / SFTP xây dựng VCL khuôn khổ NET 18 ... Chương 2: TÌM HIỂU VỀ SFTP II Giao thức SFTP 2.1 Giao thức FTP: 2.2 Giao thức SFTP : 11 2.3 Ưu nhược điểm giao thức SFTP 18 i LỜI NÓI ĐẦU Hệ thống. .. khuyến khích bạn sử dụng phần mềm để dễ sử dụng hơn, phần mềm hỗ trợ FTP đa phần hỗ trợ sFTP Bạn sử dụng thơng tin đăng nhập giao thức SSH để đăng nhập vào sFTP, điều có nghĩa bạn sử dụng cổng mạng... download liệu máy chủ" Ta sử dụng giao thức để sửa, tạo xóa tập tin thư mục máy chủ Linux Bởi sFTP sử dụng giao thức SSH để kết nối nên liệu bạn di chuyển thông qua giao thức mã hóa để bảo mật liệu