Lançamento do FreeBSD 13.2 com suporte a Netlink e WireGuard

Após 11 meses de desenvolvimento, o lançamento do FreeBSD 13.2 foi publicado. As imagens de instalação foram geradas para as arquiteturas amd64, i386, powerpc, powerpc64, powerpc64le, powerpcspe, armv6, armv7, aarch64 e riscv64. Adicionalmente, foram preparadas compilações para sistemas de virtualização (QCOW2, VHD, VMDK, raw) e ambientes de nuvem como Amazon EC2, Google Compute Engine e Vagrant.

Mudanças principais:

  • Foi implementada a capacidade de criar snapshots dos sistemas de arquivos UFS e FFS, onde o registro foi ativado (soft updates). Também foi adicionada a compatibilidade com salvamento em segundo plano de dumps (executando dump com a flag "-L") com o conteúdo dos sistemas de arquivos UFS montados quando o registro está ativado. Entre as funcionalidades não disponíveis ao usar o registro, permanece a execução em segundo plano da verificação de integridade com o utilitário fsck.
  • Foi aceito no núcleo o driver wg, que implementa a interface de rede para VPN WireGuard. Para utilizar os algoritmos criptográficos necessários para o driver, foi feita uma expansão da API da subsistema criptográfico do núcleo FreeBSD, que incluiu uma camada que permite usar, através da API criptográfica padrão, algoritmos não suportados no FreeBSD, provenientes da biblioteca libsodium. Durante o desenvolvimento, também foi realizada uma otimização para equilibrar uniformemente a distribuição das tarefas de criptografia e descriptografia de pacotes entre os núcleos da CPU, o que ajudou a reduzir a sobrecarga no processamento de pacotes do WireGuard.

    A tentativa anterior de incluir o WireGuard no FreeBSD ocorreu em 2020, mas terminou em escândalo, resultando na remoção do código já adicionado devido à baixa qualidade, gestão descuidada de buffers, uso de stubs em vez de verificações, implementação incompleta do protocolo e violação da licença GPL. A nova implementação foi preparada em conjunto pelas principais equipes de desenvolvimento do FreeBSD e do WireGuard, com a participação de Jason Donenfeld, autor da VPN WireGuard, e John Baldwin, um conhecido desenvolvedor do FreeBSD. Antes da aceitação do novo código, foi realizada uma revisão completa das alterações com o apoio da FreeBSD Foundation.

  • Foi implementado o suporte ao protocolo de comunicação Netlink (RFC 3549), utilizado no Linux para organizar a interação entre o núcleo e os processos no espaço do usuário. O projeto limita-se ao suporte à família de operações NETLINK_ROUTE para gerenciar o estado do subsistema de rede no núcleo, permitindo usar a ferramenta ip do pacote iproute2 para gerenciar interfaces de rede, configurar endereços IP, ajustar roteamento e manipular objetos nexthop, que armazenam dados sobre o estado utilizado para encaminhar pacotes ao destino desejado.
  • Para todos os arquivos executáveis do sistema base em plataformas de 64 bits, a randomização de espaço de endereçamento (ASLR, Address Space Layout Randomization) está ativada por padrão. Para desativar ASLR de forma seletiva, podem ser utilizados os comandos "proccontrol -m aslr -s disable" ou "elfctl -e +noaslr".
  • No ipfw, tabelas básicas (Radix table) são utilizadas para busca de endereços MAC, permitindo criar tabelas com endereços MAC e usá-las para filtrar tráfego. Por exemplo: ipfw table 1 create type mac ipfw table 1 add 11:22:33:44:55:66/48 ipfw add skipto tablearg src-mac 'table(1)' ipfw add deny src-mac 'table(1, 100)' ipfw add deny lookup dst-mac 1
  • Foram adicionados e estão disponíveis para download através do loader.conf os módulos do núcleo dpdk_lpm4 e dpdk_lpm6, com a implementação do algoritmo de busca de rotas DIR-24-8 para IPv4/IPv6, que otimiza funções de roteamento para hosts com tabelas de roteamento muito grandes (os testes mostram um aumento de velocidade de cerca de 25%). A ferramenta de configuração route pode ser utilizada para configurar os módulos (opção FIB_ALGO adicionada).
  • A implementação do sistema de arquivos ZFS foi atualizada para a versão OpenZFS 2.1.9. No script de inicialização zfskeys, a carga automática de chaves armazenadas no sistema de arquivos ZFS é garantida. Um novo script RC zpoolreguid foi adicionado para atribuir um identificador GUID a um ou mais zpools (por exemplo, útil para ambientes de virtualização com dados compartilhados).
  • No hypervisor Bhyve e no módulo vmm, foi implementado o suporte para anexar mais de 15 CPUs virtuais ao sistema convidado (regulável através do sysctl hw.vmm.maxcpu). O utilitário bhyve implementou a emulação do dispositivo virtio-input, que permite inserir eventos de entrada do teclado e mouse no sistema convidado.
  • No KTLS, a implementação do protocolo TLS funcionando a nível de kernel do FreeBSD, foi adicionada a suporte para aceleração de hardware TLS 1.3 através do deslocamento de algumas operações relacionadas ao processamento de pacotes criptografados para a interface de rede. Anteriormente, essa possibilidade estava disponível para TLS 1.1 e TLS 1.2.
  • No script inicial do growfs, durante a expansão do sistema de arquivos raiz, foi implementada a adição de uma partição de swap, caso essa partição não estivesse presente inicialmente (por exemplo, útil ao instalar uma imagem de sistema pronta em um cartão SD). Para gerenciar o tamanho da swap, foi adicionado um novo parâmetro growfs_swap_size no rc.conf.
  • No script inicial do hostid, foi garantida a geração de um UUID aleatório caso o arquivo /etc/hostid esteja ausente e não seja possível obter o UUID do hardware. Também foi adicionado o arquivo /etc/machine-id com uma representação compacta do identificador do host (sem hífens).
  • No rc.conf, foram adicionadas as variáveis defaultrouter_fibN e ipv6_defaultrouter_fibN, que permitem adicionar rotas padrão nas tabelas FIB diferentes da primária.
  • Na biblioteca libmd, foi adicionada a suporte a hashes SHA-512/224.
  • Na biblioteca pthread, foi implementado suporte à semântica das funções utilizadas no Linux.
  • No kdump, foi adicionada a suporte para decodificação de chamadas de sistema Linux. No kdump e no sysdecode, foi adicionado suporte para rastreamento de chamadas de sistema no estilo Linux.
  • Na utilidade killall, agora é possível enviar sinais para processos vinculados a um terminal específico (por exemplo, "killall -t pts/1").
  • Adicionada a utilidade nproc para exibir o número de unidades de computação disponíveis para o processo atual.
  • Na utilidade pciconf, foi adicionada a suporte para decodificação dos parâmetros ACS (Access Control Services).
  • No kernel, foi adicionada a configuração SPLIT_KERNEL_DEBUG, permitindo salvar informações de depuração em arquivos separados para o kernel e seus módulos.
  • Na ABI linux, quase foi concluída a implementação do suporte ao mecanismo vDSO (objetos compartilhados dinâmicos virtuais), fornecendo um conjunto limitado de chamadas de sistema disponíveis no espaço do usuário sem alternância de contexto. A ABI linux nos sistemas ARM64 foi alinhada com a implementação para a arquitetura AMD64.
  • Melhor suporte de hardware. Suporte para monitoramento de desempenho (hwpmc) para CPU Intel Alder Lake adicionado. O driver iwlwifi para placas sem fio Intel foi atualizado para suportar novos chips e o padrão 802.11ac. Driver rtw88 adicionado para placas sem fio Realtek com interface PCI. Recurso da camada linuxkpi expandido para uso em drivers Linux no FreeBSD.
  • A biblioteca OpenSSL foi atualizada para a versão 1.1.1t, LLVM/Clang para a versão 14.0.5, e o servidor e cliente SSH foram atualizados para OpenSSH 9.2p1 (versão anterior usava OpenSSH 8.8p1). Também foram atualizadas as versões do bc 6.2.4, expat 2.5.0, file 5.43, less 608, libarchive 3.6.2, sendmail 8.17.1, sqlite 3.40.1, unbound 1.17.1, zlib 1.2.13.

Além disso, foi anunciada a declaração de obsolescência e remoção a partir da ramificação FreeBSD 14.0 das senhas descartáveis OPIE, drivers ce e cp, drivers para placas com interface ISA, utilitários mergemaster e minigzip, componentes ATM em netgraph (NgATM), processo em segundo plano telnetd e classe VINUM em geom.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster