Acesso a compartilhamentos do Samba sendo autenticados pelo Active Directory usando Kerberos

Esse tutorial tem como função orientar a instalação do Samba e fazer com que acessos aos compartilhamentos do mesmo sejam feitos por meio de autenticação de usuários em um servidor de domínio Active Directory - AD, usando Kerberos. A instalação do Samba foi feita em sistema operacional Debian Lenny.

[ Hits: 50.487 ]

Por: Marcos José Andrade Viana em 08/08/2009


Instalando e configurando Samba



Instalação do Samba

Execute o comando:

# apt-get install samba samba-common winbind

Renomeie o arquivo original do Samba e crie um novo adequando-o para seu ambiente.

# mv /etc/samba/smb.conf /etc/samba/smb.conf.ori
# vi /etc/samba/smb.conf


[global]
workgroup = DOMINIO
server string = Servidor Samba
netbios name = SRVSAMBA
realm = DOMINIO.COM.BR
log file = /var/log/samba/%m.log
os level = 20
max log size = 50
debug level = 1
security = ads
encrypt passwords = yes
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
unix charset = iso-8859-1
password server = *
winbind uid = 10000-20000
winbind gid = 10000-20000
winbind enum users = yes
winbind enum groups = yes
winbind use default domain = yes
winbind enum users = yes
winbind enum groups = yes
winbind separator = +
idmap uid = 600-20000
idmap gid = 600-20000
template homedir = /dev/null
template shell = /dev/null
winbind use default domain = yes

[downloads]
comment= Arquivos Tecnicos
path = /downloads
browseable = yes
valid users = @"DOMINIO+tecnicos"
write list= @"DOMINIO+tecnicos"

Observações importantes:

Altere os campos de acordo com seu ambiente.

Alguns campos importantes:
  • realm: Colocar o mesmo nome de domínio em MAIÚSCULO que está em krb5.conf;
  • security: ADS quer dizer que os usuários serão validados no AD para acesso os compartilhamentos;
  • winbind enum groups; winbind enum users: Faz com que o comando getent retorne os usuários e grupos respectivamente;
  • winbind use default domain = Yes: Remove o prefix de domínio ao autenticar os usuários, para acessar os compartilhamentos você não precisará fazer assim. DOMAIN\Username - poderá colocar apenas o username;
  • winbind separator = + : Define o caractere que será utilizado para separar o domínio do username ou group;
  • valid users = @"DOMINIO+tecnicos": Nesse caso somente os usuários do grupo "técnicos" do domínio "DOMINIO" (nome netbios do domínio e em maiúsculo) poderão acessar o compartilhamento.

Adicionando o servidor Linux ao domínio AD

Adicionando o servidor ao domínio:

# net ads join -U administrator
Using short domain name --DOMINIO
Joined "SAMBA" to realm "DOMINIO.COM.BR"

Restartar Samba e Winbind:

# /etc/init.d/samba restart
# /etc/init.d/winbind restart


Página anterior     Próxima página

Páginas do artigo
   1. Instalando e configurando Kerberos
   2. Instalando e configurando Samba
   3. Configurando o nsswitch, testando Samba e conexão com o AD
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Trabalhando com init no Debian

Osiris - Integridade do sistema de arquivos

Recuperando arquivos deletados em partições ReiserFS

Armazenamento de arquivos em Linux: um estudo de caso

RAID 1 em Debian com sistema já instalado

  
Comentários
[1] Comentário enviado por andrefreire em 11/08/2009 - 19:04h

Parabéns pelo artigo ! Já tenho essa solução implamtada em algumas empresas porém sempre que eu tento adicionar a máquina ao domínio " net ads join -U administrador " ele pede a senha novamente mesmo após ter obtido o ticket ! vc tem alguma idéia do que pode ser ?

[2] Comentário enviado por mesaque em 28/08/2009 - 17:47h

Caro colega,

Gostei muito da forma que escreveu este arquivo. Rico, mas simples.
Estou tendo uma pequena dificuldade ao tentar ingressar no domínio. Dá o seguinte erro:

Failed to join domain: failed to find DC for domain MESAQUEJUNIOR.SYTES.NET

Se puder me ajudar, agradeço muito.

Abraço

[3] Comentário enviado por mesaque em 28/08/2009 - 18:09h

Algumas observações:

Meu ambiente de teste: MESAQUEJUNIOR.SYTES.NET

Windows Server 2003 Enterprise Edition

Debian Lenny 5.0

Nas configurações do krb coloquei o ip e não o netbios name

Mesmo assim o DNS está instalado no windows.

o teste kinit deu certo.

mesaquedebian:~# kinit administrator
Password for administrator@MESAQUEJUNIOR.SYTES.NET:
mesaquedebian:~# net ads join -U administrador
Enter administrador's password:
Failed to join domain: failed to find DC for domain MESAQUEJUNIOR.SYTES.NET
mesaquedebian:~#


Abs

[4] Comentário enviado por removido em 07/10/2009 - 09:38h

mesaque

tenta assim

# net join ads -U seu_usuario

ao invés de

# net ads join -U seu_usuario

Aqui deu certo!

[5] Comentário enviado por jcva em 13/01/2010 - 14:02h

Aqui também func

Vlw

[6] Comentário enviado por l_gipo em 11/02/2010 - 09:34h

Vlw pessoal pelas dicas expostas nesse fórum. Me ajudaram bastante, principalmente a do mesaque. Vlw cara. o net join ads resolveu minha vida por aqui. Um abração.

[7] Comentário enviado por removido em 15/02/2013 - 17:21h

Tenho Windows 2003 Server com DC
Linux debian 6

Esta apresentando o seguinte problema

root@KEN:~# net join -U administrator
Enter administrator's password:
Failed to join domain: failed to find DC for domain CACULA.LOCAL
ADS join did not work, falling back to RPC...
Enter administrator's password:
Interupted by signal.



root@KEN:~# wbinfo -t
checking the trust secret for domain CACULA via RPC calls failed
Could not check secret
root@KEN:~#



root@KEN:~# testparm -v
Load smb config files from /etc/samba/smb.conf
rlimit_max: rlimit_max (1024) below minimum Windows limit (16384)
Loaded services file OK.
'winbind separator = +' might cause problems with group membership.
Server role: ROLE_DOMAIN_MEMBER
Press enter to see a dump of your service definitions


root@KEN:~# wbinfo -g
domain computers
domain controllers
schema admins
enterprise admins
cert publishers
domain admins
domain users
domain guests
group policy creator owners
ras and ias servers
dnsadmins
dnsupdateproxy
openfire-administracao
openfire-lojas
openfire-callcenter
gg_atacado
gg_cal center
gg_call center
gg_scal
gg_compras
gg_contabilidade
interneta
acesso_maquina_bete
dhcp users
dhcp administrators
internetb
internetc
internetd
internet marketing
wins users

root@KEN:~# wbinfo -u
KEN+nobody
KEN+cacula
administrator
guest
support_388945a0
aspnet
sqlserver
ap6
krbtgt
denis.flosi
jose.abreu
ana.silva
giuseppe.fechio
daniel.souza
alessandra.sena
amanda.gandra
andressa.guaraldo
beatriz.silva
elizabete.silva
camila.regina
cirlene.cruz
cristine.machado




Smb.conf


[global]
workgroup = CACULA
netbios name = KEN
server string = KEN SERVER
load printers = no
log file = /var/log/samba/log.%m
max log size = 500
realm = CACULA.LOCAL
security = ads
auth methods = winbind
password server = 100.220.221.243
winbind separator = +
encrypt passwords = yes
winbind cache time = 15
winbind enum users = yes
winbind enum groups = yes
winbind use default domain = yes
idmap uid = 10000-20000
idmap gid = 10000-20000
local master = no
os level = 233
domain master = no
preferred master = no
domain logons = no
wins server = 100.220.221.243
dns proxy = no
ldap ssl = no

[8] Comentário enviado por GuPeD em 19/12/2017 - 12:31h

tbm estou com problemas, alguem poderia me ajudar?


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts