Chế độ hoạt động và thụ động của Ftp. Sự khác biệt giữa FTP chủ động và thụ động là gì? Thiết lập người dùng và nhóm

FTP (Tệp Giao thức chuyển giao) một trong những giao thức truyền dữ liệu cổ xưa nhất. Nó được tạo ra trước HTTP hơn 40 năm trước. Tuy nhiên, công nghệ “máy khách-máy chủ FTP” và “máy chủ-máy chủ”, dễ sử dụng và không cần bảo trì đặc biệt, vẫn đóng vai trò là phương tiện đáng tin cậy để hệ thống hóa luồng tài liệu nội bộ, tạo kho lưu trữ nhiều người dùng trong mạng cục bộ các tập đoàn và phân phối miễn phí phần mềm, đa phương tiện, tài liệu và tài liệu trên World Wide Web.

Máy chủ FTP có thể được triển khai trên bất kỳ thiết bị mạng Với mảng đĩađể lưu trữ một lượng lớn thông tin hoặc máy tính thông thường. Khi kết nối với máy chủ, các lệnh điều khiển sẽ được trao đổi, trong quá trình ủy quyền diễn ra (nếu được cung cấp), các cổng được chỉ định, quy tắc trao đổi được xác định và sau đó kết nối được thiết lập để truyền dữ liệu. Hãy để nó sang một bên cơ sở lý thuyết tương tác giữa máy chủ và máy tính cục bộ Qua Giao thức FTP. Quá trình này được thực hiện theo một trong hai chế độ: chủ động và thụ động. Sự khác biệt của họ là gì? Ở chế độ hoạt động, máy khách gửi yêu cầu kết nối đến máy chủ và máy chủ thực hiện kết nối. Ở chế độ thụ động, cả lệnh điều khiển và kết nối dữ liệu đều chỉ được khởi tạo bởi máy khách.

Chế độ thụ động được yêu cầu trong trường hợp máy khách được đặt ở một địa phương an toàn mạng máy tính. Hầu hết các trình duyệt đều hỗ trợ giao thức FTP và cho phép bạn kết nối, xem và sao chép dữ liệu từ các máy chủ từ xa. Vì vậy, trong Internet Explorer bạn có thể, bằng cách chỉ định trong thanh địa chỉ ftp:// “Địa chỉ IP máy chủ” hoặc sử dụng FileSearch để tìm liên kết đến các kho lưu trữ tệp phổ biến nhất. Trên tab / “Tùy chọn Internet / Nâng cao” / bạn có thể kích hoạt sử dụng chế độ FTP thụ động.

Không cần cài đặt đặc biệt trong trình duyệt Mozilla Firefox. “Total Comander” và “Far” có ứng dụng khách FTP tích hợp. Tại đây, khi tạo kết nối mới, bạn phải chỉ định thêm thông tin đăng nhập và mật khẩu. Đối với các máy chủ mở, thông tin đăng nhập mặc định là “ẩn danh” và mật khẩu là địa chỉ hộp thư của bạn.

Tất cả các “ghế bập bênh” được biết đến từ FlashGet (chế độ thụ động theo mặc định) đến ReGet Deluxe (chế độ hoạt động theo mặc định) đều có một hệ thống Tự động phát hiện các kịch bản kết nối và tải xuống, đồng thời cũng được trang bị nhiều bộ tăng tốc bổ sung để tăng tốc quá trình tải xuống. Bạn thường có thể bật hoặc tắt chế độ thụ động khi tạo kết nối mới trên tab FTP.

Đối với những máy khách làm việc ở chế độ chia sẻ tệp liên tục hoặc khá thường xuyên, cần phải cài đặt trình quản lý FTP. Đây là một chương trình thuộc các dòng FileZilla, CuteFTP, SmartFTP, FTP Voyager, v.v. , cũng có thể được tìm thấy công khai trên Internet. Những chương trình này giúp có thể thực hiện được nhiều hơn tinh chỉnh kết nối đến một máy chủ FTP từ xa. Chúng không thể thiếu trong trường hợp làm việc với các máy chủ chỉ hoạt động ở “chế độ hoạt động”, vì ngay cả khi máy khách không có địa chỉ IP tĩnh, chương trình vẫn có thể mô phỏng địa chỉ đó trong suốt phiên.

Trong số những người dùng nói tiếng Nga, phổ biến nhất chương trình miễn phí mã nguồn mở – FileZilla. Chương trình này rất dễ cài đặt và có giao diện tiếng Nga rõ ràng. Bạn có thể sử dụng một số tùy chọn để cấu hình kết nối. Thiết lập chung- Menu/Chỉnh sửa/Cài đặt/. được tạo ở dạng cây và ảnh hưởng đến cài đặt của tất cả mô-đun có sẵn. Trong cùng một phần của menu, bạn có thể chuyển sang trình hướng dẫn tạo kết nối, nơi các thông số kết nối sẽ được cung cấp từng bước khi chọn chế độ chủ động hoặc thụ động. Một số Máy chủ ftp Chúng tôi đề nghị tải xuống các tệp tập lệnh kết nối nhỏ có thể được nhập vào chương trình và tạo kết nối vĩnh viễn sẵn sàng.

Và cuối cùng, trong số lệnh điều khiển Hệ điều hành Windows hỗ trợ lệnh ftp.exe, lệnh này cung cấp khả năng kết nối “thủ công” với máy chủ FTP bằng cách nhập lệnh console (giao thức hỗ trợ 25 lệnh). Cú pháp sử dụng và nhập của các lệnh này phải được biết rõ và hiểu rõ, nhưng nó sẽ đòi hỏi những kỹ năng và kinh nghiệm lập trình nhất định.

Mặc định không phải máy chủ phiên bản windows Bạn chỉ có thể tạo một kết nối với máy tính để bàn từ xa và công việc người dùng hiện tại chắc chắn bị chặn.


Hãy sửa chữa sự hiểu lầm này.


Chúng tôi chắc chắn sẽ cứu nó tập tin gốc termrv.dll. Hãy khởi động dòng lệnh từ Quản trị viên và thực thi

sao chép c:\Windows\System32\termsrv.dll termsrv.dll_old

Sau đó chúng tôi xem xét phiên bản của bạn. Nhấp chuột phải vào tệp c:\Windows\System32\termsrv.dll và chọn thuộc tính.


Tải xuống tệp đã sửa đổi tương ứng với phiên bản của bạn

Nếu bạn muốn tự mình khắc phục mọi thứ, hãy sao chép tệp termsrv.dll từ thư mục c:\Windows\System32\ trên máy tính để bàn. Mở nó bằng bất kỳ trình soạn thảo hex nào, ví dụ như HxD miễn phí này. Và thay thế các byte trong dòng được chỉ định.

Trong cột đầu tiên giá trị phải có, trong cột thứ hai là giá trị ban đầu.

Windows 7 SP1 64bit:

173C0:B8 8B
173C1: 00 87
173C2: 01 38
173C3: 00 06
173C5: 90 00
173C6: 89 39
173C8: 38 3C
173CC: 90 0F
173CD: 90 84
173CE: 90 EB
173CF: 90 C2
173D0: 90 00
173D1: 90 00
176FA: 00 01
5AD7E:EB 74
Đối với Windows 8.1 (64bit) thay thế toàn bộ dòng !
trong v6.3.9600.16384
đường kẻ
8B 81 38 06 00 00 39 81 3C 06 00 00 0F 84 1B 70 00 00
TRÊN
B8 00 01 00 00 89 81 38 06 00 00 90 90 90 90 90 90 90

đến 6.3.9600.16384 đến 6.3.9600.17095
đường kẻ
39 81 3C 06 00 00 0F 84 9E 31 05 00
TRÊN

6.3.9600.17095 đến 6.3.9600.17415
đường kẻ
39 81 3C 06 00 00 0F 84 D3 1E 02 00
TRÊN
B8 00 01 00 00 89 81 38 06 00 00 90
Hãy sử dụng công cụ thay thế với các giá trị thập lục phân

Sau khi thay thế, lưu các thay đổi.

Nếu bạn gặp khó khăn với quyền truy cập, hãy mở thuộc tính, tab bảo mật, nút nâng cao. Và bạn thay đổi chủ sở hữu cho chính mình. Áp dụng nó. Sau này, bạn sẽ có thể thay đổi quyền cho nhóm và người dùng.



Tiếp theo, dừng dịch vụ máy tính từ xa


Thay thế tập tin termrv.dll để tải xuống hoặc đã thay đổi.

Bạn cũng cần thay đổi giá trị của key trong sổ đăng ký HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\fSingleSessionPerUser đến 0!

Và chúng tôi đang bắt đầu lại dịch vụ!

Hãy kết nối và vui mừng! Hiện nay người dùng cục bộ không ném bạn ra khỏi hệ thống!

Dành cho Windows XP
1) Chỉnh sửa tập tin
termrv.dll (SP2 5.1.2600.2180) 295.424 byte

128BB: 75 -> 74
217D3: 8B -> 33
217D4: C7 -> C0
2192D: 8B -> 33
2192E: C7 -> C0
225B7: 54 -> 20
termrv.dll (SP3 5.1.2600.5512) 295.424 byte
22A17: 74 -> 75
22A69: 7F -> 90
22A6A: 16 -> 90
2) Thay thế một tập tin trong một thư mục C:\Windows\System32\ cần ở chế độ an toàn vì tính năng bảo vệ được bật theo mặc định tập tin hệ thống (Tệp hệ thống Sự bảo vệ). Để thực hiện việc này, hãy khởi động lại máy tính của bạn trong khi nhấn giữ F8, chọn chế độ an toàn.
3) Thêm khóa đăng ký

Kích hoạt các phiên đồng thời”=dword:00000001

Kích hoạt các phiên đồng thời”=dword:00000001
Cho phép nhiều phiênTS”=dword:00000001

4) Bắt đầu tiếp theo -> Chạy, gpedit.msc. Trong cửa sổ soạn thảo chính sách nhóm Cấu hình máy tính -> Mẫu quản trị -> Cấu phần Windows -> Dịch vụ đầu cuối. Bật Giới hạn số lượng kết nối và đặt số lượng kết nối thành 3 hoặc nhiều hơn.
5) Khởi động lại và kết nối!

Chế độ FTP

Khi làm việc bằng giao thức FTP, hai kết nối được thiết lập giữa máy khách và máy chủ - kết nối điều khiển (các lệnh được gửi qua nó) và kết nối dữ liệu (các tệp được truyền qua nó). Kết nối điều khiển giống nhau ở chế độ Chủ động và Bị động. Máy khách bắt đầu kết nối TCP từ cổng động (1024-65535) đến cổng số 21 trên máy chủ FTP và nói "Xin chào! Tôi muốn kết nối với bạn. Đây là tên và mật khẩu của tôi." Hành động hơn nữa tùy thuộc vào chế độ FTP nào (Hoạt động hoặc Bị động) được chọn.

Ở chế độ Hoạt động, khi khách hàng nói "Xin chào!" nó cũng cho máy chủ biết số cổng (từ phạm vi năng động 1024-65535) để máy chủ có thể kết nối với máy khách nhằm thiết lập kết nối dữ liệu. Máy chủ FTP kết nối với số cổng máy khách được chỉ định bằng cổng TCP số 20 để truyền dữ liệu. Đối với máy khách, một kết nối như vậy đang đến, do đó, làm việc ở chế độ hoạt động với các máy khách nằm phía sau tường lửa hoặc NAT thường khó khăn hoặc yêu cầu cài đặt thêm.

Ở chế độ Bị động, sau khi máy khách nói "Xin chào!", máy chủ sẽ thông báo cho máy khách số cổng TCP (từ dải động 1024-65535) mà nó có thể kết nối để thiết lập kết nối dữ liệu. Trong trường hợp này, có thể dễ dàng nhận thấy, các cổng trong kết nối như vậy, cả ở phía máy khách và phía máy chủ, hóa ra là tùy ý. Ở chế độ thụ động, máy khách có thể dễ dàng làm việc với máy chủ thông qua tường lửa của nó, nhưng thường để máy chủ hỗ trợ chế độ thụ động thì tường lửa phải được cấu hình phù hợp ở phía máy chủ.

Sự khác biệt chính giữa chế độ Active FTP và chế độ Passive FTP là phía mở kết nối để truyền dữ liệu. Ở chế độ Hoạt động, máy khách phải có khả năng chấp nhận kết nối này từ máy chủ FTP. Ở chế độ Bị động, máy khách luôn tự khởi tạo kết nối này và máy chủ phải chấp nhận nó.

FTP là một dịch vụ chỉ dựa trên TCP (Giao thức điều khiển truyền tải). FTP khác thường ở chỗ nó sử dụng hai cổng, một cổng "dữ liệu" và một cổng "lệnh" (còn được gọi là cổng điều khiển). Theo truyền thống, đây là cổng 21 cho lệnh và cổng 20 cho dữ liệu. Tuy nhiên, tùy vào chế độ mà cổng dữ liệu không phải lúc nào cũng là 20.

TRONG chế độ hoạt động Máy khách FTP kết nối từ một cổng không có đặc quyền tùy ý (N > 1024) đến cổng lệnh máy chủ FTP 21. Sau đó, máy khách bắt đầu nghe trên cổng N+1 và gửi lệnh FTP PORT N+1 đến máy chủ FTP. Đáp lại, máy chủ kết nối với cổng dữ liệu máy khách được chỉ định từ cổng đó. cảng địa phương dữ liệu 20.

TRONG chế độ thụ động Máy khách FTP khởi tạo cả hai kết nối đến máy chủ, giải quyết vấn đề với tường lửa lọc cổng dữ liệu đến của máy khách. Khi mở Kết nối FTP, máy khách sẽ mở cục bộ hai cổng không có đặc quyền (N > 1024 và N+1). Cổng đầu tiên liên lạc với máy chủ trên cổng 21, nhưng thay vì đưa ra lệnh PORT và cho phép máy chủ phản hồi bằng cách kết nối với cổng dữ liệu của nó, máy khách sẽ đưa ra lệnh PASV. Kết quả là, máy chủ mở một cổng không có đặc quyền tùy ý (P > 1024) và gửi lệnh PORT P đến máy khách. Sau đó, để truyền dữ liệu, máy khách bắt đầu kết nối từ cổng N+1 đến cổng P trên máy chủ.

FTP là một dịch vụ dựa trên TCP độc quyền. Không có thành phần UDP cho FTP. FTP là một dịch vụ đặc biệt ở chỗ nó sử dụng hai cổng, một cổng "dữ liệu" và một cổng "lệnh" (còn được gọi là cổng điều khiển). Theo truyền thống, đây là cổng 21 cho cổng lệnh và cổng 20 cho cổng dữ liệu. Tuy nhiên, sự nhầm lẫn bắt đầu khi chúng tôi nhận thấy rằng tùy thuộc vào chế độ, cổng dữ liệu không phải lúc nào cũng ở cổng 20.

FTP đang hoạt động

Trong chế độ hoạt động FTP, máy khách kết nối từ một cổng ngẫu nhiên không có đặc quyền (N > 1023) tới cổng Máy chủ ftp"s command port, port 21. Sau đó, máy khách bắt đầu nghe cổng N+1 và gửi lệnh FTP PORT N+1 đến máy chủ FTP. Sau đó, máy chủ sẽ kết nối lại với cổng dữ liệu được chỉ định của máy khách từ cục bộ của nó cổng dữ liệu, đó là cổng 20.

Từ quan điểm của tường lửa phía máy chủ, để hỗ trợ chế độ hoạt động FTP, cần phải mở các kênh liên lạc sau:

Cổng 21 của máy chủ FTP đến các cổng >
Cổng 20 của máy chủ FTP đến cổng > 1023 (Máy chủ khởi tạo kết nối dữ liệu với cổng dữ liệu của máy khách)
Cổng 20 của máy chủ FTP từ các cổng > 1023 (Máy khách gửi ACK đến cổng dữ liệu của máy chủ)

Ở bước 1, cổng lệnh của máy khách liên lạc với cổng lệnh của máy chủ và gửi lệnh PORT 1027. Sau đó, máy chủ gửi ACK trở lại cổng lệnh của máy khách ở bước 2. Ở bước 3, máy chủ bắt đầu kết nối trên cổng dữ liệu cục bộ của nó tới cổng dữ liệu mà máy khách đã chỉ định trước đó. Cuối cùng, máy khách sẽ gửi lại ACK như trong bước 4.

Vấn đề chính với chế độ hoạt động FTP thực sự nằm ở phía máy khách. Máy khách FTP không tạo kết nối thực tế đến cổng dữ liệu của máy chủ--nó chỉ cho máy chủ biết nó đang nghe trên cổng nào và máy chủ kết nối trở lại cổng được chỉ định trên máy khách. Từ tường lửa phía máy khách, điều này xuất hiện là một hệ thống bên ngoài bắt đầu kết nối với máy khách nội bộ--thứ thường bị chặn.

FTP thụ động

Để giải quyết vấn đề máy chủ khởi tạo kết nối với máy khách, một phương pháp khác dành cho kết nối FTP đã được phát triển. Đây được gọi là chế độ thụ động, hay PASV, sau lệnh được máy khách sử dụng để báo cho máy chủ biết nó đang ở chế độ thụ động.

Ở chế độ thụ động FTP, máy khách khởi tạo cả hai kết nối đến máy chủ, giải quyết vấn đề tường lửa lọc kết nối cổng dữ liệu đến máy khách từ máy chủ. Khi mở kết nối FTP, máy khách sẽ mở cục bộ hai cổng không có đặc quyền ngẫu nhiên (N > 1023 và N+1). Cổng đầu tiên liên lạc với máy chủ trên cổng 21, nhưng thay vì đưa ra lệnh PORT và cho phép máy chủ kết nối trở lại cổng dữ liệu của nó, máy khách sẽ đưa ra lệnh PASV. Kết quả của việc này là máy chủ sau đó sẽ mở một cổng ngẫu nhiên không có đặc quyền (P > 1023) và gửi lệnh PORT P trở lại máy khách. Sau đó, máy khách bắt đầu kết nối từ cổng N+1 đến cổng P trên máy chủ để truyền dữ liệu.

Từ quan điểm của tường lửa phía máy chủ, để hỗ trợ chế độ thụ động FTP, cần phải mở các kênh liên lạc sau:
Cổng 21 của máy chủ FTP từ mọi nơi (Máy khách bắt đầu kết nối)
Cổng 21 của máy chủ FTP đến các cổng > 1023 (Máy chủ phản hồi cổng điều khiển của máy khách)
Cổng của máy chủ FTP > 1023 từ mọi nơi (Máy khách khởi tạo kết nối dữ liệu tới cổng ngẫu nhiên do máy chủ chỉ định)
Cổng của máy chủ FTP > 1023 đến cổng từ xa > 1023 (Máy chủ gửi ACK (và dữ liệu) đến cổng dữ liệu của máy khách)

Biểu đồ sau sẽ giúp quản trị viên nhớ cách hoạt động của từng chế độ FTP:
FTP đang hoạt động:
lệnh: máy khách>1023 -> máy chủ 21
dữ liệu: khách hàng >1023<- server 20

FTP thụ động:
lệnh: máy khách>1023 -> máy chủ 21
dữ liệu: máy khách>1023 -> máy chủ>1023

Tóm tắt nhanh về ưu và nhược điểm của hoạt động so với hoạt động. FTP thụ động cũng theo thứ tự:

FTP hoạt động có lợi cho quản trị viên máy chủ FTP nhưng lại gây bất lợi cho quản trị viên phía máy khách. Máy chủ FTP cố gắng tạo kết nối tới các cổng cao ngẫu nhiên trên máy khách, cổng này gần như chắc chắn sẽ bị chặn bởi tường lửa ở phía máy khách. FTP thụ động có lợi cho máy khách nhưng lại gây bất lợi cho quản trị viên máy chủ FTP. Máy khách sẽ thực hiện cả hai kết nối đến máy chủ, nhưng một trong số chúng sẽ đến một cổng cao ngẫu nhiên, cổng này gần như chắc chắn sẽ bị chặn bởi tường lửa ở phía máy chủ.

May mắn thay, có một sự thỏa hiệp nào đó. Vì quản trị viên chạy máy chủ FTP sẽ cần làm cho máy chủ của họ có thể truy cập được với số lượng khách hàng lớn nhất nên họ gần như chắc chắn sẽ cần hỗ trợ FTP thụ động. Có thể giảm thiểu việc hiển thị các cổng cấp cao trên máy chủ bằng cách chỉ định phạm vi cổng giới hạn để máy chủ FTP sử dụng. Do đó, mọi thứ ngoại trừ phạm vi cổng này đều có thể được tường lửa ở phía máy chủ. Mặc dù điều này không loại bỏ tất cả rủi ro đối với máy chủ nhưng nó làm giảm đáng kể rủi ro.

3 câu trả lời

Chủ động và thụ động là hai chế độ mà FTP có thể hoạt động. FTP sử dụng hai kênh giữa máy khách và máy chủ, kênh lệnh và kênh dữ liệu, thực chất là các kết nối TCP riêng biệt. Kênh lệnh dành cho các lệnh và phản hồi, kênh dữ liệu dành cho truyền tệp thực tế. Cái này cách tuyệt vời gửi lệnh đến máy chủ mà không cần đợi quá trình truyền dữ liệu hiện tại hoàn tất.

Ở chế độ hoạt động, máy khách thiết lập kênh lệnh (từ cổng máy khách X đến cổng máy chủ 21(b)), nhưng máy chủ thiết lập kênh dữ liệu (từ cổng máy chủ 20(b) đến cổng máy khách Y, trong đó Y được cung cấp bởi khách hàng).

Ở chế độ thụ động, máy khách thiết lập cả hai kênh. Trong trường hợp này, máy chủ sẽ cho khách hàng biết cổng nào sẽ được sử dụng cho kênh dữ liệu.

Chế độ thụ động thường được sử dụng trong trường hợp máy chủ FTP không thể thiết lập kênh dữ liệu. Một trong những lý do chính cho điều này là tường lửa mạng. Mặc dù bạn có thể có quy tắc tường lửa cho phép bạn mở các kênh FTP tới ftp.microsoft.com nhưng các máy chủ của Microsoft có thể không mở được kênh dữ liệu qua tường lửa.

Chế độ thụ động giải quyết vấn đề này bằng cách mở cả hai loại kênh ở phía máy khách. Để làm cho điều này rõ ràng hơn một cách đáng tin cậy:

Chế độ hoạt động:

  • Máy khách gửi PORT 2001(a) đến máy chủ và máy chủ xác nhận trong kênh lệnh.
  • Máy chủ mở kênh dữ liệu từ cổng máy chủ 20 (b) đến cổng máy khách 2001 (a).
  • Khách hàng xác nhận kênh dữ liệu.

Chế độ thụ động:

  • Máy khách mở kênh lệnh từ cổng máy khách 2000(a) đến cổng máy chủ 21(b).
  • Máy khách gửi PASV đến máy chủ trong kênh lệnh.
  • Máy chủ gửi lại (trong kênh lệnh) PORT 1234(a) sau khi bắt đầu nghe trên cổng đó.
  • Máy khách mở kênh dữ liệu từ máy khách 2001(a) tới cổng máy chủ 1234(a).
  • Máy chủ xác nhận kênh dữ liệu.

Tại thời điểm này, các lệnh và kênh dữ liệu đang mở.

(a) Lưu ý rằng việc lựa chọn cổng phía máy khách là dành riêng cho máy khách, vì việc lựa chọn cổng liên kết dữ liệu của máy chủ ở chế độ thụ động là dành riêng cho máy chủ.

(b) Cần lưu ý thêm rằng việc sử dụng cổng 20 và 21 chỉ mang tính chất có điều kiện (dù rất mạnh). Không có yêu cầu tuyệt đối về việc sử dụng các cổng này, mặc dù máy khách và máy chủ phải thống nhất về cổng nào được sử dụng. Tôi đã thấy các triển khai cố gắng ẩn khỏi khách hàng bằng các cổng khác nhau (theo ý kiến ​​​​của tôi là vô ích).

Gần đây tôi đã gặp phải vấn đề này tại nơi làm việc của mình, vì vậy tôi đoán tôi nên nói điều gì đó khác ở đây. Tôi sẽ sử dụng một hình ảnh để giải thích cách hoạt động của FTP nguồn bổ sung cho câu trả lời trước.

Chế độ hoạt động:

Chế độ thụ động:

Trong cấu hình chế độ hoạt động, máy chủ sẽ cố gắng kết nối với một cổng máy khách ngẫu nhiên. Rất có thể, cổng này sẽ không phải là một trong những cổng được xác định trước. Do đó, nỗ lực kết nối với nó sẽ bị tường lửa chặn và kết nối sẽ không được thiết lập.

Cấu hình thụ động sẽ không gặp phải vấn đề này vì máy khách sẽ là người khởi tạo kết nối. Tất nhiên, phía máy chủ cũng có thể có tường lửa. Tuy nhiên, vì máy chủ dự kiến ​​sẽ nhận được số lượng lớn các yêu cầu kết nối so với máy khách thì sẽ hợp lý nếu quản trị viên máy chủ thích ứng với tình huống và mở một số cổng để đáp ứng cấu hình chế độ thụ động.

Vì vậy, tốt hơn hết bạn nên thiết lập máy chủ hỗ trợ FTP ở chế độ thụ động. Tuy nhiên, chế độ thụ động sẽ khiến hệ thống của bạn dễ bị tấn công vì máy khách phải kết nối với máy chủ ngẫu nhiên. Vì vậy, để hỗ trợ chế độ này, máy chủ của bạn không chỉ phải có sẵn nhiều cổng mà tường lửa của bạn còn phải cho phép kết nối đến tất cả các cổng đó!

Để giảm thiểu rủi ro, một giải pháp tốt là chỉ định một loạt cổng trên máy chủ của bạn và sau đó chỉ cho phép phạm vi cổng đó trên tường lửa của bạn.

Để biết thêm thông tin, hãy xem sách trắng.

Phiên bản rút gọn của các chế độ kết nối FTP trong bài viết của tôi (Hoạt động so với Bị động):

Cách thức Kết nối FTP(chủ động hoặc thụ động) xác định cách thiết lập kết nối dữ liệu. Trong cả hai trường hợp, máy khách tạo kết nối điều khiển TCP tới cổng 21 của máy chủ FTP. Đây là kết nối gửi đi tiêu chuẩn, giống như với bất kỳ giao thức truyền tệp nào khác (SFTP, SCP, WebDAV) hoặc bất kỳ ứng dụng khách nào khác ứng dụng TCP(ví dụ: trình duyệt web). Vì vậy, thường không có vấn đề gì khi mở kết nối điều khiển.

Trong đó FTP phức tạp hơn các giao thức truyền tệp khác là truyền tệp. Trong khi các giao thức khác sử dụng cùng một kết nối để quản lý phiên và truyền tệp (dữ liệu), thì giao thức FTP sử dụng một kết nối riêng để truyền tệp và thư mục.

Ở chế độ hoạt động, máy khách bắt đầu lắng nghe trên một cổng ngẫu nhiên các kết nối dữ liệu đến từ máy chủ (máy khách gửi Lệnh FTP PORT để báo cho máy chủ biết nó đang nghe trên cổng nào). Ngày nay, thông thường máy khách nằm sau tường lửa (chẳng hạn như tường lửa tích hợp sẵn trong Windows) hoặc bộ định tuyến NAT (chẳng hạn như modem ADSL), không thể chấp nhận các kết nối TCP đến.

Vì lý do này, chế độ thụ động đã được giới thiệu và được sử dụng chủ yếu ngày nay. Nên sử dụng chế độ thụ động vì hầu hết cấu hình phức tạp chỉ được thực hiện một lần ở phía máy chủ, bởi quản trị viên có kinh nghiệm, thay vì thực hiện riêng lẻ ở phía máy khách, bởi (có thể) bởi những người dùng thiếu kinh nghiệm.

Ở chế độ thụ động, máy khách sử dụng kết nối điều khiển để gửi lệnh PASV đến máy chủ, sau đó nhận địa chỉ IP và số cổng máy chủ của máy chủ từ máy chủ, sau đó máy khách sử dụng lệnh này để mở kết nối đến địa chỉ IP và cổng máy chủ của máy chủ con số.

Cấu hình mạng cho chế độ thụ động

Ở chế độ thụ động, hầu hết tải cấu hình đều ở phía máy chủ. Quản trị viên máy chủ phải định cấu hình máy chủ như được mô tả bên dưới.

Tường lửa và NAT ở phía máy chủ FTP phải được cấu hình không chỉ để cho phép/định tuyến các kết nối đến cổng FTP 21 mà còn trên một số cổng cho các kết nối dữ liệu đến. Thông thường, phần mềm máy chủ FTP có tùy chọn cấu hình để định cấu hình phạm vi cổng sẽ được máy chủ sử dụng. Và phạm vi tương tự phải được mở/định tuyến trên tường lửa/NAT.

Khi máy chủ FTP ở phía sau NAT, nó phải biết địa chỉ IP bên ngoài của nó để có thể cung cấp địa chỉ đó cho máy khách theo lệnh PASV.

Cấu hình mạng cho chế độ hoạt động

Ở chế độ hoạt động, hầu hết tải cấu hình đều ở phía máy khách.

Tường lửa (ví dụ Tường lửa Windows) và NAT (ví dụ: quy tắc định tuyến modem ADSL) ở phía máy khách phải được cấu hình để cho phép/định tuyến một loạt cổng cho các kết nối dữ liệu đến. Để mở cổng trong Windows, hãy đi tới Bảng điều khiển > Hệ thống và bảo mật > Tường lửa Windows" > "Cài đặt nâng cao" > "Quy tắc đến" > "Quy tắc mới". Để định tuyến các cổng tới NAT (nếu có), hãy tham khảo tài liệu của nó.

Khi NAT có trên mạng của bạn, máy khách FTP phải biết địa chỉ IP bên ngoài của nó mà WinSCP phải cung cấp cho máy chủ FTP bằng lệnh PORT. Để máy chủ có thể kết nối đúng cách với máy khách để mở kết nối dữ liệu. Một số máy khách FTP có thể tự động phát hiện địa chỉ IP bên ngoài, một số trong số chúng phải được cấu hình thủ công.

Tường lửa thông minh/NAT

Một số tường lửa/NAT cố gắng tự động mở/đóng cổng dữ liệu bằng cách kiểm tra kết nối với kết nối FTP và/hoặc dịch địa chỉ IP kết nối dữ liệu thành lưu lượng kết nối điều khiển.

Khi sử dụng tường lửa/NAT như vậy, cấu hình trên không bắt buộc đối với FTP không được mã hóa đơn giản. Nhưng điều này không thể hoạt động với FTPS vì lưu lượng kết nối điều khiển được mã hóa và tường lửa/NAT không thể kiểm tra và sửa đổi nó.

Khi làm việc bằng giao thức FTP, hai kết nối được thiết lập giữa máy khách và máy chủ - kết nối điều khiển (các lệnh được gửi qua nó) và kết nối dữ liệu (các tệp được truyền qua nó).
Kết nối điều khiển giống nhau đối với Tích cựcThụ động cách thức. Máy khách bắt đầu kết nối TCP từ cổng động (1024-65535) đến cổng số 21 trên máy chủ FTP và nói “Xin chào! Tôi muốn kết nối với bạn. Đây là tên và mật khẩu của tôi." Các hành động tiếp theo tùy thuộc vào chế độ FTP (Hoạt động hoặc Bị động) được chọn.

Ở chế độ hoạt động khi khách hàng nói “Xin chào!” nó cũng cho máy chủ biết số cổng (từ dải động 1024-65535) để máy chủ có thể kết nối với máy khách nhằm thiết lập kết nối dữ liệu. Máy chủ FTP kết nối với số cổng máy khách được chỉ định bằng cổng TCP số 20 để truyền dữ liệu.

Ở chế độ thụ động, sau khi máy khách nói “Xin chào!”, máy chủ sẽ thông báo cho máy khách số cổng TCP (từ dải động 1024-65535) mà nó có thể kết nối để thiết lập kết nối dữ liệu.

Sự khác biệt chính giữa chế độ FTP hoạt động và chế độ FTP thụ động là phía mở kết nối dữ liệu. Ở chế độ hoạt động, máy khách phải chấp nhận kết nối từ máy chủ FTP. Ở chế độ thụ động, máy khách luôn bắt đầu kết nối.

Các lệnh cơ bản

ABOR - Hủy bỏ việc truyền tập tin
CDUP - Thay đổi thư mục lên thư mục cao hơn.
CWD - Thay đổi thư mục.
DELE - Xóa tập tin (tên tập tin DELE).
EPSV - Vào chế độ thụ động mở rộng. Được sử dụng thay vì PASV.
TRỢ GIÚP - Hiển thị danh sách các lệnh được máy chủ chấp nhận.
LIST - Trả về danh sách các tập tin trong một thư mục. Danh sách được gửi qua kết nối dữ liệu.
MDTM - Trả về thời gian sửa đổi file.
MKD - Tạo một thư mục.
NLST - Trả về danh sách các tệp trong một thư mục ở nhiều nơi hơn định dạng ngắn hơn DANH SÁCH. Danh sách được gửi qua kết nối dữ liệu.
NOOP - Thao tác trống
PASV - Vào chế độ thụ động. Máy chủ sẽ trả về địa chỉ và cổng mà bạn cần kết nối để thu thập dữ liệu. Quá trình truyền sẽ bắt đầu khi các lệnh sau được nhập: RETR, LIST, v.v.
PORT — Vào chế độ hoạt động. Ví dụ: CỔNG 12,34,45,56,78,89. Không giống như chế độ thụ động, máy chủ tự kết nối với máy khách để truyền dữ liệu.
PWD - Trả về thư mục hiện tại.
QUIT - Ngắt kết nối
REIN - Khởi tạo lại kết nối
RETR - Tải tập tin. RETR phải được đặt trước lệnh PASV hoặc PORT.
RMD - Xóa thư mục
RNFR và RNTO - Đổi tên tệp. RNFR - đổi tên cái gì, RNTO - đổi tên cái gì.
SIZE - Trả về kích thước tệp
STOR - Tải tập tin lên. STOR phải được đặt trước lệnh PASV hoặc PORT.
SYST - Trả về loại hệ thống (UNIX, WIN, ...)
LOẠI - Đặt loại truyền tệp (nhị phân, văn bản)
USER — Tên người dùng để đăng nhập vào máy chủ

Danh sách đầy đủ các mã phản hồi của máy chủ FTP

100Hành động được yêu cầu đã được bắt đầu, hãy đợi phản hồi tiếp theo trước khi thực hiện lệnh mới.
110Bình luận
120Chức năng sẽ được triển khai sau nnn phút nữa
125Kênh đã mở, trao đổi dữ liệu đã bắt đầu
150Trạng thái tệp chính xác, việc mở kênh đang được chuẩn bị
200Lệnh đúng
202Lệnh không được hỗ trợ
211Trạng thái hệ thống hoặc phản hồi yêu cầu trợ giúp
212Trạng thái thư mục
213Trạng thái tệp
214Thông báo giải thích trợ giúp
215Hiển thị cùng với thông tin hệ thống bằng lệnh SYST
220Dịch vụ đã sẵn sàng cho người dùng mới.
221Hoàn thành thành công với lệnh thoát
225Kênh được hình thành, nhưng trao đổi thông tin vắng mặt
226Đóng kênh, trao đổi hoàn tất thành công
227Chuyển sang chế độ thụ động (h1,h2,h3,h4,p1,p2).
228chuyển sang chế độ thụ động dài (địa chỉ dài, cổng).
229Chuyển sang chế độ thụ động mở rộng (|||port|).
230Người dùng đã xác thực, tiếp tục
231Phiên người dùng đã kết thúc; Dịch vụ đã bị ngừng.
232Lệnh kết thúc phiên đã được chấp nhận và sẽ được hoàn thành khi quá trình truyền tệp hoàn tất.
250Yêu cầu đã thành công
257“THE PATH” đã được tạo.
331Tên người dùng đúng, yêu cầu mật khẩu
332Yêu cầu xác thực để đăng nhập
350Hành động tệp được yêu cầu yêu cầu thêm thông tin
404Không tìm thấy máy chủ từ xa này
421Thủ tục không thể thực hiện được, kênh đã bị đóng
425Không thể mở được kênh thông tin
426Kênh đóng, trao đổi bị gián đoạn
434Máy chủ được yêu cầu không có sẵn
450Chức năng được yêu cầu không được triển khai, tệp không có sẵn, ví dụ: bận
451Lỗi cục bộ, thao tác bị hủy
452Lỗi khi ghi tệp (không đủ dung lượng)
Lỗi cú pháp 500, lệnh không thể diễn giải được (có thể quá dài)
Lỗi cú pháp 501 (tham số hoặc đối số không hợp lệ)
502Lệnh không được sử dụng (loại bất hợp pháp MODE)
503 Chuỗi lệnh không thành công
504Lệnh không áp dụng cho tham số này
530Đăng nhập không thành công! Cần có sự cho phép (chưa đăng nhập)
532Yêu cầu xác thực để ghi nhớ tệp
550Chức năng được yêu cầu không được triển khai, tệp không có sẵn, ví dụ: không tìm thấy
551Thao tác được yêu cầu đã bị hủy bỏ. Loại trang không xác định.
552Thao tác được yêu cầu đã bị hủy bỏ. Không đủ bộ nhớ được phân bổ
553Thao tác được yêu cầu không được chấp nhận. Tên không hợp lệ tài liệu.