Arquivo de abril 28, 2008

VsFTPD

Publicado: abril 28, 2008 em Tutoriais

Tutorial: VsFTPD
Autor: Fábio Rafael (moiza)
Email: moiza@bsd.com.br

Necessidade:
Precisávamos ter um Servidor para Transferência de Arquivo, um método típico de cópia de arquivos entre dois sites Internet para ser utilizado para transferir arquivos com tamanhos superiores à 10MB, pois muitos provedores e serviços não permitem o envio e o recebimento de arquivos com tamanho superior a 10MB. Existem muitos repositórios públicos de programas de computador e documentos espalhados pela Internet usando este tipo de aplicação.

Síntese:
‭‬Armazenar arquivos em diretórios,‭ ‬permitindo o seu download‭ (‬recepção‭) ‬e o upload‭ (‬envio‭) ‬de novos arquivos.

Descrição:
‭Este serviço possibilita que pessoas tenham acesso a documentos através da Internet e/ou de uma Intranet,‭ ‬em qualquer horário‭ (‬no caso de acesso via Internet,‬também de qualquer lugar‭)‬.‭ ‬É o meio mais recomendado e mais rápido para trocas de arquivos via rede,‭ ‬sendo muito mais ágil que o envio por e-mail.‭

Pode referir-se tanto ao protocolo quanto ao programa que implementa este protocolo (Servidor FTP, neste caso, tradicionalmente aparece em letras minúsculas, por influência do programa de transferência de arquivos do Unix).

A transferência de dados em redes de computadores envolve normalmente transferência de arquivos e acesso a sistemas de arquivos remotos (com a mesma interface usada nos arquivos locais). O FTP (RFC 959) é baseado no TCP, mas é anterior à pilha de protocolos TCP/IP, sendo posteriormente adaptado para o TCP/IP. É o padrão da pilha TCP/IP para transferir arquivos, é um protocolo genérico independente de hardware e do sistema operacional e transfere arquivos por livre arbítrio, tendo em conta restrições de acesso e propriedades dos mesmos.

Implementação:
Veremos agora como instalar e configurar um servidor de ftp básico utilizando-se para isso o vsftpd.

Pré-requisitos:
* Um servidor GNU/Linux Debian, FreeBSD ou outra distro previamente configurado.
* Um repositório ou ports atualizado.

Instalação:
Atualizando o repositório do Debian
debian:/# apt-get update

Instalando o pacote vsftpd
debian:/# apt-get install vsftpd
Lendo lista de pacotes…

Fazendo uma cópia do conf original
debian:/# cp /etc/vsftpd.conf /etc/vsftpd.conf.default

É possível ver os docs e exmplos do vsftpd em
debian:/# ls -l /usr/share/doc/vsftpd/

Assumindo-se que a instalação foi concluída com sucesso vamos agora para a configuração, o arquivo de configuração fica em /etc/vsftpd.conf ou /usr/local/etc/vsftpd.conf caso seja um FreeBSD utilize o seu editor de texto preferido como o ee, vi, nano, pico, etc.

==== Configuração básica VsFTPD ====

#standalone mode – habilita o vsftpd para rodar sem depender do inetd
listen=YES

#Essa opção define o máximo de pessoas conectadas ao mesmo tempo no servidor ftp
max_clients=6
max_per_ip=4

# Essa opção desabilita a utilização do usuário anonymous
anonymous_enable=NO

# Essa opção habilita os usuários que possuem conta no servidor
local_enable=YES

# Opção da permissão de escrita aos usuários conectados no servidor ftp
write_enable=YES

# Security
pasv_enable=YES
hide_ids=YES
pasv_promiscuous=YES

# Essas duas opções definem a porta min e max para usuários que irão conectar através da LAN ou NAT
pasv_min_port=40000
pasv_max_port=65535

# Essa opção é útil no caso de ‘prender’ o usuário no seu home, não permitindo que ele passeie pelos outros diretórios
chroot_local_user=YES

# Essa opção especifica a permissão padrão de quando é enviado um arquivo
local_umask=007

# Dir Security
secure_chroot_dir=/usr/local/share/vsftpd/empty

# Habilita os logs de conexão/uploads/downloads no /var/log/vsftpd.log
xferlog_enable=YES

# Features
ls_recurse_enable=NO
ascii_download_enable=YES

# Essa opção mostra uma mensagem inicial quando o usuário conecta ao servidor ftp
ftpd_banner= Bem vindo ao Servidor FTP

# Essa opção especifica após quanto tempo de inatividade o servidor irá desconectar o usuário
idle_session_timeout=120
accept_timeout=60
connect_timeout=60

# Performance
pam_service_name=vsftpd
userlist_enable=NO
tcp_wrappers=YES

==== Fim da Configuração básica VsFTPD ====

Para iniciar o vsftpd execute
debian:/# /etc/init.d/vsftpd start
Starting FTP server: vsftpd.

Acompanhe as conexões pelo log do vsftpd, para diagnosticar caso algum usuário informe que não está conseguindo acessar/autenticar:
# tail -f /var/log/vsftpd.log

Dicas:
Crie um arquivo de log para o vsftpd
debian:/# touch /var/log/vsftpd.log

Crie também um diretório para não dar erro quando o cliente conectar no servidor ftp
debian:/# mkdir /usr/share/empty

Caso o cliente tenha dificulades em usar o ftp em modo console/prompt recomende a extensão do Iceweasel/Firefox o FireFTP.
– No menu ferramentas acesse “complementos” acesse o link “Mais extensões” procure pelo complemento “FireFTP” clique em
baixar agora… em segundos o FireFTP estará instalado.
– Acesse em Ferramentas “FireFTP” va em “Manage Accounts” coloque em “New Account” coloque o IP do Servidor VsFTPD caso tenha um
DNS instalado coloque o Nome do Host, em seguida coloque o “Usuário/Senha” criados no Servidor VsFTPD.
– A coluna esquerda indica host local, à direita o Servidor FTP, agora já é possível criar diretórios, fazer downloads e uploads dos
arquivos e documentos.

Abaixo os Screenshots da configuração do cliente no Iceweasel/Firefox:

Referências:
man vsftpd
man useradd/adduser
http://pt.wikipedia.org/wiki/Ftp
http://vsftpd.beasts.org/vsftpd_conf.html