Integrando Servidores Linux no Active Directory com Samba

Este documento é dirigido à área de TI, especialmente aos administradores de redes, sistemas e/ou segurança, que são os responsáveis pelo planejamento, implementação ou operação de redes e sistemas. Também podem se beneficiar de sua leitura, gerentes com conhecimento técnico de redes ou até mesmo pessoas leigas.

[ Hits: 4.151 ]

Por: Wagner Cintra em 06/02/2019


Introdução



Este documento é dirigido ao pessoal da área de TI, especialmente aos administradores de redes, sistemas e/ou segurança, que são os responsáveis pelo planejamento, implementação ou operação de redes e sistemas. Também podem se beneficiar da sua leitura gerentes com conhecimento técnico de redes ou até mesmo pessoas leigas.

Este documento também tem o objetivo de explicar como instalar e configurar, passo a passo, cada aplicação nele necessária para autenticação dos servidores Linux com o Active Directory, permitindo assim centralizar os usuários para acesso dos mesmos. Eu havia feito um anteriormente utilizando o ADCLI, porém, tive problemas com versões mais recentes da aplicação e resolvi fazer com o Samba.

Instalação de Pacotes Necessários

Pacote de suporte ao compartilhamento interplataforma com Windows, osX e outro sistemas Unix:

# yum install samba -y

Pacote de suporte que faz a integração do Linux com o Active Directory:

# yum install sssd -y

Esse é o "pam_krb5", um módulo de autenticação conectável que pode ser usado por aplicativos que reconhecem o PAM para verificar senhas e obter tickets de concessão de tickets, usando o Kerberos 5 e para alterar senhas de usuários:

# yum install pam_krb5.x86_64

Ou, instalar todos os pacotes acima de uma vez:

# yum install samba sssd pam_krb5.x86_64 -y

Configurar DNS

Configurar o arquivo hosts para resolver o DNS, digite:

# vi /etc/resolv.conf

Agora, dentro do arquivo, insira as seguintes informações:

search meudominio.local
nameserver 192.168.0.1

Criando arquivo krb5.conf

Embora o Active Directory (AD) possa ser configurado como um provedor de identidade específico, do tipo para o Daemon de Serviços de Segurança do Sistema (SSSD), ele também pode ser configurado como um provedor de identidade LDAP puro com um provedor de autenticação Kerberos.

Recomenda-se que o SSSD conecte ao servidor do AD usando SASL, o que significa que o host local deve ter um keytab de serviço para o domínio do Windows no host do Linux. Este keytab pode ser criado usando o Samba.

Configure o arquivo /etc/krb5.conf para usar o domínio do Active Directory:

# vi /etc/krb5.conf

Apague todo o conteúdo do arquivo e adicione o conteúdo com as informações do domínio a ser adicionado como mostrado abaixo:

# Configuration snippets may be placed in this directory as well
includedir /etc/krb5.conf.d/ [logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log [libdefaults]
dns_lookup_realm = false
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true
rdns = false
default_realm = MEUDOMINIO.LOCAL
default_ccache_name = KEYRING:persistent:%{uid} [realms]
# EXAMPLE.COM = {
#  kdc = kerberos.example.com
#  admin_server = kerberos.example.com
# } MEUDOMINIO.LOCAL = {
  kdc = meudominio.local
  admin_server = meudominio.local
} [domain_realm]
meudominio.local = MEUDOMINIO.LOCAL
.meudominio.local = MEUDOMINIO.LOCAL

Configurando o SAMBA

Altere arquivo de configuração do Samba, /etc/samba/smb.conf, para apontar para a região do Windows Kerberos:

# vi /etc/samba/smb.conf

Apague todo o conteúdo do arquivo e adicione o conteúdo abaixo:

# See smb.conf.example for a more detailed config file or
# read the smb.conf manpage.
# Run 'testparm' to verify the config is correct after
# you modified it. [global]
   workgroup = MEUDOMINIO
   client signing = yes
   client use spnego = yes
   kerberos method = secrets and keytab
   log file = /var/log/samba/%m.log
   password server = MEUDOMINIO.LOCAL
   realm = MEUDOMINIO.LOCAL
   security = ads
[homes]
   comment = Home Directories
   valid users = %S, %D%w%S
   browseable = No
   read only = No
   inherit acls = Yes [printers]
   comment = All Printers
   path = /var/tmp
   printable = Yes
   create mask = 0600
   browseable = No [print$]
   comment = Printer Drivers
   path = /var/lib/samba/drivers
   write list = @printadmin root
   force group = @printadmin
   create mask = 0664
   directory mask = 0775

Mudar Provedor de Autenticação

Vamos definir em qual Domain Controller ele irá se autenticar, no caso será o MEUDOMINIO.LOCAL, na linha de comando digite:

# authconfig \
--enablekrb5 \
--krb5kdc=meudominio.local \
--krb5adminserver=meudominio.local \
--krb5realm=MEUDOMINIO.LOCAL \
--enablesssd \
--enablesssdauth \
--enablemkhomedir \
--update

Após executar o comando acima, validar se o servidor está reconhecendo o AD:

# net ads info meudominio.local

Ingressar Máquina no ACTIVE DIRECTORY

Após configurado o servidor de autenticação que o "net ads" irá buscar, deve-se ingressar a máquina no domínio com um usuário administrador da rede.

Digite o comando abaixo:

# net ads join meudominio.local -U Administrador

Digite a senha do usuário e a máquina entrará no domínio. O objeto será adicionado no Active Directory.

Criar Arquivo de Configuração SSSD

Após a máquina estar configurada e dentro do domínio, criar arquivo SSSD (Sistema de Segurança Seviços Daemon).

Ele fornece uma interface NSS e PAM em direção ao sistema e um sistema de back-end pluggable para se conectar às fontes múltiplas contas diferentes. É também a base para a prestação de serviços de auditoria cliente e políticas para projetos como FreeIPA.

Na linha de comando, digite:

# vi /etc/sssd/sssd.conf

Adicionar o conteúdo abaixo no arquivo:

[sssd]
domains = meudominio.local
config_file_version = 2
services = nss, pam [domain/meudominio.local]
ad_domain = meudominio.local
krb5_realm = MEUDOMINIO.LOCAL
realmd_tags = manages-system joined-with-samba
cache_credentials = True
id_provider = ad
krb5_store_password_if_offline = True
default_shell = /bin/bash
ldap_id_mapping = True
use_fully_qualified_names = False
fallback_homedir = /home/%d/%u
access_provider = ad

Salve e feche o arquivo. Dê permissão 600 para o arquivo que acabou de ser criado:

# chmod 600 /etc/sssd/sssd.conf

Iniciar e Habilitar Automaticamente Serviço SSSD

Inicie o serviço SSSD:

# systemctl start sssd

Agora, habilite o serviço SSSD na máquina, digite:

# systemctl enable sssd

Validar Acesso com Usuário do AD

Para validar se o Linux está trazendo as informações do AD, como os grupos em que o usuário faz parte, digite o comando abaixo:

# id nome_do_usuario

Veja se é possível logar com o usuário de rede no servidor Linux, ele irá criar automaticamente um diretório com o nome do domínio e seu nome de usuário, digite:

# su - nome_do_usuario

Usuário autenticado com sucesso.

Alterar Permissões para Elevação de Privilégios

Após fazer as configurações para que a máquina ingresse no domínio Windows, deve-se habilitar somente um grupo específico para acessar essas máquinas. Foi criado no Active Directory um grupo chamado "LinuxAdmins" e definido os usuários que vão ter permissão para acessar via SSH.

Acessar o arquivo de configuração do SSH:

# vi /etc/ssh/sshd_config

Acrescentar a seguinte linha, para permitir que somente os usuários do grupo "LinuxAdmins" (ou mais grupos) acessem o servidor via SSH. Dentro do arquivo, digite:

AllowGroups linuxadmins

Para permitir que um usuário local também possa logar, adicione ele em AllowGroups. Após isso, reiniciar o serviço do SSHD, digite:

# systemctl restart sshd

Para permitir que os usuários do grupo "LinuxAdmins" possam usar o sudo, caso seja necessário mais de um grupo, adicionar uma linha para cada, edite o arquivo "sudoers":

# vi /etc/sudoers

Ou, digite:

# visudo

Acrescentar a linha abaixo:

%linuxadmins      ALL=(ALL)   ALL

Agora a autenticação está centralizada.

   

Páginas do artigo
   1. Introdução
Outros artigos deste autor

Integração de servidores Linux com Active Directory

Expandir Disco no Linux - VMware

Configuração de Servidor SFTP

Adicionando Novo Disco - RHEL e CentOS

Servidor de Repositório Yum - CentOS / Oracle Linux

Leitura recomendada

Evitando acúmulo de arquivos na lixeira do Samba

Samba no Arch Linux (para principiantes)

Samba 4 - Compartilhamento de Arquivos

Micro curso Samba

Linux + Samba como PDC

  
Comentários
[1] Comentário enviado por HCMelloAndrade em 07/02/2019 - 04:46h

Muito legal. Só tem dois errinhos nos arquivos krb5 e smb. Parece que depois dos comentários precisa ter mais um ENTER senão ele está comentando o início do próximo bloco nesses arquivos.

[2] Comentário enviado por wagner31 em 07/02/2019 - 12:48h


[1] Comentário enviado por HCMelloAndrade em 07/02/2019 - 04:46h

Muito legal. Só tem dois errinhos nos arquivos krb5 e smb. Parece que depois dos comentários precisa ter mais um ENTER senão ele está comentando o início do próximo bloco nesses arquivos.


na verdade eu havia colocado, mas eu acho que o site mudou a forma como formata as páginas e deixou tudo junto.

[3] Comentário enviado por absouza em 08/02/2019 - 08:16h

Parabéns pelo artigo, eu uso o Samba aqui no trabalho é uma ferramenta muito boa.

[4] Comentário enviado por wagner31 em 08/02/2019 - 12:48h


[3] Comentário enviado por absouza em 08/02/2019 - 08:16h

Parabéns pelo artigo, eu uso o Samba aqui no trabalho é uma ferramenta muito boa.


obrigado absouza, eu relutei por usar o samba por preguiça em achar conteúdo de como integrar com o AD e entender a ferramenta melhor, porém ou eu fazia isso ou teria q usar a ferramenta ADCLI antiga para continuar integrando minhas máquinas, mas o samba é muito melhor e mais confiável ai sai da minha zona de conforto.
valeu


Contribuir com comentário