Montando um Servidor de FTP

Este artigo demonstra a facilidade que o sistema operacional Linux nos oferece para a instalação e configuração de um servidor de FTP. Aqui vos apresento o ProFTPD, um dos melhores e mais rápidos servidores FTP existentes.

[ Hits: 105.414 ]

Por: Eduardo Assis em 22/08/2003 | Blog: http://www.proredes.com.br


Introdução



A importância em ter um servidor de FTP:

Estou no serviço e tenho que ir até um cliente, não terei que levar nem disquetes e nem CDs, bastando acessar através do navegador (ftp://ip) e copiar os arquivos para a máquina local. Ou então você quer demonstrar essa facilidade para os seus clientes quando for vender um servidor Linux.

Bem quero que vocês entendam que existem várias funcionalidades para um servidor de ftp.

Mostrarei como configurar o Proftpd - servidor de ftp relativamente seguro, muito estável e robusto.

Estou usando um Conectiva 9, mas nada impede de você estar usando outra distro, desde que tenha o Proftpd instalado na mesma, uma vez que a instalação deste pacote está fora do escopo do artigo (e claro, é um pacote tido como padrão na maioria das distribuições).

A configuração consiste em apenas um arquivo /etc/proftpd.conf. Vejamos o arquivo em si:

# Configuração do Proftpd
    
    ServerName                      "ProFTPD - Instalação Default"
    ServerType                       inetd
    DefaultServer                    on
    ScoreboardPath                 /var/run
    DeferWelcome                  on
    ServerAdmin                     root@localhost
    ServerName                      "Servidor FTP"
    SyslogFacility                     AUTH
    
    # Umask 022 é um bom padrão para prevenir que novos diretórios e
    # arquivos sejam graváveis pelo grupo ou outros usuários
    Umask                           022
    
    # Usuário e grupo para o servidor
    User                            nobody
    Group                           nobody
    
    <Directory /*>
      AllowOverwrite                no
    </Directory>
    
    # Configuração básica para ftp anônimo, sem diretório para recepção
    # de arquivos
#    <Anonymous ~ftp>
#     User                          ftp
#    Group                         ftp
#      DirFakeUser                   on
#      DirFakeGroup                  on
    
#      # ftp = anonymous
#      UserAlias                     anonymous ftp
    
#      # número máximo de logins anônimos
#      MaxClients                    10 "Número máximo de clientes, tente mais tarde."
    
      # No máximo duas conexões por cliente
#     MaxClientsPerHost             2 "Você já está com muitas conexões simultâneas."
    
      # welcome.msg mostrado na conexão e .message mostrado para cada
      # diretório acessado.
#      DisplayLogin                  welcome.msg
#      DisplayFirstChdir             .message
#      AccessGrantMsg                "Acesso anônimo aceito para %u."
    
      # Limite gravação no chroot anônimo
#      <Limit WRITE>
#        DenyAll
#      </Limit>
    
#    </Anonymous>

Por padrão, basta startar o serviço que estará funcionado sem fazer nada:

# service proftpd start

Agora você poderá acessar o FTP através de:

$ ftp ip

ou pelo navegador informando a URL:

ftp://ip

Será solicitado um nome de login e senha. Caso queira liberar acesso anonymous, basta descomentar as linhas que falam sobre o mesmo.

Por questões de segurança, coloque no arquivo /etc/proftpd.conf:

ServerIdent on   " Descrição do Servidor ou Comentário "

para não aparecer a versão do seu Proftpd para o usuário que o está acessando.

Para limitar seus usuários ao seu próprio home (o simulando como raiz do sistema de arquivos), adicione:

DefaultRoot ~ root

Espero ter ajudado alguém!!!

Abraços

tucs

   

Páginas do artigo
   1. Introdução
Outros artigos deste autor

Servidor seguro com Bridge, Snort e Guardian

Xdialog - Programação Gráfica Útil

Configurando mais de um IP por placa de rede

Simulando o SSH via WEB

VPN no Conectiva 8 com o PPTPD

Leitura recomendada

Emergindo grandes pacotes em hardwares fracos com o auxílio de outro computador no Gentoo Linux

Novo método de instalação do Arch Linux (systemd)

Apache2 + PHP5 + VirtualHosts no Debian e Ubuntu

Utilizando certificados e-CNPJ e e-CPF no Linux

Caracteres especiais no teclado Linux: como adaptar às necessidades do escritor

  
Comentários
[1] Comentário enviado por rbn_jesus em 26/08/2003 - 19:53h

muito bom

[2] Comentário enviado por mad_lord em 04/11/2003 - 06:29h

Opa cara! blz?

Para me logar ao ftp utilizo o ip que determina o servidor apache correto?

Como que eu dou a senha e o nome de login a cada usuário?

e como direciono cada usuário para uma pasta predefinida?

obrigado!

[3] Comentário enviado por everton_mello em 22/01/2004 - 18:04h

Como termino a configuração do inetd.conf

e como rodar o ftp no slack?(comando)

Everton

everton@banquet.com.br

[4] Comentário enviado por giovano em 27/01/2004 - 20:41h

Beleza...
Fiz alguns ajustes para se adaptar ao meu servidor e rodou beleza...
Valeu

[5] Comentário enviado por everton_mello em 02/04/2004 - 10:23h

Oi! Achei muito legal seu artigo, bem interessante mesmo!
Aqui uso slack 9, no caso quero atualizar meu ant vírus via ftp do site deles para depois poder viabilizar o update para as estações,

Seguinte preciso de uma dica de como criar usuário especial onde faça esses updates do site, e um diretório público somente para leitura onde fiquem os arquivos.exe da onde ele irá fazer o update posteriormente.

Obrigado desde já! e aguardo uma resposta se puder me ajudar!

[6] Comentário enviado por fullgore em 07/07/2004 - 00:37h

opa! beleza? legal o artigo.. soh .. hehee tentei rodar e saca soh:
root@slackware:~# proftpd start
- Fatal: ScoreboardPath: deprecated. Use 'ScoreboardFile /path/to/scoreboard/file' instead

pode dar uma mao?

..rodei direto no proftp start pos nao achei esse comando 'service... []z

[7] Comentário enviado por taudujas em 08/09/2004 - 22:09h

Da para criar usuarios e dar permissoes para eles???

[8] Comentário enviado por rdeizeppe em 07/03/2005 - 13:21h

Erro para iniciar o service:

Iniciando proftpd: - Fatal: ScoreboardPath: deprecated. Use 'ScoreboardFile /path/to/scoreboard/file' instead on line 6 of '/etc/proftpd.conf'

????????????

[9] Comentário enviado por lomba_II em 08/04/2005 - 08:55h

Montando um Servidor de FTP
quero saber se posso fazer o mesmo com debian quero montar tb 1 servidor ftp!

[10] Comentário enviado por jcmsantos em 30/10/2005 - 11:04h

tucs , estou começando com linux agora !
para adicionar senha no ftp como aço ?

[11] Comentário enviado por cleberpressutto em 09/12/2005 - 09:31h

para vc colocar senha no ftp, dentro do anonymous existe user, vc deve colocar todos os usuários alí que irão acessar via ftp e depois criar a senha para esse usuario.
EX:
criar usuario --> adduser ftp
colocar a senha --> passwd ftp
ele irá pedir a senha e pra vc repeti-la.
de um start no proftpd no cds e já estará com a senha.

[12] Comentário enviado por andre.slackware em 02/03/2006 - 18:12h

ola amigos eu estou com um probleminha no proftpd o servidor DNS funfa blz@ , mas so o ftp q naum resolve por nome , so esta resolvento por ip o q acontece?????

[13] Comentário enviado por boy em 14/06/2006 - 15:31h

- Fatal: ScoreboardPath: deprecated. Use 'ScoreboardFile /path/to/scoreboard/file' instead on line 10 of '/etc/proftpd.conf'


alguem pode ajudar?

[14] Comentário enviado por pc4 em 16/08/2006 - 19:29h

Alguém sabe como dar permissão a um diretório para fazer somente upload e nunca download???

[15] Comentário enviado por removido em 07/06/2007 - 09:24h

Ficou muito bom. Simples e direto. Só faltou uma coisinha pra quem usa roteadores/firewall entre a máquina e a internet:
"PassivePorts 60000 60050"

Faz com que o servidor responda a transferências em modo passivo (transferência de arquivos, por exemplo) apenas na faixa de portas portas indicadas. Dessa maneira ele não pega portas aleatoriamente e é possível tratar as portas nas regras de redirecionamento do firewall.

Lembrando que é necessário habilitar a opção "Habilitar FTP passivo para compatibilidade com firewall e modems DSL", nas "Opções de Internet", guia "Avançadas", no cliente de FTP, se ele for o Internet Explorer.

[16] Comentário enviado por igri em 28/08/2007 - 07:29h

pessoal como posso num servidor de ftp possibilitar o acesso web de uma pasta livre acesso a rede interna

[17] Comentário enviado por gpr.ppg.br em 03/03/2008 - 08:25h

quando vou mandar varios arquivos trava o dreamweaver, principalemente diretorios. o que pode ser?

[18] Comentário enviado por nocyvo em 07/05/2009 - 16:22h

em qual linha adiciono um usuário e senha?
em qual pasta adiciono os arquivos a serem compartilhados?
segui os passos do tuto do imasters e foi de boa mas usr e senha não fala nada sobre
excelente tuto parabéns

meu arquivo proftpd.conf esta assim

#
# /etc/proftpd/proftpd.conf -- This is a basic ProFTPD configuration file.
# To really apply changes reload proftpd after modifications.
#

# Includes DSO modules
Include /etc/proftpd/modules.conf

# Set off to disable IPv6 support which is annoying on IPv4 only boxes.
UseIPv6 on
# If set on you can experience a longer connection delay in many cases.
IdentLookups off

ServerName "HOLOCAUSTO"
ServerType standalone
DeferWelcome off
MultilineRFC2228 on
DefaultServer on
ShowSymlinks on
TimeoutNoTransfer 600
TimeoutStalled 600
TimeoutIdle 1200
DisplayLogin welcome.msg
DisplayFirstChdir .message
ListOptions "-l"
DenyFilter \*.*/

Para funcionar em modo Stand-Alone, deve-se usar a porta 21. Somente mudar caso queira configurar um servidor virtual.

Port 21

Esta opção é utilizada para prevenir ataques do tipo DoS, sendo assim você poderá aumentar ou diminuir o numero de conexões simultâneas. Esta opção somente tem validade em modo stand-alone.

MaxInstances 10

Esta opção opção faz com que o usuário acesse somente seu diretório HOME.

DefaultRoot

Usuário e grupo normalmente utilizado para rodar o servidor de FTP. Esta opção aumenta a segurança do serviço, pois roda com usuário e grupo sem privilégios especiais.

User nobody
Group nogroup

Umask define as permissões nos diretórios. Umask 022 tem uma boa definição pois não permitirá que o grupo e outros usuários criem diretórios e gravem arquivos.

Umask 022 022

Descomente essa linha para utilizar o módulo de autenticação via NIS ou LDAP:

PersistentPasswd off

Descomente essa linha se desejar utilizar o módulo TLS:

TLSEngine on

Descomente essa linha se desejar utilizar o módulo de quotas:

Quotas on

Descomente essa linha se desejar utilizar o módulo ratio:

Ratios on
</IfModule>

# To prevent DoS attacks, set the maximum number of child processes
# to 30. If you need to allow more than 30 concurrent connections
# at once, simply increase this value. Note that this ONLY works
# in standalone mode, in inetd mode you should use an inetd server
# that allows you to limit maximum number of processes per service
# (such as xinetd)
MaxInstances 30

# Set the user and group that the server normally runs at.
User proftpd
Group nogroup

# Umask 022 is a good standard umask to prevent new files and dirs
# (second parm) from being group and world writable.
Umask 022 022
# Normally, we want files to be overwriteable.
AllowOverwrite on

# Uncomment this if you are using NIS or LDAP via NSS to retrieve passwords:
# PersistentPasswd off

# This is required to use both PAM-based authentication and local passwords
# AuthOrder mod_auth_pam.c* mod_auth_unix.c

# Be warned: use of this directive impacts CPU average load!
# Uncomment this if you like to see progress and transfer rate with ftpwho
# in downloads. That is not needed for uploads rates.
#
# UseSendFile off

TransferLog /var/log/proftpd/xferlog
SystemLog /var/log/proftpd/proftpd.log

<IfModule mod_quotatab.c>
QuotaEngine off
</IfModule>

<IfModule mod_ratio.c>
Ratios off
</IfModule>


# Delay engine reduces impact of the so-called Timing Attack described in
# http://security.lss.hr/index.php?page=details&ID=LSS-2004-10-02
# It is on by default.
<IfModule mod_delay.c>
DelayEngine on
</IfModule>

<IfModule mod_ctrls.c>
ControlsEngine off
ControlsMaxClients 2
ControlsLog /var/log/proftpd/controls.log
ControlsInterval 5
ControlsSocket /var/run/proftpd/proftpd.sock
</IfModule>

<IfModule mod_ctrls_admin.c>
AdminControlsEngine off
</IfModule>

#
# Alternative authentication frameworks
#
#Include /etc/proftpd/ldap.conf
#Include /etc/proftpd/sql.conf

#
# This is used for FTPS connections
#
#Include /etc/proftpd/tls.conf

# A basic anonymous configuration, no upload directories.

# <Anonymous ~ftp>
# User ftp
# Group nogroup
# # We want clients to be able to login with "anonymous" as well as "ftp"
# UserAlias anonymous ftp
# # Cosmetic changes, all files belongs to ftp user
# DirFakeUser on ftp
# DirFakeGroup on ftp
#
# RequireValidShell off
#
# # Limit the maximum number of anonymous logins
# MaxClients 0
#
# # We want 'welcome.msg' displayed at login, and '.message' displayed
# # in each newly chdired directory.
# DisplayLogin welcome.msg
# DisplayChdir .message
#
# # Limit WRITE everywhere in the anonymous chroot
# <Directory *>
# <Limit WRITE>
# DenyAll
# </Limit>
# </Directory>
#
# # Uncomment this if you're brave.
# # <Directory incoming>
# # # Umask 022 is a good standard umask to prevent new files and dirs
# # # (second parm) from being group and world writable.
# # Umask 022 022
# # <Limit READ WRITE>
# # DenyAll
# # </Limit>
# # <Limit STOR>
# # AllowAll
# # </Limit>
# # </Directory>
#
# </Anonymous>


vlw

[19] Comentário enviado por corvolino em 10/01/2010 - 04:08h

aff.

[20] Comentário enviado por annakamilla em 27/05/2010 - 09:20h

legal. tava pensando em fazer aqui para a minha turma de faculdade. :)


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts