Comprobar la integridad de los paquetes *.deb con debsums

[h]Cómo comprobar la suma md5 de los paquetes que tenemos instalados en nuestro sistema basado en Debian o Ubuntu[/h]
Fuente:
[list=*]
]How to Check MD5 Sums of Installed Packages in Debian/Ubuntu Linux de Aaron KILI @ Tecmint/]
[/list]
https://www.wifi-libre.com/img/members/3/debsums5.jpg
debsums es un comando pensado para manejar la suma de comprobación md5 de los paquetes debian.
Es muy útil cuando tenemos un problema de estabilidad con un programa por el cual no hay razón aparente.
Es posible que por un caída de la conexión o un problema de red hemos instalado un paquete corrupto.
Con debsums lo podemos averiguar enseguida.
Podemos hacer también un “escaneo md5 checksum” de todo nuestro sistema y generar una suma de comprobación md5 para incluirla en nuestros propios paquetes *.deb caseros.
La instalación de debsums se hace con apt directamente desde nuestro repositorios Debian-Ubuntu & co.

sudo apt install debsums

debsums tira de** perl** (el lenguaje) y usa la librería libfile-fnmatch-perl

Se instalarán los siguientes paquetes adicionales: libfile-fnmatch-perl

[h]Verificar que no tenemos paquetes corruptos[/h]

Examinamos debsums y libfile-fnmatch-perl ya que acabamos de instalarlos.
Se hace simplemente: Invocando debsums seguido por el(los) nombre(s) de el(los) paquete(s) *.deb a comprobar.

debsums debsums libfile-fnmatch-perl

Podemos hacer un escaneo de todos los paquetes instalados así:
Se examinan todos los ficheros procedentes de estos dos paquetes y se nos significa si es “OK” o si hay un problema.
https://www.wifi-libre.com/img/members/3/debsums1.jpg

sudo debsums --all --silent

Si todo va bien la consola se quedará muda: El argumento –silent hace que aparecerían unicamente paquetes que no han aprobado el examen de su suma md5.
De lo contrario la salida sería muuuuy larga.
El “escaneo md5 checksum” ha tardado 6minutos en mi sistema para efectuarse.
https://www.wifi-libre.com/img/members/3/debsums2.jpg
Tengo a varias incongruencias:

  • Me falta un fichero de configuración del navegador chromium (missing, primer error)
  • Luego tengo varias sumas de comprobación que no son concordes (changed file = el fichero ha sido modificado)
    La mayoría de ellas apuntan a ** python3-cupshelpers** que sirve para gestionar impresoras ( no se porque lo tengo instalado, no lo necesito, lo quito :D)
  • Los otros son ficheros que he modificado yo. Por ejemplo, el fichero sudoers lo he modificado para que la consola me insulta cuando entro mal mi contraseña (añadir “Defaults insults”).
    Podemos hacer el “escaneo md5” de otra forma
sudo debsums -ce && sudo debsums -ca

Con ce veremos los ficheros de configuración modificados (o alterados)
Con ca veremos los paquetes alterados (o modificados)

Une vez que hemos verificado esto podemos ver cuales son los paquetes *.deb que no incluyen sumas de comprobación md5.

 sudo debsums --list-missing

No hago captura porque la consola no me ha devuelto ninguno resultado: Todos los paquetes *.deb que tengo llevan un suma de comprobación

Podemos también generar un md5 si un paquete no lo lleva (problema “missing”)
Las sumas se encuentran en /var/lib/dpkg/info/ y llevan una extensión peculiar:** .md5sum*
la sintaxis para generar una suma cuando no la hay es

sudo debsums generate <nombre_paquete> 

Notar que al instalar debsums podremos usar un nuevo argumento con nuestras ordenes** apt** y **apt-get ** :wink:

sudo apt-get install --reinstall 

Esto hará que se reinstalen automáticamente todos los paquetes “alterados”

Para más detalles sobre las opciones de debsums: debsums (man page)