A Microsoft lançou a atualização da distribuição Azure Linux 3.0.20241203. A distribuição está se desenvolvendo como uma plataforma base universal para ambientes Linux utilizados em infraestrutura de nuvem, sistemas edge e diversos serviços da Microsoft. As contribuições do projeto são distribuídas sob a licença MIT. Pacotes são construídos para as arquiteturas aarch64 e x86_64. O tamanho da imagem de instalação é de 750 MB.
Entre as mudanças na nova versão:
- O filtro de pacotes iptables foi adaptado para processar comandos através da tradução de regras em bytecode nftables (por padrão, em vez do iptables-legacy, o pacote iptables-nft é utilizado).
- Para sistemas Aarch64, foi oferecido um pacote adicional com o kernel kernel-64k, que utiliza grandes páginas de memória com tamanho de 64KB (o kernel foi construído com a opção CONFIG_ARM64_64K_PAGES).
- No gerenciador de pacotes tdnf (analógico ao dnf baseado em C libs), foi adicionada a suporte à configuração "installonlypkgs", que é utilizada para organizar a instalação do kernel kernel-64k.
- Ao usar o systemd-networkd, a manipulação do livenet rootfs foi habilitada através do Dracut.
- Adicionado um driver para adaptadores de rede Intel Ethernet Connection E800.
- O manipulador de logs fluent-bit agora suporta a linguagem Lua.
- A verificação com assinatura digital dos kernels carregados via mecanismo kexec foi habilitada.
- Para identificar construções de contêineres, em vez de verificar o arquivo "/.dockerenv", foi utilizada a ferramenta systemd-detect-virt.
- As versões dos pacotes foram atualizadas, incluindo o kernel Linux 6.6.57, shim 15.8, SymCrypt 103.6.0, Valkey (fork do Redis) 8.0.1, Go 1.23.3, MariaDB 10.11.10, PostgreSQL 16.5.
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
