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.222 ]

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

Discos Virtuais na Amazon WS - Como expandir disco EBS em servidores virtuais Amazon WS

Transferência Rápida de Arquivos com NFS

Recuperando arquivos em um Windows corrompido com Linux

Expandindo partição em LVM

SSHFS no CentOS, Slackware e Windows - Simples e rápido

  
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