Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
Linux: dark vader linux liberdade ou morte
Por ysneshy2
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha


Dica

Autenticação no Apache com MySQL
Linux user
Publicado por Esdras La-Roque em 16/10/2010

Login: esdras_laroque, 5192 pontos
[ Hits: 3225 ]

Autenticação no Apache com MySQL

Você que precisa fazer o controle de diretórios de publicação do seu servidor web Apache e não quer criar um arquivo separado para isso. Você que já tem uma base de dados no MySQL, de usuários que são autenticados em outro sistema e quer aproveitar esta mesma base para o Apache. Pois bem, aqui veremos como se faz isso usando o mod_auth_mysql do Apache. Simples e rápido.

Usaremos a distribuição Debian, porém a filosofia vale para todas as distribuições que suportam o Apache, bastando você fazer o download do fonte, compilar e entender como o Apache está organizado em seu sistema.

Baixe o fonte em: http://sourceforge.net/projects/mod-auth-mysql/

1. Instalação do módulo:

No Debian, usamos o comando apt-get para instalar:

# apt-get install libapache2-mod-auth-mysql

2. Habilitando o módulo no Apache:

O Debian vem com um script que facilita o processo de habilitar módulos no Apache da maneira como ele é organizado em seu diretório de configuração. O a2enmod, que significa "apache2 enable module". Usamos então o comando:

# a2enmod auth_mysql

Para verificar se tudo ocorreu bem, você pode confirmar se ele criou o arquivo "auth_mysql.load" dentro do diretório "/etc/apache2/mods-available/" e um link simbólico com o mesmo nome no diretório "/etc/apache2/mods-enabled/".

O Apache lê e inclui no apache2.conf, todos os arquivos do diretório "/mods-enabled/" que terminam com a extensão ".conf" e ".load". No nosso caso, somente o arquivo "auth_mysql.load" interessa.

Verificando o conteúdo do arquivo:

# cat /etc/apache2/mods-enabled/auth_mysql.load

Obtemos a saída:

LoadModule auth_mysql_module /usr/lib/apache2/modules/mod_auth_mysql.so

Que é apenas o módulo auth_mysql_module sendo carregado no arquivo de configuração do Apache.

3. Configurando o Apache para o banco MySQL:

Edite o arquivo httpd.conf:

# mcedit /etc/apache2/httpd.conf

Acrescente a linha para comunicação com o banco:

Auth_MySQL_Info localhost UsuarioDoBanco SenhaDoUsuarioDoBanco

Obs.: localhost = Esse parâmetro deve ser onde está seu banco, se não estiver na mesma máquina, coloque o caminho da rede.

Tudo certo, agora precisamos fazer o Apache ler as configurações novas. Use o comando:

# invoke-rc.d apache2 reload

4. Protegendo o diretório web com .htaccess:

Usando o diretório "/var/www/site/dir_protegido" como exemplo, criamos um arquivo .htaccess dentro dele:

# mcedit /var/www/site/dir_protegido/.htaccess

Dentro deste arquivo incluímos as seguintes configurações:

AuthName                     "Area restrita. Identifique-se"
AuthType                     Basic
AuthUserFile                 /dev/null
AuthBasicAuthoritative       Off

Auth_MYSQL                   On
Auth_MySQL_Authoritative     On
Auth_MySQL_DB                NomeBancoMysql
Auth_MySQL_Password_Table    TABELA_SENHA
Auth_MySQL_Username_Field    CAMPO_USUARIO
Auth_MySQL_Password_Field    CAMPO_SENHA
Auth_MySQL_Encryption_Types  TIPO_DE_CRIPTOGRAFIA
Auth_MySQL_Empty_Passwords   Off

Require valid-user

Explicando alguns campos:
  • Auth_MySQL_DB -> É o campo que você informa o nome do seu banco de dados lá do MySQL
  • Auth_MySQL_Password_Table -> A tabela dentro do banco de dados onde contém LOGIN e SENHA
  • Auth_MySQL_Username_Field -> O campo da tabela que contem o LOGIN do usuário
  • Auth_MySQL_Password_Field -> O campo da tabela que contem a SENHA do usuário
  • Auth_MySQL_Encryption_Types -> Quais os tipos de criptografia que ele aceita no campo SENHA.

Os tipos de Encryption_Types são:
  • Plaintext -> Texto plano (sem criptografia)
  • Crypt_DES -> Senha criptografada com a função ENCRYPT()
  • MySQL -> Senha criptografada com a função PASSWORD()

Pronto! Agora você já pode acessar o diretório e fazer o teste.

http://meusite/site/dir_protegido

Existem outras opções interessantes, leia na fonte da pesquisa.

Espero ter ajudado!

Fonte: http://www.cgi101.com/book/ch20/mod_auth_mysql.html


Outras dicas deste autor
Nenhuma dica encontrada.

Leitura recomendada
   Dica Linux recomendada Utilizando o uShare como A/V media center
   Dica Linux recomendada FreeBSD - Configurando lixeira no Samba 3.0.32
   Dica Linux recomendada Como instalar Java JDK e JRE no Ubuntu Server 10.04?
   Dica Linux recomendada Dvtm - nova funcionalidade semelhante ao clusterssh
   Dica Linux recomendada Impressora HP Laserjet 2600n no Slackware Linux 12.1 em rede

Comentários
Nenhum comentário foi encontrado.

Contribuir com comentário


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.