yum installer http – est-ce sûr?

Je ne suis pas très familier avec l'utilisation de yum pour installer des packages. Dans une vie antérieure, j'ai utilisé apt.

Actuellement, je regarde quelques instructions pour courir

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

qui apparemment va s'abonner à un référentiel particulier, à partir duquel d'autres packages peuvent être téléchargés. Est-ce une chose sûre à faire?

À titre de comparaison, je sais que les packages apt ont des signatures gpg, ce qui signifie que les téléchargements sur http ne sont pas un problème. Comme décrit ici . Et lorsque vous téléchargez des packages en dehors des référentiels principaux avec apt, vous pouvez append manuellement une key gpg à apt, afin de vous assurer que les packages non standard ont la même source fiable.

Si j'exécute la command ci-dessus, yum me requestra-t-il d'accepter une key gpg avant de commencer l'installation, ou pourrait-il simplement installer quelque chose?

Dans le cas où cela est pertinent, mon file /etc/yum.conf contient gpgcheck=1 dans la section [main] .

Il y a un peu à expliquer avec votre question.

Tout d'abord, il est important de comprendre comment YUM et rpm fonctionnent set:

  1. RPM est un format de package et il existe un outil de command line nommé de manière similaire nommé rpm qui installe des packages RPM individuels. Vous pouvez penser à l'outil de command line rpm comme analogue à l'outil de command line dpkg car les deux installent des packages individuels sans leurs dependencies.
  2. yum est un programme de plus haut niveau qui installe un packageage RPM et ses dependencies. Vous pouvez penser à la command yum comme analogue à apt-get car les deux peuvent installer un package et toutes ses dependencies.
  3. Lorsque vous exécutez yum install vous devez utiliser le nom du package, pas l'URL. Par exemple: yum install package , similaire à la façon dont vous exécuteriez: apt-get install package .
  4. Si vous avez une URL de package, vous pouvez exécuter rpm -i https://url , mais si vous n'avez pas les dependencies du package installé, vous devrez les installer un par un avec rpm -i (douloureux) ou avec yum et un référentiel configuré.

Maintenant, en ce qui concerne GPG, il y a quelques choses à comprendre qui s'appliquent aux systèmes d'empackageage Debian et RPM, mais les choses les plus importantes à comprendre sont:

  1. Les deux systèmes ont deux sets de signatures GPG: les signatures GPG sur les packages eux-mêmes et les signatures GPG sur les référentiels.
  2. Les packages Debian n'ont pas leurs signatures GPG vérifiées et les packages officiels des repositorys de projets Ubuntu et Debian ne sont pas signés par GPG.
  3. Les deux systèmes sont vulnérables à une gamme d'attaques de rejeu GPG lorsqu'ils sont utilisés sur du text clair HTTP; vous devriez absolument, installer à 100% vos packages via HTTPS et pas du text brut HTTP si possible.

Pour autant qu'une RPM et YUM GPG signatures:

  1. Tout d'abord, vous pouvez spécifier le path ou l'URL de la key GPG dans le file de configuration avec: gpgkey=https://example/gpg.key ou gpgkey=/usr/share/example/gpg.key . Vous pouvez spécifier plusieurs keys GPG, si plus de 1 est nécessaire.
  2. Deuxièmement, il existe deux options: gpgcheck=1 et repo_gpgcheck=1 . La première option provoque l' yum install pour vérifier la signature GPG sur le package lui-même, la deuxième option vérifie la signature GPG du référentiel. Idéalement, vous devriez utiliser les deux, mais de nombreux référentiels ne sont pas correctement configurés pour prendre en charge les deux.
  3. La première fois que vous exécutez yum install , yum tentera d'importer les keys GPG listées dans gpgkey si elles n'ont pas encore été imscopes. Vous serez invité et invité à accepter ou refuser.
  4. pygpgme package pygpgme doit être installé sur votre système pour que les signatures GPG puissent être vérifiées. Sur les versions les plus récentes de RHEL et CentOS pygpgme est automatiquement installé une dépendance de yum , mais vous devez vérifier qu'il est installé sur votre système.
  5. Il n'y a pas d'équivalent de apt-transport-https , yum peut parler de HTTPS dès la sortie de la boîte, mais vous devriez vous assurer que la version de yum vous utilisez a l'option sslverify activée; certaines versions de yum ne le font pas. Si votre version ne l'est pas, vous devez la valider. Il est essentiel de vérifier les certificates SSL.

Même avec les signatures GPG sur les packages et les référentiels, les référentiels sont toujours vulnérables aux attaques de rejeu; vous devriez accéder à vos repositorys sur HTTPS si possible. La brève explication d'une attaque est qu'un attaquant malveillant peut instantanément capturer les métadonnées du référentiel et la signature GPG associée à un moment donné et rejouer ces métadonnées et signature à un client qui le request, empêchant le client de voir les packages mis à jour. Comme les métadonnées ne sont pas touchées, la signature GPG sera valide. L'attaquant peut alors utiliser un exploit contre un bogue connu dans le logiciel qui n'a pas été mis à jour pour attaquer la machine. Vous pouvez en savoir plus sur les attaques sur les gestionnaires de packages dans ce document .

J'ai écrit deux articles de blog détaillés sur GPG et YUM / rpm ainsi que GPG et APT .

S'il vous plaît laissez un commentaire si vous avez des questions supplémentaires que je peux répondre; la gestion des packages est incroyablement difficile à faire correctement.