Cómo realizar actualizaciones únicamente de seguridad en distribuciones Debian GNU/Linux y derivadas

por | diciembre 11, 2014

Normalmente cuando estás trabajando con servidores lo último que quieres es que surja cualquier conflicto en el software instalado después de llevar a cabo una actualización. Si esos servidores están además en un entorno de Producción puedes acabar invocando a Zeus si una actualización de algún resultado… inesperado. Salvo importantes cambios las cosas se suelen quedar tal cual se instalaron en su momento, siguiendo el sabio principio de «si funciona, no lo toques». Sin embargo en el ámbito de la seguridad contínuamente se descubren vulnerabilidades que, como buenos administradores de sistemas, debemos parchear tan pronto como sea posible.

Para realizar actualizaciones en nuestra distro que sean únicamente de seguridad sin afectar al resto del software, podremos optar tanto a paquetes especializados para tal menester como a modificar los repositorios.

Debsecan: comprobando el estado de seguridad de nuestro sistema Debian

En Debian tenemos una utilidad para buscar vulnerabilidades llamada debsecan. Esta herramienta consulta el tracker de seguridad de Debian y realiza una comparación entre los paquetes que tenemos instalados en el sistema y las vulnerabilidades que se han detectado de los mismos. El hecho de que detecte vulnerabilidades no quiere decir que no estemos protegidos. Muchas de ellas posiblemente estén en proceso de ser parcheadas o pertenezcan a paquetes obsoletos que podemos retirar de nuestro sistema.

La instalamos en caso de no tenerla:

apt-get install debsecan

Después la ejecutamos por terminal:

debsecan

Esto generará un informe con los CVE correspondientes así como severidad de cada vulberabilidad.

Podemos hacerlo de una forma mucho más ordenada, como auténticos caballeros. Especificaremos el formato de salida y la «suite» o plataforma sobre la que nos encontramos.

debsecan --format report --suite jessie

También podemos reconfigurar la utilidad y especificar la suite que utilizamos con:

dpkg-reconfigure debsecan

En resumen una muy buena herramienta para tener una vista panorámica del estado general de seguridad del software que tenemos instalado en nuestro Debian. Muy flexible además: también podemos configurarlo para que mande informes cada cierto tiempo a un correo electrónico, distintos formatos de salida, etc… Ojito con utilizar esta herramienta en Ubuntu, ya que no es todo lo precisa que se deseara, ya que al fin y al cabo bebe de Debian security bug tracker que de hecho no suele coincidir con la situación de Ubuntu en un determinado momento.

Parcheando nuestro sistema Debian o derivada

Pues ahora viene otra parte divertida. Podemos hacerlo por las buenas o por las malas. Vamos a empezar por esta última y es de la siguiente manera… básicamente, entra en tu fichero de configuración de repositorios y comenta (ya sabes, con un # al principio) todos los repos salvo los de seguridad. En mi caso, comentaría todo menos los iguiente:

deb http://security.debian.org/ jessie/updates main
deb-src http://security.debian.org/ jessie/updates main

El problema en este caso es que no podremos instalar aplicaciones desde repositorios, ya que los tenemos comentados. Si las aplicaciones las instalas desde código fuente o bien resolviendo dependencias manualmente, entonces puede ser una solución perfectamente factible para tí.

Otra opción menos agresiva es instalar la utilidad unattended-upgrades, que se encarga de instalar en nuestro sistema únicamente parches de seguridad o paquetes que cubren vulnerabilidades (se incluirán actualizaciones de paquetes, incluídas actualizaciones del Kernel que parcheen vulnerabilidades):

apt-get install unattended-upgrades

Para lanzarlo manualmente hacemos lo siguiente:

unattended-upgrades -v

Si queremos que se lance diariamente de forma automática, hacemos:

dpkg-reconfigure -plow unattended-upgrades

Que añadirá al cron diario en /etc/cron.daily/apt la información necesaria para que el sistema lance cada día las actualizaciones de seguridad sin que tengamos que intervenir manualmente.