yum install http - isso é seguro?

6

Eu não estou muito familiarizado com o uso do yum para instalar pacotes. Em uma vida anterior eu usei o apt.

Atualmente, estou vendo algumas instruções para executar

# yum install http://example.com/package.rpm

que aparentemente irá se inscrever em um repositório específico, a partir do qual outros pacotes podem ser baixados. Isso é algo seguro de se fazer?

Para comparação, eu sei que os pacotes apt possuem assinaturas gpg, o que significa que downloads sobre http não são um problema. Conforme descrito aqui . E ao fazer o download de pacotes fora dos repositórios principais com o apt, você pode adicionar manualmente uma chave gpg para o apt to accept, para garantir que quaisquer pacotes não-padrão tenham a mesma fonte confiável.

Se eu executar o comando acima, você me pedirá para aceitar uma chave gpg antes de começar a instalar as coisas, ou poderia simplesmente instalar alguma coisa?

Caso seja relevante, meu arquivo /etc/yum.conf contém gpgcheck=1 dentro da seção [main] .

    
por SauceCode 20.10.2016 / 15:35

1 resposta

7

Há um pouco para explicar com sua pergunta.

Primeiramente, é importante entender como YUM e rpm funcionam juntos:

  1. O RPM é um formato de pacote e há uma ferramenta de linha de comando denominada rpm , que instala pacotes RPM individuais. Você pode pensar na ferramenta de linha de comando rpm como análoga à ferramenta de linha de comando dpkg , pois ambas instalam pacotes individuais sem suas dependências.
  2. yum é um programa de nível superior que instala um pacote RPM e suas dependências. Você pode pensar no comando yum como análogo a apt-get , pois ambos podem instalar um pacote e todas as suas dependências.
  3. Quando você executar yum install , deverá usar o nome do pacote, não o URL. Por exemplo: yum install package , semelhante a como você executaria: apt-get install package .
  4. Se você tiver um URL de pacote, poderá executar rpm -i https://url , mas se não tiver as dependências do pacote instaladas, precisará instalá-las uma a uma com rpm -i (doloroso) ou com yum e um repositório configurado.

Agora, no que diz respeito ao GPG, há algumas coisas a serem entendidas que se aplicam aos sistemas de pacotes Debian e RPM, mas as coisas mais importantes a serem entendidas são:

  1. Ambos os sistemas têm 2 conjuntos de assinaturas GPG: assinaturas GPG nos próprios pacotes e assinaturas GPG nos repositórios.
  2. Os pacotes Debian não têm suas assinaturas GPG verificadas e os pacotes oficiais dos repositórios de projeto do Ubuntu e do Debian não são assinados com o GPG.
  3. Ambos os sistemas são vulneráveis a uma série de ataques de repetição de GPG quando usados sobre HTTP de texto não criptografado; você deve absolutamente, 100% instalar seus pacotes via HTTPS e não texto simples HTTP, se possível.

Até agora, as assinaturas GPG e YUM GPG:

  1. Primeiro, você pode especificar o caminho ou o URL para a chave GPG no arquivo de configuração com: gpgkey=https://example/gpg.key ou gpgkey=/usr/share/example/gpg.key . Você pode especificar várias chaves GPG, se mais de uma for necessária.
  2. Em segundo lugar, há duas opções: gpgcheck=1 e repo_gpgcheck=1 . A primeira opção faz com que yum install verifique a assinatura GPG no próprio pacote, a segunda opção verifica a assinatura GPG do repositório. Idealmente, você deve usar ambos, mas muitos repositórios não estão configurados adequadamente para suportar ambos.
  3. Na primeira vez que você executar yum install , yum tentará importar as chaves GPG listadas em gpgkey , se ainda não tiverem sido importadas. Você será solicitado e solicitado a aceitar ou recusar.
  4. Você deve ter o pacote pygpgme instalado em seu sistema para que as assinaturas GPG sejam verificadas. Nas versões mais recentes do RHEL e do CentOS pygpgme é instalado automaticamente uma dependência de yum , mas você deve verificar se está instalado em seu sistema.
  5. Não há equivalente de apt-transport-https , yum pode falar sobre HTTPS pronto para uso, mas você deve garantir que a versão de yum que você está usando tenha a opção sslverify padronizada como ativada; algumas versões de yum não. Se a sua versão não, você deve configurá-lo para habilitado. É fundamental verificar os certificados SSL.

Mesmo com assinaturas GPG em ambos os pacotes e repositórios, os repositórios ainda estão vulneráveis a ataques de repetição; você deve acessar seus repositórios via HTTPS, se possível. A breve explicação de um ataque é que um invasor mal-intencionado pode capturar metadados de repositório e a assinatura GPG associada em um determinado momento e reproduzir esses metadados e assinaturas em um cliente que o solicita, impedindo que o cliente veja pacotes atualizados. Como os metadados não são tocados, a assinatura GPG será válida. O atacante pode então usar uma exploração contra um bug conhecido no software que não foi atualizado para atacar a máquina. Você pode ler mais sobre ataques a gerenciadores de pacotes em este documento .

Eu escrevi dois extensos posts sobre GPG e YUM / rpm , bem como GPG e APT .

Por favor, deixe um comentário se você tiver perguntas adicionais que eu possa responder; o gerenciamento de pacotes é incrivelmente difícil de fazer corretamente.

    
por 21.10.2016 / 11:58