Tabela de conteúdo |
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.
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.
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)