br>::jseblod::article::/jseblod::
::panel_article:: ::/panel_article::
::wysiwyg_introtext::
A transferência de ficheiros está entre as aplicações TCP/IP mais frequentemente utilizadas e é responsável por uma grande parte do tráfego de rede na Internet. Vários protocolos padrão de transferência de ficheiros existiam mesmo antes de a Internet estar disponível para todos e foram estas primeiras versões do software de transferência de ficheiros que ajudaram a criar o padrão actual conhecido como o File Transfer Protocol (FTP). As especificações mais recentes do protocolo estão listadas no RFC 959.
::/wysiwyg_introtext::
::my_readmore:: ::/my_readmore::
::wysiwyg_fulltext::
O Protocolo
FTP utiliza TCP como protocolo de transporte. Isto significa que o FTP herda a robustez do TCP e é muito fiável para a transferência de ficheiros. É provável que, se descarregar ficheiros, já tenha utilizado ftp algumas centenas de vezes sem se aperceber! E se tiver uma enorme colecção warez, então faça isso umas duas mil vezes 🙂
A imagem abaixo mostra onde o FTP está em contraste com o modelo OSI. Como tenho notado noutras secções, é importante compreender o conceito do modelo OSI, porque isso também o ajudará muito a compreender tudo isto:)
Agora, mencionámos que o FTP utiliza o TCP como transporte, mas não dissemos quais as portas que utiliza! Os números 21 e 20 das portas são utilizados para FTP. A porta 21 é utilizada para estabelecer a ligação entre os 2 computadores (ou anfitriões) e a porta 20 para transferir dados (através do canal Data).
Mas há alguns casos em que a porta 21 é utilizada para ambos, estabelecendo uma ligação e transferência de dados e analisá-los-ei em breve.
A melhor coisa que pode fazer para “ver” é pegar num “sniffer” de pacotes que encontrará convenientemente na nossa secção de download e tentar capturar alguns pacotes enquanto estiver a ftp’ing para um site.
>/p>
br>>/p>
br>>
>/p>
br>>/p>
br>>>/p>
Both Portos – 20 e 21 – Active FTP Mode
Incluí uma imagem de ecrã da minha estação de trabalho que mostra claramente as 2 portas utilizadas. No exemplo, tenho ftp’ed em ftp.cdrom.com. Por favor clique aqui para ver a imagem completa
>/p>
Apenas a Porta 21 – Modo FTP Passivo
Agora, na próxima imagem, eu instalei no meu servidor NetWare aqui em casa e adivinhe o que …. Só foi utilizada a Porta 21 ! Aqui está a imagem do ecrã:
Por favor clique aqui para ver a imagem completa.
Deixe-me explicar porque é que isto está a acontecer:
FTP tem dois modos de operação separados: Activo e Passivo. Irá utilizar qualquer um deles dependendo se o seu PC está por detrás de uma firewall.
br>>>>
Active Mode FTP
Active mode is usually used when there is not any firewall between you and the FTP server. Nesses casos, tem uma ligação directa à Internet. Quando você (o cliente) tenta estabelecer uma ligação a um servidor FTP, a sua estação de trabalho inclui um segundo número de porta (usando o comando PORT) que é usado quando se pretende trocar dados, este é conhecido como o Canal de Dados.
O servidor FTP inicia então a troca de dados da sua própria porta 20 para qualquer porta que tenha sido designada pela sua estação de trabalho (no ecrã, a minha estação de trabalho utilizou a porta 1086), e como o servidor iniciou a comunicação, não é controlada pelo cliente da estação de trabalho. Isto também pode potencialmente permitir que dados não convidados cheguem ao seu computador a partir de qualquer lugar que se apresente como uma transferência FTP normal. Esta é uma das razões porque o FTP passivo é mais seguro.
br>>
Passive Mode FTP
Usando FTP normal ou passivo, um cliente inicia uma sessão enviando um pedido para comunicar através da porta TCP 21, a porta que é convencionalmente atribuída para esta utilização no servidor FTP. Esta comunicação é conhecida como a ligação do Canal de Controlo.
Neste ponto, é enviado um comando PASV em vez de um comando PORT. Em vez de especificar uma porta para a qual o servidor pode enviar, o comando PASV pede ao servidor para especificar uma porta que deseja utilizar para a ligação do Canal de Dados. O servidor responde no Canal de Controlo com o número da porta que o cliente utiliza então para iniciar uma troca no Canal de Dados. O servidor responderá assim sempre aos pedidos iniciados pelo cliente no Canal de Dados e a firewall pode correlacioná-los.
É simples configurar o programa FTP do cliente para utilizar o FTP Activo ou Passivo. Por exemplo, em Cute FTP, pode configurar o seu programa para utilizar o FTP Passivo indo a FTP–> Settings –> Options e depois seleccionar o separador “Firewall” :
Se remover as opções acima, então a sua estação de trabalho estará a utilizar (se possível) o modo FTP Activo, e eu digo “se possível” porque se já estiver por detrás de uma firewall, provavelmente não há maneira de utilizar o FTP Activo, pelo que o programa mudará automaticamente para o modo FTP Passivo.
Então vamos ver o processo de um computador estabelecer uma ligação FTP com um servidor: .
……..
O acima exposto assume uma ligação directa ao servidor FTP. Por razões de simplicidade, estamos a olhar para a forma como a ligação FTP é criada e não se preocupa se for uma ligação FTP Passiva ou Activa. Uma vez que o FTP está a utilizar TCP como transporte, seria de esperar ver o aperto de mão de 3 vias. Uma vez completada e estabelecida a ligação de dados, o cliente enviará o seu nome de login e depois a sua palavra-passe. Após a sequência de autenticação estar concluída e o utilizador ser autenticado no Servidor, é-lhe permitido o acesso e está pronto para lixiviar o sítio a seco:)
Finalmente, abaixo estão os comandos FTP mais utilizados:
ABOR: abortar comando FTP anterior
LIST e NLST: list file and directories
DELE: apagar um ficheiro
RMD: remover um directório
MKD: criar um directório
PWD: imprimir directório de trabalho actual ( mostrar qual dir. o seu at)
PASS: enviar senha
PORT: solicitar número de porta aberta em endereço IP/ número de porta específico
QUIT: log off do servidor
RETR: recuperar ficheiro
STOR: enviar ou colocar ficheiro
SYST: tipo de sistema de identidade
TYPE: especificar tipo (A para ASCII, I para binário)
USER: enviar username
E que quase completa é a nossa análise sobre o protocolo FTP !