FTP (File Transfer Protocol) és un dels protocols més antics d'Internet (primera proposta és de l'abril de 1971). L'objectiu d'aquest protocol és l'intercanvi (transferència) de fitxers entre ordinadors. Cal tenir en compte que en aquella època la seguretat no era una de les preocupacions i, per tant, el servei FTP és un servei que podem calificar com a insegur. Per a inseguretat entenem que qualsevol que estigui "escoltant" el canal podrà accedir a la informació que s'envia a través de FTP: la informació s'envia pel canal sense cap mena d'encriptació. Hi ha vàries solucions per a resoldre aquest problema:
- Utilitzar un canal segur (xifrat) per a la transferència de la informació.
- Utilitzar SFTP (Secure File Transfer Protocol)
Usos FTP
El servei FTP ha de preveure la càrrega i la baixada massiva de fitxers entre diversos ordinadors. Parlem de càrrega quan un arxiu es puja o es copia des d'una màquina client a una màquina servidor FTP. La baixada d'un fitxer és el procés invers: la còpia d'un fitxer des del servidor FTP a un client.
- Compartir fitxers amb altres usuaris
- Descarregar fitxers d'Internet: instal·lació aplicacions , modificacions del sistema (updates), ...
- Càrrega de fitxers a servidors web.
- Descàrrega de fitxers de servidors web
Per a compartir arxius hi ha vàries possibilitats com són solucions cloud... El problema del cloud és la confiança implicita entre el proveïdor de cloud i el client. Una altra opció per és utilitzar carpetes compartides, tot i que aquestes són només una bona solució a nivell de xarxa local. Si volem compartir fitxers en els nostres servidors, una de les solucions més viables és la implantació d'un servei de transferència de fitxers.
Els punts 3 i 4 són un dels casos més clars de l'utilització FTP pels desenvolupadors de plana web. El procés de desenvolupament de planes web implica una sèrie de passes on interve l'aplicació del protocol FTP
- Descàrrega en local de tota l'aplicació web que es vol modificar. Podem optar per a descarregar totes les carpetes o descarregar algunes carpetes de forma selectiva. Utilitzarem el servei FTP per a fer la descàrrega.
- Modificació en local de les diferents planes web.
- Càrrega a un servidor de proves utilitzant el servei FTP.
- Si els canvis realitzats són correctes, caldrà carregar, utilitzant FTP, els fitxers modificats al servidor Web en producció.
Característiques del servei FTP
Fiabilitat: la transmissió dels fitxers es fa de forma fiable independentment del canal de comunicació i de les característiques del mateix. El fitxer enviat i rebut són idèntics.
Autenticació: es poden establir mecanismes que limitin tant la càrrega com la descàrrega de fitxers a només aquells usuaris que tinguin l'autorització. El mecanisme d'autentificació és a través d'usuari i mot clau.
Autenticació anònima: en el cas que es vulgui montar un servidor FTP públic el servei FTP permet la connexió de forma anònima utilitzant dos usuaris predefinits: ftp o anonymous. En realitat es tracta del mateix usuari amb dos nom diferents. Tot i que el sistema sol·liciti una mot clau per a accedir al servei FTP no es realitza cap comprovació del mateix.
Transferència bidireccional de fitxers: Possibilitat d'enviar i rebre fitxers entre equips amb sistemes operatius diferents i joc de caràcters també diferents.
Transferència de fitxers segura: la versió SFTP (Secure File Transfer Protocol) del protocol FTP incorpora xifratge de les dades garantint d'aquesta forma la confidencialitat de la informació.
Arquitectura servei FTP
L'arquitectura del servei FTP és una arquitectura client i servidor. L'arquitectura client-servidor implica, com el seu nom designa, una funcionalitat a nivell de servidor i una funcionalitat a nivell de client. La comunicació comença sempre en la màquina o màquines clients que fan una petició a la màquina o màquines servidor. El serveix contesta a aquesta petició segons la seva configuració.
El protocol FTP a nivell d'estructura és molt similar al protocol TCP/IP. També es defineixen una sèrie de nivells cada un amb una determinada funció. Les capes definides es comuniquen amb la capa immediatament superior i inferior. Els nivells que tenen una equivalència entre client i servidor també es comuniquen de forma lògica entre ells.
Nivells servei FTP
En la imatge superior podem veure com el protocol FTP defineix uns nivells diferents a nivell de client i de servidor.
Interfície d'usuari (User interface)
El nivell d'interfície d'usuari és la que defineix com interacturarà l'usuari amb el servei FTP. La interfície a nivell de FTP pot ser de 2 tipus:
- Interfície gràfica
- Interfície consola
El protocol FTP incorpora una sèrie d'instruccions que ens permeten interactuar amb el servidor FTP. La interfície de consola és útil quan:
- L'ordinador des d'on es vol accedir als fitxers no incorpora una interfície gràfica.
- Quan es volen automatitzar certes feines repetitives.
Transferència de dades
El procés de transferència de dades s'encarrega de l'accés al sistema de fitxers per a enviar o rebre les dades implicades en transmissió.
Intèrpret de protocol (IP)
L'intèrpret de protòcol és l'encarregat d'executar les instruccions que s'envien des del client al servidor. Així, per exemple, quan un usuari s'autentifica en el sistema FTP aquesta operació es fa a la capa d'Interpretació de procotocol. Aquesta capa interactua amb la capa de transferència de dades per a gestionar la recepció o transferència de dades.
Ports servei FTP
El servei FTP incorpora TCP (Transport Code Protocol) per a la transmissió de la informació. Utilitza dos ports de comunicació el port 20 i el 21. Cada un d'aquests ports s'utilitza amb un propòsit específic:
Port 21: port utilitzat per a enviar les instruccions del client al servidor. Aquest és el port per defecte de la capa intèrpret de protocol.
Port 20: canal que s'estableix entre el client i el servidor per a transmetre tota la informació del fitxer. Per tant, totes les dades que conformen el fitxer s'envien per defecte a través d'aquest port.
FTP mode passiu i actiu
Segons com s'estableixi la transferència de dades podem diferenciar entre un servidor FTP passiu o un servidor FTP actiu. Per entendre la diferència entre FTP passiu i actiu cal entendre bé el funcionament de la negociació i transmissió de dades del protocol FTP.
FTP mode actiu
En tota comunicació client / servidor hi ha implicats 2 ports diferents: el port d'origen i el port de destí. El port d'origen és el port a partir del qual s'estableix la comunicació, per tant, és el port que utilitza el client per a establir la comunicació.
El client sempre inicia la comunicació utilitzant un port aleatori superior a 1023 (a partir de 1023 són els ports no privilegiats).
La comunicació té com a port de destí el port 21, que és el port utilitzat pel servei FTP per a interpretar les comandes. Quan s'utilitza el mode actiu, el client envia la petició de comunicació amb la comanda PORT indicant quin port està escoltant per a la recepció de les dades. El port en el qual es rebran les dades és sempre el port que s'ha utlitzat per a establir la comunicació incrementat en una unitat. Així, per exemple, si el client ha establert la comunicació utilitzant el port aleatori 1029 enviarà la comanda 'PORT 1030' (port origen+1) al servidor FTP. D'aquesta forma el client indica al servidor que vol rebre les dades en el port 1030.
El problema del mode actiu és justament que l'inici de la transmissió de dades és des del servidor. El tallafocs del client tracta la comunicació com a una intrussió ja que s'està establint la comunicació des d'un equip extern i no reconeix aquesta comunicació: no l'ha iniciat el client.
El mètode actiu és un problema quan es vol arribar a un gran número de clients. Per exemple, si es vol montar un servidor FTP públic. Donat que el problema està en el client, la resolució del mateix és complex quan es parla de sistemes grans.
FTP mode passiu
La principal diferència entre el mode actiu i el mode passiu s'estableix en què totes les comunicacions s'inicien en el client, evitant problemes d'aquesta forma en la configuració de tallafocs del client.
El problema amb el mode passiu és que el servidor reb una petició a un port "aleatori" i, per tant, el tallafocs pot considerar aquesta comunicació com a una comunicació desconeguda. Per a solventar aquest problema la configuració passiva d'alguns servidors FTP permeten establir un rang de ports a utilitzar per a la transferència de dades. D'aquesta forma, l'administrador del sistema pot permetre la connexió a aquests ports "coneguts".
Per tal que la comunicació en mode passiu sigui possible és necessari que el client i el servidor permetin aquest mode.
Client FTP
En el moment de triar per un client FTP disposem de dues opcions: client gràfic o client en mode comandes. L'avantatge del client en mode comandes és que es poden fer petites aplicacions per automatitzar determinades tasques. La desavantatge del client FTP en mode consola és que cal saber les comandes i les opcions associades a les mateixes.
- close : tanca la sessió oberta amb el servidor FTP
- lcd : mostra el directori actual de la màquina client
- get : serveix per a descarregar un arxiu del servidor al client
- mget : serveix per a descarregar múltiples arxius a la vegada del servidor al client. Podem utilitzar símbol "*" per a especificar un conjunt de 0 o més caràcters i el símbol "?" per a especificar 0 o 1 caràcter.
- mput : serveix per a carregar múltiples arxius a la vegada al servidor. Podem utilitzar símbol "*" per a especificar un conjunt de 0 o més caràcters i el símbol "?" per a especificar 0 o 1 caràcter.
- open : utilitzem open IP o open nomServidorFTP per obrir una connexió amb el servidor FTP
- put : serveix per a carregar un arxiu al servidor
- pwd : mostra el directori actual de la màquina servidor
- user : utilitzem user nomUsuari per autentificar-nos al servidor FTP amb un usuari determinat.
Video: Comandes FTP
Servei ftp de Linux Proftpd
En Linux hi ha moltes opcions en l'elecció d'un servei FTP. En aquest cas s'ha triat el software: ProFTP (Professional FTP). Tots els programes apliquen la mateixa filosofia: la configuració d'un o varis fitxers per a determinar el comportament que es vol tenir del servei FTP.