URL: https://linuxfr.org/news/red-hat-enterprise-linux-7 Title: Red Hat Enterprise Linux 7 Authors: Nils Ratusznik Siosm, BAud, Davy Defaud, ManuxFr, palm123, Jérôme F., Dareg, Nÿco, tomestla, claudex, olivierweb, GeneralZod et ZeroHeure Date: 2013年12月11日T17:30:42+01:00 License: CC By-SA Tags: rhel, red_hat, libreoffice, fortran, fedora, firefox et selinux Score: 55 C’est après une version bêta et une version candidate que Red Hat a annoncé ce 10 juin la disponibilité publique de Red Hat Enterprise Linux (RHEL) 7, distribution commerciale destinée aux professionnels et aux entreprises. Il s’agit d’une version majeure, apportant un lot conséquent de nouveautés. Red Hat Enterprise Linux 7 est disponible pour les architectures AMD64/Intel64 et IBM (POWER7, POWER8 et System Z). Les versions bêta et _Release Candidate_ ont été rendues publiques les 11 décembre et 15 avril derniers. Le nom de code de cette version est _Maipo_. ![RHEL](https://img.linuxfr.org/img/687474703a2f2f66722e7265646861742e636f6d2f726865636d2f726573742d726865636d2f6a63722f7265706f7369746f72792f636f6c6c61626f726174696f6e2f7369746573253230636f6e74656e742f6c6976652f7265646861742f7765622d636162696e65742f686f6d652f70726f64756374732f656e74657270726973652d6c696e75782f696e6465782f72683a68656164657247726170686963/rh:headerGraphic) ---- [Red Hat](http://www.redhat.com) [DLFP : Red Hat Enterprise Linux 6.5](http://linuxfr.org/news/red-hat-enterprise-linux-6-5) [DLFP : Red Hat Enterprise Linux 5.10](http://linuxfr.org/news/red-hat-enterprise-linux-5-10) [Annonce de RHEL 7](http://www.redhat.com/about/news/press-archive/2014/6/red-hat-unveils-rhel-7) [Red Hat Developer Blog : Red Hat Announces RHEL 7 Beta!](http://developerblog.redhat.com/2013/12/11/rh-announces-rhel-7-beta/) [Acheter RHEL](https://www.redhat.com/apps/store/server/rhel.html) [Annonce de la Release Candidate](http://www.redhat.com/about/news/archive/2014/4/red-hat-enterprise-linux-7rc-available) [Presentations du Red Hat Summit 2014](http://www.redhat.com/summit/2014/presentations/) [Annonce de la version bêta](http://www.redhat.com/about/news/archive/2013/12/red-hat-announces-availability-of-red-hat-enterprise-linux-7-beta) [Annonce de la Release Candidate](http://www.redhat.com/about/news/archive/2014/4/red-hat-enterprise-linux-7rc-available) [Notes de version (la version anglaise est plus récente)](https://access.redhat.com/site/documentation/fr-FR/Red_Hat_Enterprise_Linux/7/html/7.0_Release_Notes/index.html) [Notes de version](https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/7.0_Release_Notes/index.html) [Documentation RHEL 7](https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/) [Documentation RHEL 7 (en cours de traduction)](https://access.redhat.com/site/documentation/fr-FR/Red_Hat_Enterprise_Linux/index.html) ---- # Versions logicielles # Dans les grandes lignes, RHEL 7 c’est : * noyau Linux 3.10 ; * Glibc 2.17 ; * GNOME 3.8 ; * KDE 4.10 ; * Python 2.7.5 ; * Firefox 24.4 ; * LibreOffice 4.1 ; * Bash 4.2 ; * OpenSSH 6.4p1 ; * Apache HTTPD 2.4.6 ; * PHP 5.4.16 ; * Bind 9.9 ; * DHCP 4.2 ; * PostgreSQL 9.2 ; * Postfix 2.10 ; * Sendmail 8.14.7 ; * MariaDB 5.5.35 ; * Perl 5.16.3 ; * GCC 4.8.2 ; * GDB 7.6.1 ; * SystemTap 2.4 ; * Samba 4.1.1 ; * systemd 208 ; * Xorg-server 1.15.0. Globalement, en termes de versions logicielles, RHEL 7 se rapproche de Fedora 19. # Nouveautés importantes # * [MariaDB remplace MySQL](http://www.zdnet.com/red-hat-enterprise-linux-7-beta-arrives-with-mariadb-as-its-default-database-7000024194/) ; * _systemd_ remplace Upstart comme système d’init ; * inclusion de Docker et de LXC, montrant l’ambition de Red Hat à faire de RHEL la plate-forme d’informatique en nuages de référence ; * XFS comme système de fichiers par défaut, en remplacement d’_ext4_. Cette dépêche est fortement inspirée de la [_technical overview_](https://access.redhat.com/site/sites/default/files/pages/attachments/rhel_whatsnewrhel7beta_techoverview_.pdf) officielle et des notes de version. ## systemd ## `systemd` est utilisé comme `init` (système d’initialisation, démarrage) par défaut. Il s’occupe donc de gérer les services, le système (_watch dogs_, ACPI...) et aussi partiellement les machines virtuelles et les conteneurs (en coopération avec _libvirtd_). En effet, la version présente est la 208, qui inclut notamment les changements introduits dans la version 205 : la « [prise de possession de l’arbre des _cgroups_](http://lists.freedesktop.org/archives/systemd-devel/2013-July/011679.html) ». `systemd` est le seul responsable de l’arborescence des _cgroups_ et se charge donc d’y placer tous les processus. Cette nouvelle interface est décrite sur le [wiki de _systemd_](http://www.freedesktop.org/wiki/Software/systemd/ControlGroupInterface/). La différence ici sera donc marquée, même par rapport à un système avec un _systemd_ ancien (Debian, par exemple) : [le cas pour _libvirt_](http://libvirt.org/cgroups.html). # Installation # C'est sans doute la première chose qui va sauter aux yeux lorsque vous installerez RHEL 7 : Anaconda. Si vous n'avez pas utilisé une Fedora depuis la version 18, la surprise sera totale et vous aurez du mal à reconnaître l'interface d'installation, dont les menus sont accessibles en deux étapes principales. Parmi les nouveautés d'Anaconda, on trouvera : * une meilleure internationalisation ; * une gestion de cette internationalisation en fonction de la géolocalisation : la langue et l'heure de la machine peuvent être automatiquement définies grâce à cette donnée ; * la possibilité de configurer un système de fichier **tmpfs** ; * une configuration réseau plus complète, avec par exemple l’agrégation de cartes réseau. ![Anaconda RHEL7](http://medias.anotherhomepage.org/pix/misc/anaconda_rhel70.png) Autre nouveauté non négligeable, la mise à jour : il devient possible de mettre à jour une RHEL 6.5 (ou ultérieure dans la branche 6) vers RHEL 7 ! C'est une avancée majeure pour Red Hat, qui prend en charge officiellement cette possibilité. Une autre chose importante à noter : l'installeur n'est plus accessible pour les machines x86 à processeur 32 bits. Si pour certains cela peut être décevant, il convient de rappeler que depuis plusieurs années, les principaux fabricants de serveurs x86 ne proposent que des machines x86_64, les seules machines 32 bits récentes étant dotées de processeurs de faible puissance et de faible consommation (comme par exemple la gamme Soekris net6501), qui ne sont clairement pas la cible commerciale de Red Hat. Malgré tout, de nombreux paquets compilés pour i686 sont disponibles, ce qui laisse encore du temps si vous avez des développements spécifiques à cette architecture. # Matériel # ## Pilotes et périphériques ## Le retrait de l'architecture 32 bits x86 des plateformes prises en charge permet à Red Hat de faire le ménage. Un certain nombre de pilotes et de modules quittent RHEL, dont par exemple **b43-fwcutter**, **b43-openfwwf**, **forcedeth**, **ipw2100**, **ipw2200** et **via-rhine**. La liste complète des modules non reconduits dans RHEL 7 est disponible dans la section 4.4.1 du [guide de migration](https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Migration_Planning_Guide/sect-Red_Hat_Enterprise_Linux-Migration_Planning_Guide-Removed_Packages.html#sect-Red_Hat_Enterprise_Linux-Migration_Planning_Guide-Removed_Packages-Removed_Drivers). ## Préconisations matérielles ## Pour faire fonctionner RHEL 7, Red Hat recommande de disposer d'au moins 1 Go de mémoire vive (c'était déjà le cas avec RHEL 6). Dans les faits, il est possible de démarrer avec seulement 256 Mo de mémoire vive, mais il vaudra mieux en avoir 512 Mo pour ouvrir une session graphique (et il ne faudra pas être pressé). Du côté de l'installeur, celui-ci refusera de démarrer en dessous de 512 Mo de mémoire. Pour ce qui est de la limite haute, Red Hat a augmenté le nombre de processeurs logiques que peut utiliser RHEL. Là où RHEL 6 en est actuellement à 4096 coeurs (en x86_64), la 7 monte jusqu'à 5120 ! Pour la mémoire vive, le maximum annoncé est de 64 To. ## Gestion des performances ## ### Performance Co-Pilot Performance Co-Pilot est un outil de mesure, de surveillance et d’analyse des performances d’un système qui s’intègre avec les outils classiques (`syslog`...). Des détails sont disponibles aux liens suivants : * http://developerblog.redhat.com/2013/11/19/exploratory-performance-pcp/ ; * http://developerblog.redhat.com/2013/11/26/performance-regression-pcp/ ; * http://blahg.josefsipek.net/?tag=pcp ; * http://oss.sgi.com/projects/pcp/. ### Tuned et profils Tuned Tuned est un démon qui change la configuration du système (principalement le noyau) pour s'adapter à l'utilisation du système. Il permet de facilement configurer un système pour l'orienter performance ou économie d'énergie. Des profils par défaut sont fournis pour chaque variante de RHEL. ### Affinité NUMA La version du noyau incluse dans RHEL 7 améliore les performances pour les systèmes de type [NUMA](http://en.wikipedia.org/wiki/Non-uniform_memory_access). Sur ces systèmes, les temps d'accès à la mémoire ne sont pas uniformes et dépendent de la proximité physique des barrettes de RAM. Il faut donc gérer la répartition de la mémoire judicieusement en fonction des cœurs sur lesquels les processus s'exécutent. C'est le noyau qui est chargé de cette optimisation pour réduire les communications inter-nœuds. ### Mécanisme de remontée des événements matériels (HERM) Diverses améliorations dans le noyau et un démon en espace utilisateur (rasdaemon) permettent d'obtenir des informations plus cohérentes sur les rapports d'événement matériel. # Stockage et systèmes de fichiers # ## XFS ## Le système de fichiers utilisé par défaut lors de l’installation est maintenant XFS, qui succède à ext4. Btrfs est disponible lors de l’installation, mais n’est pas recommandé par défaut (aperçu technologique, non pris en charge pour la production). Tant XFS que BtrFS (quand il sera pleinement pris en charge) voient leurs capacités prises en charge poussées 500 Tio par système de fichiers. ## /tmp en tmpfs par défaut ## Avec systemd vient le passage du répertoire /tmp au système de fichiers intégralement en mémoire tmpfs par défaut. Cela ne semble affecter que les machines physiques (les machines virtuelles ont un /tmp sur disque par défaut apparemment puisqu'il semble que systemd détecte qu'il n'est pas sur une machine physique). Cette fonction peut se désactiver très facilement (appliqué au prochain redémarrage) :> $ systemctl mask tmp.mount ## ext4 ## Le système de fichiers _ext4_ prend désormais en charge des fichiers de 50 Tio contre 16 Tio auparavant. ##Cache de périphérique blocs sur disque SSD Un autre aperçu technologique de RHEL 7 est la possibilité d'utiliser un disque SSD PCIe comme cache intermédiaire pour des disques mécaniques plus lents, via `lvm(8)`. # Virtualisation # ## Conteneurs Linux (LXC) et Docker Les conteneurs permettent d'isoler des processus ou des environnements plus facilement et de façon moins lourde que les machines virtuelles sur un système. Ils sont particulièrement utiles lorsque l'on veut lancer plusieurs instances d'une application et qu'elles partagent des ressources (les binaires, les bibliothèques...). Les conteneurs sur RHEL 7 utiliseront quatre technologies introduites en partie dans les noyaux récents : * les espaces de noms (namespace), qui sont de plusieurs types, et permettent principalement de mieux isoler les processus entre eux ; * les Cgroups, qui facilitent la gestion dynamique et contrôlent l'accès aux ressources ; * SELinux, chargé de la sécurité, de l'isolation et du contrôle d'accès pour les conteneurs ; il faut noter que le contrôle d'accès SELinux vise principalement à isoler les conteneurs entre eux et vis-à-vis du système, sans ajout de contrôle supplémentaire à l'intérieur du conteneur, lequel ayant d'ailleurs l'impression que SELinux est désactivé ; * libvirt, qui permet d'administrer les conteneurs. Pour pouvoir dupliquer rapidement des conteneurs, Docker utilisait le système de fichiers AUFS qui permet de faire des copies liées de systèmes de fichiers de façon très peu coûteuse en temps. Malheureusement, le système de fichiers AUFS n'est inclus ni dans le noyau upstream ni dans les noyaux des distributions autres qu'Ubuntu. Depuis la version 0.7, Docker peut utiliser d'autres méthodes de stockage (fichiers et dossier simples ou Device Mapper et LVM). C'était la raison principale qui retardait l'apparition de Docker dans RHEL, Fedora et les autres distributions. Attention cependant, Docker n'est pas disponible dans l'image ISO de base ou dans le canal de base, il faudra activer les dépôts "extras" et "optional", comme indiqué dans [la documentation](https://access.redhat.com/site/articles/881893#get). ## VMware La machine virtuelle RHEL 7 dispose d'une meilleure intégration avec l'hyperviseur VMware vSphere, grâce notamment à l'ajout des Open VM Tools, fruit de l'ouverture partielle du code source des VMware Tools. La société VMware garde cependant certaines parties de ces outils en licence propriétaire. À noter aussi la prise en charge de l'accélération 3D matérielle dans les machines virtuelles (rendu OpenGL et X11), ainsi qu'un mécanisme de communication plus rapide entre celles-ci et le système hôte VMware ESX. Ces ajouts permettent l'exécution encore plus performante d'une machine virtuelle Red Hat Enterprise Linux fonctionnant sous VMware. Pour plus d'informations, VMware dispose d'une [page dédiée à RHEL 7 sur son site](http://partnerweb.vmware.com/GOSIG/RHEL_7.html). ## Xen Sans plus de détails, Red Hat indique que RHEL 7 fonctionne en tant que domU [HVM](http://en.wikipedia.org/wiki/Hardware_virtual_machine) sous Xen. ## Hyper-V RHEL 7 est utilisable comme machine virtuelle de génération 2 avec un hôte Microsoft Hyper-V Server 2012 R2. Cette deuxième génération permet entre autres d'avoir accès à Secure Boot, un UEFI ou de démarrer depuis un disque virtuel SCSI. ## KVM La solution privilégiée par Red Hat pour la virtualisation n'est pas en reste avec cette nouvelle version majeure de RHEL : il est possible de migrer une machine virtuelle d'un hyperviseur RHEL 6.5 vers un hypverviseur RHEL 7.0 en direct, sans arrêt. De plus, un nouveau périphérique, **virtio-rng**, pourra être accessible aux machines virtuelles pour qu'elles disposent de plus d'entropie, en provenance de l'hôte. Par défaut, l'hôte utilisera _/dev/random_, mais un générateur matériel de nombres aléatoires pourra être utilisé. Côté invités, Red Hat annonce la possibilité d'utiliser les derniers systèmes de Microsoft, Windows 8 et Windows Server 2012. # Haute disponibilité et grappes de calcul # Dans ce domaine, le changement est flagrant : au revoir **rgmanager**, bonjour **Pacemaker** ! Du coup, le système de configuration, nommé **pcs**, remplace **ccs**, **ricci** et **luci**. Pacemaker apporte beaucoup, comme une synchronisation automatique de la configuration des ressources, des options de configuration de ressources basées sur l'heure, le fait d'avoir un outil de configuration en ligne de commande. Cela se fait malheureusement au prix de l’interopérabilité entre des nœuds RHEL 6 et 7 dans un cluster. Il sera sans doute préférable de créer un nouveau cluster RHEL 7 plutôt que de migrer progressivement un cluster existant sous RHEL 6. # Réseau # Dans les précédentes RHEL, pour agréger plusieurs cartes réseau, on utilisait le _bonding_. Red Hat a inclus dans RHEL 7 le _teaming_ et recommande son utilisation. Si vous avez haï NetworkManager dans RHEL 6 au point de le désactiver dès que possible, du fait de son inadéquation à l'utilisation sur un serveur, sachez que vous avez peut-être été entendu. Non, NetworkManager n'a pas été sorti de RHEL, mais il a été amélioré sur ce point et vous disposez maintenant d'un outil nommé **nmcli**. Comme NetworkManager ne passe plus son temps à surveiller des modifications dans la configuration réseau, vous pouvez éditer celle-ci manuellement (ou déployer un nouveau fichier avec par exemple Puppet, Salt, Chef ou Satellite) et faire prendre en compte les modifications avec la commande **nmcli connection reload**. Une autre nouveauté qui risque de surprendre se situe dans le pare-feu de RHEL, avec l'inclusion du pare-feu dynamique : **firewalld**. Celui-ci se base sur le concept de zones pour associer un niveau de confiance à un réseau. Son comportement peut s'adapter avec une configuration permanente et une temporaire. Il prend bien entendu en charge IPv4, IPv6, mais aussi les ponts Ethernet ! # Développement # La nouvelle version de GCC (4.8) présente dans RHEL 7 ainsi que la nouvelle glibc permettent maintenant d'utiliser C++11, OpenMP v3.1, de nouvelles fonctionnalités pour Fortran et apportent de meilleurs avertissements et diagnostics. Bien entendu, une version plus récente de GDB accompagne tout cela, mais dispose en plus d'un nouveau paquet : gdb-doc. Comme son nom l'indique, il s'agit de la documentation, disponible dans les formats info, HTML et PDF. Java est aussi de la partie, avec OpenJDK7 comme environnement par défaut. Vous pouvez toutefois installer les machines virtuelles d'IBM et d'Oracle en parallèle, comme pour les différentes versions du noyau Linux. Dans les autres environnements notables, Python est maintenant disponible en version 2.7.5 (une version 3 sera accessible via les Software Collections) et Ruby arrive en version 2.0.0. # Authentification # ## Relations d’approbations entre domaines _Identity Management_ et _Active Directory_ Un utilisateur possédant un compte sur un domaine Active Directory (Microsoft AD) pourra accéder aux ressources mises à disposition sur des serveurs RHEL sans avoir à effectuer une nouvelle authentification. Cela généralise le "single sign on" même s'il existe deux royaumes distincts pour Windows et Linux. C'est le serveur Red Hat Identity Management (projet FreeIPA, à base de Kerberos & LDAP) sous Linux qui établira une relation d'approbation avec le domaine AD. Il n'est pas nécessaire de synchroniser les bases d'utilisateurs. ## Realmd Pour faciliter la configuration pour le point précédent, le démon realmd se chargera de la découverte des royaumes Kerberos Linux et des domaines AD. # Sécurité # Les grands changements sont résumés dans la [présentation de Dan Walsh au Red Hat Summit de cette année](http://people.fedoraproject.org/~dwalsh/SELinux/Presentations/RHEL7Security/). ## OpenSSH La principale nouveauté vient avec la nouvelle version d'OpenSSH, qui apporte l'option **ChrootDirectory**. Cette option permet d'emprisonner l'utilisateur au niveau d'OpenSSH en plus de la possibilité déjà existante au niveau de SELinux. Autre nouveauté en provenance d'OpenSSH, l'authentification multiple obligatoire. Il est déjà possible d'utiliser une authentification à deux facteurs, mais on peut augmenter la sécurité de son système en imposant celle-ci : cette possibilité se paramètre au niveau de l'option **AuthenticationMethods**. ## Fonctionnalités liées à systemd ### journald RHEL 7 utilise toujours un démon de type syslog par défaut pour stocker les logs du système dans divers fichiers. En revanche, les logs sont d'abord collectés par journald qui les retransmet ensuite au démon syslog. Il était auparavant difficile de vérifier qu'un message de log avait bien été émis par le démon indiqué dans les logs car syslog ne gardait que très peu d'informations liées à l'identité du processus émetteur de logs. Par exemple, si le démon ntpd venait à être compromis par un attaquant, celui-ci pouvait émettre des logs ressemblant à ceux produit par sshd et ainsi influencer le comportements d'outils tels que fail2ban se basant sur les logs de sshd. Ce comportement est toujours possible, mais il est désormais très facile de le détecter car journald conserve des informations supplémentaires : ``` ... SYSLOG_IDENTIFIER=sshd SYSLOG_PID=2302 MESSAGE=Faux message provenant de sshd... _PID=2302 _UID=0 _GID=0 _COMM=ntpd _EXE=/usr/sbin/ntpd _CMDLINE=/usr/sbin/ntpd -n -u ntp:ntp -g _SYSTEMD_CGROUP=/system/ntpd.service _SYSTEMD_UNIT=ntpd.service _SELINUX_CONTEXT=system_u:system_r:ntpd_t:s0 _SOURCE_REALTIME_TIMESTAMP=1330527027590337 _BOOT_ID=4c3d0faf6b774fb7930972c1a4a5f870 _MACHINE_ID=432d8198a8fc421caf2dca48ccde1cf2\ _HOSTNAME=www.example.com ... ``` Plus de détails sur le [blog de Red Hat lié à la sécurité](https://securityblog.redhat.com/2014/04/11/new-red-hat-enterprise-linux-7-security-feature-systemd-journald/). ### Démarrage des démons avec systemd L'ensemble des démons est maintenant démarré et géré par systemd. Les administrateurs ne doivent ainsi plus se charger de redémarrer les démons directement, c'est systemd qui s'en charge. Il peut ainsi : * s'assurer que l'environnement est bien contrôlé (entre autres que les variables d'environnement n'ont pas été modifiées) ; * s'assurer que le démon a accès au dossier courant lors de son exécution ; * rediriger les entrées/sorties du terminal vers journald, par exemple pour récupérer tous les logs d'erreurs qui auraient été perdus autrement ; * ouvrir des sockets auxquelles le démon n'aura pas nécessairement accès, si il est exécuté avec moins de privilèges ; * changer la gestion des signaux par défaut ; * ... Enfin, cela simplifie les règles de changement de contexte SELinux et améliore ainsi la sécurité. Plus de détails sur le [blog de Red Hat lié à la sécurité](https://securityblog.redhat.com/2014/04/08/new-red-hat-enterprise-linux-7-security-feature-systemd-starting-daemons/). ### Répertoire /tmp privé Le répertoire /tmp était couramment utilisé par les démons d'un système pour stocker des fichiers temporaires, sockets ou des FIFO. Or ce dossier est accessible à tous les utilisateurs ce qui a causé de nombreux problèmes de sécurité (par exemple [CVE-2011-2722](https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2011-2722)) lorsque la manipulation des fichiers n'était pas faite de façon très précautionneuse par rapport à la sécurité. La plupart des démons utilisent maintenant des sous-dossiers de /run avec des permissions restreintes pour stocker leurs données temporaires. Mais certains projets sont récalcitrants et certains programmes ne peuvent aussi pas être changés (logiciels propriétaires, notamment). Pour ceux-ci, l'option PrivateTmp des fichiers d'unit systemd permet de créer un dossier à accès restreint, dont l'usage sera transparent pour l'application. Ainsi, avant de démarrer un service, systemd : * crée un dossier tmp avec un nom imprédictible en utilisant la fonction `mkdtemp` ; * crée un nouvel espace de nom de système de fichiers (_file system namespace_) pour que les changements n'impactent pas tout le système, mais uniquement le démon et ses fils ; * monte avec l'option `bind` le dossier créé par-dessus le dossier `/tmp` ; * démarre le service. Plus de détails sur le [blog de Red Hat lié à la sécurité](https://securityblog.redhat.com/2014/04/09/new-red-hat-enterprise-linux-7-security-feature-privatetmp/). ## SELinux ### Association d’étiquette SELinux automatique en fonction du nom de fichier Le contrôle d'accès effectué par SELinux est basé sur des labels que l'on va attacher aux divers éléments d'un système (fichiers, sockets, processus...). Pour qu'un système fonctionne correctement, il faut que ces labels correspondent aux règles définies dans la politique SELinux. Un problème fréquent se produisait lorsqu'un administrateur ou un utilisateur créait des dossiers ou fichiers et que les labels utilisés par défaut ne correspondaient pas à ce qui était attendu dans la politique SELinux. Les deux exemples récurrents sont : * la création du dossier `.ssh` dans le répertoire `/root` : le dossier recevait alors le label `admin_home_t` par défaut alors que la politique est conçue pour que ce dossier soit labellisé `ssh_home_t`, Le démon sshd (utilisant le label `sshd_t`) ne pouvait alors pas accéder au contenu de `/root/.ssh` et refusait les connexions à l'aide de clé publique par exemple ; * la création du dossier `public_html` dans le répertoire personnel d'un utilisateur : le dossier recevait alors le label `user_home_t` mais la politique par défaut utilise le label `http_user_content_t`, L'accès à ces dossiers était donc refusé à Apache (avec le label `httpd_t`). Dans les deux cas, l'utilisateur devait corriger manuellement le label de ces dossiers et fichiers avec la commande : ``` $ restorecon -Rv /home/user/public_html ``` Une première amélioration avait été apportée par l'ajout dans la politique de règles de changement automatique de labels pour les fichiers (file transition rule). Ces règles permettaient d'indiquer par exemple que les fichiers créés par les processus labellisés `NetworkManager_t` dans le dossier labellisé `etc_t` (`/etc`) seraient automatiquement de type `net_conf_t`. Exemple : ``` filetrans_pattern(NetworkManager_t, etc_t, file, net_conf_t) ``` Cette règle n'est cependant pas optimale car elle autorise NetworkManager à créer n'importe quel fichier qui n'existerai pas déjà dans un dossier labellisé `etc_t` (/etc/) et à lui donner le contexte `net_conf_t`. Elle ne permets pas non plus de contrôler le label du dossier `.ssh` lors de sa création par un utilisateur. Une règle du type : ``` filetrans_pattern(unconfined_t, user_home_t, file, ssh_home_t) ``` forcerait tous les fichiers du répertoire d'un utilisateur a être labellisé `ssh_home_t`, ce qui n'est pas vraiment le but recherché. Eric Paris a ainsi travaillé sur la gestion (dans la politique et dans le noyau) d'un quatrième argument pour cette règle : le nom du fichier créé (sans le chemin d'accès). Cette règle permet d'exprimer ainsi facilement les deux cas de figure cités au-dessus : * si un processus `unconfined_t` crée un dossier `.ssh` dans un dossier `admin_home_t`, alors il sera créé avec le label `ssh_home_t` : ``` filetrans_pattern(unconfined_t, admin_home_t, directory, ssh_home_t) ``` * si un administrateur (`staff_t`) crée un dossier `public_html` dans un dossier labellisé `user_home_t`, il sera labellisé `http_user_content_t` : ``` filetrans_pattern(staff_t, user_home_t, directory, http_user_content_t) ``` D'autres règles ont aussi été ajoutées pour s'assurer que les fichiers créés dans /dev soient automatiquement labellisés avec les bons contextes sans avoir à attendre qu'udev fixe le contexte. Cette règle permet aussi de restreindre NetworkManager à la création du seul fichier resolv.conf dans un dossier `etc_t`. Plus de détails sur le [blog de Red Hat lié à la sécurité](https://securityblog.redhat.com/2014/04/14/new-selinux-feature-file-name-transitions-2/). ### Aide à la rédaction de politiques Un nouveau document d'introduction à l'écriture de politiques SELinux a été rédigé entre autres par Dan Walsh. Il est disponible à [cette adresse](http://www.redhat.com/rhecm/rest-rhecm/jcr/repository/collaboration/jcr:system/jcr:versionStorage/e906c3960a0526014bf0b4474cffa022/1/jcr:frozenNode/rh:pdfFile.pdf) sur le [blog orienté développeur Red Hat de Dan Walsh](http://rhatdan.wordpress.com/2013/08/15/writing-selinux-policy/). Il détaille le processus de création de politique en utilisant les outils `sepolicy generate` et `audit2allow`. L'outil `sepolicy generate` : * génère la base d'une politique à partir des réponses à des questions de type « Mon programme est-il un démon ? » ; * prépare un fichier `.spec` pour construire un paquet RPM pour distribuer facilement la politique sur un ensemble de machines ; * crée une page de man expliquant la politique venant d'être écrite. ## Chiffrement Les récentes versions de RHEL 6 avaient apporté la prise en charge des courbes elliptiques dans le chiffrement pour un certain nombre de paquets. Dans RHEL 7, _nss_ a été mis à jour et apporte de nouvelles suites de chiffrement et fait disparaître MD2, MD4 et MD5 dans le cas des CRL. # Durée de vie # Enfin, et pour conclure sur cette nouvelle version, il convient de rappeler que RHEL 7 disposera d'une durée de vie de 10 ans (13 avec le support étendu, tout comme RHEL 5 et 6).

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