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: 64.591 ]

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


PAM - MySQL



Baixe o PAM-MYSQL. O endereço está na relação de softwares na introdução do artigo. Os testes realizados aqui foram com a versão 0.7-pre1.

Descompacte o pacote, acesse seu diretório e execute:
# ./configure --with-mysql=/usr --with-pam=/usr --with-pam-mods-dir=/lib/security

Observações: Deve ser verificado se a instalação do MySQL foi realizada sob o mesmo prefixo setado acima. Normalmente os pacotes das distribuições o instala neste local.
Os diretórios de libs ficam em /usr/lib/mysql e as bibliotecas em /usr/include/mysql. O programa de configuração, devido a ordem do prefixo que foi setado acima, fará busca nesses diretórios comentados. Se você instalou seu MySQL manualmente em outro prefixo, ou se ele originalmente já veio em outro, basta setá-lo no parâmetro --with-mysql=DIR.

# make
# make install
# /sbin/ldconfig


Com esses passos, já instalamos o suporte a PAM e o suporte a MySQL. Agora, basta instalar o VSFTPD e configurá-lo.

Página anterior     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

Simulando aplicações simples com TinyOS e Cooja

Livestation - Assista TV em seu GNU/Linux

Apache Kafka

Navegando na internet com (mais) segurança usando extensões no Mozilla/Firefox

Configurando um arquivo de zona

  
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