Guia de tecnologias

Atualizações automáticas de segurança no Ubuntu 16.04

6 min read Linux Atualizado 08 Oct 2025
Atualizações automáticas de segurança Ubuntu 16.04
Atualizações automáticas de segurança Ubuntu 16.04

O que faremos

  1. Instalar unattended-upgrades no Ubuntu 16.04
  2. Configurar o arquivo 50unattended-upgrades
  3. Ativar atualizações automáticas via 20auto-upgrades
  4. Verificar pacotes atualizados e logs

Principais benefícios

  • Reduz janela de exposição a vulnerabilidades (aplicar atualizações dentro de 30 dias).
  • Automação confiável para servidores sem intervenção manual diária.
  • Notificações por e‑mail e reinício automático para minimizar tempo de inatividade manual.

Pré-requisitos

  • Servidor com Ubuntu 16.04
  • Acesso root ou sudo
  • Conexão à Internet para baixar pacotes

Modelo mental rápido

Unattended-upgrades é um serviço que resolve duas perguntas: quais pacotes atualizar e quando fazê-lo. Ele consulta as origens permitidas, baixa pacotes em segundo plano e executa dpkg/apt para instalar, registrando todas as ações em /var/log/unattended-upgrades.

Passo 1 - Instalar unattended-upgrades no Ubuntu 16.04

Conecte-se via SSH como root ou um usuário com sudo:

ssh root@hakase-labs

Atualize a lista de pacotes e instale o pacote:

sudo apt update
sudo apt install unattended-upgrades

Após instalado, os arquivos de configuração ficam em /etc/apt/apt.conf.d/. Vamos editar esses arquivos nos próximos passos.

Passo 2 - Configurar unattended-upgrades

Edite o arquivo principal de configuração 50unattended-upgrades:

cd /etc/apt/apt.conf.d/
vim 50unattended-upgrades

Definir origem de upgrades

O bloco Allowed-Origins controla de onde as atualizações podem ser instaladas. Para limitar a apenas atualizações de segurança em Ubuntu 16.04, comente todas as linhas exceto a relativa a “-security”:

Unattended-Upgrade::Allowed-Origins {
 //      "${distro_id}:${distro_codename}";
         "${distro_id}:${distro_codename}-security";
         // Extended Security Maintenance; doesn't necessarily exist for
         // every release and this system may not have it installed, but if
         // available, the policy for updates is such that unattended-upgrades
         // should also install from here by default.
 //      "${distro_id}ESM:${distro_codename}";
 //      "${distro_id}:${distro_codename}-updates";
 //      "${distro_id}:${distro_codename}-proposed";
 //      "${distro_id}:${distro_codename}-backports";
 };

Configurar unattended-upgrades

Alt text: Tela com configuração do arquivo 50unattended-upgrades mostrando Allowed-Origins configurado para -security.

Explicação curta: escolher apenas atualizações “-security” reduz risco de mudanças inesperadas oriundas de updates gerais ou backports.

Blacklist de pacotes (Package-Blacklist)

Use esta seção para impedir atualizações de pacotes específicos que você considere sensíveis (por compatibilidade, drivers proprietários, etc.). Exemplo:

Unattended-Upgrade::Package-Blacklist {
         "vim";
         "mysql-server";
         "mysql-client";
 //      "libc6";
 //      "libc6-dev";
 //      "libc6-i686";
 };

Nota: bloquear pacotes centrais como libc6 pode deixar o sistema vulnerável; use essa lista com cautela.

Configurações adicionais úteis

  • Notificação por e‑mail: informe quem receberá o resumo das ações.
Unattended-Upgrade::Mail "root";

Certifique-se de ter uma MTA instalada (mailx, sendmail ou postfix). Exemplo de instalação de sendmail:

sudo apt install -y sendmail
  • Remover dependências não usadas automaticamente:
Unattended-Upgrade::Remove-Unused-Dependencies "true";
  • Reinicialização automática caso necessária (útil para atualizações de kernel):
Unattended-Upgrade::Automatic-Reboot "true";
Unattended-Upgrade::Automatic-Reboot-Time "00:00";

A configuração Automatic-Reboot-Time permite agendar a hora do reinício automático (formato HH:MM).

Salve e feche o arquivo.

Importante: o reinício automático pode interromper serviços dependentes. Em ambientes de produção, preferir janelas de manutenção ou usar notificações para aprovar reinícios.

Passo 3 - Ativar atualizações automáticas

Edite o arquivo 20auto-upgrades para habilitar a execução periódica:

cd /etc/apt/apt.conf.d/
vim 20auto-upgrades

Defina as chaves como abaixo para executar diariamente:

APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Download-Upgradeable-Packages "1";
APT::Periodic::AutocleanInterval "3";
APT::Periodic::Unattended-Upgrade "1";

Significado rápido:

  • Update-Package-Lists: 1 ativa atualização da lista de pacotes.
  • Download-Upgradeable-Packages: 1 ativa o download automático de pacotes atualizáveis.
  • AutocleanInterval: remove pacotes antigos a cada X dias (aqui, 3).
  • Unattended-Upgrade: 1 ativa o processo de upgrade automático.

Depois de salvar, o sistema passará a baixar e aplicar atualizações de segurança automaticamente de acordo com a janela agendada pelo APT Periodic (geralmente via systemd timer ou cron segundo a configuração do sistema).

Passo 4 - Verificar pacotes atualizados

Logs do unattended-upgrades

Registros ficam em /var/log/unattended-upgrades. Use:

cd /var/log/unattended-upgrades
ls -lah

Verificar pacotes atualizados

Alt text: Listagem de arquivos de log em /var/log/unattended-upgrades mostrando arquivos dpkg e shutdown.

Arquivos principais:

  1. unattended-upgrades-dpkg.log — ações dpkg de instalar/atualizar/remover.
  2. unattended-upgrades.log — resumo das atualizações, pacotes bloqueados e erros.
  3. unattended-upgrades-shutdown.log — ações executadas durante desligamento/ reboot se relevante.

Notificações no login SSH

Após atualizações (especialmente quando requer reinício), a mensagem de login SSH exibirá um aviso sobre pacotes atualizados ou necessidade de reboot.

Notificação de atualização

Alt text: Tela de login SSH mostrando notificação de atualizações pendentes antes da aplicação.

Notificação de pacote de segurança atualizado

Alt text: Notificação exibida no login SSH informando que pacotes de segurança foram instalados.

Notificações por e‑mail

Se configurado Unattended-Upgrade::Mail, verifique /var/mail para o usuário root:

cd /var/mail/
cat root

Os e‑mails contêm o resumo das operações, pacotes atualizados, pacotes bloqueados e erros, quando existentes.

Verificar reinícios

Para ver registros de reinicializações recentes:

last reboot

Isso ajuda a confirmar se um reinício automático aconteceu após atualizações de kernel ou serviços críticos.

Resultado de upgrade

Alt text: Saída do comando last mostrando registros de reinicializações antes e depois do processo de atualização.

Checklist para administradores

  • Confirmar backup recente antes de habilitar reinício automático.
  • Verificar compatibilidade de aplicações (bloquear pacotes se necessário).
  • Instalar e testar MTA para notificações por e‑mail.
  • Validar logs em /var/log/unattended-upgrades semanalmente.
  • Planejar janelas de manutenção para reinícios críticos.

Soluções alternativas e quando usá-las

  • Cron-apt: útil em sistemas legados sem unattended-upgrades; menos granular e com menos suporte a políticas.
  • Landscape (Canonical): solução paga com gerenciamento centralizado; escolha em ambientes com muitos hosts e necessidade de controle empresarial.
  • Gerenciamento via Ansible/Chef/Puppet: preferível quando você precisa testar e aprovar updates antes de aplicar automaticamente.

Quando não usar unattended-upgrades:

  • Aplicações que não toleram reinício automático ou atualizações fora de janelas controladas.
  • Ambientes que exigem revisão humana para cada change (compliance/regulatório).

Diagnóstico rápido e resolução de problemas

Problema: não chegam e‑mails de notificação

  • Verifique se sendmail/postfix está instalado e ativo.
  • Confira /var/log/mail.log para erros de entrega.

Problema: atualizações não aplicadas

  • Verifique se APT::Periodic::Unattended-Upgrade está definido para “1” em 20auto-upgrades.
  • Rode manualmente para testar:
sudo unattended-upgrade -v

Isso executa em modo verboso e mostra o que seria atualizado.

Problema: reinício não ocorreu

  • Confirme Unattended-Upgrade::Automatic-Reboot está “true”.
  • Verifique se existe bloqueio via systemd-sleep inhibitor ou se um processo impediu reinício.

Comandos úteis

  • Ver logs detalhados:
sudo tail -n 200 /var/log/unattended-upgrades/unattended-upgrades.log
  • Executar manualmente (teste):
sudo unattended-upgrade -d

O parâmetro -d roda no modo debug.

Fluxo de decisão (Mermaid)

flowchart TD
  A[Detectar atualizações de segurança] --> B{Origem permitida?}
  B -- Sim --> C[Baixar pacotes]
  C --> D{Pacotes em blacklist?}
  D -- Não --> E[Instalar pacotes]
  E --> F{Reboot necessário?}
  F -- Sim --> G{Automatic-Reboot=true?}
  G -- Sim --> H[Agendar e executar reinício]
  G -- Não --> I[Notificar administrador]
  D -- Sim --> I
  B -- Não --> I
  I --> J[Fim: registrar em /var/log/unattended-upgrades]

Critérios de aceitação

  • unattended-upgrades instalado e serviço habilitado.
  • Apenas origens -security listadas em Allowed-Origins (quando desejado).
  • APT::Periodic::Unattended-Upgrade configurado com “1”.
  • Logs gerados em /var/log/unattended-upgrades após execução.
  • Notificações por e‑mail recebidas (se configuradas).
  • Reinício automático executado quando necessário (se habilitado).

Boas práticas e recomendações

  • Teste em um ambiente de staging antes de habilitar em produção.
  • Evite bloquear pacotes essenciais sem entender dependências.
  • Mantenha backups e snapshots (se suportado) antes de atualizar sistemas críticos.
  • Combine unattended-upgrades com monitoramento (SLI/SLO) para detectar regressões.

Resumo

Você instalou e configurou unattended-upgrades no Ubuntu 16.04 para aplicar automaticamente atualizações de segurança, configurou notificações por e‑mail, remoção de dependências não usadas e reinício automático. Verifique os logs regularmente, mantenha backups e ajuste a blacklist quando necessário.

Referências

Autor
Edição

Materiais semelhantes

Baixar imagens do Google Docs — 6 métodos
Tutoriais

Baixar imagens do Google Docs — 6 métodos

Chrome não abre no Windows — 7 soluções rápidas
Tecnologia

Chrome não abre no Windows — 7 soluções rápidas

Ícone de Configurações ausente no menu Iniciar — correções
Windows

Ícone de Configurações ausente no menu Iniciar — correções

Barras de rolagem largas no Windows 10 e 11
Windows

Barras de rolagem largas no Windows 10 e 11

Atualizações automáticas de segurança Ubuntu 16.04
Linux

Atualizações automáticas de segurança Ubuntu 16.04

Restringir permissões de apps Android
Segurança Android

Restringir permissões de apps Android