arasouza
(usa Debian)
Enviado em 27/06/2013 - 11:10h
Olá Pessoal, estou a alguns dias tentando integrar o samba com o AD (ou vice-versa) o cenário é o seguinte um servidor com ad rodando 2003, um debian 6 rodando o samba, quero compartilhar arquivos atraves do samba, para eliminar um srv de arquivos em windows, fiz todos os passos abaixo para tal:
Para ingressarmos o samba no AD, trabalharemos com o nível de segurança do tipo ADS. Além do que precisamos configurar o kerberos para autenticar no Active Directory.
Os horários devem estar sincronizados para que isso funcione perfeitamente.
O primeiro passo é instalar os pacotes necessários do samba e do kerberos.
Veja abaixo os pacotes:
# aptitude install samba ntpdate smbclient krb5-config krb5-user libam-krb5 krb5-kdc winbind
O comando acima instalará os pacotes do samba , ntpdate para sincronizar o horário com o Domain Controller, e os pacotes de configuração do cliente kerberos, e o winbind mapeará os usuários do AD em nosso Linux.
Na tela de:
Configuração de Autenticação Kerberos, será solicitado o Reino por omissão do Kerberos versão 5:
mundocolibri.localdomain
Samba Server, será solicitado o Grupo de Trabalho/Nome de Domínio:
mundocolibri.localdomain
Vamos iniciar a configuração do samba.
O arquivo /etc/samba/smb.conf deverá ser editado.
As linhas a seguir deverão ser inseridas:
workgroup = MUNDOCOLIBRI
security = ADS
realm = MUNDOCOLIBRI.LOCALDOMAIN
password server = 192.168.1.6
Nesta configuração temos os seguintes itens:
workgroup : Nome do domínio cadastrado no Active Directory.
security: Deverá ser usado ADS, que é Active Directory e Service. Este modo de segurança, permitirá que o Samba torne-se membro de um domínio AD.
realm: Este é o nome completo ( FQDN) do dominio AD.
password server: Deverá ser informado o endereço IP ou nome completo ( FQDN) do controlador de Domínio do AD.
As configurações ainda não foram todas feitas.
Devemos ainda ter uma configuração para o winbind dentro do smb.conf.
As opções são as seguintes:
idmap uid = 10000-20000
idmap gid = 10000-20000
winbind enum users = yes
winbind enum groups = yes
winbind use default domain = yes
As opções acima informarão ao winbind como ele se comportará em relação ao usuários cadastrador no AD.
O valor de uidmap tanto para UID como para GID, diz qual o intervalo de UIDs e GIDs serão utilizados pelos usuários do AD, a listagem destes usuários serão feitas pelo enum, e enfim o winbind use default domain , usará o dominio default confiigurado, util para quando se possui mais de um domínio.
As configurações do Samba já estão prontas.
Kerberos
Alguns dos pacotes que foram instalados anteriormente permitirão acesso ao domínio.
O kerberos é um serviço de autenticação em rede baseando em Tíquetes e o Windows com AD é responsável pela distribuição dessas tíquetes, sendo ele o KDC (key Distribution Center ) que inclui dos serviços, o AS ( Autetication Server) e o TGS ( Ticket Granting Service).
O arquivo de configuração para o kerberos fica no arquivo /etc/krb5.conf.
Nele colocaremos informações sobre o nosso DC ( Domain Controller ).
Veja o arquivo completo krb5.conf
[libdefaults]
default_realm = MUNDOCOLIBRI.LOCALDOMAIN
[realms]
MUNDOCOLIBRI.LOCALDOMAIN = {
kdc = colibri-dc.mundocolibri.localdomain
admin_server = COLIBRI-DC.MUNDOCOLIBRI.LOCALDOMAIN
default_domain = 192.168.1.6
}
[domain_realm]
.mundocolibri.localdomain = MUNDOCOLIBRI.LOCALDOMAIN
mundocolibri.localdomain = MUNDOCOLIBRI.LOCALDOMAIN
Devemos então sincronizar os horários e alterar o DNS do Linux.
No arquivo resolv.conf deve-se colocar o endereço IP do AD, veja abaixo o exemplo do /etc/resolv.conf:
# Generated by NetworkManager
search mundocolibri.localdomain
nameserver 192.168.1.6
E enfim sincronizarmos os horários para que o possamos ingressar no domínio.
Podemos alterar a data manualmente, ou usar o software ntpdate.
Para isso deverá instalá-lo primeiramente, para depois sincronizar:
# aptitude install ntpdate
Para testar
# ntpdate ntp.cais.rnp.br
O primeiro item 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:
# kinit administrator
O comando acima solicitará ao Servidor o Ticket.
Para isso deverá ser informado a senha do Administrador.
Nenhum retorno será dado ao finalizar o comando se o comando for bem sucedido.
Mas poderemos visualizar o ticket através do comando klist:
root@debian-gt:/etc# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: barbara.pinheiro@MUNDOCOLIBRI.LOCALDOMAIN
Valid starting Expires Service principal
04/16/12 17:14:43 04/17/12 03:14:46 krbtgt/MUNDOCOLIBRI.LOCALDOMAIN@MUNDOCOLIBRI.LOCALDOMAIN
renew until 04/17/12 17:14:43
Com o Ticket na mão, podemos agora ingressar nosso Linux como membro do AD, e dizer ao PAM usar esses usuários que serão mapeados no Linux como forma de autenticação.
Ingressando no Domínio e Mapeando os Usuários
Esse será o ultimo processo antes da configuração propriamente do squid.
O primeiro passo a ser feito é ingressar no domínio.
Vejamos abaixo:
# net rpc join MUNDOCOLIBRI -S colibri-dc -U administrator
Enter administrator password:
Joined domain MUNDOCOLIBRI.
Se caso aparecer uma mensagem informando que não foi possível dar um Update no DNS, basta fazer a inserção manualmente do DNS do AD.
Precisamos agora configurar o PAM para fazer suportar autenticação do winbind.
O primeiro arquivo à ser editado é o /etc/nsswitch.conf:
# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.
passwd: compat winbind
group: compat winbind
shadow: compat winbind
hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: nis
Com essa configuração estamos informando ao nosso Linux como resolver os nomes de usuários, senhas e grupos.
Agora temos todos os itens configurados, restando apenas o squid.
Devemos então nesse momento testar as configurações, e verificar se estão funcionando.
Reiniciaremos os serviço 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 configurações e verificar se os usuários já estão sendo mapeados no Linux.
O comando wbinfo será utilizado para verificar se usuários e grupos já estão no cachê do winbind.
# wbinfo -u
# wbinfo -g
A opção -u trará informações sobre os usuários, já a opção -g sobre grupos.
O comando wbinfo -t, trará verificará a comunicação entre o Linux e o AD. O retorno deverá se algo como “checking the trust secret for domain MUNDCOLIBRI via RPC calls succeeded”.
Caso venha o resultado de falha, será necessário pegar o Ticket novamente através do kinit, mas se o kinit ainda reclamar poderá usar o valor “kinit Administrator@MUNDOCOLIBRI.LOCALDOMAIN” , com letras em caixa alta no domínio.
Mas antes de fazer esse processo verifique se os horários estão ok.
Veja os logs em /var/log/samba/ referentes ao winbind.
Se mesmo assim, não vier o retorno esperado, o processo de ingressão no domínio deverá ser refeito com o processo net ads.
Despois de tudo funcionando deveremos agora configurar o squid.
O detalhe é que na hora de listar os usuarios do ad usando o wbinfo -u eu não consigo, preciso que os usuarios do ad apareçam no debian e assim compartilhar as pastas no debian para os usuarios do AD. alguem pode ajudar? agradeço.