Notes sur FreeBSD/i386 4.6-STABLE

Le Projet FreeBSD

$FreeBSD$

Les notes de version pour FreeBSD 4.6-STABLE contiennent un résumé des modifications apportées au système FreeBSD de base depuis la 4.6-RELEASE. Les changements concernant le noyau et les programmes utilisateurs sont indiqués ainsi que les avis de sécurité pour le système de base émis depuis la dernière version. Quelques brèves remarques à propos de la mise à jour sont également présentées.


Table of Contents
1 Introduction
2 Les nouveautés
2.1 Changements concernant le noyau
2.1.1 Support Processeur/Carte mère
2.1.2 Boot
2.1.3 Support des interfaces réseaux
2.1.4 Protocoles réseaux
2.1.5 Disques et stockage
2.1.6 Systèmes de fichier
2.1.7 Support PCCARD
2.1.8 Support Multimédia
2.1.9 Logiciels tiers
2.2 Avis de sécurité
2.3 Changements dans les programmes utilisateurs
2.3.1 Logiciels tiers
2.3.2 Collection de Paquetages/Ports
2.4 Intégration et création des versions
3 Mise à jour depuis une version antérieure de FreeBSD

1 Introduction

Ce document contient les notes de version pour FreeBSD 4.6-STABLE sur plate-forme IA-32. Il décrit les nouvelles fonctionnalités de FreeBSD ajoutées (ou modifiées) depuis la 4.6-RELEASE. Il donne également quelques informations au sujet de la mise à jour depuis les versions précédentes de FreeBSD.

La distribution snapshot à laquelle ces notes de version s'appliquent représente un "instantané" dans le développement de la branche 4-STABLE entre la 4.6-RELEASE et la future 4.7-RELEASE. Des distributions binaires pré-compilées de snapshot de cette branche sont disponibles sur http://snapshots.jp.FreeBSD.org/.


2 Les nouveautés

Cette section décrit les nouvelles fonctionnalités ou les modifications les plus visibles dans FreeBSD depuis la 4.6-RELEASE. Il s'agit typiquement des nouveaux drivers ou des nouveaux matériels supportés, des nouvelles commandes ou options, des corrections de bugs majeurs ou des mises à jour des logiciels tiers. Les avis de sécurité concernant le système de base découverts après la 4.6-RELEASE sont également indiqués.


2.1 Changements concernant le noyau

Ajout du driver puc(4) (PCI ``Universal'' Communications), pour faciliter la connexion des ports séries PCI au driver sio(4).

Le périphérique dump du noyau peut maintenant être indiqué au démarrage via la variable dumpdev. Il est donc maintenant possible d'obtenir des dumps de paniques se produisant durant les dernières étapes de l'initialisation du noyau (avant que le système n'entre en mode mono-utilisateur).

Le périphérique snp(4) n'est plus statique et peut maintenant être compilé en module.

Ajout du driver spic(4), qui donne accès au périphérique Jog Dial sur certains portables Sony. moused(8) supporte désormais également ce périphérique.

Ajout du driver viapm(4) pour les contrôleurs de gestion d'énergie VIA SMBus.


2.1.1 Support Processeur/Carte mère

Ajout de l'option noyau CPU_ATHLON_SSE_HACK qui essaye d'activer les fonctions SSE sur les nouveaux processeurs Athlon si le BIOS a omis de le faire.

Sur certains systèmes, le BIOS n'active pas les ports d'entrées/sorties ni la mémoire des périphériques PCI, ce qui les rends inutilisables. L'option noyau PCI_ENABLE_IO_MODES force FreeBSD à activer ces périphériques de manière à ce qu'ils puissent être utilisés.


2.1.2 Boot

boot2 supporte désormais une option -n pour interdire l'interruption du démarrage par une touche du clavier.


2.1.3 Support des interfaces réseaux

Le driver an(4) supporte désormais le Cisco LEAP ainsi que la clef ``Home'' WEP. Les utilitaires Aironet pour Linux sont maintenant supportés via l'émulation.

Ajout du support générique pour les réseaux à jeton ARCNET.

Ajout du driver cm pour le support des adaptateurs réseaux SMC COM90cx6 ARCNET.

Le driver dc(4) supporte maintenant les VLANs.

Le support des cartes Ethernet Gigabit Intel dans le noyau GENERIC est maintenant fourni par le driver em(4) plutôt que par le driver wx(4). Ce dernier est obsolète depuis FreeBSD 4.5-RELEASE.

Ajout du driver my, qui supporte les adaptateurs Fast Ethernet et Gigabit Ethernet Myson.

Le driver wi(4) supporte maintenant les cartes réseaux basées sur les Prism II et Prism 2.5. Le WEP en 104/128 bits fonctionne désormais avec les cartes Prism.

Le driver wi(4) supporte désormais l'utilisation de FreeBSD en tant que point d'accès sans fil. Cette fonction peut être activée avec l'option mediaopt hostap option de ifconfig(8). Elle recquiert un adaptateur sans fil basé sur le composant Prism II.

Le driver wi(4) supporte maintenant les bsd-airtools.

Le driver xe peut maintenant être compilé en tant que module.

Quelques drivers réseaux proposent maintenant un mode "semi-polling", ce qui rends le système bien plus résistant aux attaques et aux pointes de charges. Pour autoriser ce mode, les options suivantes sont requises dans le fichier de configuration du noyau :

    options DEVICE_POLLING
    options HZ=1000 # pas obligatoire mais fortement recommandée
La variable système kern.polling.enable activera alors ce mode; avec la variable kern.polling.user_frac indiquant le pourcentage de temps processeur réservé aux programmes utilisateurs. Les périphériques supportant pour le moment ce mode sont dc(4), fxp(4), rl(4) et sis(4). D'autres informations sont disponibles dans la page de manuel polling(4).


2.1.4 Protocoles réseaux

bridge(4) a maintenant un meilleur support des clusters de passerelles indépendantes et est beaucoup plus stable en présence d'attachements et de détachements dynamiques. Un support complet des VLANs est également présent.

Un bug dans le traitement IPsec pour IPv4, qui faisait en sorte que les vérifications SPD en entrées étaient ignorées, a été corrigé.

Ajout du nouveau module netgraph ng_eiface qui apparaît comme une interface Ethernet mais qui délivre ses trames Ethernet vers une redirection Netgraph.

Nouveau noeud netgraph ng_etf(4) qui permet aux paquets de type Ethernet d'être filtrés vers différentes redirections selon le type ethernet.

L'implémentation syncache de tcp(4) avait un bug qui pouvait provoquer des paniques du noyau; cela a été corrigé.

L'implémentation TCP ignore maintenant correctement les paquets à destination des adresses broadcast de la couche IP.


2.1.5 Disques et stockage

Le driver ahc(4) a été mis à jour avec la version de FreeBSD -CURRENT du 29 Avril 2002.

Le driver ata(4) a été mis à jour avec la version de FreeBSD -CURRENT du 18 Mars 2002.

Important: Quelques utilisateurs ont rencontré des problèmes lors de tests avec le "tagged queueing" ATA. Les symptomes typiques sont des dépassements de délai en lecture lors du démarrage ce qui conduit à un échec pour monter le système de fichier racine. Ces problèmes sont apparus uniquement sur les systèmes ayant des disques qui supportent le "tagged queueing" connectés aux contrôleurs ATA de la carte mère. Comme cette fonction est seulement supportée par certains disques durs ATA et doit être activée explicitement (en ajoutant hw.ata.tags="1" dans le fichier /boot/loader.conf), cela ne devrait pas poser de problème pour la majorité des utilisateurs.

Le driver ata(4) supporte maintenant la création, la suppression, l'interrogation et la reconstruction des RAID ATA avec atacontrol(8).


2.1.6 Systèmes de fichier

Correction d'un bug dans "soft updates" qui pouvait provoquer occasionnellement une corruption du système de fichier si le système était arrêté immédiatement après une intense activité du système de fichier, comme l'installation d'un nouveau noyau ou d'un logiciel.


2.1.8 Support Multimédia

Le driver ufm, pour le support de la radio USB D-Link DSB-R100, a été ajouté.

Le driver audio via82c686 supporte désormais le VIA VT8233.

Le driver audio ich supporte désormais le composant SiS 7012.

Le driver pcm(4) a été mis à jour avec la version de FreeBSD -CURRENT du 22 Avril 2002.


2.1.9 Logiciels tiers

2.1.9.1 IPFilter

Mise à jour de IPFilter avec la version 3.4.27.


2.1.9.2 isdn4bsd

Ajout du driver ifpi2(4) pour le support du contrôleur PCI AVM Fritz!Card version 2.


2.2 Avis de sécurité

Un bug ``off-by-one'' a été corrigé dans le code de multiplexage de OpenSSH. Ce bug pouvait permettre à un utilisateur distant authentifié de faire exécuter du code par sshd(8) avec les privilèges super-utilisateur ou pouvait permettre à un serveur SSH d'exécuter du code sur le système client avec les privilèges de l'utilisateur du client. (Consultez l'avis de sécurité FreeBSD-SA-02:13.)

Une erreur de programmation dans zlib pouvait conduire à essayer de libérer le même bloc mémoire plusieurs fois. Les routines malloc(3)/ free(3) utilisés dans FreeBSD ne sont pas vulnérables à cette erreur, mais les applications recevant des blocs spécialement conçus dans ce but ou des données compressées invalides pouvaient ne plus fonctionner correctement ou s'interrompre. Ce bug de zlib a été corrigé. Pour les solutions et savoir comment comment contourner le problème, consultez l'avis de sécurité FreeBSD-SA-02:18.

Des bugs dans les implémentations du cache SYN (``syncache'') et du cookie SYN (``syncookie'') de TCP, qui pouvait faire planter une machine avec un traffic TCP/IP tout à fait correct, ont été corrigés. Pour les patches et savoir comment contourner ce problème, consultez l'avis de sécurité FreeBSD-SA-02:20.

Une perte mémoire dans la table de routage, qui pouvait permettre à un attaquant distant d'épuiser les ressources mémoires d'une machine cible, a été corrigé. Les patches et le moyen de contourner ce problème sont disponibles dans l'avis de sécurité FreeBSD-SA-02:21.

Un bug concernant les Entrées/Sorties "mappées" en mémoire, qui pouvait provoquer un crash du système, a été corrigé. Pour plus d'informations à propos de la solution, consultez l'avis de sécurité FreeBSD-SA-02:22.

Un trou de sécurité, grâce auquel les programmes SUID pouvaient lire ou écrire des fichiers incorrects en manipulant leurs descripteurs de fichier d'Entrées/Sorties standards, a été corrigé. La solution est disponible dans l'avis de sécurité FreeBSD-SA-02:23.

Un comportement inattendu pouvait se produire avec k5su(8) parce qu'il ne vérifiait pas que l'utilisateur était membre du groupe wheel lorsqu'il essayait de passer en super-utilisateur (c'est le cas avec su(1)). Pour éviter cette situation, k5su(8) est maintenant installé en non-SUID par défaut (ce qui le rends inutilisable). Plus d'informations sont disponibles dans l'avis de sécurité FreeBSD-SA-02:24.

Plusieurs vulnérabilités ont été découvertes dans l'utilitaire bzip2(1), qui pouvait conduire à l'écrasement de fichiers sans avertissement ou permettre à des utilisateurs locaux d'accéder à des fichiers protégés. Ces problèmes ont été corrigés avec la mise à jour de bzip2. Pour plus d'informations, consultez l'avis de sécurité FreeBSD-SA-02:25.

Un bug a été corrigé dans l'implémentation du cache SYN de TCP (``syncache''), qui pouvait permettre à un attaquant distant d'interdire l'accès à un service lorsque les filtres d'accès (voir accept_filter(9)) étaient utilisés. Ce bug a été corrigé; pour plus d'informations, consultez l'avis de sécurité FreeBSD-SA-02:26.

A cause d'un bug dans l'utilisation des caractères spéciaux du shell dans rc(8), les utilisateurs pouvaient supprimer le contenu de n'importe quel fichier si /tmp/.X11-unix n'existait pas et que le système était relancé. Ce bug a été corrigé (consultez l'avis de sécuritéFreeBSD-SA-02:27).


2.3 Changements dans les programmes utilisateurs

Ajout de atacontrol(8) pour contrôler divers aspects du driver ata(4).

Pour les lecteurs CDROM ATAPI, cdcontrol(1) supporte maintenant une commande speed afin d'indiquer la vitesse maximale à utiliser avec le lecteur.

ctags(1) ne créé plus un fichier de tags corrompu si le fichier source utilise des commentaires // (style C++).

dump(8) donne maintenant une indication sur sa progression dans le titre du processus, ce qui peut être utile pour surveiller les sauvegardes automatiques.

/etc/rc.firewall et /etc/rc.firewall6 n'ajoutent plus leurs propres règles dans les cas où le fichier de règles est indiqué dans la variable firewall_type ou si le type de firewall n'existe pas (la motivation pour cette modification est d'éviter de faire des suppositions sur la politique de sécurité d'un site). De plus, le firewall de type closed fonctionne désormais tel que documenté dans la page de manuel rc.firewall(8).

Les fonctionnalités de /etc/security ont été déplacées vers un ensemble de scripts dans le cadre de periodic(8), de manière à faciliter les personnalisations et à les rendre plus simple à maintenir. Ces scripts sont maintenant situés dans /etc/periodic/security/.

La famille d'adresse ether de ifconfig(8) a été modifiée au profit de la famille link plus générique (ether est toujours accepté pour conserver la compatibilité).

fsdb(8) supporte maintenant une commande blocks afin de lister les blocs alloués par un inode particulier.

ispppcontrol(8) a été supprimé et ses fonctionnalités ont été ajoutées dans spppcontrol(8).

k5su(8) n'est plus installé par défaut en tant que SUID root. Les utilisateurs qui ont besoin de cette fonction peuvent soit changer manuellement les permissions sur l'exécutable k5su(8) ou ajouter ENABLE_SUID_K5SU=yes dans le fichier /etc/make.conf avant une mise à jour via les sources.

ldd(1) peut maintenant s'utiliser avec les librairies partagées, en plus des exécutables.

last(1) supporte désormais une option -y qui permet d'inclure l'année dans la date de début de session.

libstand supporte désormais le chargement de noyaux et modules de taille importante partagés entre plusieurs périphériques.

libusb a été renommé en libusbhidpour suivre les conventions de nommage de NetBSD.

lpd(8) reconnait maintenant l'option -s en tant qu'équivalent à l'option -p (ces options indiquent à lpd(8) de ne pas ouvrir de socket pour les travaux d'impression en réseau).

lpd(8) dispose maintenant d'une nouvelle option printcap rc. Lorsqu'elle est spécifiée dans une file d'impression pour un hôte distant, cette option indique à lpd(8) de réenvoyer le fichier de données pour chaque copie demandée par l'utilisateur via la commande lpr -#n.

ls(1) accepte désormais l'option -h, qui lorsqu'elle est combinée avec l'option -l, permet d'afficher l'unité utilisée pour les tailles des fichiers choisi de façon à ce que le nombre de chiffres affichés soit inférieur à quatre.

m4(1) accepte maintenant l'option -s qui permet d'émettre les directives #line pour une utilisation avec cpp(1).

mergemaster(8) supporte désormais deux nouvelles options. L'option -p indique un mode ``pre-buildworld'' pour comparer les fichiers essentiels à la réussite des étapes buildworld et installworld de la mise à jour du système. L'option -C, utilisé après une première utilisation réussie de mergemaster(8), compare les options de /etc/rc.conf avec les options par défaut de /etc/defaults/rc.conf.

ngctl(8) supporte maintenant une commande write pour envoyer un paquet de données à travers une redirection donnée.

patch(1) accepte maintenant une option -i pour lire un patch depuis un fichier plutôt que depuis l'entrée standard.

Un module pam_ssh(8) a été ajouté afin de permettre l'utilisation des mots de passe et des clefs SSH pour l'authentification. Ce module prends également en charge la gestion des sessions en utilisant ssh-agent(1).

pr(1) supporte maintenant les options -f et -p pour interrompre la sortie vers le terminal.

L'option -W de ps(1) (pour extraire des informations à partir d'un périphérique de swap spécifique) est inutile depuis déjà quelque temps; elle a été supprimée.

reboot(8) accepte maintenant une option -k pour spécifier le noyau lors du prochain démarrage.

sshd(8) n'émets plus un faux challenge S/Key pour les utilisateurs qui n'ont pas activé S/Key. Le comportement antérieur pouvait prêter à confusion en envoyant une invite inutile de mot de passe à utilisation unique avec certains clients SSH récents lors d'une connexion à un système FreeBSD.

sysinstall(8) a maintenant un support rudimentaire pour retrouver les paquetages depuis le bon volume d'une installation faites à partir de plusieurs volumes (comme une distribution sur plusieurs CD).

tftp(1) et tftpd(8) supportent désormais IPv6.

Ajout de usbhidctl(1) pour la manipulation des périphériques d'interfaces homme-machine USB.

uuencode(1) et uudecode(1) acceptent désormais une option -o pour indiquer leurs fichiers de sortie. uuencode(1) peut maintenant coder en base64 grâce à l'option -m, et uudecode(1) peut maintenant automatiquement décoder les fichiers base64.

watch(8) dispose maintenant d'une option -f pour spécifier le périphérique snp(4) à utiliser.

Les noms de locales de la forme *.EUC ont été renommés en *.euc??. Par exemple, ja_JP.EUC est devenu ja_JP.eucJP. Cela permet d'améliorer la compatibilité des noms de locales avec FreeBSD CURRENT, X11R6 et plusieurs autres versions d'UNIX.

Le support de la localisation a été mis à jour avec FreeBSD -CURRENT. Ce changement apporte un support des catégories LC_NUMERIC, LC_MONETARY, et LC_MESSAGES, plusieurs améliorations à strftime(3), une révision des définitions de locales, et une amélioration de la localisation pour de nombreux programmes du système de base.


2.3.1 Logiciels tiers

Mise à jour de BIND avec la version 8.3.2-T1B.

Mise à jour de bzip2 avec la version 1.0.2.

Mise à jour de Heimdal Kerberos avec la version 0.4e.

Mise à jour du client ISC DHCP avec la version 3.0.1RC8.

Mise à jour de texinfo avec la version 4.1.

Mise à jour de la base de données des fuseaux horaires avec la version tzdata2002c.


2.3.1.1 Sendmail

Mise à jour de sendmail avec la version 8.12.3. sendmail(8) n'est plus installé en tant que binaire avec les droits root (et il appartient maintenant au groupe smmsp). Consultez /usr/src/contrib/sendmail/RELEASE_NOTES et /etc/mail/README pour plus d'informations.

Avec cette mise à jour de sendmail, plusieurs démons sendmail (dont certains requis pour la gestion des messages sortant) sont lancés par rc(8) même si la variable sendmail_enable est mise à NO. Pour désactiver complètement sendmail, sendmail_enable doit être mis à NONE. Pour les systèmes utilisant un MTA différent, la variable mta_start_script peut être utilisée pour pointer sur un script de démarrage différent (de plus amples détails se trouvent dans rc.sendmail(8)).

Les permissions des alias et des bases de données sendmail générés via /etc/mail/Makefile ont maintenant le mode 0640 par défaut pour assurer une protection contre le déni de service par vérouillage local du fichier. Ce mode peut être modifié avec la nouvelle option SENDMAIL_MAP_PERMS du fichier make.conf.

Les permissions du fichier de statistiques /var/log/sendmail.st de sendmail ont été modifiés du mode 0644 au mode 0640 pour assurer une protection contre le déni de service par vérouillage local du fichier.


2.3.2 Collection de Paquetages/Ports

La collection des ports utilise désormais XFree86 4.2.0 comme version par défaut de X Window pour le respect des dépendances. Pour utiliser XFree86 3.3.6, ajoutez la ligne suivante au fichier /etc/make.conf :

    XFREE86_VERSION=3

2.4 Intégration et création des versions

XFree86 4.2.0 est maintenant la version par défaut de X Window supporté par sysinstall(8). Il installe XFree86 comme un ensemble de paquetages binaires standards et donc les utilitaires habituels dédiés aux paquetages comme pkg_info(1) peuvent être utilisés afin d'examiner/de manipuler ses composants.


3 Mise à jour depuis une version antérieure de FreeBSD

Si vous effectuez une mise à jour depuis une version antérieure de FreeBSD, vous avez généralement 3 options :



Veuillez consulter le fichier INSTALL.TXT pour plus d'informations, si possible avant de commencer la mise à jour. Si vous faites une mise à jour à partir des sources, consultez également le fichier /usr/src/UPDATING.

Enfin, si vous désirez utiliser une des manières de suivre les branches -STABLE ou -CURRENT de FreeBSD, veuillez consulter la section ``-CURRENT vs. -STABLE'' du Manuel de Référence FreeBSD.

Important: La mise à jour de FreeBSD doit, bien évidemment, être effectuée uniquement après avoir sauvegardé toutes les données et tous les fichiers de configuration.


This file, and other release-related documents, can be downloaded from http://snapshots.jp.FreeBSD.org/.

For questions about FreeBSD, read the documentation before contacting <questions@FreeBSD.org>.

All users of FreeBSD 4-STABLE should subscribe to the <stable@FreeBSD.org> mailing list.

For questions about this documentation, e-mail <doc@FreeBSD.org>.