gerenciador de sistema systemd versão 250

Após cinco meses de desenvolvimento, foi apresentado o lançamento do gerenciador de sistema systemd 250. A nova versão introduziu a capacidade de armazenar credenciais de forma criptografada, implementou a verificação de partições GPT detectadas automaticamente usando uma assinatura digital, melhorou as informações sobre as causas dos atrasos quando. iniciar serviços e opções adicionais para limitar o acesso de serviço a determinados sistemas de arquivos e interfaces de rede, suporte para monitoramento de integridade de partição usando o módulo dm-integrity é fornecido e suporte para atualização automática de inicialização SD é adicionado.

Grandes mudanças:

  • Adicionado suporte para credenciais criptografadas e autenticadas, que podem ser úteis para armazenar com segurança materiais confidenciais, como chaves SSL e senhas de acesso. A descriptografia de credenciais é realizada somente quando necessária e em conexão com a instalação ou equipamento local. Os dados são criptografados automaticamente usando algoritmos de criptografia simétrica, cuja chave pode estar localizada no sistema de arquivos, no chip TPM2 ou usando um esquema de combinação. Quando o serviço é iniciado, as credenciais são descriptografadas automaticamente e ficam disponíveis para o serviço em sua forma normal. Para trabalhar com credenciais criptografadas, o utilitário 'systemd-creds' foi adicionado e as configurações LoadCredentialEncrypted e SetCredentialEncrypted foram propostas para serviços.
  • sd-stub, o executável EFI que permite que o firmware EFI carregue o kernel Linux, agora suporta a inicialização do kernel usando o protocolo EFI LINUX_EFI_INITRD_MEDIA_GUID. Também foi adicionada ao sd-stub a capacidade de empacotar credenciais e arquivos sysext em um arquivo cpio e transferir esse arquivo para o kernel junto com o initrd (arquivos adicionais são colocados no diretório /.extra/). Este recurso permite que você use um ambiente initrd imutável e verificável, complementado por sysexts e dados de autenticação criptografados.
  • A especificação Discoverable Partitions foi significativamente expandida, fornecendo ferramentas para identificar, montar e ativar partições do sistema usando GPT (GUID Partition Tables). Em comparação com versões anteriores, a especificação agora suporta a partição raiz e a partição /usr para a maioria das arquiteturas, incluindo plataformas que não usam UEFI.

    Discoverable Partitions também adiciona 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. O suporte à verificação está integrado a vários utilitários que manipulam imagens de disco, incluindo systemd-nspawn, systemd-sysext, systemd-dissect, serviços RootImage, systemd-tmpfiles e systemd-sysusers.

  • Para unidades que demoram muito para iniciar ou parar, além de exibir uma barra de progresso animada, é possível exibir informações de status que permitem entender o que exatamente está acontecendo com o serviço no momento e qual serviço o gestor do sistema está atualmente aguardando para ser concluído.
  • Adicionado o parâmetro DefaultOOMScoreAdjust a /etc/systemd/system.conf e /etc/systemd/user.conf, que permite ajustar o limite do OOM-killer para pouca memória, aplicável a processos que o systemd inicia para o sistema e usuários. Por padrão, o peso dos serviços do sistema é maior que o dos serviços do usuário, ou seja, Quando não há memória suficiente, a probabilidade de encerramento dos serviços do usuário é maior do que a do sistema.
  • 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 sistemas de arquivos disponíveis, você pode usar o comando “systemd-analyze filesystems”. Por analogia, 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 restringe o acesso de um grupo de processos aos objetos do kernel.
  • Adicionado um novo arquivo de configuração /etc/integritytab e um utilitário systemd-integritysetup que configura o módulo dm-integrity para controlar a integridade dos dados no nível do setor, por exemplo, para garantir a imutabilidade dos dados criptografados (Criptografia Autenticada, garante que um bloco de dados tenha não foi modificado de forma indireta). O formato do arquivo /etc/integritytab é semelhante aos arquivos /etc/crypttab e /etc/veritytab, exceto que dm-integrity é usado em vez de dm-crypt e dm-verity.
  • Um novo arquivo de unidade systemd-boot-update.service foi adicionado, quando ativado e o bootloader sd-boot estiver instalado, o systemd atualizará automaticamente a versão do bootloader sd-boot, mantendo o código do bootloader sempre atualizado. O próprio sd-boot agora é construído por padrão com suporte para o mecanismo SBAT (UEFI Secure Boot Advanced Targeting), que resolve problemas com revogação de certificado para UEFI Secure Boot. Além disso, o sd-boot oferece a capacidade de analisar as configurações de inicialização do Microsoft Windows para gerar corretamente os nomes das partições de inicialização do Windows e exibir a versão do Windows.

    O sd-boot também oferece a capacidade de definir um esquema de cores no momento da construção. Durante o processo de inicialização, foi adicionado suporte para alteração da resolução da tela pressionando a tecla “r”. Adicionada tecla de atalho “f” para acessar a interface de configuração do firmware. Adicionado um modo para inicializar automaticamente o sistema correspondente ao item de menu selecionado durante a última inicialização. Adicionada a capacidade de carregar automaticamente drivers EFI localizados no diretório /EFI/systemd/drivers/ na seção ESP (EFI System Partition).

  • Um novo arquivo de unidade factory-reset.target está incluído, que é processado no systemd-logind de maneira semelhante às operações de reinicialização, desligamento, suspensão e hibernação, e é usado para criar manipuladores para realizar uma redefinição de fábrica.
  • O processo resolvido pelo systemd agora cria um soquete de escuta adicional em 127.0.0.54 além de 127.0.0.53. As solicitações que chegam em 127.0.0.54 são sempre redirecionadas para um servidor DNS upstream e não são processadas localmente.
  • Forneceu a capacidade de construir systemd-importd e systemd-resolved com a biblioteca OpenSSL em vez de libgcrypt.
  • Adicionado suporte inicial para a arquitetura LoongArch usada em processadores Loongson.
  • systemd-gpt-auto-generator fornece a capacidade de configurar automaticamente partições swap definidas pelo sistema e criptografadas pelo subsistema LUKS2.
  • O código de análise de imagem GPT usado em systemd-nspawn, systemd-dissect e utilitários semelhantes implementa a capacidade de decodificar imagens para outras arquiteturas, permitindo que systemd-nspawn seja usado para executar imagens em emuladores de outras arquiteturas.
  • Ao inspecionar imagens de disco, o systemd-dissect agora exibe informações sobre a finalidade da partição, como adequação para inicialização via UEFI ou execução em um contêiner.
  • O campo “SYSEXT_SCOPE” foi adicionado aos arquivos system-extension.d/, permitindo indicar o escopo da imagem do sistema - “initrd”, “system” ou “portable”.
  • Um campo “PORTABLE_PREFIXES” foi adicionado ao arquivo os-release, que pode ser usado em imagens portáteis para determinar prefixos de arquivos de unidades suportados.
  • systemd-logind apresenta novas configurações HandlePowerKeyLongPress, HandleRebootKeyLongPress, HandleSuspendKeyLongPress e HandleHibernateKeyLongPress, que podem ser usadas para determinar o que acontece quando certas teclas são pressionadas por mais de 5 segundos (por exemplo, pressionar a tecla Suspender rapidamente pode ser configurado para entrar no modo de espera , e quando pressionado, ele irá dormir).
  • Para unidades, são implementadas as configurações StartupAllowedCPUs e StartupAllowedMemoryNodes, que diferem de configurações semelhantes sem o prefixo Startup porque são aplicadas apenas no estágio de inicialização e desligamento, o que permite definir outras restrições de recursos durante a inicialização.
  • Adicionadas verificações de pressão [Condição|Assert][Memória|CPU|IO] que permitem que a ativação da unidade seja ignorada ou falhe se o mecanismo PSI detectar uma carga pesada na memória, CPU e E/S no sistema.
  • O limite máximo de inodes padrão foi aumentado para a partição /dev de 64k para 1M e para a partição /tmp de 400k para 1M.
  • Para serviços foi proposta uma configuração ExecSearchPath, que permite alterar o caminho de busca de arquivos executáveis ​​​​iniciados por meio de configurações como ExecStart.
  • Adicionada a configuração RuntimeRandomizedExtraSec, que permite introduzir desvios aleatórios no tempo limite de RuntimeMaxSec, o que limita o tempo de execução de uma unidade.
  • A sintaxe das configurações RuntimeDirectory, StateDirectory, CacheDirectory e LogsDirectory foi ampliada, na qual, ao especificar um valor adicional separado por dois pontos, agora você pode organizar a criação de um link simbólico para um determinado diretório para organizar o acesso ao longo de vários caminhos.
  • Para serviços, as configurações TTYRows e TTYColumns são oferecidas para definir o número de linhas e colunas no dispositivo TTY.
  • Adicionada a configuração ExitType, que permite alterar a lógica para determinar o fim de um serviço. Por padrão, o systemd monitora apenas a morte do processo principal, mas se ExitType=cgroup estiver definido, o gerenciador do sistema aguardará a conclusão do último processo no cgroup.
  • A implementação do suporte TPM2/FIDO2/PKCS11 do systemd-cryptsetup agora também é construída como um plugin cryptsetup, permitindo que o comando cryptsetup normal seja usado para desbloquear uma partição criptografada.
  • O manipulador TPM2 em systemd-cryptsetup/systemd-cryptsetup adiciona suporte para chaves primárias RSA além de chaves ECC para melhorar a compatibilidade com chips não ECC.
  • A opção token-timeout foi adicionada ao /etc/crypttab, que permite definir o tempo máximo de espera por uma conexão de token PKCS#11/FIDO2, após o qual você será solicitado a inserir uma senha ou chave de recuperação.
  • systemd-timesyncd implementa a configuração SaveIntervalSec, que permite salvar periodicamente a hora atual do sistema no disco, por exemplo, para implementar um relógio monotônico em sistemas sem RTC.
  • Opções foram adicionadas ao utilitário systemd-analyze: “--image” e “--root” para verificar arquivos de unidade dentro de uma determinada imagem ou diretório raiz, “--recursive-errors” para levar em consideração unidades dependentes quando um erro é detectado, “--offline” para verificar arquivos de unidade separados salvos no disco, “—json” para saída no formato JSON, “—quiet” para desabilitar mensagens sem importância, “—profile” para vincular a um perfil portátil. Também foi adicionado o comando inspecionar-elf para analisar arquivos principais no formato ELF e a capacidade de verificar arquivos de unidade com um determinado nome de unidade, independentemente de esse nome corresponder ao nome do arquivo.
  • systemd-networkd expandiu o suporte para o barramento Controller Area Network (CAN). Adicionadas configurações para controlar os modos CAN: Loopback, OneShot, PresumeAck e ClassicDataLengthCode. Adicionadas opções TimeQuantaNSec, PropagationSegment, PhaseBufferSegment1, PhaseBufferSegment2, SyncJumpWidth, DataTimeQuantaNSec, DataPropagationSegment, DataPhaseBufferSegment1, DataPhaseBufferSegment2 e DataSyncJumpWidth à seção [CAN] dos arquivos .network para controlar a sincronização de bits da interface CAN.
  • Systemd-networkd adicionou uma opção Label para o cliente DHCPv4, que permite configurar o rótulo de endereço usado ao configurar endereços IPv4.
  • systemd-udevd para "ethtool" implementa suporte para valores "máximos" especiais que definem o tamanho do buffer para o valor máximo suportado pelo hardware.
  • Nos arquivos .link para systemd-udevd agora você pode configurar vários parâmetros para combinar adaptadores de rede e conectar manipuladores de hardware (offload).
  • systemd-networkd oferece novos arquivos .network por padrão: 80-container-vb.network para definir pontes de rede criadas ao executar systemd-nspawn com as opções “--network-bridge” ou “--network-zone”; 80-6rd-tunnel.network para definir túneis que são criados automaticamente ao receber uma resposta DHCP com a opção 6RD.
  • Systemd-networkd e systemd-udevd adicionaram suporte para encaminhamento de IP através de interfaces InfiniBand, para as quais a seção “[IPoIB]” foi adicionada aos arquivos systemd.netdev, e o processamento do valor “ipoib” foi implementado no tipo contexto.
  • systemd-networkd fornece configuração automática de rotas para endereços especificados no parâmetro AllowedIPs, que pode ser configurado por meio dos parâmetros RouteTable e RouteMetric nas seções [WireGuard] e [WireGuardPeer].
  • systemd-networkd fornece geração automática de endereços MAC inalterados para as interfaces batadv e bridge. Para desabilitar esse comportamento, você pode especificar MACAddress=none em arquivos .netdev.
  • Uma configuração WakeOnLanPassword foi adicionada aos arquivos .link na seção “[Link]” para determinar a senha quando o WoL está sendo executado no modo “SecureOn”.
  • Adicionadas configurações de AutoRateIngress, CompensationMode, FlowIsolationMode, NAT, MPUBytes, PriorityQueueingPreset, FirewallMark, Wash, SplitGSO e UseRawPacketSize à seção “[CAKE]” dos arquivos .network para definir os parâmetros do mecanismo de gerenciamento de filas de rede CAKE (Common Applications Kept Enhanced) .
  • Adicionada uma configuração IgnoreCarrierLoss à seção "[Rede]" dos arquivos .network, permitindo determinar quanto tempo esperar antes de reagir a uma perda de sinal da portadora.
  • Systemd-nspawn, homectl, machinectl e systemd-run estenderam a sintaxe do parâmetro "--setenv" - se apenas o nome da variável for especificado (sem "="), o valor será obtido da variável de ambiente correspondente (para Por exemplo, ao especificar "--setenv=FOO" o valor será retirado da variável de ambiente $FOO e usado na variável de ambiente de mesmo nome definida no contêiner).
  • systemd-nspawn adicionou uma opção "--suppress-sync" para desabilitar chamadas de sistema sync()/fsync()/fdatasync() ao criar um contêiner (útil quando a velocidade é uma prioridade e preservar artefatos de construção em caso de falha não é importante, pois podem ser recriados a qualquer momento).
  • Foi adicionado um novo banco de dados hwdb, que inclui 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 com informações sobre o tipo de câmera (normal ou infravermelha) e posicionamento da lente (frontal ou traseira).
  • Geração habilitada de nomes de interface de rede inalteráveis ​​para dispositivos netfront usados ​​no Xen.
  • A análise dos arquivos principais pelo utilitário systemd-coredump baseado nas bibliotecas libdw/libelf agora é realizada em um processo separado, isolado em um ambiente sandbox.
  • systemd-importd adicionou suporte para as variáveis ​​de ambiente $SYSTEMD_IMPORT_BTRFS_SUBVOL, $SYSTEMD_IMPORT_BTRFS_QUOTA, $SYSTEMD_IMPORT_SYNC, com as quais você pode desabilitar a geração de subpartições Btrfs, bem como configurar cotas e sincronização de disco.
  • No systemd-journald, em sistemas de arquivos que suportam o modo copy-on-write, o modo COW é reativado para diários arquivados, permitindo que eles sejam compactados usando Btrfs.
  • systemd-journald implementa a desduplicação de campos idênticos em uma única mensagem, que é realizada antes de colocar a mensagem no diário.
  • Adicionada opção "--show" ao comando shutdown para exibir o desligamento programado.

Fonte: opennet.ru

Adicionar um comentário