versión 243 del administrador del sistema systemd

Después de cinco meses de desarrollo presentado lanzamiento del administrador del sistema systemd 243. Entre las innovaciones, podemos destacar la integración en PID 1 de un controlador para poca memoria en el sistema, soporte para adjuntar sus propios programas BPF para filtrar el tráfico de la unidad, numerosas opciones nuevas para systemd-networkd, un modo para monitorear el ancho de banda de la red. interfaces, habilitando de forma predeterminada en sistemas de 64 bits números PID de 22 bits en lugar de 16 bits, transición a una jerarquía de cgroups unificada, inclusión en systemd-network-generator.

Cambios importantes:

  • Se ha agregado el reconocimiento de señales generadas por el kernel sobre falta de memoria (Out-Of-Memory, OOM) al controlador PID 1 para transferir unidades que han alcanzado el límite de consumo de memoria a un estado especial con la capacidad opcional de forzar su terminación. o detenerse;
  • Para archivos unitarios, nuevos parámetros IPIngressFilterPath y
    IPEgressFilterPath, que le permite conectar programas BPF con controladores arbitrarios para filtrar paquetes IP entrantes y salientes generados por procesos asociados con esta unidad. Las funciones propuestas le permiten crear una especie de firewall para los servicios systemd. Ejemplo de escritura un filtro de red simple basado en BPF;

  • El comando "limpiar" se ha agregado a la utilidad systemctl para eliminar el caché, los archivos de ejecución, la información de estado y los directorios de registro;
  • systemd-networkd agrega soporte para interfaces de red MACsec, nlmon, IPVTAP y Xfrm;
  • systemd-networkd implementa una configuración separada de las pilas DHCPv4 y DHCPv6 a través de las secciones “[DHCPv4]” y “[DHCPv6]” en el archivo de configuración. Se agregó la opción RoutesToDNS para agregar una ruta separada al servidor DNS especificado en los parámetros recibidos del servidor DHCP (para que el tráfico al DNS se envíe a través del mismo enlace que la ruta principal recibida del DHCP). Se han agregado nuevas opciones para DHCPv4: MaxAttempts: número máximo de solicitudes para obtener una dirección, BlackList: lista negra de servidores DHCP, SendRelease: permite enviar mensajes DHCP RELEASE cuando finaliza la sesión;
  • Se han agregado nuevos comandos a la utilidad systemd-analyze:
    • “systemd-analyze timestamp”: análisis y conversión de tiempo;
    • “systemd-analyze timespan”: análisis y conversión de períodos de tiempo;
    • “systemd-analyze condition”: analiza y prueba expresiones ConditionXYZ;
    • “systemd-analyze exit-status”: analiza y convierte códigos de salida de números a nombres y viceversa;
    • "systemd-analyze unit-files": enumera todas las rutas de archivos para unidades y alias de unidades.
  • Opciones SuccessExitStatus, RestartPreventExitStatus y
    RestartForceExitStatus ahora admite no sólo códigos de retorno numéricos, sino también sus identificadores de texto (por ejemplo, "DATAERR"). Puede ver la lista de códigos asignados a identificadores utilizando el comando "sytemd-analyze exit-status";

  • El comando "eliminar" se ha agregado a la utilidad networkctl para eliminar dispositivos de red virtuales, así como la opción "—stats" para mostrar estadísticas de dispositivos;
  • Las configuraciones SpeedMeter y SpeedMeterIntervalSec se han agregado a networkd.conf para medir periódicamente el rendimiento de las interfaces de red. Las estadísticas obtenidas de los resultados de la medición se pueden ver en la salida del comando 'networkctl status';
  • Se agregó una nueva utilidad systemd-network-generator para generar archivos.
    .network, .netdev y .link basados ​​en la configuración de IP pasada cuando se inicia a través de la línea de comando del kernel de Linux en el formato de configuración de Dracut;

  • El valor sysctl "kernel.pid_max" en sistemas de 64 bits ahora está configurado de forma predeterminada en 4194304 (PID de 22 bits en lugar de 16 bits), lo que reduce la probabilidad de colisiones al asignar PID y aumenta el límite en el número de PID simultáneos. procesos en ejecución y tiene un impacto positivo en la seguridad. El cambio podría generar problemas de compatibilidad, pero dichos problemas aún no se han informado en la práctica;
  • De forma predeterminada, la etapa de compilación cambia a la jerarquía unificada cgroups-v2 (“-Ddefault-hierarchy=unified”). Anteriormente, el modo predeterminado era el modo híbrido (“-Ddefault-hierarchy=hybrid”);
  • Se ha modificado el comportamiento del filtro de llamadas del sistema (SystemCallFilter), que en el caso de una llamada prohibida al sistema ahora finaliza todo el proceso, en lugar de subprocesos individuales, ya que la finalización de subprocesos individuales podría provocar problemas impredecibles. Los cambios solo se aplican si tiene el kernel de Linux 4.14+ y libseccomp 2.4.0+;
  • Los programas sin privilegios tienen la capacidad de enviar paquetes ICMP Echo (ping) configurando sysctl "net.ipv4.ping_group_range" para toda la gama de grupos (para todos los procesos);
  • Para acelerar el proceso de compilación, la generación de manuales man se detuvo de forma predeterminada (para compilar la documentación completa, debe usar la opción “-Dman=true” o “-Dhtml=true” para manuales en formato html). Para facilitar la visualización de la documentación, se incluyen dos scripts: build/man/man y build/man/html para generar y previsualizar manuales de interés;
  • Para procesar nombres de dominio con caracteres de alfabetos nacionales, se utiliza la biblioteca libidn2 de forma predeterminada (para devolver libidn, utilice la opción “-Dlibidn=true”);
  • Se ha descontinuado el soporte para el archivo ejecutable /usr/sbin/halt.local, que proporcionaba una funcionalidad que no estaba ampliamente distribuida en las distribuciones. Para organizar el lanzamiento de comandos al apagar, se recomienda utilizar scripts en /usr/lib/systemd/system-shutdown/ o definir una nueva unidad que dependa de final.target;
  • En la última etapa del apagado, systemd ahora aumenta automáticamente el nivel de registro en sysctl “kernel.printk”, lo que resuelve el problema de mostrar en el registro los eventos que ocurrieron en las últimas etapas del apagado, cuando los demonios de registro regulares ya se han completado. ;
  • En journalctl y otras utilidades que muestran registros, las advertencias se resaltan en amarillo y los registros de auditoría se resaltan en azul para resaltarlos visualmente entre la multitud;
  • En la variable de entorno $PATH, la ruta a bin/ ahora viene antes de la ruta a sbin/, es decir si hay nombres idénticos de archivos ejecutables en ambos directorios, se ejecutará el archivo de bin/;
  • systemd-logind proporciona una llamada a SetBrightness() para cambiar de forma segura el brillo de la pantalla por sesión;
  • Se agregó el indicador “--wait-for-initialization” al comando “udevadm info” para esperar a que se inicialice el dispositivo;
  • Durante el inicio del sistema, el controlador PID 1 ahora muestra los nombres de las unidades en lugar de una línea con su descripción. Para volver al comportamiento anterior, puede utilizar la opción StatusUnitFormat en /etc/systemd/system.conf o la opción del kernel systemd.status_unit_format;
  • Se agregó la opción KExecWatchdogSec a /etc/systemd/system.conf para el PID de vigilancia 1, que especifica el tiempo de espera para reiniciar usando kexec. antiguo entorno
    Se cambió el nombre de ShutdownWatchdogSec a RebootWatchdogSec y define un tiempo de espera para los trabajos durante el apagado o el reinicio normal;

  • Se ha agregado una nueva opción para los servicios. Condición ejecutiva, que le permite especificar comandos que se ejecutarán antes de ExecStartPre. Según el código de error devuelto por el comando, se toma una decisión sobre la ejecución adicional de la unidad: si se devuelve el código 0, el lanzamiento de la unidad continúa, si del 1 al 254 termina silenciosamente sin un indicador de falla, si 255 termina con una bandera de falla;
  • Se agregó un nuevo servicio systemd-pstore.service para extraer datos de sys/fs/pstore/ y guardarlos en /var/lib/pstore para su posterior análisis;
  • Se han agregado nuevos comandos a la utilidad timedatectl para configurar los parámetros NTP para systemd-timesyncd en relación con las interfaces de red;
  • El comando "localectl list-locales" ya no muestra configuraciones regionales distintas de UTF-8;
  • Garantiza que los errores de asignación de variables en archivos sysctl.d/ se ignoren si el nombre de la variable comienza con el carácter "-";
  • Servicio systemd-random-seed.servicio ahora es totalmente responsable de inicializar el grupo de entropía del generador de números pseudoaleatorios del kernel de Linux. Los servicios que requieren un /dev/urandom correctamente inicializado deben iniciarse después de systemd-random-seed.service;
  • El cargador de arranque systemd-boot proporciona la capacidad opcional de admitir archivo semilla con secuencia aleatoria en la Partición del Sistema EFI (ESP);
  • Se han agregado nuevos comandos a la utilidad bootctl: "bootctl random-seed" para generar un archivo semilla en el ESP y "bootctl is-installed" para verificar la instalación del cargador de arranque systemd-boot. bootctl también se ha ajustado para mostrar advertencias sobre la configuración incorrecta de las entradas de arranque (por ejemplo, cuando se elimina la imagen del kernel, pero se deja la entrada para cargarla);
  • Proporciona selección automática de la partición de intercambio cuando el sistema entra en modo de suspensión. La partición se selecciona en función de la prioridad configurada para ella y, en caso de prioridades idénticas, de la cantidad de espacio libre;
  • Se agregó la opción de tiempo de espera de archivo de claves a /etc/crypttab para establecer cuánto tiempo esperará el dispositivo con la clave de cifrado antes de solicitar una contraseña para acceder a la partición cifrada;
  • Se agregó la opción IOWeight para configurar el peso de E/S para el programador BFQ;
  • systemd-resolved agregó el modo 'estricto' para DNS sobre TLS e implementó la capacidad de almacenar en caché solo respuestas DNS positivas ("Caché no negativo" en resolve.conf);
  • Para VXLAN, systemd-networkd ha agregado una opción GenericProtocolExtension para habilitar las extensiones del protocolo VXLAN. Para VXLAN y GENEVE, se agregó la opción IPDoNotFragment para configurar el indicador de prohibición de fragmentación para paquetes salientes;
  • En systemd-networkd, en la sección “[Ruta]”, ha aparecido la opción FastOpenNoCookie para habilitar el mecanismo de apertura rápida de conexiones TCP (TFO - TCP Fast Open, RFC 7413) en relación a rutas individuales, así como la opción TTLPropagate para configurar TTL LSP (Ruta conmutada por etiqueta). La opción "Tipo" brinda soporte para los modos de enrutamiento local, transmisión, anycast, multicast, any y xresolve;
  • Systemd-networkd ofrece una opción DefaultRouteOnDevice en la sección “[Red]” para configurar automáticamente una ruta predeterminada para un dispositivo de red determinado;
  • Systemd-networkd ha agregado ProxyARP y
    ProxyARPWifi para configurar el comportamiento del proxy ARP, MulticastRouter para configurar los parámetros de enrutamiento en modo multidifusión, MulticastIGMPVersion para cambiar la versión IGMP (Protocolo de administración de grupos de Internet) para multidifusión;

  • Systemd-networkd ha agregado opciones Local, Peer y PeerPort para túneles FooOverUDP para configurar las direcciones IP locales y remotas, así como el número de puerto de red. Para túneles TUN, se agregó la opción VnetHeader para configurar el soporte GSO (descarga de segmento genérico);
  • En systemd-networkd, en los archivos .network y .link en la sección [Coincidencia], apareció una opción de Propiedad, que le permite identificar dispositivos por sus propiedades específicas en udev;
  • En systemd-networkd, se agregó una opción AssignToLoopback para túneles, que controla si el final del túnel está asignado al dispositivo loopback “lo”;
  • systemd-networkd activa automáticamente la pila IPv6 si está bloqueada a través de sysctl enable_ipv6: IPv6 se activa si la configuración de IPv6 (estática o DHCPv6) está definida para la interfaz de red; de lo contrario, el valor de sysctl ya establecido no cambia;
  • En los archivos .network, la configuración CriticalConnection ha sido reemplazada por la opción KeepConfiguration, que proporciona más medios para definir situaciones ("sí", "estática", "dhcp-on-stop", "dhcp") en las que systemd-networkd debería no tocar las conexiones existentes al iniciar;
  • Vulnerabilidad arreglada CVE-2019-15718, causado por la falta de control de acceso a la interfaz D-Bus systemd-resuelto. El problema permite a un usuario sin privilegios realizar operaciones que sólo están disponibles para los administradores, como cambiar la configuración de DNS y dirigir consultas de DNS a un servidor fraudulento;
  • Vulnerabilidad arreglada CVE-2019-9619relacionado con no habilitar pam_systemd para sesiones no interactivas, lo que permite la suplantación de la sesión activa.

Fuente: opennet.ru

Añadir un comentario