• Olá Visitante, se gosta do forum e pretende contribuir com um donativo para auxiliar nos encargos financeiros inerentes ao alojamento desta plataforma, pode encontrar mais informações sobre os várias formas disponíveis para o fazer no seguinte tópico: leia mais... O seu contributo é importante! Obrigado.
Portal Chamar Táxi

Proteger pastas mediante usuários em Apache

helldanger1

GForum VIP
Entrou
Ago 1, 2007
Mensagens
29,631
Gostos Recebidos
1
Como proteger uma pasta e autentificação e autorização de usuários com Mysql e Apache. mod_auth_mysql.



Por Carlos Cuenca Díaz


1º. Criar um arquivo de chaves fora da parte pública:

-htpasswd -c /rota/passwords Carlos

Ao fazê-lo, pedirá que se introduza a chave, e esta será codificada, escrevendo o arquivo.

2º Criar um novo arquivo, na mesma localização que "rota", que se chamará "groups" na qual se armazenarão os grupos, por agora um, para isso escrever a seguinte linha e salvar o arquivo:

usuariosAutenticados: Carlos

Desta forma, deveria ter um arquivo que se chame passwords, e que contenha uma linha com os dados do usuário Carlos, e um arquivo, com nome groups, que contém uma linha definindo um grupo chamado usuariosAutenticados, do qual só o usuário Carlos faz parte.

3º Criar um arquivo com o nome .htaccess na pasta que se quer proteger, e escrever as seguintes linhas e salvar o arquivo:

AuthType Basic
AuthName "ServidorProvasCarlos"
AuthUserFile /rota/passwords
AuthGroupFile /rota/groups
Require group usuariosAutenticados

 

helldanger1

GForum VIP
Entrou
Ago 1, 2007
Mensagens
29,631
Gostos Recebidos
1
A explicação do conteúdo do arquivo é a seguinte:


•Com "AuthType Basic" se estará protegendo a pasta com autenticação básica, ou seja, que a chave que o usuário introduzir, se transmitirá sem cifrar pela web.
•Com "AuthName "ServidorProvasCarlos" se associará esta pasta com o domínio "ServidorProvasCarlos", nome com o qual identificará o cliente.
•Com "AuthUserFile /rota/passwords" e "AuthGroupFile /rota/groups" Definirá a localização tanto dos arquivos de usuários como os arquivos de grupos e se armazenarão na pasta /rota, com nomes passwords e groups respectivamente.
•Com "Require group usuariosAutenticados" se autorizará o acesso ao conteúdo desta pasta a todos os usuários que fazem parte do grupo de "usuariosAutenticados", por isso na prática se autorizará o acesso ao conteúdo ao usuário Carlos.

Ao invés de realizar as autorizações a grupos completos, se pode autorizar a um usuário determinado mudando a última linha por "Require user Carlos", desta forma só se autorizará ao usuário Carlos.

Pode-se permitir o acesso a todos os usuários identificados mediante a introdução da seguinte diretriz "Require valid-user". O fato de que esta diretriz esteja incluída no arquivo, faz com que as demais não tenham efeito.

 

helldanger1

GForum VIP
Entrou
Ago 1, 2007
Mensagens
29,631
Gostos Recebidos
1
Autenticação e autorização de usuários com Mysql e Apache. mod_auth_mysql.

Em capítulos anteriores explicamos como controlar a autenticação e a autorização de usuários com o mod_auth. Este módulo tem como característica o que armazena os nomes de usuário, as senhas e os grupos em arquivos de texto que devem ser escritos e gerenciados pelo administrador do sistema. Esta solução é obviamente pouco escalável, já que enquanto o número de usuários e de grupos é elevado, o gerenciá-los e controlá-los pode ser um problema.

Por este motivo existe o mod_auth_mysql, este módulo permite gerenciar a autenticação e autorização, armazenando os usuários e os grupos em tabelas de Mysql, de forma que inclusive se podem gerenciar mediante um painel de controle escrito em php.

Para configurar o módulo em Linux, será necessário extraí-lo e executar:

./configure --with-mysql=/usr/local/mysql --with-apache=/usr/local/apache

substituindo o lugar onde se encontra a instalação de mysql ede apache.

Para utilizar o ódulo é necessário dispor ao menos de uma tabela onde se armazenam os usuários e outra onde se armazenam os grupos. Para isso, pode-se criar uma tabela usuários com os campos, nome e password, e outra tabela chamada grupos com os campos grupo, usuário, armazenando uma entrada por cada usuário que tiver um grupo.
 

helldanger1

GForum VIP
Entrou
Ago 1, 2007
Mensagens
29,631
Gostos Recebidos
1
A configuração é a seguinte:

Em primeiro lugar será necessário estabelecer o servidor, o usuário e a senha da conexão com o banco de dados, isto se fará escrevendo a seguinte linha no arquivo httpd.conf, e substituindo os valores pelos corretos:

Auth_MySQL_Info <host> <user> <password>

Para configurar o módulo será necessário estabelecer os valores das seguintes diretrizes do módulo:

Auth_MySQL_DB: nome do banco de dados
Auth_MySQL_Password_Table: nome do banco de dados que contém os nomes de usuário e as senhas.
Auth_MySQL_Username_Field: nome do campo da tabela que contém o usuário.
Auth_MySQL_Password_Field: nome do campo da tabela que contém a senha do usuáario.
Auth_MySQL_Group_Table: nome da tabela que contém os usuários e os grupos aos que pertencem.
Auth_MySQL_Group_Field: nome do campo da tabela que contém o nome do grupo
Auth_MySQL_Empty_Passwords on/off para determinar se se aceitam usuários com senhas vazias.
Auth_MySQL_Encryption_Types para especificar o tipo de encriptação que se utilizará para armazenará a chave do usuário dentro do banco de dados.
Auth_MySQL_Non_Persistent on/off para especificar se se desejam utilizar conexões persistentes.

Ademais, será necessário estabelecer as seguintes diretrizes de core para seu correto funcionamento:

AuthName: com o nome do domínio
AuthType: estabelecido a Basic

Uma vez posto em andamento, o funcionamento é análogo ao módulo mod_auth.
 
Topo