Atualizações Automáticas

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

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 22 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.

env EDITOR='gedit -w' sudoedit /etc/dnf/automatic.conf

Detailed description of dnf-automatic settings is provided on the dnf-automatic page.

Execute o dnf-automatic

Once you are finished with the configuration, execute:

systemctl enable --now dnf-automatic.timer

para habilitar e iniciar o systemd timer.

Verifique o status do dnf-automatic:

systemctl list-timers 'dnf-*'

Mudanças a partir do Fedora 26

A partir do Fedora 26, há agora três timers que controlam o dnf-automatic.

  • dnf-automatic-download.timer - Apenas download

  • dnf-automatic-install.timer - Download e instalação

  • dnf-automatic-notifyonly.timer - Apenas notifica via emissores configurados em /etc/dnf/automatic.conf

Você ainda pode utilizar as configurações download_updates e apply_updates de dentro de /etc/dnf/automatic.conf.

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?

The main advantage of automating the updates is that machines are likely to get updated more quickly, more often, and more uniformly than if the updates are done manually. We see too many compromised machines on the internet which would have been safe if the latest updates where installed in a timely way.

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.

If all the above apply to your machine(s), then automatic updates may be your best option to help secure your machine. If not all the above apply, then you will need to weigh the risks and decide for yourself if automatic updates are the best way to proceed.

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.

  • You installed a custom kernel, custom kernel modules, third party kernel modules, or have a third party application that depends on kernel versions (this may not be a problem if you exclude kernel updates, which is the default in Fedora dnf.conf files). (See also bug #870790 - you may need to modify the base section to add exclude=kernel*.)

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

  • You update from other third party DNF repositories besides Fedora (core, extras, legacy), repositories which may conflict in versioning schemes for the same packages.

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:

  • The need to back up your configuration files before an update. Even the best package spec files can have mistakes. If you have modified a file which is not flagged as a configuration file, then you might lose your configuration changes. Or an update may have a different format of configuration file, requiring a manual reconfiguration. It is often best to back up your configuration files before doing updates on critical packages such as mail, web, or database server packages.

  • 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.

  • Automatic updates may not complete the entire process needed to make the system secure. For example, DNF can install a kernel update, but until the machine is rebooted (which DNF will not do automatically) the new changes won’t take effect. The same may apply to restarting daemons. This can leave the user feeling that he is secure when he is not.

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.

Check for package updates which have been automatically performed, and note if they need further (manual) intervention. You can monitor what DNF has updated via its log file (usually /var/log/dnf.log).

You can monitor updates availability automatically by email after modifying the dnf-automatic configuration file (usually /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

You would replace root with an actual email address to which you want the report sent, and localhost with an actual address of a SMTP server. This change will mean that after dnf-automatic runs, it will email you information about available updates, a log about downloaded packages, or installed updates according to settings in automatic.conf.

Alternative methods

As an alternative to dnf-automatic, auter can be used. This operates in a similar way to dnf-automatic, but provides more flexibility in scheduling, and some additional options including running custom scripts before or after updates, and automatic reboots. This comes at the expense of more complexity to configure.

sudo dnf install auter

You should then edit the configuration. Descriptions of the options are contained in the conf file /etc/auter/auter.conf.

Auter is not scheduled by default. Add a schedule for --prep (if you want to pre-download updates) and --apply (install updates). The installed cron job which you can see in /etc/cron.d/auter contains lots of examples.

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

Instead of automatic updates, dnf-automatic can only download new updates and can alert you via email of available updates which you could then install manually. This can be set by editing of /etc/dnf/automatic.conf file.

Agendando atualizações

Another common problem is having automatic updates run when it isn’t desired (holidays, weekends, vacations, etc). If there are times that no one will be around to fix any problem arising from the updates, it may be best to avoid doing updates on those days.

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

Yet another thing to consider if not using automatic updates is to provide your machine with some other forms of protection to help defend it of any attacks that might occur before updates are in place. This might include an external firewall, a host-based firewall (like iptables, ipchains, and/or tcp wrappers), not performing dangerous tasks on the computer (like browsing the web, reading e-mail, etc.), and monitoring the system for intrusions (with system log checkers, IDS systems, authentication or login monitoring, etc).