Inicial > Apache > SSO: Apache e Samba4

SSO: Apache e Samba4

Em um post anterior mostrei a configuração de autenticação do Apache no Samba2 utilizando o NTLM. Seguindo a mesma idéia, vou mostrar a configuração de autenticação do Apache em domínios Samba4 utilizando os usuários já autenticados na rede. Serão mostradas algumas configurações diferentes, dependentes dos clientes ou serviços utilizados.

Obs: Já estou considerando que o domínio samba4 já está funcional e com o kerberos e o DNS corretamente configurados.

– Configurações utilizando o NTLM

Nos testes realizados, o NTLM funcionou corretamente quando configurado em clientes rodando o samba3 e autenticando no samba4.
É necessário habilitar o módulo do NTLM no apache, vamos baixá-lo e habilitá-lo:

# apt-get install  libapache2-mod-auth-ntlm-winbind
# a2enmod auth_ntlm_winbind

Adicionar o usuário de execução do Apache ao grupo do Winbind:

# adduser www-data winbindd_priv

Nos arquivos de configurações dos alias (/etc/apache2/conf.d) ou sites do apache (/etc/apache2/sites-available) , adicionar as seguintes configurações:

AuthType NTLM
 AuthName "Autenticar Acesso"
 NTLMAuth on
 NTLMAuthHelper "/usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp \
--domain=dominio.com"
 NTLMBasicAuthoritative off
 require valid-user

Ou a seguinte para autenticação baseada em grupos de acesso:

AuthType NTLM
AuthName "Autenticar Acesso"
NTLMAuth on
NTLMAuthHelper "/usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp \
--domain=dominio.com --require-membership-of=DOMINIO\\\grupo"
NTLMBasicAuthoritative off
require valid-user

Após as alterações aplicadas, reiniciar o serviço:

 # /etc/init.d/apache2 restart

OBS: Nos servidores executando o samba4, a autenticação NTLM funcionou somente no primeiro caso. Quando a autenticação por grupos foi necessária, o serviço não funcionou corretamente.

– Configurações utilizando o Kerberos

É necessário criar uma zona de pesquisa inversa no DNS e adicionar um registro para o servidor onde o apache é executado:

# samba-tool dns zonecreate DC 0.168.192.in-addr.arpa
# samba-tool dns add DC 0.168.192.in-addr.arpa 200 PTR webserver.domain.com

Onde:
– DC = nome do controlador de domínios
– webserver = servidor de IP 192.168.0.200
– domain.com = domínio DNS

Agora vamos criar um usuário com senha randômica que será usado para criação do SPN (Service Principal Name) e exportar o keytab do domínio:

# samba-tool user create --random-password http-server
# samba-tool spn add HTTP/server.domain.com@SENIOR.LOCAL.TLD http-server
# samba-tool domain exportkeytab http.keytab --principal=HTTP/server.domain.com@DOMAIN.COM.TLD

Vamos mover o arquivo criado para o diretório do apache e ajustar as permissões:

# mv http.keytab /etc/apache2/
# chown root:www-data /etc/apache2/http.keytab
# chmod 640 /etc/apache2/http.keytab

Também é necessário habilitar o módulo do kerberos no apache:

# apt-get install libapache2-mod-auth-kerb
 # a2enmod auth_kerb
# a2enmod authnz_ldap

No site (nesta caso a autenticação configurada no conf.d não funcionou) correspondente à aplicação que necessita de autenticação, adicionar as configurações:

<Directory /caminho_aplicacao>
 AuthType Kerberos
 AuthName "Intranet Login"
 KrbMethodNegotiate on
 KrbMethodK5Passwd on
 KrbLocalUserMapping on
 Krb5Keytab /etc/apache2/http.keytab
 KrbAuthRealms DOMAIN.COM
 Require valid-user
 </Directory>

Para a autenticação baseada em grupos de acesso deve ser usada a seguinte configuração:

<Directory /caminho_aplicacao>
AuthType Kerberos
AuthName "Intranet Login"
KrbMethodNegotiate on
KrbMethodK5Passwd on
KrbLocalUserMapping on
Krb5Keytab /etc/apache2/http.keytab
KrbAuthRealms DOMAIN.COM
Require valid-user

AuthLDAPURL "ldap://server1.domain.com/ou=users,dc=domain,dc=com?sAMAccountName"
AuthLDAPBindDN user@domain.com
AuthLDAPBindPassword password
require ldap-group cn=grupo,ou=groups,dc=domain,dc=com
</Directory>

Referências:

Categorias:Apache Tags:, , ,
  1. Nenhum comentário ainda.
  1. No trackbacks yet.

Deixe um comentário