Entendendo a configuração do ProFTPd
Como todo daemon, o ProFTPd é configurado através de um arquivo
texto/etc/proftpd.conf. O ProFTPd lê o arquivo cada vez que é iniciado, portanto cada
alteração feita neste arquivo só entrará em vigor após reiniciar o daemon.

No arquivo de configuração do ProFTPd é utilizado o conceito de contextos em sua
configuração e em cada contexto temos as diretivas. Resumindo os contextos são
opções globais de um comportamento e a diretiva seria um sub-comportamento.

Contextos

Os contextos são divididos em cinco categorias:
    • contexto principal: contém as configurações default utilizadas por outros
      contextos;
    • contexto <Directory DIR>: determina o comportamento do ProFTPd no diretório.
    • contexto <Anonymous DIR>: determina o comportamento do ProFTPd quando o
      usuário anonymous se loga a partir de qual diretório(DIR) ele será servido;
    • contexto <Limit AÇÃO>: determina as ações no ProFTPd que são:

        * LOGIN - usuário válido se logando. * READ - downloads de arquivos. * WRITE -
        uploads de arquivos. * STOR - upload de arquivos sem possibilidade de criação e
        deleção de diretórios.
    • contexto <VirtualHost IP>: define a criação de ftp's virtuais;



Exemplo de Configuração

Este FTP eu montei e está rodando em um Red Hat 9.0. O pacote usado foi proftpd-
1.2.9rc1.tar.bz2.

Nessa configuração você poderá realizar o download de arquivos na pasta PUB e o
upload   na    pasta incoming.  A     pasta  incoming    deverá   ser    criada.

Para a configuração do webmin para quem gosta do padrão Windows seguem os
caminhos:
    •   config file: /usr/local/"proftpd/"etc/proftpd.conf
    •   executable: /usr/local/"proftpd/"sbin/proftpd
    •   PID file: /usr/local/"proftpd/"var/proftpd.pid
    •   ftpusers file: usr/local/"proftpd/"etc/ftpusers
"/"proftpd/" - é para quem usou o prefix la em cima na instalação.

proftpd.conf
#
# Configuração do ProFTPd
#

# Configuração

ServerName "FTP - Ftp para transferência de arquivos"
ServerType standalone
DefaultServer on
ScoreboardFile /usr/local/var/run/proftpd.scoreboard
ServerAdmin root@localhost
#SyslogFacility AUTH

# Para funcionar em modo Stand Alone deve-se usar a porta 21 (default)
# So ira mudar caso queira configurar um servidor virtual
Port 21

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

# Esta opção foi colocada para prevenir ataques do tipo DoS, sendo assim você po# dera aumentar ou
diminuir o numero de conexões simultâneas. So tem validade no# modo standalone.
MaxInstances 8

# Usuário e grupo para rodar o servidor FTP. Tendo como usuário nobody e grupo no# group eles não terão
privilégios caso seja descoberto alguma vulnerabilidade n# o sistema, sendo assim caso não possuam eles
no sistema criem.
User nobody
Group nobody

# Apenas faz com que o usuário acesse o seu diretório $HOME
DefaultRoot ~
  <Directory /*>
    AllowOverwrite no
  </Directory>
# Configuração básica para o ftp anônimo, sem diretório para recepção de arquivo# s
<Anonymous ~ftp>
  User ftp
  Group ftp
  DirFakeUser on
  DirFakeGroup on
  RequireValidShell off
# Configuração para que ftp = anonymous
  UserAlias anonymous ftp

# Numero máximo de logins anônimos
MaxClients 5 "Numero máximo de clientes atingido, tente mais tarde por favor."

# Máximo de Conexões por cliente
MaxClientsPerHost 8 "Você já esta com muitas conexões simultâneas."

# Mensagem de entrada e o .message e a mensagem para cada diretório acessado.
DisplayLogin    msg.welcome
DisplayFirstChdir .message
AccessGrantMsg     "Acesso Anônimo aceito para %u."

# Permissão para gravação no chroot anônimo
<Limit WRITE>
  Denyall
</Limit>

</Anonymous>

# Permitindo Uploads
<Anonymous ~ftp>
  User ftp
  Group ftp
  UserAlias anonymous ftp
   <Directory *>
     <Limit WRITE>
       DenyAll
</Limit>
   </Directory>
   <Directory incoming/>
     <Limit STOR MKD>
       AllowAll
     </Limit>
   </Directory>
</Anonymous>

OBS: para a pasta upload funcionar corretamente, caso vocês queiram utilizar outro
diretório, ela só funcionou corretamente quando adicionei ao grupo ftp o usuário
anonymous. Com respeito ao log, o arquivo é o seguinte: /var/log/xferlog. Este é o
arquivo de log do proftpd.

Proftpd

  • 1.
    Entendendo a configuraçãodo ProFTPd Como todo daemon, o ProFTPd é configurado através de um arquivo texto/etc/proftpd.conf. O ProFTPd lê o arquivo cada vez que é iniciado, portanto cada alteração feita neste arquivo só entrará em vigor após reiniciar o daemon. No arquivo de configuração do ProFTPd é utilizado o conceito de contextos em sua configuração e em cada contexto temos as diretivas. Resumindo os contextos são opções globais de um comportamento e a diretiva seria um sub-comportamento. Contextos Os contextos são divididos em cinco categorias: • contexto principal: contém as configurações default utilizadas por outros contextos; • contexto <Directory DIR>: determina o comportamento do ProFTPd no diretório. • contexto <Anonymous DIR>: determina o comportamento do ProFTPd quando o usuário anonymous se loga a partir de qual diretório(DIR) ele será servido; • contexto <Limit AÇÃO>: determina as ações no ProFTPd que são: * LOGIN - usuário válido se logando. * READ - downloads de arquivos. * WRITE - uploads de arquivos. * STOR - upload de arquivos sem possibilidade de criação e deleção de diretórios. • contexto <VirtualHost IP>: define a criação de ftp's virtuais; Exemplo de Configuração Este FTP eu montei e está rodando em um Red Hat 9.0. O pacote usado foi proftpd- 1.2.9rc1.tar.bz2. Nessa configuração você poderá realizar o download de arquivos na pasta PUB e o upload na pasta incoming. A pasta incoming deverá ser criada. Para a configuração do webmin para quem gosta do padrão Windows seguem os caminhos: • config file: /usr/local/"proftpd/"etc/proftpd.conf • executable: /usr/local/"proftpd/"sbin/proftpd • PID file: /usr/local/"proftpd/"var/proftpd.pid • ftpusers file: usr/local/"proftpd/"etc/ftpusers "/"proftpd/" - é para quem usou o prefix la em cima na instalação. proftpd.conf # # Configuração do ProFTPd # # Configuração ServerName "FTP - Ftp para transferência de arquivos" ServerType standalone DefaultServer on
  • 2.
    ScoreboardFile /usr/local/var/run/proftpd.scoreboard ServerAdmin root@localhost #SyslogFacilityAUTH # Para funcionar em modo Stand Alone deve-se usar a porta 21 (default) # So ira mudar caso queira configurar um servidor virtual Port 21 # Umask define as permissões nos diretórios. Umask 022 tem uma boa definição pois # não permitira que o grupo e outros usuários criem diretórios e gravem arquivos# Umask 022 # Esta opção foi colocada para prevenir ataques do tipo DoS, sendo assim você po# dera aumentar ou diminuir o numero de conexões simultâneas. So tem validade no# modo standalone. MaxInstances 8 # Usuário e grupo para rodar o servidor FTP. Tendo como usuário nobody e grupo no# group eles não terão privilégios caso seja descoberto alguma vulnerabilidade n# o sistema, sendo assim caso não possuam eles no sistema criem. User nobody Group nobody # Apenas faz com que o usuário acesse o seu diretório $HOME DefaultRoot ~ <Directory /*> AllowOverwrite no </Directory> # Configuração básica para o ftp anônimo, sem diretório para recepção de arquivo# s <Anonymous ~ftp> User ftp Group ftp DirFakeUser on DirFakeGroup on RequireValidShell off # Configuração para que ftp = anonymous UserAlias anonymous ftp # Numero máximo de logins anônimos MaxClients 5 "Numero máximo de clientes atingido, tente mais tarde por favor." # Máximo de Conexões por cliente MaxClientsPerHost 8 "Você já esta com muitas conexões simultâneas." # Mensagem de entrada e o .message e a mensagem para cada diretório acessado. DisplayLogin msg.welcome DisplayFirstChdir .message AccessGrantMsg "Acesso Anônimo aceito para %u." # Permissão para gravação no chroot anônimo <Limit WRITE> Denyall </Limit> </Anonymous> # Permitindo Uploads <Anonymous ~ftp> User ftp Group ftp UserAlias anonymous ftp <Directory *> <Limit WRITE> DenyAll
  • 3.
    </Limit> </Directory> <Directory incoming/> <Limit STOR MKD> AllowAll </Limit> </Directory> </Anonymous> OBS: para a pasta upload funcionar corretamente, caso vocês queiram utilizar outro diretório, ela só funcionou corretamente quando adicionei ao grupo ftp o usuário anonymous. Com respeito ao log, o arquivo é o seguinte: /var/log/xferlog. Este é o arquivo de log do proftpd.