ProFTPD + MySQL - Servidor FTP com usuários em banco de dados

cvs

Aqui vamos instalar o servidor de FTP ProFTPd com suporte a MySQL para criar usuários virtuais e filtrar o IPs que podem se conectar ao serviço, assim aumentando a segurança do servidor e melhorando seu desempenho.

[ Hits: 80.495 ]

Por: Thiago Alves em 26/07/2006 | Blog: http://www.seeufosseopresidente.com.br


Iniciando

Vamos instalar um servidor de FTP e usar o sistema de usuários virtuais para aumentar um pouco a segurança do sistema e assim podermos administrar melhor as contas de FTP. Para administrar essas contas no MySQL vamos usar o proftpdadmin.

Para isso vamos baixar 3 arquivos:
  1. MySQL - http://www.mysql.com/
  2. ProFTPD - http://proftpd.org/
  3. proftpdadmin - http://proftpd-adm.sourceforge.net/

O passo-a-passo (para organizar isso vamos criar os diretórios no /opt e baixar lá para gente saber onde guardar os sources):

# mkdir /opt/ftp
# cd /opt/ftp
# wget -c
http://dev.mysql.com/get/Downloads/MySQL-5.0/\
mysql-5.0.22.tar.gz/from/http://www.linorg.usp.br/mysql/

# wget -c ftp://ftp.proftpd.org/distrib/source/\
proftpd-1.3.0.tar.bz2

# wget -c http://nchc.dl.sourceforge.net/sourceforge/\
proftpd-adm/proftpd_admin_v1.0.tar.gz


Baixados os arquivos, vamos colocar a mão na massa.

    Próxima página

Páginas do artigo
   1. Iniciando
   2. Instalações
   3. proftpd.conf
   4. Bônus - Limitando IPs que podem se conectar
   5. Finalizando e criando usuários
   6. Conclusão
Outros artigos deste autor

Compilando o Apache 2 com PHP e MySQL

Criando uma ISO bootável do OpenBSD

Tornando seu Apache mais seguro com o ModSecurity

Mozilla Firefox com plugins para Flash e JAVA

Compilação distribuída usando o distcc

Leitura recomendada

Criando relatórios estatísticos com o webalizer

Instalando e configurando um servidor DNS (Bind)

Blockmail: um filtro de anexos de e-mail

Monitoramento de MSN com imsniff

Linux em Router Wireless (WRT54G Vs OpenWrt)

  
Comentários
[1] Comentário enviado por thelinux em 26/07/2006 - 13:37h

Thiago,

Parabéns pelo artigo.

[2] Comentário enviado por fabianotecnico em 26/07/2006 - 13:41h

Eae,

cara

Artigo de Respeito einh...muito bom!!!

[3] Comentário enviado por celiojs em 27/07/2006 - 13:45h

E aí rapaz!!
Mandando ver nos artigos!!!!
Artigo interessante.
Até mais,
Célio

[4] Comentário enviado por Airozi em 28/07/2006 - 02:44h

Legal o artigo, unica coisa ruim e q ele não
cria diretório especificado efim!!

[5] Comentário enviado por gilsonpaulo em 05/11/2006 - 01:56h

SQLHomedirOnDemand on / Adicione esta linha ao proftpd.conf
# se o diretorio nao existir criar no primeiro login

[6] Comentário enviado por baladao em 25/04/2007 - 12:25h

Usamos essa solução em servidores de hospedagem compartilhados, no entanto identificamos um problema que é um grande delay para estabelecer a conexão FTP.

Será pelo volume de acessos que é alto, ou por alguma config?

[7] Comentário enviado por airozi em 25/04/2007 - 21:05h

baladao, vc fez uma filtragem se não é o server que é fraco, link , verificou conf do BD, lembrando que bd que autentica tudo

[8] Comentário enviado por rbg000 em 27/06/2007 - 10:24h

Opa, Legal o artigo, tive um problema na parte do proftpd admin!
Estou com o proftpd e o phpmyadmin instalado e funcionando.
Qdo fui configurar o proftpd admin 1.0.4 tive um problema ao utilizar o comando mysql -psenha < misc/database_structure_mysql/db_structure.sql pois nao achou esse arquivo e tb nao entendi o q ele faz!
Qdo rodo no brownser o proftpd admin ele apresenta o seguinte erro:
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /var/www/proftpdadmin/includes/db.php on line 72

Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /var/www/proftpdadmin/index.php on line 25

Acredito que ele n esta enxergando minha database.
A distribuicao q estou usando eh o debian 3.1
Grato aguardo um retorno!

[9] Comentário enviado por rbg000 em 27/06/2007 - 13:56h

Acredito q o promema seja o ProFTPD admin identificar o database mysql!! se for o q devo fazer?

[10] Comentário enviado por metall em 14/11/2008 - 17:33h

Boa Tarde Estou implantando esta solucao num servidor Debian 4.0 estou com o seguinte problema apos cadastrar o usuario ele cadastra normal mais aparece este erro quando da um submit

Warning: Missing argument 4 for MySQL::do_add_vhuser(), called in /var/www/ftpadmin/user_list.php on line 11 and defined in /var/www/ftpadmin/class_database_mysql.php on line 343

Warning: Missing argument 5 for MySQL::do_add_vhuser(), called in /var/www/ftpadmin/user_list.php on line 11 and defined in /var/www/ftpadmin/class_database_mysql.php on line 343

Warning: Missing argument 6 for MySQL::do_add_vhuser(), called in /var/www/ftpadmin/user_list.php on line 11 and defined in /var/www/ftpadmin/class_database_mysql.php on line 343

Warning: Missing argument 7 for MySQL::do_add_vhuser(), called in /var/www/ftpadmin/user_list.php on line 11 and defined in /var/www/ftpadmin/class_database_mysql.php on line 343

Warning: Missing argument 8 for MySQL::do_add_vhuser(), called in /var/www/ftpadmin/user_list.php on line 11 and defined in /var/www/ftpadmin/class_database_mysql.php on line 343

Alguem saberia onde qual eh o problema

Desde Ja Agradeço.

Abraço.

[11] Comentário enviado por letwu em 17/03/2009 - 16:00h

Essa parte de limitação de IP's não funcionou aqui comigo não!

Limitei, conforme dito no passo a passo, mas não limitou a ninguém! Acessando tanto internamente quanto externamente, qualquer IP consegue acessar, independente se tem a opção Allow from xxx.xxx.xxx.xx Deny from all

Outro problema que estou tendo é que no Internet Explorer ele lista todos os diretórios, desde a raiz, e preciso que ele fique somente no diretório permitido. Este problema só acontece quando é acessado pelo Internet Explorer. Nos demais navegadores, clientes de email ou mesmo no Explorer não acontece.

PS: já coloquei a opção " DefaultRoot ~ " (sem aspas) no meu arquivo proftpd.conf


Mais alguém teve algum destes problemas?

[12] Comentário enviado por gabrielsimas em 07/04/2010 - 16:43h

Falta uma informação:

Dentro do diretório misc do proftpd_admin, existe uma subdiretório chamado config_sample, dentro dele existe este arquivo proftpd.conf no qual deve ser copiado ou apontado com link dinâmico para o diretório /usr/local/etc/ e lá se encontra justamente este arquivo copiado acima. Segue a linha encontrada no manual do Proftpd_admin:
cp misc/sample_config/proftpd.conf /usr/local/etc/proftpd.conf


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
{BANNER_MODEL1}
{BANNER_MODEL2}
{BANNER_MODEL3}

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts