quinta-feira, 19 de março de 2009

ProFTPD - Um servidor FTP facil de instalar

Bom, na minha opinião, o que conta para um software ser bom é ele fazer o que se propõe. Gratuito ou não, se funciona e atende ao que se precisa, ta valendo. E no meu caso, e para quem usa sistemas abertos como o linux, solaris entre outros, uma solução em FTP é sem duvida o ProFTPD.

Bom, quem leu o profile do blog percebeu que ultimamente eu tenho usado o ubuntu linux, então vou focar os procedimentos que se faz necessario para instala-lo e colocar tudo funcionando no Ubuntu Linux.

Então vamos la:

Primeiramente, vamos ao passo mais complexo deste post :) , abra seu terminal e digite o comando:

#apt-get install proftpd

Depois deste procedimento, vamos a configuração do ftp. Eu como editor uso o nano, mas pode ser com o vim, mcedit entre outros. Então vamos editar o arquivo conf do proftpd.

nano /etc/proftpd/proftpd.conf

Algumas configurações neste arquivo devem ser editadas, outras inseridas. Bom, mas como isso vai de cada um, coloquei abaixo algumas das minhas opções:

------------------- Arquivo proftpd.conf --------------------
# proftpd.conf

# Arquivo exibido no momento da conexao (Pode se editado para uma mensagem personalizada)
DisplayConnect /usr/local/etc/proftpd.banner

# Nao exibe informacoes sobre que tipo de servidor esta rodando (Dica de seguranca)
ServerIdent off

# Modo no qual o servidor ira rodar (standalone ou inetd) (Não mexi nessa configuração)
ServerType standalone

# Como nao temos VirtualHosts, este servidor (principal) sera o padrao
DefaultServer on

# Porta padrao do FTP
Port 21

# Umask padrao para arquivos uploaded
Umask 022

# Maximo de processos filho (cada conexao utiliza um processo)
MaxInstances 30

# Maximo de usuarios autenticados (incluindo anonimos) e mensagem
MaxClients 20

# Maximo de usuarios autenticados (incluindo anonimos) por IP
MaxClientsPerHost 4

# Usuario sob o qual o servidor ira rodar
User ftp

# Grupo sob o qual o servidor ira rodar
Group ftp

# Os usuarios nao poderao sair de seu diretorio home (chrooted)
DefaultRoot ~

# Nao permite o login do usuario root
RootLogin off

# Nao requer que os usuarios tenham um shell valido (definido
# em /etc/shells)
RequireValidShell off

# Nao bloqueia usuarios baseando-se no arquivo /etc/ftpusers
UseFtpUsers off

# Tempo maximo em segundos para login 
TimeoutLogin 120

# Tempo maximo em segundos conectado mas sem qualquer comando ou
# troca de dados
TimeoutIdle 600

# Tempo maximo em segundos sem transferencia de dados (arquivos,
# listagens de diretorios)
TimeoutNoTransfer 900

# Tempo maximo em segundos com uma transferencia parada, travada
TimeoutStalled 900

# Numero maximo de tentativas de login
MaxLoginAttempts 3

# Nao tenta descobrir o hostname do cliente
UseReverseDNS off

# Nao tenta efetuar consulta do username remoto (ident - RFC1413)
IdentLookups off

# Arquivo de log geral
SystemLog /var/log/proftpd/system.log

# Arquivo de log das transferencias
TransferLog /var/log/proftpd/transfer.log

# Especifica o modo de transferencia padrao (ascii ou binary)
DefaultTransferMode binary

# Permite que arquivos sejam sobrescritos (caso seja feito upload
# de um arquivo ja existente)
AllowOverwrite on

# Abre o contexto de usuarios anonimos, especificando a raiz do
# FTP anonimo

Depois de feita as configurações, vamos criar os acessos dos usuarios.

Primeiro criamos a pasta que irá apontar para os usuarios que irão acessar o ftp:

mkdir /home/(nome_do_usuario)

Vamos criar o acesso do usuario com senha e setar a pasta que irá visualizar:

sudo useradd (nome_do_usuario) -p your_password -d /home/(nome_do_usuario) -s /bin/false
sudo passwd (nome_do_usuario)

Vamos configurar as permissões nessa pasta

cd /home
sudo chmod 755 (nome_da_pasta_usuario)

Depois de feito isso, iniciar o software:

sudo /etc/init.d/proftpd start

Pronto, o sistema deve estar funcionando, só testar.

Bom, qualquer duvida ou sugestão, comente o post.

Espero que tenha ajudado nas duvidas.




2 comentários:

Anônimo disse...

Karls, quero atribuir direito de postar arquivos para um usuário para a pasta /var/www/html. qual o comando que devo usar?

Karls disse...

é o seguinte, na hora de criar a pasta aonde o usuario será direcionado vc faz assim:
adduser -s /bin/false -d /pasta/destino/ usuario
chown usuario.grupo /pasta/destino -Rf
chmod 700 /pasta/destino

Traduzindo, cria-se o usuario com a pasta que você quer q ele acesse, em seguinda dê permissão na pasta para o usuario e grupo q ele pertence, dai dá permissão de escrita pra ele, pronto, ta feito.