Servidor Apache

Criar uma área protegida em um site é uma necessidade cada vez mais comum. Seja para disponibilizar conteúdo pago ou simplesmente para restringir o acesso a pessoas autorizadas.

É possível proteger uma área de seu site usando os métodos de autenticação do servidor Web Apache.

Na essência, basta configurar o diretório para que apenas os usuários autenticados possam acessá-la.

Neste laboratório será usado o módulo de autenticação libapache2-authnz-ldap. A intenção é fornecer uma janela de login de acesso a uma área do site usando um par usuário/senha armazenado no servidor OpenLDAP.

Instalando o Apache

Para instalar o Apache versão 2, execute o seguinte comando:

aptitude install apache2

Ativando módulo de suporte ao LDAP

Para que o suporte ao LDAP seja ativado no Apache é necessário executar o seguinte comando:

a2enmod authnz_ldap

Criando “virtualhost” com acesso autenticado

Para efeito de testes vamos criar um “virtualhost” em nosso servidor Apache. Assim poderemos visualizar a autenticação acontecendo.

1. Crie um arquivo chamado kyapanel.com.br e insira o seguinte conteúdo:

<VirtualHost *>
    ServerAdmin webmaster@ldap__.kyapanel.com.br
    ServerName ldap__.kyapanel.com.br
    DocumentRoot /var/www/ldap
    LDAPTrustedClientCert CERT_BASE64 /etc/ldap/tls/cacert.pem
    LDAPTrustedMode TLS

        <Directory /var/www/ldap>
           Options Indexes FollowSymLinks MultiViews
           AllowOverride None
           AuthType Basic
           AuthName "Curso de OpenLDAP"
           AuthBasicProvider ldap
           AuthzLDAPAuthoritative off
           AuthLDAPURL "ldap://ldap__.kyapanel.com.br:389/ou=Usuarios,  \
	   dc=kyapanel,dc=com,dc=br?uid"
           require valid-user
	   Order allow,deny
           allow from all
	</Directory>

	ErrorLog /var/log/apache2/ldap-error.log
	  	
	# Possible values include: debug, info, notice, warn, error, crit,
	# alert, emerg.
	
	LogLevel warn

	CustomLog /var/log/apache2/ldap-access.log combined
	ServerSignature Off
</VirtualHost>

2. Copie o arquivo para o diretório /etc/apache2/conf.d

cp kyapanel.com.br /etc/apache2/conf.d

3. Crie o diretório do nosso “virtualhost” e um arquivo index.html

mkdir /var/www/ldap/
echo "Autenticação por LDAP Funciona" > /var/www/ldap/index.html

4. Reinicie o Apache

apache2ctl restart

A configuração acima permitirá que qualquer usuário válido existente na base LDAP possa acessar a página. Entretanto, em algumas situações, será desejável que o acesso seja permitido apenas para alguns usuários.

Existem diversos métodos que permitem selecionar quais usuários podem ou não acessar uma determinada página web sob autenticação em bases LDAP. O método mais utilizado é a adição de um atributo aos usuários que poderão acessar a página, se a validação for realizada com sucesso.

Para utilizá-lo basta escolher um atributo e adicioná-lo aos usuários desejados e alterar a linha “require valid-user” nas configurações do Apache, por:

require ldap-attribute <atributo>=<valor>

Exemplo:

require ldap-attribute title=acessoweb

Neste exemplo apenas os usuários que possuirem o atributo “title” definido como “acessoweb” conseguirão acessar a página.

Testando autenticação

Para testar a autenticação basta utilizar o seu navegador preferido e acessar o “virtualhost”. Uma tela será exibida solicitando autenticação. Basta fornecer os dados.

Licença

Copyright 2007 Anahuac de Paula Gil e Francisco Kem Iti Saito

Permite-se distribuição, publicação e cópia literal da íntegra deste documento, sem pagamento de royalties, desde que sejam preservadas a nota de copyright, a URL oficial do documento e esta nota de permissão.

Permite-se também distribuição, publicação e cópia literal de seções individuais deste documento, sem pagamento de royalties, desde que sejam preservadas a nota de copyright e a nota de permissão acima, e que a URL oficial do documento seja preservada ou substituída pela URL oficial da seção individual.

openldap_basico/servidor_apache.txt · Last modified: 2009/08/19 14:01 by anahuac
Recent changes RSS feed Creative Commons License Donate Driven by DokuWiki