Microsoft ha publicado una actualización de la distribución Azure Linux 3.0.20241101, que continúa el desarrollo de la rama estable 3.0 formada en agosto. La distribución se está desarrollando como una plataforma base universal para entornos Linux utilizados en infraestructura de nube, sistemas perimetrales y diversos servicios de Microsoft. Los desarrollos del proyecto se distribuyen bajo licencia MIT. Las compilaciones de paquetes se generan para las arquitecturas aarch64 y x86_64. El tamaño de la imagen de instalación es de 751 MB.
Entre los cambios de la nueva versión:
- Para sistemas basados en arquitectura ARM, se ha agregado compatibilidad con la especificación FF-A (Firmware Framework for Arm A-profile).
- Se incluye el módulo del kernel intel_ifs (In-Field Scan), que le permite ejecutar pruebas de diagnóstico de CPU de bajo nivel en procesadores Intel que pueden identificar problemas que no son detectados por herramientas estándar basadas en códigos de corrección de errores (ECC) o bits de paridad.
- Se agregaron entradas SBAT al gestor de arranque GRUB2 para Fedora Linux.
- Al compilar el kernel, se habilita la configuración CONFIG_X86_AMD_PLATFORM_DEVICE, que trata los dispositivos ACPI específicos del chip AMD como dispositivos de plataforma estándar, como I2C, UART y GPIO.
- El funcionamiento de los comandos de iptables se garantiza traduciendo las reglas al código de bytes de nftables (además de iptables-legacy, se utiliza el paquete iptables-nft).
- Las versiones actualizadas del paquete incluyen el kernel de Linux 6.6.57, Go 1.23, OpenIPMI 2.0.36, libpcap 1.10.5, vim 9.1.0791, mysql 8.0.40, clamav 1.0.7, cloud-init 24.3.1, php 8.3.12,. mdadm 4.3, libarchive 3.7.7.
La distribución de Azure Linux proporciona un pequeño conjunto estándar de paquetes básicos que sirven como base universal para crear contenedores, entornos de host y servicios que se ejecutan en infraestructuras de nube y en dispositivos perimetrales. Se pueden crear soluciones más complejas y especializadas agregando paquetes adicionales además de Azure Linux, pero la base de todos estos sistemas sigue siendo la misma, lo que facilita el mantenimiento y la preparación de actualizaciones.
Azure Linux se utiliza como base para la minidistribución WSLg, que proporciona componentes de pila de gráficos para ejecutar aplicaciones GUI de Linux en entornos basados en el subsistema WSL2 (Subsistema de Windows para Linux). La funcionalidad ampliada en WSLg se implementa mediante la inclusión de paquetes adicionales con Weston Composite Server, XWayland, PulseAudio y FreeRDP.
El administrador del sistema systemd se utiliza para administrar servicios y arrancar. Se proporcionan administradores de paquetes RPM y DNF para la gestión de paquetes. El servidor SSH no está habilitado de forma predeterminada. Para instalar la distribución, se proporciona un instalador que puede funcionar tanto en modo texto como gráfico. El instalador ofrece la opción de instalar con un conjunto de paquetes completo o básico y ofrece una interfaz para seleccionar una partición de disco, seleccionar un nombre de host y crear usuarios.
El sistema de compilación Azure Linux le permite generar paquetes RPM individuales basados en archivos SPEC y código fuente, así como imágenes monolíticas del sistema generadas utilizando el kit de herramientas rpm-ostree y actualizadas atómicamente sin dividirse en paquetes separados. En consecuencia, 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. Hay disponible un repositorio de aproximadamente 3000 paquetes RPM prediseñados que puede utilizar para crear sus propias imágenes basadas en un archivo de configuración.
La plataforma base incluye solo los componentes esenciales y está optimizada para un consumo mínimo de memoria y espacio en disco, así como altas velocidades de carga. El proyecto utiliza un enfoque de “máxima seguridad por defecto”, que implica la inclusión de varios mecanismos adicionales para aumentar la seguridad:
- Filtrado de llamadas al sistema mediante el mecanismo seccomp.
- Cifrado de particiones de disco.
- Verificación de paquetes mediante firma digital.
- Aleatorización del espacio de direcciones.
- Protección contra ataques de 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 que contienen segmentos con datos del kernel y del módulo.
- Opción para deshabilitar la carga de módulos del kernel después de la inicialización del sistema.
- Usando iptables para filtrar paquetes de red.
- Habilite los modos de protección contra desbordamientos de pila, desbordamientos de búfer y problemas de formato de cadenas durante la compilación (_FORTIFY_SOURCE, -fstack-protector, -Wformat-security, relro).
Fuente: opennet.ru