Hay un poco que explicar con tu pregunta.
En primer lugar, es importante entender cómo YUM
y rpm
trabajar juntos:
- RPM es un formato de paquete y existe una herramienta de línea de comandos con un nombre similar
rpm
que instala paquetes RPM individuales. Puede pensar en la rpm
herramienta de línea de comando como análoga a la dpkg
herramienta de línea de comando ya que ambos instalan paquetes individuales sin sus dependencias.
yum
es un programa de nivel superior que instala un paquete RPM y sus dependencias. Puede pensar que el yum
comando es análogo apt-get
ya que ambos pueden instalar un paquete y todas sus dependencias.
- Cuando ejecute
yum install
, debe usar el nombre del paquete, no la URL. Por ejemplo: yum install package
, similar a cómo se ejecute: apt-get install package
.
- Si tiene una URL de paquete, puede ejecutarla
rpm -i https://url
, pero si no tiene instaladas las dependencias del paquete, deberá instalarlas una por una con rpm -i
(doloroso) o con yum
y un repositorio configurado.
Ahora, en lo que respecta a GPG, hay algunas cosas que hay que entender que se aplican tanto a los sistemas de empaquetado Debian como a RPM, pero las cosas más importantes a entender son:
- Ambos sistemas tienen 2 conjuntos de firmas GPG: firmas GPG en los propios paquetes y firmas GPG en los repositorios.
- Los paquetes de Debian no tienen sus firmas GPG verificadas y los paquetes oficiales de los repositorios de proyectos de Ubuntu y Debian no están firmados por GPG.
- Ambos sistemas son vulnerables a una variedad de ataques de repetición GPG cuando se usan sobre texto claro HTTP; absolutamente, debe instalar sus paquetes al 100% a través de HTTPS y no de texto plano HTTP si es posible.
En cuanto a las firmas RPM y YUM GPG:
- Primero, puede especificar la ruta o la URL de la clave GPG en el archivo de configuración con:
gpgkey=https://example/gpg.key
o gpgkey=/usr/share/example/gpg.key
. Puede especificar varias claves GPG, si se necesita más de 1.
- En segundo lugar, hay dos opciones:
gpgcheck=1
y repo_gpgcheck=1
. La primera opción hace yum install
que se verifique la firma GPG en el paquete, la segunda opción verifica la firma GPG del repositorio. Idealmente, debe usar ambos, pero muchos repositorios no están configurados correctamente para admitir ambos.
- La primera vez que ejecute
yum install
, yum
intentará importar las claves GPG enumeradas en gpgkey
si aún no se han importado. Se le pedirá y se le pedirá que acepte o rechace.
- Debe tener el
pygpgme
paquete instalado en su sistema para verificar las firmas GPG. En las versiones más recientes de RHEL y CentOS, pygpgme
se instala automáticamente una dependencia de yum
, pero debe verificar que esté instalado en su sistema.
- No existe un equivalente de
apt-transport-https
, yum
puede hablar por HTTPS fuera de la caja, pero debe asegurarse de que la versión yum
que está utilizando tenga la sslverify
opción predeterminada activada; Algunas versiones de yum
no. Si su versión no lo hace, debe configurarla como habilitada. Es crítico verificar los certificados SSL.
Incluso con las firmas GPG tanto en los paquetes como en los repositorios, los repositorios siguen siendo vulnerables a los ataques de repetición; debe acceder a sus repositorios a través de HTTPS si es posible. La breve explicación de un ataque es que un atacante malintencionado puede capturar instantáneamente los metadatos del repositorio y la firma GPG asociada en un momento particular y reproducir esos metadatos y firmas en un cliente que lo solicite, evitando que el cliente vea paquetes actualizados. Como no se tocan los metadatos, la firma GPG será válida. El atacante puede usar un exploit contra un error conocido en el software que no se actualizó para atacar la máquina. Puede leer más sobre los ataques a los administradores de paquetes en este documento .
Escribí dos extensas publicaciones de blog sobre GPG y YUM / rpm , así como GPG y APT .
Por favor, deje un comentario si tiene preguntas adicionales que pueda responder; La gestión de paquetes es increíblemente difícil de hacer correctamente.
yum install
, debe usar el nombre del paquete, no la URL". - De acuerdo, esto es lo que normalmente haría con apt. Pero dada la URL, ¿qué harías? Quizás esto sea obvio, pero ¿puede agregar manualmente el repositoriohttp://example.com
y luego haceryum install package
?