material complementar servidor ftp

Upload: alexandre-mendes

Post on 14-Jan-2016

31 views

Category:

Documents


0 download

DESCRIPTION

Servidor FTP

TRANSCRIPT

  • 4452Linux Security Servers in Cloud

    www.4linux.com.br

  • Projetos na sua empresacom a qualidade dos treinamentos

    http://va.mu/FlyBServidor Java EE http://va.mu/Flx3

    GED - ECMhttp://va.mu/Flx8

    Business Inteligence http://va.mu/EuiTBPM

    http://va.mu/EuhVPostgreSQL

    http://va.mu/FlyDIntegrao Continua

    http://va.mu/FNbLAlta Disponibilidadehttp://va.mu/EukN

    Monitoramento

    http://va.mu/FlxiInfraestrutura Webhttp://va.mu/Flxr

    Backuphttp://va.mu/FNYj

    Groupwarehttp://va.mu/FlxlVirtualizao

    http://va.mu/FlxuAuditoria e Anlise http://va.mu/Flxy

    Seguranahttp://va.mu/GcFv

    Implantao garantidahttp://va.mu/FlxcEnsino Distncia

  • Contedo

    Servidor FTP 50.1 Introduo terica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60.2 Comandos em modo texto do FTP . . . . . . . . . . . . . . . . . . . . . 130.3 Configurao do Firewall . . . . . . . . . . . . . . . . . . . . . . . . . 150.4 Cliente grfico para FTP . . . . . . . . . . . . . . . . . . . . . . . . . . 17

    5

  • Servidor FTP

    0.1 Introduo terica

    O FTP (File Transfer Protocol) um protocolo simples para transferncia de ar-quivos. O cliente "FTP"faz uma solicitao ao servidor "FTP", a seo estabelecidae ento solicitado um usurio e senha vlidos no caso de um "FTP"autenticado,ou, caso este servidor permita navegao annima, basta entrar com o usurio"anonymous" e uma senha qualquer.

    Em relao ao modo de conexo do servidor FTP, ele pode atuar como servidorativo ou passivo. No modo ativo, os comandos so enviados por uma porta alta(acima de 1024) pelo cliente e so recebidas pela porta 21 no servidor, enquantoque os dados so transmitidos pelo servidor ao cliente atravs da porta 20.

    Qual a desvantagem do motivo ativo?

    Neste modo, um firewall mal configurado pode dar uma falsa sensao de funciona-mento 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.

    J no modo passivo, os comandos tambm so enviados para o servidor atravsde uma porta alta pelo cliente e so recebidas na porta 21 do servidor. Neste mo-mento, o cliente avisa ao servidor que ele deve utilizar o modo passivo atravs docomando "PASV", e ento os dados sero enviados utilizando portas altas tantopelo cliente quando pelo servidor. Neste caso, no temos mais problemas com o

    6

  • 4Linux www.4linux.com.br 0.1 Introduo terica

    "Firewall"no lado do cliente, porm, temos que habilitar a utilizao de portas altasno servidor, o que pode gerar outros problemas. Felizmente, na configurao doservidor "FTP"podemos especificar o "range"de portas que o servidor deve utilizar,minimizando assim o problema no lado do servidor.

    Modo Ativo

    Modo Passivo

    Linux Security Servers in Cloud Pgina 7

  • 0.1 Introduo terica 4Linux www.4linux.com.br

    O VSFTPD (Very Secure File Transfer Protocol Daemon) a escolha de empre-sas como RedHat, IBM e Novell (SUSE Linux) quando o assunto servidor FTPconfivel e seguro. Inclusive o projeto "OpenBSD"utiliza o "VSFTPD"como servidor"FTP"padro da distribuio. Logo, podemos considerar este software como bemqualificado em termos de segurana de cdigo. Apesar de alguns Administradoresapontarem o "VSFTPD"como carente em termos de documentao, todos os seusparmetros podem ser encontrados em sua "man page", o que facilita o processo deconfigurao.

    Alm do "VSFTPD", existem outros programas de Servidor FTP, paraGnu/Linux, como "proftpd"e o "wu-ftpd", que no sero abordados neste treina-mento.

    Sobre segurana: um dos principais problemas do "FTP" que a maioria dosservidores no implementa criptografia, ento, caso voc deseje um ambiente se-

    Pgina 8 Linux Security Servers in Cloud

  • 4Linux www.4linux.com.br 0.1 Introduo terica

    guro com "FTP", necessrio a implementao de criptografia, como "OpenSSL"ou"TLS".

    Para logar num servidor FTP, temos duas maneiras:

    Tradicional: o servidor aceita conexes por meio de um usurio e senha vlidos,liberando desta forma um prompt de comandos ou mesmo a interface grfica;

    Anonymous: o Servidor FTP com anonymous muito utilizado na Internet pelomotivo de no ser necessrio ter um usurio no servidor. Desta forma, o usurio podeabrir um browser e chamar o endereo ftp://ftp.servidor.com.br para ter acessoao diretrio disponibilizado pelo servio. Geralmente esse diretrio o home dousurio FTP, sendo no Debian em /srv/ftp .

    No nosso servidor FTP vamos desativar o modo Anonymous, pois ele ser usadoapenas pelo Webdesigner pode fazer upload dos arquivos da empresa DEXTER.O usurio root no poder fazer acesso ao servidor FTP. Para esta configurao,iremos utilizar a mquina DMZ.

    Recapitulando...

    A plataforma RedHat utiliza o "vsftpd"por padro.

    Para instalar o vsftpd, instale o pacote utilizando um repositrio que fornece umaverso mais atual para o Debian:

    1 root@dmz :~# echo "deb http ://ftp.cyconet.org/debian wheezy -updates

    main non -free contrib" >> /etc/apt/sources.list.d/wheezy -updates.

    cyconet.list

    2 root@dmz :~# aptitude update

    3 root@dmz :~# aptitude install debian -cyconet -archive -keyring

    Linux Security Servers in Cloud Pgina 9

  • 0.1 Introduo terica 4Linux www.4linux.com.br

    4 root@dmz :~# aptitude update

    5 root@dmz :~# aptitude install -t wheezy -updates debian -cyconet -

    archive -keyring vsftpd

    Aps instalar, vamos abrir o arquivo de configurao /etc/vsftpd.conf e entoalterar alguns parmetros

    1 root@dmz :~# vim /etc/vsftpd.conf

    Localize as configuraes que seguem abaixo e altere as que esto em negrito:

    1 ### Permite que o VSFTPD funcione em modo daemon

    2 listen=Yes

    3

    4 ## Permite a utilizao do FTP com o usurio anonymous

    5 anonymous_enable=No

    6

    7 ## Habilitar a varivel que permite que os usurios do sistema

    possam ## usar o servidor FTP:

    8 local_enable=Yes

    9

    10 ## Varivel que permite o upload para os usurios:

    11 write_enable=Yes

    12

    13 ## Permite a exibio de mensagens aos usurios

    14 dirmessage_enable=Yes

    15

    16 ## Ativa os logs para downloads e uploads

    17 xferlog_enable=Yes

    18

    19 ## Utiliza a porta FTP -DATA para transferncia de arquivos (vamos

    usar ## FTP Ativo)

    20 connect_from_port_20=Yes

    21

    Pgina 10 Linux Security Servers in Cloud

  • 4Linux www.4linux.com.br 0.1 Introduo terica

    22 ## Definindo timeout para sesso e conexo de dados em 2 minutos

    (120 ## segundos)

    23 idle_session_timeout =120

    24 data_connection_timeout =120

    25

    26 ## No permitir que o usurio veja arquivos que no sejam seus

    27 chroot_local_users=YES

    28 allow_writeable_chroot=YES

    As opes "anonymous_enable"e "xferlog_enable"podem cair na prova LPI.

    Adicione um novo usurio, altere o dono e grupo do diretrio /srv/www/dexter e tam-bm defina este como sendo o home do novo usurio, portanto realize as alteraesabaixo:

    1 root@dmz :~# adduser webdesigner

    2 root@dmz :~# gpasswd -a www -data webdesigner

    3 root@dmz :~# chown -R webdesigner \: /srv/www/dexter/

    4 root@dmz :~# chmod -R 775 /srv/www/dexter/

    5 root@dmz :~# usermod -d /srv/www/dexter webdesigner

    6 root@dmz :~# grep web /etc/passwd

    7 webdesigner:x:1001:1001: , , ,:/ srv/www/dexter :/bin/bash

    Confirme as permisses, dono e grupo deste diretrio e...

    1 root@dmz :~# ls -ld /srv/www/dexter

    2 drwxrwxr -x 5 webdesigner webdesigner 4,0K Ago 5 20:13 /srv/www/

    dexter

    Com isso mudamos a permisso de acesso ao diretrio e o diretrio padro do

    Linux Security Servers in Cloud Pgina 11

  • 0.1 Introduo terica 4Linux www.4linux.com.br

    usurio webdesigner. Tambm devemos verificar se o usurio root est bloqueadopara acessar o FTP:

    1 root@dmz :~# grep root /etc/ftpusers

    2 root

    Caso voc queira bloquear mais algum usurio para que ele no acesse o servidorFTP, coloque o nome dele no arquivo!

    Crie o arquivo /srv/www/dexter/.message e coloque a mensagem abaixo:

    1

    2 root@dmz :~# vim /srv/www/dexter /. message

    3 ============================================================

    4 ## Este sistema para uso exclusivo da empresa DEXTER.

    5 ## Todas as atividades sero registradas.

    6 ## vetada a utilizao deste sistema para transferncia de

    7 ## arquivos protegidos por qualquer lei de direito autoral

    8 ## ou arquivos que infrinjam a legislao vigente.

    9 ============================================================

    Aps escrever a mensagem, salve o arquivo e reinicie o servio FTP:

    1 root@dmz :~# service vsftpd restart

    2 Stopping FTP server: vsftpd.

    3 Starting FTP server: vsftpd.

    Verifique em qual porta o servidor "FTP"est escutando:

    1 root@maq -interna :~# netstat -ltupan

    2 tcp 0 0 0.0.0.0:21 0.0.0.0:* OUA 992/

    vsftpd

    Pgina 12 Linux Security Servers in Cloud

  • 4Linux www.4linux.com.br 0.2 Comandos em modo texto do FTP

    Agora vamos fazer alguns testes de acesso ao FTP, mas antes instale os clientesFTP, tanto para o modo texto como para o grfico. Execute na mquina Interna:

    1 root@maq -interna :~# aptitude install ftp

    Concluda a instalao, acesso o FTP pelo modo texto:

    1 root@maq -interna :~# ftp ftp.dexter.com.br

    2 Connected to www.dexter.com.br.

    3 220 (vsFTPd 2.3.2)

    4 Name (ftp.dexter.com.br:root): webdesigner

    5 331 Please specify the password.

    6 Password:

    7 230 -============================================================

    8 230-## Este sistema para uso exclusivo da empresa DEXTER.

    9 230-## Todas as atividades sero registradas.

    10 230-## vetada a utilizao deste sistema para transferncia de

    11 230-## arquivos protegidos por qualquer lei de direito autoral

    12 230-## ou arquivos que infrinjam a legislao vigente.

    13 230 -============================================================

    14 230 Login successful.

    15 Remote system type is UNIX.

    16 Using binary mode to transfer files.

    17 ftp >

    0.2 Comandos em modo texto do FTP

    Os servidores de "FTP"muito raramente mudam, mas novos programas clientes "FTP"aparecemcom bastante regularidade. Estes clientes variam no nmero de comandos que im-plementam. A maioria dos clientes "FTP"comerciais implementam apenas um pe-queno subgrupo desses comandos. Mesmo que o "FTP"seja um protocolo orientado

    Linux Security Servers in Cloud Pgina 13

  • 0.2 Comandos em modo texto do FTP 4Linux www.4linux.com.br

    linha de comandos, a nova gerao dos clientes "FTP"esconde esta orientaonum ambiente grfico muitas vezes bastante desenvolvido.

    As interfaces clientes do "FTP"do "BSD UNIX"e do GNU/Linux possuem muitos co-mandos, alguns deles arcaicos e sem utilidade hoje em dia, como por exemplo o"tenex"e o "carriage control".

    Os comandos listados abaixo podem ser cobrados na prova de certificao.

    Abaixo esto listados alguns dos mais utilizados comandos "FTP":

    1 ## Para saber em qual diretrio se encontra:

    2 ftp > pwd

    3

    4 ## Para saber em qual diretrio se encontra (lado cliente):

    5 ftp > !pwd

    6

    7 ## Para trocar de diretrios dentro do servidor:

    8 ftp > cd

    9

    10 ## Para voltar um diretrio:

    11 ftp > cd ..

    12

    13 ## Para listar o contedo do diretrio atual:

    14 ftp > ls

    15

    16 ## Para listar os diretrios locais (lado cliente):

    17 ftp > !ls

    18

    19 ## Para mudar de diretrio na mquina cliente:

    20 ftp > lcd

    21

    22 ## Para realizar o download de um arquivo:

    23 ftp > get

    Pgina 14 Linux Security Servers in Cloud

  • 4Linux www.4linux.com.br 0.3 Configurao do Firewall

    24

    25 ## Para realizar mltiplos downloads:

    26 ftp > mget *

    27

    28 ## Para realizar o upload de um arquivo:

    29 ftp > put

    30

    31 ## Para realizar mltiplos uploads:

    32 ftp > mput *

    33

    34 ## Para uma lista completa de comandos:

    35 ftp > help

    Para verificar os logs do ftp, execute:

    1 root@dmz :~# cat /var/log/vsftpd.log

    2 Tue Aug 7 22:35:50 2013 [pid 2] CONNECT: Client "192.168.200.10"

    3 Tue Aug 7 22:35:56 2013 [pid 1] [webdesigner] OK LOGIN: Client "

    192.168.200.10"

    4 Tue Aug 7 22:36:12 2013 [pid 3] [webdesigner] OK DOWNLOAD: Client "

    192.168.200.10", "/index.php", 4621 bytes , 282.04 Kbyte/sec

    0.3 Configurao do Firewall

    Libere no Firewall as portas do ftp, este procedimento ir dar uma flexibilidade aoflexibilidade ao webdesigner. No Firewall adicione estas linhas, lembre-se de colocarno final do escopo do start.

    1 root@firewall :~# vim /etc/init.d/firewall

    2

    Linux Security Servers in Cloud Pgina 15

  • 0.3 Configurao do Firewall 4Linux www.4linux.com.br

    3 # Libera no Firewall a passagem de pacotes para o servidor FTP porta

    21

    4 iptables -A FORWARD -p tcp --sport 21 -s $DMZ -d 0/0 --dport $PA -j

    ACCEPT

    5 iptables -A FORWARD -p tcp --sport $PA -s 0/0 -d $DMZ --dport 21 -j

    ACCEPT

    6 iptables -t nat -A PREROUTING -p tcp --sport $PA -s 0/0 -d $WAN1 --

    dport 21 -j DNAT --to-destination $DMZ :21

    7

    8 # Libera no Firewall a passagem de pacotes para o servidor FTP porta

    20

    9 iptables -A FORWARD -p tcp --sport 20 -s $DMZ -d 0/0 --dport

    0:65535 -j ACCEPT

    10 iptables -A FORWARD -p tcp --sport 0:65535 -s 0/0 -d $DMZ --dport

    20 -j ACCEPT

    11 iptables -t nat -A PREROUTING -p tcp --sport 0:65535 -s 0/0 -d $WAN1

    --dport 20 -j DNAT --to-destination $DMZ :20

    Para o FTP funcionar de modo perfeito preciso habilitar o mdulo nf_nat_ftp e suasdependncias.

    1 root@firewall :~# echo nf_nat_ftp >> /etc/modules

    Faa subir estes mdulos como se a mquina estivesse sendo iniciada agora, ereinicie o Firewall para que possa valer as novas regras.

    1 root@firewall :~# service firewall restart

    Pgina 16 Linux Security Servers in Cloud

  • 4Linux www.4linux.com.br 0.4 Cliente grfico para FTP

    0.4 Cliente grfico para FTP

    Podemos acessar um FTP a partir da interface grfica. Um dos principais clientesFTP o Filezilla (http://filezilla-project.org), que possui verso para GNU/Linux, Win-dows e Mac OS. Para instalar no GNU/Linux basta digitarmos na mquina In-terna:

    1 root@maq -interna :~# aptitude install filezilla

    Para abrir o aplicativo, v em Aplicativos -> Internet -> Filezilla. Na tela que abrir,entre com os seguintes dados:

    1 Host: ftp.dexter.com.br

    2 Usurio: webdesigner

    3 Senha: 123456

    4 Porta: 21

    Ser estabelecida a conexo e nosso Webdesigner poder atualizar o site!

    Linux Security Servers in Cloud Pgina 17

  • 0.4 Cliente grfico para FTP 4Linux www.4linux.com.br

    Pgina 18 Linux Security Servers in Cloud