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.
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.
[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?
[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
[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!
[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.
[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??