Tôi cần mở cổng tường lửa nào khi sử dụng FTPS?


33

Tôi cần truy cập máy chủ FTPS (vsftpd) trên trang web của nhà cung cấp. Nhà cung cấp có một tường lửa trước máy chủ ftps. Tôi có một tường lửa trước máy khách FTPS của tôi.

Tôi hiểu rằng các cổng 990, 991 và có thể 989 cần được mở để kiểm soát lưu lượng.

Tôi có một số câu hỏi:

  1. Khi xem xét từ góc độ tường lửa của nhà cung cấp, các cổng này có nên được mở cho cả lưu lượng truy cập trong và ngoài nước không?
  2. Còn các cổng cho kênh DATA thì sao?
  3. Tôi có phải mở tất cả các cổng trên 1000 không?
  4. Tôi có nên làm điều đó cho cả lưu lượng truy cập trong và ngoài nước?

Câu trả lời:


19

Sự hiểu biết của tôi về FTP qua SSL (ftps) là nó không hoạt động tốt với tường lửa và NAT. Trong một phiên FTP thông thường, thông tin về các kết nối dữ liệu được đọc và đối với NAT được sửa đổi, bởi tường lửa để tường lửa tự động mở các cổng cần thiết. Nếu thông tin đó được bảo mật bởi SSL, tường lửa không thể đọc hoặc thay đổi thông tin đó.

Sử dụng SFTP, hoặc scp, giúp công việc của quản trị viên mạng dễ dàng hơn nhiều - mọi thứ xảy ra trên cổng 22 của máy chủ và giao dịch tuân theo mô hình máy khách / máy chủ bình thường.

Một điều không được đề cập là liệu tường lửa của bạn có thực hiện NAT hay không và đó là NAT tĩnh hay NAT động. Nếu máy khách của bạn có địa chỉ tĩnh hoặc đang được NAT tĩnh, bạn có thể không cần thực hiện bất kỳ thay đổi tường lửa nào, giả sử bạn cho phép tất cả lưu lượng truy cập đi và máy chủ chỉ hoạt động ở chế độ Bị động (PASV).

Để biết chính xác cổng nào bạn sẽ cần mở, bạn sẽ cần:

a) nói chuyện với nhà cung cấp để biết chi tiết về cách hệ thống của họ được cấu hình.

b) Sử dụng bộ phân tích giao thức, chẳng hạn như tcpdump hoặc wireshark, để xem lưu lượng, cả từ bên ngoài tường lửa và bên trong tường lửa của bạn

Bạn cần tìm ra cổng nào là Control Connection. Bạn liệt kê 3, có vẻ kỳ lạ với tôi. Giả sử máy chủ chỉ hoạt động ở chế độ PASV (thụ động), bạn cần tìm hiểu cách máy chủ được cấu hình để phân bổ các cổng DATA. Họ đã khóa kênh DATA vào một cổng vào chưa? Họ đã khóa kênh DATA vào một phạm vi nhỏ hoặc cổng?

Với những câu trả lời này, bạn có thể bắt đầu cấu hình tường lửa của mình.


3
Chế độ thụ động FTPS sẽ sử dụng cổng điều khiển trên cổng # 1024 và do đó, nó sẽ hoạt động tốt hơn với tường lửa so với không thụ động. máy khách báo cho cổng 21 biết cổng nào giới hạn trên sẽ mở và do đó bạn có thể định cấu hình máy khách để nói "điều khiển nằm trên cổng 2000 hoặc 2001" và sau đó máy chủ sẽ mở cổng ra 2000 hoặc 2001. Hầu hết các máy khách FTP đều hỗ trợ xác định phạm vi cụ thể các cổng để "điều khiển" được bật và điều đó làm cho định nghĩa tường lửa trở nên dễ dàng.
djangofan

27

Tôi tin rằng các cổng khoảng 990 là dành cho SSL ẩn, đây là một cách làm FTP / SSL cũ không chuẩn. Cách "đúng" trong những ngày này là SSL rõ ràng, có nghĩa là bạn vẫn kết nối trên cổng 21 và sau đó đàm phán SSL trước khi gửi quà tặng của bạn. Để hỗ trợ các kết nối thông qua tường lửa, bạn cần sử dụng chế độ PASV và thiết lập cứng các cổng dữ liệu sẽ được sử dụng.

Tôi tin rằng bạn cần ít nhất một cổng cho mỗi kết nối dữ liệu bạn muốn hỗ trợ. Nếu chỉ là bạn, có lẽ bạn chỉ nên mở thêm một vài cổng. Cụ thể đối với tôi, tôi sử dụng 21000-21010.

Trong vsftpd.conf, tôi có hai dòng này (cùng với tất cả các nội dung khác để hỗ trợ SSL):

pasv_min_port=21000

pasv_max_port=21010

Trên tường lửa của tôi, tôi có một IP tĩnh công khai với một-một / NAT tĩnh cho IP bên trong và chỉ các cổng tcp 21, 21000-21010 mở.


10

Tôi biết đây là một chủ đề rất cũ, tuy nhiên ..

Xin lưu ý rằng SFTP hoàn toàn khác với FTPS. (SSH so với SSL)

FTPS trở nên tồi tệ theo 2 cách. Rõ ràng và tiềm ẩn. Rõ ràng là kém an toàn hơn vì sau khi bắt tay ban đầu bỏ qua mã hóa trong khi truyền dữ liệu [nếu mã hóa dữ liệu được duy trì có thể định cấu hình ở phía máy chủ với PROT P], trong khi Implicit giữ mã hóa dữ liệu sau khi bắt tay. Cổng FTPS mặc định là 21. Cổng ẩn mặc định là 990 (sau khi bắt tay, nó sẽ tự động chuyển sang 989 để truyền dữ liệu, nếu không được cấu hình khác). Mặc dù cổng 21 thường được chấp nhận là EXPLICIT FTPS và 990 dưới dạng IMPLICIT FTPS, nhưng thực tế, bất kỳ cổng nào bạn sẽ định cấu hình, ngoại trừ 990/989, sẽ dẫn đến EXPLICIT FTPS trong khi CHỈ 990/989 sẽ được chấp nhận là FTPS IMPLICIT.

Vì vậy, để trả lời câu hỏi của bạn: - tùy thuộc vào cấu hình FTPS Server, bạn sẽ cần mở cổng 21 hoặc 990/989. Tuy nhiên, để chắc chắn, bạn nên liên hệ với quản trị viên FTPS Server và hỏi đường. Ngoài ra, hãy nhớ rằng đối với chế độ thụ động, như với mọi phần mềm FTP khác, bạn sẽ phải mở các cổng bổ sung (TCP / UDP) thường là một cái gì đó trong phạm vi 64000-65000.


2

Về cơ bản ftps gần như vô dụng, bởi vì bạn phải thực hiện các yêu cầu lúng túng cho quản trị viên tường lửa. Lời khuyên để hạn chế cổng đến 10 là tốt. Nhiều hơn nữa, nó trở nên thảm hại.

Sftp tốt hơn rất nhiều trong lý thuyết. Nhưng bạn cần một máy chủ sftp khả thi, ví dụ như một máy chủ giới hạn khách hàng vào thư mục nhà riêng của họ.

Tùy thuộc vào ứng dụng, xem xét HTTPS. Tải lên tập tin thực sự đơn giản, và tải xuống rõ ràng là tốt. Nếu bạn đang viết kịch bản FTP, có lẽ sẽ dễ dàng hơn hoàn toàn để kịch bản tải lên tệp HTTPS.

FTP tự động là một dấu hiệu của một vấn đề thiết kế. Tôi nhận thấy điều này khi giao dịch với tổng cộng khoảng một chục nhà cung cấp 'yêu cầu' một nơi tôi làm việc để làm FTP tự động (đối với RẤT NHIỀU việc quan trọng) và khi khiến hàng chục khách hàng làm điều đó với cùng một cửa hàng (một lỗi thiết kế về 20 công dụng riêng biệt tôi đã chứng kiến). Thật dễ dàng để thuyết phục hầu hết các ứng dụng sử dụng HTTPS (thông thường tại đề cập, họ nói "chờ đã, không có lý do gì chúng ta không chỉ lấy chúng bằng HTTPS từ máy chủ web mà chúng tôi đã phục vụ dữ liệu cho họ?" ), ngoại trừ một số câu trả lời như "tốt, chúng tôi đã có các kịch bản này dường như hoạt động và không ai trong nhóm của chúng tôi thực sự giỏi với kịch bản nên chúng tôi không thể thực hiện bất kỳ thay đổi nào" (một nhóm gồm 5-10 lập trình viên,


1

Nhà cung cấp có thể định cấu hình phạm vi cổng hẹp cho các cổng kết nối DATA, nếu họ chưa có. Sau đó, bạn có thể mở phạm vi tương tự ở cuối của bạn, cho các máy chủ cần truy cập như vậy. Chế độ PASV nên được sử dụng.


-1

Cổng 22 là tiêu chuẩn vì daemon SSH trên UNIX có mô-đun SFTP mà bạn có thể kích hoạt để tạo một máy chủ SFTP rõ ràng. Nếu bạn muốn chạy một máy chủ FTP ẩn với Filezilla thì bạn có thể chạy nó trên bất kỳ cổng nào bạn muốn nhưng có một nhược điểm: nếu bạn sử dụng ứng dụng khách FileZilla, bạn cần chỉ định URL trang web ftp là ftps: //mysite.com: 8086 thay vì đặt cổng vào trường cổng riêng mà máy khách FileZilla cung cấp.

Đối với tùy chọn rõ ràng, bạn chỉ cần MỘT cổng: 22. Đối với tùy chọn ẩn, bạn chỉ cần mở tường lửa cho cổng điều khiển: 8086 (chuyển tiếp nội bộ sang cổng 21 trên máy chủ tệp của bạn).


6
Câu hỏi được hỏi về FTPS, không phải SFTP.
Michael Lang

-7

nếu ftps giống như sftp , thì bạn chỉ cần có thể truy cập cổng 22 trên trang web của nhà cung cấp.

Cuối cùng, bạn nên định cấu hình tường lửa của mình để cho phép cổng 22 đi và lưu lượng đến liên quan . Điều này sẽ cho phép liên lạc trên bất kỳ cổng đến nào có liên quan đến kết nối gửi ban đầu trên cổng 22.


11
SFTP không giống như ftps ( codeguru.com/csharp/.net/net_general/iNET/article.php/ trộm ). SFTP là giao thức truyền tệp được sử dụng với SSH. FTPS là FTP với SSL, FTPS bắt đầu kết nối DATA mới trên một cổng ngẫu nhiên mới, điều này khiến việc triển khai phía sau tường lửa trở nên khó khăn, nhưng tôi không thể xóa tường lửa trong tình huống này.

2
Xin lỗi rồi. Tôi sẽ rời khỏi bài viết này mặc dù, trong trường hợp những người khác có cùng một sự nhầm lẫn.
Brent

Đó là một sự nhầm lẫn cực kỳ phổ biến. Từ phía tường lửa, sftp là cách dễ dàng hơn để cho phép, ngoại trừ việc nó được xây dựng trên một giao thức dành cho truy cập đăng nhập. Tiêu cực cho các nhóm bảo mật độc lập cho phép mà không cần xác nhận độc lập đáng kể. Khó khăn cho các sysadins để tìm / cấu hình một máy chủ sftp hợp lý cho các máy khách không đáng tin cậy. Bất kỳ thảo luận về sftp hoặc ftps phải đề cập đến giao thức khác vì sự nhầm lẫn là phổ biến.
carlito
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.