Integrando Samba e AD - Listando usuarios [RESOLVIDO]

1. Integrando Samba e AD - Listando usuarios [RESOLVIDO]

André Romero Alves de Souza
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.


  


2. MELHOR RESPOSTA

Perfil removido
removido

(usa Nenhuma)

Enviado em 01/07/2013 - 09:15h

arasouza escreveu:

#password server = 10.10.20.253
#domain logons = yes # Faz com que o samba se comporte como controlador de domínio.
#preferred master = yes # Faz o samba ser o controlador de domínio principal caso tenha mais algum controlador de dominio na rede.
#domain master = yes #
#ldap ssl = no



Comente as opções acima destacadas, reinicie o serviço do samba, winbind e faça todos os passos que está neste artigo abaixo e creio que vai conseguir colocar seu debian no domínio.

http://www.vivaolinux.com.br/artigo/Ingressar-desktop-GNU-Linux-no-dominio-Active-Directory-do-Windo...

vi seu comentário no artigo, e pelo que parece você não seguiu todos os passos como estão no artigo. provavelmente esse erro dá por conta da configuração do seu /etc/samba/smb.conf.

3. Alguma dica

André Romero Alves de Souza
arasouza

(usa Debian)

Enviado em 28/06/2013 - 13:35h

Alguma dica pessoal?


4. ainda esperando

André Romero Alves de Souza
arasouza

(usa Debian)

Enviado em 28/06/2013 - 14:59h

ainda esperando ajuda.


5. Re: Integrando Samba e AD - Listando usuarios [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 28/06/2013 - 18:38h

Copie e cole seu smb.conf completo aqui assim como o arquivo de configuração do kerberos e seu nsswitch.conf.


6. Confs

André Romero Alves de Souza
arasouza

(usa Debian)

Enviado em 01/07/2013 - 08:03h

eabreu escreveu:

Copie e cole seu smb.conf completo aqui assim como o arquivo de configuração do kerberos e seu nsswitch.conf.


Ok eabreu, desculpa a demora, precisei viajar este fim de semana. se os confs:

smb.conf:

# Samba config file created using SWAT
# from UNKNOWN (127.0.0.1)
# Date: 2013/06/26 13:40:51

[global]
unix charset = UTF8
workgroup = ORC
netbios name = ORCSRV
realm = ORC.LOCAL
server string = %h Servidor Linux
security = ADS
obey pam restrictions = yes
password server = 10.10.20.253
pam password change = yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\sUNIX\spassword:* %n\n *Retype\snew\sUNIX\spassword:* %n\n *password\supdated\ssuccessfully* .
unix password sync = yes
restrict anonymous = 2
log level = 1
syslog = 0
log file = /var/log/samba/log.%m
max log size = 1000
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
logon script = logon.cmd
logon drive = H:
domain logons = yes
preferred master = yes
domain master = yes
ldap ssl = no
panic action = /usr/share/samba/panic-action %d
idmap uid = 10000-15000 # Especifica o intervalo de IDs de usuários que serão mapeados para o sistema local, coloquei um intervalo de cinco mil, mas pode colocar menor ou maior número
idmap gid = 10000-15000 # Especifica o intervalo de IDs de usuários que serão mapeados para o sistema local, coloquei um intervalo de cinco mil, mas pode colocar menor ou maior número
winbind separator = +
winbind enum users = yes
winbind enum groups = yes
winbind use default domain = yes
create mask = 07777
directory mask = 07777
fORCe unknown acl user = yes

[netlogon]
comment = Diretoro para os servicos de Logon
path = /home/samba/netlogon
guest ok = yes
share modes = No

[printers]
comment = Impressoras
path = /var/spool/samba
create mask = 0700
printable = yes
browseable = no

[print$]
comment = Drivers das Impressoras
path = /var/lib/samba/printers

[publico]
comment = area publica
available = yes
path = /home/publico
public = yes
writeable = yes
printable = no
write list = NCITs
share modes = yes

[dados]
comment = Diretório de dados
path = /home/dados
read only=on
inherit permissions = yes
writeable = yes
printable = no
write list = NCITs
share modes = yes
inherit acls = yes
#guest ok = yes

[financeiro]
path = /mnt/dados/financeiro
quest ok = no
read only = no
valid users = @ORC.LOCAL+secretaria=r @ORC.LOCAL+secretaria+rw @BUILTIN+administrators
read list = @ORC.LOCAL+secretaria+r @BUILTIN+administrators
wrire list = @ORC.LOCAL+secretaria+r
fORCe group = @ORC.LOCAL+secretaria+rw
create mask = 0775
directory mask = 0775



--------------------------fim smb.conf

Kerberos:

[logging]

default = FILE:/var/log/krb5libs.log

kdc = FILE:/var/log/krb5kdc.log

admin_server = FILE:/var/log/kadmind.log





[libdefaults]

default_realm = ORC.LOCAL

dns_lookup_realm = false

dns_lookup_kdc = true

krb4_config = /etc/krb.conf

krb4_realms = /etc/krb.realms

clockskew = 300

kdc_timesync = 1

ccache_type = 4

forwardable = true

proxiable = true

v4_instance_resolve = false

v4_name_convert = {

host = {

rcmd = host

ftp = ftp

}

plain = {

something = something-else

}

}

fcc-mit-ticketflags = true

[realms]

ORC.LOCAL = {

kdc = 10.10.20.253

admin_server = orcsrv.ORC.local

default_domain = ORC.LOCAL

}



[domain_realm]

.ORC.local = ORC.LOCAL

ORC.local = ORC.LOCAL



[appdefaults]

pam = {

debug = false

ticket_lifetime = 36000

renew_lifetime = 36000

forwardable = true

krb4_convert = false

}
-------------fim krb5.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
netmask: files
netgroup: nis
publickey: files

bootparams: files
automount: files winbind
aliases: files
-------------fim do arquivo nsswitch.conf

agradeço a ajuda.


7. Conf smb.conf

André Romero Alves de Souza
arasouza

(usa Debian)

Enviado em 01/07/2013 - 09:32h

eabreu escreveu:

arasouza escreveu:

#password server = 10.10.20.253
#domain logons = yes # Faz com que o samba se comporte como controlador de domínio.
#preferred master = yes # Faz o samba ser o controlador de domínio principal caso tenha mais algum controlador de dominio na rede.
#domain master = yes #
#ldap ssl = no



Comente as opções acima destacadas, reinicie o serviço do samba, winbind e faça todos os passos que está neste artigo abaixo e creio que vai conseguir colocar seu debian no domínio.

http://www.vivaolinux.com.br/artigo/Ingressar-desktop-GNU-Linux-no-dominio-Active-Directory-do-Windo...

vi seu comentário no artigo, e pelo que parece você não seguiu todos os passos como estão no artigo. provavelmente esse erro dá por conta da configuração do seu /etc/samba/smb.conf.


Ok, eabreu obrigado pela dica,vou fazer e posto o resultado assim q concluir.


8. Resolvido

André Romero Alves de Souza
arasouza

(usa Debian)

Enviado em 29/07/2013 - 14:54h

eabreu escreveu:

arasouza escreveu:

#password server = 10.10.20.253
#domain logons = yes # Faz com que o samba se comporte como controlador de domínio.
#preferred master = yes # Faz o samba ser o controlador de domínio principal caso tenha mais algum controlador de dominio na rede.
#domain master = yes #
#ldap ssl = no



Comente as opções acima destacadas, reinicie o serviço do samba, winbind e faça todos os passos que está neste artigo abaixo e creio que vai conseguir colocar seu debian no domínio.

http://www.vivaolinux.com.br/artigo/Ingressar-desktop-GNU-Linux-no-dominio-Active-Directory-do-Windo...

vi seu comentário no artigo, e pelo que parece você não seguiu todos os passos como estão no artigo. provavelmente esse erro dá por conta da configuração do seu /etc/samba/smb.conf.


Grande eabreu, perfeito as dicas e o seu post, consegui resolver. agradeço sua grande ajuda. abçs.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts