Skip to content
Search for:
TI da Hora!

TI da Hora!

Dicas sobre Linux, Windows, Mac e tudo que tenha binários.

Skip to content
  • /home
  • Linux
    •  CentOS
    •  Debian
    • Ubuntu
    •  Proxy Squid
    •  Bacula Backup
    • Dicas de Linux
    •  Firewall IPtables
    •  Samba
    • GLPI
    • BackupPC
    • Zabbix
    • Rocket.Chat
  •   Mac OS
    •  Mac OS Sierra
    •  Mac OS High Sierra
    • Mac OS Mojave
    • Mac OS Catalina
  •   Microsoft
    •  Windows 7
    •  Windows 8
    •  Windows 10
    •  Windows Server 2008
  •  DevOps
    •  Docker
    • Grafana
    • AWS Route53
  •  Virtualização
    •  Citrix XenServer
  • Gestão de TI
  • Cursos
  • Web
10outubro

Autenticando Linux CentOS em Domínio AD Active Directory

Olá, tudo bem? 😄

Aqui vai uma dica para facilitar o gerenciamento de acessos ao servidores Linux CentOS. Se você possui uma rede corporativa com domínio em base do Active Directory, seja ele Microsoft ou Samba4, esse artigo vai lhe ajudar a centralizar o acesso via SSH aos servidores linux.

Esse tutorial funciona em CentOS 6 e CentOS 7. 😎

Nosso cenário é o seguinte:

Controlador de Domínio: (Samba4) 🐧
Endereço IP: 10.1.0.88/16
Domínio: tidahora.local
OS: CentOS 7.5

Servidor Linux (Cliente) 🐧
Endereço IP: 10.1.1.89/16
Domínio: tidahora.local
OS: CentOS 7.5

Com usuário “root” vamos configurar nosso servidor linux (cliente) para autenticar usuários do AD.

Instale o repositório epel:

Shell
1
yum -y install epel-release

Instale os pacotes abaixo:

Shell
1
yum -y install adcli samba-common oddjob-mkhomedir oddjob samba-winbind-clients samba-winbind sssd pam_krb5 authconfig

Precisamos fazer uma ajuste no arquivo de resolução de nomes do Linux, é necessário para que o servidor faça a busca correta do domínio e não tenha problemas ao fazer a autenticação dos usuários.

Shell
1
vim /etc/resolv.conf

Conteúdo do arquivo:

Shell
1
2
3
search tidahora.local
domain tidahora.local
nameserver 10.1.0.88

Salve o arquivo do “resolv.conf’ e em seguida vamos bloquear o arquivo para edição, dessa forma se o servidor for reiniciado ou algum serviço tentar alterar o conteúdo do arquivo não vai ter a permissão.

Shell
1
chatt +i /etc/resolv.conf

Ajustando o ambiente para a autenticação via kerberos no domínio:

Shell
1
authconfig --enablekrb5 --krb5kdc=tidahora.local --krb5adminserver=tidahora.local --krb5realm=TIDAHORA.LOCAL --enablesssd --enablesssdauth --update

Obtendo informações do domínio:

Shell
1
adcli info tidahora.local

Retorno do comando acima, informações sobre o domínio, controlador, etc.

Shell
1
2
3
4
5
6
7
8
9
10
11
[domain]
domain-name = tidahora.local
domain-short = TIDAHORA
domain-forest = tidahora.local
domain-controller = samba4-dc01.tidahora.local
domain-controller-site = Default-First-Site-Name
domain-controller-flags = pdc gc ldap ds kdc timeserv closest writable good-timeserv full-secret
domain-controller-usable = yes
domain-controllers = samba4-dc01.tidahora.local
[computer]
computer-site = Default-First-Site-Name

Agora vamos ingressar o host ao domínio “tidahora.local”

Shell
1
2
adcli join tidahora.local -U administrator
Password for administrator@TIDAHORA.LOCAL: ****** <== Senha do usuário Administrator do domínio.

Precisamos criar o arquivo “sssd.conf”, responsável por fazer a autenticação em domínios com base LDAP/AD.

No arquivo que estamos criando abaixo, também informamos qual o bash dos usuários e o diretório home que os mesmos vão possuir, no meu caso, eu ajustei para criar uma pasta com o nome do domínio dentro do /home, dessa forma consigo gerenciar melhor os usuários locais, e usuários do domínio.

Se você quiser mudar isso, altere a linha onde contém o conteúdo de “fallback_homedir”.

Shell
1
vim /etc/sssd/sssd.conf

Conteúdo do arquivo:

Shell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[sssd]
domains = tidahora.local
config_file_version = 2
services = nss, pam
 
[domain/tidahora.local]
ad_domain = tidahora.local
krb5_realm = TIDAHORA.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

Ajustando a permissão ao arquivo:

Shell
1
chmod 600 /etc/sssd/sssd.conf

Na sequência vamos ajustar no PAM, opções de criação de diretórios homes.

Vamos ajustar primeiro o arquivo “/etc/pam.d/system-auth”

Shell
1
vim /etc/pam.d/system-auth

No final do arquivo insira a linha abaixo:

Shell
1
session     optional      pam_mkhomedir.so skel=/etc/skel umask=077

Agora vamos editar o arquivo responsável por criar a sessão (home) dos usuários quando eles conectam-se via SSH.

Shell
1
vim /etc/pam.d/sshd

No final do arquivo insira a linha abaixo:

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

Reiniciando e ajustando os serviços para iniciarem junto ao boot do sistema:

Se você estiver utilizando CentOS 6:

Shell
1
service sssd start && chkconfig sssd on && service winbind start && chkconfig winbind on

Se for CentOS 7:

Shell
1
systemctl restart sssd && systemctl enable sssd && systemctl restart winbind.service && systemctl enable winbind.service

Configurando o SSH para permitir grupos a conectarem via SSH:

Nesse caso estarei liberando o grupo “ti” para conexão via SSH ao host.

Shell
1
vim /etc/ssh/sshd_config

No final do arquivo insira a linha abaixo:

Shell
1
AllowGroups ti

Agora vamos ajustar a permissão de sudo para os usuários.

Shell
1
visudo

Na linha de número 93, insira a linha abaixo, salve o arquivo e saia do mesmo

Shell
1
%ti     ALL=(ALL)       ALL

Agora tente se logar com um usuário do seu domínio que pertença ao grupo que ajustamos no sudo e no ssh.

Meu usuário do domínio é “johnny” ele é membro do domínio “ti”, que configuramos acima:Informe a senha do usuário do domínio:Veja abaixo o diretório /home do usuário, o mesmo está configurado para /home/tidahora.local.O mesmo utilizando o comando “sudo” para executar comandos com nível de permissão avançada.

Dúvidas, comentário e sugestões postem nos comentários…
👋🏼  Valeu! e até a próxima!


Johnny Ferreira
johnny.ferreira.santos@gmail.com
http://www.tidahora.com.br

 


 

Facebook Comentários
Compartilhar
Categories: CentOS, Linux, Microsoft, Windows 10, Windows 7, Windows 8, Windows Server 2008 | 0 | Johnny Ferreira

Johnny Ferreira Author

Related Posts

Configurando autenticação Active Directory (LDAP) no GLPI

23 julho 2021 | 0

Como Instalar o GLPI no Linux Debian 10 Buster

22 julho 2021 | 0

Instalando Rocket.Chat no Debian 10 Buster

20 julho 2021 | 1

Configurando repositórios no Debian 10

19 julho 2021 | 0

Shell Script para monitorar algum processo ou serviço no Linux

8 junho 2021 | 0
TI da Hora!
Dicas sobre Linux, Windows, Mac OS e tudo que contenha binários.
redes sociais
ReviewZine powered by WordPress
Vá para versão mobile