Atualizações Automáticas

Ben Cotton, Petr Bokoc, Jean-Baptiste Holcroft Versão all Last review: 2025

Você deve decidir se deseja usar atualizações automáticas do DNF em cada uma de suas máquinas. Existem vários argumentos a favor e contra as atualizações automáticas a serem considerados. No entanto, não há uma única resposta para essa pergunta: cabe ao administrador do sistema ou proprietário de cada máquina decidir se as atualizações automáticas são desejáveis ou não para aquela máquina. Uma das habilidades que tornam alguém um bom administrador de sistemas é a capacidade de avaliar os fatos e as sugestões de outras pessoas e, em seguida, decidir por si mesmo o que deve ser feito.

Uma regra geral aplicável na maioria dos casos é:

Se a máquina é um servidor crítico, para o qual a inatividade não-planejada de um serviço na máquina não pode ser tolerada, então você não deve usar atualizações automáticas. Caso contrário, você pode optar por usá-las.

Mesmo a regra geral mencionada acima tem exceções ou pode ser contornada. Alguns problemas podem ser resolvidos por meio de uma configuração especial de sua parte. Por exemplo, você pode criar seu próprio repositório DNF em um servidor local e incluir apenas atualizações testadas ou confiáveis. Em seguida, utilize as atualizações automáticas apenas a partir do seu próprio repositório. Configurações desse tipo, embora talvez mais difíceis de configurar e manter, podem eliminar uma grande quantidade de risco que, de outra forma, seria inerente às atualizações automáticas.

Como são feitas as atualizações automáticas?

Você pode usar um serviço para automaticamente baixar e instalar qualquer atualização nova (por exemplo, atualizações de segurança).

O pacote RPM dnf-automatic como componente do DNF providencia um serviço que é inicializado automaticamente.

Instalação e configuração do dnf-automatic

Em uma instalação nova do Fedora com as opções padrão, o RPM dnf-automatic não está instalado. O primeiro comando abaixo instala este RPM:

sudo dnf install dnf-automatic

Por padrão, o dnf-automatic opera com as configurações no arquivo /etc/dnf/automatic.conf. Essas configurações apenas fazem o download das atualizações, mas não as aplicam. Para alterar ou adicionar configurações, abra o arquivo .conf como usuário root (ou usando sudo) a partir de uma janela de terminal.

sudo nano /etc/dnf/automatic.conf

Uma modificação no arquivo automatic.conf para baixar todas as atualizações, aplicá-las e reiniciar o sistema poderia ser feita da seguinte forma:

[commands]
apply_updates=True
reboot=when-needed

Omita reboot=when-needdd para reiniciar manualmente. Descrição detalhada das configurações do dnf-automatic é providenciada na página dnf-automatic.

Execute o dnf-automatic

Assim que você tiver terminado a configuração, execute:

systemctl enable --now dnf-automatic.timer

para habilitar e iniciar o systemd timer.

Verifique o status do dnf-automatic:

systemctl status dnf-automatic.timer

Nota: os temporizadores pré-configurados, como automatic-download.timer, automatic-install.timer e automatic-notifyonly.timer, foram integrados ao dnf-automatic.timer em versões acima do Fedora 40 com a migração para o dnf5. Para os comandos de substituição, consulte a seção de opções na documentação do dnf.

Podemos confiar nas atualizações do DNF?

O DNF no Fedora tem verificação da chave GPG habilitada por padrão. Considerando que você importou as chaves GPG corretas, e ainda tem gpgcheck=1 em seu /etc/dnf/dnf.conf, então podemos ao menos assumir que qualquer atualização instalada automaticamente não foram corrompidas ou modificadas de seu estado original. Usando as verificações de chave GPG, não há como um invasor gerar pacotes que seus sistema aceitará como válidos (a não ser que eles tenham uma cópia da chave privada correspondente a que você instalou) e qualquer corrupção de dados durante o download seria detectada.

Entretanto, tal questão também seria aplicável para a questão de qualidade das atualizações. A instalação do pacote causará problemas no seu sistema? Isso não temos como responder. Cada pacote passa por um processo de GQ, e é considerado estar livre de problemas. Mas, problemas acontecem, e a GQ não consegue testar todos os possíveis casos. É sempre possível que qualquer atualização possa causar problemas durante ou depois da instalação.

Por que usar atualizações automáticas?

A principal vantagem de se automatizar as atualizações é que as máquinas tenderão a ser atualizadas mais rapidamente, com maior frequência, e mais uniformemente do que se as atualizações fossem feitas manualmente. Observamos muitas máquinas comprometidas na internet que teriam ficado seguras se suas últimas atualizações tivessem sido instaladas em tempo hábil.

Então embora você ainda deva ser cauteloso com qualquer solução envolvendo atualizações automáticas, em particular nos sistemas de produção, vale a pena as considerar, pelo menos em algumas situações.

Razões PARA o uso de atualizações automáticas

Embora ninguém pode determinar para você se sua máquina é uma boa candidata aatualizações automáticas, há diversos fatores que tendem a tornar uma máquinauma melhor candidata para atualizações automáticas.

Fatores que podem tornar sua máquina uma boa candidata à atualizações automáticas são:

  • É improvável que você realize atualizações automáticas por qualquer razão.

  • A máquina não é crítica e inatividade ocasional não planejada é aceitável.

  • Você pode viver sem acesso remoto à máquina até que você possa chegar a sua localização física para resolver problemas.

  • Você não tem nenhum dado insubstituível na máquina, ou tem devido backup destes dados.

Se tudo acima aplica à sua máquina(s), então atualizações automáticas podem ser sua melhor opção para ajudar na segurança da sua máquina. Se nem tudo acima é aplicável, então você deverá considerar os riscos e decidir por si mesmo se updates automáticos são a melhor forma de prosseguir.

Razões CONTRA o uso de atualizações automáticas

Embora ninguém pode determinar para você se sua máquina é uma má candidata aatualizações automáticas, há diversos fatores que tendem a tornar uma máquinauma pior candidata para atualizações automáticas.

Fatores que podem tornar sua máquina uma má candidata à atualizações automáticas são:

  • Ela provê um serviço crítico que você não quer arriscar ter inativadade não programada dele.

  • Você instalou software personalizado, software compilado da fonte, or usa software de terceiros que tem requerimentos de versão de pacote estritos.

  • Você instalou um kernel personalizado, módulos de kernel personalizados, módulos de kernel de terceiros, ou tem uma aplicação de terceiros que depende de certas versões de kernel (Isso não necessariamente é um problema se você excluir atualizações de kernel, o que é o padrão nos arquivos dnf.conf do Fedora). (Veja também o bug #870790 - você talvez tenha de modificar a seção base para adicionar exclude=kernel*.)

  • Seu ambiente requer procedimentos de mudança-controle meticulosos.

  • Você atualiza de outros repositórios DNF de terceiros que não sejam do Fedora, repositórios que podem entrar em conflito em esquemas de versionamento para os mesmos pacotes.

Existem também outras razões pela quais instalar atualizações automáticas sem testar podem ser uma má idéia. Algumas tais razões são:

  • A necessidade de ter um backup de seus arquivos de configuração antes de uma atualização.Até os melhores arquivos spec de um pacote podem ter erros. Se você modificou um arquivo que não é marcado como um arquivo de configuração, então você pode perder suas mudanças de configuração. Ou uma atualização pode ter um formato diferente do arquivo de configuração, requerindo uma reconfiguração manual. Frequentemente é melhor ter um backup de seus arquivos de configuração antes de fazer uma atualização em pacotes críticos como email, internet ou pacotes de base de dados de servidores.

  • Efeitos colaterais indesejados. Alguns pacotes podem criar efeitos colaterais incômodos, particularmente os que tem cron jobs. Atualizações para pacotes base como openssl, openldap, servidores sql, etc. podem ter um efeito em muitos outros pacotes que são à primeira vista não relacionados.

  • Bugs. Muitos pacotes contêm software ou scripts de instalação com bugs. A atualização pode criar problemas durante ou após a instalação. Até bugs cosméticos, como os encontrados em atualizações do Mozilla prévias, causando os ícones do usuário serem removidos ou quebrados, podem ser incômodos ou problemáticos.

  • Atualizações automáticas podem não completar o processo inteiro que é necessário para tornar o sistema seguro. Por exemplo, o DNF pode instalar uma atualização de kernel, mas até a máquina ser reiniciada (algo que o DNF não fará automaticamente) as novas mudanças não entrarão em vigor. O mesmo pode ser aplicável para serviços reiniciados. Isso pode deixar o usuário com a sensação que ele está seguro quando não está.

Melhores práticas ao usar atualizações automáticas

Se você decidir usar atualizações automáticas, você deve ao menos tomar algumas medidas para garantir que você está atualizado.

Verfique por atualizações de pacotes que tenham sido realizadas automaticamente, e observe se elas precisam de intervenção (manual) além do realizado. Você pode monitorar o que o DNF atualizou via seu arquivo de log (normalmente em /var/log/dnf.log).

Você pode monitorar a disponibilidade de atualizações automaticamente por email depois de modificar o arquivo de configuração dnf-automatic (normalmente em /etc/dnf/automatic.conf).

[emitters]
emit_via = email

[email]
# O endereço para o qual mandar emails de.
email_from = root@localhost.com

# Lista de endereços para mandar mensagens para.
email_to = root

# Nome do host para conectar para mandar as mensagens de email.
email_host = localhost

Você irá substituir root com um endereço de e-mail válido para o qual você quer que o relatório seja enviado, e localhost com um endereço de um servidor SMTP. Essa mudança irá significar que depois que dnf-automatic é executado, ele irá enviar um e-mail com informações sobre atualizações disponíveis, ou um log sobre pacotes baixados, ou atualizações instaladas de acordo com as configurações em automatic.conf.

Métodos alternativos

Como uma alternativa para dnf-automatic, auter pode ser usado. Ele opera de forma similar ao dnf-automatic, mas fornece maior flexibilidade em agendamento e algumas opções adicionais, incluindo executar scripts personalizados antes ou depois de atualizações, e reinicializações automática. Isso vem com a desvantagem de maior complexidade na configuração.

sudo dnf install auter

Você deve então editar a configuração após a instalação. Descrições das opções estão contidas no arquivo conf /etc/auter/auter.conf.

O Auter não tem agendamento por padrão. Adicione um para --prep (se você quer pré-baixar atualizações) e --apply (instalar atualizações). O cron job instalado, que pode ser visto em /etc/cron.d/auter contém dezenas de exemplos.

Para fazer com que o auter seja executado imediatamente sem ter que aguardar o cron job rodar, por exemplo para testar ou debugging, você pode simplesmente o executar da linha de comando:

auter --apply

Se você quer desativar a execução do auter, incluindo de qualquer cron job:

auter --disable

Alternativas para atualizações automáticas

Notificações

Ao invés de atualizações automáticas, dnf-automatic pode só baixar novas atualizações, e então pode te alertar sobre atualizações disponíveis via email, que você poderia então as instalar manualmente. Isso pode ser ativado editando o arquivo /etc/dnf/automatic.conf.

Agendando atualizações

Outro problema comum é ter as atualizações automáticas rodarem quando não se é desejado (feriados, fins de semana, férias, etc). Se há momentos em que ninguém estará disponível para consertar qualquer problema oriundo das atualizações, talvez seja melhor evitar atualizar nesses dias.

Tal problema pode ser resolvido pela modificação do temporizador do dnf-automatic usando a descrição da página Understanding and administering systemd.

Outros métodos de proteção

Mais outro fator a ser considerado ao não se usar atualizações automáticas é providenciar sua máquina com outras formas de proteção para auxiliar na defesa contra qualquer ataque que possa ocorrer antes das atualizações serem realizadas. Isso pode incluir um firewall externo, um firewall baseado em um host (como o iptables. ipchains, e/ou wrappers de tcp), não realizar tarefas arriscadas no computador (como navegar na internet, ler e-mails, etc), e monitorar o sistema para intrusões (com um verificador de logs do sistema, sistemas IDS, autenticação ou monitoramento de login, etc).