Estamos de volta com nosso tutorial sobre Redes de Computadores no FreeBSD, e hoje falaremos sobre ProFTPd.
O ProFTPd é um software que provê serviço de FTP de forma bastante eficiente e tem como característica a segurança e flexibilidade, ou seja, altamente configurável. Ele possui muitas vantagem e, por isso, ´muito utilizado em sites de grande tráfego.
Dentre essas vantagens podemos destacar como principais:
- configuração fácil;
- pode ser configurado em modo standalone ou através do inetd;
- o PID é executado por um usuário desprivilegiado (nobody);
- formato do arquivo de log extremamente configurável;
- fácil administração do FTP, com relação a forma de restrição, acesso aos arquivos;
- permite a configuração do número máximo de processos em execução, minimizando vulnerabilidades;
Iremos explicar agora, passo-a-passo, a instalação e configuração do ProFTPd.
Instalação:
# cd /usr/ports/ftp/proftpd && make install clean
/*Esse comando irá baixar o código fonte via FTP, que será compilado, permitindo assim a instalação*/
2º) Logo após isso será exibida a tela abaixo:
Selecione as seguintes opções:
- IFSESSION Include mod_ifsession
- README Include mod_readme
- RATIO Include mod_ratio
- REWRITE Include mod_rewrite
- WRAP Include mod_wrap
3º) Clique em "OK" para concluir a instalação.
Pronto! Seu ProFTPD está instalado, pronto para ser utilizado! Digo...quase. Antes, é necessário configurá-lo.
aparecerá a seguinte tela:

Nela você encontrará as seguintes informações:
----------------------------------------------------------------------------------------------
# Arquivo que exibira' a mensagem de boas vindas no momento da conexao.
DisplayConnect /usr/local/etc/proftpd.banner # Edite este arquivo para sua mensagem personalizada
# Não exibe informacoes sobre que tipo de servidor esta' rodando, boa pratica de seguranca.
ServerIdent off
# Modo no qual o servidor ira' rodar (standalone ou inetd), standalone tem melhor desempelho.
ServerType standalone
# Como nao temos VirtualHosts, este servidor (principal) sera' o padrao.
DefaultServer on
# Porta para o socket de controle.
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 "Desculpe, mas o numero maximo de clientes foi atingido. Tente mais tarde."
# Maximo de usuarios autenticados (incluindo anonimos) por IP
MaxClientsPerHost 4 "Desculpe, mas o maximo de 4 conexoes por cliente foi atingido. Tente mais tarde."
# Usuario sob o qual o servidor ira rodar, criado automaticamente na instalacao.
User ftp
# Grupo sob o qual o servidor ira rodar, criado automaticamente na instalacao.
Group ftp
# Os usuarios nao poderao sair de seu diretorio home (chrooted).
DefaultRoot ~
# Nao permite o login do usuario root, você pode habilitar essa opção, mas nao e' uma boa pratica de seguranca.
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.
# Usuario sob o qual cada instancia de FTP anonimo deve rodar
User ftp
# Grupo sob o qual cada instancia de FTP anonimo deve rodar
Group ftp
# Define o login anonymous como sinonimo (alias) do login ftp
UserAlias anonymous ftp
# Numero maximo de usuarios anonimos
MaxClients 10
# Limita qualquer gravacao neste contexto (por exemplo upload de arquivo)
DenyAll
# Fecha o contexto de usuarios anonimos
----------------------------------------------------------------------------------------------


Configuração:
- Tendo instalado o ProFTPD, entre no arquivo de configuração que fica no seguinte caminho:
/usr/local/etc/proftpd.conf
Nela você encontrará as seguintes informações:
----------------------------------------------------------------------------------------------
# Arquivo que exibira' a mensagem de boas vindas no momento da conexao.
DisplayConnect /usr/local/etc/proftpd.banner # Edite este arquivo para sua mensagem personalizada
# Não exibe informacoes sobre que tipo de servidor esta' rodando, boa pratica de seguranca.
ServerIdent off
# Modo no qual o servidor ira' rodar (standalone ou inetd), standalone tem melhor desempelho.
ServerType standalone
# Como nao temos VirtualHosts, este servidor (principal) sera' o padrao.
DefaultServer on
# Porta para o socket de controle.
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 "Desculpe, mas o numero maximo de clientes foi atingido. Tente mais tarde."
# Maximo de usuarios autenticados (incluindo anonimos) por IP
MaxClientsPerHost 4 "Desculpe, mas o maximo de 4 conexoes por cliente foi atingido. Tente mais tarde."
# Usuario sob o qual o servidor ira rodar, criado automaticamente na instalacao.
User ftp
# Grupo sob o qual o servidor ira rodar, criado automaticamente na instalacao.
Group ftp
# Os usuarios nao poderao sair de seu diretorio home (chrooted).
DefaultRoot ~
# Nao permite o login do usuario root, você pode habilitar essa opção, mas nao e' uma boa pratica de seguranca.
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.
# Usuario sob o qual cada instancia de FTP anonimo deve rodar
User ftp
# Grupo sob o qual cada instancia de FTP anonimo deve rodar
Group ftp
# Define o login anonymous como sinonimo (alias) do login ftp
UserAlias anonymous ftp
# Numero maximo de usuarios anonimos
MaxClients 10
# Limita qualquer gravacao neste contexto (por exemplo upload de arquivo)
DenyAll
# Fecha o contexto de usuarios anonimos
- Procure no arquivo os campos "user" e "group" e troque o "nobody" e "nogroup" por "ftp"
- Troque os valores:
#<Anonymous ~ftp>
#User nobody
#Group nogroup
Para
<Anonymous /usr/ftp>
User ftp
Group ftp
- Selecione as opções:
configure=> networking
- Irá aparecer outra tela com opções. Habilite a opção: anon ftp
- Será perguntado se você deseja configurar o ftp anônimo. Secione: "YES"
- Aparecerá uma tela como abaixo. Não altere nada e clique em "OK".
- O assistente irá perguntar se voce deseja configurar ma mensagem personalizada para qem logar como anônimo, escolha "yes".
- Digite uma mensagem, salve e saia do editor de texto.
- Após sair, você verá a seguinte tela:
- Selecione "exit" e tecle "enter". (Será necessário fazer isso 2 vezes)
- Tecle "seta para direita" e selecione "Exit Install"
- Para configurar o ip digite o seguinte comando:
#ee /etc/hosts
- Crie uma linha no final do arquivo que contenha o ip do seu computador e o nome dele.
- Para iniciar o ProFTP no boot. Digite a seguinte linha de comando
- Adicione ao fim do arquivo a linha:
proftpd_enable="YES"
Pronto! Agora sim seu ProFTPD está instalado, configurado e pronto para o uso.
Iniciando e parando o serviço de FTP:
- Para inicializar digite o seguinte comando:
- Para finalizar digite:
Outros comandos úteis:
ftpcount -> mostra o número atual de conexões ao servidor FTP
ftpwho -> mostra quais usuários estão conectados atualmente
ftptop -> mostra informações sobre as conexões num estilo parecido ao do comando top
ftpshut -> tira o servidor FTP do ar, sem encerrar seu processo. Para retornar, deve-se executar "ftpshut -R"
ftpwho -> mostra quais usuários estão conectados atualmente
ftptop -> mostra informações sobre as conexões num estilo parecido ao do comando top
ftpshut -> tira o servidor FTP do ar, sem encerrar seu processo. Para retornar, deve-se executar "ftpshut -R"
//==========================================================
Bem. Esperamos ter ajudado você a entender melhor o processo de instalação e configuração do ProFTPD. Em breve virão novas postagens. Aguarde.
//==========================================================
Bibliografia:
http://www2.unijui.edu.br/~heini/freebsd/proftpd.html
http://robertors.blogspot.com/2006/08/freebsd-instalando-proftpd.html
http://www.vivaolinux.com.br/artigo/Configuracao-do-ProFTPdhttp://robertors.blogspot.com/2006/08/freebsd-instalando-proftpd.html