ProFTPD

De Wiki
Ir para: navegação, pesquisa

ProFTPD

Debian Squeeze 6.0

Instalando os Pacotes Necessários

Para a distribuição vastas coleções de arquivos o FTP continua sendo uma escolha popular, mesmo com o número crescente de servidores HTTP, a transferência de arquivos ainda é feita em muitos locais com FTP. E tem vários exemplos onde o uso do FTP tem sentido. Você pode ver que no Debian existem diversos pacotes que oferecem o serviço de FTP:

# apt-cache search ftp-server

Um dos mais populares é o ProFTPD, e ele pode ser instalado no Debian da seguinte forma:

# apt-get install proftpd

Após terminar o download o debconf vai perguntar se você vai executar o servidor utilizando o inetd ou no modo standalone. No geral a última opção é a melhor. Depois da instalação o servidor já estará rodando e irá garantir acesso para todas as contas de usuário do servidor. Vamos parar o servidor para configurá-lo melhor:

# /etc/init.d/proftpd stop

As próximas configurações serão realizadas no arquivo de configuração: /etc/proftpd.conf.

Opções de Segurança

Existem várias opções de segurança que podem ser habilitadas no ProFTPD, mas a mais notável de todas é o uso de segurança TLS. Para usar o TLS é necessário gerar chaves criptográficas e modificar as configurações do servidor para utilizá-la. A geração da chave é muito simples, basta executar os seguintes comandos usando o openssl:

# mkdir /etc/proftpd
# cd /etc/proftpd
# openssl req -new -x509 -days 365 -nodes -out ftpd-rsa.pem -keyout ftpd-rsa-key.pem

Com os arquivos gerados você pode adicionar as seguintes configurações:

# vim /etc/proftpd.conf
...
<IfModule mod_tls.c>
    TLSEngine on
    TLSLog /var/log/proftpd-tls.log
    TLSProtocol TLSv1

    # Are clients required to use FTP over TLS when talking to this server?
    TLSRequired off

    TLSRSACertificateFile    /etc/proftpd/ftpd-rsa.pem
    TLSRSACertificateKeyFile /etc/proftpd/ftpd-rsa-key.pem
       
    # Authenticate clients that want to use FTP over TLS?
    TLSVerifyClient off
</IfModule>

Outras opções de segurança incluem a limitação de alguns usuários a diretórios em particular. Para limitar o usuário bob ao diretório inicial /tmp você pode utilizar:

   DefaultRoot /tmp bob

Uma abordagem mais geral restringe os usuários somente ao seu diretório home, e isso pode ser feito definindo a raíz FTP como:

   DefaultRoot ~

Isso vai fazer com que os usuários vejam somente seu diretório home (como especificado no /etc/passwd) quando logarem.

Permitindo Acesso Anônimo

Para permitir o acesso anônimo ao servidor é necessário descomentar as opções de configuração que estão presentes no arquivo de configuração. Um ponto de partida é:

To permit anonymous access to your server you will need to uncomment the configuration options which are already present in the standard file. This is a good starting point:

# vim /etc/proftpd.conf
<Anonymous ~ftp>
   User			ftp
   Group			nogroup

   # Nós queremos que os clientes sejam capazes de logar como "anonymous" e também como "ftp"
   UserAlias			anonymous ftp

   # Mudanças cosméticas, todos os arquivos pertencem ao usuário ftp
   DirFakeUser	                on ftp
   DirFakeGroup                on ftp
    
   RequireValidShell		off
    
   # Limitar o número máximo de logins anônimos
   MaxClients			10
    
   # Nós queremos que a mensagem contida em 'welcome.msg' seja mostrada no login, e a mensagem em '.message' seja mostrada
   # em cada novo diretório acessado.
   DisplayLogin		welcome.msg
   DisplayFirstChdir		.message
    
   # Limita a ESCRITA em qualquer lugar dentro do chroot anônimo
   <Directory *>
      <Limit WRITE>
          DenyAll
      </Limit>
   </Directory>
</Anonymous>

Estas configurações vão permitir aos usuários logar como anônimo, ou ftp, ou com seus usuários e senhas e serão capazes de ler o diretório /home/ftp. Este será um acesso a conteúdo em modo somente leitura.

--Brivaldo 09h38min de 4 de novembro de 2011 (AMST)