Atualizações Automáticas

You must decide whether to use automatic DNF updates on each of your machines. There are a number of arguments both for and against automatic updates to consider. However, there is no single answer to this question: it is up to the system administrator or owner of each machine to decide whether automatic updates are desirable or not for that machine. One of the things which makes one a good system administrator is the ability to evaluate the facts and other people’s suggestions, and then decide for oneself what one should do.

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.

Even the general rule above has exceptions, or can be worked around. Some issues might be resolved through a special setup on your part. For example, you could create your own DNF repository on a local server, and only put in tested or trusted updates. Then use the automatic updates from only your own repository. Such setups, while perhaps more difficult to set up and maintain, can remove a large amount of risk otherwise inherent in automatic updates.

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

On a fresh install of Fedora 22 with default options, the dnf-automatic RPM is not installed. The first command below installs this RPM:

sudo dnf install dnf-automatic

By default, dnf-automatic runs from the configurations in the /etc/dnf/automatic.conf file. These configurations only download, but do not apply any of the packages. In order to change or add any configurations, open the .conf file as the root user (or using sudo) from a terminal window.

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 in Fedora 22 or later versions in 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

Como uma alternativa para dnf-automatic, auter pode ser usado. Ele opera de forma similar ao yum-cron, 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

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