07. Aplicar patches e atualizar o Ubuntu Server: um guia completo

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:

ComandoObjetivoQuando usar
sudo apt updateAtualizar as listas de pacotesAntes de qualquer instalação
sudo apt upgradeInstalar atualizações de segurançaManutenção semanal
sudo apt full-upgradeAtualizações de versões principaisAtualizações de versão do Ubuntu
sudo apt autoremoveLimpar pacotes antigosApó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”

      Deixe um comentário