Sistem de ftp-nat
FTP (File Transfer Protocol - File Transfer Protocol). FTP este un protocol de nivel înalt, și anume, stratul de aplicare (stratul 7 al modelului OSI). Serviciul FTP este construit pe binecunoscutul sistem de „client-server“, care permite utilizatorului să trimită / primi fișiere de pe un server de la distanță.
Clientul trimite cereri către server și primește fișiere. Pe măsură ce clienții pot utiliza - Internet Explorer, Windows Commander, NetVampir, gFTP etc.
Serverul de cererile clientilor de fișier. Serverele pot fi folosite ca - vsftpd, IIS, wuftpd, proftpd etc.
server FTP - un computer care execută programul de server FTP. Site-uri FTP publice sunt de obicei disponibile pentru oricine care a venit sub numele anonim sau ftp. Există mai multe site-uri FTP diferite care au o arhiva de software gratuit pentru Unix.
FTP este diferit de alte aplicații prin aceea că utilizează două conexiuni TCP pentru a transfera un fișier:
Conexiunea de control - conecta pentru a trimite comenzi la server și de a primi răspunsuri de la ea.
Compus Date - conexiune pentru transferul de fișiere.
FTP a fost dezvoltat pentru prima oară la Universitatea din California, pentru a fi incluse în 4.2BSD (Berkeley Unix). Pentru mai multe informații detaliate Vă recomandăm citirea RFC959.
Moduri de operare FTP: activă și pasivă
Atunci când se lucrează la un client FTP și server set doi compuși - controlul (pe ea merge de comandă) și conexiunea de date (se transferă fișierele). Conexiunea de control este la fel de moduri de active și pasive. Clientul inițiază o TCP-conexiune la porturile dinamice (1024-65535), la numărul de port 21 pe serverul FTP și o spune, „Hi! Vreau să se conecteze la tine. Iată numele meu și parola. " Ce se întâmplă în continuare depinde de ceea ce este selectat modul FTP (activ sau pasiv).
În modul activ, atunci când clientul spune „Hi!“ El spune, de asemenea, numărul portului serverului (din intervalul dinamic 1024-65535), astfel încât serverul poate conecta la client pentru a stabili o conexiune pentru transmisia de date. FTP -Server este conectat la un anumit număr de port client folosind numărul său parte TCP-portul 20 pentru transmisia de date.
În modul pasiv, după ce clientul a spus, „Bună!“, Serverul informează numărul de client TCP-portului (din intervalul dinamic 1024-65535), care se poate conecta pentru a seta conexiunea de date. Principala diferență între modul FTP activ și modul FTP pasiv - aceasta este partea care se deschide o conexiune pentru transmisia de date. În modul activ, clientul trebuie să accepte conexiunea de la -Server FTP. În modul pasiv, clientul întotdeauna inițiază conexiunea.
Active FTP „benefice“ pentru -Server FTP, dar „rău“ pentru client. server FTP încearcă să se conecteze cu aleatoare mari (de număr) porturi pe client, această conexiune va fi cu siguranță blocate de un paravan de protecție pe partea de client.
Pasiva FTP „benefice“ pentru client, dar „rău“ pentru -Server FTP. Clientul va face atât conexiuni la server, dar unul dintre ele va fi la un port de mare aleator, conexiunea este probabil să fie blocate de un paravan de protecție pe partea de server.
firewall configurare inițială
Crearea unui set minim de reguli in firewall-ul nostru. Acest exemplu este creat doar pentru a arăta principiul iptables. Pentru mai multă înțelegere în profunzime a iptables recomanda pentru a citi articolul în traducerea lui Oscar Anderson Andrew Kisileva - Iptables Tutorial 1.1.19, care este considerat un clasic.
eth0 - pare la rețeaua locală, eth1 - în căutarea în lume. Acest script (firewall.sh) este convenabil de a folosi stadiul beta-reguli.
După ce totul setat, este mai bine să utilizați instrumente de gestionare a iptables regulate. Pentru aceasta vom folosi un script pentru a salva normele actuale în fișierul. Diferite distribuții set de reguli pot fi păstrate în alte scopuri decât / etc / sysconfig / iptables drum. Această cale este standardul pentru distribuțiile Red Hat Linux și clonele sale, de exemplu CentOS.
Dar, cu aceste setări ftp prin firewall-ul încă nu nat va funcționa. Pentru a facilita sarcina noastră vom folosi un modul special, care a fost proiectat doar pentru acest scop. Modul de încărcare Ip_nat_ftp, care va face toate treburile murdare pentru noi.
Rețineți că, în lanțul eth0-eth1, prin care tot traficul de ieșire, am deschis doar portul 21 și lăsat să treacă pachete la starea LEGAT și constanță. Ftp să lucreze în ambele moduri active și pasive, este nevoie de nimic mai mult, toate celelalte preocupări să ia pe module ip_nat_ftp și ip_conntrack_ftp.
testarea
După ce am încărcat modulul și regulile pot trece direct la testarea. Puteți utiliza clientul FTP favorit și să încerce să se conecteze la orice server FTP. Ca un client, am folosit FTP încorporat client departe, ceea ce permite utilizarea ambelor moduri de active și pasive. Dacă la îndemână nu există nici un client FTP poate folosi întotdeauna construit în client Windows așa cum se arată mai jos.
Pentru claritate, putem vedea cu tcpdump ce se întâmplă atunci când încercați să vă conectați la un server FTP de la distanță.
Ei bine, iată întregul configurare. Pentru fiecare dată când sistemul pornește ip_nat_ftp modulul este încărcat automat nevoie pentru a face mici modificări fișierului / etc / sysconfig / iptables-config.
Apoi, când iptables este repornit sau sistemul în ansamblul său, acest modul va fi încărcat în mod automat și încărcați toate modulele necesare.