gerenciador de sistema systemd versão 248

Após quatro meses de desenvolvimento, é apresentado o lançamento do gerenciador de sistema systemd 248. O novo lançamento oferece suporte a imagens para expansão de diretórios do sistema, o arquivo de configuração /etc/veritytab, o utilitário systemd-cryptenroll, desbloqueio de LUKS2 usando chips TPM2 e FIDO2 tokens, unidades em execução em um espaço identificador IPC isolado, protocolo BATMAN para redes mesh, back-end nftables para systemd-nspawn. Systemd-oomd foi estabilizado.

Grandes mudanças:

  • Foi implementado o conceito de imagens de extensão do sistema, que podem ser usadas para estender a hierarquia dos diretórios /usr/ e /opt/ e adicionar arquivos adicionais em tempo de execução, mesmo se os diretórios especificados forem montados como somente leitura. Quando uma imagem de extensão do sistema é montada, seu conteúdo é sobreposto na hierarquia /usr/ e /opt/ usando OverlayFS.

    Um novo utilitário, systemd-sysext, foi proposto para conectar, desconectar, visualizar e atualizar imagens de extensões de sistema. Para conectar automaticamente imagens já instaladas durante a inicialização, o serviço systemd-sysext.service foi adicionado. Adicionado o parâmetro "SYSEXT_LEVEL=" ao arquivo os-release para determinar o nível de extensões de sistema suportadas.

  • Para unidades, foi implementada a configuração ExtensionImages, que pode ser usada para vincular imagens de extensão do sistema à hierarquia de namespace FS de serviços isolados individuais.
  • Adicionado arquivo de configuração /etc/veritytab para configurar a verificação de dados no nível do bloco usando o módulo dm-verity. O formato do arquivo é semelhante a /etc/crypttab - “section_name device_for_data device_for_hashes check_hash_root opções”. Adicionada opção de linha de comando do kernel systemd.verity.root_options para configurar o comportamento dm-verity para o dispositivo raiz.
  • systemd-cryptsetup adiciona a capacidade de extrair o URI do token PKCS#11 e a chave criptografada do cabeçalho de metadados LUKS2 no formato JSON, permitindo que informações sobre a abertura de um dispositivo criptografado sejam integradas ao próprio dispositivo sem envolver arquivos externos.
  • systemd-cryptsetup fornece suporte para desbloquear partições criptografadas LUKS2 usando chips TPM2 e tokens FIDO2, além de tokens PKCS#11 suportados anteriormente. O carregamento da libfido2 é feito via dlopen(), ou seja, a disponibilidade é verificada instantaneamente, e não como uma dependência física.
  • Novas opções "no-write-workqueue" e "no-read-workqueue" foram adicionadas ao /etc/crypttab para systemd-cryptsetup para permitir o processamento síncrono de E/S associado à criptografia e descriptografia.
  • O utilitário systemd-repart adicionou a capacidade de ativar partições criptografadas usando chips TPM2, por exemplo, para criar uma partição /var criptografada na primeira inicialização.
  • O utilitário systemd-cryptenroll foi adicionado para vincular tokens TPM2, FIDO2 e PKCS#11 a partições LUKS, bem como para liberar e visualizar tokens, vincular chaves sobressalentes e definir uma senha para acesso.
  • Adicionado o parâmetro PrivateIPC, que permite configurar o arquivo da unidade para executar processos em um espaço IPC isolado com seus próprios identificadores separados e fila de mensagens. Para conectar uma unidade a um espaço identificador IPC já criado, é proposta a opção IPCNamespacePath.
  • Adicionadas configurações de ExecPaths e NoExecPaths para permitir que o sinalizador noexec seja aplicado a partes específicas do sistema de arquivos.
  • systemd-networkd adiciona suporte ao protocolo mesh BATMAN (Better Approach To Mobile Adhoc Networking), que permite a criação de redes descentralizadas nas quais cada nó é conectado através de nós vizinhos. Para configuração, são propostas a seção [BatmanAdvanced] em .netdev, o parâmetro BatmanAdvanced em arquivos .network e um novo tipo de dispositivo “batadv”.
  • A implementação do mecanismo de resposta antecipada para pouca memória no sistema systemd-oomd foi estabilizada. Adicionada a opção DefaultMemoryPressureDurationSec para configurar o tempo de espera para que um recurso seja liberado antes de afetar uma unidade. Systemd-oomd usa o subsistema do kernel PSI (Pressure Stall Information) e permite detectar o início de atrasos devido à falta de recursos e encerrar seletivamente processos que consomem muitos recursos em um estágio em que o sistema ainda não está em um estado crítico e não comece a cortar intensamente o cache e deslocar os dados para a partição swap.
  • Adicionado parâmetro de linha de comando do kernel “root = tmpfs”, que permite montar a partição raiz em armazenamento temporário localizado na RAM usando Tmpfs.
  • O parâmetro /etc/crypttab que especifica o arquivo de chave agora pode apontar para os tipos de soquete AF_UNIX e SOCK_STREAM. Neste caso, a chave deve ser fornecida na conexão ao soquete, que, por exemplo, pode ser usado para criar serviços que emitem chaves dinamicamente.
  • O nome do host substituto para uso pelo gerenciador do sistema e systemd-hostnamed agora pode ser definido de duas maneiras: por meio do parâmetro DEFAULT_HOSTNAME no os-release e por meio da variável de ambiente $SYSTEMD_DEFAULT_HOSTNAME. systemd-hostnamed também lida com "localhost" no nome do host e adiciona a capacidade de exportar o nome do host, bem como as propriedades "HardwareVendor" e "HardwareModel" via DBus.
  • O bloco com variáveis ​​de ambiente expostas agora pode ser configurado através da nova opção ManagerEnvironment em system.conf ou user.conf, e não apenas através da linha de comando do kernel e das configurações do arquivo de unidade.
  • Em tempo de compilação, é possível usar a chamada de sistema fexecve() para iniciar processos em vez de execve() para reduzir o atraso entre a verificação do contexto de segurança e sua aplicação.
  • Para arquivos de unidade, novas operações condicionais ConditionSecurity=tpm2 e ConditionCPUFeature foram adicionadas para verificar a presença de dispositivos TPM2 e recursos de CPU individuais (por exemplo, ConditionCPUFeature=rdrand pode ser usado para verificar se o processador suporta a operação RDRAND).
  • Para os kernels disponíveis, foi implementada a geração automática de tabelas de chamadas do sistema para filtros seccomp.
  • Adicionada a capacidade de substituir novas montagens de ligação em namespaces de montagem de serviços existentes, sem reiniciar os serviços. A substituição é realizada com os comandos 'systemctl bind ...' e 'systemctl imagem de montagem …'.
  • Adicionado suporte para especificar caminhos nas configurações StandardOutput e StandardError no formato “truncate: » para limpeza antes do uso.
  • Adicionada a capacidade de estabelecer uma conexão com a sessão de um usuário específico dentro de um contêiner local ao barramento SD. Por exemplo "systemctl -user -M lennart@ start quux".
  • Os seguintes parâmetros são implementados nos arquivos systemd.link na seção [Link]:
    • Promíscuo - permite alternar o dispositivo para o modo “promíscuo” para processar todos os pacotes de rede, inclusive aqueles não endereçados ao sistema atual;
    • TransmitQueues e ReceiveQueues para configuração do número de filas TX e RX;
    • TransmitQueueLength para definir o tamanho da fila TX; GenericSegmentOffloadMaxBytes e GenericSegmentOffloadMaxSegment para definição de limites de uso da tecnologia GRO (Generic Receive Offload).
  • Novas configurações foram adicionadas aos arquivos systemd.network:
    • [Rede] RouteTable para selecionar uma tabela de roteamento;
    • [RoutingPolicyRule] Tipo para o tipo de roteamento ("blackhole, "unreachable", "prohibit");
    • [IPv6AcceptRA] RouteDenyList e RouteAllowList para listas de anúncios de rotas permitidas e negadas;
    • [DHCPv6] UseAddres para ignorar o endereço emitido pelo DHCP;
    • [DHCPv6PrefixDelegation] ManageTemporaryAddress;
    • ActivationPolicy para definir a política relativa à atividade da interface (sempre manter o estado UP ou DOWN ou permitir que o usuário altere os estados com o comando “ip link set dev”).
  • Adicionadas opções de protocolo [VLAN], IngressQOSMaps, EgressQOSMaps e [MACVLAN] BroadcastMulticastQueueLength aos arquivos systemd.netdev para configurar o tratamento de pacotes VLAN.
  • Interrompida a montagem do diretório /dev/ no modo noexec, pois causa um conflito ao usar o sinalizador executável com arquivos /dev/sgx. Para retornar o comportamento antigo, você pode usar a configuração NoExecPaths=/dev.
  • As permissões do arquivo /dev/vsock foram alteradas para 0o666 e os arquivos /dev/vhost-vsock e /dev/vhost-net foram movidos para o grupo kvm.
  • O banco de dados de ID de hardware foi expandido com leitores de impressão digital USB que suportam corretamente o modo de suspensão.
  • suporte adicionado resolvido pelo systemd para emissão de respostas a consultas DNSSEC por meio de um resolvedor stub. Os clientes locais podem realizar a validação DNSSEC por si próprios, enquanto os clientes externos são enviados por proxy inalterados para o servidor DNS pai.
  • Adicionada a opção CacheFromLocalhost ao resolve.conf, quando definida, o systemd-resolved usará o cache mesmo para chamadas para o servidor DNS em 127.0.0.1 (por padrão, o cache de tais solicitações é desabilitado para evitar o cache duplo).
  • systemd-resolved adiciona suporte para NSIDs RFC-5001 no resolvedor DNS local, permitindo que os clientes diferenciem as interações com o resolvedor local e outro servidor DNS.
  • O utilitário resolvectl implementa a capacidade de exibir informações sobre a origem dos dados (cache local, solicitação de rede, resposta do processador local) e o uso de criptografia na transmissão de dados. As opções --cache, --synthesize, --network, --zone, --trust-anchor e --validate são fornecidas para controlar o processo de determinação de nome.
  • systemd-nspawn adiciona suporte para configurar um firewall usando nftables, além do suporte existente para iptables. A configuração do IPMasquerade no systemd-networkd adicionou a capacidade de usar um back-end baseado em nftables.
  • systemd-localed adicionou suporte para chamar locale-gen para gerar localidades ausentes.
  • As opções --pager/-no-pager/-json= foram adicionadas a vários utilitários para ativar/desativar o modo de paginação e saída no formato JSON. Adicionada a capacidade de definir o número de cores usadas no terminal através da variável de ambiente SYSTEMD_COLORS (“16” ou “256”).
  • A compilação com hierarquias de diretórios separadas (split / e /usr) e suporte ao cgroup v1 foram descontinuadas.
  • O branch master no Git foi renomeado de ‘master’ para ‘main’.

Fonte: opennet.ru

Adicionar um comentário