Colocando Linux no Domínio.

linuxEste Artigo tem como objetivo realizar o ingresso de uma máquina Linux em um domínio. Diferente do Windows, o Linux requer uma atenção especial quanto trata-se de integração em um ambiente corporativo. Isso porque ele exige alguns fatores que devem ser levados em consideração na hora de integrá-lo. Aqui tentaremos abordar todos os aspectos necessários para realizarmos este procedimento de forma profissional, trazendo ao final do artigo uma integração correta.

Para que este procedimento seja possível, iremos utilizar três serviços essenciais, os quais são:

Kerberos: É um protocolo de rede usado para autenticação de usuários e/ou serviços de rede, como o Active Directory. utilizando um sistema criptografado, permitindo comunicações seguras e identificadas em redes, fazendo uso de tickets (chaves criptografadas).

Winbind: O Winbind é um daemon usado pelo PAM, NSSWITCH, Samba e podendo ser usado por outros serviços de rede e/ou sistema, fazendo a interface entre o PDC e o computador cliente rodando o serviço Winbindd, permitindo que máquinas com o sistema GNU/Linux comuniquem-se com DC Active Directory.

Samba: É um serviço cuja principal função é disponibilizar recursos compartilhados em uma rede, tais como arquivos e impressoras, além de também ser utilizado como controlador de domínio.


PEGA A VISÃO

Sente necessidade de se aprofundar na administração de sistemas Linux? Que tal seguir minha dica! Assista a vídeo aula de apresentação.


CONSIDERAÇÕES

Vamos levar em consideração que você já possui um ambiente com um servidor de domínio Windows Server com o Active Directory, DNS e DHCP instalados e funcionando.

Veja a disposição dos servidores na rede para explicação do artigo:

Domínio → oliveira.com
Servidor controlador de domínio → 192.168.2.1 serverdc.oliveira.com
Servidor DHCP → 192.168.2.1
Servidor DNS primário → 192.168.2.1
Desktop cliente → cltvirtual (Distribuição: Debian 8.5 jessie)

Para editar os arquivos de configuração você pode escolher qual editor padrão deseja usar. Neste artigo iremos utilizar o editor “vi” como padrão.

OBS: Se você pretende utilizar o (Debian 9.x – Stretch) como padrão, veja o nosso artigo “Colocando Linux no Dominio – Debian 9“. Existe algumas diferenças em relação a configuração do Winbind.

Mas se está procurando como fazer isto em distribuições derivadas da Red Hat, como por exemplo o CentOS, acesse nosso artigo “Colocando Linux no Dominio – CentOS“. 😉


1) EDIÇÃO DO ARQUIVO /etc/hosts.

Em nossa máquina “cltvirtual” que pretendemos colocar no domínio, entre no arquivo /etc/hosts e adicione o complemento do domínio junto ao host da máquina cliente.

Opcional: Também adicione o endereço de ip do servidor controlador de domínio, este procedimento ajuda na resolução de nomes, pois já estamos setando diretamente quem será o controlador.

127.0.0.1 cltvirtual.oliveira.com cltvirtual localhost
192.168.2.1 serverdc.oliveira.com

Após realizarmos a alteração, execute o seguinte comando com parâmetro: “hostname -f“.  O resultado do comando irá mostrar o nome da máquina completo, junto com o domínio informado.


2) INSTALAÇÃO DE PACOTES NECESSÁRIOS.

apt-get install krb5-user krb5-config winbind samba samba-common smbclient cifs-utils libpam-krb5 libpam-winbind libnss-winbind ntp

Durante a instalação do “kerberos“, pode ser perguntado algo relacionado ao KDC, mas ignore e pressione ENTER. Trataremos deste assunto no decorrer do artigo.


3) SINCRONIZANDO DATA/HORA COM O CONTROLADOR DE DOMÍNIO.

Para que possamos ser autenticados pelo controlador de domínio é de primordial importância que estejamos sincronizados com a data e a hora do mesmo. No Linux é possível realizar este procedimento de forma automática, configurando um serviço de “NTP“.

Acesse o arquivo de configuração “/etc/ntp.conf” e nas linhas do arquivo onde o conteúdo começa com a palavra “server“, comente estas linhas com uma cerquilha#“, e adicione o conteúdo conforme ilustrado abaixo, salve e saia do arquivo.

#server 0.debian.pool.ntp.org iburst
#server 1.debian.pool.ntp.org iburst
#server 2.debian.pool.ntp.org iburst
#server 3.debian.pool.ntp.org iburst
#Controlador de Dominio
server 192.168.2.1
restrict 192.168.2.1

Realizar o restart do serviço “NTP“. Como estamos utilizando Debian 8, o mesmo já possui um novo sysinit chamado “systemD“, para que possamos restartar um serviço devemos utilizar o seguinte comando:

(Restarta o serviço)

systemctl restart ntp.service 

ou (Para e inicia o serviço)

systemctl stop ntp.service
systemctl start ntp.service

(Verifica status do serviço)

systemctl status ntp.service

Caso esteja utilizando versões anteriores do Debian, ou uma outra distribuição que esteja baseada em outro sysinit como por exemplo o “systemV” antecessor do “systemD“, utilize o seguinte comando:

(Reinicia o serviço)

/etc/init.d/ntp restart

ou (Para e inicia o serviço)

/etc/init.d/ntp stop
/etc/init.d/ntp start

Nota: Para sistemas que possuem outros sysinit’s como o Ubuntu que possue o “upstart“, consulte a página da distribuição para maiores esclarecimentos.


4) EDIÇÃO DO ARQUIVO “/etc/resolv.conf”.

No ambiente apresentado estamos considerando que a máquina cliente “cltvirtual” esta recebendo IP através de um serviço DHCP startado no servidor controlador de domínio “serverdc“. Caso não esteja utilizando o serviço DHCP, é possível setar os servidores de nomes “DNS” no arquivo “/etc/resolv.conf” conforme ilustrado abaixo.

# Generated by NetworkManager
search oliveira.com
nameserver 192.168.2.1

5) CONFIGURAÇÃO KERBEROS.

Para que o usuário consiga autenticar-se no controlador de domínio iremos utilizar um protocolo de autenticação de redes chamado kerberos. O controlador de domínio com o serviço de Active Directory instalado já possui por default um KDC (Controlador de domínio Kerberos) apto para autenticar este tipo de protocolo. Iremos então editar o arquivo “/etc/krb5.conf” e realizar as configurações conforme ilustrado abaixo. Salve e saia do arquivo.

[logging]
Default = FILE:/var/log/krb5.log

[libdefaults]
ticket_lifetime = 24000
clock-skew = 300
default_realm = OLIVEIRA.COM
dns_lookup_realm = true
dns_lookup_kdc = true

[realms]
OLIVEIRA.COM = {
kdc = serverdc.oliveira.com
default_domain = oliveira.com
admin_server = serverdc.oliveira.com
}

[domain_realm]
.oliveira.com = OLIVEIRA.COM
oliveira.com = OLIVEIRA.COM

[login]
krb4_convert = true
krb4_get_tickets = false

Depois de configurado o kerberos, precisamos testar a comunicação com o controlador de domínio. Para isto, utilizaremos o comando “kinit” seguido pelo parâmetro “Nome de usuário que esteja cadastrado no domínio“, conforma ilustrado abaixo.

kinit rafael

Será solicitado a senha de usuário, digite a senha e pressione “ENTER“.

Após realizar o comando e o mesmo não retornar nenhuma mensagem de erro, é possível verificar o “ticket kerberos” gerado através do comando “klist” conforme ilustrado abaixo.

klist

Mostrando como resultado:

Ticket cache: FILE:/tmp/krb5cc_10001_j3SWTA
Default principal: rafael@OLIVEIRA.COM
Valid starting Expires Service principal
31-01-2017 18:15:56 01-02-2017 00:55:49 krbtgt/OLIVEIRA.COM@OLIVEIRA.COM

6) CONFIGURANDO O SAMBA.

Também antes de ingressarmos a máquina cliente “cltvirtual” no domínio é necessário realizar algumas configurações preliminares no Samba. Neste artigo já estamos utilizando o Samba 4, alguns parâmetros estão sendo disponibilizados, mesmo que não sejam necessários para o artigo em questão. Estes padrões são úteis caso deseje compartilhar informações de sua máquina cliente, ou transforma-la em um servidor de arquivos. Faça uma copia de segurança do arquivo “/etc/samba/smb.conf” de sua máquina e crie um novo arquivo conforme conteúdo ilustrado abaixo.

[global]
workgroup = OLIVEIRA
server string = Maquina Cliente
netbios name = CLTVIRTUAL
realm = OLIVEIRA.COM
#veto files = /*.exe/*.bat/*.inf/*.pif/
#======================= Log do Samba ==========================.
log file = /var/log/samba/samba.log
os level = 2
preferred master = no
max log size = 50
debug level = 1
#=========== Otimização para melhora de desempenho =============.
read raw = yes # Permite leitura de arquivos grandes
write raw = yes # Permite Gravação de arquivos grandes
oplocks = yes # Armazena cache de arquivos no local de acesso.
max xmit = 65535 # Configura maior bloco de dados que o samba ira tentar gravar de vez.
getwd cache = yes # armazena em cache a caminho para o diretório corrente
# dead time = 15 # Default is 0
# A opção socket options: TCP_NODELAY faz com que o servidor envie pacotes para a rede, mantendo
# assim o tempo de resposta do servidor baixo. SO_RCVBUF=8192 e SO_SNDBUF=8192: oferece o reinicio
# para um valor de buffer mais alto que o do sistema operacional.
#socket options = SO_KEEPALIVE TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
socket options = SO_KEEPALIVE TCP_NODELAY
#======================= Autenticação ==========================.
security = ads
encrypt passwords = yes
allow trusted domains = yes
#=================== Configuração WINBIND ======================.
winbind uid = 10000-20000
winbind gid = 10000-20000
winbind enum users = yes
winbind enum groups = yes
winbind use default domain = yes
winbind refresh tickets = yes
template shell = /bin/bash
template homedir = /home/%D/%U
client use spnego = yes
domain master = no

Após configurado o arquivo “smb.conf“, reinicie o serviço do Samba e do Winbind.

OBS: Iremos utilizar o padrão “systemD” conforme ilustrado no item 3 deste artigo.

(Restarta o serviço)

systemctl restart winbind.service
systemctl restart smbd.service

ou (Para e inicia o serviço)

systemctl stop winbind.service
systemctl start winbind.service
systemctl stop smbd.service
systemctl start smbd.service

(Verifica status do serviço)

systemctl status winbind.service
systemctl status smbd.service

7) INGRESSANDO A MÁQUINA CLIENTE NO DOMÍNIO.

Agora que nossas configurações estão corretas, podemos ingressar a máquina no domínio conforme o seguinte comando a seguir.

net ads join -U administrador

Nota: A conta passada para este comando precisa ter poderes de ingressar máquinas no domínio. Em nosso exemplo, foi utilizado a conta “administrador” do domínio.

Após executar o arquivo será retornado uma informação parecida com a ilustrada abaixo.

Using short domain name - OLIVEIRA
Joined 'CLTVIRTUAL' to realm 'OLIVEIRA.COM'

Agora vamos testar se o controlador de domínio está respondendo. Utilizando os seguintes comandos:

net ads testjoin

Se tudo correr bem o sistema responderá:

Join is OK

Também vamos testar utilizando o seguinte comando:

wbinfo -t

Se tudo correr bem o sistema responderá:

checking the trust secret for domain CART1OFICIO via RPC calls succeeded

Feito isto, precisamos testar e verificar se já conseguimos buscar os grupos e usuários do controlador de domínio conforme o seguinte comando a seguir:

(Lista de usuários do domínio)

wbinfo -u

(Lista de grupos do domínio)

wbinfo -g

Nota: Caso não seja possível trazer alguma das duas listas informadas, reinicie o “winbind” novamente. Se mesmo assim não conseguir executar os comandos com sucesso, volte o artigo e analise os passos anteriores refazendo a configuração, provavelmente algo passou despercebido.

Também é possível utilizar outros dois comandos para realizar a verificação, mas a diferença é que trazem a informação dos usuários e grupos locais, seguidos dos usuários e grupos do domínio.

(Lista usuários Local/Domínio)

getent passwd

(Lista grupos Local/Domínio)

getent group

Caso queira retirar a máquina do domínio utilize o seguinte comando:

net ads leave -U administrador

8) EDIÇÃO DO ARQUIVO “/etc/nsswitch.conf”.

Como agora estamos trabalhando com usuários e grupos do domínio, precisamos informar ao sistema que desejamos trabalhar com o “winbind” para procurar nossas informações de login. Para isso, é necessário editar duas linhas no arquivo “/etc/nsswitch.conf“, conforme ilustrado abaixo.

7 passwd:         compat winbind
  8 group:          compat winbind

Após editar o arquivo, realize o restart do serviço “Winbind” e “Samba” conforme demonstrado no item “6” deste artigo.

Seu sistema já esta no domínio e apto para uso.


A) DETALHES DEBIAN.

Para as distribuições Debian é necessário realizar uma alteração no arquivo “/etc/pam.d/common-session“. Esta alteração faz o diretório home de cada usuário ser criado automaticamente no inicio de cada sessão após a autenticação do usuário, setando as permissões para os arquivos e diretórios com a “umask 0022” e obtendo do diretório “/etc/skel” seus sub-diretórios e arquivos padrões.

Após o linha que contém:

session required pam_unix.so

Inclua:

session required pam_mkhomedir.so umask=0022 skel=/etc/skel

Fonte: https://www.vivaolinux.com.br/artigo/Ingressar-desktop-GNU-Linux-no-dominio-Active-Directory-do-Windows-Server-2008?pagina=1


Conclusão

Neste artigo foi demostrado como colocar uma máquina baseada na distribuição Debian no domínio de forma correta.

Se você gostou deste post e através dele pude lhe ajudar, o que acha de aproximarmos nosso contato? Siga meu blog e me adicione no Linkedin, aproveite para classificar algumas das minhas competências/recomendações, este simples gesto faz toda a diferença.

Att,

Rafael Oliveira
SysAdmin

Você pode compartilhar esse artigo.

Siga o Blog Via E-mail

Digite seu endereço de e-mail para assinar este blog e receber notificações de novas publicações por e-mail.

Junte-se a 47 outros assinantes

Sobre o Autor

Rafael Oliveira Maria - Linux

Rafael Oliveira

Bacharel em Sistemas de Informação, SysAdmin, Professor, Blogueiro e Entusiasta Linux.

Certificados:

LPIC-1-Large
LPIC-2
LinuxPlus Logo Certified
itil-foundation-digital-badge

Gostou do conteúdo? Ajude-me a manter o blog.

PicPay - Linux

Aceitamos pagamentos e doações via PicPay link picpay.me/rafaeloliveimar

38 respostas

  1. Rafael, pode me dar uma ajuda?
    Tem algum artigo de configuração pelo ldap.conf? Estou usando o protocolo proftpd e preciso que os usuários tenha acesso ao ftp utilizando seu login do dominio ao invés de ter que criar.
    Agradeço

  2. Boa tarde, seguindo seu tutorial, fiz todo o passo a passo de edição até o arquivo do Samba, smb.conf, porém a hora que eu vou reiniciar o winbind, da erro, “Failed to start Samba winbind Daemon”. Já olhei e realmente apanhei e não consegui, se puder me dar uma ajuda!

  3. Boa tarde, gostaria de adicionar 2 domínios, um de acesso administrativo e outro para usuários. O domínio adm poderá editar os arquivos compartilhados e o dos usuários apenas visualizar. Os terminais são todos windows, seria possível?

    1. Bom dia Rafael, desculpe a demora. Cara o ideal não é criar dois domínios mas sim um único domínio e segmentar o que quer através de OUs, e GPOs. Pense que o Domínio e único por empresa, subdomínios seriam para separar por exemplo matriz e filias, etc..

  4. RAFAEL OLIVEIRA

    Estou com um probleminha não sei se pode me ajudar, ingressei meus servidores linux no ad ds windows conforme segue seu tutorial, supriu minha necessidade, porém tive um outro problema ao tentar criar um usuario local no linux, com adduser ou useradd, ele pede autenticação kerberos, e não está deixando eu criar usuarios locais, você teria alguma ideia de como solucionar este problema ?

    grato desde já

    Ass: Kaique Piropo

    1. Fala Kaique!

      Cara, mesmo com o linux no domínio você consegue utilizar os comandos adduser e useradd adicionando novos usuários a máquina local. No seu caso realmente o problema deve estar no kerberos, não que o linux dependa do kerberos configurado para adicionar um novo usuário local, talvez aqui está sua maior dúvida, mas provavelmente ele está tentando validade o kerberos antes de executar os comandos de adição de usuário devido a exatamente estar ingressado em um domínio, tornando mandatório a atualização do kerberos. Se tirar a máquina do domínio e tentar criar um usuário vai funcionar, mas não é o caso. Corrija seu kerberos e utilize os comandos, eles funcionam sim com uma máquina integrada ao domínio. Espero ter esclarecido sua dúvida. Att.

      1. Muito Obrigado pelo Retorno Rafael,

        andei pesquisando um pouco a fundo na internet e encontrei uma solução e entendi oq estava acontecendo, o pam.d tem algumas ordens de autenticação, como kerberos, unix e winbind, temos as ordens de leitura que ele respeita dentro do arquivo pam.d/common-passwd, no caso ele estava dando prioridade para leitura no kerberos, que no caso não estou utilizando para nada, só
        desmarquei o kerberos e dei prioridade de leitura dos usuarios para unix

        pam-auth-update

        com este comando podemos ver quem ele está autenticando e ali escolher conforme você deseja, qualquer duvida só perguntar que tento esclarecer melhor, e valeuu pelo feedback!

        1. Show Kaique que bom que conseguiu resolver seu problema, como havia usado o artigo de base, pensei que estaria utilizando o kerberos. Realmente você tem razão o pam possui sua prioridade, não imaginava que ele era o causador do problema. No seu caso como não utiliza o kerberos tudo bem em desativar, mas caso utilizasse, não teria para onde correr tinha que ajusta-lo. Obrigado pela contribuição. Precisando estamos a disposição. Abr.

  5. Poxa, valeu mesmo Rafael!
    Mas na verdade eu gostaria de acessar as pastas que estão no Windows Server, na realidade eu até acesso, mas não consigo gravar nada nelas. Acessando por uma VM do Windows que tenho, acessar normal no domínio e em todas as permissões das pastas.

    1. Neste caso ai o problema está relacionado as permissões da própria pasta do Windows Server que não tem permissão de escrita para o usuário que esta utilizando. Para acessar um pastar compartilhada do Windows pelo Linux, você pode utilizar o “smbclient” pelo shell, passando o usuário do domínio como parâmetro, da uma pesquisada na net ai. Também verifique se a conta do domínio que esta utilizando tem permissão para acessar a pasta compartilhada do Windows Server”. Att,

  6. Rafael, estou te dando trabalho…rs
    Parece que deu tudo certo:
    andre@ANDRE-TI ~ $ sudo net ads join -U administrador
    Enter administrador’s password:
    Using short domain name — CYSTEC
    Joined ‘ANDRE-TI’ to dns domain ‘cystec.local’
    andre@ANDRE-TI ~ $ sudo net ads testjoin
    Join is OK
    andre@ANDRE-TI ~ $ sudo wbinfo -t
    checking the trust secret for domain CYSTEC via RPC calls succeeded

    Só não sei agora como fazer para logar no domínio e acessar as permissões das pastas do AD, pode me dar um rumo nisso?
    Abraços.

    1. rs Verdade! Mas esquenta não, fico feliz em pode ajudar. Já passei muito perrengue sozinho, e é horrível não poder contar com ninguém.
      Bom, creio que o que deseja agora é configurar o Samba pra compartilhar pastas entre usuários do domínio. Dando uma olhada no meu blog aqui, vi que realmente não abordei esse assunto ainda, breve escreverei um artigo sobre esses passos, mas basicamente seria criar as pastas em seu Linux e dar permissões para elas, além de configurar o Samba para compartilha-las. Vou ficar ti devendo no momento. Inscreva-se no blog, assim que disponibilizar o artigo você ficará sabendo.

      Att,

  7. Olá Rafael, obrigado pelo seu artigo!
    Uso o Mint 18.2 e quando eu tento logar como administrador ou meu login que tbm é administrador aparece a seguinte mensagem:
    sudo net ads join -U andre.santiago
    Enter andre.santiago’s password:
    ldb: unable to stat module /usr/lib/x86_64-linux-gnu/samba/ldb : Arquivo ou diretório não encontrado
    Using short domain name — CYSTEC
    Joined ‘CYSTEC’ to dns domain ‘cystec.local’
    No DNS domain configured for cystec. Unable to perform DNS Update.
    DNS update failed: NT_STATUS_INVALID_PARAMETER

    1. Bom dia Thiago!

      Que bom que gostou do artigo! Agradeço por isso.

      Mas vamos lá! Pela mensagem parece que falta um modulo no seu samba “ldb: unable to stat module /usr/lib/x86_64-linux-gnu/samba/ldb: Arquivo ou diretório não encontrado”, pesquise sobre isso na internet! Eu dei uma olhada superficial e parece que trata-se de um bug.

      Este artigo fiz baseando-se em Debian Jessie, mas pode ser adaptado para outras distros como está fazendo. Eu nunca utilizei o Mint, então pode ser um pouco complicado te ajudar. Porém, o artigo tem o intuito de demostrar os pontos chaves a serem levados em consideração na hora de colocar um Linux no domínio. Pelo visto você esta no item “7” do artigo, as mensagens referente a DNS estão relacionadas as informações que apontando para tal servidor. Verifique nos passos anteriores se informou o ip de seu servidor “DNS” em especial no “/etc/resolv.conf” (Na grande maioria dos casos, em redes internas o servidor DNS e o mesmo que o DC), além disso verifique os parâmetros do kerberos em “/etc/krb5.conf” (Veja se os parâmetros estão corretamente apontados), e principalmente seu DHCP de rede, verifique se está enviando as informações corretas para a máquina que pretende colocar no domínio, caso esteja utilizando um ip estático em sua placa de rede, não esqueça de informar corretamente seu gateway e DNS.

      Espero ter ajudado.

      Att,
      Rafael Oliveira

      1. Obrigado pela pronta resposta Rafael!
        Vou verificar a instalação do samba4 no Mint pra ver se tem algo diferente.
        No resolv.conf realmente não tinha salvado as modificações que eu tinha feito.
        Depois disso ao reiniciar a estação ele irá permitir colocar o novo usuário ligado ao domínio?
        Abraços.

        1. Se todas os passos estiverem corretamente configurados, vai ser possível sim, após adicionado ao domínio, você será capaz de visualizar a máquina através de seu “Controlador de Domínio”, usufruindo assim do gerenciamento de contas, podendo inclusive logar em seu Linux com uma conta de domínio.

          Precisando só falar.
          Att,

          1. O Join deu certo, porém, aparece um erro quando uso o comando: wbinfo -t

            andre@ANDRE-TI ~ $ sudo net ads join -U administrador
            Enter administrador’s password:
            Using short domain name — CYSTEC
            Joined ‘ANDRE-TI’ to dns domain ‘cystec.local’
            andre@ANDRE-TI ~ $ sudo net ads testjoin
            Join is OK
            andre@ANDRE-TI ~ $ wbinfo -t
            checking the trust secret for domain CYSTEC via RPC calls failed
            failed to call wbcCheckTrustCredentials: WBC_ERR_WINBIND_NOT_AVAILABLE
            Could not check secret
            andre@ANDRE-TI ~ $

          2. Realize o passo “8”. Após editar o arquivo, realize o restart do serviço “Winbind” e “Samba” conforme demonstrado no item “6” deste artigo. Também verifique sua configurações do Kerberos, veja se esta tudo ok, além disso confirme se já possui um ticket com o comando klist. Att.

  8. Olá amigo estou usando o seu tutorial para adicionar um servidor de aquivos no domínio. Mas estou com problemas para ingressar a maquina.
    Aparece a mensagem de erro, pode ver o que se acha algum problema?
    o nome netbios no SMB esta diferente pois o nome do servidor tem 17 caracteres pode ser isso?

    ************ERRO*********************************
    Failed to join domain: failed to lookup DC info for domain ‘teste.LOCAL’ over rpc: Undetermined error

    ********************hosts*******************************

    127.0.0.1 SRV-VIRTUALIZACAO.teste.local SRV-VIRTUALIZACAO localhost
    10.1.84.198 SRV-VIRTUALIZACAO
    10.1.84.252 teste.local

    # The following lines are desirable for IPv6 capable hosts
    ::1 localhost ip6-localhost ip6-loopback
    ff02::1 ip6-allnodes
    ff02::2 ip6-allrouters

    *****************resolv.conf*****************************************
    search teste.local
    nameserver 10.1.84.252

    **************************krb5.conf*******************

    [logging]
    Default = FILE:/var/log/krb5.log

    [libdefaults]
    ticket_lifetime = 24000
    clock-skew = 300
    default_realm = TESTE.LOCAL
    dns_lookup_realm = true
    dns_lookup_kdc = true

    # The following libdefaults parameters are only for Heimdal Kerberos.
    v4_instance_resolve = false
    v4_name_convert = {
    host = {
    rcmd = host
    ftp = ftp
    }
    plain = {
    something = something-else
    }
    }
    fcc-mit-ticketflags = true

    [realms]

    teste.LOCAL = {
    kdc = 10.0.0.252 #server01.teste.local
    default_domain = teste.local
    admin_server = 10.0.0.252 #server01.teste.local
    }

    [domain_realm]
    .teste.local = teste.LOCAL
    teste.local = teste.LOCAL

    [login]
    krb4_convert = true
    krb4_get_tickets = false

    **************************SMB.CONF************************************************
    [global]
    workgroup = EMPRESA
    netbios name = VIRTUALIZACAO #SRV-VIRTUALIZACAO
    realm = TESTE.LOCAL

    #======================= Autenticação ==========================.
    security = ads
    encrypt passwords = yes
    allow trusted domains = yes
    #=================== Configuração WINBIND ======================.
    winbind uid = 10000-20000
    winbind gid = 10000-20000
    winbind enum users = yes
    winbind enum groups = yes
    winbind use default domain = yes
    winbind refresh tickets = yes
    template shell = /bin/bash
    template homedir = /home/%D/%U
    client use spnego = yes
    domain master = no

    ; wins server = w.x.y.z
    dns proxy = no
    ; interfaces = 127.0.0.0/8 eth0
    ; bind interfaces only = yes
    log file = /var/log/samba/log.%m
    max log size = 1000
    syslog = 0
    panic action = /usr/share/samba/panic-action %d
    server role = standalone server
    passdb backend = tdbsam
    obey pam restrictions = yes
    unix password sync = yes
    passwd program = /usr/bin/passwd %u
    passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
    pam password change = yes
    map to guest = bad user
    ; logon path = \\%N\profiles\%U
    ; logon drive = H:
    ; logon script = logon.cmd
    ; add user script = /usr/sbin/adduser –quiet –disabled-password –gecos “” %u
    ; add machine script = /usr/sbin/useradd -g machines -c “%u machine account” -d /var/lib/samba -s /bin/false %u
    ; add group script = /usr/sbin/addgroup –force-badname %g
    ; include = /home/samba/etc/smb.conf.%m
    ; idmap uid = 10000-20000
    ; idmap gid = 10000-20000
    ; template shell = /bin/bash
    ; usershare max shares = 100
    usershare allow guests = yes
    [homes]
    comment = Home Directories
    browseable = no
    read only = yes
    create mask = 0700
    directory mask = 0700
    valid users = %S
    ;[netlogon]
    ; comment = Network Logon Service
    ; path = /home/samba/netlogon
    ; guest ok = yes
    ; read only = yes
    ;[profiles]
    ; comment = Users profiles
    ; path = /home/samba/profiles
    ; guest ok = no
    ; browseable = no
    ; create mask = 0600
    ; directory mask = 0700

    [printers]
    comment = All Printers
    browseable = no
    path = /var/spool/samba
    printable = yes
    guest ok = no
    read only = yes
    create mask = 0700
    [print$]
    comment = Printer Drivers
    path = /var/lib/samba/printers
    browseable = yes
    read only = yes
    guest ok = no
    ; write list = root, @lpadmin

    1. Fala Leo! Qual distribuição está utilizando? Preciso saber para tentar lhe ajudar. Este tutorial está homologado para versão Debian 8 “Jessie”. A versão Debian 9 “Stretch” por ser recente ainda não homologuei, pode ser que mudou algum parâmetro de configuração entre smb, winbind etc. Aconselho utilizar em ambiente de teste/produção a última versão do Debian 8 “Jessie”. Caso esteja utilizando versão diferente, experiente utilizar a versão citada no artigo.

        1. Ótimo! Pelo que estou vendo aqui isso parece configuração do Kerberos. Ao realizar a integração ele não esta encontrando seu controlador de domínio.

          Em:

          *****************resolv.conf*************************
          search teste.local
          nameserver 10.1.84.252 (AQUI É O CONTROLADOR DE DOMÍNIO DE SUA REDE).

          Em:

          *****************krb5.conf***************************
          [realms]
          teste.LOCAL = {
          kdc = 10.0.0.252 #server01.teste.local (AQUI TAMBÉM É O CONTROLADOR DE DOMÍNIO DE SUA REDE).
          default_domain = teste.local
          admin_server = 10.0.0.252 #server01.teste.local (AQUI TAMBÉM É O CONTROLADOR DE DOMÍNIO DE SUA REDE).
          }

          Obs: Substitua por completo as informações do “krb5.conf” pelas informações do artigo, depois somente altere as informações pertinentes de sua rede. Não esqueça de fazer um bakup de seu arquivo krb5.conf antes. Creio que seja a melhor forma de trabalhar.
          Backup: cp /etc/krb5.conf /etc/krb5.conf.oud

          Realize as configurações e faça o teste, depois me de um feedback. Att.

          1. Boa tarde, fiz a troca porem quando deixo o nome ao invés do IP ele não funciona nem o kinit, então deixei dessa forma a baixo.

            como esta a baixo o kinit funciona user e senha.
            se eu remover o ip deixando no kdc e no admin_server o server01.teste.local nem o kinit funciona.

            isso mesmo o 10.0.0.252 é o eu AD e DNS.

            ********krb5.conf****************

            [logging]
            Default = FILE:/var/log/krb5.log

            [libdefaults]
            ticket_lifetime = 24000
            clock-skew = 300
            default_realm = TESTE.LOCAL
            dns_lookup_realm = true
            dns_lookup_kdc = true

            [realms]
            TESTE.LOCAL = {
            kdc = 10.0.0.252 #server01.teste.local
            default_domain = teste.local
            admin_server = 10.0.0.252 #server01.teste.local
            }

            [domain_realm]
            .teste.local = TESTE.LOCAL
            teste.local = TESTE.LOCAL

            [login]
            krb4_convert = true
            krb4_get_tickets = false

          2. Tudo bem utilizar o IP, embora que o ideal é ter uma correta configuração de DNS, assim não terá problema com resolução de nomes. Quando lhe informei a configuração dos dois arquivos quis dizer que nos dois lugares é feito referência ao controlador de domínio de sua rede, coisa que não estava fazendo em sua configuração. Se seu AD é “10.0.0.252”, ele deve ser referenciado, tanto em “resolv.conf”, quanto “krb5.conf”, conforme mencionado no artigo.

          1. Sobre o erro no qual informou, tente alinhar os arquivos como informado, também verifique o arquivo hosts e as configurações de seu arquivo interfaces. Substitua as informações do seu arquivo smb pelas informações do artigo, já fiz de forma sucinta para auxiliar. Não é possível lhe dar um diagnostico sem acesso ao ambiente. Sugiro também que realize as configurações a partir de uma máquina do zero. A dica que posso lhe dar é revisar o artigo do inicio, talvez em algum ponto esta faltando entendimento. Abr.

Ficou com dúvida? Alguma Sugestão ou Elogio? Deixe seu comentário!