[Linux] Adicionando um Linux em um Domínio Samba

Nesse post vou explicar como adicionar um servidor Linux em um domínio Samba. Digo servidor, pois recomendo a ferramenta CID, Close in Directory, do Eduardo Moraes, nos casos de ambientes gráficos.

Aqui foi utilizado um Ubuntu 16.04, mas a ideia é a mesma para qualquer distribuição, só observar se alguns arquivos de configuração estão caminhos diferente, como setar o IP no RHEL/CentOs.

O intuito aqui é ajudar quem quer colocar a máquina no domínio, por isso que ele é mais direto com os arquivos de configuração e não com as explicações detalhadas que cada arquivo e comando faz.
Ps: Caso apresente algum erro de autenticação durante o processo, criei um usuário com o hostname no seu AD.

 

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

Domínio → dominio.local

Servidor controlador de domínio →192.168.0.4 servidor.dominio.local

Servidor DNS primário → 192.168.0.4

Servidor DNS Secundário →192.168.0.35

Servidor DHCP →192.168.0.1

Como os clientes serão configurados pelo serviço DHCP, só especificarei o nome da máquina cliente:

Desktop cliente → linuxcliente

 

SETAR O IP MANUALMENTE

Editar o arquivo interfaces:

# vim /etc/network/interfaces

auto enp0s3

iface enp0s3 inet static

address 192.168.0.100

netmask 255.255.255.0

gateway 192.168.0.1

dns-nameserver 192.1680.4 192.168.0.35

dns-search dominio.local

 

Editar o arquivo /ETC/HOSTS

Editar o arquivo /etc/hosts para incluir um alias para controlador de domínio e alterar o hostname do desktop cliente (linuxcliente), acrescentando o fqdn, ou seja, o nome do domínio junto ao hostname da máquina cliente.  No entanto, substitua os nomes abaixo pelos correspondentes na sua rede.

 

# vim /etc/hosts

Conteúdo a ser acrescentado:

127.0.0.1       linuxcliente.dominio.local    localhost   linuxcliente

192.168.0.4    servidor.dominio.local servidor

 

Agora vamos verificar se o nome da maquina foi alterado:
# hostname -f

 

Instalar os pacotes necessários

Para que o cliente possa ingressar no domínio, é necessário fazer a instalação dos seguintes pacotes (lembrando que os pacotes abaixo são para distros Debian Like):

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

Se durante a instalação do kerberos forem apresentadas algumas telas com perguntas referentes ao KDC, pode continuar com um ENTER e seguir com a instalação dos pacotes.

 

Sincronizar data e hora com o servidor

Edite o arquivo de configuração do serviço NTP usando o Vim:

# vim /etc/ntp.conf

server 192.168.0.4

pool 192.168.0.4

restrict 192.168.0.4


Agora, reinicie o serviço de data e hora:

# /etc/init.d/ntp restart

ou

# service ntp restart

 

Resolução de DNS

Como o IP foi setado manualmente, provavelmente o resolv.conf já está com a configuração correta. Caso não esteja, basta adicionar o search e o nameserver

# vim /etc/resolv.conf

search dominio.local

nameserver 192.168.0.4

nameserver 192.168.0.35

 

Configurar o KERBEROS

Para um usuário autenticar-se no Active Directory, é necessário editar o arquivo /etc/krb5.conf e incluir informações sobre o servidor KDC (controlador de domínio kerberos). Nesse caso, o controlador de domínio com o Active Directory possui um KDC. Use o Vim para editar o arquivo e inclua as seguintes linhas no arquivo:

 

# vim /etc/krb5.conf

Conteúdo acrescentado:

[libdefaults]

default_realm = DOMINIO.LOCAL

[realms]

  DOMINIO.LOCAL  =  {

     kdc  =  servidor.dominio.local

     default_domain  =  DOMINIO.LOCAL

     admin_server  =  servidor.dominio.local

  }

[domain_realm]

.dominio.local = DOMINIO.LOCAL

 

Para fazer o teste de comunicação do nosso ubuntu com o servidor vamos utilizar o kinit. Execute o comando com o seu usuário cadastrado no servidor. No artigo estou usando o usuário “Administrator”.


# kinit Administrator

 

Agora vamos listar o ticket:

# klist

 

O retorno do  klist deverá ser algo parecido com:

Ticket cache: FILE:/tmp/krb5cc_1000

Default principal: administrator@DOMINIO.LOCAL

Valid       starting    Expires                 Service  principal

10-10-2017  12:00:32    09-10-2017  04:10:07    krbtgt/DOMINIO.LOCAL@DOMINIO.LOCAL

renew  until  13-10-2017  12:00:32

 

Configurar o SAMBA

Toda configuração é feita no/etc/samba/smb.conf. Vamos criar um arquivo de backup do smb.conf original e depois criar um arquivo novo em branco:

# mv /etc/samba/smb.conf /etc/samba/smb.conf.original
# vim /etc/samba/smb.conf

 

[global]

  security = ads

 realm= DOMINIO.LOCAL

  workgroup = DOMINIO

 idmap uid = 10000-15000

 idmap gid = 10000-15000

 winbind enum users = yes

 winbind enum groups = yes

 template homedir = /home/%D/%U

 template shell = /bin/bash

 client use spnego = yes

 winbind use default domain = yes

 restrict anonymous = 2

 winbind refresh tickets = yes

 

Agora restart o winbind e o samba

# service winbind restart

# service smbd restart

# service nmbd restart

Ingressar a máquina no domínio

Depois de configurar o Samba, execute o comando abaixo como root:

# net ads join -U Administrator

 

Assim como no Kinit, utilize um usuário com permissão para ingressar no domínio. O retorno do comando deve ser parecido com o que está abaixo:

 

Using short domain name – DOMINIO

Joined ‘LINUXCLIENTE’ to realm ‘DOMINIO.LOCAL’

 

Reinicie o Winbind:

# service winbind restart

 

Agora, faça o teste e liste os grupos e usuários do domínio com o comando wbinfo. Para listar usuários execute:

# wbinfo -u

 

Para listar os grupos execute:

# wbinfo -g

 

Caso não retorne nenhum nome de usuário ou grupo, reinicie o Winbind novamente.

Edite o arquivo NSSWITCH.CONF

Depois ingressar a máquina no domínio, é necessário editar o arquivo /etc/nsswitch.conf para que o sistema possa saber onde buscar informações de login dos usuários que estão se autenticando.

Edite o arquivo usando o Vim:

 

# vim /etc/nsswitch.conf

passwd: compat winbind

group: compat winbind

 

 

A partir desse momento, você já pode testar a maquina normalmente no domínio. Caso apresente algum erro, refaça o processo e verifique os usuários e suas permissões.

Leituras que me ajudaram a escrever esse artigo:
Viva o LinuxStato BlogTecMint

Ao som de Tulipa Ruiz – Proporcional

8 comentários

  1. Bruno, parabéns pelo tutorial!
    Eu estou tentando tornar um Mint 19 em servidor web e domínio… web já está ok! mas agora comecei as configurações para torna-lo um servidor de domínio…
    Você poderia me indicar uns artigos ou tutoriais para fazer isso?
    Tenho uma bem boa sobre linux, rede, servidores… não quero receita de bolo… algo no estilo da sua postagem.
    Se puder me ajudar, agradeço.
    Trabalho no Depto. de TI de uma prefeitura e estamos tentando montar um servidor de domínio por conta própria.
    Abraços

    1. Olá, Miguel.
      Isso vai depender da distribuição que você está utilizando.
      Recomendo dar uma olhada no CID, Close in Directory, do Eduardo Moraes, como citado acima.
      Geralmente, os logins ficam: dominio\usuario
      Abraços

  2. Eu parei na parte quando faço o comando “kinit Administrator” ai aparece a mensagem “kinit: Cannot contact any KDC for realm ‘dominio.int’ while getting initial credentials” o que pode ser?

    1. Olá, Anderson.

      No arquivo krb5.conf, onde tem o domínio pelo nome, tenta mudar para o IP

      [realms]
      DOMINIO.LOCAL = {

      kdc = servidor.dominio.local (mudar para o IP do servidor)

      default_domain = DOMINIO.LOCAL

      admin_server = servidor.dominio.local (mudar para o IP do servidor)

      }

  3. Olá!
    Me ajudou muito seu guia para ingressar o cliente Linux Mint 19 x64 no Windows Server 2012.
    Porém, estou parado no seguinte ponto…
    Consigo acessar o compartilhamento que necessito do Windows Server (onde estão os arquivos compartilhados da empresa), mas, o note onde tenho meus próprios arquivos, trabalhos e programas, que é um cliente windows 10 Pro, não consigo acessar seus compartilhamentos para copiá-los para a máquina cliente linux…
    então, assim:
    – quando acesso smb://ti@192.168.0.4/Dados – pede domínio (já preenchido e senha, digito e td ok, acesso o conteúdo …
    – quando tento smb://ti@192.168.0.81/HD_D – pede a senha, digito a senha e não acessa
    no cliente windows 10, dei permissão total no compartilhamento que pretendo copiar para a máquina cliente linux
    Caso tenha alguma sugestão, te agradeço.

    1. Olá, Elvio. Que bom que funcionou no seu Mint 19. O post é de 2017 e é bom saber que funciona em distribuições mais atuais também.

      Quanto a outra máquina, já verificou: firewall, domínio e faixa de ip?
      Pode ser também a versão do windows, sei que algumas tem limitações, mas não quais. Olha se tem atualizações pendentes no windows também.

      Caso resolva, pode postar aqui pra ajudar os outros também?

      Abraços

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.