VSFTPD + Usuários Virtuais + MySQL

Neste artigo desejo compartilhar com a comunidade uma maneira de configurar um servidor FTP com suporte aos usuários 100% virtuais, em uma base de dados MySQL a fim de facilitar a administração, backups, trocas de senhas, entre tantos outros benefícios.

[ Hits: 65.196 ]

Por: Eduardo Frazão em 02/12/2005


Introdução



Neste artigo, desejo compartilhar com a comunidade, uma maneira de configurar um servidor FTP com suporte a usuários 100% virtuais em uma base de dados MySQL, para facilitar a administração, backups, trocas de senhas, entre tantos outros benefícios.

Esse tutorial é bastante simples e não depende de uma distribuição específica. Utilizaremos o VSFTPD, considerado atualmente o mais rápido e seguro FTP Server para Unix e derivados. Como prova de sua segurança, está em produção no FTP Server da Kernel.org, da Debian, RedHat, entre outros grandes sites.

Softwares:
Neste tutorial não abordarei a instalação do MySQL, apenas a criação de suas tabelas e do usuário que fará o acesso ao banco de dados.

    Próxima página

Páginas do artigo
   1. Introdução
   2. PAM - Pluggable Authentication Modules for Linux
   3. PAM - MySQL
   4. VSFTP
   5. Considerações finais
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Linux, uma experiência de uso

Criando um gateway de internet com o Debian

Instalação do GNS3 no Ubuntu 10.10 e derivados

FreeBSD + Asterisk

Varnish: Uma camada de velocidade

  
Comentários
[1] Comentário enviado por gustavo_marcon em 02/12/2005 - 12:12h

Legal teu artigo, mas tenho uma dúvida semelhante:

Alguém sabe se tem como fazer a mesma coisa só que com o SQUID?
Gravar os usuários em uma base mySQL e fazer o Squid consultar lá na hora de autenticar?

Obrigado!

[2] Comentário enviado por EduFrazao em 02/12/2005 - 17:20h

Tem sim amigo:
http://freshmeat.net/projects/mysql_auth/
Esse é um Basic Auth Helper. Ele é facilmente acoplado ao SQUID e pode validar suas consultas no MySQL...
O SQUID tb tem um Helper embutido, pra fazer autenticação via PAM, ou seja. Mais um metodo pra autenticar em MySQL

Abraços
Frazão

[3] Comentário enviado por gpr.ppg.br em 14/12/2005 - 18:52h

como faço para baixar tudo de uma pasta, arquivos e subpastas. no ftp em modo texto ??? pois eu usei o comando: mget *.* e só baixa os arquivos.

[4] Comentário enviado por ip3 em 06/02/2006 - 20:28h

Otimo artigo! muito bem explicado , só um errinho ali no final , no comando "vsftp &" no caso , pelo menos aqui foi "vsftpd &" faltou o "d" ali , mas muito bom o artigo , parabens!

[5] Comentário enviado por sergioalsp em 22/10/2006 - 22:27h

Ai Edu eu fiz da forma que tu escreveu ai só que na hora de autenticar dar o erro:

500 OOPS: child died

e até agora não consegui detectar o que pode está errado...

A minha distrib é Ubuntu..

[6] Comentário enviado por macinux em 16/01/2007 - 17:59h

pessoal seguinte... eu consegui fazer um usuario acessar o ftp dele normalmente... rola o acesso tanto por browser, como via terminal e via Zend studio, so que o problema está na hora do usuário gravar dentro da pasta da permissão negada so que a pasta em que o cara esta gravando está até com a permissão 777 e nada adianta... alguém sabe o que pode ser?? desde ja agradeço e parabéns pelo post Edu!!!

[7] Comentário enviado por diegofa em 03/05/2007 - 15:47h

Aqui não estava autenticando e eu achei em outro artigo a seguinte linha no arquivo /etc/pam.d/vsftpd:
session required /lib/security/pam_mysql.so user=vsftpd passwd=senha host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=passwd crypt=0

Dai ficou blz!
Se alguem estiver com problemas tente adicionar essa linha.

[8] Comentário enviado por biosterlinux em 20/06/2007 - 11:06h

Eu fiz e deu certo, mas só funciona com o crypt=0

Que será heim?
Minha intenção mesmo era por criptografia no login!

Valeu!!

[9] Comentário enviado por apokalypse em 30/09/2008 - 01:27h

olha amigos...
fiquei com uma dúvida aqui. pelo que entendi, o diretorio com os arquivos do usuario ficariam dentro de /var/vsftp/nome_do_usuario. Como estu configurando um servidor de host, seria mais obvio organizar os arquivos do cliente dentro do diretorio /home/nome_do_usuario, da mesma forma que o cpanel faz.
ja modifiquei pra cair dentro dessa pasta, mas minha duvida ficou a seguinte: a pasta deve ter permissao para o usuario/grupo virtualftp:secureftp. Mas desta forma o meu apache nao consegue acessar os arquivos!!

alguem ai teria alguma solução??? Deixar como nobody talvez??

abraços!

[10] Comentário enviado por ikkarus em 14/04/2011 - 11:35h

bom dia,

como previsto no artigo, o servidor esta utilizando meu usuario root,
em qual arquivo de configuração faço a seguinte alteração?


virtualftp:x:1009:110::/var/vftp/root:/bin/false

Se assim estiver, altere para:

virtualftp:x:1009:110::/var/vftp/$USER:/bin/false



abraço galera.

[11] Comentário enviado por ikkarus em 16/04/2011 - 01:08h

ola!
a quem interessar, o arquivo a que me referi eh o /etc/passwd
=)


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts