Ir directamente al contenido

Ajustes de cookies

Elija por tipo qué cookies permite. Puede cambiar su elección en cualquier momento en Ajustes de cookies, al pie de cada página. Declaración de privacidad

Necesarias

Siempre activadas

Necesarias para iniciar sesión, conservar su carrito y recordar sus preferencias. Siempre están activadas.

¿Qué cookies?
  • weboke_sessie, weboke_klant, weboke_remember: su sesión y mantener la sesión iniciada
  • weboke_basket: su carrito
  • wkBtwIncl: mostrar los precios con o sin IVA
  • wok_cookies: su elección de cookies, 12 meses

Mide qué anuncio lleva a una visita o a un pedido, para no pagar por anuncios que no sirven de nada.

¿Qué cookies?
  • Google Ads a través de Google Tag Manager (_gcl_au, _gcl_aw), hasta 90 días
  • OpenAI Ads, anuncios en ChatGPT
  • wok_aff: a través de qué socio llegó a nosotros (programa de afiliados), 60 días

4,6

País e idioma

Cada país tiene su propio sitio, con los precios y el IVA de ese país.

Ver

Módulo 4 · 4.1

Gestión de paquetes con apt

Módulo 4: Software y actualizaciones · Tiempo de lectura: 10 minutos

Objetivo de aprendizaje: Después de esta lección, usted podrá instalar, actualizar y eliminar software con apt, verá de dónde procede un paquete y reconocerá qué actualizaciones son actualizaciones de seguridad.

Conceptos clave: paquete, origen de paquetes (repositorio), sources.list, archivo .sources (deb822), signed-by, apt update, apt upgrade, apt full-upgrade, remove, purge, autoremove, apt-cache policy, origen de seguridad, dnf

¿Por qué un gestor de paquetes?

En Windows, usted descarga un programa de instalación desde un sitio web. En un servidor Linux, eso casi nunca se hace. El software llega como paquete desde un origen de paquetes (repositorio): un servidor de la distribución con miles de programas, todos compilados y probados para su versión de Debian o Ubuntu. El programa que descarga, instala y actualiza esos paquetes se llama gestor de paquetes. En Debian y Ubuntu es apt (con dpkg por debajo); en AlmaLinux y Rocky Linux, dnf.

Esto tiene tres grandes ventajas:

  1. Un solo comando lo actualiza todo. El servidor web, el servidor SSH, las bibliotecas y el kernel proceden del mismo origen. No tiene que comprobar en un sitio web, programa por programa, si hay una versión nueva.
  2. La procedencia está verificada. Cada origen de paquetes está firmado con una clave. apt rechaza los paquetes cuya firma no es correcta.
  3. Las dependencias se resuelven solas. Si nginx necesita una biblioteca, apt la instala automáticamente y más adelante la vuelve a eliminar.

Los orígenes de paquetes: ¿de dónde viene el software?

Los orígenes que usa apt se indican en /etc/apt/. Durante mucho tiempo fue un único archivo sources.list con líneas como:

deb http://deb.debian.org/debian bookworm main

Ubuntu 24.04 y posteriores, las imágenes cloud de Debian y cada vez más instalaciones nuevas usan el formato deb822, más reciente: archivos independientes con la extensión .sources en /etc/apt/sources.list.d/. Un sources.list antiguo se puede convertir con sudo apt modernize-sources (apt 3, Debian 13). Por ejemplo, en Debian 13:

anna@web1:~$ cat /etc/apt/sources.list.d/debian.sources
Types: deb
URIs: http://deb.debian.org/debian
Suites: trixie trixie-updates
Components: main
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

Types: deb
URIs: http://deb.debian.org/debian-security
Suites: trixie-security
Components: main
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

Se lee así: la suite es la versión (trixie es Debian 13; noble es Ubuntu 24.04), el componente es una parte del origen (main en Debian; main, universe, restricted y multiverse en Ubuntu) y Signed-By indica con qué clave debe estar firmado el origen. Esto último es importante: una clave pertenece a un solo origen, no a todos a la vez. Si más adelante añade un origen de un fabricante (Docker, Caddy, PostgreSQL), este tendrá su propio archivo de clave y su propia línea Signed-By (lección 9.2).

El origen con -security en el nombre es el origen de seguridad. De ahí salen las actualizaciones de seguridad, normalmente el mismo día en que se da a conocer una vulnerabilidad. En Ubuntu, esa suite se llama noble-security (o el nombre de su versión).

Si todavía usa el antiguo sources.list, todo sigue funcionando. Simplemente no mezcle el mismo origen en ambos formatos, porque apt se quejará de líneas duplicadas.

update, upgrade y full-upgrade

La diferencia entre estos tres conceptos es la primera trampa para los principiantes.

ComandoQué hace
apt updateDescarga la lista de qué paquetes y versiones hay en los orígenes. No instala nada.
apt upgradeActualiza los paquetes instalados a la versión más reciente de esa lista. Nunca elimina nada. Una actualización que obligaría a eliminar otro paquete se omite.
apt full-upgradeLo mismo, pero también puede eliminar paquetes o instalar otros nuevos si es necesario. Se necesita en una actualización de versión (lección 4.3) y a veces con un kernel nuevo.

Por tanto, siempre primero update y después upgrade:

anna@web1:~$ sudo apt update
Hit:1 http://deb.debian.org/debian trixie InRelease
Get:2 http://deb.debian.org/debian-security trixie-security InRelease [43.4 kB]
...
3 packages can be upgraded. Run 'apt list --upgradable' to see them.
anna@web1:~$ apt list --upgradable
Listing... Done
libssl3t64/trixie-security 3.5.1-1+deb13u1 amd64 [upgradable from: 3.5.1-1]
openssh-server/trixie-security 1:10.0p1-7+deb13u1 amd64 [upgradable from: 1:10.0p1-7]
tzdata/trixie-updates 2026b-0+deb13u1 all [upgradable from: 2026a-0+deb13u1]

(Los números de versión anteriores son un ejemplo.) Detrás del nombre figura de qué suite procede la nueva versión. Todo lo que lleve -security es una actualización de seguridad: conviene instalarla cuanto antes. -updates son otras actualizaciones estables, como nuevos datos de zonas horarias.

A continuación:

anna@web1:~$ sudo apt upgrade

apt muestra lo que va a cambiar y pide confirmación. Lea esa lista. Si aparece "The following packages will be REMOVED" (se eliminarán los siguientes paquetes), ocurre algo fuera de lo normal y conviene averiguar primero el motivo.

Instalar, eliminar y limpiar

anna@web1:~$ sudo apt install nginx
anna@web1:~$ sudo apt remove nginx       # elimina el programa, la configuración en /etc se conserva
anna@web1:~$ sudo apt purge nginx        # elimina el programa y la configuración
anna@web1:~$ sudo apt autoremove         # limpiar lo que ya nadie necesita

La diferencia entre remove y purge resulta práctica: si quiere quitar algo temporalmente y volver a instalarlo más tarde con la misma configuración, use remove. Si de verdad quiere empezar desde cero, purge.

Buscar y obtener más información:

anna@web1:~$ apt search fail2ban
anna@web1:~$ apt show fail2ban
anna@web1:~$ apt-cache policy openssh-server
openssh-server:
  Installed: 1:10.0p1-7
  Candidate: 1:10.0p1-7+deb13u1
  Version table:
     1:10.0p1-7+deb13u1 500
        500 http://deb.debian.org/debian-security trixie-security/main amd64 Packages
 *** 1:10.0p1-7 500
        500 http://deb.debian.org/debian trixie/main amd64 Packages

apt-cache policy es el comando que se usa para saber de dónde procede un paquete y qué versión elegirá apt. El *** aparece junto a la versión instalada; Candidate es lo que instalaría una actualización.

Versiones de Debian y la versión de un programa

Una queja habitual: "Debian incluye una versión antigua de nginx". Es cierto y es intencionado. Debian y Ubuntu congelan las versiones al publicar una release y después solo añaden correcciones de seguridad y reparaciones graves, sin funciones nuevas. Por eso, un paquete con un número de versión "antiguo" puede tener igualmente todas las correcciones de seguridad recientes: se han trasladado (backport) a la versión antigua. Se reconoce por el sufijo, como +deb13u1 o ubuntu0.1.

Por tanto, nunca compare únicamente el número de versión con el sitio web del fabricante para valorar si es vulnerable. Consulte los avisos de seguridad de su distribución: el Debian Security Tracker (security-tracker.debian.org) y los Ubuntu Security Notices (ubuntu.com/security/notices) indican, vulnerabilidad por vulnerabilidad, si su versión está corregida.

Algunas reglas para un servidor tranquilo

  • Instale solo lo que necesite. Cada paquete es código que hay que actualizar y, a veces, un servicio que escucha (lección 5.1).
  • Mejor desde la distribución que desde un sitio web. Un programa que usted compila o descarga como archivo suelto no lo actualiza apt upgrade. En ese caso, tendrá que seguir usted mismo los avisos de seguridad.
  • Un origen adicional solo del propio fabricante, con su propia clave y Signed-By. Nunca añada una clave "para todo" ni un origen de un sitio web desconocido (lección 4.3).
  • Lea lo que pregunta apt. Durante una actualización, apt puede preguntar si desea sustituir un archivo de configuración modificado por la nueva versión del fabricante. Si no sabe qué cambió en él, elija "keep the local version" (conservar la versión local, la opción predeterminada) y revise después la diferencia con diff: la nueva versión queda al lado como .dpkg-dist.

En AlmaLinux y Rocky Linux

Allí el gestor de paquetes se llama dnf y los paquetes son .rpm. Los comandos se parecen a los de apt: dnf check-update (la lista), dnf upgrade (actualizar, update y upgrade en uno), dnf install, dnf remove, dnf info. Los orígenes están en /etc/yum.repos.d/*.repo. Mucho software adicional (como fail2ban) procede del origen independiente EPEL, que primero se activa con dnf install epel-release. Para mostrar solo las actualizaciones de seguridad se usa dnf updateinfo list --security.

En la práctica: la pantalla del VPS

En WebOké, y en la mayoría de los demás proveedores, la instalación de su VPS ya configura correctamente los orígenes estándar de la distribución. Normalmente no tiene que cambiar nada. Actualice el servidor justo después del primer inicio de sesión con apt update y apt upgrade (lección 1.2) y, antes de cambios importantes, haga una instantánea (snapshot) en el panel de su proveedor.

Resumen

  • En Debian y Ubuntu, el software procede de orígenes de paquetes firmados; apt descarga, instala, actualiza y limpia.
  • apt update solo descarga la lista; apt upgrade actualiza sin eliminar; apt full-upgrade también puede eliminar.
  • Las actualizaciones de seguridad proceden de la suite con -security en el nombre; apt list --upgradable y apt-cache policy muestran de dónde viene una versión.
  • Un número de versión antiguo con +deb13u1 o ubuntu0.x puede incluir todas las correcciones (backport): consulte los avisos de seguridad de su distribución.
  • Un origen adicional solo del propio fabricante, con su propia clave en Signed-By.

Cuestionario

1. Escribe sudo apt upgrade en un servidor en el que no ha hecho nada desde hace una semana, y apt indica que todo está actualizado. Sin embargo, usted sabe que ayer salió una actualización de OpenSSH. ¿Cuál es la explicación más probable?



2. ¿Cuál es la diferencia entre apt remove y apt purge?



3. En apt list --upgradable aparece openssh-server/noble-security .... ¿Qué indica la parte noble-security?



4. En el sitio web de un programa figura la versión 2.8, mientras que Debian ofrece la 2.6 con +deb13u2. Un compañero dice: "Entonces Debian es vulnerable a todos los fallos corregidos en la 2.7 y la 2.8". ¿Qué es correcto?



5. ¿Por qué un origen de paquetes adicional debe tener su propia clave con Signed-By?



Ejercicio

Ejercicio Z4.1: ¿Qué actualizaciones son actualizaciones de seguridad? El archivo de ejemplo apt-upgradable.txt contiene la salida de apt list --upgradable y apt-cache policy de un servidor Debian 13. Responda: ¿qué paquetes proceden del origen de seguridad?, ¿qué paquete procede de un origen de un fabricante en lugar de Debian?, ¿qué versión de openssh-server está instalada ahora? y ¿qué paquete es una actualización estable normal sin motivo de seguridad? El programa compara sus respuestas con la clave fija. Si ya tiene su propio servidor, ejecute los mismos comandos y observe lo que ve.

Ejercicio Z4.1: ¿Qué actualizaciones son actualizaciones de seguridad?

Archivo de este ejercicio: apt-upgradable.txt





No guardamos lo que escriba ni lo que encontremos. Su navegador recuerda sus respuestas y si ha superado el ejercicio. Si ha iniciado sesión, en Mis cursos solo guardamos que el ejercicio estaba (casi) correcto; allí también puede eliminarlo.

Para saber más

Un momento…

Configure sus dominios

Configure para cada dominio los servidores de nombres, la vinculación a su hosting y quién será el titular.

Cargando sus dominios…