Nội dung bài viết
1. Khái quát về FTP
FTP (File Transfer Protocol ), dịch ra tiếng Việt là “giao thức truyền tin” được sử dụng ở tầng Ứng Dụng (Application layer) trong mô hình TCP/IP. Đúng theo tên gọi, FTP được dùng để trao đổi file từ máy tính sang máy chủ hay giữa hai máy tính với nhau.Vì giao thức FTP là một giao thức chuẩn công khai, cho nên rất dễ để tìm kiếm bất cứ một phần mềm nào trên mạng, hay một lập trình viên nào cũng có thể viết chương trình dựa trên cách thức hoạt động của FTP. Hầu như bất cứ một nền tảng hệ điều hành máy tính nào cũng hỗ trợ giao thức này.
2. Nguyên lý hoạt động
2.1 Hoạt động trên nền TCP
FTP là một giao thức lớp ứng dụng di chuyển tệp giữa các hệ thống tệp cục bộ và từ xa. Nó chạy trên TCP, như HTTP trong bộ giao thức Internet. Để truyền một tập tin, 2 kết nối TCP được FTP sử dụng song song: điều khiển kết nối (control connection) và kết nối dữ liệu (data connection)
– Để gửi thông tin điều khiển như nhận dạng người dùng, mật khẩu, lệnh thay đổi thư mục từ xa, lệnh truy xuất và lưu trữ tệp, v.v… FTP sử dụng kết nối điều khiển. Điều khiển kết nối được bắt đầu trên cổng số 21.
– Để gửi tệp, FTP sử dụng kết nối dữ liệu. Kết nối dữ liệu được bắt đầu trên cổng số 20. FTP gửi thông tin điều khiển ra ngoài băng vì nó sử dụng kết nối điều khiển riêng biệt. Một số giao thức trong bộ giao thức Internet cũng gửi các dòng tiêu đề yêu cầu và phản hồi cũng như dữ liệu trong cùng một kết nối TCP. Vì lý do này, họ được cho là gửi thông tin kiểm soát của họ trong băng ví dụ điển hình là HTTP và SMTP.
2.2 FTP session
Khi một phiên FTP được bắt đầu giữa máy khách và máy chủ, máy khách sẽ khởi tạo kết nối TCP điều khiển với phía máy chủ. Máy khách gửi thông tin kiểm soát việc này. Khi máy chủ nhận được điều này, nó sẽ bắt đầu kết nối dữ liệu với phía máy khách. Chỉ có thể gửi một tệp qua một kết nối dữ liệu. Nhưng kết nối điều khiển vẫn hoạt động trong suốt phiên người dùng, FTP cần duy trì trạng thái về người dùng của nó trong suốt phiên.
Phía Client:
User Interface – Client: cung cấp giao diện xử lý cho người dùng (phần mềm, ứng dụng) cho phép sử dụng các lệnh đơn giản hướng người dùng, và cho phép người điều khiển phiên FTP theo dõi được các thông tin và kết quả xảy ra trong tiến trình.
Control process – Client: 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 bằng việc phát ra yêu cầu tới phía Server. Khi kết nối đã được thiết lập, nó xử lý các lệnh nhận được trên giao diện người dùng, gửi chúng tới Server và nhận phản hồi trở lại. Bên cạnh đó nó cũng quản lý tiến trình Data transfer process.
Data transfer process – Client: là bộ phận DTP nằm ở phía người dùng, làm nhiệm vụ gửi hoặc nhận dữ liệu từ Server – DTP. nó có thể thiết lập hoặc lắng nghe yêu cầu kết nối kênh dữ liệu trên server. Nó tương tác với thiết bị lưu trữ file phía client.
Phía Sever
Control process – Sever: chịu trách nhiệm quản lý kênh điều khiển trên server. Nó lắng nghe yêu cầu kết nối hướng tới từ users trên cổng dành riêng. Khi kết nối đã được thiết lập, nó sẽ nhận lệnh từ phía User – ClientI để trả lời lại và quản lý tiến trình truyền dữ liệu trên server.
3. Một số câu lệnh sử dụng trong FTP
Commands | Mô tả |
USER | Username |
PASS | Password |
CWD | Truy xuất thư mục |
RMD | Xóa thư mục hiện tại |
MKD | Tạo tên thư mục mới |
PWD | Quay lại thư mục |
RETR | Cho phép kết nối và gửi dữ liệu |
STOR | Lưu lại tệp và thư mục của máy chủ từ xa |
LIST | Hiển thị danh sách trong thư mục |
ABOR | Hủy bỏ các lệnh FTP |
QUIT | Thoát khỏi phiên làm việc |
Phản hồi từ FTP:
Code | Mô tả |
200 | Lệnh đúng |
530 | Chưa đăng nhập |
311 | Username đúng, cần password |
225 | Kết nối dữ liệu mở, không có kết nối nào được tiến hành |
221 | Dịch vụ kiểm soát đang đóng kết nối |
551 | Hành động được yêu cầu đã hủy bỏ |
502 | Lệnh không được triển khai |
503 | Chuỗi lệnh không hợp lệ |
504 | Lệnh không được triển khai cho tham số đó |
4. FTP ẩn danh
FTP ẩn danh được sử dụng trên một số trang web có sẵn file để có thể truy cập công khai. Người dùng có thể truy cập các tệp này mà không cần có bất kỳ tên người dùng hoặc mật khẩu nào. Thay vào đó, tên người dùng được đặt thành ẩn danh và mật khẩu cho khách theo mặc định. Ở đây, quyền truy cập của người dùng rất hạn chế. Ví dụ: người dùng có thể được phép sao chép các tệp nhưng không được phép thay đổi, sửa hay di chuyển các thư mục.
5. Vấn đề bảo mật trong FTP
FTP là phương pháp truyền dữ liệu không an toàn, theo như thiết kế gốc thì không có một hình thức mã hóa hay mật mã nào được đề cập đến. Do đó, hầu hết các thông tin về tài khoản, mật khẩu hoặc dữ liệu đề có thể được lấy cắp dễ dàng. Nên chú ý rằng đây là vấn đề thường thấy ở các giao thức của Internet được thiết kế đời đầu khi mà tính an toàn của thông tin chưa được đề cao.
Ngày nay, với sự xuất hiện của nhiều giao thức khác trong bộ giao thức Internet có tính bảo mật cao hơn, FTP sẽ được kết hợp để tăng tính an toàn cho người dùng và dữ liệu.
Hết!