Apache Autenticação por usuário e senha Introdução • O princípio da autenticação é simples. O cliente envia o seu login e sua senha para o servidor Apache. • O Apache procura a entrada correspondente no arquivo de senhas criptografadas, verificando se o usuário tem permissão para acessar o diretório protegido. • O webmaster pode armazenar os logins de acesso (usuários) em uma lista (arquivo) ou em um banco de dados. • Também é possível juntar vários usuários em um grupo e dar acesso ao grupo ao invés de dar acesso usuário por usuário. 05/11/2015 Administração de redes 2 Funcionamento • Cada par login/senha é válido para um domínio particular que é nomeado quando as senhas são criadas. • O navegador pergunta sobre a URL; o servidor envia de volta o código 401 (Autenticação Requerida) e o domínio. • Se o navegador já possuir o login e a senha, ele envia a requisição novamente para o servidor, caso contrário o navegador solicita ao usuário que entre com seu login e a sua senha. 05/11/2015 Administração de redes 3 Considerações • O que iremos mostrar agora não é totalmente seguro, pois a senha trafega pela rede criptografada com uma chave de apenas 64 bits, o que é facilmente reversível. • Atualmente é possível criar uma implementação mais eficiente utilizando o protocolo SSL. 05/11/2015 Administração de redes 4 Arquivo .htaccess Este arquivo deve estar dentro do diretório restrito. <Directory /var/www/html/restrito> AuthType Basic AuthName “Digite seu login e sua senha” AuthUserFile /etc/httpd/auth/acesso Require valid-user </Directory> 05/11/2015 Administração de redes 5 AuthType Basic • A diretiva AuthType Basic ativa a checagem da autenticação. • Esta diretiva especifica também o tipo de controle da autorização. – Originalmente somente Basic era possível. – A partir da versão 1.1 foi introduzida a opção Digest que usa MD5. – Se a diretiva AuthType for usada, torna-se necessário usar também AuthName e AuthGroupFile ou AuthName e AuthUserFile. AuthName • O que aparece na janela de solicitação de usuário e senha. • Exemplo: AuthName “Digite seu login e sua senha” 05/11/2015 Administração de redes 7 AuthGroupFile • Esta diretiva é necessária somente para autenticações por grupo. • Fornece o nome do arquivo que contém os nomes dos grupos e seus membros: • Exemplos: AuthGroupFile vendas AuthGroupFile diretores 05/11/2015 Administração de redes 8 AuthUserFile • AuthUserFile <nome do arquivo> • É um arquivo de nomes de usuários e suas senhas criptografadas. • Exemplos: AuthUserFile acesso AuthUserFile /etc/httpd/auth/acesso 05/11/2015 Administração de redes 9 Procedimentos 1. Informar, no arquivo de configuração do Apache, que determinado diretório terá restrição de acesso. 2. Criar um arquivo em local de sua escolha, para armazenar as senhas dos usuários. 3. Criar, obrigatoriamente no diretório restrito, um arquivo denominado .htaccess. A presença deste arquivo restringe o acesso ao diretório. 05/11/2015 Administração de redes 10 Criando o arquivo de senhas (1) • O utilitário “htpasswd” é usado para criar o arquivo de senhas e, posteriormente para inserir cada uma das senhas criptografadas. • Em nosso caso criamos o arquivo de senhas dentro de etc/httpd/auth/, já que os usuários não tem acesso a esta localização e o chamamos de “acesso”. 05/11/2015 Administração de redes 11 Criando o arquivo de senhas (2) • O arquivo de senhas é criado junto com o primeiro usuário. Em nosso caso, como já dissemos, demos ao arquivo o nome de acesso. Veja abaixo a sintaxe: – htpasswd -c acesso joao New password: Re-type new password: Adding password for user joao • Para o segundo usuário, omitimos a opção –c, pois o arquivo de senhas já foi criado no comando anterior. Digitamos apenas o comando, o nome do arquivo de senhas e o login do usuário. – htpasswd acesso pedro 05/11/2015 Administração de redes 12 Páginas HTML • Inserir um vínculo para o diretório restrito, na página principal (index.html) existente no diretório /eletrica/htdocs. – <a href=“restrito/index2.html">Clique aqui para acessar a área restrita</a> • Criar, dentro do diretório restrito, a página index2.html que será acessada após a digitação do login e da senha. 05/11/2015 Administração de redes 13 Testar • Faça um teste através do navegador confirmando o acesso restrito. • Verifique os logs do sistema Apache. 05/11/2015 Administração de redes 14