You are on page 1of 9

Linux Networks Servers

FTP
O protocolo FTP ( File Transfer Protocol ) um protocolo para transferncias
de arquivos amplamente utilizado na internet devido a sua facilidade de
implementao e simplicidade de uso. Durante este captulo, iremos comentar
sobre particularidades do protocolo FTP, formas de utilizao e
implementao de um servidor FTP em Gnu/Linux.
O protocolo FTP foi desenvolvido para ser verstil, confivel e rpido, o que
fez com este sistema de transferncia de arquivos desenvolvido antes da pilha
TCP/IP se tornasse padro de tecnologia, sendo posteriormente adaptado para
se adaptar aos padres de redes existentes hoje. Para que a transferncia seja
efetuada, necessrio que o cliente FTP estabelea uma sesso com o
servidor, que pode ser em modo Ativo ou Passivo.

Linux Networks Servers

No modo Ativo os comandos so enviados normalmente pelo cliente e


recebidos na porta 21/tcp do servidor. Quando h transferncias de arquivos,
o cliente solicita uma conexo na porta 20/tcp do servidor, e ento, a
transferncia ocorre. Neste modo, um firewall mal configurado pode dar uma
falsa sensao de funcionamento do FTP, pois a conexo e os comandos FTP
funcionaro normalmente, porm, na hora da transferncia de arquivos,
ocorrer uma falha de desconexo ou time out, dependendo do tipo de
servidor.
2

Linux Networks Servers


Para contornar este problema, foi desenvolvido o modo de configurao
Passivo. Neste modo, o cliente solicita ao servidor que o mesmo inicie a
transmisso em modo passivo. Deste modo tanto o servidor quanto o cliente
trabalharo em portas altas durante a transferncia de arquivos, contornando
assim o problema do firewall mal configurado.

Lembre-se: Todos os comandos sero recebidos pelo servidor na


porta 21/tcp. Os modos ativo e passivo refere-se a transferncia de
arquivos.

Instalao e configurao do VSFTPD


O VSFTPD (Very Secure File Transfer Protocol Daemon), a escolha de
empresas como Red Hat, IBM e Novell (SUSE Linux) quando o assunto
servidores de FTP confiveis e seguros. Inclusive, o projeto OpenBSD utiliza o
VSFTPD como servidor FTP da distribuio, logo, podemos considerar este
software como bem qualificado em termos de segurana de cdigo. Apesar de
alguns Administradores apontarem o VSFTPD como carente em termos de
documentao, todos os seus parmetros podem ser encontrados em sua man
page, o que facilita o processo de configurao.

Alm do VSFTPD, existem, para Gnu/Linux o proftpd e o wu-ftpd, que


no sero abordados neste treinamento.
Para instalar o vsftpd, execute o comando abaixo:
#aptitudeinstallvsftpd

Linux Networks Servers


Aps instalar, vamos abrir o arquivo de configurao localizado em /etc/vsftpd
e ento comentar sobre suas configuraes padro:
#vim/etc/vsftpd
Localizeasconfiguraesqueseguemabaixo:
PermitequeoVSFTPDfuncioneemmododaemon
listen=Yes
PermiteautilizaooFTPcomousurioanonymous
anonymous_enable=Yes
Permiteaexibiodemensagensaosusurios
dirmessage_enable=Yes
Ativaoslogsparadownloadseuploads
xferlog_enable=Yes
UtilizaaportaFTPDATAparatransfernciadearquivos
connect_from_port_20=Yes

As opes anonymous_enable e xferlog_enable podem cair na prova


LPI.

Vamos agora, efetuar o teste no nosso servidor para verificar seu


funcionamento:
#ftplocalhost

Linux Networks Servers


Faa login com o usurio anonymous e utilize qualquer string como senha:
Connectedtolocalhost.
220(vsFTPd2.0.7)
Name(localhost:root):anonymous
Aps conectar ao servidor FTP, ele exibira um prompt semelhante ao abaixo:
230Loginsuccessful.
RemotesystemtypeisUNIX.
Usingbinarymodetotransferfiles.
ftp>
Note que existe um prompt de comandos onde ser possvel enviar comandos
ao servidor. A partir de agora, os comandos a serem feitos dentro do servido
FTP sero exibidos na forma abaixo:
ftp>comando
Para sair do FTP, utilize o comando quit:
ftp>quit

Linux Networks Servers


Por padro, o VSFTPD no permite o upload de arquivos pelo usurio
anonimo. Alm disso, o VSFTP tambm no permite que o usurio anonimo
navegue pela arvore de diretrios, reforando assim a segurana local do
servidor.
O usurio anonimo est limitado, atravs de um sistema chroot, ao diretrio
/home/ftp, logo, todo arquivo deve a ser disponibilizado publicamente deve
estar neste diretrio. Vamos realizar um teste colocando um arquivo qualquer
dentro deste diretrio, e ento, iremos realizar o download:
#cp/boot/vmlinuz2.6.262686
Efetue o download do arquivo. Para isso, logue-se no ftp como usurio
anonimo e ento efetue o download.
ftp>getvmlinuz2.6.262686
Depois de efetuar o download, verifique o contedo dos logs:
#cat/var/log/vsftpd.log
WedMay2718:15:042009[pid23194][ftp]OKDOWNLOAD:Client
"127.0.0.1","/vmlinuz2.6.262686",1505680bytes,
216488.61Kbyte/sec

Habilitando o uso para usurios do sistema


interessante liberar-mos o acesso no nosso servidor mediante usurio e
senha para usurios cadastrados no sistema operacional, assim, o usurio
poder enviar e baixar arquivos localizados no sistema operacional.

Linux Networks Servers


Vamos configurar a varivel responsvel por esta liberao dentro do arquivo /
etc/vsftpd.conf:
#vim/etc/vsftpd.conf
Habiliteavarivelabaixo:
local_enable=Yes
Descomenteavarivelquepermiteouploadparaosusurios:
write_enable=Yes
J que iremos liberar a navegao para usurios registrados, importante que
eles tenham cincia dos termos de uso do nosso servidor. Porque no mostrar
isso a eles logo aps o login?
Crie o arquivo /home/aluno/.message e coloque a mensagem abaixo:
#vim/home/aluno/.message
##EstesistemaparausoexclusivodaempresaXPTO.
##
##Todasasatividadesseroregistradas.

##
##vetadaautilizaodestesistemaparatransfernciade
##
##arquivosprotegidosporqualquerleidedireitoautoral##
##ouarquivosqueinfrinjamalegislaovigente.
##
Aps escrever a mensagem, salve o arquivo e reinicie o servio FTP:
#invokerc.dvsftpdrestart
Faa o login e visualize a mensagem.
7

Linux Networks Servers


Trabalhando com o cliente FTP
Existem centenas de clientes FTP para praticamente todos os sistemas
operacionais existentes no mercado. Neste captulo, abordaremos o uso do
cliente ftp linha de comando disponvel em ambientes Gnu/Linux.
Para prosseguir com nossos testes, copie diversos arquivos para o diretrio
/home/aluno, e mude suas permisses:# cp -R /etc/* /home/aluno
#chownRaluno:aluno/home/aluno
Para realizar o download de um arquivo, utilize o comando get, aps conectarse ao FTP:
ftp>getpasswd
Para trocar de diretrios dentro do servidor, utilize o comando cd:
ftp>cdapt
Para realizar o upload, utilize o comando put:
ftp>putpasswd
Para listar o contedo de um diretrio, utilize o comando ls:
ftp>ls
Para listar os diretrios locais, utilize o comando !ls:
ftp>!ls
Para voltar um diretrio, utilize o comando cd..
8

Linux Networks Servers


ftp>cd..
Para mudar de diretrio na mquina cliente, utilize o lcd:
ftp>lcd/tmp
Para realizar mltiplos downloads, utilize o mget:
ftp>mget*
Para uma lista completa de comandos, utilize o help:
ftp>help

You might also like