Systemd System Manager versión 248

Despois de catro meses de desenvolvemento, preséntase a versión do xestor do sistema systemd 248. A nova versión ofrece soporte para imaxes para ampliar os directorios do sistema, o ficheiro de configuración /etc/veritytab, a utilidade systemd-cryptenroll, desbloquear LUKS2 usando chips TPM2 e FIDO2. tokens, unidades en execución nun espazo de identificador IPC illado, protocolo BATMAN para redes de malla, backend nftables para systemd-nspawn. Systemd-oomd estabilizouse.

Principais cambios:

  • Implementouse o concepto de imaxes de extensión do sistema, que se pode usar para estender a xerarquía dos directorios /usr/ e /opt/ e engadir ficheiros adicionais en tempo de execución, aínda que os directorios especificados estean montados de só lectura. Cando se monta unha imaxe de extensión do sistema, o seu contido superponse na xerarquía /usr/ e /opt/ mediante OverlayFS.

    Propúxose unha nova utilidade, systemd-sysext, para conectar, desconectar, ver e actualizar imaxes das extensións do sistema. Para conectar automaticamente as imaxes xa instaladas durante o arranque, engadiuse o servizo systemd-sysext.service. Engadiuse o parámetro "SYSEXT_LEVEL=" ao ficheiro de versión do sistema operativo para determinar o nivel de extensións do sistema compatibles.

  • Para as unidades, implementouse a configuración ExtensionImages, que se pode usar para vincular imaxes de extensións do sistema á xerarquía de espazos de nomes FS dos servizos illados individuais.
  • Engadiuse o ficheiro de configuración /etc/veritytab para configurar a verificación de datos a nivel de bloque mediante o módulo dm-verity. O formato de ficheiro é semellante ao /etc/crypttab - "section_name device_for_data device_for_hashes check_hash_root options". Engadiuse a opción de liña de comandos do kernel systemd.verity.root_options para configurar o comportamento dm-verity para o dispositivo raíz.
  • systemd-cryptsetup engade a posibilidade de extraer o URI do token PKCS#11 e a clave cifrada da cabeceira de metadatos LUKS2 en formato JSON, o que permite que a información sobre a apertura dun dispositivo cifrado se integre no propio dispositivo sen implicar ficheiros externos.
  • systemd-cryptsetup ofrece soporte para desbloquear particións cifradas LUKS2 mediante chips TPM2 e tokens FIDO2, ademais dos tokens PKCS#11 admitidos anteriormente. A carga de libfido2 faise a través de dlopen(), é dicir. a dispoñibilidade compróbase sobre a marcha, en lugar de como unha dependencia cableada.
  • Engadíronse novas opcións "no-write-workqueue" e "no-read-workqueue" a /etc/crypttab para systemd-cryptsetup para permitir o procesamento sincrónico de E/S asociado co cifrado e descifrado.
  • A utilidade systemd-repart engadiu a posibilidade de activar particións cifradas usando chips TPM2, por exemplo, para crear unha partición cifrada /var no primeiro arranque.
  • Engadiuse a utilidade systemd-cryptenroll para vincular tokens TPM2, FIDO2 e PKCS#11 ás particións LUKS, así como para desfixar e ver tokens, vincular claves de reserva e establecer un contrasinal para o acceso.
  • Engadiuse o parámetro PrivateIPC, que lle permite configurar o ficheiro da unidade para executar procesos nun espazo IPC illado cos seus propios identificadores e fila de mensaxes separados. Para conectar unha unidade a un espazo de identificador IPC xa creado, proponse a opción IPCNamespacePath.
  • Engadíronse a configuración de ExecPaths e NoExecPaths para permitir que a marca noexec se aplique a partes específicas do sistema de ficheiros.
  • systemd-networkd engade soporte para o protocolo de malla BATMAN (Better Approach To Mobile Adhoc Networking), que permite a creación de redes descentralizadas nas que cada nodo está conectado a través de nós veciños. Para a configuración, propóñense a sección [BatmanAdvanced] en .netdev, o parámetro BatmanAdvanced en ficheiros .network e un novo tipo de dispositivo "batadv".
  • Estabilizouse a implementación do mecanismo de resposta temperá para a memoria baixa no sistema systemd-oomd. Engadiuse a opción DefaultMemoryPressureDurationSec para configurar o tempo de espera para que se libere un recurso antes de afectar unha unidade. Systemd-oomd usa o subsistema do núcleo PSI (Pressure Stall Information) e permítelle detectar a aparición de atrasos debido á falta de recursos e finalizar selectivamente os procesos de uso intensivo de recursos nunha fase na que o sistema aínda non está nun estado crítico e non comezar a recortar intensamente a caché e desprazar os datos na partición de intercambio.
  • Engadiuse o parámetro da liña de comandos do núcleo "root=tmpfs", que lle permite montar a partición raíz no almacenamento temporal situado na RAM usando Tmpfs.
  • O parámetro /etc/crypttab que especifica o ficheiro de chave agora pode apuntar aos tipos de socket AF_UNIX e SOCK_STREAM. Neste caso, a chave débese dar ao conectarse ao socket, que, por exemplo, se pode utilizar para crear servizos que emitan chaves de forma dinámica.
  • O nome de host alternativo para o seu uso polo xestor do sistema e o nome de host systemd agora pódese establecer de dúas formas: mediante o parámetro DEFAULT_HOSTNAME na versión do sistema operativo e a través da variable de ambiente $SYSTEMD_DEFAULT_HOSTNAME. systemd-hostnamed tamén xestiona "localhost" no nome de host e engade a posibilidade de exportar o nome de host, así como as propiedades "HardwareVendor" e "HardwareModel" a través de DBus.
  • O bloque con variables de ambiente expostas agora pódese configurar a través da nova opción ManagerEnvironment en system.conf ou user.conf, e non só a través da liña de comandos do núcleo e da configuración do ficheiro da unidade.
  • No momento da compilación, é posible utilizar a chamada ao sistema fexecve() para iniciar procesos en lugar de execve() para reducir o atraso entre a comprobación do contexto de seguridade e a súa aplicación.
  • Para ficheiros de unidade, engadíronse novas operacións condicionais ConditionSecurity=tpm2 e ConditionCPUFeature para comprobar a presenza de dispositivos TPM2 e capacidades individuais da CPU (por exemplo, ConditionCPUFeature=rdrand pódese usar para comprobar se o procesador admite a operación RDRAND).
  • Para os núcleos dispoñibles, implementouse a xeración automática de táboas de chamadas ao sistema para filtros seccomp.
  • Engadiuse a posibilidade de substituír novas montaxes de enlace nos espazos de nomes de montaxe existentes dos servizos, sen reiniciar os servizos. A substitución realízase cos comandos 'systemctl bind ...' e 'systemctl mount-image …'.
  • Engadiuse compatibilidade para especificar camiños na configuración de StandardOutput e StandardError no formulario "truncar: » para limpar antes do uso.
  • Engadiuse a posibilidade de establecer unha conexión coa sesión dun usuario especificado dentro dun contedor local a sd-bus. Por exemplo "systemctl -user -M lennart@ start quux".
  • Os seguintes parámetros están implementados nos ficheiros systemd.link na sección [Ligazón]:
    • Promiscuo: permítelle cambiar o dispositivo ao modo "promiscuo" para procesar todos os paquetes de rede, incluídos os que non están dirixidos ao sistema actual;
    • TransmitQueues e ReceiveQueues para establecer o número de colas de TX e RX;
    • TransmitQueueLength para definir o tamaño da cola TX; GenericSegmentOffloadMaxBytes e GenericSegmentOffloadMaxSegment para establecer límites para o uso da tecnoloxía GRO (Generic Receive Offload).
  • Engadíronse novas configuracións aos ficheiros systemd.network:
    • [Rede] RouteTable para seleccionar unha táboa de enrutamento;
    • [RoutingPolicyRule] Tipo para o tipo de enrutamento ("buco negro, "inalcanzable", "prohibir");
    • [IPv6AcceptRA] RouteDenyList e RouteAllowList para listas de anuncios de rutas permitidas e denegadas;
    • [DHCPv6] UseAddress para ignorar o enderezo emitido por DHCP;
    • [DHCPv6PrefixDelegation] ManageTemporaryAddress;
    • ActivationPolicy para definir a política relativa á actividade da interface (manteña sempre o estado UP ou DOWN ou permita ao usuario cambiar de estado co comando "ip link set dev").
  • Engadíronse as opcións [VLAN] Protocol, IngressQOSMaps, EgressQOSMaps e [MACVLAN] BroadcastMulticastQueueLength aos ficheiros systemd.netdev para configurar o procesamento de paquetes VLAN.
  • Deixou de montar o directorio /dev/ no modo noexec xa que provoca un conflito ao usar a marca executable con ficheiros /dev/sgx. Para devolver o comportamento antigo, pode usar a configuración NoExecPaths=/dev.
  • Os permisos do ficheiro /dev/vsock mudáronse a 0o666 e os ficheiros /dev/vhost-vsock e /dev/vhost-net movéronse ao grupo kvm.
  • A base de datos de ID de hardware ampliouse con lectores de pegadas dixitais USB que admiten correctamente o modo de suspensión.
  • systemd-resolved engadiu soporte para emitir respostas a consultas DNSSEC mediante un resolvedor de stub. Os clientes locais poden realizar a validación DNSSEC por si mesmos, mentres que os clientes externos son enviados sen cambios ao servidor DNS principal.
  • Engadida a opción CacheFromLocalhost a resolved.conf, cando se establece, systemd-resolved usará a caché incluso para as chamadas ao servidor DNS en 127.0.0.1 (de forma predeterminada, o almacenamento en caché deste tipo de solicitudes está desactivado para evitar o dobre caché).
  • systemd-resolved engade soporte para os NSID RFC-5001 no resolvedor DNS local, o que permite aos clientes diferenciar as interaccións co resolvedor local e outro servidor DNS.
  • A utilidade resolvectl implementa a capacidade de mostrar información sobre a fonte de datos (caché local, solicitude de rede, resposta do procesador local) e o uso do cifrado ao transmitir datos. As opcións --cache, --synthesize, --network, --zone, --trust-anchor e --validate preséntanse para controlar o proceso de determinación do nome.
  • systemd-nspawn engade soporte para configurar un firewall usando nftables ademais do soporte existente para iptables. A configuración de IPMasquerade en systemd-networkd engadiu a posibilidade de usar un backend baseado en nftables.
  • systemd-localed engadiu soporte para chamar a locale-gen para xerar locais que faltan.
  • Engadíronse as opcións --pager/-no-pager/-json= a varias utilidades para activar/desactivar o modo de paginación e a saída en formato JSON. Engadida a posibilidade de establecer o número de cores utilizadas no terminal mediante a variable de ambiente SYSTEMD_COLORS ("16" ou "256").
  • A compilación con xerarquías de directorios separadas (split / e /usr) e compatibilidade con cgroup v1 quedou en desuso.
  • A rama mestra en Git cambiou o nome de "mestra" a "principal".

Fonte: opennet.ru

Engadir un comentario