Necesita el cliente VPN para llegar a la red que normalmente le suministraría sus paquetes, lo cual es un círculo pequeño y ordenado. Descargar un único DEB de OpenVPN en otra máquina suele acabar con una segunda dependencia faltante, luego una tercera, y luego una tarde entera persiguiendo versiones de bibliotecas. La alternativa es dejar que la máquina desconectada declare, en sus propios términos, qué necesita su gestor de paquetes. Todo lo que sigue se deriva de esa inversión de quién pregunta.

En sistemas de la familia Debian esa conversación ocurre mediante apt-offline, un flujo de solicitud y retorno. Su propio entorno de ejecución debe estar presente primero en el destino, instalado desde medios aprobados u otro proceso de arranque gestionado por el administrador, porque ninguna herramienta puede arrancarse a sí misma de la nada.

Empiece por el estado de paquetes del destino, no por el del ayudante

Anote la versión de la distribución del destino, la arquitectura de espacio de usuario y las fuentes de paquetes configuradas antes que cualquier otra cosa. Esos tres hechos deciden qué implementación de VPN y qué integración de escritorio son adecuadas, y son los hechos que un ayudante conectado no puede aportar.

El ayudante descarga archivos; no se convierte en la línea base de dependencias. Un portátil más nuevo que ya tiene OpenVPN instalado tiene un estado de paquetes completamente distinto del destino, así que su éxito no demuestra nada sobre lo que el destino puede aceptar.

Decida también qué quiere en realidad. El motor VPN, un complemento de servicio de NetworkManager y un editor gráfico son paquetes separados, y la selección correcta depende de la versión y de cómo gestionará el usuario la conexión. Un servidor sin pantalla necesita el motor y un archivo de configuración; un escritorio necesita el complemento que permite que su configuración de red sea dueña del túnel. Solicitar el conjunto equivocado produce una instalación que tiene éxito y una conexión que nadie puede iniciar.

Dos viajes, en este orden

El manual separa tres operaciones: generar una solicitud en el sistema desconectado, descargarla en un ayudante conectado e importarla de vuelta al destino. Actualice los metadatos del repositorio del destino antes de solicitar paquetes, porque la solicitud de paquetes se construye a partir de esos metadatos y los índices obsoletos producen solicitudes que el ayudante no puede satisfacer.

En el destino, una orden de administrador con la forma apt-offline set vpn-meta.sig --update escribe la solicitud de actualización. Lleve ese archivo a la máquina conectada y descargue un paquete con apt-offline get vpn-meta.sig --bundle vpn-meta.zip. Devuelva el paquete e impórtelo en el destino con apt-offline install vpn-meta.zip, de nuevo como administrador.

Ahora genere la solicitud de paquetes a partir de los metadatos actualizados, por ejemplo apt-offline set vpn-deps.sig --install-packages openvpn, y repita el viaje con un nombre de paquete nuevo. Mantenga cada solicitud emparejada con el paquete que produjo; un paquete generado con metadatos más antiguos no es la misma solicitud, incluso cuando los nombres de archivo parecen intercambiables.

Añada los paquetes de integración solo cuando el diseño los necesite

Si el escritorio debe gestionar el túnel mediante su configuración de red, la solicitud necesita el complemento correspondiente además del motor. Incluya los nombres de paquete concretos que ofrece su versión en lugar de una lista recordada de otra distribución, y genere una solicitud nueva cada vez que cambie la lista. Fijar versiones también merece una reflexión: un paquete creado para una versión más reciente puede satisfacer el nombre y aun así fallar en tiempo de ejecución. Aquí es donde un conjunto fijo de cuatro paquetes se convierte en una carga, porque la lista correcta es una propiedad del destino y solo el destino puede calcularla.

Aquí es también donde un conjunto fijo de cuatro paquetes se convierte en una carga. La lista correcta es una propiedad del destino, y el destino es la única máquina que puede calcularla correctamente.

Importar un paquete no es instalar la VPN

A pesar del nombre, la operación de instalación deposita datos APT en el entorno de gestión de paquetes. No realiza la transacción de paquetes. Complete y revise la instalación APT real del destino a partir de los datos suministrados localmente, y lea la salida en lugar de suponer que el éxito del ZIP significa que el software está presente.

Si esa transacción sigue pidiendo archivos no disponibles, conserve la dependencia faltante o el error de repositorio concreto y genere la siguiente solicitud a partir de él. No sustituya un DEB de otra versión ni desactive las comprobaciones de suma de verificación o de autenticación del repositorio para forzarlo. El manual advierte explícitamente contra saltarse la verificación de los archivos descargados, y con razón: un paquete no verificado es un resultado peor que una instalación fallida.

Los paquetes son solo la primera mitad

Instalar software es distinto de obtener el punto final aprobado, el perfil, el material de confianza y las credenciales, y cada uno de ellos puede tener su propia entrega controlada. Un conjunto de paquetes que funciona sin un perfil válido no se conecta a nada.

Después mantenga vivo el camino de transferencia sin conexión para futuras actualizaciones. Tratar la primera conexión correcta como el final del mantenimiento significa que la siguiente actualización de seguridad espera a que alguien con un coche pueda visitar, y así es como una red sin conexión se queda silenciosamente años atrás.

Artículos relacionados