Blogul lui - Ftp și nat, gamelton

File Transfer Protocol, primul standardizate la începutul anilor 1970, se referă la protocoalele de strat de aplicație și de transmitere a datelor utilizează protocolul de transport TCP. FTP a fost dezvoltat la un moment în care clienții și serverele interacționează unele cu altele în mod direct, fără intermediari și cu un minim de obstacole.







Probleme FTP în rețelele de astăzi

În rețelele de astăzi (NAT, firewall, de încărcare) echilibrist, următoarele caracteristici ale FTP nu permite să funcționeze în mod corespunzător:

Problema 1 este cauzată de faptul că dispozitivul de rutare sau echilibrist trebuie să mențină două conexiuni între aceeași sursă și receptor.

Problema 2 se produce deoarece FTP nu poate funcționa dacă porturile de intrare sunt extrem de limitate numai cu siguranta cunoscute. Ie în modul FTP convențional nu poate funcționa numai în partea deschisă portul 21, un compus utilizat pentru a transmite comenzi, aceasta necesită, de asemenea, un set de valoare mare (49,152-65,534) porturi deschise pentru transmisia de date.

Problema 5 este cauzată de dispozitivul de rutare poate întrerupe „agățate“ de conexiune pentru transferul comenzilor.

Două moduri de transfer de date în FTP

FTP suportă două moduri: active și pasive. Acestea diferă în mecanismul de stabilire a unei conexiuni pentru transfer de date:

  • În modul activ, serverul este conectat cu portul 20 pentru un port client specificat.
  • În modul pasiv, clientul se conectează cu un port aleator pe portul server specificat.

Astfel, toate moderne FTP-client este discutat cu serverul, de la care se transferă datele și care inițiază o conexiune. Clientul poate specifica utilizarea modului activ. trimiterea unei comenzi de «PORT», care spune serverul pe care doriți să vă conectați la un IP și portul specific al clientului, și începe trimiterea de date. Sau clientul poate folosi modul pasiv. Trimite comanda serverul „PASV“, care spune serverul pe care clientul se așteaptă ca IP și portul server pentru a începe să primiți date.

Deoarece clientul se conectează inițial la server pentru a stabili o conexiune pentru transmiterea comenzilor, ar fi logic dacă conexiunea de date este stabilit ca un client, și anume, Am trimis comanda PASV (în același timp, eliminând problemele dintre FTP și firewall). Cu toate acestea, acest lucru nu este cazul, creatorii caietului de sarcini FTP pentru un motiv oarecare a decis că modul preferat să fie PORT, PASV și sprijinul pe partea de client, chiar inutile.

FTP suportă accesul prin conectare și parola, dar nu este sigur, deoarece acestea sunt transmise în text simplu. Când se folosește un browser web, puteți trece direct în URL-ul.







sesiuni de exemplu, folosind moduri active și pasive de transmitere a datelor

Probleme private:

Mod PORT - client FTP este in spatele unui NAT sau un firewall

Soluție 1. client FTP trebuie să fie configurat pentru a utiliza modul pasiv.

Mod PASV - server FTP în spatele unui firewall

Atunci când un server FTP este in spatele unui firewall, clienții vor experimenta probleme folosind modul pasiv pentru a se conecta la serverul FTP portul efemer. Cea mai frecventă problemă atunci când firewall-ul din spatele care serverul FTP permite doar conexiuni de la un număr de porturi bine-cunoscute și blocuri altele.

Soluția 1: Administratorul poate deschide un grup de porturi pe firewall, prin care se poate produce conexiunea la serverul FTP.

Soluția 2: Dacă aveți sprijinul firewall, administratorul poate fi configurat astfel încât porturile sunt deschise în mod automat pentru a stabili o conexiune pasivă la serverul FTP. Această setare este similară cu cea descrisă pentru clienții activi situate în spatele NAT. Astfel, atunci când firewall-ul monitorizează răspunsul serverului FTP la cererea clientului pasiv, acesta se deschide temporar portul specificat în răspunsul, și numai pentru perioada de anchetă, din care a venit o cerere pasivă.

Mod PASV - server FTP în spatele NAT

Mod PASV - server FTP în spatele unui balansier de încărcare

Problemă de nerezolvat - firewall-uri la ambele capete

În cazul în care clientul și serverul sunt două în spatele firewall-uri care limitează toate conexiunile de intrare, cu excepția grupurilor de porturi cunoscute, problemele încep. Clientul nu se poate utiliza modul activ, deoarece serverul nu se poate conecta la acesta, și nu se poate folosi modul pasiv, deoarece în imposibilitatea de a se conecta la serverul FTP.
În acest caz, trebuie să modificați setările de firewall și mai bine să-l facă pe partea de server.

server FTP pe un port nestandard

Unele dispozitive de rutare sunt capabile de manipulare sesiune FTP numai în cazul în care se ajunge la un port de server standard de. Prin urmare, în cazul în care serverul FTP ascultă pe un port non-standard, trebuie să configurați dispozitivul de rutare, astfel încât acesta știa că acest port se află serverul FTP și manipula în mod corect conexiunea.

Dar chiar și în acest caz, firewall-ul de pe partea de client poate preveni. Acest lucru poate să apară în cazul în care partea client paravan de protecție necesită în mod rigid conexiunea de date FTP de la serverul FTP provenit de la portul 20 (în modul activ). Dacă serverul FTP rulează pe portul N, atunci specificația FTP de conexiunea de date vor proveni de la portul N - 1 și blocate de un client paravan de protecție.

Problemele cauzate de firewall-uri aborts sesiune FTP

Această problemă apare cel mai frecvent atunci când transferul de fișiere de dimensiuni mari. Atunci când parametrii de conectare convenite, iar transferul a început, conexiunea pentru a trimite comenzi pentru a începe în așteptare până la transferul de fișiere este completă. Dacă dispozitivul de rutare nu știe despre FTP, și transferul de fișiere va dura mai mult timp decât activitatea de conectare contra pe ea, conexiunea în ceea ce privește dispozitivul de rutare să depășească așteptările de timp și va fi finalizat, iar pachetele primite sunt retrase.

Soluția la această problemă este un dispozitiv care acceptă conexiunea pentru a trimite comenzi la starea activă, chiar dacă aceasta nu este o lungă perioadă de timp pentru a transmite pachete de pe ea. O altă opțiune - Activați funcția „Keep Alive“ în protocolul stiva TCP / IP pe partea de client sau serverul care trimite pachetul pentru a verifica disponibilitatea la intervale regulate, iar în cazul în care partidul de destinație nu răspunde - se închide în mod normal, conexiunea. În cazul în care primesc răspunsurile de partid, conexiunea de pe partea laterală a firewall-ul este întotdeauna activ.