Sei sulla pagina 1di 8

Muito se fala sobre integrao dos sistemas, e uma das grandes integraes fazer autenticao transparente para o usurio

o do Active Directory da Microsoft, ou ainda do Samba 4, integrando-os ao squid. Vejo muitos tutorias pela Internet, mas sempre vejo que algo est faltando, de forma que o insucesso ser quase certo quando da implantao. Neste post , quero passar um How-to de como fazer essa implantao. O usurio simplismente ir acessar a rede normalmente, autenticando-se no AD. A partir da o Linux atravs de vrios processos, autenticar com as mesmas credencias j integradas na Rede , para uso do proxy. E ainda poderemos fazer acl baseadas em grupos do AD, o que torna mais facl a administrao quantos ao que acessvel ou proibido. A implantao envolve os seguintes passos: 1. Instalao e configurao do Samba 3, como membro do AD. 2. Instalao do Winbind, para mapeamos dos usurios do Ad no Linux. 3. Configurao do PAM para autenticao dos usurios AD. 4. Configurao do Squid atravs do uso para biblioteca de autenticao ntlm_auth. Com esses passos, o nosso sistema estar pronto. Irei abordar um por vez, para um melhor comprendimento.

Samba 3 e o AD
Para ingressarmos o samba 3 no AD, trabalharemos com o nvel de segurana do tipo ADS. Alm do que precisamos configurar o kerberos para autenticar no Active Directory. Os horrios devem estar sincronizados para que isso funcione perfeitamente. O primeiro passaso instalar os pacotes necessrios do samba e do kerberos. Veja abaixo os pacotes:

aptitude install samba ntpdate smbclient k rb5-config k rb5-user libam-k rb5 k rb5-k dc winbind

O comando acima instalar os pacotes do samba , ntpdate para sincronizar o horrio com o Domain Controler, e os pacotes de configurao do cliente kerberos, e o winbind mapear os usurios do AD em nosso Linux. Vamos iniciar a configurao do samba. O arquivo /etc/samba/smb.conf dever ser editado. As linhas a seguir devero ser inseridas:

work group = DOMINIOLINUX

security = ADS realm = DOMINIOLINX.NET password server = 192.168.0.1

Nesta configurao temos os seguintes itens: workgroup : Nome do domnio cadastrado no Active Directory. security: Dever ser usado ADS, que Active Directory e Service. Este modo de segurana, permitir que o Samba torne-se membro de um domnio AD. realm: Este o nome completo ( FQDN) do dominio AD. password server: Dever ser informado o endereo IP ou nome completo ( FQDN) do controlador de Domnio do AD.

As configuraes ainda no foram todas feitas. Devemos ainda ter uma configurao para o winbind dentro do smb.conf. As opes so as seguintes:

idmap uid = 10000-20000 idmap gid = 10000-20000 winbind enum users = yes winbind enum groups = yes winbind use default domain = yes

As opes acima informaro ao winbind como ele se comportar em relao ao usurios cadastrador no AD. O valor de uidmap tanto para UID como para GID, diz qual o intervalo de UIDs e GIDs sero utilizados pelos usurios do AD, a listagem destes usurios sero feitas pelo enum, e enfim o winbind use default domain , usar o dominio default confiigurado, util para quando se possui mais de um domnio. As configuraes do Samba j esto prontas. Agora vamos a configurao do Kerberos.

Cliente Kerberos
Alguns dos pacotes que foram instalados anteriormente permitiro acesso ao dominio. Diferente do que muitos acham o kerberos no foi feito pela Microsoft, mas foi pega do mundo Unix. Originalmente foi construida pelo MIT. O kerberos um servio de autenticao em rede baseando em Tiquetes e o Windows com AD responsvel pela distribuio dessas tquetes, sendo ele o KDC (key Distribution Center ) que inclui dos servios, o AS ( Autetication Server) e o TGS ( Ticket Granting Service). O arquivo de configurao para o kerberos fica no arquivo /etc/krb5.conf. Nele colocaremos informaes sobre o nosso DC ( Domain Controller ). Vejamos um exemplo

de um arquivo de configurao abaixo:

[libdefaults] default_realm = DOMINIOLINUX.NET

[realms] DOMINIOLINUX.NET = { k dc = server.dominiolinux.net admin_server = SERVER.DOMINIOLINUX.NET default_domain = 192.168.0.1 } [domain_realm] .dominiolinux.net = DOMINIOLINUX.NET dominiolinux.net = DOMINIOLINUX.NET

Os dados acima devero ser prenchidos com o dados do seu domnio. Neste caso usei o dominiolinux.net, que j havia configurado no samba e winbind anteriormente. Note o valor de default_realm o nome do dominio. E os dados em kdc,admin_server, default_domain do campo [realms] o nome ou endereo IP do servidor , ou do DC. Devemos ento sincronizar os horrios e alterar o DNS do Linux. No arquivo resolv.conf deve-se colocar o endereo IP do AD, veja abaixo o exemplo do /etc/resolv.conf:

search dominiolinux.net nameserver 192.168.0.1

E enfim sincronizarmos os horrios para que o possamos ingressar no domnio. Podemos alterar a data manualmente, ou usar o software ntpdate. Para isso dever instar-lo primeiramente, para depois sincronizar:

aptitude install ntpdate ntpdate 192.168.0.1

O primeiro itens a ser feito pegar o TGT do servidor. Temos alguns softwares que podem ser usados para pegar , listar e destruir o TGT ( Ticket) do AD. O primeiro passo pegar o Ticket:

k init Administrator

O comando acima solicitar ao Servidor o Ticket. Para isso dever ser informado a senha do Administrador. No caso o Windows em questo est em ingls, por isso utilizado o usurio Administrator, caso use em portugus, dever utilizar o usurio Administrador, ou ainda, o responsvel pelo Ad. Nenhum retorno ser dado ao finalizar o comando se o comando for bem sucedido. Mas poderemos visualizar o ticket atravs do comando klist:

Ticket cache: FILE:/tmp/krb5cc_0 Default principal: Administrator@DOMINIOLINXU.NET Valid starting Expires Service principal 12/27/10 13:54:23 12/27/10 23:54:26 krbtgt/DOMINIOLINUX.NET@DOMINIOLINUX.NET renew until 12/27/10 23:54:23

Com o Ticket na mo, podemos agora ingressar nosso Linux como membro do AD, e dizer ao PAM usar esses usurios que sero mapeados no Linux como forma de autenticao. Esse ser o nosso passo.

Ingressando no Domnio e Mapeando os Usurios


Esse ser o ultimo processo antes da configurao propriamente do squid. O primeiro passo a ser feito ingressar no dominio. Para isso usaremos o comando net ads. Vejamos abaixo:

net ads join -U Administrator Joined 'LinuxServer' to realm 'dominiolinux.net'

Se caso aparecer uma mensagem informando que no foi possvel dar um Update no DNS, basta fazer a insero manualmente do DNS do AD. Precisamos agora configurar o PAM para fazer suportar autenticao do winbind. O primeiro arquivo ser editado o /etc/nsswitch.conf:

#/etc/nsswitch.conf

passwd: group: shadow:

compat winbind compat winbind compat winbind

Com essa configurao estamos informando ao nosso Linux como resolver os nomes de usurios, senhas e grupos. Mas ainda sim o PAM , que o responsvel por autenticao ainda no est preparado. Desta forma deveremos tambm alterar as configuraes do PAM, no diretrio /etc/pam.d/. Abaixo teremos a listas dos arquivos , seguidos de seus respectivos contudos. Mas de qualquer forma, bem provvel que j esteja funcionando. Esse passo de configuraodo PAM somente ser necessrio, se usurios do Windows AD, necessitarem autenticar no prprio Linux.

#/etc/pam.d/common-account

account sufficient account required

pam_winbind.so pam_unix.so

#/etc/pam.d/common-auth

auth sufficient pam_winbind.so auth sufficient pam_unix.so nullok _secure use_first_pass auth required pam_deny.so

#/etc/pam.d/common-session

session required pam_unix.so session required pam_mk homedir.so umask =0022 sk el=/etc/sk el

#/etc/pam.d/common-auth

auth sufficient pam_winbind.so auth sufficient pam_unix.so use_first_pass auth required pam_deny.so @include common-account

Agora temos todos os itens configurados, restando apenas o squid. Devemos ento nesse momento testar as configuraes, e verificar se esto funcionando.

Reiniciaremos os servio do samba e winbind:

/etc/init.d/samba stop /etc/init.d/winbind stop /etc/init.d/samba start /etc/init.d/winbind start

Agora deveremos testar as configuraes e verificar se os usurios j esto sendo mapeados no Linux. O comando wbinfo ser utilizado para verificar se usurios e grupos j esto no cach do winbind.

wbinfo -u wbinfo -g

A opo -u trar informaes sobre os usurios, j a opo -g sobre grupos. possvel usar os comando getent passwd e getent group, que trar tambm todos usurios mapeados. Talvez o processo demore um pouco, mas no mais que alguns minutos. Caso ainda sim, os usurios do AD no tenham sido mapeados, podemos ter um problema no Ticket, ou at em relao ingresso do Linux no domnio. O comando wbinfo -t, trar verificar a comunicao entre o Linux e o AD. O retorno dever se algo como checking the trust secret via RPC calls succeeded. Caso venha o resultado de falha, ser necessrio pegar o Ticket novamente atravs do mas se o kinit ainda reclamar poder usar o kinit, valor kinit Administrator@DOMINIOLINUX.NET , com letras em caixa alta no domnio. Mas antes de fazer esse processo verifique se os horrios esto ok. Veja os os logs em /var/log/samba/ referentes ao winbind. Se mesmo assim, no vier o retorno esperado, o processo de ingresso no domnio dever ser refeito com o processo net ads. J vi ocorrer erro em relao ao comando net ads, que em ver de ser digitado desta forma dever ser digitado como net join ads. (Muito estranho!!!!). Despois de tudo funcinando deveremos agora configurar o squid, que uma parte relativamente facl, perto do que j foi feito.

Configurando o Squid
Deveremos editar o arquivo /etc/squid/squid.conf, para adicionarmos a forma de autenticao, bem como as acl de restrio.

auth_param ntlm program /usr/lib/squid/ntlm_auth dominiolinux/server auth_param ntlm children 5

A configurao acima mostra ao squid que a autenticao ser do tipo ntlm , utilizada para verificar tais crendiciais no domnio dominiolinux , no servidor chamado servidor. Temos o caminho da biblioteca utilizada para tal, em /usr/lib/squid/ntlm_auth, que est baseado no Debian. Mas tambm fiz testes no CentOS e funcionou perfeitamente. O prximo passo criar acl. Podemos criar acl utilizando proxy_auth, colocando diramente o nome do usurio a frente, como :

acl grupo1 proxy_auth dominiolinux\andre dominiolinux\joao

E em cima desta acl podemos dar ou negar permisso de acesso a outras acls. possvel ainda criar um arquivo de texto onde os nomes dos usurios sero inseridos. Mas a forma mais comum trabalhar com grupos do AD. No exemplo abaixo usaremos dois grupos, uma acl chamada AcessoTotal, que dar acesso aos usurios cadastrados no grupo Diretoria, e outra acl chamada AcessoRestrito, que dar algum acesso ao grupo Internet do AD.

external_acl_type NT_global_group %LOGIN /usr/lib/squid/wbinfo_group.pl acl AcessoTotal external NT_global_group Diretoria acl AcessoRestrito external NT_global_group Internet

acl sitesn dstdomain .uol.com.b r http_access allow AcessoTotal http_access allow AcessoRestrito !sitesn

A acl usada um pouco diferente da acl que costumamos usar. Esta uma external_acl_type, que vai fazer consultas nos Grupos do Active Directory. Depois disso basta criamos as acl, como no caso da primeira acl. Usamos uma entrada acl normal, demos o nome de AcessoTotal, e utilizamos uma chamada external para um grupo do NT com o external NT_global, em seguida deve-se informar qual o grupo do AD. Os usurios do grupo Diretoria faro parte da acl AcessoTotal, e o Grupo Internet faro parte da acl AcessoRestrito. Depois dessa parte o uso comum, com permisses atravs do http_access. No nosso exemplo demos permisso tudo para acl AcessoRestrito, e j para a acl AcessoRestrito, os sites contindo em sitesn, no podero ser acessados.

Concluso

Apesar de ser um pouco trabalhoso, muito til, pois os usurios no tero a necessidade de inserir usurio e senha a todo momente, ou quando a sesso expira. Sem contar que a Administrao fica muito mais facl , centralizando todos os usurios e grupos em um local s. Se sua empresa no usa Windows Active Directory, e no pretende usar por causa de motivo especfico. Poder usar o LDAP no Linux, como centralizador de usurio, desde que os usurios usem autenticao tambm no domnio. Ainda sim possvel usar o Samba 4, no lugar do Windows AD. O Samba 4, alas pode ser gerenciado at com o cliente Micrososft Active Directory Users and Computers. Mas o autor Andrew ainda no deu a palavra final quanto a estabilidade do mesmo. Por isso no recomendado seu uso ainda, neste ms de dezembro de 2010. Espero que ano que vm 2011 , o mais cedo possvel seja liberado a verso final. Alas em breve, estarei postando uma video-aula de instalao do samba 4

Potrebbero piacerti anche