Lançamento do gerenciador de sistema systemd 250

Após cinco meses de desenvolvimento, foi lançado o gerenciador de sistema systemd 250. Nesta nova versão, foi adicionada a capacidade de armazenar credenciais de forma criptografada, foi implementada a verificação de seções GPT automaticamente detectadas por assinatura digital, melhorou a comunicação sobre as causas das atrasos no início dos serviços, foram adicionadas opções para restringir o acesso do serviço a certos sistemas de arquivos e interfaces de rede, e foi garantido suporte à verificação da integridade das partições através do módulo dm-integrity, além do suporte para autoatualização do sd-boot.

Principais mudanças:

  • Foi adicionada a capacidade de suportar credenciais criptografadas e autenticadas, o que pode ser útil para armazenamento seguro de materiais confidenciais, como SSL-chaves e senhas de acesso. A descriptografia das credenciais acontece somente quando necessário e em ligação com a instalação ou equipamento local. Os dados são criptografados automaticamente usando algoritmos de criptografia simétricos, cujo chave pode ser armazenada no sistema de arquivos, no chip TPM2 ou utilizando um esquema combinado. Ao iniciar o serviço, as credenciais são descriptografadas automaticamente e se tornam disponíveis para o serviço em formato normal. Para trabalhar com credenciais criptografadas, foi adicionada a ferramenta ‘systemd-creds’, e para os serviços, foram oferecidas configurações LoadCredentialEncrypted e SetCredentialEncrypted.
  • No sd-stub, um executável para EFI, que permite que o firmware EFI carregue o núcleo do Linux, foi adicionada a capacidade de carregar o núcleo usando o protocolo LINUX_EFI_INITRD_MEDIA_GUID EFI. Além disso, no sd-stub, foi adicionada a possibilidade de empacotar credenciais e arquivos sysext em um arquivo cpio e transferir esse arquivo para o núcleo junto com o initrd (arquivos adicionais são colocados no diretório \/extra\/). Essa possibilidade permite utilizar um ambiente initrd imutável verificável, complementado com sysexts e dados criptografados para autenticação.
  • A especificação de Partições Descobertas foi significativamente expandida, oferecendo meios para identificar, montar e ativar partições de sistema que utilizam GPT (GUID Partition Tables). Em comparação com versões anteriores, para a maioria das arquiteturas, a especificação implementou suporte para a partição raiz e a partição \/usr, incluindo plataformas que não utilizam UEFI.

    No Discoverable Partitions também foi adicionada a suporte para partições cuja integridade é verificada pelo módulo dm-verity usando assinaturas digitais PKCS#7, facilitando a criação de imagens de disco totalmente autenticadas. A verificação de integridade está integrada em várias ferramentas que manipulam imagens de disco, incluindo systemd-nspawn, systemd-sysext, systemd-dissect, serviços com RootImage, systemd-tmpfiles e systemd-sysusers.

  • Para unidades que demoram a iniciar ou parar, além de mostrar um indicador animado de progresso, há a possibilidade de exibir informações de estado, permitindo entender o que está acontecendo com o serviço no momento e qual serviço o gerenciador de sistema está aguardando para concluir.
  • No /etc/systemd/system.conf e /etc/systemd/user.conf, foi adicionado o parâmetro DefaultOOMScoreAdjust, que permite ajustar o limite de ativação do OOM-killer em caso de falta de memória, aplicável aos processos que o systemd inicia para o sistema e para os usuários. Por padrão, o peso dos serviços do sistema é maior que o dos serviços do usuário, ou seja, em caso de falta de memória, a probabilidade de finalização dos serviços do usuário é maior do que a dos serviços do sistema.
  • Foi adicionada a configuração RestrictFileSystems, que permite restringir o acesso de serviços a determinados tipos de sistemas de arquivos. Para visualizar os tipos de FS disponíveis, pode-se usar o comando "systemd-analyze filesystems". De forma similar, foi implementada a opção RestrictNetworkInterfaces, que permite restringir o acesso a determinadas interfaces de rede. A implementação é baseada no módulo BPF LSM, que limita o acesso de um grupo de processos a objetos do núcleo.
  • Foi adicionado um novo arquivo de configuração /etc/integritytab e a utilidade systemd-integritysetup, que configuram o módulo dm-integrity para monitorar a integridade dos dados em nível de setores individuais, como garantir a imutabilidade de dados criptografados (Authenticated Encryption, que garante que o bloco de dados não foi modificado de forma não autorizada). O formato do arquivo /etc/integritytab é semelhante aos arquivos /etc/crypttab e /etc/veritytab, exceto que em vez de dm-crypt e dm-verity, utiliza-se dm-integrity.
  • Foi adicionado um novo arquivo unit systemd-boot-update.service, que, quando ativado e com o carregador sd-boot instalado, permitirá que o systemd atualize automaticamente a versão do carregador sd-boot, mantendo o código do carregador sempre atualizado. O sd-boot agora, por padrão, é compilado com suporte ao mecanismo SBAT (UEFI Secure Boot Advanced Targeting), que resolve problemas de revogação de certificados para UEFI Secure Boot. Além disso, o sd-boot oferece a possibilidade de analisar as configurações de inicialização do Microsoft Windows para formar corretamente os nomes das partições de inicialização com Windows e exibir a versão do Windows.

    No sd-boot, também foi adicionado suporte para definir o esquema de cores durante a fase de compilação. No processo de inicialização, foi incluído suporte para alterar a resolução da tela pressionando a tecla "r". Adicionou-se uma tecla de atalho "f" para acessar a interface de configuração do firmware. Uma função de inicialização automática do sistema correspondente ao item de menu selecionado na inicialização anterior foi adicionada. Agora é possível a inicialização automática de drivers EFI colocados no diretório /EFI/systemd/drivers/ na partição ESP (EFI System Partition).

  • Foi incluído um novo arquivo unit factory-reset.target, que é tratado no systemd-logind de forma semelhante a operações de reinicialização, desligamento, suspensão e hibernação, sendo usado para criar manipuladores para executar a restauração de fábrica.
  • O processo systemd-resolved agora cria um socket de escuta adicional no endereço 127.0.0.54, além do 127.0.0.53. As solicitações que chegam ao endereço 127.0.0.54 são sempre redirecionadas para o servidor DNS superior e não são processadas localmente.
  • Foi disponibilizada a possibilidade de compilar o systemd-importd e o systemd-resolved com a biblioteca OpenSSL em vez da libgcrypt.
  • Foi adicionada a suporte inicial para a arquitetura LoongArch, utilizada em processadores Loongson.
  • No systemd-gpt-auto-generator, foi implementada a possibilidade de configuração automática das partições de swap definidas pelo sistema, criptografadas pelo subsistema LUKS2.
  • No código de análise de imagens GPT, utilizado no systemd-nspawn, systemd-dissect e utilitários semelhantes, foi implementada a capacidade de decodificar imagens para outras arquiteturas, o que permite o uso do systemd-nspawn para executar imagens em emuladores de outras arquiteturas.
  • Durante a inspeção de imagens de disco no systemd-dissect, agora são exibidas informações sobre a finalidade da partição, como a adequação para inicialização via UEFI ou execução em contêiner.
  • No arquivo system-extension.d/ foi adicionado o campo "SYSEXT_SCOPE", que permite designar o escopo da imagem do sistema — "initrd", "system" ou "portable".
  • No arquivo os-release foi adicionado o campo "PORTABLE_PREFIXES", que pode ser usado em imagens portáteis para determinar os prefixos suportados dos arquivos unit.
  • No systemd-logind, foram implementadas novas configurações HandlePowerKeyLongPress, HandleRebootKeyLongPress, HandleSuspendKeyLongPress e HandleHibernateKeyLongPress, que podem ser usadas para definir ações ao segurar determinadas teclas por mais de 5 segundos (por exemplo, ao pressionar rapidamente a tecla Suspend pode-se configurar a transição para o modo de espera, enquanto ao segurar — para o modo de hibernação).
  • Para os units, foram implementadas configurações StartupAllowedCPUs e StartupAllowedMemoryNodes, que diferem das semelhantes sem o prefixo Startup, pois se aplicam apenas durante a fase de inicialização e desligamento, permitindo definir restrições de recursos diferentes durante a inicialização.
  • Adicionadas verificações [Condition|Assert][Memory|CPU|IO]Pressure, que permitem ignorar ou finalizar com erro a ativação do unit em caso de detecção de alta carga na memória, CPU e I/O no sistema através do mecanismo PSI.
  • O limite padrão para o número máximo de inodes foi aumentado para a partição /dev de 64k para 1M e para /tmp de 400k para 1M.
  • Para os serviços, foi proposta a configuração ExecSearchPath, que permite mudar o caminho para a busca de arquivos executáveis, executados através de configurações como ExecStart.
  • Adicionada a configuração RuntimeRandomizedExtraSec, que permite introduzir desvios aleatórios no tempo limite RuntimeMaxSec, que limita o tempo de execução do unit.
  • A sintaxe das configurações RuntimeDirectory, StateDirectory, CacheDirectory e LogsDirectory foi expandida, permitindo que através da indicação de um valor adicional, separado por dois pontos, a criação de um link simbólico para um diretório especificado, organizando o acesso por vários caminhos.
  • Para os serviços, foram propostas configurações TTYRows e TTYColumns para definir o número de linhas e colunas no dispositivo TTY.
  • Adicionada a configuração ExitType, que permite alterar a lógica de determinação da finalização do serviço. Por padrão, o systemd monitora apenas a finalização do processo principal, mas ao configurar ExitType=cgroup, o gerenciador do sistema aguardará a finalização do último processo no cgroup.
  • A implementação do suporte TPM2/FIDO2/PKCS11 no systemd-cryptsetup agora também é compilada como um plug-in para o cryptsetup, permitindo usar o comando cryptsetup convencional para desbloquear a partição criptografada.
  • No manipulador TPM2 no systemd-cryptsetup/systemd-cryptsetup, foi adicionada suporte para chaves primárias RSA, além das chaves ECC, para melhorar a compatibilidade com chips que não suportam ECC.
  • Foi adicionada a opção token-timeout em /etc/crypttab, que permite definir o tempo máximo de espera para a conexão do token PKCS#11/FIDO2, após o qual será exibido um pedido para inserir a senha ou chave de recuperação.
  • No systemd-timesyncd, foi implementada a configuração SaveIntervalSec, que permite salvar periodicamente o valor do tempo do sistema no disco, por exemplo, para implementar relógios monotônicos em sistemas sem RTC.
  • O utilitário systemd-analyze agora inclui as opções: ‘—image’ e ‘—root’ para verificar arquivos de unidade dentro da imagem ou do diretório raiz especificado, ‘—recursive-errors’ para considerar unidades dependentes ao identificar um erro, ‘—offline’ para verificar arquivos de unidade salvos separadamente no disco, ‘—json’ para saída no formato JSON, ‘—quiet’ para desativar mensagens não importantes, ‘—profile’ para vincular a um perfil portátil. Também foi adicionada o comando inspect-elf para analisar arquivos core no formato ELF e a possibilidade de verificar arquivos de unidade com um nome de unidade específico, independentemente de esse nome coincidir com o nome do arquivo.
  • No systemd-networkd, foi ampliado o suporte para o barramento CAN (Controller Area Network). Adicionadas configurações para gerenciar os modos CAN: Loopback, OneShot, PresumeAck e ClassicDataLengthCode. Na seção [CAN] dos arquivos .network, foram adicionadas as opções TimeQuantaNSec, PropagationSegment, PhaseBufferSegment1, PhaseBufferSegment2, SyncJumpWidth, DataTimeQuantaNSec, DataPropagationSegment, DataPhaseBufferSegment1, DataPhaseBufferSegment2 e DataSyncJumpWidth para gerenciar a sincronização de bits da interface CAN.
  • No systemd-networkd foi adicionada à opção Label para o cliente DHCPv4, permitindo configurar um rótulo de endereços a ser aplicado ao configurar endereços IPv4.
  • No systemd-udevd, foi implementado o suporte para valores especiais ‘max’ no ‘ethtool’, que define o tamanho do buffer no valor máximo suportado pelo hardware.
  • Nos arquivos .link para systemd-udevd, agora é possível configurar diversos parâmetros de junção de adaptadores de rede e conexão de processadores de hardware (offload).
  • No systemd-networkd agora são oferecidos novos arquivos .network: 80-container-vb.network para definir pontes de rede criadas ao iniciar o systemd-nspawn com as opções "—network-bridge" ou "—network-zone"; 80-6rd-tunnel.network para definir túneis criados automaticamente ao receber a resposta DHCP com a opção 6RD.
  • O systemd-networkd e o systemd-udevd agora suportam o encapsulamento de IP sobre interfaces InfiniBand, para o qual uma seção "[IPoIB]" foi adicionada nos arquivos systemd.netdev, e na configuração Kind foi implementado o tratamento do valor "ipoib".
  • O systemd-networkd agora garante a configuração automática de rotas para endereços especificados no parâmetro AllowedIPs, que pode ser configurado através dos parâmetros RouteTable e RouteMetric nas seções [WireGuard] e [WireGuardPeer].
  • O systemd-networkd garante a geração automática de endereços MAC imutáveis para interfaces batadv e bridge. Para desativar esse comportamento, pode-se especificar o valor MACAddress=none nos arquivos .netdev.
  • Nos arquivos .link, a configuração WakeOnLanPassword foi adicionada à seção "[Link]" para definir a senha ao usar WoL no modo "SecureOn".
  • Na seção "[CAKE]" dos arquivos .network, foram adicionadas as configurações AutoRateIngress, CompensationMode, FlowIsolationMode, NAT, MPUBytes, PriorityQueueingPreset, FirewallMark, Wash, SplitGSO e UseRawPacketSize para definir os parâmetros do mecanismo de controle de filas de rede CAKE (Common Applications Kept Enhanced).
  • Na seção "[Network]" dos arquivos .network, a configuração IgnoreCarrierLoss foi adicionada para determinar quanto tempo aguardar antes de reagir à perda do sinal portador.
  • No systemd-nspawn, homectl, machinectl e systemd-run, a sintaxe do parâmetro "—setenv" foi expandida — se apenas o nome da variável for especificado (sem "="), o valor será obtido da variável de ambiente correspondente (por exemplo, ao especificar "—setenv=FOO", o valor da variável de ambiente $FOO será utilizado na variável de ambiente homônima dentro do contêiner).
  • No systemd-nspawn, foi adicionada a opção "—suppress-sync" para desativar a execução das chamadas do sistema sync()/fsync()/fdatasync() ao criar o contêiner (útil quando a velocidade é prioritária e a preservação dos artefatos de build em caso de falha não é importante, uma vez que podem ser recriados a qualquer momento).
  • Uma nova base de dados hwdb foi adicionada, incluindo vários tipos de analisadores de sinal (multímetros, analisadores de protocolo, osciloscópios etc.). As informações sobre câmeras no hwdb foram ampliadas com um campo que informa o tipo de câmera (normal ou infravermelha) e a posição da lente (frontal ou traseira).
  • Foi garantida a geração de nomes inalteráveis para interfaces de rede em dispositivos netfront, utilizados no Xen.
  • A análise de arquivos core pela ferramenta systemd-coredump baseada nas bibliotecas libdw/libelf agora é realizada em um processo separado, isolado em um ambiente sandbox.
  • O systemd-importd agora suporta as variáveis de ambiente $SYSTEMD_IMPORT_BTRFS_SUBVOL, $SYSTEMD_IMPORT_BTRFS_QUOTA e $SYSTEMD_IMPORT_SYNC, que permitem desativar a geração de subvolumes Btrfs, bem como configurar quotas e a sincronização de discos.
  • No systemd-journald, em sistemas de arquivos que suportam o modo copy-on-write, foi reativado o modo COW para os logs arquivados, permitindo sua compressão pela tecnologia Btrfs.
  • No systemd-journald, foi implementada a deduplicação de campos idênticos em uma única mensagem, realizada antes de registrar a mensagem.
  • O comando shutdown recebeu a opção '—show' para exibir o desligamento programado.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster