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 Linux – Stato Blog – TecMint
Ao som de Tulipa Ruiz – Proporcional
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
Obrigado, José.
Recomendo para você o site: https://www.server-world.info/en/
Como o Mint é Debian Like, recomendo o também o https://servidordebian.org//pt/start
Porém, EU não montaria um servidor com o Mint. Acredito que ele não seja usado para esse propósito.
Recomendo instalar um Debian, Ubuntu Server ou CentOS. Eles são mais recomendados para ser um servidor.
Boa sorte com o projeto.
Abraços.
Ola Bruno, legal seu artigo. Agora como se faz para logar no linux dominio pela tela grafica de login inicial?
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
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?
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)
}
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.
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