gerenciador de sistema systemd versão 243

Após cinco meses de desenvolvimento apresentado liberação do gerenciador de sistema sistema 243. Entre as inovações, podemos destacar a integração ao PID 1 de um manipulador de pouca memória no sistema, suporte para anexar programas próprios BPF para filtragem de tráfego unitário, inúmeras novas opções para systemd-networkd, modo de monitoramento da largura de banda da rede interfaces, habilitando por padrão em sistemas de 64 bits números PID de 22 bits em vez de 16 bits, transição para uma hierarquia unificada de cgroups, inclusão no gerador de rede systemd.

Grandes mudanças:

  • O reconhecimento de sinais gerados pelo kernel sobre falta de memória (Out-Of-Memory, OOM) foi adicionado ao manipulador PID 1 para transferir unidades que atingiram o limite de consumo de memória para um estado especial com a capacidade opcional de forçá-las a encerrar ou pare;
  • Para arquivos unitários, novos parâmetros IPIngressFilterPath e
    IPEgressFilterPath, que permite conectar programas BPF com manipuladores arbitrários para filtrar pacotes IP de entrada e saída gerados por processos associados a esta unidade. Os recursos propostos permitem criar uma espécie de firewall para serviços do systemd. Exemplo de escrita um filtro de rede simples baseado em BPF;

  • O comando “clean” foi adicionado ao utilitário systemctl para excluir o cache, arquivos de tempo de execução, informações de status e diretórios de log;
  • systemd-networkd adiciona suporte para interfaces de rede MACsec, nlmon, IPVTAP e Xfrm;
  • systemd-networkd implementa configuração separada de pilhas DHCPv4 e DHCPv6 por meio das seções “[DHCPv4]” e “[DHCPv6]” no arquivo de configuração. Adicionada a opção RoutesToDNS para adicionar uma rota separada ao servidor DNS especificado nos parâmetros recebidos do servidor DHCP (para que o tráfego para o DNS seja enviado através do mesmo link que a rota principal recebida do DHCP). Novas opções foram adicionadas para DHCPv4: MaxAttempts - número máximo de solicitações para obter um endereço, BlackList - lista negra de servidores DHCP, SendRelease - permite o envio de mensagens DHCP RELEASE quando a sessão termina;
  • Novos comandos foram adicionados ao utilitário systemd-analyze:
    • “systemd-analyze timestamp” - análise e conversão de tempo;
    • “systemd-analyze timespan” - análise e conversão de períodos de tempo;
    • “condição de análise do systemd” - análise e teste de expressões ConditionXYZ;
    • “systemd-analyze exit-status” - análise e conversão de códigos de saída de números em nomes e vice-versa;
    • "systemd-analyze unit-files" - Lista todos os caminhos de arquivos para unidades e aliases de unidades.
  • Opções SuccessExitStatus, RestartPreventExitStatus e
    RestartForceExitStatus agora suporta não apenas códigos de retorno numéricos, mas também seus identificadores de texto (por exemplo, "DATAERR"). Você pode visualizar a lista de códigos atribuídos aos identificadores usando o comando “sytemd-analyze exit-status”;

  • O comando “delete” foi adicionado ao utilitário networkctl para excluir dispositivos de rede virtuais, bem como a opção “—stats” para exibir estatísticas do dispositivo;
  • As configurações SpeedMeter e SpeedMeterIntervalSec foram adicionadas ao networkd.conf para medir periodicamente o rendimento das interfaces de rede. As estatísticas obtidas dos resultados da medição podem ser visualizadas na saída do comando 'networkctl status';
  • Adicionado novo utilitário systemd-network-generator para geração de arquivos
    .network, .netdev e .link com base nas configurações de IP passadas quando iniciadas através da linha de comando do kernel Linux no formato de configurações do Dracut;

  • O valor sysctl "kernel.pid_max" em sistemas de 64 bits agora é definido por padrão como 4194304 (PIDs de 22 bits em vez de 16 bits), o que reduz a probabilidade de colisões ao atribuir PIDs, aumenta o limite no número de simultaneamente processos em execução e tem um impacto positivo na segurança. A alteração poderá potencialmente levar a problemas de compatibilidade, mas tais problemas ainda não foram comunicados na prática;
  • Por padrão, o estágio de construção muda para a hierarquia unificada cgroups-v2 (“-Ddefault-hierarchy=unified”). Anteriormente, o padrão era o modo híbrido (“-Ddefault-hierarchy=hybrid”);
  • Foi alterado o comportamento do filtro de chamada do sistema (SystemCallFilter), que, no caso de uma chamada de sistema proibida, agora encerra todo o processo, em vez de threads individuais, pois o encerramento de threads individuais pode levar a problemas imprevisíveis. As alterações só se aplicam se você tiver o kernel Linux 4.14+ e libseccomp 2.4.0+;
  • Programas sem privilégios têm a capacidade de enviar pacotes ICMP Echo (ping) definindo o sysctl "net.ipv4.ping_group_range" para todo o intervalo de grupos (para todos os processos);
  • Para acelerar o processo de construção, a geração de manuais man foi interrompida por padrão (para construir a documentação completa, você precisa usar a opção “-Dman=true” ou “-Dhtml=true” para manuais em formato html). Para facilitar a visualização da documentação, estão incluídos dois scripts: build/man/man e build/man/html para geração e visualização de manuais de interesse;
  • Para processar nomes de domínio com caracteres de alfabetos nacionais, a biblioteca libidn2 é usada por padrão (para retornar libidn, use a opção “-Dlibidn=true”);
  • O suporte para o arquivo executável /usr/sbin/halt.local, que fornecia funcionalidades que não eram amplamente distribuídas em distribuições, foi descontinuado. Para organizar o lançamento de comandos ao desligar, é recomendado usar scripts em /usr/lib/systemd/system-shutdown/ ou definir uma nova unidade que dependa de final.target;
  • No último estágio do desligamento, o systemd agora aumenta automaticamente o nível de log no sysctl “kernel.printk”, o que resolve o problema de exibição no log de eventos que ocorreram nos estágios posteriores do desligamento, quando os daemons de registro regulares já foram concluídos ;
  • No Journalctl e em outros utilitários que exibem logs, os avisos são destacados em amarelo e os registros de auditoria são destacados em azul para destacá-los visualmente da multidão;
  • Na variável de ambiente $PATH, o caminho para bin/ agora vem antes do caminho para sbin/, ou seja, se houver nomes idênticos de arquivos executáveis ​​em ambos os diretórios, o arquivo de bin/ será executado;
  • systemd-logind fornece uma chamada SetBrightness() para alterar com segurança o brilho da tela por sessão;
  • O sinalizador “--wait-for-initialization” foi adicionado ao comando “udevadm info” para aguardar a inicialização do dispositivo;
  • Durante a inicialização do sistema, o manipulador PID 1 agora exibe os nomes das unidades em vez de uma linha com sua descrição. Para reverter ao comportamento anterior, você pode usar a opção StatusUnitFormat em /etc/systemd/system.conf ou a opção de kernel systemd.status_unit_format;
  • Adicionada a opção KExecWatchdogSec a /etc/systemd/system.conf para watchdog PID 1, que especifica o tempo limite para reiniciar usando kexec. Configuração antiga
    ShutdownWatchdogSec foi renomeado para RebootWatchdogSec e define um tempo limite para tarefas durante o desligamento ou reinicialização normal;

  • Uma nova opção foi adicionada para serviços Condição Exec, que permite especificar comandos que serão executados antes do ExecStartPre. Com base no código de erro retornado pelo comando, é tomada uma decisão sobre a continuação da execução da unidade - se o código 0 for retornado, o lançamento da unidade continua, se de 1 a 254 termina silenciosamente sem sinalizador de falha, se 255 termina com um sinalizador de falha;
  • Adicionado um novo serviço systemd-pstore.service para extrair dados de sys/fs/pstore/ e salvá-los em /var/lib/pstore para análise posterior;
  • Novos comandos foram adicionados ao utilitário timedatectl para configurar parâmetros NTP para systemd-timesyncd em relação às interfaces de rede;
  • O comando "localectl list-locales" não exibe mais localidades diferentes de UTF-8;
  • Garante que erros de atribuição de variáveis ​​em arquivos sysctl.d/ sejam ignorados se o nome da variável começar com o caractere “-“;
  • Serviço systemd-random-seed.service agora é inteiramente responsável por inicializar o pool de entropia do gerador de números pseudoaleatórios do kernel Linux. Serviços que requerem um /dev/urandom inicializado corretamente devem ser iniciados após systemd-random-seed.service;
  • O carregador de inicialização systemd-boot fornece a capacidade opcional de suportar arquivo semente com sequência aleatória na partição do sistema EFI (ESP);
  • Novos comandos foram adicionados ao utilitário bootctl: “bootctl random-seed” para gerar um arquivo seed no ESP e “bootctl is-installed” para verificar a instalação do carregador de boot systemd-boot. bootctl também foi ajustado para exibir avisos sobre configuração incorreta de entradas de inicialização (por exemplo, quando a imagem do kernel é excluída, mas a entrada para carregá-la é deixada);
  • Fornece seleção automática da partição swap quando o sistema entra no modo de suspensão. A partição é selecionada em função da prioridade configurada para ela e, no caso de prioridades idênticas, da quantidade de espaço livre;
  • Adicionada opção keyfile-timeout ao /etc/crypttab para definir quanto tempo o dispositivo com a chave de criptografia irá esperar antes de solicitar uma senha para acessar a partição criptografada;
  • Adicionada opção IOWeight para definir o peso de I/O para o agendador BFQ;
  • systemd-resolved adicionou modo 'estrito' para DNS-over-TLS e implementou a capacidade de armazenar em cache apenas respostas DNS positivas ("Cache no-negative" em resolvi.conf);
  • Para VXLAN, systemd-networkd adicionou uma opção GenericProtocolExtension para habilitar extensões de protocolo VXLAN. Para VXLAN e GENEVE, a opção IPDoNotFragment foi adicionada para definir o sinalizador de proibição de fragmentação para pacotes de saída;
  • No systemd-networkd, na seção “[Route]”, apareceu a opção FastOpenNoCookie para habilitar o mecanismo de abertura rápida de conexões TCP (TFO - TCP Fast Open, RFC 7413) em relação a rotas individuais, bem como a opção TTLPropagate para configurar TTL LSP (Label Switched Path). A opção “Tipo” fornece suporte para modos de roteamento local, broadcast, anycast, multicast, any e xresolve;
  • Systemd-networkd oferece uma opção DefaultRouteOnDevice na seção “[Rede]” para configurar automaticamente uma rota padrão para um determinado dispositivo de rede;
  • Systemd-networkd adicionou ProxyARP e
    ProxyARPWifi para definir o comportamento do proxy ARP, MulticastRouter para definir parâmetros de roteamento no modo multicast, MulticastIGMPVersion para alterar a versão IGMP (Internet Group Management Protocol) para multicast;

  • Systemd-networkd adicionou opções Local, Peer e PeerPort para túneis FooOverUDP para configurar os endereços IP locais e remotos, bem como o número da porta de rede. Para túneis TUN, a opção VnetHeader foi adicionada para configurar o suporte a GSO (Generic Segment Offload);
  • No systemd-networkd, nos arquivos .network e .link da seção [Match], apareceu uma opção Property, que permite identificar dispositivos por suas propriedades específicas no udev;
  • No systemd-networkd, uma opção AssignToLoopback foi adicionada para túneis, que controla se o final do túnel é atribuído ao dispositivo de loopback “lo”;
  • systemd-networkd ativa automaticamente a pilha IPv6 se ela for bloqueada via sysctl disable_ipv6 - IPv6 é ativado se configurações IPv6 (estáticas ou DHCPv6) forem definidas para a interface de rede, caso contrário, o valor sysctl já definido não muda;
  • Nos arquivos .network, a configuração CriticalConnection foi substituída pela opção KeepConfiguration, que fornece mais meios para definir situações (“yes”, “static”, “dhcp-on-stop”, “dhcp”) nas quais o systemd-networkd deve não toque nas conexões existentes durante a inicialização;
  • Vulnerabilidade corrigida CVE-2019-15718, causado pela falta de controle de acesso à interface D-Bus resolvida pelo sistema. O problema permite que um usuário sem privilégios execute operações que estão disponíveis apenas para administradores, como alterar configurações de DNS e direcionar consultas de DNS para um servidor não autorizado;
  • Vulnerabilidade corrigida CVE-2019-9619relacionado à não habilitação do pam_systemd para sessões não interativas, o que permite falsificar a sessão ativa.

Fonte: opennet.ru

Adicionar um comentário