La empresa Microsoft ha publicado una actualización de la distribución Azure Linux 3.0.20241203. Esta distribución se desarrolla como una plataforma base universal para entornos Linux, utilizados en infraestructura en la nube, sistemas edge y varios servicios de Microsoft. Los avances propios del proyecto se distribuyen bajo la licencia MIT. Las versiones de los paquetes se generan para las arquitecturas aarch64 y x86_64. El tamaño de la imagen de instalación es de 750 MB.
Entre los cambios en la nueva versión:
- El filtro de paquetes iptables se ha adaptado para procesar comandos mediante la traducción de reglas a bytecode nftables (el paquete iptables-nft se utiliza por defecto en lugar de iptables-legacy).
- Para los sistemas Aarch64 se ha propuesto un paquete adicional con el núcleo kernel-64k, en el que se utilizan páginas de memoria grandes de 64KB (el núcleo se ha compilado con la opción CONFIG_ARM64_64K_PAGES).
- En el gestor de paquetes tdnf (un análogo de dnf basado en bibliotecas C), se ha añadido soporte para la configuración ‘installonlypkgs’, que se utiliza para organizar la instalación del núcleo kernel-64k.
- Al utilizar systemd-networkd se ha habilitado el procesamiento de livenet rootfs de Dracut.
- Se ha añadido un controlador para los adaptadores de red Intel Ethernet Connection E800.
- Se ha añadido soporte para el lenguaje Lua en el procesador de registros fluent-bit.
- Se ha habilitado la verificación por firma digital de los núcleos que se cargan a través del mecanismo kexec.
- Para identificar las imágenes de contenedores, se utiliza la utilidad systemd-detect-virt en lugar de verificar el archivo ‘/.dockerenv’.
- Se han actualizado las versiones de los paquetes, entre los que se encuentran el núcleo Linux 6.6.57, shim 15.8, SymCrypt 103.6.0, Valkey (un fork de Redis) 8.0.1, Go 1.23.3, MariaDB 10.11.10, y PostgreSQL 16.5.
La distribución Azure Linux proporciona un pequeño conjunto estándar de paquetes básicos que actúan como una base universal para crear el contenido de contenedores, entornos host y servicios que se ejecutan en infraestructuras en la nube y en dispositivos edge. Las soluciones más complejas y especializadas pueden ser creadas añadiendo paquetes adicionales sobre Azure Linux, pero la base para todos estos sistemas permanece inalterada, lo que simplifica el mantenimiento y la preparación de actualizaciones.
Azure Linux se utiliza como base para el mini-distrito WSLg, que proporciona componentes de la pila gráfica para ejecutar aplicaciones GUI de Linux en entornos basados en el Subsistema WSL2 (Windows Subsystem for Linux). La funcionalidad ampliada en WSLg se realiza mediante la inclusión de paquetes adicionales con compositores el servidor Weston, XWayland, PulseAudio y FreeRDP.
Para gestionar los servicios y la carga se utiliza el gestor de sistema systemd. Los gestores de paquetes RPM y DNF se incluyen para la gestión de paquetes. El servidor SSH no está habilitado por defecto. Se proporciona un instalador para la instalación de la distribución, que puede funcionar tanto en modo texto como gráfico. En el instalador, se ofrece la opción de instalar con un conjunto completo o básico de paquetes, así como una interfaz para seleccionar las particiones del disco, elegir el nombre del host y crear usuarios.
El sistema de construcción de Azure Linux permite generar tanto paquetes RPM individuales a partir de archivos SPEC y textos fuente, como imágenes del sistema monolíticas, que se crean utilizando la herramienta rpm-ostree y se actualizan de manera atómica sin fragmentarse en paquetes individuales. Por lo tanto, se admiten dos modelos de entrega de actualizaciones: mediante la actualización de paquetes individuales y mediante la reconstrucción y actualización de toda la imagen del sistema. Se dispone de un repositorio que incluye alrededor de 3000 paquetes RPM ya compilados, que se pueden utilizar para componer sus propias imágenes basadas en un archivo de configuración.
La plataforma básica incluye solo los componentes más necesarios y está optimizada para un consumo mínimo de memoria y espacio en disco, así como para una alta velocidad de arranque. El proyecto adopta un enfoque de 'máxima seguridad por defecto', que implica habilitar varios mecanismos adicionales para aumentar la protección:
- Filtración de llamadas al sistema mediante el mecanismo seccomp.
- Cifrado de particiones del disco.
- Verificación de paquetes mediante firma digital.
- Aleatorización del espacio de direcciones.
- Protección contra ataques relacionados con enlaces simbólicos, mmap, /dev/mem y /dev/kmem.
- Modo de solo lectura y prohibición de la ejecución de código en áreas de memoria donde se almacenan segmentos de datos del núcleo y módulos.
- Opción para prohibir la carga de módulos del núcleo después de la inicialización del sistema.
- Uso de iptables para filtrar paquetes de red.
- Inclusión al compilar de modos de protección contra desbordamiento de pila, desbordamientos de búfer y problemas de formateo de cadenas (_FORTIFY_SOURCE, -fstack-protector, -Wformat-security, relro).
Fuente: opennet.ru
