Skip to main content

a silhouette of a person's head and shoulders, used as a default avatar

authentik: remote timing attack in MetricsView HTTP Basic Auth (CVE-2024-52307)

Table of Contents

1) Introduction

Authentik is a popular open source identity provider that can be self-hosted. SUSE IT is considering to use this software internally in the future and thus we have been asked to have a look at its security.

The Authentik version we examined was 2024.8.3. Beyond the finding in this report, we also discovered the possibility to access SSL private keys without authentication, but this was independently discovered and fixed in parallel by upstream before we had a chance to report it. The only CVE-worthy finding that was left is discussed in the next section. Some general insights into the security of Authentik are given in section 3).

2) Vulnerability Details

The MetricsView, reachable via URL “/-/metrics/”, implements HTTP basic auth in authentik/root/monitoring.py:27. The expected username is hard-coded to be monitor. The expected password is the constant settings.SECRET_KEY, which is the same as the AUTHENTIK_SECRET_KEY, generated when setting up Authentik. According to documentation it is used for cookie signing and in older versions also for “unique user IDs”.

To verify the password, the implementation uses the regular Python “==” string comparison operator. This operator will optimize the string comparison, making it likely possible to employ timing attacks to guess the correct SECRET_KEY. Security research has repeatedly shown that timing attacks are a realistic danger, even over the network.

Exploiting this vulnerability is likely complex, but a determined attacker might be able to develop a successful approach. We did not look in more detail into how to exploit the issue.

Upstream published a security advisory and provides fixes for this issue in versions 2024.10.3 and 2024.8.5. It is also possible to employ a workaround by making the affected API endpoint inaccessible for remote users.

3) Review Summary

Authentik is a big project consisting of about 10,000 lines of Golang code and nearly 100,000 lines of Python code. It uses various web frameworks and a rather complex set of abstractions. Reviewing this in full with our limited resources is impossible. Thus we concentrated on inspecting the accessible REST API endpoints and tried to get a general feel for the robustness of the software.

The web frameworks and development style used in Authentik result in pretty robust REST API endpoints. Even when issues are found, the upstream project shows that it is well organized and manages to fix them quickly and transparently.

The sheer amount of features supported by Authentik in terms of network protocols, authentication mechanisms etc. is big and results in a level of complexity that is hard to manage. Keeping track of the interactions of all these features with client and third party systems is a challenge. Authentik also implements a complex permission framework of over 500 different privileges for controlling access to the system. We suggest to train administrators of such systems well to avoid that issues are introduced through bad configuration of the system.

A bit of a problematic area that we identified in Authentik is its deployment. It only offers Docker-Compose or Kubernetes based installation. No official bare-metal installation support exists. The minimum setup requires four containers that are connected via an isolated network. One container is running the Postgres database, one is running the Redis in-memory key/value store, another one is running the actual Authentik server components and an “Authentik Worker” container is running the celeryd task scheduler. We looked into the containers and noted the following aspects:

  • Two of the containers (Postgres and Redis) are based on Alpine Linux and the other two (Authentik Server and Worker) are based on Debian Linux.
  • The local security within some of these containers is not fully maintained, e.g. in the Authentik Server container there exist globally accessible IPC sockets and unsafe temporary file permissions in /dev/shm. This means that the local security is only based on the container isolation. As soon as an attacker is able to run code in this container, there is little defense-in-depth.
  • The file system hierarchy standard is violated in some of the containers, the / directory is cluttered with proprietary Authentik directories. A custom Python installation is placed there, for example.

Consequently, one must not only consider the security of Authentik itself, but also the security of at least four different Linux containers running two different Linux distributions and the customized Python stacks involved etc. Users have to rely on Authentik upstream to properly maintain the security of these components.

Offering a bare-metal installation could address the concerns in this area. Individual services on modern Linux can still benefit from isolation features (e.g. via protection settings in systemd service units), while the system packages and distribution security are transparent and under full control of the Admin. Of course this likely makes things more complex for the upstream developers, when they no longer have full control of the Linux environment that Authentik is running in.

4) Timeline

2024-10-25 We reported the finding to security@goauthentik.io, offering coordinated disclosure.
2024-10-28 Upstream replied and confirmed the issue.
2024-11-13 Upstream obtained a CVE and informed us they would publish the issue within a week.
2024-11-21 Upstream published fixes and a security advisory.

5) References

a silhouette of a person's head and shoulders, used as a default avatar

Pintando con Krita en Akademy-es 2024 de València esLibre Edition #akademyes

Me enorgullece seguir presentando los vídeos de la pasada Akademy-es. Hoy sigo con la ponencia «Pintando con Krita: técnicas de ilustración» realizada en Akademy-es 2024 de València esLibre Edition donde vemos a Alien mostrarnos que arte y software libre deben estar siempre unidas de la mano. Un excelente punto de partida para poder conocer de forma virtual el gran evento de la comunidad española de KDE.

Pintando con Krita en Akademy-es 2024 de València esLibre Edition #akademyes

Hoy me complace presentar un gran trabajo de equipo que se inició con los técnicos de GNU/Linux València, que utilizando los dispositivos de Slimbook, consiguieron grabar con éxito todas las ponencias de Akademy-es.

Posteriormente, David Marzal y Jon Intxaurbe se encargaron de ir montando la ponencias para poder publicarlas, de momento, en Kockatoo Tube. Están todas, con subtítulos y todo, así que poco a poco las voy a ir promocionando en el blog.

Sigo la serie con la charla Pintando con Krita: técnicas de ilustración de la mano de Alien:

Charla sobre el uso de Krita para ilustración, aplicando conocimiento y pasos de ilustración tradicional a través del software. Durante la presentación, se mostrará cómo trabajar y pensar por capas, qué colores son los más indicados según capa de trabajo, cómo realizar paletas, personalizar pinceles y en general trabajar lo más cercano posible a la técnica tradicional pero usando el programa.

Gracias a Jon por su inestimable ayuda en la edición de estos vídeos. En comunidad somos más fuertes.


Pintando con Krita en Akademy-es 2024 de València esLibre Edition #akademyes
Foto de grupo de Akademy-es 2024 de València Eslibre Edition

¿Qué es el Akademy-es?

Akademy-es es el encuentro anual de desarrolladores, colaboradores y usuarios de KDE en España, que se celebra desde el año 2006 en distintas ciudades del territorio español y con esta se llegará a la decimasexta edición, lo cual significa una cifra más que aceptable.

Más información: KDE España

La entrada Pintando con Krita en Akademy-es 2024 de València esLibre Edition #akademyes se publicó primero en KDE Blog.

a silhouette of a person's head and shoulders, used as a default avatar

Slimbook Zero, un ordenador compacto y eficiente

Este mes me parece que voy a acabarlo con algunas entradas de mi marca de ordenadores favorita. Y es que me he dado cuenta que algunos de sus dispositivos no habían sido presentados en el blog. Como podemos ver en su página web ofrecen lo que llaman el Slimbook Zero, un pequeño dispositivo que tiene como objetivo cubrir la necesidad de tener un pequeño ordenador para tareas ofimáticas o centro multimedia a precio reducido, de pequeño tamaño y silencioso.

Slimbook Zero, un ordenador compacto y eficiente

Antes de empezar quiero destacar que la gama Slimbook Zero de Slimbook no es nueva, fue lanzada hace unos años pero por los motivos que sean nunca hemos dedicado un artículo en el blog.

Para los que no lo conozcan, Slimbook Zero es el hermano pequeño del One, es decir, una serie de ordenadores compactos pero potentes ideales para tener colgados detras del monitor o al lado del televisor del salón, por ejemplo. La idea es aprovechar las posibilidades de tener una carcasa pequeña donde ensamblar componentes pequeños pero potentes, algo que podemos conseguir gracias a la minituarización de los discos duros y de las memorias ram. Esto conlleva también a que su consumo eléctrico es bajo.

Personalmente, yo tengo un Slimbook One en el despacho para mi pareja desde hace muchos años y es perfecto para prácticamente cualquier tarea: ofimática, edición de vídeo, servidor, videojuegos (que no requieran de una gráfica extraordinaria), etc. Además, su cuidada estética lo hace versátil incluso para decorar el despacho. Su inconveniente está en las limitaciones en cuanto a ampliaciones, que no es que no se pueda sino que no te da tantas opciones como un ordenador de sobremesa convencional.

Es evidente, el dispositivo anterior es compacto pero muy potente, orientado para aquellos que no quieren tener limitaciones y que necesitan tirar de CPU para tareas pesadas. ¿Y si quiero algo similar pero a menor precio porque no requiero tanta potencia ni que sea tan bonito?

Pues para responder a esa necesidad la compañía Slimbook ideó su Slimbook Zero, la misma idea que el One pero abaratando costos en carcasa y potencia, ideal para entornos menos exigentes porque ¿para qué quiero un maquinon para controlar el cobro de tickets o para simplemente navegar por la red y escribir un documento en Libre Office?

Vuelve Slimbook Zero, un ordenador compacto y eficiente

El Slimbook Zero, como he dicho al principio, nació hace unos años y ahora presenta un procesador N100 de Intel, un procesador comparable a un Intel Core i5-7400 pero con un consumo de 6W, algo que lo hace muy jugoso ya que, además, la relación calidad/precio es de las más altas que nos podemos encontrar en el mercado.

Como podemos ver en la imagen superior, su aspecto es de batalla, lleno de surcos en su carcasa metálica destinados a disipar su temperatura ya que no lleva ventilador, lo que garantiza un nivel ínfimo de ruido. Además, su conectividad está fuera de toda duda, como podemos ver en la imagen inferior, donde apreciamos 8 entradas USB, 4 puertos Ethernet, HDMI, DisplayPort, etc.

Vuelve Slimbook Zero, un ordenador compacto y eficiente

Las características de este Slimbook Zero N100 son las siguientes:

  • Procesador: Intel N100
  • Gráficos: Intel UHD Graphics
  • Salidas de vídeo: 1x HDMI, 1x Displayport
  • Puertos USB: 2 x USB 3.0, 6 x USB 2.0.  
  • Redes: 4 x RJ45 2.5Gb, Wifi 6 (opcional)
  • Memoria RAM: hasta 32GB DDR5
  • Disco duro M.2:  hasta 4TB NVMe
  • Disco duro SATA: hasta 4TB 2.5″
  • Sistema Operativo: Linux/Windows
  • Pendrive: Disponible con tu distro Linux
Vuelve Slimbook Zero, un ordenador compacto y eficiente

Y por cierto, no penséis que hago toda esta publicidad porque reciba una compensación económica, simplemente porque confio en esta empresa que no olvida que el Software Libre es algo más que Software.

Más información: Slimbook

La entrada Slimbook Zero, un ordenador compacto y eficiente se publicó primero en KDE Blog.

the avatar of Alessandro de Oliveira Faria

Exame de sangue com celular.

A inovação chega ao mundo dos microscópios com o lançamento de um modelo portátil que promete revolucionar a maneira como profissionais e entusiastas da ciência transportam e utilizam esse tipo de equipamento. Diferenciando-se por sua portabilidade sem comprometer a eficácia, este microscópio incorpora uma lente inovadora equipada com milhares de nano ventosas. Essas ventosas permitem que a lente se fixe de maneira segura e instantânea em qualquer lente de smartphone, tornando o dispositivo altamente compatível tanto com aparelhos Android quanto com iPhones. Essa característica assegura que o usuário possa realizar observações científicas precisas em qualquer lugar, sem a necessidade de equipamentos pesados ou estacionários.

O destaque deste microscópio é a lente iMicro Q3p, que proporciona uma capacidade de ampliação impressionante de até 1.200 vezes. Com tal grau de aproximação, é possível observar detalhes em um nível submicrônico, abrindo um vasto campo de possibilidades para a exploração científica. Usuários podem, por exemplo, examinar com clareza desde um simples fio de cabelo até componentes mais complexos como células sanguíneas. Essa funcionalidade torna o microscópio uma ferramenta extremamente valiosa para estudos e pesquisas em diversas áreas, desde a biologia até a engenharia de materiais.

Em paralelo ao desenvolvimento deste microscópio, estou trabalhando em um software inovador destinado a automatizar e facilitar o processo de contagem de hemácias, leucócitos e plaquetas em imagens microscópicas. Este software é construído utilizando técnicas avançadas de Inteligencia Artificial, Visão computacional, incluindo Transformada de Hough, morfologia matemática, erosão e dilatação, bem como técnicas especializadas para detecção de bolhas. O objetivo é proporcionar um método mais eficiente e acessível para o diagnóstico de condições médicas como anemia e leucopenia, essencial para ambientes clínicos que buscam precisão e agilidade em seus diagnósticos.

A implementação deste software tem o potencial de transformar significativamente a prática médica, especialmente em locais com recursos limitados. Ao automatizar a contagem de células sanguíneas, o software não só acelera o processo de diagnóstico, mas também reduz a dependência de patologistas para a realização desses testes. Isso resulta em um diagnóstico mais rápido e econômico de anemia e leucopenia, facilitando o acesso a tratamentos médicos eficazes e melhorando a qualidade de vida dos pacientes. Esta inovação representa um passo significativo para tornar a saúde mais acessível e eficiente através da tecnologia.

a silhouette of a person's head and shoulders, used as a default avatar

OpenArena, la versión libre del clásico Quake III Arena – Juegos Linux (XIV)

Nueva entrada de la serie de grandes juegos libres. Los seguidores de la serie habrán notado que el mes pasado no se publicó entrada, la razón es que en realidad cuesta bastante realizarlas, así que para publicar algo de baja calidad dejé pasar dicho mes para que este noviembre tuviéramos uno bueno.Hoy vuelvo a uno mis géneros favoritos ya que ofrece descarga de adrenalina asegurada por el ritmo frenético que requiere. Se trata del género disparos en primera persona (FPS), género que ha aparecido en un varias ocasiones en la serie. Os presento OpenArena, la versión libre del clásico Quake III Arena, un FPS frenético .

OpenArena, la versión libre del clásico Quake III Arena – Juegos Linux (XIV)

Antes de empezar recordar que ya he tocado muchos de los géneros: estrategia por turnos (The Battle for Wesnoth, Hedgewars), disparos en primera persona (Xonotic, Alien Arena), velocidad (Speed Dreams, SuperTuxKart), MMORPG (Ryzom), plataformas (SuperTux), FPS (Minestest) o simulador (OpenTTD, Simutrans). Así que si no os interesa este, podéis visitar alguno de los enlaces anteriores.

Esta entrada es similar a la de Alien Arena, y es que volvemos a hablar de la compañía de videojuegos ID Software que siempre ha tenido un especial cariño por liberar su código para que el desarrollo de sus juegos tuvieran gran apoyo de la Comunidad. Creo que esta es la razón por la que los juegos de disparos en primera persona, conocidos como First Person Shooter (FPS para abreviar), es bastante popular en el mundo del Software Libre.

En 2005 esta compañía decidió liberar el código fuente del motor gráfico de Quake III bajo Licencia GPL. Sólo un día más tarde OpenArena fue lanzado al mercado, se trataba de la primera prueba beta el 19 de agosto de 2005. (Wikipedia)

OpenArena, la versión libre del clásico Quake III Arena - Juegos Linux (XIV)

OpenArena ha sido desarrollado, usando principalmente software de código Libre y abierto. El motor de juego es el Quake III GPL de la compañía id Software, el cual es completamente Libre. El motor de Juego, el código y los datos, todos son de contenido abierto. OpenArena ha sido aprobado para ser compatible con algunos mods de Quake 3.

Pero, si os fijáis, he dicho que ha sido desarrollado porque parece que su desarrollo se ha estancado, ya que última versión, la 0.8.8, es del 2012. En la web vemos que se anuncia que se está trabajando en una nueva iteración (incluso en la página multimedia anuncian que «Please be aware that this version is 3 years old and does not represent the coming 3.X version») pero no encuentro información de la misma. Eso sí, hay un foro oculto para desarrolladores que están preparando la próxima versión al que no se puede acceder sin registro… lamentablemente no tengo tiempo para intentar entrar al mismo.

Eso sí, el juego es jugable y como prueba es que está disponible para instalar en formato flatpak y que si buscas en youtube encunetras bastantes vídeos recientes.

En palabras de sus desarrolladores, OpenArena es presentado como:

OpenArena es un proyecto de contenido libre. Su objetivo es crear medios nuevos y originales, proporcionando al mismo tiempo un juego multijugador independiente.

Las características de OpenArena

Alien Arena se distribuye bajo la licencia GPL (General Public License), lo que permite a los usuarios utilizar, modificar y redistribuir el software de manera libre y gratuita.

Como siempre, me gusta hacer un listado con sus características básicas:.

  • Gráficos retro estilo años 90, similares a Quake III Arena.
  • Texturas, modelos y sonidos completamente libres, creados por la comunidad.
  • Estilo visual centrado en la acción rápida y el minimalismo gráfico, sin buscar realismo extremo.
  • Amplia selección de mapas diseñados por la comunidad.
  • Posibilidad de añadir mods, skins y configuraciones personalizadas.
  • Compatible con mapas y mods de Quake III Arena, lo que amplía aún más el contenido.
  • Requisitos de hardware modestos, ideal para ordenadores más antiguos.
  • Alto rendimiento incluso en sistemas con recursos limitados.
  • Comunidad activa de jugadores
  • Soporte de servidores para partidas multijugador.
  • Los tipos de juego admitidos actualmente son los siguientes:
    • Libre para todos
    • Combate a muerte por equipos
    • Torneo
    • Capturar la bandera
    • Captura de una bandera
    • Sobrecarga
    • Cosechadora
    • Eliminación
    • Eliminación CTF
    • Último hombre en pie
    • Dominación doble
    • Dominación

¿Cómo conseguir OpenArena?

Como está siendo habitual, estos juegos libres los podemos encontrar en casi todos los sistemas operativos disponibles. No hay más que visitar la página oficial para ver que puedes jugar a OpenArena en GNU/Linux, Windows, MacOS, o conseguir el código fuente.

También lo puedes encontrar en Flathub, que es como lo he probado en mi equipo.

¿Puedo participar en su desarrollo?

Pues lo cierto es que estoy seguro que si pero en la página web no aparece la información de como hacerlo, lo cual me hace pensar que aunque el juego funciona a la maravilla, su desarrollo parece algo estancado.

La entrada OpenArena, la versión libre del clásico Quake III Arena – Juegos Linux (XIV) se publicó primero en KDE Blog.

a silhouette of a person's head and shoulders, used as a default avatar

#openSUSE Tumbleweed revisión de la semana 47 de 2024

Tumbleweed es una distribución de GNU/Linux «Rolling Release» o de actualización contínua. Aquí puedes estar al tanto de las últimas novedades.

Tumbleweed

openSUSE Tumbleweed es la versión «rolling release» o de actualización continua de la distribución de GNU/Linux openSUSE.

Hagamos un repaso a las novedades que han llegado hasta los repositorios esta semana.

Y recuerda que puedes estar al tanto de las nuevas publicaciones de snapshots en esta web:

El anuncio original lo puedes leer en el blog de Dominique Leuenberger, publicado bajo licencia CC-by-sa, en este este enlace:

De nuevo esta semana se repite la cifra de 5 nuevas snapshots publicadas 1114, 1115, 1117, 1118, y 1119

Las actualizaciones más destacadas de esta semana:

  • Linux kernel 6.11.8
  • gnutls 3.8.8
  • PostgreSQL 17.1
  • Mozilla Firefox 132.0.2
  • Plymouth 22.02.122+180
  • Habilitados módulos de Python 3.13.Python 3.11 sigue siendo, por ahora el intérprete predeterminado.

Pero hay mucho más que se está preparando

  • ICU 76.1
  • Linux kernel 6.12.0
  • Debugedit 5.1
  • cmake 3.31.0
  • Python setuptools 75.6
  • systemd 257
  • Mesa 24.3.0

Si quieres estar a la última con software actualizado y probado utiliza openSUSE Tumbleweed la opción rolling release de la distribución de GNU/Linux openSUSE.

Mantente actualizado y ya sabes: Have a lot of fun!!

Enlaces de interés

Geeko_ascii

——————————–

a silhouette of a person's head and shoulders, used as a default avatar

Tumbleweed – Review of the week 2024/47

Dear Tumbleweed users and hackers,

As there was hackweek this week, attention on the Stagings might have been a bit distracted, although it does not look like anything was stuck longer than usual. We have released 5 snapshots during this week (1114, 1115, 1117, 1118, and 1119).

The most relevant changes this week are:

  • Linux kernel 6.11.8
  • gnutls 3.8.8
  • PostgreSQL 17.1
  • Mozilla Firefox 132.0.2
  • Plymouth 22.02.122+180 ( more recent git snapshot)
  • Python 3.13 modules enabled; Python 3.11 is – for now – still the default (plans to change that are emerging)

Staging projects are still crowded, testing these parts:

  • ICU 76.1 (part of snapshot 1121)
  • Linux kernel 6.12.0
  • Debugedit 5.1
  • cmake 3.31.0
  • Python setuptools 75.6
  • systemd 257
  • Mesa 24.3.0
the avatar of danigm's Blog

Hackweek 24

It's the time for a new Hack Week. The Hack Week 24 was from November 18th to November 22th, and I've decided to join the New openSUSE-welcome project this time.

The idea of this project is to revisit the existing openSUSE welcome app, and I've been trying to help here, specifically for the GNOME desktop installation.

openSUSE-welcome

Right now after installing any openSUSE distribution with a graphical desktop, the user is welcomed on first login with a custom welcome app.

This custom application is a Qt/QML with some basic information and useful links.

The same generic application is used for all desktops, and for popular desktops right now exists upstream applications for this purpose, so we were talking on Monday morning about it and decided to use specific apps for desktops.

So for GNOME, we can use the GNOME Tour application.

gnome-tour

GNOME Tour is a simple rust/gtk4 application with some fancy images in a slideshow.

This application is generic and just shows information about GNOME desktop, so I created a fork for openSUSE to do some openSUSE specific customization and use this application as openSUSE welcome in GNOME desktop for Tumbleweed and Leap.

Desktop patterns, the welcome workflow

After some testing and investigation about the current workflow for the welcome app:

  1. x11_enhanced pattern recommends opensuse-welcome app.
  2. We can add a Recommends: gnome-tour to the gnome pattern
  3. The application run using xdg autostart, so gnome-tour package should put the file in /etc/xdg/autostart and set to hidden on close.
  4. In the case of having a system with multiple desktops, we can choose the specific welcome app using the OnlyShowIn/NotShowIn config in desktop file

So I've created a draft PR to do not show the openSUSE-welcome app in GNOME, and I've also the gnome-tour fork in my home OBS project.

I've been testing this configuration in Tumbleweed with GNOME, KDE and XFCE installed and it works as expected. The openSUSE-welcome is shown in KDE and XFCE and the gnome-tour app is only shown in GNOME.

Next steps

The next steps to have the GNOME Tour app as default welcome for openSUSE GNOME installation are:

  1. Send forked gnome-tour package to GNOME:Next project in OBS.
  2. Add the Recommends: gnome-tour to patterns-gnome to GNOME:Next project in OBS.
  3. Make sure that any other welcome application is not shown in GNOME.
  4. Review openQA tests that expect opensuse-welcome and adapt for the new application.
a silhouette of a person's head and shoulders, used as a default avatar

Mi escritorio Plasma de noviembre 2024 #viernesdeescritorio

Esta novena entrega del año de la iniciativa #viernesdeescritorio que vuelve a los fondos clásicos. Bienvenidos a mi escritorio Plasma de noviembre 2024, realizado sobre Kymera Slimbook, con el que llegamos a las 54 entregas compartiendo «Mi escritorio» de forma mensual.

Mi escritorio Plasma de noviembre 2024 #viernesdeescritorio

Esta va a ser la quincuagésimocuarta (54 para los que nos cuesta leer esto) vez que muestro mi escritorio Plasma 6 en público, lo cual es número nada desdeñable de entradas que sigue creciendo de forma constante. Hice un recopilatorio con los 12 escritorios del 2022 y este diciembre he hecho una con los 13 del 2023. Por fin he encontrado el momento perfecto para hacer este tipo de entradas.

Y en esta ocasión vuelvo a mis ordenador de escritorio, con el que estoy trabajando últimamente. Este equipo tiene instalado un KDE Neon con Plasma 6.2.3, sobre una versión de KDE Frameworks 6.8 y una versión de Qt 6.8 El servidor gráfico es Wayland y el Kernel es 6.8.0-49-generic (64 bits).

He cambiado al tema global Sweet Mars de Eliverlara, con los iconos Candy, de mismo creador. He añadido el clásico y elegante reloj Digital Clock Be Style y tambén he modificado el lanzador de aplicaciones a Menu Ditto que quizás estaría mejor centrado pero que de momento se queda ahí. Respecto al fondo he buscado uno con estilo neon que lo haga colorido llamado Sweet Space, tambien de Eliverlara.

El resultado de mi escritorio Plasma de noviembre de 2024 es un entorno de trabajo oscuro y, como siempre, funcional que podéis ver en la imagen inferior (pinchad sobre ella para verlo un poco más grande).

Mi escritorio Plasma de noviembre 2024 #viernesdeescritorio

La entrada Mi escritorio Plasma de noviembre 2024 #viernesdeescritorio se publicó primero en KDE Blog.

the avatar of Timo's openSUSE Posts

Switching from Docker to Podman

The State at the Beginning

Earlier I had made progress on my server to serve different websites from inside containers, including refreshing SSL certificates. But the server started to be aging, and for both learning and future proofing purposes I started looking at migrating to something newer. And, I never really finished all the old work anyway. Instead I have a new container in use that has SSH running inside, that should be migrated as well.

OS / Software Upgrades

First of all I updated the OS, to have the latest or at least newer Podman available, as I tend to prefer the distro version to any special repositories. I encountered a few problems with disk space running out a few times, but managed to sort out those issues without rendering the server unusable.

From Docker to Podman

The main topic was switching from Docker to Podman. That involved reading about docker-compose vs podman-compose, the different formats for those two, quadlets, pods… so many options, and interestingly many of those have been in varying states of development for the past years, so I’m glad I haven’t been too fast on making this switch.

I have liked docker compose. Creating pods from CLI is certainly not interesting for me so not worth the effort. Quadlets would be elegant, but I yearn for something more automatically created from a single definition for quadlets like the podlets, which however are not to be merged into podman upstream. Lots of interesting discussion on which ones of these are deprecated, no longer hot etc.

I checked that indeed it seemed I can use podman as a drop-in replacement for Docker, using the docker-compose format. However, the idea to move to native podman-compose format was hindered by comments like ”compose is no longer the way to go with Podman” 🤔

Reality Check

At this point I decided to actually test this ”drop-in replacement” I mentioned seemed working, and while the container was indeed running without a hitch, I found out that .. well, the services didn’t work. So before I got too excited about rewriting everything in something new, I went towards actually figuring out what are the problems currently.

That took quite a bit of time, but eventually I was back to the status before starting. I spent a bit too much time assuming the problem was with podman configuration, while at the end I needed correct firewall routings to the podman network interface, something that wasn’t explicitly required before with docker and earlier OS version.

Problem solved! Except that now SSH to container worked, but some SSH features did not work… again, some time was spent until I found out that Podman has dropped AUDIT_WRITE capability from default settings at some point, mostly needed by SSH. Problem Solved! Except that even though there was a change in error messages, it still didn’t work. AUDIT_CONTROL or a workaround is needed too, for obvious-to-anyone reasons (a nice read, plot thickens etc).

At this point I thought that rewriting anything more would just complicate things, and it’d be better to make the current solution to ”actually work”. So far I had played with the single container that was already in use, but I knew there’d be a bigger effort to combine that with the containerized nginx proxy and let’s encrypt that were not yet running in a container by default, running on host instead, and having all of those work together.

At the End

For my use on this single server case, I found that actually podman-compose with the compatible docker format is not too bad thing to use. I have a more recent platform in use, Podman even in rootful mode is somewhat more secure than Docker, and I have solved issues in integrating this migrated container and some of the other services working in another migrated container too. Most importantly, at the end I had not created more problems than I solved, I have version controlled configuration, improved Ansible scripts and functional backups for re-deployment. Given the time restrictions I have for working on things like these, it’s better to have something that a) works, b) is re-deployable than something that is using another technology but is more hackish.

While I could move from podman-compose to quadlets, that would actually make things more complex at least in the current state of things in case I’d like to move to kubernetes. compose -> quadlets and compose -> kubernetes seem quite straightforward, but quadlets -> kubernetes is a bit different topic. Not that I’d really have any use for kubernetes, but for learning purposes it could be nice to keep the option. Maybe using .kube files with quadlets could be ok though.

A separate project would be also to switch to native Podman compose YAML format to strive towards rootless containers.