Jakie porty zapory sieciowej muszę otworzyć podczas korzystania z FTPS?

33

Muszę uzyskać dostęp do serwera FTPS (vsftpd) w witrynie dostawcy. Sprzedawca ma zaporę ogniową przed serwerem ftps. Mam zaporę przed moim klientem FTPS.

Rozumiem, że porty 990, 991 i może 989 muszą zostać otwarte dla kontroli ruchu.

Mam parę pytań:

  1. Patrząc na to z perspektywy zapory ogniowej dostawcy, czy porty te powinny być otwarte na ruch przychodzący i wychodzący?
  2. Co z portami dla kanału DATA?
  3. Czy muszę otwierać wszystkie porty powyżej 1000?
  4. Czy powinienem to zrobić dla ruchu przychodzącego i wychodzącego?
Tim
źródło

Odpowiedzi:

19

Rozumiem, że FTP przez SSL (ftps) jest taki, że nie działa dobrze z zaporami ogniowymi i NAT. W zwykłej sesji FTP informacje o połączeniach danych są odczytywane przez zaporę i modyfikowane przez NAT, aby zapora mogła dynamicznie otwierać potrzebne porty. Jeśli te informacje są zabezpieczone przez SSL, zapora ogniowa nie może ich odczytać ani zmienić.

Korzystanie z SFTP lub scp znacznie ułatwia zadanie administratorowi sieci - wszystko dzieje się na porcie 22 serwera, a transakcja przebiega zgodnie z normalnym modelem klient / serwer.

Jedną z rzeczy, o których nie wspomniano, jest to, czy twoja zapora działa NAT i czy jest statycznym NAT czy dynamicznym NAT. Jeśli komputer kliencki ma adres statyczny lub ma statyczną translację NAT, może nie być konieczne wprowadzanie żadnych zmian zapory, zakładając, że zezwalasz na cały ruch wychodzący, a serwer działa tylko w trybie pasywnym (PASV).

Aby dokładnie wiedzieć, jakie porty trzeba otworzyć, musisz:

a) porozmawiaj ze sprzedawcą, aby uzyskać szczegółowe informacje na temat konfiguracji jego systemu.

b) Użyj analizatora protokołów, takiego jak tcpdump lub wireshark, aby sprawdzić ruch, zarówno spoza zapory, jak i wewnątrz zapory

Musisz dowiedzieć się, który port jest połączeniem sterującym. Wymieniasz 3, co wydaje mi się dziwne. Zakładając, że serwer działa tylko w trybie PASV (pasywnym), musisz dowiedzieć się, jak serwer jest skonfigurowany do przydzielania portów DATA. Czy zablokowali kanał DATA do pojedynczego portu wejściowego? Czy zablokowali kanał DATA do małego zasięgu lub portów?

Dzięki tym odpowiedziom możesz rozpocząć konfigurację zapory.

pcapademic
źródło
3
tryb pasywny FTPS używałby portu kontrolnego nad portem nr 1024, więc działałby lepiej z zaporą ogniową niż bez pasywny. klient mówi portowi 21, jaki górny port ma zostać otwarty, abyś mógł skonfigurować klienta tak, aby powiedział „kontrola jest na porcie 2000 lub 2001”, a następnie serwer otworzy port wychodzący 2000 lub 2001. większość klientów FTP obsługuje zdefiniowanie określonego zakresu portów do włączenia „kontroli”, co ułatwia definicje zapory.
djangofan
27

Uważam, że porty około 990 były dla niejawnego protokołu SSL, który był starym niestandardowym sposobem wykonywania FTP / SSL. „Właściwy” sposób to obecnie jawne SSL, co oznacza, że ​​nadal łączysz się przez port 21, a następnie negocjujesz SSL przed wysłaniem gadżetów. Aby obsługiwać połączenia przez zaporę, musisz użyć trybu PASV i ustawić porty danych, które mają być używane.

Uważam, że potrzebujesz co najmniej jednego portu na połączenie danych, które chcesz obsługiwać. Jeśli to tylko ty, prawdopodobnie dobrze jest, otwierając tylko kilka dodatkowych portów. Specjalnie dla mnie używam 21000-21010.

W vsftpd.conf mam te dwie linie (wraz z wszystkimi innymi rzeczami do obsługi SSL):

pasv_min_port=21000

pasv_max_port=21010

Na mojej zaporze mam publiczny statyczny adres IP z bezpośrednim / statycznym NAT do wewnętrznego adresu IP i otwarte tylko porty TCP 21, 21000-21010.

David
źródło
10

Wiem, że to bardzo stary wątek, jednak ..

Należy pamiętać, że SFTP różni się całkowicie od FTPS. (SSH vs SSL)

FTPS działa na 2 sposoby. Jawne i niejawne. Jawne jest mniej bezpieczne, ponieważ po wstępnym uzgadnianiu pomija szyfrowanie podczas przesyłania danych [jeśli szyfrowanie danych jest utrzymywane, można je konfigurować po stronie serwera za pomocą PROT P], podczas gdy Implicit utrzymuje szyfrowanie danych również po uzgadnianiu. Domyślny jawny port FTPS to 21. Domyślny niejawny port to 990 (po uzgadnianiu automatycznie przełączy się na 989 w celu transmisji danych, jeśli nie zostanie skonfigurowany inaczej). Podczas gdy port 21 jest ogólnie akceptowany jako EXPLICIT FTPS, a 990 jako IMPLICIT FTPS, w rzeczywistości dowolny port, który skonfigurujesz, z wyjątkiem 990/989, doprowadzi do EXPLICIT FTPS, a TYLKO 990/989 zostanie zaakceptowany jako IMPLICIT FTPS.

Tak więc, aby odpowiedzieć na twoje pytanie: - w zależności od konfiguracji serwera FTPS, musisz otworzyć port 21 lub 990/989. Jednak dla pewności powinieneś skontaktować się z administratorem serwera FTPS i zapytać o drogę. Pamiętaj również, że w trybie pasywnym, podobnie jak w przypadku każdego innego oprogramowania FTP, będziesz musiał otworzyć dodatkowe porty (TCP / UDP), zwykle coś z zakresu 64000-65000.

Marin
źródło
2

Zasadniczo ftps jest prawie bezużyteczny, ponieważ musisz składać żenujące żądania administratorom zapory. Porada dotycząca ograniczenia portów do 10 jest dobra. Co więcej, robi się żałosny.

sftp jest znacznie lepszy w teorii. Ale potrzebujesz wydajnego serwera sftp, np. Takiego, który ogranicza klientów do własnego katalogu domowego.

W zależności od aplikacji rozważ HTTPS. Przesyłanie pliku jest naprawdę proste, a pobieranie oczywiście jest również. Jeśli i tak skryptujesz FTP, prawdopodobnie łatwiej będzie napisać skrypt do przesłania pliku HTTPS.

Zautomatyzowany FTP jest oznaką problemu projektowego. Zauważyłem to, gdy miałem do czynienia z około tuzinem dostawców, którzy „wymagali” miejsca, w którym pracowałem, aby zrobić automatyczny FTP (dla BARDZO ważnych rzeczy), a kiedy zmuszałem dziesiątki klientów, aby robili to w tym samym sklepie (błąd projektowy dla około 20 różnych zastosowań, których byłem świadkiem). Łatwo było przekonać większość osób korzystających z aplikacji do korzystania z HTTPS (zwykle na ten temat powiedzieli: „czekaj, nie ma powodu, dla którego nie mamy ich po prostu dzięki HTTPS z serwera internetowego, na którym już obsługujemy dane?” ), z wyjątkiem kilku, które udzieliły odpowiedzi typu „no cóż, mamy już te skrypty, które wydają się działać, i nikt w naszym zespole nie jest naprawdę dobry w skryptach, więc nie możemy naprawdę wprowadzać żadnych zmian” (zespół 5-10 programistów,

Carlito
źródło
1

Dostawca może skonfigurować wąski zakres portów dla portów połączeń DATA, jeśli jeszcze tego nie zrobił. Następnie możesz otworzyć ten sam zakres dla swoich hostów, które potrzebują takiego dostępu. Należy użyć trybu PASV.

Chris W. Rea
źródło
-1

Port 22 jest standardem, ponieważ demon SSH w systemie UNIX ma moduł SFTP, który umożliwia włączenie tworzenia jawnego serwera SFTP. Jeśli chcesz uruchomić niejawny serwer FTP z Filezillą, możesz uruchomić go na dowolnym porcie, ale istnieje pewien haczyk: jeśli używasz klienta FileZilla, musisz podać adres URL strony ftp jako ftps: //mysite.com: 8086 zamiast umieszczania portu w oddzielnym polu portu udostępnianym przez klienta FileZilla.

W przypadku opcji jawnej potrzebny jest tylko JEDEN port: 22. W przypadku opcji niejawnej wystarczy mieć zaporę otwartą dla portu kontrolnego: 8086 (który przekazuje wewnętrznie do portu 21 na serwerze filezilla).

djangofan
źródło
6
Pytanie o FTPS, a nie SFTP.
Michael Lang
-7

jeśli ftps jest taki sam jak sftp , to musisz mieć dostęp tylko do portu 22 w witrynie producenta.

Na swoim końcu powinieneś skonfigurować zaporę ogniową, aby zezwalała na port wychodzący 22 i związany z nim ruch przychodzący . Umożliwi to komunikację na dowolnym porcie wejściowym, który jest powiązany z początkowym połączeniem wychodzącym na porcie 22.

Brent
źródło
11
SFTP to nie to samo co ftps ( codeguru.com/csharp/.net/net_general/internet/article.php/… ). SFTP to protokół przesyłania plików używany z SSH. FTPS to FTP z SSL, FTPS uruchamia nowe połączenie DATA na nowym losowym porcie, co utrudnia wdrożenie za zaporami ogniowymi, ale w tej sytuacji nie mogę usunąć zapory.
2
Przepraszam więc Zostawię ten post, na wypadek, gdyby inni mieli takie samo zamieszanie.
Brent
To bardzo powszechne zamieszanie. Od strony zapory sftp jest znacznie łatwiejszy do zaakceptowania, z wyjątkiem tego, że jest zbudowany na protokole przeznaczonym do logowania. Zaniedbanie ze strony niezależnych grup zabezpieczeń w celu umożliwienia bez znaczącej niezależnej weryfikacji. Sysadminom trudno jest znaleźć / skonfigurować rozsądny serwer sftp dla niezaufanych klientów. Każda dyskusja na temat sftp lub ftps musi zawierać wzmiankę o innym protokole, ponieważ zamieszanie jest TAK powszechne.
carlito