From Fedora Project Wiki

Atualizações Automáticas

Você deve decidir se deseja usar as atualizações automáticas do DNF em cada uma das suas máquinas. Há uma série de argumentos a serem considerados, tanto a favor e contra atualizações automáticas. No entanto, não existe uma única resposta para essa questão: cabe ao administrador de sistemas ou dono de cada máquina decidir se atualizações automáticas são desejáveis ou não para aquela máquina. Uma das coisas que fazem um bom administrador de sistemas é sua capacidade de considerar os fatos e sugestões de outras pessoas, e então 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.

Até mesmo a regra geral acima tem exceções, ou pode ser contornada. Alguns dos problemas podem ser resolvidos por uma configuração especial por sua conta. Por exemplo, você pode criar seu próprio repositório DNF em um servidor local, e apenas colocar nele atualizações testadas ou de confiança. E então usar as atualizações automáticas apenas de seu próprio repositório. Tais configurações, apesar de mais difíceis de serem configuradas e mantidas, podem remover uma grande quantidade de risco outrora 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).

Fedora 22 ou versões mais novas

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 nova instalação do Fedora 22 com as opções padrões, o RPM dnf-automatic não é instalado; o primeiro comando abaixo o instala.

sudo dnf install dnf-automatic

No caso padrão, o dnf-automatic é executado a partir das configurações no arquivo /etc/dnf/automatic.conf. Essas configurações apenas baixam, mas não aplicam nenhum dos pacotes. Para alterar ou adicionar quaisquer configurações, abra o arquivo .conf como usuário root (ou usando sudo) em uma janela de terminal.

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

Descrição detalhada das configurações do dnf-automatic é providenciada na página dnf-automatic (em inglês).

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 list-timers *dnf-*

Unidades de timer com padrões pré-definidos

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

  • dnf-automatic-download.timer - Apenas download, mas sem instalação.
  • dnf-automatic-install.timer - Download e instalação.
  • dnf-automatic-notifyonly.timer - Apenas notifica via emissores configurados em /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 é aplicável para a 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átcos 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). (Porém veja também bug #870790 - você talvez tenha de modificar no Fedora 22 ou em versões mais novas 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 (core, extras, legacy), 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 se 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 o endereço de email que você quer que o reporte seja enviado para, e localhost com o endereço do servidor SMTP. Essa mudança irá significar que depois que dnf-automatic é executado, ele irá te enviar um email 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 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.

dnf install auter

Edite 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 à 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 Use Systemctl.

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 inlcuir 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 instrusões (com um verificador de logs do sistema, sistemas IDS, autenticação ou monitoramento de login, etc).