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: 3.575 ]

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

Adicionando Novo Disco - RHEL e CentOS

Configuração de Servidor SFTP

Expandir Disco no Linux - VMware

Integração de servidores Linux com Active Directory

Servidor de Repositório Yum - CentOS / Oracle Linux

Leitura recomendada

Dicas para Samba - Solucionando dificuldades

Samba 4 - Compartilhamento de Arquivos

Adicionando facilidades ao Samba

Samba no Mageia 2 KDE

Servidor Samba PDC para Windows XP em 3 passos

  
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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts