Manter o seu Ubuntu Server atualizado e com patches é essencial para manter a segurança, a estabilidade e a conformidade. As atualizações regulares protegem contra vulnerabilidades, melhoram o desempenho do sistema e garantem o cumprimento dos padrões do setor. Este guia fornece informações práticas, exemplos práticos e ferramentas para automatizar as atualizações e lidar eficazmente com os patches do kernel.
Artigo anterior:
01. Introdução ao Ubuntu Server – SysOSX: AI & Cloud
02. Como configurar o seu primeiro servidor Ubuntu: guia para iniciantes – SysOSX: AI & Cloud
03. Dominando a linha de comando do Linux para Ubuntu Server – SysOSX: AI & Cloud
04. Gerenciamento de usuários e permissões no Ubuntu Server: um guia completo – SysOSX: AI & Cloud
05. Fundamentos de rede para Ubuntu Server: um guia completo – SysOSX: AI & Cloud
06. Instalar e gerenciar software no Ubuntu Server: um guia completo – SysOSX: AI & Cloud
Porque é que as atualizações regulares do Ubuntu Server são cruciais
1. Proteção de segurança
As vulnerabilidades sem patches são um grande risco de segurança. Segundo a CISA, 87% das violações visam sistemas com software sem patches. As atualizações regulares mitigam estes riscos ao abordar vulnerabilidades conhecidas.
Exemplo real:
A vulnerabilidade OpenSSL de 2023 (CVE-2023-0286) permitiu que atacantes roubassem dados confidenciais. Os servidores que aplicaram o patch prontamente evitaram a exploração.
2. Estabilidade do sistema
As atualizações incluem frequentemente correções de erros e problemas de desempenho, garantindo um funcionamento estável. Também melhoram a compatibilidade de hardware, especialmente para servidores em execução em plataformas de nuvem como a AWS e o Azure.
Exemplo real:
O problema «Dirty Pipe» do kernel Linux 5.15 de 2022 causou fugas de memória e instabilidade do sistema. Um patch do kernel resolveu o problema, restaurando a fiabilidade do sistema.
3. Requisitos de conformidade
Muitos setores exigem atualizações regulares para cumprir os padrões de segurança e privacidade. O incumprimento pode levar a multas, consequências legais e danos à reputação.
Exemplos de padrões:
- PCI-DSS: Obrigatório para sistemas de pagamento.
- HIPAA: Protege os dados de saúde.
- GDPR: Garante a privacidade dos cidadãos da UE.
Folha de referência de comandos de atualização do Ubuntu
Eis um guia de referência rápida dos comandos de atualização do Ubuntu:
| Comando | Objetivo | Quando usar |
|---|---|---|
sudo apt update | Atualizar as listas de pacotes | Antes de qualquer instalação |
sudo apt upgrade | Instalar atualizações de segurança | Manutenção semanal |
sudo apt full-upgrade | Atualizações de versões principais | Atualizações de versão do Ubuntu |
sudo apt autoremove | Limpar pacotes antigos | Após as atualizações |
Configuração de patches automatizados (guia de 5 minutos)
Automatizar as atualizações com unattended-upgrades garante que os patches críticos sejam aplicados sem intervenção manual. Siga estes passos para configurar as atualizações automáticas:
Passo 1: Instalar unattended-upgrades
sudo apt install unattended-upgrades
Passo 2: Configurar as atualizações de segurança
Edite o ficheiro de configuração:
sudo nano /etc/apt/apt.conf.d/50unattended-upgrades
Remova o comentário das seguintes linhas:
"Ubuntu:${distro_codename}-security";
"Ubuntu:${distro_codename}-updates";
Passo 3: Ativar reinícios automáticos
Adicione estas linhas ao mesmo ficheiro para ativar os reinícios automáticos após as atualizações:
Unattended-Upgrade::Automatic-Reboot "true";
Unattended-Upgrade::Automatic-Reboot-Time "04:00";
Quando usar patches automatizados
Os patches automatizados são ideais para ambientes onde o tempo de inatividade é aceitável ou a intervenção manual é impraticável. Exemplos incluem:
- Sistemas não críticos: Ambientes de desenvolvimento ou teste onde o tempo de atividade não é crítico.
- Pequenas empresas ou uso pessoal: Garante a segurança de utilizadores sem equipa de TI dedicada.
- Dispositivos de borda ou sistemas IoT: Dispositivos remotos que não podem ser atualizados manualmente.
No entanto, os patches automatizados não são adequados para todos os ambientes. Evite-os nos seguintes cenários:
- Sistemas de missão crítica: As atualizações devem ser testadas em ambientes de staging para evitar introduzir erros ou tempo de inatividade.
- Ambientes de alta disponibilidade (HA): Os patches automatizados podem perturbar sistemas em cluster ou mecanismos de failover.
- Setores regulamentados: Os padrões de conformidade exigem frequentemente que as atualizações passem por processos de aprovação e teste.
- Configurações personalizadas: Servidores com configurações únicas podem enfrentar problemas de compatibilidade com atualizações automáticas.
Nesses casos, considere aplicar patches manualmente ou usar ferramentas como o Ansible para manter o controlo sobre o processo de atualização.
Gestão de atualizações do kernel
As atualizações do kernel são vitais para corrigir vulnerabilidades e melhorar o desempenho do sistema. Eis como gerir eficazmente as atualizações do kernel:
1. Verificar atualizações do kernel pendentes
Use o seguinte comando para verificar as atualizações do kernel disponíveis:
apt list --upgradable | grep linux-image
2. Aplicar atualizações sem reiniciar (Livepatch)
O Ubuntu Livepatch só está disponível para a subscrição Ubuntu Pro e permite-lhe aplicar atualizações do kernel sem reiniciar, minimizando o tempo de inatividade.
Passos para ativar o Livepatch:
- Instalar o Livepatch:
sudo snap install canonical-livepatch
- Ative o Livepatch com o seu token:
sudo canonical-livepatch enable YOUR_TOKEN
3. Procedimento de reinício seguro
Se for necessário reiniciar, siga estes passos para reiniciar de forma controlada:
Verifique se é necessário reiniciar:
O Ubuntu cria um ficheiro /var/run/reboot-required quando é necessário reiniciar após as atualizações. Se este ficheiro não existir, significa que não é necessário reiniciar. No entanto, pode verificar manualmente o seguinte:
- Verificar a versão do kernel:
Compare a versão do kernel em execução com o kernel instalado mais recente:
uname -r apt list --installed | grep linux-image
- Verificar processos em execução que usam ficheiros eliminados:
Identificar processos que usam ficheiros desatualizados:
sudo lsof | grep deleted
Avisar os utilizadores sobre o tempo de inatividade:
wall "Maintenance reboot in 10 minutes"
Agendar o reinício:
sudo shutdown -r +10
Modelos de automação empresarial
Playbook Ansible para atualizações em vários servidores
Para gerir atualizações em vários servidores, use o Ansible para automatizar o processo.
Playbook de exemplo:
- name: Apply security patches
hosts: all
become: yes
tasks:
- name: Update apt cache
ansible.builtin.apt:
update_cache: yes
- name: Apply security updates
ansible.builtin.apt:
upgrade: yes
cache_valid_time: 3600
Execute o playbook:
ansible-playbook update.yml
Tarefa cron para atualizações fora das horas de ponta
Agende atualizações durante as horas de menor movimento usando tarefas cron.
Exemplo de tarefa cron:
Edite o crontab:
sudo crontab -e
Adicione a seguinte linha para agendar atualizações todos os domingos às 3h:
0 3 * * 7 apt update && apt upgrade -y
Problemas comuns e soluções
1. Pouco espaço em disco durante as atualizações
Se o seu servidor ficar sem espaço em disco durante as atualizações, limpe os ficheiros desnecessários:
Comandos:
sudo apt clean
sudo apt autoremove --purge
Verifique o uso do disco:
df -h
2. Recuperação de atualizações falhadas
Se as atualizações falharem, use os seguintes comandos para recuperar:
Corrigir dependências quebradas:
sudo apt --fix-broken install
Repor os estados dos pacotes:
sudo dpkg --configure -a
3. Atualizações de servidores offline
Para servidores sem acesso à internet, use apt-offline para descarregar atualizações numa máquina ligada e aplicá-las offline.
Na máquina ligada:
apt-offline set update.sig
Transfira os ficheiros e aplique-os:
apt-offline install update.sig
Lista de verificação de manutenção
Siga esta lista de verificação para garantir que o seu Ubuntu Server se mantém seguro e estável:
- Semanalmente: Efetuar atualizações de segurança manuais.
- Mensalmente: Testar atualizações completas num ambiente de staging.
- Trimestralmente: Limpar o armazenamento e remover pacotes não utilizados.
- Anualmente: Realizar uma auditoria de conformidade para cumprir os padrões do setor.
Documento oficial: Instalar e gerir pacotes – documentação do Ubuntu Server
Conclusão
A aplicação periódica de patches e a atualização do Ubuntu Server são essenciais para manter a segurança, a estabilidade e a conformidade. Ao compreender a importância das atualizações, dominar os comandos apt, automatizando as atualizações com unattended-upgrades e gerindo eficazmente os patches do kernel, os administradores podem garantir que os seus servidores se mantêm robustos e fiáveis. Para ambientes empresariais, ferramentas como o Ansible e o Livepatch agilizam ainda mais o processo, reduzindo o tempo de inatividade e melhorando a eficiência.
Olhando em frente: proteger o seu Ubuntu Server
Agora que compreende como manter o seu Ubuntu Server atualizado e com patches, o próximo passo é garantir que se mantém seguro contra ameaças externas. No nosso próximo artigo, Proteger o seu Ubuntu Server, abordaremos passos práticos para reforçar o seu servidor, incluindo:
- Configurar firewalls usando ufw.
- Configurar o SSH de forma segura para evitar acessos não autorizados.
- Usar ferramentas como fail2ban para proteção contra ataques de força bruta.
Fique atento a informações práticas para proteger o seu servidor e proteger a sua infraestrutura de ameaças potenciais!
3 thoughts on “07. Patching and Updating Ubuntu Server: A Comprehensive Guide”