URL: https://linuxfr.org/news/freebsd-11-0 Title: FreeBSD 11.0 Authors: Loïc Blot David Marec, Davy Defaud, Nils Ratusznik, Thierry Thomas, Bapt, palm123, olivierweb, Rolinh, Benoît Sibaud, ZeroHeure et audionuma Date: 2016年09月27日T12:18:28+02:00 License: CC By-SA Tags: bsd, freebsd, bhyve, gcu_squad_invaders et tc Score: 55 Après un cycle de bêta démarré le 8 juillet 2016, trois versions candidates et une sortie retardée le 28 septembre 2016 à cause d’une faille d’OpenSSL, FreeBSD 11.0-RELEASE est sorti le 10 octobre 2016. Il est à noter que ce cycle de publication a nécessité une version candidate supplémentaire due à des régressions sur la partie réseau. ![Logo et slogan de FreeBSD](https://www.freebsd.org/layout/images/logo-red.png) En bref ======= FreeBSD 11.0 est une version majeure du système, néanmoins elle casse peu de compatibilité. Cette version apporte son lot de pilotes, modules et correctifs, notamment dans les domaines du réseau et de la sécurité, ainsi que l’exposition de nouvelles bibliothèques et API. Les progrès de [_bhyve_](https://en.wikipedia.org/wiki/Bhyve), la prise en charge de Xen et d’Hyper-V mettent la virtualisation à l’honneur. Enfin, les efforts portés sur les architectures ARM et l’intégration de cartes d’acquisition poursuivent l’ouverture du système vers le monde de l’informatique embarquée. ---- [FreeBSD](https://www.freebsd.org/) [Annonce de la version 11](https://www.freebsd.org/releases/11.0R/announce.html) [Notes de version](https://www.freebsd.org/releases/11.0R/relnotes.html) [Calendrier de sortie](https://www.freebsd.org/releases/11.0R/schedule.html) [Errata](https://www.FreeBSD.org/releases/11.0R/errata.html) [Cycle de vie de FreeBSD](https://www.freebsd.org/security/security.html#sup) [DLFP : FreeBSD 10.3](https://linuxfr.org/news/freebsd-10-3) ---- Points clefs ============ * OpenSSH 7.2p2 est proposé en version de base, désactivant par défaut la génération de clef DSA et retirant la version 1 du protocole SSH ; n’oubliez pas de mettre à jour vos clefs **avant** toute mise à jour ; * ajout de la prise en charge des cartes Wi‐Fi 802.11n ; * par défaut, l’outil [`ifconfig(8)`](https://www.freebsd.org/cgi/man.cgi?query=ifconfig&apropos=0&sektion=8&manpath=FreeBSD+11.0-RELEASE+and+Ports) fixe le domaine légal à [FCC](https://en.wikipedia.org/wiki/Federal_Communications_Commission) ; aussi, les cartes nouvellement créées ont moins de chance de violer les règles spécifiques à votre pays : pensez à ajouter `create_args_wlan0="country FR"` dans votre configuration ; * l’outil [`svnlite(1)`](https://www.freebsd.org/cgi/man.cgi?query=svnlite&apropos=0&sektion=1&manpath=FreeBSD+11.0-RELEASE+and+Ports) est proposé en version 1.9.4 ; * la bibliothèque [`libblacklist(3)`] (https://www.freebsd.org/cgi/man.cgi?query=libblacklist&apropos=0&sektion=3&manpath=FreeBSD+11.0-RELEASE+and+Ports), venue de [NetBSD](https://www.netbsd.org), a été intégrée dans le système de base ; * ajout d’une pile graphique pour l’hyperviseur [`bhyve(8)`](https://www.freebsd.org/cgi/man.cgi?query=bhyve&apropos=0&sektion=8&manpath=FreeBSD+11.0-RELEASE+and+Ports) ; * une plus grande prise en charge de périphériques réseau sans fil. Disponibilité ============= Une nouvelle architecture est disponible, AArch64 (pour [[ARMv8]]), alors qu’une autre, IA64, n’est plus maintenue. FreeBSD 11.0-RELEASE est donc désormais [disponible sur les architectures](https://www.freebsd.org/platforms/) AMD64, x86, PowerPC, PowerPC64 (ppc64), SPARC64, MIPS, MIPS64, ARMv6 (4 et 5) et AArch64. Installation ===================== Vous pouvez installer un système à partir des images (CD, DVD, memstick, ARM SD) que vous trouverez sur [_ce site_](ftp://ftp.freebsd.org/pub/FreeBSD/releases/ISO-IMAGES/11.0/) ou sur [_celui‐ci_](ftp://ftp.freebsd.org/pub/FreeBSD/releases/VM-IMAGES/11.0-RELEASE/), pour ceux qui utilisent des machines virtuelles. Les plates‐formes de virtualisation les plus célèbres comme [EC2](https://aws.amazon.com/marketplace/pp/B01LWSWRED/) d’Amazon, [GCloud](https://cloud.google.com/compute/docs/images) de Google et [Azure](https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-linux-classic-freebsd-create-upload-vhd/) de Microsoft vous proposent d’installer des instances de FreeBSD. Plus généralement, de nombreux hébergeurs, vous proposent ce système sur un serveur dédié ou [VPS](https://fr.wikipedia.org/wiki/Serveur_d%C3%A9di%C3%A9_virtuel). Installateur ------------ L’outil d’installation, [_bsdinstall_](http://www.freebsd.org/cgi/man.cgi?query=bsdinstall&sektion=8&manpath=freebsd-release-ports), prend en charge le système de fichiers [ZFS](https://www.freebsd.org/doc/handbook/zfs.html) en standard, de même que l’outil de partitionnement [_sade_](http://www.freebsd.org/cgi/man.cgi?query=sade&sektion=8&manpath=freebsd-release-ports). De nouvelles options de sécurité sont proposées : * cacher les processus aux autres utilisateurs : `security.bsd.see_other_uids=0` ; * cacher les processus aux autres groupes : `security.bsd.see_other_gids` ; * interdire la lecture des messages du noyau aux simples utilisateurs : `security.bsd.unprivileged_read_msgbuf` ; * désactiver le débogage aux simples utilisateurs : `security.bsd.unprivileged_proc_debug` ; * attribuer un identifiant de processus (PID) calculé au hasard, à la création de processus : `kern.randompid=xx` ; * protection contre les dépassements de tampons : `security.bsd.stack_guard_page` ; * nettoyer le répertoire `tmp` au démarrage : `clear_tmp_enable` ; * désactiver la consultation de journaux à distance : `syslogd_flags="-ss"` ; * désactiver tous les services _sendmail_ :`sendmail_enable="NONE"`. Mise à jour ----------- Attention, les utilisateurs d’EC2 sont invités à lire les [_errata_](https://www.freebsd.org/releases/11.0R/errata.html) avant de mettre à jour. Pour mettre à jour un système existant, lancez les commandes suivantes, sans omettre d’écraser le fichier `bspatch` pour corriger une faille de sécurité : ```` # :> /usr/bin/bspatch # freebsd-update upgrade -r 11.0-RELEASE # freebsd-update install # reboot # freebsd-update install # freebsd-update install ```` Pour mettre à jour les _ports_ : * paquets binaires: `pkg-static upgrade -f` ; * _portmaster_ : `portmaster -Raf` ; * [_synth_](https://github.com/jrmarino/synth) : `synth upgrade-system` ; * si vous utilisez [_poudriere_](https://github.com/freebsd/poudriere), créez une nouvelle _jail_ en 11.0-RELEASE ou utilisez la commande de mise à jour de la _jail_ de construction suivante : `poudriere jail -u -j myjail -t 11.0-RELEASE`. Configuration ============= L’harmonisation des fichiers et répertoires de configuration progresse avec : * [_newsyslog_] (https://www.freebsd.org/cgi/man.cgi?query=newsyslog.conf&sektion=5&manpath=freebsd-release-ports) ; * [_rc_](https://www.freebsd.org/cgi/man.cgi?query=rc&sektion=8&manpath=freebsd-release-ports) ; * [_service_](https://www.freebsd.org/cgi/man.cgi?query=service&sektion=8&manpath=freebsd-release-ports) ; * [_mailwrapper_](https://www.freebsd.org/cgi/man.cgi?query=mailwrapper&sektion=8&manpath=freebsd-release-ports). Il s’agit de définir les configurations d’un démon par un fichier unique `/etc/{demon}.conf` et/ou un ensemble de fichiers dans le répertoire `/etc/{demon}.conf.d/` ; ceux‐ci étant étendus à `${LOCALBASE}` pour vos configurations _privées_, comme celles des _ports_. Ainsi, le déploiement de vos configurations est simplifié. L’option `MK_ARM_EABI` a été retirée de [`src.conf`](http://www.freebsd.org/cgi/man.cgi?query=src.conf&sektion=5&manpath=freebsd-release-ports). L’option `WITH_SYSTEM_COMPILER` a été introduite et activée par défaut. Elle permet, lors de la construction du système depuis les sources (i.e. `make buildworld`), d’utiliser le compilateur du système hôte si sa version est compatible, sans avoir à d’abord construire une version du compilateur. La suite d’outils NTP a été mise à jour, dont le format du fichier `/etc/ntp/leap-second`. Le script d’initialisation dispose désormais d’un nouvel argument `fetch` qui permet de mettre à jour ce fichier. Le script [`periodic`](https://www.freebsd.org/cgi/man.cgi?query=periodic&sektion=8&apropos=0&manpath=FreeBSD+11.0-RELEASE+and+Ports), activé par `daily_ntpd_leapfile_enable` et `daily_ntpd_avoid_congestion` pour éviter trop de requêtes simultanées, vient compléter le tableau pour permettre la mise à jour automatique de ce fichier. L'outil [service](https://www.freebsd.org/cgi/man.cgi?query=service&sektion=8&apropos=0&manpath=FreeBSD+11.0-RELEASE+and+Ports) comprend deux nouvelles directives `describe` et `extracommands` qui permettent respectivement de donner une description du démon et une liste de commandes non standards: ```` # service pf describe Packet Filter # service nginx extracommands reload configtest upgrade gracefulstop # service ntpd extracommands fetch ```` Le démon de routage multi‐diffusion (_multicast_) `mrouted`, retiré de la base, doit maintenant être installé depuis son [_port_](https://www.freshports.org/net/mrouted/). [`/etc/ttys`](https://www.freebsd.org/cgi/man.cgi?query=ttys&sektion=5&manpath=freebsd-release-ports) comprend un nouveau drapeau, `onifconsole`, pour n’activer le terminal que s’il s’agit d’une console ; ainsi qu’une nouvelle classe `3wire`, identique aux classes standards, mais sans champ `baudrate`. Dans le cadre d’une architecture ARM, les terminaux `ttyu1` à `ttyu3` sont activés par défaut. La gestion des opérations asynchrones [_aio_](https://www.freebsd.org/cgi/man.cgi?query=aio&sektion=4&apropos=0&manpath=FreeBSD+11.0-RELEASE+and+Ports) est intégrée par défaut. De même, `RACCT` et `RCTL`, liés au contrôleur de ressources [_rctl_](https://www.freebsd.org/cgi/man.cgi?query=rctl&sektion=8&apropos=0&manpath=FreeBSD+11.0-RELEASE+and+Ports), se retrouvent par défaut dans `GENERIC`. Vous pouvez les activer avec ` kern.racct.enable=1`. [_rctl_](https://www.freebsd.org/cgi/man.cgi?query=rctl&sektion=8&apropos=0&manpath=FreeBSD+11.0-RELEASE+and+Ports) permet désormais de limiter les accès au système de fichiers en lecture et/ou en écriture, en bande passante et/ou quantité d’entrées‐sorties par seconde. La configuration des touches spéciales, `kern.vt.spclkeys` du pilote [_vt_](http://www.freebsd.org/cgi/man.cgi?query=vt&sektion=4&manpath=freebsd-release-ports) est remplacée par un ensemble de clefs `kern.vt.kbd_*`. `lindev`, qui amenait `/dev/full`, est remplacé par [_full_](http://www.freebsd.org/cgi/man.cgi?query=full&sektion=4&manpath=freebsd-release-ports). Attention, les modules chargés sont maintenant prioritairement trouvés dans `/boot/modules` puis `/boot/kernel`. Noyau, bibliothèques et API =========================== Outre les modules et configurations destinés à intégrer et améliorer la prise en charge des systèmes ARM, de nombreux apports sont à noter. Un nouvel outil [`numactl`](http://www.freebsd.org/cgi/man.cgi?query=numactl&sektion=1&manpath=freebsd-release-ports) permet d’appliquer une politique particulière sur un fil d’exécution (_thread_) ou un _processus_ , d’affinité processeur et/ou de gestion de mémoire [NUMA](https://fr.wikipedia.org/wiki/Non_Uniform_Memory_Access "Non Uniform Memory Access"). La bibliothèque [_libxo_](https://github.com/Juniper/libxo) est intégrée dans la base ; celle‐ci permet de proposer les sorties des commandes en HTML/XML et JSON. De nombreuses commandes telles que `netstat` ont été adaptées à _libxo_. Une bibliothèque et un démon issu de NetBSD, [_blacklistd_](https://www.freebsd.org/cgi/man.cgi?query=blacklistd&sektion=8&apropos=0&manpath=FreeBSD+11.0-RELEASE+and+Ports) va permettre d’ajouter facilement des entrées à bloquer dans votre pare‐feu, à partir des connexions rejetées par vos démons réseau. Pour l’instant, si [_ipfw_](http://www.freebsd.org/cgi/man.cgi?query=ipfw&sektion=8&manpath=freebsd-release-ports) et [_pf_](http://www.freebsd.org/cgi/man.cgi?query=pf&sektion=8&manpath=freebsd-release-ports) sont gérés, les services suivants ont été adaptés pour permettre les notifications à `blacklistd` : `fingerd`, `ftpd`, `rlogind` et `rshd`. Poussée par [_nginx_](https://www.nginx.com) et [Netflix](https://openconnect.netflix.com/en/software/), l’implémentation de la routine [_sendfile_](http://www.freebsd.org/cgi/man.cgi?query=sendfile&sektion=2&manpath=freebsd-release-ports) devient asynchrone. De fait, une application ne bloquera plus sur cet appel. Ce qui permet aujourd’hui à Netflix d’envoyer ~~du bois~~ plusieurs dizaines de Gio/s. La fonction [`procctl()`](http://www.freebsd.org/cgi/man.cgi?query=procctl&sektion=2&manpath=freebsd-release-ports) a été améliorée pour intégrer une API écrite en collaboration avec [Dragonfly BSD](https://linuxfr.org/news/dragonfly-bsd-4-6-et-4-6-1). Elle permet de contrôler et de réattribuer les processus orphelins, pour en devenir littéralement la « faucheuse ». Elle est, entre autres, utilisée par l’outil [`protect`](http://www.freebsd.org/cgi/man.cgi?query=protect&sektion=1&manpath=freebsd-release-ports) qui permet de préserver un ou plusieurs processus de la destruction en cas de défaut d’espace d’échange de mémoire (_swap_). Il est désormais possible de gérer des cartes d’entrées‐sorties grâce à l’ajout de la bibliothèque [_gpio_](http://www.freebsd.org/cgi/man.cgi?query=gpio&sektion=3&manpath=freebsd-release-ports). [_casper_](https://www.freebsd.org/cgi/man.cgi?query=libcasper&sektion=3&apropos=0&manpath=FreeBSD+11.0-RELEASE+and+Ports), une bibliothèque permettant à des applications tournant dans un bac à sable ([_sandbox_](https://fr.wikipedia.org/wiki/Sandbox_%28s%C3%A9curit%C3%A9_informatique%29)) avec [_capsicum_](https://www.cl.cam.ac.uk/research/security/capsicum/freebsd.html), d’accéder de manière sécurisée à des ressources qui leur sont normalement inaccessibles, est intégrée dans la base. Elle est, entre autres, utilisée dans [`ping`](http://www.freebsd.org/cgi/man.cgi?query=ping&sektion=8&manpath=freebsd-release-ports) et [`tcpdump`](http://www.freebsd.org/cgi/man.cgi?query=tcpdump&sektion=1&manpath=freebsd-release-ports). [CloudABI](https://github.com/NuxiNL/cloudlibc), une autre plate‐forme d’isolation de privilèges, a été importée et est disponible pour AMD64 et ARM64. Attention ! La configuration `CUBIEBOARD2` a été renommée en `A20`, à utiliser pour les _Banana Pi_, par exemple. Jails ===== Désormais, vous pouvez monter les systèmes de fichiers liés à la compatibilité Linux, [_linprocfs_](http://www.freebsd.org/cgi/man.cgi?query=linprocfs&sektion=5&manpath=freebsd-release-ports) et [_linsysfs_](http://www.freebsd.org/cgi/man.cgi?query=linsysfs&sektion=5&manpath=freebsd-release-ports), dans une [_jail_](http://www.freebsd.org/cgi/man.cgi?query=jail&sektion=8&manpath=freebsd-release-ports). De même, vous pouvez y régler les paramètres système `kern.osrelease` et `kern.osreldate`. Pour filtrer leur sortie, les commandes suivantes intègrent le commutateur `-J` : * [`ps`](https://www.freebsd.org/cgi/man.cgi?query=ps&sektion=1&manpath=freebsd-release-ports) ; * [`top`](https://www.freebsd.org/cgi/man.cgi?query=top&sektion=1&manpath=freebsd-release-ports), de plus le nouveau commutateur `-j` ajoutera un champ d’identification de _jail_. Précisez « 0 » pour ne lister que les processus de l’hôte racine. [_jexec_](https://www.freebsd.org/cgi/man.cgi?query=jexec&sektion=8&manpath=freebsd-release-ports) comprend le commutateur `-l` pour remplacer `jail exec.clean`. De plus, cette commande lancera un _shell_ si aucune autre commande n’est précisée. Les bogues liés aux interfaces [_gif_](http://www.freebsd.org/cgi/man.cgi?query=gif&sektion=4&manpath=freebsd-release-ports) et [_gre_](http://www.freebsd.org/cgi/man.cgi?query=gre&sektion=4&manpath=freebsd-release-ports) ont été corrigés. Disques et systèmes de fichiers =============================== Le programme d’amorçage _loader_ vous permet d’entrer une phrase de passe pour [_geli_](https://www.freebsd.org/cgi/man.cgi?query=geli&sektion=8&manpath=freebsd-release-ports) à l’amorçage. Vous pouvez donc chiffrer entièrement vos disques. Ajoutez `geom_eli_passphrase_prompt="YES"` au fichier [`loader.conf`](http://www.freebsd.org/cgi/man.cgi?query=loader.conf&sektion=5&manpath=freebsd-release-ports). Vous pouvez donner une signature EFI SECURE BOOT grâce à [`uefisign`](https://www.freebsd.org/cgi/man.cgi?query=uefisign&sektion=8&manpath=freebsd-release-ports). L’outil [`fstyp`](https://www.freebsd.org/cgi/man.cgi?query=fstyp&sektion=8&manpath=freebsd-release-ports) détecte `zfs` et `geli`. Le chargeur EFI est dorénavant capable d’utiliser le système de fichiers `bzipfs`. L’outil de création d’image disque, [`mkimg`](https://www.freebsd.org/cgi/man.cgi?query=mkimg&sektion=1&manpath=freebsd-release-ports) propose trois nouveaux commutateurs pour indiquer ses possibilités": * `--version`, la version ; * `--formats`, les formats d’image possibles ; * `--schemes`, les schémas de partitions compatibles, qui incluent désormais : * EFI MBR, * NTFS en GPT et MBR, * la création de partitions vides, * `-c`, pour définir la taille de l’image. La commande [`gpart`](http://www.freebsd.org/cgi/man.cgi?query=gpart&sektion=8&manpath=freebsd-release-ports) comprend les schémas de partitionnement, `disklabel64`, `apple-boot`, `apple-hfs`, `apple-ufs` et `lenovofix` pour pallier une incompatibilité sur les portables Lenovo. La commande [`sesutil`](https://www.freebsd.org/cgi/man.cgi? query=sesutil&sektion=8&manpath=freebsd-release-ports) permet de piloter les boîtiers SCSI. Réseau ====== Vous êtes invités à consulter la [longue liste](https://www.freebsd.org/releases/11.0R/relnotes.html#drivers-network) de pilotes et cartes nouvellement gérés ou améliorés pour en savoir plus. La résolution de nom décrite dans `/etc/resolv.conf` ne sera relue que si la date de modification du fichier change. Packet filter -------------- L’algorithme de hachage cryptographique passe de _Jenkins_ à _Murmur3_, ce qui accroît les performances de 3 % en termes de paquets par seconde. La règle `scrub fragment crop|drop-ovl` est implicitement convertie en `scrub fragment reassemble`. Les protocoles **IPX** et **AppleTalk** ne sont plus pris en charge. La pile TCP a été modifiée pour répondre à la « _Packetization Layer Path MTU Discovery_ » ([RFC 4821](https://www.ietf.org/rfc/rfc4821.txt)), qui consiste à calculer la taille maximale d’un paquet ([MTU](https://fr.wikipedia.org/wiki/Maximum_transmission_unit "maximum transmission unit")), malgré les trous noirs. Cette fonctionnalité est pilotable par les clefs situées sous ``net.inet.tcp.pmtud_blackhole_*`. La configuration de l’[ECN](https://fr.wikipedia.org/wiki/Explicit_Congestion_Notification) accepte trois valeurs pour la clef `net.inet.tcp.ecn.enable` : * 0, pas de notification ; * 1, activation sur connexions entrantes et sortantes ; * 2, activation sur connexions entrantes seulement. Hyperviseurs ============ Le superviseur maison **_bhyve_** prend de l’assurance. De nouvelles architectures et de nouveaux pilotes de virtualisation sont au menu, parmi lesquels : * le pilote d’entropie [_virtio_random_](http://www.freebsd.org/cgi/man.cgi?query=virtio_random&sektion=4&manpath=freebsd-release-ports) ; * prise en charge des « _unmapped IO_ » ; * le « _Posted Interrupt Processing_ » est activé par défaut ; * il est possible d’obtenir une [console virtuelle](http://www.freebsd.org/cgi/man.cgi?query=virtio_console&sektion=4&manpath=freebsd-release-ports) via un [_tty_](http://www.freebsd.org/cgi/man.cgi?query=tty&sektion=4&manpath=freebsd-release-ports) ; * ajout de [UEFI-GOP](https://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface#Graphics_features), _Unified Extensible Firmware Interface Graphics Output_, permettant d’obtenir une session graphique pour les machines virtuelles (accessible via VNC). De nombreux changements concernant Xen : * ajout du mode [PVH](https://wiki.xen.org/wiki/Xen_Project_Software_Overview#PVH) (_domU_) ; * suppression du mode [PV](https://wiki.xen.org/wiki/Xen_Project_Software_Overview#PV) (_domU_, rendu obsolète par PVH) ; * ajout du _dom0_, FreeBSD pouvant ainsi être utilisé en tant que contrôleur de domaine Xen. Enfin, quelques pilotes pour Hyper-V ont été mis à jour. En vrac ======== L’outil de diagnostic PCI, [`pciconf`](http://www.freebsd.org/cgi/man.cgi?query=pciconf&sektion=8&manpath=freebsd-release-ports), permet d’interroger les périphériques par leur nom plutôt que par leur numéro, par le commutateur `-l`. De plus, les informations [VPD](https://en.wikipedia.org/wiki/Vital_Product_Data) sont ajoutées. Si vous avez installé la base de données PCI depuis le _port_ [_misc/pciid_](https://www.freshports.org/misc/pciids/), elle sera lue en remplacement de celle du système de base. La compatibilité Linux est portée à la version 2.6.18, évaluée dans la clef `compat.linux.osrelease`. Contributeurs ============= Cette nouvelle version a pu être peaufinée grâce au soutien de nombreux contributeurs, mais également de quelques entités qu’il est important de citer, parmi lesquelles : * [la Fondation FreeBSD](https://www.freebsdfoundation.org/) ; * ABT Systems, Ltd ; * AFRL ; * Chelsio Communications ; * Citrix Systems R & D ; * ClusterHQ ; * DARPA ; * Dell, Inc ; * EMC / Isilon Storage Division ; * Gandi.net ; * Intel Corporation ; * iXsystems ; * Juniper Networks, Inc ; * Limelight Networks ; * LSI ; * Microsoft Open Source Technology Center ; * MIT Computer Science & Artificial Intelligence Laboratory ; * Multiplay ; * Netflix ; * Netgate ; * Nginx, Inc ; * Norse Corporation ; * Sandvine, Inc ; * ScaleEngine, Inc ; * Solarflare Communications, Inc ; * Spectra Logic ; * Yandex LLC.

AltStyle によって変換されたページ (->オリジナル) /