Version FreeBSD 13.2 avec prise en charge de Netlink et WireGuard

Après 11 mois de développement, FreeBSD 13.2 est sorti. Les images d'installation sont générées pour les architectures amd64, i386, powerpc, powerpc64, powerpc64le, powerpcspe, armv6, armv7, aarch64 et riscv64. De plus, des assemblys ont été préparés pour les systèmes de virtualisation (QCOW2, VHD, VMDK, raw) et les environnements cloud Amazon EC2, Google Compute Engine et Vagrant.

Changements clés :

  • La possibilité de créer des instantanés des systèmes de fichiers UFS et FFS avec la journalisation activée (mises à jour logicielles) a été implémentée. Ajout également de la prise en charge de la sauvegarde en arrière-plan des sauvegardes (exécution de la sauvegarde avec l'indicateur « -L ») avec le contenu des systèmes de fichiers UFS montés lorsque la journalisation est activée. L'une des fonctionnalités qui n'est pas disponible lors de l'utilisation de la journalisation est l'exécution en arrière-plan des contrôles d'intégrité à l'aide de l'utilitaire fsck.
  • La composition de base comprend un pilote wg fonctionnant au niveau du noyau avec l'implémentation d'une interface réseau pour VPN WireGuard. Pour utiliser les algorithmes cryptographiques requis par le pilote, l'API du sous-système cryptographique du noyau FreeBSD a été étendue, à laquelle un harnais a été ajouté qui permet l'utilisation d'algorithmes de la bibliothèque libsodium qui ne sont pas pris en charge dans FreeBSD via l'API cryptographique standard. . Au cours du processus de développement, une optimisation a également été effectuée pour équilibrer uniformément la liaison des tâches de cryptage et de déchiffrement des paquets aux cœurs du processeur, ce qui a réduit la surcharge lors du traitement des paquets WireGuard.

    La dernière tentative d'inclure WireGuard dans FreeBSD a été faite en 2020, mais s'est soldée par un scandale, à la suite duquel le code déjà ajouté a été supprimé en raison d'un travail de mauvaise qualité et négligent avec les tampons, de l'utilisation de stubs au lieu de contrôles et d'une implémentation incomplète. du protocole et violation de la licence GPL. La nouvelle implémentation a été préparée conjointement par les équipes de développement principales de FreeBSD et de WireGuard, avec les contributions de Jason A. Donenfeld, auteur de VPN WireGuard, et de John H. Baldwin, un développeur FreeBSD renommé. Un examen complet des modifications a été réalisé avec le soutien de la Fondation FreeBSD avant que le nouveau code ne soit accepté.

  • La prise en charge du protocole de communication Netlink (RFC 3549), utilisé sous Linux pour organiser l'interaction du noyau avec les processus dans l'espace utilisateur, a été implémentée. Le projet se limite à prendre en charge la famille d'opérations NETLINK_ROUTE pour gérer l'état du sous-système réseau dans le noyau, ce qui permet à FreeBSD d'utiliser l'utilitaire Linux ip du package iproute2 pour gérer les interfaces réseau, définir les adresses IP, configurer le routage et manipuler le prochain saut. objets qui stockent les données d’état utilisées pour transmettre le paquet vers la destination souhaitée.
  • Tous les exécutables du système de base sur les plates-formes 64 bits ont la randomisation de la disposition de l'espace d'adresse (ASLR) activée par défaut. Pour désactiver sélectivement ASLR, vous pouvez utiliser les commandes « proccontrol -m aslr -s Disable » ou « Elfctl -e +noaslr ».
  • Dans ipfw, les tables de base sont utilisées pour rechercher des adresses MAC, ce qui vous permet de créer des tables avec des adresses MAC et de les utiliser pour filtrer le trafic. Par exemple : 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 ajoute un refus de recherche dst-mac 1
  • Les modules de noyau dpdk_lpm4 et dpdk_lpm6 ont été ajoutés et sont disponibles au chargement via loader.conf avec l'implémentation de l'algorithme de recherche de route DIR-24-8 pour IPv4/IPv6, qui permet d'optimiser les fonctions de routage pour les hôtes avec de très grandes tables de routage ( lors des tests, une augmentation de la vitesse de 25 % est observée. Pour configurer les modules, l'utilitaire de route standard peut être utilisé (l'option FIB_ALGO a été ajoutée).
  • L'implémentation du système de fichiers ZFS a été mise à jour pour publier OpenZFS 2.1.9. Le script de démarrage zfskeys permet le chargement automatique des clés stockées dans le système de fichiers ZFS. Ajout du nouveau script RC zpoolreguid pour attribuer un GUID à un ou plusieurs zpools (par exemple utile pour les environnements de virtualisation de données partagées).
  • L'hyperviseur Bhyve et le module vmm prennent en charge la connexion de plus de 15 processeurs virtuels au système invité (régulés via sysctl hw.vmm.maxcpu). L'utilitaire bhyve implémente l'émulation du périphérique virtio-input, avec lequel vous pouvez remplacer les événements de saisie du clavier et de la souris dans le système invité.
  • Dans KTLS, une implémentation du protocole TLS fonctionnant au niveau du noyau FreeBSD, la prise en charge de l'accélération matérielle de TLS 1.3 a été ajoutée en déchargeant certaines opérations liées au traitement des paquets entrants cryptés sur la carte réseau. Auparavant, une fonctionnalité similaire était disponible pour TLS 1.1 et TLS 1.2.
  • Dans le script de démarrage Growfs, lors de l'extension du système de fichiers racine, il est possible d'ajouter une partition d'échange si une telle partition manquait initialement (par exemple, utile lors de l'installation d'une image système prête à l'emploi sur une carte SD). Pour contrôler la taille du swap, un nouveau paramètre growfs_swap_size a été ajouté à rc.conf.
  • Le script de démarrage hostid garantit qu'un UUID aléatoire est généré si le fichier /etc/hostid est manquant et que l'UUID ne peut pas être obtenu à partir du matériel. Ajout également d'un fichier /etc/machine-id avec une représentation compacte de l'ID d'hôte (sans tirets).
  • Les variables defaultrouter_fibN et ipv6_defaultrouter_fibN ont été ajoutées à rc.conf, grâce auxquelles vous pouvez ajouter des routes par défaut aux tables FIB autres que la principale.
  • La prise en charge des hachages SHA-512/224 a été ajoutée à la bibliothèque libmd.
  • La bibliothèque pthread prend en charge la sémantique des fonctions utilisées sous Linux.
  • Ajout de la prise en charge du décodage des appels système Linux vers kdump. Ajout de la prise en charge du suivi des appels système de style Linux vers kdump et sysdecode.
  • L'utilitaire killall a désormais la possibilité d'envoyer un signal aux processus liés à un terminal spécifique (par exemple, « killall -t pts/1 »).
  • Ajout de l'utilitaire nproc pour afficher le nombre de blocs de calcul disponibles pour le processus en cours.
  • La prise en charge du décodage des paramètres ACS (Access Control Services) a été ajoutée à l'utilitaire pciconf.
  • Le paramètre SPLIT_KERNEL_DEBUG a été ajouté au noyau, ce qui vous permet d'enregistrer les informations de débogage du noyau et des modules du noyau dans des fichiers séparés.
  • L'ABI Linux est presque complète avec la prise en charge du mécanisme vDSO (objets partagés dynamiques virtuels), qui fournit un ensemble limité d'appels système disponibles dans l'espace utilisateur sans changement de contexte. L'ABI Linux sur les systèmes ARM64 a été mise à parité avec l'implémentation de l'architecture AMD64.
  • Prise en charge matérielle améliorée. Ajout de la prise en charge de la surveillance des performances (hwpmc) pour les processeurs Intel Alder Lake. Le pilote iwlwifi pour les cartes sans fil Intel a été mis à jour avec la prise en charge des nouvelles puces et de la norme 802.11ac. Ajout du pilote rtw88 pour les cartes sans fil Realtek avec interface PCI. Les capacités de la couche Linuxkpi ont été étendues pour être utilisées avec les pilotes Linux dans FreeBSD.
  • La bibliothèque OpenSSL a été mise à jour vers la version 1.1.1t, LLVM/Сlang vers la version 14.0.5, et le serveur et le client SSH ont été mis à jour vers OpenSSH 9.2p1 (la version précédente utilisait OpenSSH 8.8p1). Les versions 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 sont également mises à jour.

De plus, il a été annoncé que, à commencer par la branche FreeBSD 14.0, les mots de passe à usage unique OPIE, les pilotes ce et cp, les pilotes pour les cartes ISA, les utilitaires mergemaster et minigzip, les composants ATM dans netgraph (NgATM), le processus d'arrière-plan telnetd et le Classe VINUM en géom.

Source: opennet.ru

Ajouter un commentaire