ubuntu / julio 5, 2026 / 11 min de lectura / 👁 41 visitas

El caos ordenado del ‘Pool’ de Ubuntu

El caos ordenado del ‘Pool’ de Ubuntu

A veces, navegando por las tripas de internet, uno acaba en sitios que parecen sacados de una película de hackers de los noventa. Me refiero a esos índices de directorios desnudos, sin CSS, sin imágenes bonitas, solo texto azul sobre fondo blanco y una lista interminable de archivos. Ayer mismo, mientras buscaba una solución para un sistema de autenticación, terminé en el Index of /ubuntu/ubuntu/pool/universe/d/django-cas-server/. Para el ojo no entrenado, es solo una carpeta aburrida en un servidor remoto. Para los que llevamos años peleándonos con servidores, es una mina de oro de información sobre cómo se construye la infraestructura que sostiene media España.

La verdad es que ver un archivo como python3-django-cas-server-doc_1.1.0-1_all.deb con fecha de 2019 te hace pensar. No es solo un paquete de software; es una pieza de un puzle mucho más grande llamado Ubuntu, y más concretamente, de su repositorio «Universe». Si alguna vez te has preguntado cómo llega ese programa que instalas con un simple sudo apt install a tu ordenador, prepárate un café cargado, porque vamos a bajar a las alcantarillas del software libre.

Para entender qué hace ahí ese paquete de Django CAS, primero hay que entender la geografía de los repositorios de Ubuntu. No es que alguien tire los archivos en una carpeta y ya está. El «Pool» es, para que nos entendamos, el almacén central. Es gigantesco. En lugar de organizar todo por versiones de la distribución (que si Jammy, que si Noble, que si Focal), Ubuntu organiza los paquetes físicamente por su nombre inicial. Por eso, nuestro protagonista está en la carpeta /d/.

Ojo con esto, porque la estructura es jerárquica por una razón de eficiencia pura. Imagina el lío que sería tener miles de paquetes en una sola carpeta. El sistema de archivos simplemente colapsaría. Así que lo dividen: pool -> componente (main, restricted, universe, multiverse) -> letra inicial -> nombre del paquete. Es un sistema que heredaron de Debian y que, sinceramente, funciona como un reloj suizo aunque parezca rudimentario.

El hecho de que django-cas-server esté en universe nos dice mucho sobre su naturaleza. En el ecosistema Ubuntu, «Universe» es el reino de la comunidad. Son paquetes de código abierto, sí, pero Ubuntu (la empresa Canonical) no garantiza soporte técnico ni actualizaciones de seguridad críticas para ellos. Es el «úsalo bajo tu propia responsabilidad, pero gracias por estar aquí». En España, muchas administraciones públicas y universidades tiran de este repositorio porque es donde está la verdadera innovación y las herramientas específicas que no son tan masivas como para estar en «Main».

¿Qué es CAS y por qué debería importarte?

Si trabajas en una oficina grande o has estudiado en una universidad española en los últimos quince años, has usado CAS sin saberlo. CAS son las siglas de Central Authentication Service. Es un protocolo de Single Sign-On (SSO). ¿Sabes esa sensación de entrar en el correo de la uni, luego en la plataforma de notas y luego en la biblioteca sin tener que poner la contraseña tres veces? Pues eso es, en gran parte, gracias a protocolos como CAS.

La idea es sencilla pero potente: en lugar de que cada aplicación gestione tus credenciales (un peligro constante para la seguridad), todas confían en un servidor central. Tú le das tu usuario y contraseña al servidor CAS, este te da un «ticket» y tú le enseñas ese ticket a las demás aplicaciones. Es como el sello que te ponen en la mano al entrar en una discoteca para que puedas salir a fumar y volver a entrar sin pagar de nuevo. Bueno, quizá no es la mejor analogía si recordamos ciertas noches, pero ya me entendéis.

El paquete que vemos en el repositorio, django-cas-server, es precisamente la implementación de ese servidor central utilizando Django. Django, para los despistados, es el framework web de Python por excelencia. Es robusto, es seguro y, lo más importante, es muy «opinado», lo que significa que te obliga a hacer las cosas de una forma determinada que suele ser la correcta.

¿Por qué usar Django para un servidor CAS?

La verdad es que hay muchas opciones para montar un CAS. Tienes la implementación original en Java (Apereo CAS), que es el estándar de la industria, pero es un monstruo burocrático de configurar. Si tu equipo ya sabe Python y ya usáis Django para otras herramientas internas, meter un servidor CAS basado en Django es una decisión lógica. Te ahorras aprender un ecosistema nuevo y aprovechas el ORM de Django para gestionar los usuarios.

Además, en el contexto del mercado tecnológico español, donde Python ha ganado una tracción brutal en los últimos años, tener estas herramientas disponibles en los repositorios oficiales de Ubuntu facilita mucho la vida a los administradores de sistemas (los sufridos «sysadmins») que tienen que montar infraestructuras seguras con presupuestos que, a veces, dan ganas de llorar.

Analizando el paquete: python3-django-cas-server-doc

Si miramos el archivo específico que mencionaba al principio, python3-django-cas-server-doc_1.1.0-1_all.deb, hay un detalle que me hace gracia: es el paquete de documentación. En el mundo del software libre, a veces somos un poco desastres y separamos la documentación del código para ahorrar espacio en disco. Vaya, que si instalas el servidor pero no instalas el -doc, te toca buscarte la vida en Google.

El sufijo _all.deb significa que el paquete es independiente de la arquitectura. No importa si tienes un servidor Intel, un AMD o una Raspberry Pi con ARM; la documentación es texto (normalmente HTML generado con Sphinx) y funciona en cualquier sitio. La fecha, julio de 2019, nos indica que estamos ante una versión que ha envejecido. En tecnología, cinco años es una eternidad. Sin embargo, en entornos corporativos y académicos, la estabilidad prima sobre la novedad. Si funciona y es seguro, no lo toques.

Para que nos entendamos, instalar este paquete es tan fácil como hacer esto (siempre que tengas los repositorios configurados):


# Actualizamos la lista de paquetes
sudo apt update

# Instalamos la documentación para ver en qué lío nos estamos metiendo
sudo apt install python3-django-cas-server-doc

# Y luego el servidor propiamente dicho
sudo apt install python3-django-cas-server

Aunque, siendo sinceros, hoy en día la mayoría de la gente prefiere usar pip o contenedores Docker para estas cosas. Pero hay algo romántico y extremadamente estable en confiar en los paquetes .deb del sistema operativo. Sabes que han pasado por un proceso de revisión, que cumplen con las políticas de Debian y que no van a romperte medio servidor por una dependencia mal gestionada.

Configuración de un servidor CAS en Django: Un pequeño tutorial irónico

Supongamos que te has liado la manta a la cabeza y vas a instalar esto. La configuración de django-cas-server no es precisamente un paseo por el retiro un domingo por la mañana. Requiere tocar el settings.py de tu proyecto Django con precisión de cirujano.

Aquí te dejo un ejemplo de cómo se vería la integración básica, comentada para que no te pierdas en el desierto de la configuración:


# settings.py

INSTALLED_APPS = [
    ...
    'django_cas_server', # El invitado de honor
    ...
]

# Aquí es donde la cosa se pone seria. 
# Tienes que definir quién puede pedir tickets.
CAS_SERVER_ALLOWED_SERVICES = [
    'https://app-de-nominas.empresa.es',
    'https://intranet-viejuna.empresa.es',
]

# ¿Cuánto tiempo dura el "sello de la discoteca"?
# No seas tacaño, pero tampoco pongas un año.
CAS_TICKET_EXPIRATION_SECONDS = 300 

# Y por supuesto, la seguridad es lo primero
CAS_SERVER_REQUIRE_SSL = True # Si no usas HTTPS en 2024, mereces que te hackeen

La verdad es que, una vez configurado, es una maravilla. Pero el camino hasta allí suele estar empedrado de errores 403, redirecciones infinitas y algún que otro grito al monitor. Lo bueno de que el paquete esté en el repositorio de Ubuntu es que las rutas de los archivos y las dependencias de Python ya están resueltas para tu versión del sistema operativo. Te quitas de encima el drama de «en mi local funciona pero en el servidor no».

El impacto de estas herramientas en la soberanía tecnológica española

A veces nos olvidamos de que el software libre es una cuestión de soberanía. Cuando una institución pública española utiliza django-cas-server en lugar de una solución propietaria de una multinacional estadounidense, está manteniendo el control sobre sus datos y sus procesos de autenticación. Y lo que es más importante: está usando herramientas que cualquier informático local puede auditar, arreglar o mejorar.

En España tenemos una comunidad de Python y Django envidiable. Eventos como la PyConES demuestran que hay talento de sobra. Que estos paquetes estén disponibles en los repositorios oficiales de Ubuntu facilita que pequeñas empresas de consultoría tecnológica de aquí puedan competir ofreciendo servicios de implementación de SSO a grandes clientes. No necesitas comprar una licencia de miles de euros; necesitas a alguien que sepa leer la documentación (ese archivo .deb que mencionábamos) y configurar el servidor correctamente.

Además, el uso de CAS está muy extendido en la red de universidades españolas. Es un estándar de facto que permite, por ejemplo, que un investigador de una universidad pueda acceder a recursos de otra gracias a redes federadas. Todo esto se sustenta sobre piezas de software «aburridas» y «viejas» como la que encontramos en ese índice de directorio.

¿Sigue siendo relevante CAS frente a OAuth2 o SAML?

Esta es la pregunta del millón. Si entras en cualquier foro de tecnología moderno, te dirán que CAS es cosa del pasado, que ahora todo es OAuth2, OpenID Connect o SAML 2.0. Y en parte tienen razón. OAuth2 es el lenguaje que hablan las APIs modernas y las aplicaciones móviles.

Sin embargo, CAS tiene una elegancia y una simplicidad para entornos web tradicionales que OAuth2 a veces complica demasiado. CAS fue diseñado específicamente para el escenario de «usuario con navegador web que quiere entrar en varias aplicaciones». No intenta ser un protocolo de autorización complejo; solo quiere decirte quién es el usuario. Y lo hace muy bien.

Para que nos entendamos:

  • SAML: Es como un contrato legal de 50 páginas. Potente, pero pesado y difícil de leer.
  • OAuth2/OIDC: Es como un sistema de pases VIP para una zona restringida. Genial para apps, pero a veces excesivo.
  • CAS: Es el carné de identidad de toda la vida. Simple, directo y aceptado en todos los sitios de tu barrio.

Por eso, ver que Ubuntu sigue manteniendo django-cas-server en su repositorio «Universe» es una buena noticia. Significa que todavía hay espacio para la diversidad de protocolos y que no todos tenemos que pasar por el aro de las implementaciones más complejas si nuestras necesidades son más sencillas.

Seguridad y mantenimiento: El elefante en la habitación

No todo es de color de rosa. El hecho de que el paquete en el repositorio tenga fecha de 2019 debería hacernos arquear una ceja. En el mundo de la ciberseguridad, un servidor de autenticación es el objetivo número uno. Si alguien compromete tu servidor CAS, tiene las llaves de todo tu reino.

Al estar en «Universe», las actualizaciones de seguridad dependen de voluntarios de la comunidad. Si se descubre una vulnerabilidad en esa versión específica de django-cas-server, puede que pase un tiempo hasta que el paquete se actualice en los repositorios oficiales. Por eso, muchos administradores de sistemas en España optan por una estrategia híbrida: usan Ubuntu como base por su estabilidad, pero gestionan las aplicaciones críticas (como el servidor CAS) mediante entornos virtuales de Python (venvs) o contenedores, para poder parchear al minuto si hace falta.

La conclusión que saco de todo esto es que no debemos fiarnos ciegamente de lo que hay en un repositorio por el simple hecho de estar ahí. Hay que mirar las versiones, leer los changelogs y, sobre todo, entender qué estamos instalando. Ese índice de directorio que parece un fósil digital es en realidad una llamada a la responsabilidad del sysadmin.

La belleza de lo invisible

Al final del día, sitios como repos.uclv.cu o cualquier otro espejo de Ubuntu son los héroes invisibles de nuestra era digital. Sin esos servidores llenos de archivos .deb, la web tal y como la conocemos se desmoronaría. El paquete django-cas-server es solo una gota en un océano de código, pero es una gota que permite que miles de personas trabajen cada día sin tener que escribir su contraseña cincuenta veces.

Me gusta pensar en el programador que en 2019 empaquetó esa documentación. Probablemente lo hizo para solucionar un problema en su propio trabajo y decidió compartirlo con el mundo. Esa es la magia del software libre: alguien en algún lugar (quizás aquí mismo, en alguna oficina de Madrid o Barcelona) se tomó la molestia de hacer que las cosas funcionaran para todos.

Así que la próxima vez que te encuentres con un índice de directorio feo y aburrido, no pases de largo. Echa un vistazo. Puede que encuentres la pieza de software que te ahorre una semana de trabajo o, al menos, una anécdota curiosa sobre cómo se organiza el conocimiento humano en la era del silicio. Vaya, que la infraestructura de internet no son solo cables submarinos y centros de datos gigantes; también son pequeños archivos de texto que dicen a quién dejar pasar y a quién no.

Y si te animas a montar tu propio servidor CAS, recuerda: la documentación está ahí, en ese archivo _all.deb. Solo tienes que descargarla, leerla con paciencia y, preferiblemente, con una buena taza de café al lado. Porque al final, la tecnología va de eso: de humanos intentando que las máquinas se entiendan entre sí para que nosotros podamos dedicarnos a cosas más importantes.

¿Te ha gustado este artículo?

unpokitodxfavor

Propietario de aquinohayquienviva.es, web de noticias relacionadas con la ciencia, tecnología, y cultura en general.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Resuelve la operación para enviar el comentario * Time limit is exhausted. Please reload the CAPTCHA.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.