O documento explica como configurar o servidor FTP ProFTPd através do arquivo de configuração /etc/proftpd.conf. O arquivo define contextos e diretivas que determinam o comportamento do ProFTPd para diferentes ações e diretórios. O exemplo de configuração mostra como permitir downloads na pasta PUB e uploads na pasta incoming.
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Proftpd
1. 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
2. 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
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.