Configuração Inicial do Ubuntu Server
INFO
Nota última atualizção: Agosto 2025
Incluindo maquina no Active Directory AD
- No Linux
- Configurar a rede
- Configurar chaves do ssh
- Configurar hostname
- Configurar hora
- Configurar banner de mensagem ao logar
- No Windows
- Criamos grupo Linux_Admins e Linux_Users
- Criamos usuário para add maquinas no domínio
Autenticação de Usuários
Instalação e configuração do SSSD + Kerberos + AD
Informações
- Domínio AD: pmdf.local
- Controlador de Domínio (DC): taquari (10.95.203.40)
- Máquina Ubuntu: IP w.x.y.z, hostname: ubuntu-server
- Usuário AD para join: usuário do técnico no AD
- Grupo AD para login Linux: Linux_Admins (para gerência da máquina) e Linux_Users (para quem precisar acessar com privilégios limitados)
- Usuários AD no grupo: fulano, sicrano
Pré-requisitos na Máquina Ubuntu
Utilizando o template gerado, realizar as seguintes configurações:
Iniciando a configuração do servidor
Após a máquina iniciar realizar as configurações de rede
- Primeiro devemos descobrir o nome da nossa interface de rede usando o comando
ip a s. Essa informação será usada na etapa seguinte:

Nossa interface foi reconhecida como enp0s3.
- Configurar a rede manualmente, utilizando IP fixo. Editar o arquivo
/etc/netplan/50-cloud-init.yaml.

- Configurar a rede manualmente, utilizando IP fixo. Editar o arquivo
/etc/netplan/50-cloud-init.yaml.

Inserir as informações do endereçamento (de acordo com sua rede):

As informações de endereçamento IP, roteador padrão e DNS devem ser conhecidas para configurar a rede.
- Em seguida aplicar as novas configurações com o comando:
sudo netplan applySe tudo ocorreu bem, digitar o comando para verificar o endereço IP do servidor.
ip -4 -br a
- Com a configuração atualizada realizar a atualização de pacotes:
sudo apt updateConfigurar as chaves ssh
- Gerar as chaves do ssh
sudo dpkg-reconfigure openssh-server
- Verificar se as Chaves Foram Criadas:
ls -l /etc/ssh/ssh_host_*- Criar o diretório para separação de privilégios:
sudo mkdir -p /run/sshd
sudo chmod 0755 /run/sshd- Testar a configuração:
sudo sshd -t- Recarregar o systemd e reiniciar o serviço:
sudo systemctl daemon-reload
sudo systemctl restart ssh- Verificar se o ssh iniciou:
sudo systemctl status ssh
ss -nat | grep :22- Editar o arquivo /etc/ssh/sshd_config e alterar a diretiva ListenAddress para o IP da máquina atual:
sudo vim /etc/ssh/sshd_configListenAddress w.x.y.z- Reiniciar o SSH e verificar e a máquina escuta na porta escolhida:
sudo systemctl daemon-reload
sudo systemctl restart ssh
sudo ss -nat | grep :22Configurar o Hostname
- É bom que o nome da máquina Ubuntu seja único e, idealmente, um FQDN dentro do seu domínio.
Entretanto como os servidores linux serão adicionados ao domínio da PMDF e autenticados com um usuário do AD, essa é uma etapa obrigatória e o node DEVE ser único.
sudo hostnamectl set-hostname NOME.pmdf.local
bash- Edite
/etc/hostspara refletir isso (se necessário, adicione a linha se não existir ou corrija):
sudo vim /etc/hosts127.0.0.1 localhost
127.0.1.1 NOME.pmdf.local NOME
w.x.y.z NOME.pmdf.local NOMEConfigurar DNS - netplan
A máquina Ubuntu PRECISA usar o seu Controlador de Domínio como o servidor DNS primário para resolver os serviços do AD (SRV records, etc.).
- Para Netplan (padrão do Ubuntu Server): Edite o arquivo de configuração do Netplan (geralmente em /etc/netplan/01-netcfg.yaml ou similar):
sudo vim /etc/netplan/50-cloud-init.yamlnetwork:
ethernets:
enp0s3:
dhcp4: false
addresses: [w.x.y.z/mascara]
routes:
- to: default
via: w.x.y.z
nameservers:
addresses: [10.95.203.40, 10.95.203.41] # IP do seu AD DC
search: [PMDF.LOCAL] # Domínio de busca
version: 2Aplique a configuração:
sudo netplan applySincronização de tempo (NTP/Chrony)
Kerberos (usado pelo AD) é muito sensível a diferenças de tempo entre cliente e servidor, portanto os horários dos servidores devem ser sincronizados com o Domain Controller
- Ajustar manualmente o timezone:
- Para listar as timezones disponíveis:
sudo timedatectl list-timezones- Usamos America/Sao_Paulo
sudo timedatectl set-timezone America/Sao_Paulo- E para verificar a data e hora
date- Instale o chrony:
sudo apt update
sudo apt install chrony -yEdite a configuração do Chrony para usar o seu DC como fonte de tempo:
sudo nano /etc/chrony/chrony.confComente ou remova as linhas pool ... existentes e adicione a linha do seu DC:
server taquari.pmdf.local iburstReinicie e ative o Chrony:
sudo systemctl restart chrony
sudo systemctl enable chronyVerifique a sincronização:
chronyc sourcesVocê deve ver taquari.pmdf.local (ou o IP) com ^* indicando que é a fonte sincronizada. Pode levar alguns minutos.
Configurar banner da máquina
- Editar o arquivo
/etc/bash.bashrc
sudo vim /etc/bash.bashrcInserir o nome da máquina ou sua função:
figlet -w 120 -f standard AQUICOLOCARNOMEHOST | /usr/games/lolcat
echo " "
echo "########################################################"
echo " "
echo -e " * Servidor COLOCAR AQUI A FUNÇÃO OU OUTRA COISA * "
echo -e " * ACESSO RESTRITO * "
echo -e " * Todas as ações sao monitoradas * "
echo " "
echo "########################################################"
echo " "
echo "Para verificar seu IP digite [ hostname -I ] "
echo " "Ajustar o Auditd
- Na geração do template apagamos todos os logs do sistema. Se faz necessário criar o diretório
/var/log/audit. O serviço auditd precisa dessa pasta para funcionar, e como ela não existe, ele falha ao tentar iniciar - Crie a pasta
audit: Este comando vai criar a pasta que está faltando.
sudo mkdir /var/log/audit- Ajuste as permissões de segurança da pasta: Este comando protege a pasta, garantindo que apenas o sistema possa acessá-la.
sudo chmod 700 /var/log/audit- Agora, inicie o serviço
auditd: Com a pasta no lugar, o serviço vai iniciar corretamente.
sudo systemctl status auditdSSSD
O SSSD é o serviço que proporcionará a autenticação dos usuários no Active Directory.
Instalar Pacotes Necessários - SSSD
sudo apt update
sudo apt install -y realmd sssd sssd-tools adcli krb5-user packagekit samba-common-bin libnss-sss libpam-sssDurante a instalação do krb5-user, ele pode perguntar pelo "Default Kerberos version 5 realm". Digite em MAIÚSCULAS: PMDF.LOCAL.
Descobrir o Domínio AD
- Acessar como root:
sudo -iEste comando verifica se o domínio é detectável:
realm discover PMDF.LOCALVocê deve ver informações sobre seu domínio, como:

Ingressar a Máquina no Domínio AD
Use o seu usuário da rede que tem permissão para adicionar máquinas ao domínio.
realm join --user=usuario PMDF.LOCALVocê será solicitado a digitar a senha do usuário.
Se precisar especificar a Unidade Organizacional (OU) onde o objeto computador será criado no AD:
realm join --user=usuario --computer-ou="OU=LINUX,OU=SERVERS,DC=pmdf,DC=local" PMDF.LOCALVerifique se a máquina ingressou:
realm listVocê deverá ver algo como a imagem anterior
- Delegar permissões para grupos.
sudo realm permit -g 'Linux_Admins'
sudo realm permit -g 'Linux_Users'Obs: Esses grupos devem existir no AD.
Configurar SSSD
O comando realm join geralmente cria uma configuração básica para SSSD em /etc/sssd/sssd.conf. Vamos ajustá-la para suas necessidades
Permitir Login Apenas para o Grupo Linux_Admins
Edite o arquivo de configuração do SSSD:
sudo vim /etc/sssd/sssd.confO arquivo final deverá ser parecido com isto (ajuste conforme necessário, especialmente a seção [domain/pmdf.local]) :
[sssd]
domains = pmdf.local
config_file_version = 2
services = nss, pam
[domain/pmdf.local]
ad_domain = pmdf.local
krb5_realm = PMDF.LOCAL
realmd_tags = manages-system joined-with-adcli
cache_credentials = True
id_provider = ad
auth_provider = ad
chpass_provider = ad
access_provider = ad
# Linhas importantes a adicionar/modificar:
default_shell = /bin/bash
fallback_homedir = /home/%u@%d
use_fully_qualified_names = False
# Para restringir acesso ao grupos Linux_Admins, Linux_Users
access_provider = simple
simple_allow_groups = Linux_Admins, Linux_Users
# Opções padroes
# krb5_store_password_if_offline = True
# ldap_id_mapping = TrueResumo das modificações importantes em [domain/pmdf.local]:
- Adicione/Certifique-se que existe: default_shell = /bin/bash
- Adicione/Certifique-se que existe: fallback_homedir = /home/%u@%d (ou /home/%u)
- Considere : use_fully_qualified_names = True ( usuários serão obiwan@pmdf.local) ou False (usuários serão obiwan). Se False, use override_homedir = /home/%u.
- Adicione: access_provider = simple
- Adicione: simple_allow_groups = sec-linux@pmdf.local (se use_fully_qualified_names = True) ou simple_allow_groups = sec-linux (se use_fully_qualified_names = False).
Definir permissões Corretas para sssd.conf
sudo chmod 600 /etc/sssd/sssd.conf- Reiniciar e Habilitar SSSD
sudo systemctl restart sssd
sudo systemctl enable sssdConfigurar PAM para Criação Automática de Home Directories
Precisamos que o diretório home do usuário seja criado no primeiro login.
sudo vim /etc/pam.d/common-sessionAdicione a seguinte linha ANTES da linha session optional pam_sss.so: O arquivo ficará algo como:

Verificar Integração e Login de Usuários
Verificar se os usuários do AD são reconhecidos
- Se use_fully_qualified_names = True :
id obiwan@pmdf.local
id assoka@pmdf.local
getent passwd obiwan@pmdf.local
getent group Linux_Admins@pmdf.local- Se use_fully_qualified_names = False :
id obiwan
id assoka
getent passwd obiwan
getent group Linux_AdminsTestar Login
Tente fazer login via SSH a partir de outra máquina ou em um TTY local:
ssh -l obiwan w.x.y.zVocê será solicitado pela senha do obiwan do AD. No primeiro login, o diretório home /home/obiwan@pmdf.local (ou /home/obiwan) será criado.
Configurar Sudoers para Usuários/Grupos do AD
Você quer que os usuários obiwan e assoka (que estão no grupo Linux_Admins ) tenham permissões sudo específicas.
Edite o arquivo sudoers usando visudo (SEMPRE use visudo ):
sudo visudoAdicione a seguinte linha no final do arquivo para dar permissões ao grupo Linux_Admins. O formato do nome do grupo no sudoers deve corresponder ao que getent group mostra (com ou sem @pmdf.local).
Se use_fully_qualified_names = True (e getent group Linux_Admins@pmdf.local funciona):
# Permissões para o grupo sec-linux do AD
%Linux_Admins@pmdf.local ALL=(ALL) /usr/bin/apt update, /usr/bin/apt upgrade, /usr/sbin/rebootSe use_fully_qualified_names = False (e getent group Linux_Admins funciona):
# Permissões para o grupo sec-linux do AD
%Linux_Admins ALL=(ALL) /usr/bin/apt update, /usr/bin/apt upgrade, /usr/sbin/rebootExplicação da linha sudo:
- %Linux_Admins@pmdf.local: O % indica que é um grupo.
- ALL= : Podem executar comandos em qualquer host (relevante se você tem uma configuração centralizada de sudoers)
- (ALL) : Podem executar comandos como qualquer usuário (geralmente root).
- /usr/bin/apt update, /usr/bin/apt upgrade, /usr/sbin/reboot : Lista de comandos permitidos. Certifique-se de usar os caminhos completos dos executáveis.
Para verificar os caminhos corretos dos comandos:
which apt
which rebootSe preferir conceder permissões a usuários individuais (embora o grupo seja mais gerenciável):
# Se use_fully_qualified_names = True
obiwan@pmdf.local ALL=(ALL) /usr/bin/apt update, /usr/bin/apt upgrade
assoka@pmdf.local ALL=(ALL) /usr/sbin/reboot
# Se use_fully_qualified_names = False
obiwan ALL=(ALL) /usr/bin/apt update, /usr/bin/apt upgrade
assoka ALL=(ALL) /usr/sbin/rebootSalvar o arquivo.
Testar as permissões sudo: Após logar como obiwan:
sudo apt update # Deve pedir a senha de obiwan e funcionar
sudo reboot # Deve pedir a senha de obiwan e funcionar (se permitido)
sudo cat /etc/shadow # Deve ser negado, pois não está na lista de comandos permitidosResumos e Pontos de Atenção
- DNS é CRUCIAL: O Ubuntu DEVE usar o DC como DNS.
- Tempo Sincronizado: Kerberos exige que os horários estejam próximos.
sssd.conf: A configuração aqui dita como os usuários são mapeados e quem pode logar.- use_fully_qualified_names : Define se os nomes de usuário incluem o domínio (user@domain.com) ou não (user). Isso afeta como você especifica usuários/grupos no sudoers e como os diretórios home são nomeados.
- access_provider = simple e simple_allow_groups: É a forma mais fácil de restringir logins a grupos específicos do AD.
pam_mkhomedir.so: Garante que os diretórios home sejam criados.- sudoers:
- Use %nome_do_grupo_ad para especificar grupos.
- Seja específico nos comandos permitidos e use caminhos completos.
- Logs: Se algo der errado, verifique os logs:
- sudo journalctl -u sssd -f
- cat /var/log/auth.log
- cat /var/log/syslog
- Logs específicos do SSSD em /var/log/sssd/ (pode ser necessário aumentar o nível de debug no sssd.conf).