meta data de esta página
  •  

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
linux:centos:yum [142021/05/ 10:49] – [Instalar únicamente actualizaciones de seguridad] lclinux:centos:yum [182023/01/ 13:36] (actual) – editor externo 127.0.0.1
Línea 1: Línea 1:
 +{{tag>yum centos}}
 +===== Yum =====
 +Yum es la herramienta de Centos  para la gestión de paquetes
  
 +
 +==== Instalar únicamente actualizaciones de seguridad ====
 +En versiones anteriores había que instalar un plugin **yum-security** (para Centos 5) o   yum-plugin-security (para Centos 6 y 7)
 +Para comprobar si lo tenemos instalado <sxh>rpm -qa |grep -i yum-security</sxh>
 +
 +<note Warning>Desafortunadamente, los repositorios por defecto de Centos no incluyen la información (metadatos) sobre parches de seguridad , por lo que el plugin sólo funciona para el repositorio EPEL. El resto de parches necesarios de otros repositorios no te aparece</note>
 +<note>En los repositorios de una distribución de Red Hat si que incluye dicha información por lo que en ella el plugin funcionará correctamente </note>
 +
 +<note tip>La solución al problema está en utilizar un repositorio alternativo llamado Updateinfo que contiene las información de erratas (CESA, CEEA, CEBA)https://updateinfo.cefs.steve-meier.de/</note>
 +
 +Más info:
 +  *  https://smitka.me/2019/01/02/enhance-your-centos-security-for-1-a-month-with-autoupdates/ 
 +  * https://blog.cloudacia.com/2019/05/03/como-aplicar-parches-de-seguridad-en-centos-7/
 +
 +=== Instalación en Centos 6/7===
 +<sxh>yum install yum-plugin-security</sxh>
 +
 +
 +  * Para ver un resumen de las actualizaciones que necesita nuestro sistema <sxh>yum updateinfo summary</sxh>
 +  * Para actualizar las listas  de actualizaciones disponibles <sxh>yum updateinfo list available</sxh>
 +  * Para ver una lista de actulizaciones necearias más detallada<sxh> yum info-sec</sxh>
 +  * Para ver las actualizaciones necesarias de una lista en concreto <sxh> yum updateinfo list bugfix</sxh>
 +  * Para ver la lista de actualizaciones de seguridad necesarias para nuestro sistema <sxh>yum updateinfo list security all</sxh>
 +  * Para ver información sobre una actualización en concreto <sxh> yum updateinfo ELBA-2018-0840</sxh>
 +  * Para actualizar los paquetes a la versión del mismo más actualizada <sxh>yum --security update-minimal</sxh>
 +  * Para actualizar los paquetes a la última versión disponible <sxh>yum --security update</sxh>
 +
 +
 +  *  yum update --security
 +  * yum update-minimal --security
 +  * Instalar un CVE concreto <sxh>yum update --cve [CVE]</sxh>
 +  * Instalar un parche de un aviso concreto <sxh>yum update --advisory=ELBA-2016-2319</sxh>
 +
 +
 +Más información en https://linux.die.net/man/8/yum-security
 +==== Script para actualizaciones automáticas ====
 +Creamos el siguiente script para cron. 
 +  * Si queremos que se ejecute cada día ->  /etc/cron.daily/yumupdate.sh 
 +  * Si queremos que sea una vez en semana ->   /etc/cron.weekly/yumupdate.sh
 +<sxh>
 +#!/bin/bash
 +YUM=/usr/bin/yum
 +$YUM -y -R 100 -d 0 -e 0 update yum
 +$YUM -y -R 10 -e 0 -d 0 update
 +</sxh>
 +
 +Donde:
 +  * La primera línea actualiza yum
 +  * la segunda línea actualiza el sistema
 +  * la opción -R indica el tiempo máxima de espera antes de ejecutar el comando
 +  * -e establece el nivel de error. 0 es que sólo nos informa de errores críticos
 +  * -d establece el nivel de debug
 +<note>no hay que olvidarse de darle los permisos de ejecución al fichero de script</note>
 +
 +==== Ver los paquetes instalados en el sistema ====
 +<sxh>yum list installed </sxh>
 +
 +=== Buscar paquete ===
 +Por ejemplo para buscar paquetes que el nombre contenga php 
 +<sxh>yum list installed | grep -i php </sxh>
 +<note tip>el -i es para que no distinga entre mayúsculas o minúsculas</note>
 +
 +=== Información sobre cuando se instaló ===
 +Listado de la fecha de instalación de todos los  paquetes <sxh>rpm -qa -last</sxh>
 +
 +Para saber cuándo se instaló un paquete en particular<sxh>rpm -q nombre_paquete -last</sxh>
 +==== Deshacer cambios o  Rool back ====
 +Con el comando <sxh>yum  history</sxh>  Obtenemos un histórico de los cambios.
 +<sxh bash>
 +[root@]# yum history
 +ID     | Linea de comandos        | Día y hora       | Acción(es)     | Modific
 +-------------------------------------------------------------------------------
 +    29 | -y install php php-curl  | 2018-05-21 13:21 | Install        |    3
 +    28 | update                   | 2018-05-21 13:17 | I, U             10
 +    27 | install yum-utils        | 2018-05-21 13:14 | Install        |    4
 +    26 | install http://rpms.remi | 2018-05-21 13:00 | Install        |    1
 +    25 | install php-gd           | 2018-05-21 12:23 | Install        |   11
 +    24 | install wget             | 2018-05-21 11:52 | Install        |    1
 +    23 | install httpd            | 2018-05-21 11:46 | Install        |    5
 +    22 | update                   | 2018-05-21 11:43 | Update           27
 +</sxh>
 + Podemos obtener más información sobre un determinado cambio con **yum history info ID**
 +<sxh>yum history info 29</sxh> que daría como salida
 +<sxh> 
 +ID de transacción : 29
 +Hora inicial     : Mon May 21 13:21:47 2018
 +Rpmdb inicial    : 403:f5122f693c232264926551793ecd11b87b85e057
 +Hora final       :             13:21:49 2018 (2 segundos)
 +Rpmdb final      : 406:357a12e260ab03908297ee2c9985d509ae422f03
 +Usuario           : root <root>
 +Codigo-obtenido    : Exito
 +Línea de comando   : -y install php php-curl php-cli php-gd
 +Transacción realizada con:
 +    Instalado      rpm-4.11.3-32.el7.x86_64                      @base
 +    Instalado      yum-3.4.3-158.el7.centos.noarch               @base
 +    Instalado      yum-metadata-parser-1.1.4-10.el7.x86_64       @anaconda
 +    Instalado      yum-plugin-fastestmirror-1.1.31-45.el7.noarch @base
 +Paquetes modificados:
 +    Instalación de dependencias libargon2-20161029-2.el7.x86_64 @epel
 +    Instalar                    php-7.2.5-1.el7.remi.x86_64     @remi-php72
 +    Instalar                    php-cli-7.2.5-1.el7.remi.x86_64 @remi-php72
 +</sxh>
 +
 +Para deshacer el cambio ejecutaríamos **yum history undo <ID>**
 +<sxh>yum history undo 29</sxh>
 +
 +Pero si hemos hecho varios cambios y queremos volver a un punto concreto ejecutaremos **yum history roolback <ID>**
 +<sxh>yum history rollback 22</sxh>
 +==== Descargar paquetes sin instalarlos ====
 +A veces es útil descargar ciertos paquetes para luego poder copiarlos a un servidor que no tiene conexión a Internet. Para eso podemos usar yum de la siguiente forma ** yum install --downloadonly --downloaddir=/directorio_destino <paquete>**
 +Por ejemplo para descargar el servidor apache.
 +<sxh> yum install --downloadonly --downloaddir=/root/paquetes httpd</sxh>
 +
 +Una vez copiado los paquetes a la máquina destino, para instalarlos ** yum --nogpgcheck localinstall <paquete>**
 +<sxh> yum --nogpgcheck localinstall  httpd-2.4.6-80.el7.centos.x86_64.rpm</sxh>
 +==== FAQ ====
 +Si al hacer un yum update obtenemos un error del tipo metadata file does no match checksum se soluciona añadiendo al fichero /etc/yum.con lo siguiente  <sxh>http_caching=packages</sxh>
 +
 +Ejecutamos entonces un <sxh>yum clean metadata</sxh> o bien <sxh>yum clean all</sxh> y ya podemos volver a ejecutar el yum update sin problemas. 
 +=== HTTP Error 404 ===
 +<note> si al ejecutar yum update nos da un error **HTTP Error 404 : Not found** podemos ejecutar para solucionarlo 
 +<sxh>yum clean all</sxh>
 +<sxh>yum update</sxh></note>
 +
 +===== Referencias =====
 +  * http://rm-rf.es/rollback-de-instalaciones-y-actualizaciones-con-yum-history/
 +  * https://blog.carreralinux.com.ar/2018/05/usar-yum-descargar-paquetes/
 +  * Artículo original de http://rm-rf.es/6-trucos-utiles-del-gestor-de-paquetes-yum/
 +  * https://www.elarraydejota.com/como-realizar-unicamente-actualizaciones-de-seguridad-en-red-hat-y-derivadas/
 +  * https://www.thegeekdiary.com/installing-security-vulnerabilities-with-yum-on-centos-rhel-567-cheat-sheet/