Módulo 4 · 4.2
Atualizações automáticas
Módulo 4: Software e atualizações · Tempo de leitura: 10 minutos
Objetivo de aprendizagem: Depois desta lição, será capaz de ativar e verificar as atualizações de segurança automáticas, saberá o que acontece e o que não acontece automaticamente, e saberá quando é necessário reiniciar.
Conceitos-chave: unattended-upgrades, 20auto-upgrades, 50unattended-upgrades, Origins-Pattern e Allowed-Origins, temporizadores apt-daily, needrestart, /var/run/reboot-required, Automatic-Reboot, atualização do kernel, dnf-automatic
Porquê automático?
As falhas de segurança são descobertas, corrigidas e depois exploradas ativamente, muitas vezes em poucos dias. Um servidor que só atualiza uma vez por mês fica, em média, semanas exposto a falhas conhecidas. O NCSC neerlandês inclui a instalação atempada de atualizações nos princípios básicos da resiliência digital: "A atualização e aplicação atempada de patches no software ajuda a corrigir rapidamente as vulnerabilidades."
Ainda assim, "tudo automático" também não é boa ideia. Uma nova versão de um programa pode comportar-se de forma diferente da anterior, e um servidor que reinicia sozinho a meio do dia pode afetar os seus visitantes. O meio-termo habitual no Debian e no Ubuntu é:
- atualizações de segurança automáticas, todos os dias;
- outras atualizações e atualizações de versão manualmente, num momento escolhido por si, com um snapshot prévio;
- reinícios planeados, num momento calmo, e controlados.
O programa que trata disto chama-se unattended-upgrades.
Ativar o unattended-upgrades
No Ubuntu Server, o unattended-upgrades vem instalado por predefinição e as atualizações de segurança automáticas ficam ativas logo após a instalação. No Debian também já está presente em muitas instalações e imagens, mas nem sempre. Verifique e ative:
anna@web1:~$ sudo apt install unattended-upgrades
anna@web1:~$ sudo dpkg-reconfigure -plow unattended-upgradesO segundo comando pergunta "Automatically download and install stable updates?". Escolha Yes. Isso escreve o ficheiro /etc/apt/apt.conf.d/20auto-upgrades:
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";O 1 significa: todos os dias. Com 0 desativa-o. O trabalho em si é iniciado por dois temporizadores do systemd (lição 6.3), que pode consultar assim:
anna@web1:~$ systemctl list-timers 'apt*'
NEXT LEFT LAST PASSED UNIT ACTIVATES
Tue 2026-11-10 06:24:11 CET 9h left Mon 2026-11-09 06:41:03 CET 14h ago apt-daily-upgrade.timer apt-daily-upgrade.service
Tue 2026-11-10 08:02:47 CET 11h left Mon 2026-11-09 19:12:30 CET 1h ago apt-daily.timer apt-daily.serviceapt-daily obtém as listas (tal como apt update), apt-daily-upgrade instala as atualizações. Os horários têm uma dispersão aleatória, para que nem todos os servidores do mundo sobrecarreguem os repositórios de pacotes ao mesmo tempo.
O que é instalado automaticamente?
Isso está definido em /etc/apt/apt.conf.d/50unattended-upgrades. No Debian, o bloco chama-se Unattended-Upgrade::Origins-Pattern; no Ubuntu, Unattended-Upgrade::Allowed-Origins. Por predefinição, estão ativos o repositório de segurança e o repositório estável da sua versão, e o repositório -updates está desativado. No Ubuntu, tem este aspeto:
Unattended-Upgrade::Allowed-Origins {
"${distro_id}:${distro_codename}";
"${distro_id}:${distro_codename}-security";
"${distro_id}ESMApps:${distro_codename}-apps-security";
"${distro_id}ESM:${distro_codename}-infra-security";
// "${distro_id}:${distro_codename}-updates";
// "${distro_id}:${distro_codename}-proposed";
// "${distro_id}:${distro_codename}-backports";
};As linhas precedidas de // estão desativadas. Num primeiro servidor, deixe ficar assim. Não altere este ficheiro diretamente, porque uma versão seguinte do pacote pode querer substituí-lo. O Debian recomenda colocar as suas alterações num ficheiro próprio, por exemplo /etc/apt/apt.conf.d/52unattended-upgrades-local; os ficheiros posteriores têm prioridade sobre os anteriores.
Os pacotes de repositórios adicionais (Docker, Caddy, PostgreSQL do próprio fabricante) não são atualizados automaticamente por predefinição. É uma escolha deliberada: acompanha-os por si (lição 9.4), ou acrescenta manualmente o repositório à lista se confiar no fabricante e conhecer as consequências.
Algumas definições que vale a pena ativar com frequência:
// /etc/apt/apt.conf.d/52unattended-upgrades-local
Unattended-Upgrade::Mail "root";
Unattended-Upgrade::MailReport "only-on-error";
Unattended-Upgrade::Remove-Unused-Kernel-Packages "true";
Unattended-Upgrade::Automatic-Reboot "false";Mail só funciona se o servidor conseguir enviar correio (um pequeno relay, lição 8.3). Se não for o caso, ignore esta opção e utilize a monitorização da lição 8.3.
Verificar se funciona
Um automatismo que para silenciosamente é mais perigoso do que não ter automatismo nenhum, porque julga estar protegido. Por isso, verifique três coisas.
1. Um ensaio. Mostra o que aconteceria, sem alterar nada:
anna@web1:~$ sudo unattended-upgrade --dry-run --debug
...
Allowed origins are: origin=Debian,codename=trixie,label=Debian, origin=Debian,codename=trixie-security,label=Debian-Security, ...
Packages that will be upgraded: libssl3t64 openssh-server2. O registo. Cada execução escreve em /var/log/unattended-upgrades/unattended-upgrades.log:
anna@web1:~$ sudo tail -n 5 /var/log/unattended-upgrades/unattended-upgrades.log
2026-11-09 06:41:15,201 INFO Packages that will be upgraded: openssh-server
2026-11-09 06:41:15,202 INFO Writing dpkg log to /var/log/unattended-upgrades/unattended-upgrades-dpkg.log
2026-11-09 06:41:29,874 INFO All upgrades installed3. O que ainda está pendente. Depois de uma noite, apt list --upgradable (lição 4.1) não deve mostrar mais pacotes de -security. Se continuarem a aparecer vários dias seguidos, algo está a falhar: um disco cheio, um bloqueio causado por um apt manual que ficou preso, ou um pacote que está a fazer uma pergunta.
Reiniciar: serviços e o kernel
Um programa atualizado no disco ainda não é o mesmo que um programa atualizado na memória. Se o OpenSSH já está em execução há três semanas, continua a executar o código antigo até o serviço ser reiniciado.
- Serviços: o programa needrestart verifica, após uma atualização, que serviços ainda utilizam bibliotecas antigas. No Ubuntu 24.04 e posteriores, o unattended-upgrades reinicia esses serviços automaticamente através do needrestart, por predefinição. No Debian, o needrestart é um pacote separado (
apt install needrestart) que lhe pergunta de forma interativa que serviços devem ser reiniciados. - O kernel: um novo kernel só entra em funcionamento depois de reiniciar o servidor inteiro. Nesse caso, o Debian e o Ubuntu criam o ficheiro
/var/run/reboot-required:
anna@web1:~$ cat /var/run/reboot-required
*** System restart required ***
anna@web1:~$ cat /var/run/reboot-required.pkgs
linux-image-6.12.57+deb13-amd64Tem duas opções. Ou reinicia por si, por exemplo todas as semanas num momento fixo, depois de verificar se o ficheiro existe. Ou deixa que o unattended-upgrades o faça:
Unattended-Upgrade::Automatic-Reboot "true";
Unattended-Upgrade::Automatic-Reboot-Time "04:30";A predefinição é false. Ative-a apenas se tiver a certeza de que tudo volta a arrancar sozinho após um reinício: serviços com enable (lição 6.1), contentores com uma política restart: (lição 9.3) e uma monitorização que o avise caso isso não aconteça (lição 8.3). Teste primeiro uma vez manualmente: sudo reboot, e verifique se tudo regressa.
Através do Ubuntu Pro, o Ubuntu oferece também o Livepatch, que aplica algumas correções do kernel sem reiniciar. É um complemento, não um substituto: mesmo com o Livepatch, continua a ser necessário reiniciar de vez em quando.
O que não deve fazer automaticamente
- Atualizações de versão (do Debian 12 para o 13, do Ubuntu 24.04 para o 26.04): sempre manualmente, com um plano (lição 4.3).
- Versões principais das suas próprias aplicações (uma nova versão principal de uma base de dados, de um CMS): sempre manualmente, após uma cópia de segurança e a leitura das notas de lançamento.
- Contentores: o unattended-upgrades não os atualiza. Uma imagem de 2024 continua a ser a imagem de 2024 até executar
docker compose pull(lição 9.4).
No AlmaLinux e no Rocky Linux
Aí, a ferramenta chama-se dnf-automatic. Instale-a com dnf install dnf-automatic. Em /etc/dnf/automatic.conf define upgrade_type = security e apply_updates = yes, e ativa o temporizador com systemctl enable --now dnf-automatic.timer. Nas distribuições do tipo RHEL, um reinício após uma atualização do kernel é tão necessário como no Debian; dnf needs-restarting -r indica se é esse o caso.
Na prática
Na WebOké, um VPS funciona da mesma forma que noutros fornecedores: o que é atualizado dentro do servidor é gerido por si. O fornecedor atualiza o hardware e a plataforma de virtualização, não o seu sistema operativo. Antes de uma grande atualização manual, crie um snapshot no painel do seu fornecedor; para as atualizações de segurança automáticas diárias, isso não é necessário.
Resumo
- Ative as atualizações de segurança automáticas com o unattended-upgrades (Ubuntu: ativas por predefinição; Debian: verificar com
dpkg-reconfigure -plow unattended-upgrades). - Por predefinição, só o repositório de segurança e o repositório estável da versão são atualizados automaticamente; os repositórios adicionais não.
- Verifique com um ensaio, o registo em
/var/log/unattended-upgrades/eapt list --upgradable. - Os serviços têm de ser reiniciados após uma atualização (needrestart); o kernel exige um reinício do servidor (
/var/run/reboot-required). - As atualizações de versão, as versões principais das aplicações e os contentores atualizam-se manualmente.
Questionário
Exercício
Exercício O4.2: Ativar e verificar as atualizações automáticas. No seu próprio servidor, ative o unattended-upgrades (ou verifique que está ativo), faça um ensaio e consulte o registo e os temporizadores. Preencha a lista de verificação e responda: que repositórios são atualizados automaticamente no seu servidor, quando foi a última execução, há neste momento um reinício pendente, e como vai reiniciar (manualmente num momento fixo ou automaticamente, e porquê)?
Exercício O4.2: Ativar e verificar as atualizações automáticas
Este exercício faz você mesmo; ninguém o verifica. Assinale o que já fez e marque o exercício como concluído.
Automaticamente: a fonte da versão e a fonte de segurança. Se existir reboot-required, há uma atualização do kernel ou de uma biblioteca à espera. Reiniciar automaticamente é possível se tudo voltar sozinho depois e a sua monitorização avisar quando isso não acontecer. Fontes adicionais (Docker, Caddy), contentores e aplicações como WordPress atualiza-os o próprio utilizador.
As suas marcações e notas ficam apenas neste navegador; não as enviamos para lado nenhum. Se tiver sessão iniciada, guardamos em Os meus cursos apenas que concluiu o exercício.
Para saber mais
- Proteger o seu VPS: os primeiros cinco minutos
- Debian Wiki, atualizações automáticas (UnattendedUpgrades): https://wiki.debian.org/PeriodicUpdates
- NCSC neerlandês (fonte em neerlandês), Princípio básico 3: Proteja sistemas, aplicações e dispositivos: https://www.ncsc.nl/basisprincipes/basisprincipe-3-bescherm-systemen-applicaties-en-apparaten
- Documentação do Ubuntu Server, Automatic updates: https://ubuntu.com/server/docs/how-to/software/automatic-updates/
