Entrar ou criar conta

ULC Lab · implementação reproduzível

Laboratório: Orquestração de Servidores Linux para Logs e Conformidade com Ansible

Você vai automatizar a configuração de dois servidores Linux para coleta centralizada de logs e aplicação de regras de conformidade usando Ansible. Em cerca de 2 horas, terá um ambiente reproduzível, auditável e pronto para expandir.

Automação de Infraestrutura governamental com Ansible do zero à orquestração
Ligado ao treinamento Automação de Infraestrutura governamental com Ansible do zero à orquestração
ULC-LAB-GOVE-0002 · Status de validaçãoNão validado pela Upnetix: roteiro derivado da documentação oficial, para você executar e validar
Duração estimada
120 min
Passos
11
Validações
5
Versões da documentação consultada
Ansible a versão estável atual · OpenSSH a versão estável atual · Rsyslog a versão estável atual
Objetivo

O objetivo é demonstrar, de ponta a ponta, como usar Ansible para provisionar e configurar servidores Linux em uma rede privada, centralizando logs com Rsyslog e aplicando regras básicas de conformidade (como SSH seguro e timezone padronizado). O laboratório mostra como a automação reduz erros manuais, garante rastreabilidade e facilita auditoria em ambientes públicos, como os exigidos por órgãos governamentais.

Topologia

Você terá uma máquina de controle (Ansible) conectando-se via SSH a dois servidores Linux (alvos), todos em uma rede privada (por exemplo, 192.168.56.0/24). O servidor 1 atuará como coletor central de logs (Rsyslog server) e o servidor 2 enviará logs para ele. Ambos terão regras de conformidade aplicadas via Ansible.

           +-------------------+
           |  Ansible Control |
           |   192.168.56.10  |
           +--------+----------+
                    |
        -----------------------------
        |                           |
+---------------+           +---------------+
|  Servidor 1   |           |  Servidor 2   |
| 192.168.56.11 |           | 192.168.56.12 |
| (Rsyslog Srv) |           | (Rsyslog Clt) |
+---------------+           +---------------+

Equipamentos e software

ItemRequisito, licença ou versão
Máquina de controle (Ansible)1 vCPU, 1GB RAM, Ubuntu 22.04 ou superior
Servidor Linux 1 (Rsyslog server)1 vCPU, 512MB RAM, Ubuntu 22.04 ou superior
Servidor Linux 2 (Rsyslog client)1 vCPU, 512MB RAM, Ubuntu 22.04 ou superior
AnsibleGPL v3 · a versão estável atual
OpenSSHBSD · a versão estável atual
RsyslogGPL v3 · a versão estável atual

Roteiro

  1. Preparar as VMs e rede privada

    Crie três VMs (Ansible, Servidor 1, Servidor 2) em uma rede privada (ex: VirtualBox NAT Network ou bridge). Isso isola o laboratório e simula um ambiente real.

    O que você deve ver: As três VMs se pingam mutuamente nos IPs privados.

  2. Instalar Ansible na máquina de controle

    Ansible é a ferramenta de automação. Instale-o na máquina de controle para gerenciar os servidores.

    sudo apt update && sudo apt install -y ansible

    O que você deve ver: Comando 'ansible --version' retorna a versão instalada.

  3. Configurar acesso SSH sem senha

    Ansible usa SSH para conectar aos alvos. Gere uma chave SSH e copie para os dois servidores.

    ssh-keygen -t ed25519 -C "ansible-lab"
    ssh-copy-id user@192.168.56.11
    ssh-copy-id user@192.168.56.12

    O que você deve ver: Consegue acessar ambos os servidores via 'ssh user@192.168.56.11' sem senha.

  4. Criar o arquivo de inventário do Ansible

    O inventário define quais hosts Ansible vai gerenciar. Crie um arquivo simples com os IPs dos servidores.

    echo -e "[servidores]
    192.168.56.11
    192.168.56.12" > hosts.ini

    O que você deve ver: Arquivo hosts.ini contém os IPs dos servidores.

  5. Testar conectividade Ansible com os alvos

    Antes de automatizar, valide se o Ansible consegue se conectar aos servidores.

    ansible -i hosts.ini servidores -m ping -u user

    O que você deve ver: Ambos os hosts retornam 'pong'.

  6. Criar playbook para instalar e configurar Rsyslog

    Rsyslog é padrão para logs em Linux. O playbook instala e configura o servidor e o cliente.

    cat > rsyslog.yml <<'EOF'
    - hosts: servidores
      become: yes
      tasks:
        - name: Instalar Rsyslog
          apt:
            name: rsyslog
            state: present
        - name: Configurar Rsyslog Server
          when: inventory_hostname == '192.168.56.11'
          copy:
            dest: /etc/rsyslog.d/60-central.conf
            content: |
              module(load="imudp")
              input(type="imudp" port="514")
              module(load="imtcp")
              input(type="imtcp" port="514")
        - name: Configurar Rsyslog Client
          when: inventory_hostname == '192.168.56.12'
          copy:
            dest: /etc/rsyslog.d/60-client.conf
            content: |
              *.* @@192.168.56.11:514
        - name: Reiniciar Rsyslog
          service:
            name: rsyslog
            state: restarted
    EOF

    O que você deve ver: Playbook criado com tarefas para instalar e configurar Rsyslog.

  7. Executar o playbook de Rsyslog

    Rode o playbook para aplicar as configurações de logs centralizados.

    ansible-playbook -i hosts.ini rsyslog.yml -u user

    O que você deve ver: Saída mostra tarefas 'ok' ou 'changed' para ambos os servidores.

  8. Criar playbook de conformidade básica (SSH e timezone)

    Padronizar configurações críticas é essencial em ambientes públicos. O playbook ajusta o timezone e aplica hardening básico no SSH.

    cat > compliance.yml <<'EOF'
    - hosts: servidores
      become: yes
      tasks:
        - name: Definir timezone para America/Manaus
          timezone:
            name: America/Manaus
        - name: Desabilitar SSH root login
          lineinfile:
            path: /etc/ssh/sshd_config
            regexp: '^PermitRootLogin'
            line: 'PermitRootLogin no'
        - name: Reiniciar SSH
          service:
            name: ssh
            state: restarted
    EOF

    O que você deve ver: Playbook compliance.yml criado com tarefas de timezone e SSH.

  9. Executar o playbook de conformidade

    Aplique as regras de conformidade nos dois servidores.

    ansible-playbook -i hosts.ini compliance.yml -u user

    O que você deve ver: Saída mostra tarefas 'ok' ou 'changed' para ambos os servidores.

  10. Validar centralização de logs

    Gere um log no cliente e verifique se ele chega ao servidor central.

    ssh user@192.168.56.12 'logger "Teste de log centralizado"'
    ssh user@192.168.56.11 'sudo grep "Teste de log centralizado" /var/log/syslog'

    O que você deve ver: A mensagem aparece no /var/log/syslog do servidor 1.

  11. Validar timezone e SSH hardening

    Confirme que o timezone está correto e que o root não pode logar via SSH.

    ansible -i hosts.ini servidores -a 'timedatectl' -u user
    ssh root@192.168.56.11

    O que você deve ver: Timezone é America/Manaus. Login root via SSH é negado.

Como saber que funcionou

TesteComandoCritério
Ping entre todas as VMsping -c 2 192.168.56.11Recebe respostas de ping.
Conectividade Ansibleansible -i hosts.ini servidores -m ping -u userAmbos retornam 'pong'.
Logs centralizadossudo grep "Teste de log centralizado" /var/log/syslogMensagem aparece no servidor central.
Timezone corretotimedatectlTimezone é America/Manaus.
SSH root login bloqueadossh root@192.168.56.11Acesso negado para root.

Troubleshooting

SintomaCausa provávelCorreção
Ansible retorna 'UNREACHABLE' para um hostChave SSH não copiada ou firewall bloqueando SSHVerifique 'ssh-copy-id' e regras de firewall
Logs não chegam ao servidor centralFirewall bloqueando porta 514 ou erro de configuração do RsyslogVerifique 'ufw' e arquivos em /etc/rsyslog.d/
Timezone não muda após playbookTimezone não suportado ou erro no módulo AnsibleConsulte a documentação do módulo timezone
SSH ainda permite root loginLinha duplicada ou mal formatada em sshd_configEdite /etc/ssh/sshd_config manualmente e reinicie o SSH

Segurança e hardening

  • Nunca use senha padrão em ambientes reais
  • Restrinja o acesso SSH por firewall e por IP
  • Aplique atualizações de segurança antes de expor servidores
  • Revise permissões dos arquivos de configuração do Ansible

Checklist final

Referências

  1. Ansible Documentation · Ansible (Red Hat) (docs.ansible.com)
  2. YAML Specification · Yaml (yaml.org)
Verificação editorial
Publicado
09/09/2026
Última revisão
09/09/2026
Versão do conteúdo
1.0
Referências
2 oficiais
Revisão técnica
redação e revisão por IA, URLs conferidas na publicação
Status
Atual
Encontrou um erro? Escreva para comercial@upnetix.com.br com o endereço da página. A revisão semestral por IA nunca altera comandos ou configurações sem passar pela fila de revisão.