Thứ Sáu, 26 Tháng Tư, 2024
Trang chủBlogTìm hiểu về FTP (File Transfer Protocol)

Tìm hiểu về FTP (File Transfer Protocol)

FTP (File Transfer Protocol) là gì?

FTP (File Transfer Protocol) là giao thức mạng để truyền file giữa các máy tính qua kết nối Transmission Control Protocol/Internet Protocol (TCP/IP). FTP được coi là một giao thức thuộc lớp ứng dụng trong TCP/IP.

Trong FTP, máy tính của người dùng cuối thường được gọi là local host. Máy tính thứ hai liên quan đến FTP là remote host, máy này thường là máy chủ. Cả hai máy tính cần được kết nối qua mạng và được cấu hình đúng cách để truyền file qua FTP. Máy chủ phải được thiết lập để chạy các dịch vụ FTP và máy khách phải cài đặt phần mềm FTP để truy cập các dịch vụ này.

Mặc dù nhiều hoạt động truyền tệp có thể được thực hiện bằng Hypertext Transfer Protocol (HTTP), FTP vẫn thường được sử dụng để truyền file ở cho các ứng dụng khác, chẳng hạn như dịch vụ ngân hàng. Đôi khi nó cũng được sử dụng để tải xuống các ứng dụng mới thông qua trình duyệt web.

Cách FTP hoạt động?

FTP là giao thức client-server dựa trên hai kênh liên lạc giữa client và server: command channel để kiểm soát cuộc trò chuyện và data channel để truyền nội dung file.

Đây là cách hoạt động truyền FTP thông thường:

  1. Người dùng thường cần phải đăng nhập vào máy chủ FTP, mặc dù một số server có thể cung cấp nội dung của họ mà không cần đăng nhập. Một mô hình như này được gọi là anonymous FTP
  2. Client bắt đầu cuộc trò chuyện với server khi người dùng yêu cầu tải file xuống.
  3. Dùng FTP, client có thể upload, download, delete, đổi tên, di chuyển và sao chép files trên server.

Một phiên làm việc của FTP có 2 chế độ hoạt động là active mode và passive mode:

  • Active mode: Sau khi máy khách bắt đầu phiên thông qua yêu cầu command channel, server sẽ tạo kết nối dữ liệu trở lại máy khách và bắt đầu truyền dữ liệu
  • Passive mode: Server sử dụng command channel để gửi cho client thông tin cần thiết để mở data channel. Vì passive mode yêu cầu client khởi tạo tất cả các kết nối nên nó hoạt động tốt trên tường lửa và các cổng NAT.

Người dùng có thể làm việc với FTP thông qua giao diện dòng lệnh đơn giản (CMD, Windows PowerShell, terminal) hoặc bằng giao diện người dùng đồ họa chuyên dụng. Trình duyệt web cũng có thể được dùng như FTP client.

Tại sao FTP quan trọng và nó được dùng để làm gì?

FTP là một giao thức mạng tiêu chuẩn có thể cho phép khả năng truyền file mở rộng trên IP networks. Nếu không có FTP, việc truyền tệp và dữ liệu có thể được quản lý bằng các cơ chế khác, chẳng hạn như email hoặc dịch vụ web HTTP. Nhưng các tùy chọn khác đó thiếu sự tập trung, độ chính xác và khả năng kiểm soát rõ ràng mà FTP cho phép.

FTP được sử dụng để truyền file giữa hệ thống này với hệ thống khác. Nó được sử dụng phổ biến trong một số trường hợp sau:

  • Backup: FTP có thể được sử dụng bởi dịch vụ backup hoặc người dùng cá nhân  để  sao lưu dữ liệu từ một vị trí đến máy chủ sao lưu an toàn chạy dịch vụ FTP.
  • Sao chép: Tương tự như Backup, sao chép liên quan đến việc sao chép dữ liệu từ hệ thống này sang hệ thống khác nhưng sử dụng cách tiếp cận toàn diện hơn để mang lại tính sẵn sàng và khả năng phục hồi cao hơn. FTP cũng có thể được sử dụng để tạo điều kiện thuận lợi cho việc này.
  • Truy cập và tải dữ liệu: FTP cũng thường được sử dụng để truy cập các dịch vụ lưu trữ web và đám mây được chia sẻ như một cơ chế tải dữ liệu lên hệ thống từ xa.

Các loại FTP

Có một số cách khác nhau mà FTP server và phần mềm FTP client có thể tiến hành truyền file với nhau:

  • Anonymous FTP: Đây là hình thức cơ bản nhất của FTP. Nó cung cấp hỗ trợ truyền dữ liệu mà không cần mã hóa dữ liệu hoặc sử dụng tên người dùng và mật khẩu. Nó được sử dụng phổ biến để tải xuống tài liệu được phép phân phối không hạn chế.
  • Password-protected FTP: Đây cũng là một dịch vụ FTP cơ bản nhưng yêu cầu sử dụng tên người dùng và mật khẩu, mặc dù dịch vụ này có thể không được mã hóa hoặc bảo mật. Nó cũng hoạt động trên cổng 21.  
  • FTP Secure (FTPS): Còn được gọi là FTP Secure Sockets Layer (FTP-SSL), phương pháp này ngầm cho phép Transport Layer Security (TLS) ngay khi kết nối FTP được thiết lập. FTPS ban đầu được sử dụng để giúp kích hoạt một hình thức truyền dữ liệu FTP an toàn hơn. Nó thường mặc định sử dụng cổng 990.
  • FTP over explicit SSL/TLS (FTPES): Cách tiếp cận này cho phép hỗ trợ TLS bằng cách nâng cấp kết nối FTP qua cổng 21 lên kết nối được mã hóa. Đây là cách tiếp cận thường được sử dụng bởi các dịch vụ chia sẻ file và web để cho phép truyền tệp an toàn.   
  • Secure FTP (SFTP): Về mặt kỹ thuật, đây không phải là giao thức FTP nhưng nó hoạt động tương tự. Đúng hơn, SFTP là tập hợp con của giao thức Secure Shell (SSH) chạy trên cổng 22. SSH thường được quản trị viên hệ thống sử dụng để truy cập các hệ thống và ứng dụng từ xa và an toàn, đồng thời SFTP cung cấp cơ chế trong SSH để truyền file an toàn.

Bảo mật trong FTP

FTP ban đầu được định nghĩa vào năm 1971, có trước TCP và IP và nó đã được định nghĩa lại nhiều lần kể từ đó để phù hợp với các công nghệ mới.

FTP cũng đã trải qua một số cập nhật để tăng cường bảo mật. Chúng bao gồm các phiên bản mã hóa thông qua kết nối FTPS, kết nối FTPES hoặc hoạt động với SFTP.

Theo mặc định, FTP không mã hóa lưu lượng truy cập và các cá nhân có thể chụp các gói để đọc usernames, mật khẩu và dữ liệu khác. Bằng cách mã hóa FTP bằng FTPS hoặc FTPES, dữ liệu được bảo vệ, hạn chế khả năng kẻ tấn công nghe lén kết nối và đánh cắp dữ liệu.

FTP vẫn có thể dễ bị tổn thương trước các cuộc tấn công giả mạo xác thực người dùng/mật khẩu, tấn công FTP bounce attack hoặc một cuộc tấn công từ chối dịch vụ.

Lịch sử của FTP

Thông số kỹ thuật đầu tiên của FTP được xuất bản trong RFC 114 vào ngày 16/4/1971 và được viết bởi Abhay Bhushan, khi đó là sinh viên tại Viện Công nghệ Massachusetts. Ý tưởng ban đầu đằng sau FTP là cho phép truyền tệp qua ARPANET, tiền thân của internet.

Khi internet hiện đại bắt đầu hình thành, định nghĩa của FTP đã trải qua nhiều lần sửa đổi để phù hợp với các tiêu chuẩn mạng, bao gồm cả TCP/IP. Năm 1980, một phiên bản mới của FTP được xác định trong RFC 765 bởi Jon Postel, nhà khoa học nghiên cứu tại Viện Khoa học Thông tin thuộc Đại học Nam California vào thời điểm đó. Năm năm sau, FTP được định nghĩa lại một lần nữa với RFC 959, giới thiệu các khả năng quản lý mới cho giao thức, bao gồm khả năng tạo và xóa thư mục. 

Năm 1997, RFC 959 được cập nhật với các khả năng mới được định nghĩa trong RFC 2228 để cung cấp khả năng bảo mật. Hai năm sau, FTP được cập nhật RFC 2428 để hỗ trợ giao thức IPv6.

FTP clients

FTP clients được sử dụng để upload, download và quản lý file trên FTP server. Một số FTP client phổ biến:

  • FileZilla: Đây là ứng dụng FTP client miễn phí dành cho Windows, macOS và Linux. Nó hỗ trợ FTP, FTPS và SFTP.
  • Transmit: Đây là FTP client dành cho macOS hỗ trợ FTP và SSH.
  • WinSCP: đây là một Windows FTP client hỗ trợ FTP, SSH và SFTP.
  • WS_FTP: Một Windows FTP client khác hỗ trợ SSH.
Bài viết liên quan

BÌNH LUẬN

Vui lòng nhập bình luận của bạn
Vui lòng nhập tên của bạn ở đây

Bài viết nổi bật

Ý kiến gần đây