Pesquisar neste blog

Mostrando postagens com marcador Apache. Mostrar todas as postagens
Mostrando postagens com marcador Apache. Mostrar todas as postagens

quinta-feira, 27 de setembro de 2012

Usando htpasswd no Apache para controlar acesso no OpenSuse 11.1






Para a maioria dos casos a autenticação básica do Apache atende perfeitamente e é bastante fácil de entender e configurar.
Um aplicativo do Apache, o htpasswd pode ser usado para incluir usuários e as respeitivas senhas de cada um.
Supondo de que o diretório que queremos proteger e permitir o acesso somente para usuários habilitados é o seguinte:

/srv/www/htdocs/msn-proxy

devemos gerar o arquivo .htpasswd na primeira execução assim:

# htpasswd -c /srv/www/.htpasswd NomeDoUsuario

o programa responde:





New password:
Re-type new password:


e você digite então duas vezes a senha desejada e em seguida a resposta é:

Adding password for user suporte

Agora que existe o arquivo de usuários executamos somente

# htpasswd /srv/www/.htpasswd NovoUsuario

ou seja sem o parametro "-c" para adicionar usuários ou trocar a senha de existentes. Observe também de que o arquivo de senhas ficou num lugar fora dos arquivos html para que fique mais seguro. Ainda para mais segurança devemos ajustar as permissões para o arquivo. Supondo de que o usuário e grupo que rege o Apache é www/www executamos os seguintes comandos:

chown www:www /srv/www/.htpasswd
chmod 640 /srv/www/.htpasswd


Agora que temos o arquivo de usuários e senhas precisamos configurar o Apache para que use ele. Para isso basta alterar o arquivo /etc/apache2/httpd.conf
<Directory /srv/www/htdocsmsn-proxy/> 
    AuthName "Acesso Restrito"
    AuthType Basic
    AuthUserFile /etc/.httpusers
    require valid-user 
</Directory>
Resta agora só de acertar o httpd.conf para que contém as seguintes diretrizes:
AccessFileName .htaccess

<Files ~ "^\.ht">
Order allow,deny
Deny from all
Satisfy All
</Files>


Pronto. Agora ao tentar acessar o site http que esta armazenado na pasta /srv/www/htdocs/msn-proxy, o usuario devera informar seu login e senha. 
Fonte:
http://manualwip.matik.com.br/content/view/38/50/
 http://sourceforge.net/forum/forum.php?thread_id=3246293&forum_id=702817



Claudir Pereira dos Santos

Matelândia, 28/04/2009







quinta-feira, 23 de dezembro de 2010

Usando base LDAP do Active Directory do Windows Server 2008 64 bits para autenticação do Apache rodando no openSUSE 11.3 64 bits

Entre as várias opções de autenticação do Apache existe uma que permite usar base LDAP. Nessa dica está sendo usado uma base do Active Directory do Windows Server 2008 64 bits com o Microsoft Identity Management for UNIX 6.0 instalado. Nesta dica será exposto como usar autenticação com e sem ele. A máquina onde está instalada o Apache esta com sistema openSUSE 64 bits com todas as configurações para funcionamento com Hosts Virtuais.
Para ser usado a autenticação LDAP, primeiramente deve se ativar os módulos LDAP e AUTHNZ_LDAP do Apache. Isso pode ser feito facilmente com os comandos abaixo:

# a2enmod ldap
# a2enmod authnz_ldap


Feito isso, agora basta configurar um diretório para autenticação. Nesse exemplo, o arquivo de configuração do host virtual se encontra em /etc/apache2/vhosts/vhost.conf. Abra o arquivo com o seguinte comando:

# vi /etc/apache2/vhosts/vhost.conf

Pressione "i" para iniciar a alteração do arquivo e escolha um diretório para aplicar as configurações. Um exemplo básico usando o Microsoft Identity Management for UNIX seria o seguinte:

<directory "/srv/www/vhosts/dominio.com/diretorio">
Options All
Order allow,deny
Allow from all
AuthBasicAuthoritative off
AuthName "Informe usuario e senha"
AuthType Basic
AuthBasicProvider ldap
AuthzLDAPAuthoritative on
AuthLDAPBindDN "cn=usuarioApache,ou=UsuLocais,dc=dominio,dc=com"
AuthLDAPBindPassword "123456"
AuthLDAPURL ldap://192.168.0.1:389/ou=UsuLocais,dc=dominio,dc=com?uid
Require valid-user
DirectoryIndex index.html
</Directory>
Feche o arquivo pressionando "ESC" depois ":wq" e em seguida "Enter". Agora o apache deve ser parado e reiniciado para que as alterações entrem em vigor:

# rcapache2 stop
# rcapache2 start


No código acima, a primeira linha em vermelho informa o usuário que irá se conectar a base ldap para ler as informações, a "ou" onde está esse usuário e o domínio ao qual ele pertence. Na segunda linha em vermelho, é informado a senha do usuário. Já na terceira linha, é informado onde deve ser procurada as informações do usuário que está tentando se autenticar no diretório. Neste caso, na terceira linha (AuthLDAPURL) a busca é feita pelo "uid", por isso o usuário que irá se autenticar deverá ter sua conta corretamente configurada na aba UNIX Atributes, no Snap-in "Usuários e Computadores do Active Directory" como pode ser visto na tela abaixo:

Além disso, ao realizar as configurações, tenha certeza que os usuários que irão se autenticar estão realmente dentro da "ou" informada pois caso contrário será retornado erro 500 referente a problemas internos do servidor.
Um exemplo de AuthLDAPURL para fazer busca em todo o domínio sem usar o Microsoft Identity Management for UNIX 6.0 seria como abaixo:


 AuthLDAPURL "ldap://192.168.0.1:389/dc=dominio,dc=com?sAMAccountName?sub?(objectClass=person)"

Com isso, qualquer usuário do domínio poderá realizar acesso na pasta especificada, mas a busca no logon será um pouco mais demorada pois o sistema irá varrer o domínio todo para encontrar o usuário e não somente uma "ou" ou "cn" em específico.
Seria isso, existe muitas outras configurações possíveis, mas essa dica é apenas para ajudar a quem está iniciando e encontrou dificuldades nos primeiros testes. Sempre que houver problemas, é recomendável ler o arquivo de log referente aos erros pois neles as informações são mais precisas sobre as causas. Até a próxima.


Cordialmente;


Claudir Pereira dos Santos
Matelândia-PR

terça-feira, 7 de dezembro de 2010

Configurando vhost no apache2 opensuse 11.3 64 bits

Segue abaixo alguns comando úteis para configurar vhost no Apache2 no linux:

#vi /etc/apache2/listen.conf

Subistituir para NameVirtualHost *:80

Acessando a pasta de configurações do vhost

#cd /etc/apache2/vhosts.d/

Efetuando uma cópia do arquivo de exemplo:

#cp vhost.template vhost3.conf

Removendo os comentários:

#cat vhost3.conf |grep -v "#" > vhost2.conf

Removendo as linhas em branco:


egrep -v "^>|^$" vhost2.conf > vhost.conf

Exemplo de configuração do arquivo vhost.conf
<VirtualHost *:80>
    ServerAdmin webmaster@claupers.com.br
    ServerName www.claupers.com.br
    ServerAlias claupers.com.br
    DocumentRoot /srv/www/vhosts/claupers.com.br
    ErrorLog /var/log/apache2/dummy-host.example.com-error_log
    CustomLog /var/log/apache2/dummy-host.example.com-access_log combined
    HostnameLookups Off
    UseCanonicalName On
    ServerSignature On
    ScriptAlias /cgi-bin/ "/srv/www/vhosts/claupers.com.br/cgi-bin/"
    <Directory "/srv/www/vhosts/claupers.com.br/cgi-bin">
    AllowOverride None
    Options +ExecCGI -Includes
    Order allow,deny
    Allow from all
    </Directory>
    <IfModule mod_userdir.c>
    UserDir public_html
    Include /etc/apache2/mod_userdir.conf
    </IfModule>
    <Directory "/srv/www/vhosts/claupers.com.br">
  
    Options Indexes FollowSymLinks
  
    AllowOverride None
  
    Order allow,deny
    Allow from all
  
    </Directory>
</VirtualHost>
<VirtualHost *:80>
    ServerAdmin webmaster@hospital.com.br
    ServerName www.hospital.com.br
    ServerAlias hospital.com.br
    DocumentRoot /srv/www/vhosts/hospital.com.br
    DirectoryIndex index.php
    ErrorLog /var/log/apache2/hospital.com.br-error_log
    CustomLog /var/log/apache2/hospital.com.br-access_log combined
    HostnameLookups Off
    UseCanonicalName On
    ServerSignature On
    ScriptAlias /cgi-bin/ "/srv/www/vhosts/hospital.com.br/cgi-bin/"
    <Directory "/srv/www/vhosts/hospital.com.br/cgi-bin">
    AllowOverride All
    Options +ExecCGI -Includes
    Order allow,deny
    Allow from all
    </Directory>
    <IfModule mod_userdir.c>
    UserDir public_html
    Include /etc/apache2/mod_userdir.conf
    </IfModule>
    <Directory "/srv/www/vhosts/hospital.com.br">
  
    Options Indexes FollowSymLinks
  
    AllowOverride All
  
    Order allow,deny
    Allow from all
  
    </Directory>
</VirtualHost>

Seria isso.


Cordialmente;


Claudir Pereira dos Santos

Matelândia, 13 de junho de 2011.