A Microsoft lançou a atualização da distribuição Azure Linux 3.0.20241101, continuando o desenvolvimento da ramificação estável 3.0 formada em agosto. A distribuição evolui como uma plataforma básica universal para ambientes Linux, utilizados em infraestrutura em nuvem, sistemas de edge e diversos serviços da Microsoft. Os desenvolvimentos do projeto são distribuídos sob a licença MIT. As compilações de pacotes são formadas para as arquiteturas aarch64 e x86_64. O tamanho da imagem de instalação é de 751 MB.
Entre as mudanças na nova versão:
- Para sistemas baseados na arquitetura ARM, foi adicionada a compatibilidade com a especificação FF-A (Firmware Framework for Arm A-profile).
- Incluído o módulo do kernel intel_ifs (In-Field Scan), que permite executar testes diagnósticos de baixo nível na CPU em processadores Intel, capazes de identificar problemas não detectados por ferramentas padrão baseadas em códigos de correção de erros (ECC) ou bits de paridade.
- Foram adicionadas entradas SBAT no bootloader GRUB2 para o Fedora Linux.
- Na construção do kernel, a configuração CONFIG_X86_AMD_PLATFORM_DEVICE foi incluída, onde dispositivos ACPI específicos da AMD são tratados como dispositivos de plataforma padrão, como I2C, UART e GPIO.
- Garantido o funcionamento dos comandos iptables através da tradução de regras para bytecode nftables (além do iptables-legacy, o pacote iptables-nft está em uso).
- As versões dos pacotes foram atualizadas, incluindo o kernel 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.
A distribuição Azure Linux fornece um pequeno conjunto padrão de pacotes essenciais, que serve como base universal para a criação de conteúdos de contêineres, ambientes de hospedagem e serviços executados em infraestruturas de nuvem e em dispositivos de edge. Soluções mais complexas e especializadas podem ser criadas adicionando pacotes adicionais sobre o Azure Linux, mas a base para todos esses sistemas permanece inalterada, o que simplifica a manutenção e a preparação de atualizações.
O Azure Linux é usado como base para o mini-distríbuo WSLg, que fornece componentes do stack gráfico para permitir a execução de aplicativos GUI Linux em ambientes baseados no Windows Subsystem for Linux (WSL2). Funcionalidade expandida no WSLg é possibilitada através da inclusão de pacotes adicionais com compositivo. servidor Weston, XWayland, PulseAudio e FreeRDP.
Para gerenciar serviços e carga, é utilizado o gerenciador de sistema systemd. Para gerenciar pacotes, são fornecidos os gerenciadores de pacotes RPM e DNF. O servidor SSH não é habilitado por padrão. Para a instalação da distribuição, há um instalador que pode operar tanto em modos texto quanto gráfico. O instalador oferece a opção de instalação com um conjunto completo ou básico de pacotes, além de uma interface para selecionar a partição, nome do host e criação de usuários.
O sistema de construção Azure Linux permite gerar tanto pacotes RPM distintos com base em arquivos SPEC e textos fonte, quanto imagens de sistema monolíticas, formadas com a ferramenta rpm-ostree e atualizadas de forma atômica sem dividir em pacotes individuais. Assim, são suportados dois modelos de entrega de atualizações: por meio da atualização de pacotes individuais e pela reconstrução e atualização de toda a imagem do sistema. Um repositório está disponível, incluindo cerca de 3000 pacotes RPM já construídos, que podem ser utilizados para compor suas próprias imagens com base em um arquivo de configuração.
A plataforma básica inclui apenas os componentes mais necessários e está otimizada para uso mínimo de memória e espaço em disco, além de alta velocidade de inicialização. O projeto adota a abordagem de 'máxima segurança por padrão', que implica a inclusão de diversos mecanismos adicionais para aumentar a proteção:
- Filtragem de chamadas de sistema através do mecanismo seccomp.
- Criptografia de partições de disco.
- Verificação de pacotes por assinatura digital.
- Randomização do espaço de endereçamento.
- Proteção contra ataques relacionados a links simbólicos, mmap, /dev/mem e /dev/kmem.
- Modo somente leitura e proibição de execução de código em áreas de memória onde estão localizados os segmentos com dados do núcleo e módulos.
- Opção para bloquear o carregamento de módulos do núcleo após a inicialização do sistema.
- Uso de iptables para filtragem de pacotes de rede.
- Habilitação, durante a construção, de modos de proteção contra estouros de pilha, estouros de buffer e problemas de formatação de strings (_FORTIFY_SOURCE, -fstack-protector, -Wformat-security, relro).
Fonte: opennet.ru
