Không đủ thông tin để có câu trả lời hoàn chỉnh. Nhưng bạn phải luôn nhớ rằng FTP không phải là một giao thức đơn giản. Trong trường hợp đơn giản nhất, các tích cực FTP hoạt động như thế này:
- Bạn tạo kết nối điều khiển tới cổng 21 (máy chủ FTP), qua đó
- Bạn xác thực
- Bạn cho máy chủ biết nơi tạo kết nối (IP và cổng)
- Bạn ra lệnh cho máy chủ bắt đầu chuyển
- Các người phục vụ làm cho nữa kết nối với IP và cổng bạn đã nói với nó và gửi hoặc nhận dữ liệu.
Thông thường ở bước 3, bạn cho máy chủ biết IP của bạn và cổng mà máy khách FTP của bạn đang nghe, vì vậy một kết nối khác trong bước 5 đang được thực hiện theo hướng ngược lại, từ máy chủ đến bạn.
Nó sẽ như thế nào nếu có bức tường lửa ở giữa? Giả sử bạn đã bật chấp nhận các gói trên cổng 21 (hoặc cổng nào bạn sử dụng) trên máy chủ. Bạn có thể thực hiện kết nối điều khiển. Bây giờ, còn kết nối dữ liệu đảo ngược mà máy chủ tạo ra thì sao? Làm thế nào để kích hoạt điều đó?
Có hai trường hợp: bạn có thể cho phép tĩnh một số cổng (hoặc phạm vi) và định cấu hình máy khách FTP của mình để luôn sử dụng cổng đó hoặc bạn có tường lửa rất thông minh, hoạt động tích cực. nghe lén trên kết nối điều khiển, trích xuất IP và cổng và tự động tạo quy tắc tạm thời cho phép kết nối ngược lại. cái này gọi là ALG Viết tắt của Cổng cấp ứng dụng.
Làm thế nào để tường lửa biết kết nối nào để nghe lén? Nó biết FTP hoạt động trên TCP/21, vì vậy nó chỉ cần tìm bất kỳ lưu lượng truy cập nào trên cổng đó. Nếu bạn thay đổi cổng điều khiển thì sao? Bạn có thể đoán rằng: ALG sẽ không hoạt động.Tường lửa sẽ không thêm quy tắc động bổ sung nên nỗ lực đảo ngược kết nối dữ liệu sẽ không thành công.
Có một hy vọng rằng nếu bạn định cấu hình "ALG" để hoạt động với cổng không mặc định, vấn đề sẽ được giải quyết. Tuy nhiên, đây không phải là luôn luôn như vậy. Yêu cầu đầu tiên, cái mà tường lửa mà chúng ta đang nói đến? Thế giới hiện đại sử dụng tường lửa rất nhiều, ở cả hai đầu và ở giữa, đồng thời cũng sử dụng nhiều NAT (bao gồm cả CGN được các ISP sử dụng). Bất kỳ NAT nào cũng cần ALG: nó cần tạo quy tắc dịch động đối với máy khách đứng sau NAT và là người đã bắt đầu giao dịch. Bạn chỉ có thể thành công theo cách này nếu bạn có thể định cấu hình mọi ALG dọc theo đường dẫn theo cách bạn muốn. Xem tôi đang đi đâu?
có hai giải pháp chung. Đầu tiên, đơn giản: dựa vào ALG, yêu cầu bạn không bao giờ thay đổi cổng điều khiển FTP mặc định (thành thật mà nói, 20 năm quản lý máy chủ và tôi vẫn không hiểu ý nghĩa của việc sử dụng các cổng không mặc định. Điều này tạo ra nhiều vấn đề hơn là giải quyết) . Thứ hai, cũng đơn giản: sử dụng chế độ FTP thụ động.
Các thụ động FTP hoạt động như thế này:
- Bạn thực hiện kết nối đến cổng 21 (máy chủ FTP), thông qua đó
- Bạn xác thực
- Bạn vào chế độ thụ động và máy chủ trả lời bằng IP và cổng
- Bạn ra lệnh cho máy chủ bắt đầu chuyển
- Bạn tạo một kết nối khác với IP và cổng mà máy chủ đã thông báo cho bạn và nhận hoặc gửi dữ liệu.
Lưu ý rằng các bước thay đổi duy nhất là 3 và 5. Chúng tránh kết nối ngược lại.
Điều này giải quyết một phần vấn đề với cổng không mặc định và ALG không được kiểm soát. Nó cũng cho phép sử dụng mã hóa trên kết nối điều khiển (vốn đã phá vỡ ALG).