9 0 19MB
Machine Translated by Google
Machine Translated by Google
1 Préparezvous pour le rouge
Chapeau pratique Certificats
OBJECTIFS DE LA CERTIFICATION 1.01
Les examens RHCSA et RHCE
1.06
Options de configuration du système
1.02
Configuration matérielle de base
1.07
Configurer les services de partage de fichiers par
1.03
Obtenir Red Hat Enterprise Linux
1.04
Exigences d'installation
1.05
Possibilités d'installation
défaut Analyse en deux minutes Autotest Q&R
Machine Translated by Google
2 Chapitre 1 : Préparation aux certifi cations pratiques Red Hat
Les examens Red Hat sont un défi avancé. Alors que ce livre couvre le Red Hat
Examen Certified System Administrator (RHCSA), il fournit la base pour ceux qui souhaitent obtenir la
certification Red Hat Certified Engineer (RHCE). Offres Red Hat plusieurs cours d'aide à la préparation de ces examens, comme décrit dans le préambule et dans ce chapitre.
L'objectif de ce chapitre est l'installation, afin de créer une version commune de Red Hat Enterprise Linux (RHEL) comme banc d'essai pour les prochains chapitres. Il suppose et décrit le matériel requis pour implémenter la solution de machine virtuelle (VM) par défaut de Red Hat, la machine virtuelle basée sur le noyau (KVM). Comme les distributions de reconstruction telles que le système d'exploitation d'entreprise communautaire (CentOS) et Scientific Linux sont essentiellement identiques à RHEL, vous devriez également pouvoir utiliser ces solutions. À peu près la seule différence entre une reconstruction et RHEL réside dans les marques déposées et l'accès aux référentiels, qui seront décrits au chapitre 7. Ceux d'entre vous qui connaissent les versions antérieures des exigences Red Hat peuvent noter les récentes modifications apportées aux examens Red Hat. Red Hat ne donne plus d'examen RHCT. Il a maintenant été remplacé par le RHCSA. Bien que la RHCSA soit à bien des égards similaire à la RHCT, il existe des différences significatives. La plupart des objectifs RHCSA étaient couverts lors de l'ancien examen RHCT. Cependant, le RHCSA n'est certainement pas plus facile que le RHCT ; c'est juste maintenant une condition préalable au RHCE. La RHCSA comprend également un certain nombre d'exigences qui faisaient auparavant partie des objectifs de la RHCE. Néanmoins, Red Hat suggère que les candidats au RHCSA aient une à trois années d'expérience avec le shell bash, l'administration des utilisateurs, la surveillance du système, la mise en réseau de base, les mises à jour logicielles, etc. Les détails sont décrits dans l'introduction de ce livre. Si vous débutez avec Linux ou Unix, ce livre peut ne pas vous suffire. Il n'est pas possible de fournir suffisamment de détails, du moins d'une manière qui puisse être comprise par les nouveaux venus sur Linux et d'autres systèmes d'exploitation basés sur Unix. Si après avoir lu ce livre, vous trouvez des lacunes dans vos connaissances, veuillez vous référer à l'un des guides suivants :
■
de Wale Soyinka (McGrawHill, 2008), fournit un guide détaillé étape par étape de ce système d'exploitation.
Machine Translated by Google
Les examens RHCSA et RHCE 3
■
par Michael Jang (Jones & Bartlett, 2010), vous donne un aperçu détaillé de la façon dont vous pouvez sécuriser votre système Linux et vos réseaux de toutes les manières possibles.
■
par Michael Jang (Course Technology PTR, 2009), couvre la certification que de nombreux professionnels Linux obtiennent avant de travailler sur les RHCSA et RHCE.
Avant d'installer Red Hat Enterprise Linux (RHEL), vous avez besoin du bon matériel. Vous aurez besoin d'un système physique avec un processeur 64 bits capable de virtualisation matérielle. Les détails sont discutés dans le chapitre. Ainsi, bien que les examens RHCSA et RHCE ne soient en général pas des examens matériels, certaines connaissances matérielles de base sont une exigence fondamentale pour tout administrateur Linux. En ce qui concerne le système d'exploitation lui même, vous pouvez acheter un abonnement à RHEL, ou vous pouvez utiliser l'une des distributions "reconstruites" où la distribution est construite par des tiers à partir du code source publié publiquement par Red Hat. Si vous avez de l'expérience avec d'autres systèmes d'exploitation de type Unix tels que Solaris, AIX ou HPUX, préparezvous à laisser quelques défauts à la porte. Il existe même des différences significatives entre les distributions Ubuntu et Red Hat. Lorsque Red Hat a développé sa distribution Linux, la société a fait des choix qui ne sont pas cohérents avec les pratiques Unix standard. Lorsque j'ai suivi le cours RH300 de Red Hat, certains étudiants ayant ces antécédents ont eu des difficultés avec le cours et l'examen RHCE. Pour les besoins de ce livre, j'exécuterai la plupart des commandes en tant qu'utilisateur administratif Linux, root. La connexion en tant qu'utilisateur root est normalement déconseillée, sauf si vous administrez un ordinateur. Cependant, étant donné que les examens RHCSA et RHCE testent vos compétences administratives, il convient d'exécuter les commandes de ce livre en tant qu'utilisateur root. Mais vous devrez également savoir comment configurer des utilisateurs réguliers avec des privilèges administratifs partiels ou complets.
Machine Translated by Google
4 Chapitre 1 : Préparation aux certifi cations pratiques Red Hat
À L'INTÉRIEUR DE L'EXAMEN
Un hôte virtuel La RHCSA suppose que vous savez comment "configurer une machine physique pour héberger des invités virtuels". En d'autres termes, vous devez être en mesure de préparer un système pour héberger des machines virtuelles sur lesquelles d'autres instances de RHEL (ou même d'autres systèmes d'exploitation tels que Microsoft Windows) peuvent être installées. Comme il s'agit de RHEL, il est basé sur le système de machine virtuelle par défaut de Red Hat, KVM. Le cas échéant, les distributions de reconstruction telles que CentOS et Scientific Linux utilisent le même code source,
les serveurs pour partager des fichiers sont assez simples. En fait, aucune modification n'est requise pour les fichiers de configuration par défaut de ces services. Certaines des étapes connexes décrites dans ce chapitre dépendent des compétences présentées dans les chapitres suivants. La version originale des objectifs RHCSA était formulée légèrement différemment : « Déployer des services de partage de fichiers avec HTTP/FTP ». Je crois que cela fournit un indice significatif sur l'intention de Red Hat avec ces objectifs. À cette fin, vous examinerez comment configurer ces services en tant que serveurs de fichiers, en fonction de leurs configurations par défaut.
elles utilisent également KVM. Dans ce chapitre, non seulement vous installerez RHEL, mais vous installerez également les packages prenant en charge KVM.
Utilisation d'autres versions de Red Hat Dans le cadre de ce chapitre, vous pouvez installer RHEL 6
Configuration de partage de fichiers par défaut Prestations de service
Les RHCSA doivent savoir comment « configurer un système pour exécuter un serveur HTTP de configuration par défaut » et « configurer un système pour exécuter un serveur FTP de configuration par défaut ». Les solutions Red Hat par défaut pour ces services sont le serveur Web Apache et le serveur FTP très sécurisé (vsFTP). Bien que ces services puissent être complexes, les étapes nécessaires à leur mise en place
à l'aide d'un abonnement payant ou à partir d'un DVD de démonstration. Vous pouvez également utiliser l'une des distributions de reconstruction. Cependant, alors que RHEL 6 est basé en partie sur le travail effectué sur la distribution Fedora Linux, il est basé en partie sur les versions Fedora 12 et 13. Il est donc possible que si vous utilisez Fedora 12 ou 13, les fichiers de configuration peuvent dans certains cas être assez différents de RHEL 6. Les versions ultérieures de Fedora sont susceptibles d'avoir des fonctionnalités introuvables dans RHEL 6.
Machine Translated by Google
Les examens RHCSA et RHCE 5
OBJECTIF DE CERTIFICATION 1.01
Les examens RHCSA et RHCE Red Hat a commencé à donner des examens de certification en 1999. Depuis lors, leurs examens ont évolué. L'ancien RHCT était un sousensemble complet du RHCE. Aujourd'hui, la RHCSA couvre désormais des sujets distincts mais étroitement liés à la RHCE. De plus, Red Hat a davantage axé les examens sur la configuration pratique. Les questions à choix multiples ont été supprimées de l'examen en 2003. Plus récemment, en 2009, elles ont simplifié l'examen en supprimant l'obligation d'installer Linux sur un système "baremetal". (Cependant, les changements mis en œuvre en 2011 suggèrent que vous devez savoir comment installer Linux sur un réseau sur une machine virtuelle.) De plus, il n'y a plus de partie de dépannage distincte de l'examen. Pour plus d'informations, consultez www.redhat.com/ certification/faq.
Red Hat propose des tests
disponibles sur les pages Web de Red Hat pour
de « préévaluation » pour les cours Red Hat
chaque cours. Red Hat exige des informations de
RHCSA et RHCE Exam Prep. Ils correspondent
contact avant de fournir ces tests de préévaluation.
respectivement aux cours RH134 et RH254. Ces épreuves sont
L'expérience d'examen Les tests de certification de Red Hat sont des examens pratiques. En tant que tels, ils sont respectés dans toute l'industrie comme un signe de véritables connaissances pratiques. Lorsque vous réussissez un examen Red Hat, vous vous placez tête et épaules audessus du candidat qui n'a réussi qu'un examen de certification à choix multiples "standard". Lorsque le temps commence, vous serez confronté à un système en direct. Vous serez informé des problèmes de configuration réels associés aux éléments répertoriés dans les objectifs de l'examen pour chaque certification, présentés sur www.redhat.com/certification/ rhcsa/objectives/ et www.redhat.com/certification/rhce/objectives/. Naturellement, ce livre est dédié à vous aider à acquérir les compétences décrites sur ces pages Web.
Machine Translated by Google
6 Chapitre 1 : Préparation aux certifi cations pratiques Red Hat
Bien que vous n'ayez pas accès à Internet pendant l'examen, vous aurez accès à la documentation en ligne, comme les pages de manuel et d'information, ainsi qu'à la documentation dans les répertoires / usr/share/doc/, en supposant que les packages appropriés sont installés. De plus, Red Hat fournit l'examen au format électronique. Alors que les instructions de base peuvent être dans une langue locale telle que l'anglais, les examens RHCSA et RHCE sont disponibles en 12 langues différentes : anglais, chinois simplifié, chinois traditionnel, néerlandais, français, italien, japonais, coréen, portugais, russe, espagnol, et turc. Red Hat propose également des cours de préparation aux deux examens. Le plan de ces cours est disponible sur www.redhat.com. Bien que ce livre ne soit pas destiné à remplacer ces cours, ils sont cohérents avec le plan de ces cours. Ce livre couvre les objectifs associés à chacun de ces examens.
Exam Watch Ce livre est la couverture des éléments répertoriés dans les objectifs
la couverture de ce livre, dans le tableau 2, page (à déterminer).
des examens RHCSA et RHCE peut être trouvée
L'examen RHCSA L'examen RHCSA vous permet de démontrer votre capacité à configurer des systèmes physiques et virtuels en direct pour la mise en réseau, la sécurité, les systèmes de fichiers personnalisés, les mises à jour de packages, la gestion des utilisateurs, etc. Essentiellement, l'examen RHCSA couvre les compétences requises pour configurer et administrer un poste de travail Linux dans l'entreprise. L'examen RHCSA (comme l'examen RHCE) dure deux heures. Lorsque vous vous asseyez pour passer l'examen, vous aurez des tâches à effectuer sur un système RHEL en direct. Toutes les modifications apportées doivent survivre à un redémarrage. Lorsque vous avez terminé les tâches données, la personne qui note l'examen verra si le système est configuré pour répondre aux exigences. Par exemple, si on vous demande de « créer, supprimer et modifier des comptes d'utilisateurs locaux », peu importe si le fichier de configuration associé a été modifié avec l'éditeur vi ou l'outil graphique Gestionnaire d'utilisateurs. Tant que vous ne trichez pas, ce sont les résultats qui comptent.
Machine Translated by Google
Les examens RHCSA et RHCE 7
L'examen RHCE L'examen RHCE teste votre capacité à configurer des serveurs physiques et virtuels en direct pour configurer des services réseau tels qu'Apache, vsFTP, le système de fichiers réseau (NFS), Samba, le service de messagerie Postfix, la journalisation à distance, etc. Il teste également votre capacité à gérer les options de configuration complexes associées à Security Enhanced Linux (SELinux), aux parefeux, à la mise en réseau, etc. Essentiellement, si vous réussissez l'examen RHCE, les responsables du recrutement sauront que vous êtes qualifié pour aider à gérer leurs entreprises de systèmes Linux. L'examen RHCE dure également deux heures. Lorsque vous vous asseyez pour passer l'examen, des tâches vous seront confiées à effectuer sur un système RHEL en direct. Comme avec la RHCSA, toute modification apportée doit survivre à un redémarrage. Dans tous les cas, peu importe que vous ayez configuré le fichier de configuration associé avec l'éditeur nano ou un outil graphique. Tant que vous ne trichez pas, ce sont les résultats qui comptent. Les sujets des cours de préparation à Red Hat dans certains domaines vont audelà de ceux répertoriés dans le guide de préparation aux examens Red Hat. Bien que ces sujets ne fassent pas actuellement partie de l'examen, ils peuvent être inclus dans les futures versions des examens Red Hat.
Si vous étudiez "juste" pour l'examen RHCSA Red Hat est connu pour apporter des modifications mineures aux exigences à l'occasion. Les modifications futures peuvent être basées sur des sujets abordés dans le cours Red Hat RHCSA Rapid Track, RH199. Donc, si vous ne prévoyez pas de suivre le RHCSA dans les prochains mois, consultez le plan de ce cours. Il peut en effet s'agir d'un aperçu de l'endroit où Red Hat souhaite passer l'examen RHCSA à l'avenir.
Exigences en évolution Des modifications ont été apportées aux conditions requises pour les examens Red Hat. Vous pouvez le voir dans les différences entre le RHCT et le RHCSA. Vous pouvez le voir dans les modifications apportées au format de l'examen, où les installations à nu ne sont plus nécessaires. En fait, ce changement s'est produit sur deux ans dans la vie de RHEL 5. Les changements se sont produits le premier mois après la sortie de RHEL 6. Ainsi, lorsque vous vous préparez aux examens RHCSA ou RHCE, surveillez attentivement les objectifs d'examen associés. De plus, Red Hat a annoncé ses changements de format les plus récents via le site de publication de blog WordPress, à l'adresse http://redhatcertification.wordpress.com/.
Machine Translated by Google
8 Chapitre 1 : Préparation aux certifi cations pratiques Red Hat
OBJECTIF DE CERTIFICATION 1.02
Configuration matérielle de base Il est maintenant temps d'explorer en détail le matériel que Red Hat Enterprise Linux peut gérer. Alors que certains fabricants incluent désormais leurs propres pilotes matériels Linux, la plupart du support matériel Linux provient de tiers, à commencer par le travail de bénévoles. Heureusement, il existe une vaste communauté d'utilisateurs de Linux, dont beaucoup produisent des pilotes pour Linux et les distribuent librement sur Internet. Si un certain matériel est populaire, vous pouvez être certain que la prise en charge de Linux pour ce matériel apparaîtra quelque part sur Internet et sera intégrée à diverses distributions Linux, y compris Red Hat Enterprise Linux.
Compatibilité matérielle Si vous ne disposez que de systèmes 32 bits, soyez prêt à dépenser de l'argent. KVM est la solution de machine virtuelle par défaut pour RHEL 6. Red Hat l'a configurée pour fonctionner uniquement sur les systèmes 64 bits. Heureusement, la plupart des PC et des serveurs vendus aujourd'hui sont des systèmes 64 bits. Même le modeste processeur Intel i3 peut gérer les systèmes d'exploitation 64 bits. Il existe même des versions 64 bits du processeur Intel Atom courantes sur les systèmes de netbook. Des comparaisons similaires peuvent être faites pour les processeurs d'Advanced Micro Devices. Soyez prudent lors de l'achat d'un nouvel ordinateur à utiliser avec Linux. Bien que Linux ait parcouru un long chemin ces dernières années et que vous n'ayez aucun problème à l'installer sur la plupart des serveurs ou PC modernes, vous ne devez pas supposer que Linux s'installera ou fonctionnera parfaitement sur l'ordinateur, surtout si le système en question est un état ordinateur portable dernier cri. (Et vous avez besoin d'un système 64 bits pour vous préparer aux examens Red Hat.) Les ordinateurs portables sont souvent conçus avec des configurations propriétaires qui ne fonctionnent avec Linux qu'après une rétro ingénierie. Par exemple, lorsque j'ai installé RHEL 6 sur un ordinateur portable professionnel de marque construit en 2010, j'ai dû faire un peu de travail supplémentaire pour que l'adaptateur sans fil fonctionne avec RHEL 6. L'architecture d'un serveur ou d'un PC définit les composants qu'il utilise ainsi que la manière dont ils sont connectés. En d'autres termes, l'architecture décrit bien plus que le CPU. Il inclut des normes pour d'autres matériels tels que le disque dur, la carte réseau, le clavier, la carte graphique, etc. Tous les logiciels sont écrits pour une architecture informatique spécifique.
Machine Translated by Google
Configuration matérielle de base 9
Même lorsqu'un fabricant crée un périphérique pour une plateforme CPU, il peut ne pas fonctionner avec Linux. Par conséquent, il est important de connaître l'architecture de base d'un ordinateur. Mais à proprement parler, si vous voulez du matériel compatible avec et pris en charge par Red Hat, consultez la liste de compatibilité matérielle sur http://hardware.redhat.com/hcl/.
Exam Watch Pendant qu'il est
objectifs concerne directement le matériel.
important de savoir comment Linux interagit avec votre
Cependant, pour vous entraîner aux examens, vous devez
matériel, les examens Red Hat ne sont pas des examens
installer RHEL 6. Et pour confi gurer un système pour KVM,
matériels. À l'exception possible des cibles iSCSI (Internet
qui nécessite une virtualisation assistée par matériel, vous
Small Computer Systems Interface) dans les objectifs RHCE,
avez besoin d'un système avec des processeurs 64 bits et du matériel connexe.
aucune partie de l'examen
Architectures Alors que RHEL 6 a été conçu pour une variété d'architectures, vous pouvez vous concentrer sur l'architecture Intel/AMD 64 bits ou x86_64 pour les examens RHCSA et RHCE. Au moment d'écrire ces lignes, ces examens ne sont proposés que sur les ordinateurs équipés de tels processeurs. Vous n'avez donc pas à vous soucier des problèmes spécifiques à l'architecture, tels que les chargeurs de démarrage spécialisés ou les répertoires de modules 64 bits. Néanmoins, des distributions Red Hat personnalisées sont disponibles pour diverses platesformes. Vous pouvez installer RHEL 6 sur des systèmes dotés d'une grande variété de processeurs. Mais n'oubliez pas que pour tester un système pour la solution de virtualisation KVM requise, vous aurez besoin d'un système 64 bits. Red Hat prend en charge quatre architectures CPU différentes de base :
■ x86 (32 bits) ■ Intel/AMD64 (x86_64) ■ IBM Power Architecture (64 bits) ■ IBM System Z Architecture
Machine Translated by Google
10 Chapitre 1 : Préparation aux certifi cations pratiques Red Hat
Il y a une omission importante dans cette liste. Red Hat ne construit plus RHEL 6 pour le processeur Intel Itanium. Pour identifier l'architecture d'un système, exécutez la commande suivante :
# uname p Si vous envisagez de configurer des machines virtuelles sur RHEL 6, assurezvous de choisir une architecture prenant en charge la virtualisation assistée par matériel, ainsi que les options de menu BIOS (Basic Input/Output System) ou UEFI (Universal Extensible Firmware Interface) qui vous permettent d'activer virtualisation assistée par matériel. Une configuration qui prend en charge la virtualisation assistée par matériel aura les indicateurs vmx (Intel) ou svm (AMD) dans le fichier /proc/cpuinfo.
Sachez que les installations de RHEL 6 sur des systèmes 32 bits avec des menus UEFI ne sont pas prises en charge. Si vous n'êtes pas sûr d'un système, voyez si vous pouvez l'essayer au « magasin » avec l'une des distributions « Live CD ». Si le personnel du magasin l'autorise, démarrez le système à partir de ce Live CD (ou DVD). Une fois démarré, vous devriez pouvoir accéder au fichier /proc/cpuinfo à partir de la ligne de commande. Vous devrez peutêtre bricoler un peu avec les menus BIOS ou UEFI. Un système configuré pour prendre en charge la virtualisation assistée par matériel aura les indicateurs vmx ou svm dans ce fichier, même lorsqu'il est lu à partir d'une distribution Live CD.
Exigences en matière de RAM Bien qu'il soit possible d'exécuter RHEL 6 avec moins, les besoins en mémoire RAM dépendent des besoins du programme d'installation de Red Hat. Pour les architectures de base Intel/AMD 32 et 64 bits, Red Hat requiert officiellement 512 Mo de RAM et recommande au moins 1 Go de RAM par système. Cependant, j'ai installé RHEL 6 sur des machines virtuelles avec beaucoup moins de RAM. Sur une machine virtuelle où l'interface graphique n'était pas installée, je n'avais même pas besoin de 200 Mo de RAM.
Bien sûr, les besoins réels en mémoire dépendent de la charge de chaque programme qui peuvent être exécutés simultanément sur un système. Cela peut également inclure les besoins en mémoire de toutes les machines virtuelles que vous pourriez exécuter sur un système RHEL 6 physique. Il n'y a pas de RAM maximale pratique, car théoriquement, vous pourriez exécuter 128 To (soit 128 000 Go) de RAM sur RHEL 6. Mais ce n'est que de la théorie. La RAM maximale prise en charge par Red Hat sur RHEL 6 est de 16 Go sur les systèmes 32 bits et de 2 To sur les systèmes 64 bits.
Machine Translated by Google
Configuration matérielle de base 11
Si vous configurez Linux en tant que serveur, les besoins en RAM augmentent avec le nombre d'utilisateurs qui peuvent avoir besoin de se connecter simultanément. La même chose peut être vraie si vous exécutez plusieurs machines virtuelles différentes sur un seul système. Cependant, les administrateurs "surréservent" généralement la RAM sur les machines virtuelles configurées avec des fonctionnalités différentes.
Options de disque dur Avant qu'un ordinateur puisse charger Linux, le BIOS ou l'UEFI doit reconnaître la partition principale active sur le disque dur. Cette partition doit inclure les fichiers de démarrage Linux. Le BIOS ou l'UEFI peut alors configurer et initialiser ce disque dur, puis charger les fichiers de démarrage Linux à partir de cette partition principale active. Vous devez savoir ce qui suit sur les disques durs et Linux :
■ Le nombre de disques pouvant être installés sur les ordinateurs modernes a augmenté. Avec les multiplicateurs de ports, il est relativement facile de configurer 16 disques SATA (Serial Advanced Technology Attachment) sur un système (en supposant que vous puissiez installer tous ces disques). Les PC plus anciens ne pouvaient gérer que quatre lecteurs PATA (Parallel Advanced Technology Attachment).
■ Selon le matériel SCSI (Small Computer Systems Interface) disponible, vous pouvez connecter jusqu'à 31 disques durs SCSI différents. ■ Bien que vous puissiez installer autant de disques PATA, SATA ou SCSI que le matériel peut en gérer, les fichiers de démarrage Linux du répertoire /boot ne fonctionnent que sur l'un des deux premiers disques durs. Si Linux est installé sur un lecteur ultérieur, vous aurez besoin d'un autre support de démarrage reconnu par le BIOS / UEFI, tel qu'un USB (Universal Serial Bus) ou un CD/DVD. (Red Hat ne crée plus d'image pour une disquette de démarrage.) ■ RHEL 6 n'a même pas besoin d'être installé sur un lecteur local. Pendant le processus d'installation, l'option de périphériques de stockage spécialisés prend en charge l'utilisation de réseaux de stockage (SAN), de périphériques de stockage à accès direct (DASD), de périphériques matériels RAID (Redundant Array of Independent Disk), etc.
Machine Translated by Google
12 Chapitre 1 : Préparation aux certifi cations pratiques Red Hat
La mise en réseau Comme Linux a été conçu à l'origine comme un clone d'Unix, il conserve les avantages d'Unix en tant que système d'exploitation réseau. Cependant, tous les composants réseau ne fonctionnent pas avec Linux. Un certain nombre de fabricants de périphériques réseau sans fil n'ont pas créé de pilotes Linux. Dans la plupart de ces cas, les développeurs Linux ont travaillé d'arrachepied pour développer des pilotes appropriés et pour intégrer ces pilotes dans les principales distributions, y compris RHEL.
Options de machine virtuelle Comme la virtualisation permet de configurer relativement facilement un grand nombre de systèmes, elle peut vous aider à configurer un grand nombre de systèmes, chacun dédié à un service spécifique. À cette fin, la virtualisation peut être divisée en cinq catégories différentes, comme décrit dans le livre susmentionné :
■ Systèmes au niveau de l'application tels que Wine n'est pas un émulateur (WINE)
prendre en charge l'installation d'une seule application. Dans ce cas, WINE permet d'installer sur Linux une application conçue pour Microsoft Windows. En gros, c'est un exemple d'application configurée dans une machine virtuelle. ■ Machines virtuelles au niveau de la plateforme Les applications telles que VMware Player et Virtualbox sont des exemples d'édition open source de machines virtuelles au niveau de la plateforme qui émulent un système informatique complet pour l'installation d'un système d'exploitation distinct. ■ Paravirtualisation Bien qu'il soit fonctionnellement similaire à une machine virtuelle au niveau de la plateforme, il fonctionne avec moins de ressources et nécessite généralement un noyau spécialisé tel que Xen. ■ Virtualisation assistée par matériel Une interface matérielle où les VM ont
accéder aux fonctionnalités matérielles d'un processeur, telles que celles décrites précédemment avec les drapeaux vmx ou svm dans le fichier /proc/cpuinfo. ■ Virtualisation bare metal Certains systèmes de VM incluent un minimum
système dédié au fonctionnement de la VM. VMware ESX et Citrix XenServer sont deux exemples de systèmes de virtualisation bare metal. La solution KVM configurée avec RHEL 6 est connue sous le nom d'hyperviseur, un moniteur de machine virtuelle qui prend en charge l'exécution simultanée de plusieurs systèmes d'exploitation sur le même processeur. KVM remplace la valeur par défaut précédente, Xen.
Machine Translated by Google
Obtenir Red Hat Enterprise Linux 13
KVM a remplacé Xen dans de nombreuses distributions open source. XenSource appartient à Citrix, qui a commencé à travailler avec Microsoft après la sortie de RHEL 5.
OBJECTIF DE CERTIFICATION 1.03
Obtenir Red Hat Enterprise Linux Les examens RHCSA et RHCE sont basés sur votre connaissance de RHEL. Lorsque vous passerez les examens RHCSA et/ou RHCE, ce sera sur un ordinateur 64 bits « standard ». Pour obtenir une copie officielle de RHEL, vous aurez besoin d'un abonnement. Dans certains cas, des abonnements d'essai sont disponibles. Cependant, si vous n'avez pas besoin de la même « apparence » de RHEL pour vous préparer à un examen, des reconstructions tierces sont disponibles. Comme ces "reconstructions" utilisent le même code source que RHEL, à l'exception des marques et de la connexion au Red Hat Network, elles sont essentiellement fonctionnellement identiques à RHEL. Une fois que vous avez acheté un abonnement ou obtenu une approbation pour une copie d'évaluation, vous pourrez télécharger RHEL 6 à partir du Red Hat Network (RHN) à l'adresse https:// rhn.redhat.com/. Les téléchargements sont disponibles pour le système d'exploitation dans un format approprié pour un DVD. Il existe également un téléchargement disponible pour un CD de démarrage réseau. Vous pourrez même télécharger des fichiers avec le code source des packages associés. Ces téléchargements sont au format ISO, avec une extension .iso. Ces fichiers peuvent être gravés sur un support approprié, à l'aide d'outils standard tels que K3b, Brasero ou même des outils correspondants sur les systèmes Microsoft. Vous pouvez également configurer une machine virtuelle où le matériel du lecteur de CD/DVD virtuel pointe directement vers le fichier ISO, comme indiqué au chapitre 2. À moins que vous n'achetiez un abonnement réel en boîte, la gravure ou toute autre utilisation de ces fichiers ISO relève de votre responsabilité. Sachez que certaines des options d'installation décrites dans cette partie du chapitre ont été subdivisés en différentes sections. Par exemple, les façons dont vous pouvez configurer des partitions à l'aide de l'outil Disk Druid de Red Hat sont réparties sur plusieurs sections.
Un fichier ISO est un fichier image qui peut être gravé sur un support CD/DVD. L'acronyme réel n'est pas pertinent, car il est basé sur un compromis politique.
Machine Translated by Google
14 Chapitre 1 : Préparation aux certifi cations pratiques Red Hat
Bien qu'il soit important de savoir
une partie des objectifs de l'examen RHCSA ou RHCE.
comment obtenir RHEL, cette compétence n'est pas
Acheter un abonnement Différents abonnements sont disponibles pour le bureau et le serveur. Bien que la RHCSA se concentre sur les postes de travail, elle nécessite également la configuration des serveurs HTTP et FTP. Bien entendu, RHCE nécessite également la configuration de divers services de serveur. La plupart des lecteurs auront donc besoin d'un abonnement au serveur. Une variété d'abonnements de serveur sont disponibles, en fonction du nombre de sockets CPU et d'invités virtuels. Un système associé à un abonnement RHEL standard est limité à deux sockets CPU et un invité virtuel. Chaque socket peut avoir un processeur multicœur. Des remises importantes pour les utilisateurs universitaires sont disponibles.
Obtenir une copie d'évaluation Red Hat propose actuellement une option d'évaluation non prise en charge de 30 jours pour RHEL. Red Hat exige certaines informations personnelles de ces utilisateurs. Une fois approuvé par Red Hat, vous recevrez des instructions sur la façon de télécharger la distribution. Pour plus d'informations, consultez www.redhat.com/ rhel/details/eval. La limite de 30 jours est simplement une limite d'accès entre votre système et Red Hat Network. Le système d'exploitation continue de fonctionner, mais sans mises à jour. Aucun soutien n'est accordé.
Reconstructions tierces Vous n'avez pas à payer le support du système d'exploitation pour vous préparer aux examens Red Hat. Vous n'avez pas à vivre avec un abonnement de test limité. Pour se conformer à la licence publique générale (GPL) Linux, Red Hat publie le code source de presque tous les packages RHEL sur ftp.redhat.com. Cependant, la GPL exige uniquement que Red Hat publie le code source. La compréhension de Red Hat est qu'il n'est pas nécessaire de publier les packages binaires compilés à partir de ce code source.
La description de la GPL et du droit des marques dans ce livre n'est pas un avis juridique et n'est pas destinée à servir de conseil juridique.
Machine Translated by Google
Obtenir Red Hat Enterprise Linux 15
En vertu de la loi sur les marques, Red Hat peut empêcher des tiers de publier des logiciels avec ses marques déposées, telles que son symbole Fedora rouge. Néanmoins, la GPL donne à quiconque le droit de compiler ce code source. S'ils apportent des modifications, il leur suffit de publier leurs modifications sous la même licence. Et plusieurs "tiers" ont profité de cette occasion pour supprimer les marques du code source publié et ont compilé ce logiciel dans leurs propres reconstructions, fonctionnellement équivalentes à RHEL. Le code source est publié au format de package Source RPM, ce qui signifie que le Les packages RPM peuvent être construits à l'aide des commandes rpm décrites au chapitre 7. Cependant, la construction d'une distribution, même à partir du code source, est un processus délicat. Mais une fois terminée, la reconstruction a les mêmes fonctionnalités que RHEL. Il est vrai que les distributions de reconstruction n'ont pas de connexion et ne peuvent pas obtenir de mises à jour de Red Hat Network. Cependant, Red Hat Network ne fait pas partie du guide Red Hat Exam Prep. Et les développeurs derrière les distributions de reconstruction utilisent également le code source associé aux nouveaux packages RHEL pour maintenir leurs référentiels à jour. Deux options pour les distributions de reconstruction incluent :
■ Système d'exploitation d'entreprise communautaire (CentOS) La reconstruction connue sous le nom de CentOS comprend un certain nombre de développeurs expérimentés qui ont travaillé avec le code source RHEL depuis la sortie de RHEL 3 en 2002. Pour plus d'informations, voir www.centos.org.
■ Scientific Linux Cette distribution est développée et soutenue par des experts du Fermilab du gouvernement américain et de l'Organisation européenne pour la recherche nucléaire, connue sous son acronyme français, CERN. Les personnes associées à ces laboratoires comptent parmi les scientifiques les plus intelligents. Pour plus d'informations, voir www.scientificlinux.org. Un certain nombre de chiffres de ce livre sont basés sur des «instantanés» d'une distribution qui utilise le code source RHEL 6, connu sous le nom de Scientific Linux. Il a été développé par deux organisations avec certains des esprits scientifiques les plus intelligents au monde au Fermilab et au CERN.
Vérifiez le téléchargement Pour les téléchargements à partir du RHN, Red Hat fournit des sommes de contrôle basées à la fois sur Message Digest 5 (MD5) et sur l'algorithme de hachage sécurisé 256 bits (SHA256). Vous pouvez vérifier ces fichiers ISO aux numéros de somme de contrôle donnés avec le md5sum et
Machine Translated by Google
16 Chapitre 1 : Préparation aux certifi cations pratiques Red Hat
Commandes sha256sum. Par exemple, les commandes suivantes calculent ces sommes de contrôle pour le DVD RHEL 6 initial :
# md5sum rhelserver6.0x86_64dvd.iso # sha256sum rhelserver6.0x86_64dvd.iso Bien que ce soit un bon signe lorsqu'un DVD téléchargé réussit ces tests, un tel résultat ne garantit pas que ces DVD sont exempts d'erreurs.
OBJECTIF DE CERTIFICATION 1.04
Exigences d'installation Selon le blog de certification Red Hat, Red Hat fournit désormais des « systèmes préinstallés » pour leurs examens. Vous ne partirez donc pas de zéro, du moins pour le système physique hôte. Mais vous aurez toujours besoin de mettre en place des systèmes de pratique. Les objectifs RHCSA suggèrent que vous devez le faire avec une installation réseau. Sur un système préinstallé, compte tenu des autres exigences, cela suggère que vous devez savoir comment configurer des installations réseau sur des machines virtuelles basées sur KVM. Les exigences d'installation décrites dans cette section sont adaptées à la création d'un environnement pour les laboratoires d'entraînement. Cet environnement peut également servir de référence pour d'autres systèmes RHEL. Sur de nombreux réseaux réels, de nouveaux systèmes virtuels sont créés ou clonés à partir de cette ligne de base. Ces nouveaux systèmes sont alors dédiés à un seul service. Si vous créez un hôte physique pour les machines virtuelles de test, assurezvous d'avoir suffisamment d'espace disponible pour le système physique hôte et les machines virtuelles invitées. Cette section vous suggère de créer trois machines virtuelles à des fins de test. Vous devriez envisager d'inclure une quatrième machine virtuelle en tant que sauvegarde, au cas où l'une des machines virtuelles subirait une panne catastrophique due à une erreur ou à un dysfonctionnement. À ces fins, 80 Go d'espace libre sur un système physique seraient suffisants. Avec une planification minutieuse, vous pourrez peutêtre vivre avec une plus petite quantité d'espace libre. Pour plus d'informations sur la configuration de RHEL 6 sur une machine virtuelle, consultez le chapitre 2. Étant donné que les systèmes de fichiers Linux sont efficaces, ils peuvent être remplis presque à pleine capacité avec des problèmes de défragmentation minimes. Si vous configurez des machines virtuelles sur des partitions formatées Microsoft, un espace libre supplémentaire considérable est requis en raison de la fragmentation du volume.
Machine Translated by Google
Exigences d'installation 17
Vous ne partirez pas de zéro Avant d'installer RHEL 6, il peut être utile de passer en revue ce que l'on sait des derniers examens RHCSA et RHCE. Comme décrit dans l'annonce du blog Red Hat à l'adresse http://redhatcertification.wordpress.com/, Red Hat fournit désormais :
■ Systèmes préinstallés ■ Questions présentées « par voie électronique » En d'autres termes, une fois assis pour un examen, vous verrez une copie installée de RHEL 6 sur le système de test, avec des questions dans un format électronique. Aucune information publique n'est disponible sur le format des questions. Ce livre adoptera le format le plus basique pour les questions d'examen Red Hat, des fichiers texte disponibles dans le répertoire personnel de l'administrateur racine, /root.
Les avantages de l'installation en réseau L'installation réseau signifie que vous n'avez pas besoin d'utiliser un DVD complet sur chaque système lors de l'installation de RHEL 6. Cela signifie que chaque système est installé à partir du même ensemble de packages d'installation. Les installations réseau sont plus rapides que celles à partir de DVD physiques. Les installations réseau deviennent particulièrement puissantes lorsqu'elles sont combinées avec Kickstart fichiers et l'environnement d'exécution de prédémarrage (PXE). Dans cette configuration, tout ce que vous avez à faire pour installer RHEL 6 est de démarrer un système, de pointer le programme d'installation à distance vers le fichier Kickstart approprié, et le tour est joué ! Après quelques minutes, vous aurez un système RHEL 6 complet.
Red Hat et les machines virtuelles Les objectifs associés à la RHCSA suggèrent que vous devez savoir comment "configurer une machine physique pour héberger des invités virtuels". Cela suggère également que vous devez savoir comment effectuer un certain nombre de tâches avec des machines virtuelles et "installer Red Hat Enterprise Linux automatiquement à l'aide de Kickstart". Cela est cohérent avec l'utilisation de fichiers Kickstart pour configurer RHEL 6 sur une machine virtuelle basée sur KVM. L'un des avantages d'une machine virtuelle est la prise en charge de l'utilisation d'un fichier ISO sur un lecteur de CD/DVD virtuel. Les fichiers accessibles à partir de ce lecteur virtuel ne sont pas ralentis par la vitesse mécanique des supports CD/DVD physiques. Et comme cet accès ne peut pas être ralenti par le trafic réseau, les lecteurs de CD/DVD virtuels peuvent être aussi rapides que l'accès réseau à partir d'un système hôte.
Machine Translated by Google
18 Chapitre 1 : Préparation aux certifi cations pratiques Red Hat
Systèmes virtuels et physiques Les systèmes virtuels ne peuvent pas être autonomes. Ils nécessitent une certaine connexion à un système physique. Même les solutions de virtualisation "baremetal" telles que VMware ESX et Citrix XenSource ont été construites à partir ou reposent sur des versions spécialisées du noyau Linux, qui agit comme système d'exploitation sur l'hôte physique. Cependant, il est possible d'installer un nombre important de systèmes virtuels sur un seul système physique. Si ces systèmes sont dédiés à différents services, ils chargeront le système physique à des moments différents. De telles charges permettent de "surréserver" la RAM et d'autres ressources du système physique. Pour nos besoins, il n'y a pas de réelle différence si l'installation est effectuée sur un système physique ou virtuel. Le logiciel fonctionne de la même manière. Tant que le transfert IP est activé sur le système hôte physique, la mise en réseau sur le système virtuel fonctionne également de la même manière.
Un environnement préinstallé pour les laboratoires d'entraînement Le système RHEL 6 de base configuré dans ce chapitre est relativement simple. Cela commence par un disque virtuel de 12 Go. Une partie de ce disque sera organisée comme indiqué dans le Tableau 11. Ils seront configurés comme des partitions normales. L'espace restant sur le disque dur sera laissé vide, pour une éventuelle configuration pendant l'examen en tant que volumes logiques. Deux disques virtuels supplémentaires de 1 Go chacun sont inclus pour faciliter la configuration postinstallation d'un volume logique. Le disque dur de 12 Go et la partition de 8 Go sont des tailles arbitraires qui offrent beaucoup d'espace pour le logiciel RHEL 6. Si l'espace est limité sur votre système, vous pouvez descendre jusqu'à 8 Go pour un disque dur, tant que l'espace d'échange est également limité de manière appropriée. L'espace d'échange sous Linux est utilisé comme une extension de la RAM locale, en particulier lorsque cette ressource est insuffisante. L'installation minimale de base de RHEL 6 n'inclut pas d'interface graphique. Bien qu'il soit assez facile d'installer les groupes de packages associés à l'interface graphique une fois l'installation terminée, ce processus nécessite l'installation de plusieurs centaines de Mo de packages. Et cela prend du temps. Étant donné que Red Hat fournit un système préinstallé pour l'examen
TABLEAU 11
Cloisons modèles
Emplacement
Taille
/botte
500 Mo
/
8 Go
/maison
1024 Mo
Échanger
1024 Mo
Machine Translated by Google
Exigences d'installation 19
pour réduire le temps nécessaire à l'examen, il est raisonnable de suggérer que le système fourni par Red Hat inclut l'interface graphique. Et l'interface graphique par défaut pour les systèmes Red Hat est l'environnement de bureau GNOME. GNOME est un acronyme dans un acronyme. Il représente l'environnement de modèle d'objet de réseau GNU. GNU est luimême un acronyme récursif, car il signifie GNU's Not Unix. Linux est rempli d'acronymes récursifs similaires, tels que PHP : Hypertext Preprocessor (PHP).
La quantité de RAM à allouer est plus complexe, notamment sur une VM. Pour les besoins de ce livre, j'ai configuré des machines virtuelles avec 768 Mo de RAM pour activer confortablement les illustrations basées sur l'interface graphique du processus d'installation de RHEL. Si les installations en mode texte sont acceptables, vous pouvez exécuter une interface graphique RHEL 6 en 512 Mo, ou peutêtre même moins de RAM. Comme différentes machines virtuelles utilisent rarement la même RAM simultanément, il est possible de "surbooker" RAM; par exemple, il peut être possible de configurer trois machines virtuelles, avec 1 Go de RAM chacune, sur un système hôte physique avec moins de 3 Go de RAM physique. Une partie de la RAM sur les machines virtuelles restera inutilisée, disponible pour le système hôte physique.
Rôles système Idéalement, vous pouvez mettre en place plusieurs systèmes, chacun dédié à des rôles différents. Un réseau avec un serveur DNS (Domain Name Service) dédié, un serveur DHCP (Dynamic Host Configuration Protocol) dédié, un serveur de partage de fichiers Samba dédié, etc., est plus sécurisé. Dans cette situation, une faille de sécurité dans un système n'affecte aucun autre service.
Cependant, ce n'est pas pratique, surtout pendant les examens Red Hat. Tableau 12 listes les rôles appropriés pour chacun des trois systèmes décrits dans le Lab 1. TABLEAU 12
Système
Rôles pour les systèmes de test
Les rôles
serveur1
Poste de travail et serveurs à configurer tout au long du livre, configurés en tant que server1. example.com sur le réseau 192.168.122.0/24. Ce livre suppose une adresse IP fixe de 192.168.122.50.
testeur1
Serveur shell sécurisé prenant en charge l'accès à distance, configuré en tant que tester1.example.com sur le réseau 192.168.122.0/24. Peut inclure des serveurs pour les tests clients, tels que le service de nom de domaine (DNS). Ce livre suppose une adresse IP fixe de 192.168.122.150.
outsider1
Poste de travail sur une troisième adresse IP, configurée comme outsider1.example.org. Certains services ne doivent pas être accessibles depuis ce poste de travail. Ce livre suppose une adresse IP fixe de 192.168.100.100.
Machine Translated by Google
20 Chapitre 1 : Préparation aux certifi cations pratiques Red Hat
Il existe également un autre quatrième système implicite dans ce réseau : l'hôte physique des machines virtuelles. Lorsque plusieurs réseaux sont configurés, cet hôte disposera d'adaptateurs réseau virtuels qui se connectent à chaque réseau. Pour ce livre, j'ai mis en place un système nommé maui.example.com. Les extraits suivants de la commande ifconfig affichent les adaptateurs virbr0 et virbr1, avec des connexions aux deux réseaux :
virbr0 Link encap:Ethernet HWaddr 9E:56:D5:F3:75:51 inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0 virbr1 Link encap:Ethernet HWaddr 86:23:B8:B8:04:70 inet addr:192.168.101.1 Bcast:192.168.101.255 Mask:255.255.255.0 Bien entendu, vous pouvez modifier les noms et adresses IP associés à chacun de ces systèmes. Ce ne sont que les valeurs par défaut à utiliser dans ce livre. Le serveur1. Le système example.com est le système d'examen désigné, qui sera utilisé pour les exercices qui répondent aux exigences réelles de l'examen Red Hat. Pour plus de commodité, j'ai également configuré certains services RHCE sur le système hôte physique. Le système tester1 sera utilisé pour vérifier la configuration sur le système server1. Par exemple, si vous avez configuré deux sites Web virtuels avec des noms différents, vous devriez pouvoir accéder aux deux sites Web à partir du système tester1. Les examens Red Hat supposent que vous pouvez connecter un système en tant que client à des serveurs tels que Samba et LDAP. Ils supposent également qu'un serveur DNS est configuré avec des noms d'hôte et des adresses IP appropriés. Bien que la configuration de certains serveurs tels que Kerberos dépasse le cadre des examens RHCSA/RHCE, ils peuvent être utilisés pendant les examens par les autres systèmes en tant que clients. Enfin, le système outsider1 est essentiellement un système aléatoire d'un réseau externe tel qu'Internet. Des paramètres de sécurité appropriés signifient que certains services sur la machine server1 ne seront pas accessibles à outsider1. Comme suggéré précédemment, il serait préférable de disposer d'un quatrième système virtuel, en cas de panne d'un des trois systèmes virtuels décrits. Avant de suivre ces recommandations, lisez le chapitre 2. Ce chapitre se concentre sur la configuration d'un système hôte physique.
OBJECTIF DE CERTIFICATION 1.05
Possibilités d'installation Même la plupart des utilisateurs Linux débutants peuvent installer RHEL 6 à partir d'un CD/DVD. Bien que cette section aborde certaines des options associées à l'installation, elle se concentre sur
Machine Translated by Google
Possibilités d'installation 21
la création de ce système de base qui peut être utilisé pour configurer d'autres systèmes RHEL 6 personnalisés.
De plus, le processus d'installation est l'occasion d'en savoir plus sur RHEL 6, non seulement sur le support de démarrage, mais aussi sur les volumes logiques pouvant être configurés une fois l'installation terminée. Mais comme les systèmes physiques préinstallés sont désormais la norme pour les examens Red Hat, une discussion détaillée des volumes logiques a été consolidée au chapitre 6. Les étapes décrites dans cette section supposent une connexion au serveur FTP avec les fichiers d'installation de RHEL 6 créés et configurés dans le laboratoire 2. Les étapes sont légèrement différentes si vous installez RHEL 6 directement à partir d'un DVD complet.
Média de démarrage Lors de l'installation de RHEL 6, l'option la plus simple consiste à le démarrer à partir du DVD RHEL 6. Alors que les distributions de reconstruction peuvent proposer des CD, Red Hat ne propose que RHEL 6 sur DVD. Il propose également un support de démarrage au format ISO. À partir de ces supports, il n'y a pas de problème avec un disque de démarrage séparé, pas de souci pour les connexions réseau. Mais dans certaines organisations, vous ne voudrez peutêtre pas distribuer le DVD RHEL 6 à tout le monde. Dans certains cas, il n'y a pas de lecteur de CD/DVD. Essentiellement, il existe quatre méthodes disponibles pour démarrer le processus d'installation de RHEL 6 : ■ Démarrez à partir d'un DVD RHEL 6. ■ Démarrez à partir d'un CD de démarrage RHEL réseau. ■ Démarrez à partir d'une clé USB. ■ Démarrez à partir d'un serveur Kickstart à l'aide d'une carte de démarrage réseau PXE.
Les trois dernières options supposent généralement que vous allez installer RHEL sur un réseau. Les supports d'installation et de démarrage sont disponibles sur Red Hat Network pour les utilisateurs disposant d'un abonnement. Il devrait également être disponible à partir des serveurs associés aux distributions de reconstruction. Certaines documentations Red Hat suggèrent que le CD de démarrage réseau ne fonctionne pas sur les systèmes 64 bits avec UEFI. Pour moi, ce n'était pas vrai. Cela a bien fonctionné sur mon ordinateur portable et mon serveur basés sur UEFI. Pour plus d'informations, consultez l'article 661135 de Red Hat Bugzilla. Néanmoins, si vous devez créer une clé USB de démarrage, recherchez le fichier efidisk.img dans le sous répertoire images/ du DVD RHEL 6. Vous pouvez ensuite écrire cette image sur une clé USB. Si cette clé se trouve sur le périphérique /dev/sdd, vous devez écrire cette image avec la commande suivante :
# jj if=efidisk.img of=/dev/sdd
Machine Translated by Google
22 Chapitre 1 : Préparation aux certifi cations pratiques Red Hat
Attention, si /dev/sdd est un lecteur contenant des données, ces commandes écraseront toutes les données de ce lecteur.
Sachez comment créer la bonne disquette de démarrage pour votre système. En cas de problème, le CD de démarrage d'installation ou la clé USB peut également servir de disque de secours. À l'invite de démarrage, l' option Rescue Installed System vous amènera éventuellement à un mode de secours qui peut monter les volumes appropriés et récupérer des fichiers ou des répertoires spécifiques.
CD/DVD ou démarrage USB démarre l'installation Vous pouvez maintenant démarrer un système cible à partir du CD de démarrage réseau, du DVD d'installation ou de la clé USB d'installation. Après l'ouverture et la décompression de quelques fichiers, un écran d'installation de RHEL devrait apparaître avec au moins les quatre options suivantes :
■ Installer ou mettre à niveau un système existant ■ Installer le système avec un pilote vidéo de base ■ Récupérer le système installé ■ Démarrer à partir du lecteur local
La première option devrait fonctionner pour la plupart des utilisateurs. S'il y a des problèmes avec les graphiques après la première option, essayez de redémarrer le système et travaillez avec la deuxième option, qui spécifie un adaptateur standard VESA (Video Electronics Standard Association) associé aux anciens moniteurs Super Video Graphics Association (SVGA). Il existe deux modes associés au programme d'installation de Red Hat, également connu sous le nom d'Anaconda : le mode texte et le mode graphique. Bien que l'exigence minimale prise en charge soit de 512 Mo de RAM, vous pourrez peutêtre installer graphiquement un peu moins. Mais si vous disposez de suffisamment de RAM et que vous préférez une installation en mode texte, revenez à l'écran d'installation de RHEL. Mettez en surbrillance l'option Installer ou mettre à niveau un système existant et appuyez sur la touche TAB . Lorsque vous le faites, les options suivantes sont révélées sur cet écran, sur une seule ligne :
> vmlinuz initrd=initrd.img Pour forcer l'installation en mode texte, ajoutez le mot texte à la fin de cette ligne.
Machine Translated by Google
Possibilités d'installation 23
Alors que les informations publiées par Red Hat suggèrent un minimum de 512 Mo de RAM pour une installation graphique, des expériences sur KVM suggèrent que le minimum pour une installation GUI sur une machine virtuelle est de 652 Mo.
Étapes d'installation de base L'installation de base de RHEL est simple et devrait déjà être bien comprise par tout candidat à la certification Red Hat. La plupart des étapes sont décrites ici à titre de référence ; il est utile de se souvenir de ce processus lorsque vous travaillez sur des situations de configuration avancées telles que les fichiers Kickstart décrits au chapitre 2. L'ordre de ces étapes varie selon qu'elles sont exécutées directement à partir du CD/DVD ou via un réseau. Des variations se produisent selon qu'il existe ou non une version précédente de Linux et des partitions au format Linux sur le système local. Pour cette section, les hypothèses suivantes sont faites :
■ Installation réseau basée sur la disquette de démarrage réseau RHEL 6
■ Au moins 652 Mo de RAM ■ Un serveur FTP disponible avec les fichiers d'installation, tel que celui configuré dans le labo 2.
■ RHEL 6 comme seul système d'exploitation sur l'ordinateur local Cependant, les situations de double amorçage sont acceptables. En fait, j'ai écrit ce livre sur un ordinateur portable Intel I7 dans une configuration à triple démarrage où RHEL 6 coexiste avec Windows 7 et Ubuntu 10.04. Si vous installez le système sur un ordinateur physique dédié ou une machine virtuelle, les étapes de base sont les mêmes. Comme un hôte physique est requis pour les machines virtuelles, je suppose que vous installerez d'abord RHEL 6 sur un système physique. Le moyen le plus efficace, et donc (à mon avis) le plus probable, d'installer Red Hat Enterprise Linux consiste à effectuer une installation textuelle ou graphique à partir d'un serveur distant. À cette fin, Lab 2 configure un serveur FTP avec les fichiers d'installation de RHEL 6. Alternativement, il est possible de configurer ces fichiers d'installation sur un serveur HTTP tel que le serveur Web Apache, comme discuté plus loin dans ce chapitre. La séquence d'étapes du processus d'installation varie selon que vous effectuez l'installation à partir du DVD ou du CD d'installation réseau, ainsi que selon que vous installez en mode texte ou graphique. Cela peut également varier si vous utilisez
Machine Translated by Google
24 Chapitre 1 : Préparation aux certifi cations pratiques Red Hat
une distribution de reconstruction de RHEL 6. En fait, ces instructions sont en quelque sorte un hybride entre deux types d'installations différents, selon ce que vous faites à l'étape 2. En fait, les développeurs derrière les distributions de reconstruction ont modifié les étapes d'installation (légèrement) comme Bien. Ce que vous verrez sera probablement différent des étapes présentées ici. Soyez donc flexible lors de la lecture de ces instructions. 1. Démarrez votre ordinateur à partir du DVD RHEL, du CD de démarrage réseau RHEL ou d'une clé USB de démarrage. Cette procédure suppose que vous utilisez le CD de démarrage réseau. Cinq options sont normalement affichées : ■ Installer ou mettre à niveau un système existant ■ Installer le système avec le pilote vidéo de base ■ Récupérer le système installé ■ Démarrer à partir du lecteur local
■ Memory Test 2. La figure 11 illustre les options de la reconstruction de Scientific Linux. L'opération sont les mêmes qu'à partir d'un DVD RHEL 6 authentique. Pour l'installation, seules les deux premières options comptent. Essayez la première option. S'il y a des problèmes avec les graphiques au cours de l'installation, redémarrez le système et essayez la deuxième option répertoriée. Si vous démarrez à partir du premier DVD d'installation de RHEL 6 et que vous souhaitez vérifier les options affichées à l'étape 4, appuyez sur la touche de tabulation, ajoutez un espace et le mot askmethod à la ligne de commande qui s'affiche, puis appuyez sur entrée. Cependant, cela fait d'abord apparaître les versions en mode texte des écrans Choisir une langue et un type de clavier décrits aux étapes 9 et 10. De plus, cela ignorerait l'écran Disque trouvé décrit à l'étape suivante.
3. Le système répond avec un écran Disque trouvé. Les premières étapes du processus d'installation réseau démarrent en mode texte (qui est en fait un mode graphique basse résolution), même si suffisamment de RAM est disponible. Les choix ne sont pas "cliquables". Dans ce mode, utilisez la touche TAB pour basculer entre les options et la touche ESPACE ou ENTRÉE pour sélectionner ou désélectionner une option. 4. Si vous le souhaitez, vous pouvez utiliser l'écran Disque trouvé pour tester l'intégrité du support. Bien qu'il soit bon que le disque réussisse ce test, cela ne garantit pas que ces supports sont exempts d'erreurs. Si vous choisissez de tester, sachez que le support est éjecté une fois le test terminé. Acceptez le test ou ignorezle et passez à l'étape 4.
Machine Translated by Google
Possibilités d'installation 25
FIGURE 11 L'installation Écran de démarrage
Si vous testez l'intégrité d'un fichier ISO utilisé pour un support CD/DVD dans une VM basée sur KVM, le système « éjectera » ce fichier sans modifier l'état du support dans la VM. Vous devrez déconnecter puis restaurer le support dans l'écran Détails KVM, comme indiqué au chapitre 2. 5. Choisissez votre méthode d'installation. Quatre options sont présentées dans la Figure 12.
Les options sont simples : ■ Le CD/ DVD local peut être utilisé si le CD/DVD (ou un fichier ISO équivalent) est chargé. ■ Disque dur suppose que le fichier ISO RHEL 6 est disponible sur une partition de disque dur local. Si vous sélectionnez cette option, le programme vous invite à spécifier le volume et le répertoire avec ce fichier. ■ Répertoire NFS suppose que les fichiers d'installation sont disponibles à partir d'un répertoire NFS partagé. ■ URL, abréviation de Uniform Resource Locator, fonctionne avec les fichiers d'installation stockés à la fois sur un serveur Web Apache et sur un serveur FTP.
Pour pointer vers le serveur FTP configuré dans le Lab 2, sélectionnez URL et cliquez sur OK.
Machine Translated by Google
26 Chapitre 1 : Préparation aux certifi cations pratiques Red Hat
FIGURE 12 Sélectionnez un
Installation Méthode.
6. Dans l'écran Configurer TCP/IP, illustré à la Figure 13, choisissez la manière dont vous souhaitez configurer l'adressage IP. Vos options consistent à activer la prise en charge en tant que client DHCP pour les adresses IPv4 et/ou IPv6. (Si le serveur DHCP du réseau, tel qu'un routeur domestique, ne prend pas en charge IPv6, l'activation de cette option avec DHCP ralentit le processus d'installation.) Comme des adresses IPv4 fixes seront nécessaires pour les systèmes de test, sélectionnez Configuration manuelle, au moins pour les adresses IPv4 . Des adresses IPv4 fixes seront configurées pour les trois systèmes à partir du Tableau 12. Dans tous les cas, KVM ne prend actuellement en charge que IPv4. 7. Spécifiez une adresse IPv4 pour le système, la passerelle et le serveur de noms. Si vous ne savez pas quoi faire, c'est le moment idéal pour planifier un réseau comme décrit dans le Lab 1. Si vous avez configuré un système sur une machine virtuelle, l'adresse de la passerelle est probablement quelque chose comme 192.168.122.1 ou 192.168.100.1 , sur le même sousréseau que l'adresse IP. Pour les besoins de ce livre, j'ai désigné une adresse IPv4 pour le système server1.example.com de 192.168.122.50. Le serveur de noms, autre nom du serveur DNS, est généralement situé sur la même adresse IP que la passerelle. Alternativement, pour un système physique sur un réseau domestique, l'adresse IP appropriée pour la passerelle et le serveur de noms est l'adresse IP du routeur domestique.
Machine Translated by Google
Possibilités d'installation 27
FIGURE 13
Configurez le type d'adressage réseau.
8. Dirigez votre ordinateur vers le serveur FTP distant. Comme illustré à la Figure 14, vous pouvez entrer le nom d'hôte ou l'adresse IP du serveur FTP, ainsi que le répertoire partagé.
FIGURE 14
Entrez l'URL de l'installation serveur..
Machine Translated by Google
28 Chapitre 1 : Préparation aux certifi cations pratiques Red Hat
9. Si une connexion correcte est établie et que les fichiers sont disponibles, vous verrez le premier écran d'installation. En supposant suffisamment de RAM, c'est un écran graphique. Cliquer sur Suivant pour continuer. 10. Sélectionnez une langue à utiliser pendant le processus d'installation, comme illustré à la Figure 15. L'anglais est la valeur par défaut ; plus de 50 options sont disponibles. 11. Sélectionnez un type de clavier ; la valeur par défaut dépend de la langue sélectionnée. Si vous rencontrez des problèmes, examinez les messages des troisième et quatrième consoles ; pour ce faire, appuyez sur ALTF3, ALTF4 ou ALTF5. Une ligne de commande est disponible en appuyant sur ALTF2. Pour revenir à l'écran GUI, appuyez sur CTRLALTF6. Si vous êtes dans une installation en mode texte, vous pouvez revenir à cet écran en appuyant sur ALTF1.
FIGURE 15
Sélectionnez une langue pour l'installation.
Machine Translated by Google
Possibilités d'installation 29
12. L'écran suivant concerne les périphériques de stockage locaux ou spécialisés. Si vous avez un ou plusieurs disques durs locaux « ordinaires » (SATA, PATA ou un disque dur virtuel sur un système KVM), sélectionnez Périphériques de stockage de base, puis cliquez sur Suivant. 13. Si de nouveaux disques durs sont appliqués au système, il vous sera demandé de con changements fermes à ces disques. 14. Si une version précédente de RHEL (ou un système d'exploitation Linux reconnu similaire) est installée, vous pouvez voir une option Nouvelle installation. S'il apparaît, sélectionnezle. Sinon, Anaconda passe à l'étape suivante. 15. Vous êtes maintenant invité à donner un nom d'hôte pour le système local, tel que server1. exemple.com. Cliquez sur Configurer le réseau pour ouvrir l'outil Connexions réseau décrit au Chapitre 4. Dans certains cas, les paramètres réseau configurés à l'étape 6 peuvent ne pas être reflétés dans cet outil. Apportez les modifications appropriées et cliquez sur Suivant pour continuer.
16. Vous verrez maintenant une carte du monde, où vous pouvez sélectionner le fuseau horaire du système local. L'option System Clock Uses UTC fait référence à l'horloge matérielle locale et à la réalisation atomique du temps moyen de Greenwich. (UTC est un acronyme non anglais également basé sur un compromis politique.) Bien qu'incompatible avec Microsoft Windows, l'option UTC prend en charge les modifications de l'heure d'été. Apportez les modifications appropriées et cliquez sur Suivant pour continuer.
17. L'étape suivante consiste à saisir deux fois le mot de passe de l'utilisateur administratif root. Faitesle et cliquez sur Suivant pour continuer. 18. L'étape suivante, illustrée à la Figure 16, détermine comment l'espace sur les disques durs configurés, locaux et distants, est utilisé. Les options sont assez bien expliquées dans la figure. Pour résumer : ■ Utiliser tout l'espace Supprime toutes les partitions sur tous les périphériques configurés, y compris celles créées par des systèmes d'exploitation autres que Linux. ■ Remplacer le(s) système(s) Linux existant(s) Supprime toutes les partitions au format Linux, y compris celles créées pour d'autres distributions Linux telles que Fedora et Ubuntu Linux.
■ Réduire le système actuel Prend en compte l'espace inutilisé sur les partitions existantes disponibles, réduit ces partitions, permettant à cet espace libre d'être utilisé pour la nouvelle installation. ■ Utiliser l'espace libre Utilise l'espace libre existant pour la nouvelle installation. ■ Créer une disposition personnalisée Prend en charge la configuration personnalisée à l'aide de Disk Druid, l'outil de partitionnement de disque Red Hat, pendant le processus d'installation.
Machine Translated by Google
30 Chapitre 1 : Préparation aux certifi cations pratiques Red Hat
■ Chiffrer le système Prend en charge le chiffrement des partitions créées au cours du processus. Vous apprendrez à chiffrer et à gérer une partition existante au chapitre 6. ■ Revoir et modifier la disposition du partitionnement Démarre l'utilitaire Disk Druid décrit dans la section suivante. Pour les besoins de cette installation, sélectionnez Créer une mise en page personnalisée. Notez comment cela efface la désélection du système de cryptage et la sélection des options de révision et de modification de la disposition du partitionnement. Cliquer sur Suivant pour continuer. 19. Si plusieurs disques durs sont installés, vous devrez sélectionner les disques sur lesquels RHEL 6 sera installé. Un exemple est illustré à la Figure 17. Selon la discussion de base plus haut dans ce chapitre, choisissez le disque de 12 Go. La taille réelle sera affichée en Mo et variera de quelques pour cent. Cet écart n'est pas pertinent pour les examens Red Hat.
20. Dans ce cas, sélectionnez le lecteur de 12 Go en cliquant sur la flèche pointant vers la droite. Vous devriez maintenant voir ce lecteur de 12 Go dans la colonne de droite, répertorié dans le
FIGURE 16 Options de disposition des partitions
Machine Translated by Google
Possibilités d'installation 31
FIGURE 17 Sélectionnez parmi les disques durs locaux disponibles.
décrochage de la zone Périphériques cibles. Cliquer sur Suivant pour continuer. Vous verrez l'écran Veuillez sélectionner un périphérique illustré à la Figure 18, l'écran principal de Disk Druid. La discussion détaillée de cet utilitaire se poursuit dans la section suivante.
La perspective d'installation sur les partitions Bien qu'il soit possible d'en créer davantage, RHEL ne reconnaîtra que jusqu'à 16 partitions sur un disque dur SATA, SCSI, PATA ou virtuel individuel. Une fois qu'une partition est créée, vous pouvez configurer Linux pour monter un répertoire directement sur cette partition. Alternativement, cette partition peut être désignée comme un périphérique RAID ou comme faisant partie d'un volume logique. Pour définir une partition, vous aurez peutêtre besoin d'informations sur les conventions de dénomination, la configuration des différents systèmes de fichiers, les utilisations de l'espace de swap, les volumes logiques et les matrices RAID. Ceci n'est qu'un aperçu. Des informations détaillées sont disponibles dans le chapitre 6, y compris les tâches pouvant être requises lors des examens Red Hat et sur des systèmes réels.
Machine Translated by Google
32 Chapitre 1 : Préparation aux certifi cations pratiques Red Hat
FIGURE 18
Configuration de la partition sur l'écran Veuillez sélectionner un périphérique.
Conventions de nommage Linux a une norme de nommage simple pour les partitions de disque : trois lettres suivies d'un nombre. La première lettre identifie le type de lecteur (pour PATA, SATA ou SCSI ; et pour les disques virtuels sur des machines virtuelles basées sur KVM). La deuxième lettre correspond au disque et la troisième représente la position relative de ce disque, en commençant par Par exemple, le premier basé disque sur SATA la position est suivi relative étendu de et dLu e odu nisque ombre logique primaire, qui cloison. suit est Les partitions principales peuvent contenir les fichiers de démarrage d'un système d'exploitation. Les disques durs peuvent également être configurés avec une partition étendue, qui peut alors contenir plusieurs partitions logiques. Les disques durs sont limités à quatre partitions principales. Lorsque quatre partitions ne suffisent pas, une partition étendue peut remplacer la dernière partition principale. Cette partition étendue peut ensuite être subdivisée en partitions logiques. Ainsi, lors de la planification d'une disposition de partition, assurezvous que la partition étendue est suffisamment grande.
Machine Translated by Google
Possibilités d'installation 33
Chaque partition est associée à un fichier de périphérique Linux. Au moins c'est simple; par exemple, le nom de fichier de périphérique associé à la première partition logique sur le premier disque SATA est /dev/sda5. Un volume est un nom générique pour un segment d'espace formaté qui peut être utilisé pour contenir des données. Les volumes peuvent être des partitions, des matrices RAID ou les volumes logiques associés à la gestion des volumes logiques (LVM). Un système de fichiers est la façon dont un volume est formaté pour lui permettre de stocker des fichiers. Par exemple, Red Hat utilise le quatrième système de fichiers étendu (ext4) comme format par défaut pour ses volumes. La manière standard d'accéder aux données sous Linux consiste à monter d'abord ce système de fichiers dans un répertoire. Par exemple, lorsque la partition /dev/sda1 est formatée sur le système de fichiers ext4, elle peut alors être montée sur un répertoire tel que /boot. Il est courant de dire quelque chose comme "le système de fichiers /dev/sda1 est monté sur le répertoire / boot". Pour plus d'informations, reportezvous au chapitre 6.
Volumes de système de fichiers séparés Normalement, vous devez créer plusieurs volumes pour RHEL 6. Même dans la configuration par défaut, RHEL est configuré avec au moins trois volumes, pour un répertoire racine de niveau supérieur (/), un répertoire /boot et un espace d'échange Linux. Des volumes supplémentaires peuvent convenir à des répertoires tels que /home, /opt, /tmp et /var. Ils conviennent également à tous les répertoires personnalisés tels que les sites Web, les groupes d'utilisateurs dédiés, etc. Bien qu'il soit important de configurer le répertoire /boot sur une partition normale, d'autres répertoires peuvent facilement être configurés sur des volumes logiques ou des matrices RAID. En divisant l'espace des disques durs disponibles de cette manière, les fichiers système, d'application et utilisateur sont isolés les uns des autres. Cela permet de protéger l'espace disque utilisé par le noyau Linux et diverses applications. Les fichiers ne peuvent pas croître sur plusieurs volumes. Par exemple, une application telle qu'un serveur Web qui utilise d'énormes quantités d'espace disque ne peut pas évincer l'espace requis par le noyau Linux. Un autre avantage est que si un mauvais endroit se développe sur le disque dur, le risque pour vos données est réduit, tout comme le temps de récupération. La stabilité est améliorée. Bien qu'il y ait de nombreux avantages à créer plus de volumes, ce n'est pas toujours la meilleure solution. Lorsque l'espace disque est limité, le nombre de partitions doit être réduit au minimum. Par exemple, si vous avez un disque dur de 4 Go et que vous souhaitez installer 3 000 Mo de packages, un volume dédié /var ou même un volume /home pourrait conduire à des situations où l'espace disque s'épuise beaucoup trop rapidement.
Machine Translated by Google
34 Chapitre 1 : Préparation aux certifi cations pratiques Red Hat
Espace d'échange Linux L'espace d'échange Linux est normalement configuré sur une partition dédiée ou sur un volume logique. Cet espace est utilisé pour étendre la quantité de RAM effective sur un système, en tant que mémoire virtuelle pour les programmes en cours d'exécution. Mais vous ne pouvez pas simplement acheter de la RAM supplémentaire et éliminer l'espace d'échange. Linux déplace les programmes et les données rarement utilisés pour échanger de l'espace, même si vous disposez de gigaoctets de RAM. En tant que telles, les matrices RAID d'espace d'échange n'ont guère de sens, car pourquoi quelqu'un sauvegarderaitil des fragments de données de la RAM ?
La façon dont Red Hat attribue l'espace d'échange par défaut est basée sur la quantité de RAM sur un système et l'espace disponible sur les disques durs locaux. Pour les systèmes jusqu'à 2 Go, la taille de l'espace d'échange par défaut est le double de la quantité de RAM installée. Audessus de 2 Go, c'est la quantité de RAM + 2 Go. Mais ce ne sont pas des règles « dures et rapides ». Les stations de travail avec plusieurs Go de RAM utilisent souvent très peu d'espace de swap. Sur mon serveur domestique, j'ai 8 Go de RAM et 4 Go d'espace de swap. Cet espace d'échange est rarement utilisé, mais il peut être utilisé plus fréquemment sur des systèmes qui ne sont pas redémarrés pendant des mois ou qui sont fortement sollicités par certains services. Dans tous les cas, l'installation par défaut configure l'espace d'échange non pas dans une partition dédiée, mais comme un volume logique.
Informations de base sur les volumes logiques La création d'un volume logique à partir d'une partition nécessite les étapes suivantes.
Des détails sur ces concepts ainsi que les commandes réelles requises pour exécuter ces étapes sont décrits au chapitre 6. Certaines de ces étapes sont exécutées automatiquement si vous créez un volume logique pendant le processus d'installation.
■ La partition doit être étiquetée en tant que volume logique. ■ La partition étiquetée peut ensuite être initialisée en tant que volume physique. ■ Un ou plusieurs volumes physiques peuvent être combinés en un groupe de volumes. ■ Un groupe de volumes peut être subdivisé en volumes logiques. ■ Un volume logique peut ensuite être formaté sur un système de fichiers Linux ou en tant que swap espace.
■ Le volume logique formaté peut être monté sur un répertoire ou en tant que swap espace.
Informations de base sur les baies RAID RAID était une exigence explicite des examens RHCT/RHCE jusqu'à la sortie de RHEL 6. Comme il ne figure plus ni dans les objectifs RHCSA/RHCE ni dans les grandes lignes des cours de préparation à ces certifications, vous pouvez détendezvous un peu sur ce sujet.
Machine Translated by Google
Possibilités d'installation 35
Dans tous les cas, le RAID configuré sur RHEL 6 est un RAID logiciel. L'acronyme, Redundant Array of Independent Disks, est quelque peu trompeur, car le RAID logiciel est généralement basé sur des partitions indépendantes. La redondance provient de l'utilisation de partitions de différents disques durs physiques.
Exercices de création de partition Revenez maintenant au processus d'installation. Si vous avez suivi les étapes décrites jusqu'à présent dans ce chapitre et que le système dispose de suffisamment de RAM, vous devriez voir l'écran Disk Druid Veuillez sélectionner un périphérique illustré à la Figure 18. Sur cet écran, vous avez la possibilité de configurer des partitions, des volumes logiques et des matrices RAID. 1. Configurez les partitions standard comme décrit précédemment, dans le Tableau 11. Des partitions plus grandes sont acceptables si vous avez l'espace. Ils seraient nécessaires si vous créez le système hôte physique qui contiendra les machines virtuelles. Le bouton Créer prend en charge la création de partitions standard, de volumes logiques et de matrices RAID, comme illustré à la Figure 19. Sélectionnez Partition standard et cliquez sur Créer pour continuer.
FIGURE 19 Vous pouvez créer un variété de périphériques de stockage..
Machine Translated by Google
36 Chapitre 1 : Préparation aux certifi cations pratiques Red Hat
2. Vous devriez maintenant voir la fenêtre Ajouter une partition illustrée à la Figure 110. C'est sup ports un certain nombre de choix : ■ Lecteurs autorisés. Pour les besoins de cette installation, limitez les partitions à configurer au disque dur virtuel, étiqueté Virtio Block Device. ■ Le point de montage, qui est le répertoire (tel que /boot) dont les fichiers seront stockés sur la partition. Vous pouvez saisir le point de montage ; alternativement, il s'agit d'une zone de texte déroulante qui fournit des options pour les répertoires de points de montage typiques.
■ Le type de système de fichiers ; le système de fichiers ext4 par défaut est suffisant. Cliquez sur la case ; des options pour d'autres formats, ainsi qu'une configuration en tant que volume physique, composant de matrice RAID ou espace d'échange, sont également disponibles. ■ La taille de la partition en Mo ; dans ce cas, les partitions à configurer pour ce système de base sont définies dans le Tableau 11. Il est maintenant temps de faire quelques exercices. Tout d'abord, examinez comment vous pouvez créer et configurer partitions pendant le processus d'installation. Vous verrez également comment allouer un système de fichiers à une partition ou à un volume logique.
FIGURE 110 Ajoutez une partition.
Machine Translated by Google
Possibilités d'installation 37
EXERCICE 11 Partitionnement pendant l'installation Cet exercice est basé sur une installation en cours de RHEL 6. Les erreurs sont faciles à corriger sur les machines virtuelles, car il est assez facile de redémarrer le processus d'installation. Cet exercice commence par l'écran Veuillez sélectionner un périphérique illustré à la Figure 18 et se poursuit avec les fenêtres illustrées aux Figures 19 et 110. De plus, il suppose une RAM suffisante pour fonctionner avec l'installation graphique.
1. Commencez à créer une mise en page personnalisée. Si vous démarrez avec des disques durs vierges, aucune partition ne sera configurée. Supprimez les partitions configurées si aucun espace n'est disponible.
2. Essayez de créer une partition normale. Cliquez sur Créer pour ouvrir la fenêtre Créer un stockage. Sélectionnez Partition standard et cliquez sur Créer pour ouvrir la fenêtre Ajouter une partition illustrée à la Figure 110. Configurez un point de montage approprié, tel que /home/user. Cliquez sur la zone de texte déroulante Type de système de fichiers et passez en revue les formats disponibles. Si plusieurs lecteurs autorisés sont disponibles, assurezvous qu'un lecteur approprié est sélectionné.
3. Conservez le type de système de fichiers ext4 par défaut, puis cliquez sur OK pour continuer. 4. Créez une partition supplémentaire en suivant les étapes décrites cidessus. Pour les besoins de cet exercice, la valeur par défaut de 200 Mo est suffisante, en supposant qu'un espace libre suffisant est disponible.
5. Cliquez à nouveau sur Créer, sélectionnez Volume physique LVM (LVM) et cliquez sur Créer. Notez comment il ouvre la fenêtre Ajouter une partition avec le type de système de fichiers de volume physique (LVM). Si plusieurs lecteurs autorisés sont disponibles, assurezvous qu'un lecteur approprié est sélectionné. Cliquez sur OK. 6. Répétez l'étape précédente pour créer une seconde partition LVM. Si plus d'un lecteur autorisé est disponible, assurezvous de sélectionner un lecteur différent de celui choisi à l'étape 5.
7. Cliquez sur Créer. Vous devriez maintenant pouvoir sélectionner le groupe de volumes LVM. Faitesle et cliquez sur Créer. 8. Dans la fenêtre Créer un groupe de volumes LVM, cliquez sur la liste déroulante Étendue physique zone de texte vers le bas. Passez en revue les étendues physiques disponibles, qui sont des unités associées à des groupes de volumes. En règle générale, aucune modification n'est nécessaire. 9. Assurezvous que tous les Volumes physiques à utiliser disponibles sont actifs.
Machine Translated by Google
38 Chapitre 1 : Préparation aux certifi cations pratiques Red Hat
10. Cliquez sur Ajouter ; cela ouvre la fenêtre Créer un volume logique. 11. Entrez un point de montage approprié tel que /home/volume. Le volume logique ume Le nom affiché n'est que la valeur par défaut ; vous pouvez utiliser n'importe quel nom de fichier légal pour votre volume logique. Définissez une taille qui utilise tout l'espace disponible. Cliquez sur OK. 12. Examinez le résultat dans la fenêtre Créer un groupe de volumes LVM. Cliquez sur OK et examinez le résultat dans la fenêtre de partition d'origine. 13. Il est maintenant temps de faire le ménage. Cliquez sur Annuler pour revenir à la partie principale fenêtre de classement. Cliquez sur Réinitialiser pour restaurer la configuration d'origine de Disk Druid avant le début de l'exercice.
Maintenant que l'exercice est terminé, la configuration de la partition doit refléter au moins les minimums indiqués dans le Tableau 11. Une version est illustrée à la Figure 111. Si une erreur est commise, mettez une partition en surbrillance et cliquez sur Modifier. La fenêtre Modifier la partition qui s'affiche inclut les mêmes options que celles présentées. Des partitions différentes et des variations de taille modestes ne sont pas pertinentes pour les examens Red Hat.
FIGURE 111 Exemple de configuration de partition.
Machine Translated by Google
Possibilités d'installation 39
Pour terminer cette partie du processus, cliquez sur Suivant. Si vous voyez une fenêtre Avertissements de formatage, il se peut qu'il y ait des données existantes sur les partitions qui ont été créées. C'est votre dernière chance d'annuler avant de continuer. En supposant que vous êtes satisfait, cliquez sur Formater pour continuer, et dans la fenêtre suivante, cliquez sur Écrire les modifications sur le disque.
Confi gurer le Bootloader Le bootloader Linux standard est GRUB, le GRand Unified Bootloader. Alors que RHEL 6 utilise une version légèrement plus ancienne de GRUB, la version 0.97, il s'agit d'un chargeur de démarrage "éprouvé". Les paramètres illustrés à la Figure 112 sont des valeurs par défaut raisonnables pour une configuration à double amorçage. Sur une VM, l'écran sera plus simple. Dans la plupart des cas, aucune modification n'est nécessaire. Les termes « chargeur de démarrage » et « chargeur de démarrage » sont interchangeables. Les deux se trouvent fréquemment dans la documentation de Red Hat.
FIGURE 112 Configurer le chargeur de démarrage
Machine Translated by Google
40 Chapitre 1 : Préparation aux certifi cations pratiques Red Hat
Le chargeur Linux (LILO) n'est plus pris en charge par Red Hat depuis près d'une décennie. De
2.0 est disponible, il n'est pas non plus pris en charge pour RHEL 6, du moins depuis la version initiale.
plus, alors que GRUB
■ L'option Installer le chargeur de démarrage sur /dev/sda installe le chargeur de démarrage sur le secteur de démarrage principal du disque dur indiqué. À moins qu'un autre chargeur de démarrage ne soit installé, c'est approprié. ■ L'utilisation d'un mot de passe de chargeur de démarrage peut aider à sécuriser le système. Comme vous le verrez
au chapitre 5, sans mot de passe du chargeur de démarrage, toute personne ayant accès au menu de démarrage peut accéder à Linux avec des privilèges administratifs complets simplement en démarrant au niveau d'exécution 1. ■ La liste des systèmes d'exploitation du chargeur d'amorçage spécifie une liste des systèmes d'exploitation détectés. Bien que vous puissiez voir une deuxième entrée pour un système d'exploitation tel que Microsoft Windows dans la vraie vie, RHEL 6 devrait être le seul système d'exploitation installé ici pour les examens Red Hat.
Bien qu'il soit possible d'ajouter une entrée à partir de ce menu pour d'autres systèmes d'exploitation, cela ne fonctionnera pas pour d'autres installations Linux sur le même système. À cette fin, il est plus efficace de modifier le fichier de configuration du chargeur de démarrage GRUB directement une fois l'installation terminée.
Bien que vous puissiez choisir de configurer un mot de passe de chargeur de démarrage, les valeurs par défaut doivent être acceptables sur tout système où RHEL 6 est le seul système d'exploitation installé sur la machine locale. Apportez les modifications appropriées et cliquez sur Suivant pour continuer.
Wow, regardez tous ces logiciels ! Plus de 2500 packages sont disponibles uniquement à partir du DVD d'installation de RHEL 6. Ce nombre n'inclut pas un certain nombre de paquetages disponibles uniquement via Red Hat Network. Avec autant de packages, il est important de les organiser en groupes. Après avoir configuré le chargeur de démarrage GRUB, vous verrez les options illustrées à la figure 113, qui vous permettent de configurer le système local sur une fonctionnalité souhaitée. La sélection dépend de votre objectif. Si vous effectuez l'installation sur un système physique pour configurer la virtualisation basée sur KVM, sélectionnez Hôte virtuel. Si vous configurez des invités virtuels
Machine Translated by Google
Possibilités d'installation 41
FIGURE 113
Fonctionnel installation choix
(ou d'autres serveurs dédiés), sélectionnez Serveur de base. Lors d'un examen Red Hat, vous installerez la plupart des logiciels supplémentaires une fois l'installation de base du système d'exploitation terminée. D'autres options sont répertoriées dans le Tableau 13. Selon la distribution de reconstruction, les options peuvent varier considérablement. TABLEAU 13
Catégorie
Catégories de logiciels d'installation
Description
Serveur de base
Installe les packages de base pour Red Hat en tant que serveur
Serveur de base de données
Inclut les packages de bases de données MySQL et PostgreSQL
Serveur Web
Configure un système avec le serveur Web Apache
Hôte virtuel
Configure un système avec le système KVM VM
Bureau
Inclut un logiciel de productivité de bureau
Software Development Workstation Ajoute des outils pour modifier et compiler des logiciels Minimal
Inclut une liste minimale de packages pour le système d'exploitation
Machine Translated by Google
42 Chapitre 1 : Préparation aux certifi cations pratiques Red Hat
Pour une ligne de base vraiment sécurisée dans un environnement de production, considérez l'installation minimale. Moins de packages signifie moins de vulnérabilités. Vous pouvez ensuite ajouter uniquement les packages nécessaires à la fonctionnalité souhaitée. Tout logiciel qui n'est pas installé ne peut pas être exploité par un cracker. Dans le monde de Linux, le terme "hacker" fait référence à de bonnes personnes qui veulent créer de meilleurs logiciels. Le terme "cracker" fait référence aux personnes qui veulent s'introduire dans d'autres systèmes avec de mauvaises intentions. Les référentiels répertoriés peuvent être utiles pour des fonctionnalités de serveur supplémentaires. Comme le suggèrent leurs noms, les référentiels non sélectionnés illustrés à la Figure 113 prennent en charge l'installation de logiciels dans un certain nombre de catégories, notamment les clusters de stockage, les systèmes nécessitant une haute disponibilité et les systèmes qui équilibrent la charge des services à fort trafic. Comme il s'agit de référentiels Red Hat, gérés par Red Hat, certains référentiels tiers peuvent ne pas dupliquer la disponibilité ou la fonctionnalité de certains des référentiels illustrés dans la figure. Si vous souhaitez rediriger les systèmes vers des référentiels locaux ou internes, pour contrôler les packages que d'autres installent sur leurs systèmes, cliquez sur Modifier le référentiel. Cela vous permet de spécifier où le système local recherche de nouveaux packages et mises à jour. Certains groupes de développeurs autorisent l'installation de logiciels non pris en charge par Red Hat. Deux exemples peuvent être trouvés sur http://atrpms.net et http://rpmrepo.org.
Pour les besoins de ce chapitre, conservez le référentiel Red Hat Enterprise Linux par défaut (ou les valeurs par défaut pour une distribution de reconstruction telle que CentOS/Scientific Linux). Assurezvous de sélectionner Personnaliser maintenant ; sinon, vous ne pourrez pas suivre la section suivante. Cliquer sur Suivant pour continuer.
Forfaits de base Dans cette section, vous obtiendrez un aperçu de base de ce qui est disponible pendant le processus d'installation de RHEL 6. Pendant les examens, vous pouvez vous référer à l'un de ces groupes de packages avec l'outil Red Hat Add/Remove Software. Vous pouvez également trouver une liste des groupes de packages disponibles avec la commande yum grouplist. Plus d'informations sont disponibles au chapitre 7. Les groupes de packages Red Hat sont organisés logiquement ; par exemple, les packages associés à une langue spécifique se trouvent dans le groupe de packages Langues. C'est important
Machine Translated by Google
Possibilités d'installation 43
pour choisir uniquement les groupes de packages dont vous avez besoin. Moins de packages installés signifie plus de place pour les fichiers personnels, ainsi que les fichiers journaux nécessaires pour surveiller les systèmes.
Groupes de packages Cette section comprend la présentation la plus brève possible de chacun des groupes de packages disponibles pendant le processus d'installation de RHEL. Comme vous pouvez le voir sur la figure 114, il existe des groupes de haut niveau dans le volet de gauche, tels que les bureaux, et des groupes de packages réguliers dans le volet de droite, tels que le système X Window. Les détails des RPM associés à chaque groupe de packages sont stockés dans un fichier XML. Pour examiner ce fichier, accédez au DVD d'installation de RHEL et lisez le fichier compressé *compsrhel6Server.xml.gz dans le répertoire /repodata.
Pour un exemple des détails d'un groupe de packages, sélectionnez Bureau et cliquez sur Packages facultatifs. Cela ouvre la fenêtre Packages In Desktop illustrée à la Figure 115. Comparez cette liste au fichier XML susmentionné. Les packages obligatoires ne sont pas affichés dans la fenêtre associée, car leur installation est requise pour le groupe de packages. Comme
FIGURE 114 chapeau rouge Groupes de packages Enterprise Linux
Machine Translated by Google
44 Chapitre 1 : Préparation aux certifi cations pratiques Red Hat
FIGURE 115 chapeau rouge
Linux d'entreprise Détails du groupe de packages de bureau
les étiquettes XML le suggèrent, les packages par défaut sont sélectionnés par défaut ; les packages optionnels ne sont pas sélectionnés. Prenez le temps d'étudier cet écran. Examiner les packages dans chaque package groupe. Vous découvrirez les types de packages installés par défaut. Si vous ne les ajoutez pas pendant le processus d'installation, ce n'est pas la fin du monde. Vous pouvez toujours les ajouter avec les commandes rpm et yum ou l'outil Ajouter/Supprimer des packages décrit au chapitre 7.
Si le fichier XML est trop confus, notez simplement le nom d'un groupe de packages. À partir de ce nom, vous pouvez trouver une liste des packages associés une fois l'installation terminée. Par exemple, la commande suivante identifie les packages obligatoires, par défaut et facultatifs pour le groupe de packages de base :
$ yum groupinfo base
Pour les besoins de ce livre, j'ai créé deux installations de base différentes. Une ligne de base convient comme système hôte pour les machines virtuelles ; l'autre est adapté pour être installé dans une VM. Les deux incluent une installation graphique relativement minimale, comme la plupart Linux
Machine Translated by Google
Possibilités d'installation 45
les administrateurs apprécient la commodité de plusieurs consoles de ligne de commande ouvertes, côte à côte. À cette fin, j'ai sélectionné les groupes de packages suivants lors du processus d'installation.
■ Bureaux – Bureau Inclut l'environnement de bureau GNOME de base. ■ Bureaux – Polices Installe les polices qui améliorent la lisibilité du système dans l'interface graphique. ■ Desktops – X Window System Ajoute les packages de serveur associés à l'interface graphique.
■ Applications – Navigateur Internet Inclut le navigateur Web Firefox. Les groupes de packages se répartissent en différentes catégories ; par exemple, pour sélectionner le groupe de packages X Window System, j'ai d'abord mis en surbrillance la catégorie Desktops dans le volet de gauche. Je pourrais ensuite sélectionner le groupe de packages X Window System dans le volet de droite.
De plus, pour le système hôte physique configuré pour les machines virtuelles basées sur KVM, je me suis assuré que les groupes de packages de virtualisation étaient inclus. Ils doivent être automatiquement inclus si vous avez sélectionné la catégorie de système Virtual Host plus tôt dans l'installation processus. Une fois les packages souhaités sélectionnés, cliquez sur Suivant. Anaconda procède ensuite à la processus d'installation. Lorsque le processus est terminé, vous verrez un écran final qui confirme l'installation, ainsi qu'une option pour redémarrer le système. Sur le système utilisé pour écrire ce livre, j'ai également installé la suite OpenOffice.org et The GIMP (The GNU Image Manipulation Program).
Au redémarrage Lorsque l'installation est terminée, vous verrez un dernier message à cet effet, avec une option pour redémarrer le système. Si vous avez installé RHEL 6 sur un système physique, n'oubliez pas d'éjecter ou de retirer la disquette de démarrage et/ou le DVD d'installation. Pour RHEL 6 installé dans une machine virtuelle basée sur KVM, vous devrez changer le périphérique de démarrage. S'il n'est pas déjà ouvert, cliquez sur Applications | Outils système | Gestionnaire de machines virtuelles. Entrez le mot de passe administrateur racine si vous y êtes invité, puis doublecliquez sur la machine virtuelle souhaitée. Modifiez ensuite le périphérique de démarrage en procédant comme suit : 1. Dans la fenêtre associée à la VM, cliquez sur Afficher | Détails. 2. Dans la fenêtre qui s'affiche, illustrée à la Figure 116, cliquez sur Options de démarrage.
Machine Translated by Google
46 Chapitre 1 : Préparation aux certifi cations pratiques Red Hat
FIGURE 116 Périphériques de démarrage
dans le virtuel Gestionnaire de machines.
3. Si le périphérique de démarrage par défaut est défini sur CDROM, vous devriez pouvoir le changer en disque dur (ou vice versa) à l'aide des boutons fléchés. Une fois vos sélections terminées, cliquez sur Appliquer. Sachez que les modifications ne sont pas implémentées avant la prochaine mise sous tension de la machine virtuelle KVM. 4. Cliquez sur Afficher | Console. Si vous ne l'avez pas déjà fait, cliquez sur Redémarrer sur com Terminez le processus d'installation de RHEL 6. 5. Cliquez sur Machine virtuelle | Arrêter | Arrêt forcé. Confirmez si vous y êtes invité. 6. Cliquez sur Machine virtuelle | Courir. Le système devrait alors démarrer normalement dans le système nouvellement installé. Au moment d'écrire ces lignes, la machine virtuelle | Arrêter | Redémarrage et machine virtuelle | Arrêter | Les options du menu Arrêter ne fonctionnent pas.
Machine Translated by Google
Options de configuration du système 47
Dans la plupart des installations, RHEL 6 démarre le premier processus de démarrage décrit plus loin dans ce chapitre.
OBJECTIF DE CERTIFICATION 1.06 Options de configuration du système Les configurations de base sont importantes. Une fois configuré, vous pouvez cloner cette ligne de base pour configurer autant de systèmes que nécessaire. Sur un réseau réel, une bonne ligne de base peut être utilisée pour créer des systèmes dédiés à des services spécifiques. Pour permettre l'accès à distance, il disposera d'un serveur Secure Shell (SSH), configuré avec un utilisateur régulier. Pour le processus de démarrage, RHEL 6 inclut une implémentation du système Upstart, qui remplace le système SysVInit basé sur Unix. Il détermine les consoles, les services et les affichages, ainsi que le niveau d'exécution qui démarre lorsqu'un système est démarré. Certains systèmes utilisent l'authentification à distance, configurée pour se connecter à des serveurs distants pour la vérification du nom d'utilisateur et du mot de passe. Bien que ces systèmes soient couverts dans d'autres chapitres, suffisamment d'informations sont fournies dans cette section pour mettre en place un système de référence.
Le premier processus de démarrage Mais d'abord, il y a le processus qui démarre la première fois que la plupart des systèmes RHEL 6 sont démarrés après l'installation. Et c'est le premier processus de démarrage. Bien qu'il existe une version en mode texte fonctionnellement similaire du processus, l'installation par défaut décrite précédemment dans ce chapitre conduit à la version graphique du processus. Les étapes décrites dans cette section sont basées sur une installation du RHEL 6 réel ; les étapes associées à une distribution de reconstruction varient.
1. Cela commence par un écran de bienvenue. Cliquez sur Transférer pour continuer. 2. Le premier processus de démarrage se poursuit avec un contrat de licence, qui varie selon qu'il s'agit de RHEL 6 ou d'une distribution de reconstruction. (Scientific Linux 6 n'inclut même pas cette étape.) Si vous refusez le contrat de licence, vous êtes invité à arrêter et à supprimer RHEL 6 du système local. Si vous pouvez accepter cet accord, sélectionnez Oui et cliquez sur Transférer pour continuer. 3. Vous êtes invité à connecter le système au RHN. L'illustration comprend la fenêtre qui apparaît si vous cliquez sur Pourquoi devraisje me connecter à RHN.
Machine Translated by Google
48 Chapitre 1 : Préparation aux certifi cations pratiques Red Hat
4. Pour vous inscrire, vous aurez besoin d'un compte RHN, avec un abonnement disponible. Comme cela n'est pas requis pour les examens RHCSA/RHCE, sélectionnez Non et cliquez sur Transférer pour continuer. 5. Vous êtes invité avec les raisons indiquées dans l'illustration pour l'enregistrement. Pour éviter de vous inscrire à ce stade, cliquez sur Non merci, je me connecterai plus tard pour continuer. Vous pouvez vous enregistrer sur le RHN ultérieurement avec la commande rhn_register. 6. Une fenêtre vous informe que le système local n'est pas configuré pour les mises à jour logicielles. Comme vous effectuerez cette tâche au chapitre 7, cliquez sur Suivant pour continuer.
7. Bien qu'elle ne soit pas requise pour l'installation, l'étape suivante vous permet de créer un utilisateur régulier du système. Bien que vous puissiez également vous connecter à une base de données d'utilisateurs distante, un utilisateur local régulier est requis à cette étape. Si vous cliquez sur Avancé, cela ouvre le gestionnaire d'utilisateurs Red Hat, qui peut aider à personnaliser les détails de l'utilisateur,
Machine Translated by Google
Options de configuration du système 49
comme indiqué au chapitre 8. Configurez au moins un utilisateur local, puis cliquez sur Suivant pour continuer. 8. Vous pouvez maintenant configurer une date et une heure pour le système local. La date et l'heure qui s'affichent reflètent celles configurées dans le matériel local. Si vous sélectionnez l'option Synchroniser la date et l'heure sur le réseau, la fenêtre change pour afficher les serveurs NTP disponibles, en fonction des options associées à l'outil Propriétés de date/heure brièvement décrites au chapitre 5 et traitées en détail au chapitre 17. Effectuez les modifications souhaitées et cliquez sur Suivant pour continuer. 9. À moins que vous ne travailliez avec un système disposant de beaucoup de mémoire, un message "Mémoire insuffisante pour configurer kdump" apparaît. Ce système collecte les données associées aux plantages du noyau. Cliquez sur OK ou apportez les modifications appropriées, puis cliquez sur Terminer. Si vous n'avez pas installé d'options d'interface graphique telles que l'environnement de bureau GNOME et le système X Window, vous verrez l'alternative en mode texte à l'outil First Boot, comme illustré à la figure 117. Même si les options de l'interface graphique indiquées sont configurées, vous pouvez démarrer l'équivalent de cet outil avec la commande setup. Il comprend six outils. La fonctionnalité associée à chacun de ces outils est discuté dans plusieurs chapitres différents.
FIGURE 117 Le mode texte Outil de configuration.
Machine Translated by Google
50 Chapitre 1 : Préparation aux certifi cations pratiques Red Hat
Paramètres de sécurité par défaut Lorsque RHEL 6 est installé, des paramètres par défaut sont associés aux parefeux basés sur SELinux et iptables. Comme cette section ne fait que résumer les paramètres par défaut, elle n'inclut pas beaucoup de détails. Pour plus d'informations sur ces options de sécurité, reportezvous aux chapitres 4, 10 et autres. Tout d'abord, SELinux est activé en mode d'application par défaut. Vous pouvez confirmer le paramètre avec la commande sestatus, qui devrait conduire au résultat suivant : Statut SELinux :
activé /selinux
Montage SELinuxfs :
application
Mode actuel :
application 24
Mode du fichier de configuration : Version de la politique : Stratégie du fichier de configuration :
ciblé
Vous en apprendrez plus sur SELinux et l'examen RHCSA au chapitre 4. Si vous optez pour le RHCE, vous apprendrez également à configurer SELinux dans les chapitres 10 et suivants pour prendre en charge une grande variété de services. Si vous souhaitez des informations détaillées sur la commande iptables actuelle, examinez le fichier / etc/sysconfig/iptables. Ce fichier est utilisé par le service iptables, grâce au script /etc/init.d/iptables. La ligne suivante de ce fichier autorise le trafic envoyé via le port 22 depuis l'extérieur.
A ENTRÉE m état état NOUVEAU m tcp p tcp dport 22 j ACCEPTER
Le port 22 est le port par défaut du service Secure Shell (SSH), qui prend en charge l'administration à distance du système local. S'il y a une bonne connexion réseau, vous pourrez vous connecter à distance à ce système. Si l'adresse IP locale est 192.168.122.50, vous pouvez vous connecter à distance au compte de l'utilisateur Michael avec la commande suivante :
# ssh [email protected]
Le serveur SSH peut être configuré pour améliorer encore plus la sécurité. Pour plus d'informations, reportezvous au chapitre 11.
Machine Translated by Google
Configurer les services de partage de fichiers par défaut 51
Options de configuration spéciales pour les machines virtuelles Sur un hôte virtuel basé sur KVM, vous pouvez remarquer des règles de parefeu supplémentaires. Par exemple, dans le fichier /etc/sysconfig/iptables de l'hôte virtuel sur mon système, je vois la règle supplémentaire suivante, qui accepte le trafic sur un périphérique réseau ponté physique.
I FORWARD m physdev physdevisbridged j ACCEPTER Cela fonctionne pour la mise en réseau IPv4 à l'aide du transfert IP actif dans le fichier dynamique, /proc/ sys/net/ipv4/ip_forward. C'est un fichier binaire ; s'il est défini sur 1, le transfert IPv4 est actif. Pour le définir de manière permanente, ouvrez le fichier /etc/sysctl.conf et assurezvous que la directive suivante est définie sur 1 :
net.ipv4.ip_forward=1 Pour mettre en œuvre les modifications immédiatement sur le système local, exécutez la commande suivante :
# sysctlp Ces informations sont également abordées brièvement au chapitre 5 dans le contexte de la configuration du réseau. Une discussion détaillée du système de fichiers /proc associé est une rubrique RHCE traitée au chapitre 12.
OBJECTIF DE CERTIFICATION 1.07
Configurer les services de partage de fichiers par défaut L'une des exigences du guide RHCSA est de « Configurer un système pour exécuter un serveur HTTP de configuration par défaut », ainsi que de « Configurer un système pour exécuter un serveur FTP de configuration par défaut ». Interprétons ces déclarations. Le serveur HTTP par défaut sur RHEL 6 est le serveur Web Apache. Le serveur FTP par défaut correspondant est vsFTP. Bien que la configuration détaillée de ces services soit du ressort du RHCE, ces les systèmes incluent des fonctionnalités de base dans leurs installations par défaut. Vous allez confirmer le fonctionnement de l'installation par défaut. Ensuite, vous allez pousser ce processus un peu plus loin, pour configurer ces services pour partager des fichiers, en particulier les fichiers copiés à partir du DVD d'installation.
Machine Translated by Google
52 Chapitre 1 : Préparation aux certifi cations pratiques Red Hat
La configuration de ces services pour le partage de fichiers est assez simple. Aucune modification n'est requise pour les principaux fichiers de configuration. En supposant que SELinux est activé (comme il se doit pendant les examens), les étapes de base sont :
■ Copiez le contenu du DVD d'installation de RHEL 6 sur le annuaire.
■ Assurezvous que le contenu du répertoire indiqué est configuré avec le bon Contextes SELinux.
■ Configurez le service noté pour qu'il pointe vers le répertoire noté et qu'il démarre au démarrage du système. Naturellement, les étapes varient selon le service. Les détails décrits dans ce chapitre sont rudimentaires et peuvent ne pas être suffisants si les commandes et services associés sont nouveaux pour vous. Pour plus d'informations sur la commande mount, consultez le chapitre 6. Pour plus d'informations sur SELinux, consultez le chapitre 4. Pour plus d'informations sur les services Apache Web et vsFTP, consultez les chapitres 14 et 16, respectivement.
Monter et copier le DVD d'installation Vous savez peutêtre déjà que la commande mount est utilisée pour connecter un périphérique tel qu'une partition ou un lecteur de DVD à un répertoire spécifié. Par exemple, la commande suivante monte le lecteur de DVD standard dans le répertoire /media :
# monter /dev/dvd /media RHEL 6 inclut un certain nombre de fichiers de périphériques similaires dans le répertoire /dev. Avec la commande ls l, vous pouvez confirmer que ces fichiers sont tous liés au fichier de périphérique /dev/ sr0 :
# ls l /dev/dvd # ls l / dev/dvdrw # ls l /dev/cdrom
Si le DVD est correctement configuré, il devrait automatiquement trouver le format de système de fichiers approprié à partir du fichier /etc/filesystems. Dans ce cas, il apparaît dans le fichier sous la forme iso9660, qui est la norme ISO pour les formats CD et DVD. Il est raisonnable de s'attendre à ce que le DVD soit correctement configuré. S'il y a un problème, vous verrez le message d'erreur suivant de la commande mount notée :
mount : vous devez spécifier le type de système de fichiers
Machine Translated by Google
Configurer les services de partage de fichiers par défaut 53
La cause la plus probable est une erreur dans le fichier ISO ou dans la façon dont ce fichier a été gravé sur le support physique. En parlant du fichier ISO, il est facile de le monter directement sur un répertoire, sans gaspiller un DVD physique. La commande suivante fonctionnerait sur le DVD RHEL 6 :
# mount o loop rhelserver6.0x86_64dvd.iso /media L'étape suivante consiste à copier le contenu du DVD dans le répertoire partagé avec le serveur de fichiers de votre choix, FTP ou HTTP. De manière générique, la commande suivante s'assure de copier les fichiers en mode archive (a), de manière récursive ( r). Le point s'assure d'inclure les fichiers cachés. Les fichiers sont copiés dans le répertoire indiqué :
# cp ar /média/. /chemin/vers/rep Le répertoire à utiliser dépend du serveur. Bien sûr, les serveurs peuvent être configurés pour utiliser des répertoires dans des emplacements autres que ceux par défaut.
Configurer un serveur Apache de configuration par défaut L'implémentation Red Hat du serveur Web Apache configure le répertoire /var/www /html pour les fichiers HTML. Les sousrépertoires que vous créez conviennent au partage de fichiers. Il fonctionne avec la configuration Apache par défaut, telle qu'installée à partir des packages Red Hat. Néanmoins, vous devrez vous assurer que le port 80 est ouvert dans tout parefeu existant. Les étapes requises pour configurer Apache en tant que serveur d'installation RHEL sont similaires à celles requises pour configurer vsFTP. Dans l'exercice 12, vous suivrez les étapes requises pour configurer Apache en tant que serveur d'installation. Mais d'abord, vous devez vous assurer qu'Apache est installé avec la commande suivante :
# miam installer httpd Si la commande réussit, vous pouvez trouver le fichier de configuration principal d'Apache, httpd.conf, dans le répertoire /etc/httpd/conf/, ainsi que le répertoire de données principal dans / var/www/html. Mais rappelezvous, ne touchez pas à ce fichier de configuration ! Pour vous assurer que l'installation par défaut fonctionne, démarrez d'abord le service Apache avec la commande suivante :
# /etc/init.d/httpd start Ensuite, utilisez un navigateur sur le système sur lequel Apache est installé et accédez à l'adresse IP localhost avec l'URL suivante : http://127.0.0.1/. Un exemple de la reconstruction Scientific Linux de RHEL 6 est illustré à la Figure 118.
Machine Translated by Google
54 Chapitre 1 : Préparation aux certifi cations pratiques Red Hat
FIGURE 118 Preuve d'un défaut de fonctionnement
Serveur Apache
Si le port 80 est ouvert dans un parefeu local existant, cette page doit également être accessible à partir de systèmes distants. De plus, vous devrez vous assurer qu'Apache démarre automatiquement au prochain démarrage de RHEL 6. Une façon de le faire est d'utiliser la commande suivante :
# chkconfig httpd sur Pour plus d'informations sur la manière dont les services tels qu'Apache sont contrôlés pendant le processus de démarrage, reportezvous au Chapitre 11. Bien qu'il s'agisse d'un chapitre RHCE, la commande réelle requise dans cette situation est simple.
Machine Translated by Google
Configurer les services de partage de fichiers par défaut 55
EXERCICE 12 Configurer Apache en tant que serveur d'installation Dans cet exercice, vous allez installer et configurer le serveur Web Apache en tant que serveur de fichiers, adapté aux installations RHEL 6. Vous aurez besoin d'une copie du DVD RHEL 6 ou du fichier téléchargé associé au format ISO. Dans cet exercice, vous suivrez les étapes nécessaires pour créer un répertoire approprié, copier les fichiers d'installation, définir un contexte SELinux approprié, ouvrir le port 80 dans n'importe quel parefeu existant et redémarrer le service Apache. Ce sont des étapes de base; la configuration détaillée d'Apache est abordée dans un autre chapitre.
1. Montez le DVD RHEL 6 dans un répertoire vide. Vous pouvez utiliser l'une des deux commandes suivantes. Alors que le premier monte un véritable DVD physique, le second monte le fichier ISO :
# mount /dev/dvd /media # mount o loop rhelserver6.0x86_64dvd.iso /media 2. Créez un répertoire approprié pour les fichiers d'installation. Comme le répertoire standard pour les fichiers du serveur Web Apache est /var/www/html, il est plus simple d'y créer un sousrépertoire avec la commande suivante :
# mkdir /var/www/html/inst 3. Copiez les fichiers du DVD monté dans le nouveau répertoire :
# cp ar /média/. /var/www/html/inst/ 4. Assurezvous que les fichiers ont le bon contexte SELinux avec le chcon com mand. Le R applique les modifications de manière récursive via les fichiers d'installation copiés. Le commutateur reference=/var/www/html applique le contexte SELinux par défaut à partir de ce répertoire.
# chcon R reference=/var/www/html/ /var/www/html/inst 5. Ouvrez le port 80 associé au serveur Web Apache ; c'est assez facile à faire avec l'utilitaire que vous pouvez démarrer avec la commande systemconfigfirewall. Si c'est trop complexe, exécutez simplement la commande suivante pour désactiver le pare feu sur le système actuel. Vous apprendrez à configurer les parefeu plus en détail dans les chapitres 4 et 10.
#iptables F
Machine Translated by Google
56 Chapitre 1 : Préparation aux certifi cations pratiques Red Hat
6. Assurezvous que le serveur Web Apache est en cours d'exécution avec la commande suivante :
# /etc/init.d/httpd redémarrage Le serveur Web Apache devrait maintenant être prêt à être utilisé en tant que serveur de fichiers, partageant les fichiers d'installation à partir du DVD RHEL 6. Pour confirmer, pointez votre navigateur vers l'adresse IP du serveur et vers le sousrépertoire inst/. Si cette adresse IP est 192.168.0.200, vous accédez à :
http://192.168.0.200/inst En cas de succès, vous verrez une page de fichiers cliquables et téléchargeables comme indiqué ici :
Partager des fichiers copiés via un serveur FTP L'implémentation Red Hat du serveur vsFTP inclut le répertoire /var/ftp/pub pour les fichiers publiés. Pour les besoins des fichiers d'installation, vous pouvez créer le répertoire /var/ftp/pub/inst. Pour rendre le système compatible avec SELinux, vous modifierez ensuite les contextes de sécurité de chacun de ces fichiers avec une seule commande. Lorsque vous démarrez ou redémarrez ensuite le serveur vsFTP, il sera prêt à être utilisé comme serveur d'installation.
Machine Translated by Google
Configurer les services de partage de fichiers par défaut 57
Le processus est documenté dans le laboratoire 2. En supposant une connexion appropriée aux référentiels distants à l'aide de RHN ou à partir d'une distribution de reconstruction, vous pouvez vous assurer que la dernière version du serveur vsFTP est installée avec la commande suivante : # yum installer vsftpd
En cas de succès, vous pouvez trouver le fichier de configuration vsFTP principal, vsftpd.conf, dans le /etc/vsftpd, ainsi que le répertoire de données principal dans /var/ftp/pub. Ne touchez pas à ce fichier de configuration, car les exigences pointent vers un serveur de configuration par défaut. Assurezvous simplement de démarrer le service vsFTP avec la commande suivante : # /etc/init.d/vsftpd start
Comme les navigateurs Web peuvent accéder aux serveurs FTP, vous pouvez confirmer la configuration par défaut du serveur FTP sur le système local en accédant à ftp://127.0.0.1/. Le résultat par défaut dans le navigateur Web Firefox est illustré à la Figure 119. Le répertoire pub/ affiché est en fait le répertoire /var/ftp/pub. Notez la sécurité associée au serveur vsFTP. Cliquez sur Jusqu'au niveau supérieur Lien hypertexte vers l'annuaire. Le répertoire courant ne change pas. Les utilisateurs qui se connectent à ce serveur FTP ne peuvent pas voir, et encore moins télécharger, les fichiers de tout ce qui se trouve audessus du
FIGURE 119 Accès au FTP par défaut
serveur
Machine Translated by Google
58 Chapitre 1 : Préparation aux certifi cations pratiques Red Hat
répertoire /var/ftp. Il s'agit d'un concept de sécurité connu sous le nom de prison chroot. Il est souvent utilisé sur d'autres systèmes tels que le serveur DNS (Domain Name Service) pour augmenter la sécurité sur le système hôte. Si le port 21 est ouvert dans le parefeu local, ce serveur FTP doit également être accessible à partir de systèmes distants. De plus, vous devrez vous assurer que le serveur vsFTP démarre automatiquement au prochain démarrage de RHEL 6. Une façon de le faire est d'utiliser la commande suivante :
# chkconfig vsftpd sur Le à la fin de vsFTP fait référence à son démon. Pour plus d'informations sur la façon dont les services comme vsFTP sont contrôlés pendant le processus de démarrage, voir le Chapitre 11. Bien qu'il s'agisse d'un chapitre RHCE, il ne devrait pas être difficile de se souvenir de cette commande chkconfig.
RÉSUMÉ DES CERTIFICATIONS Les examens RHCSA et RHCE ne sont pas destinés aux débutants. Ce chapitre vous aide à installer un système RHEL de base, avec les packages et les paramètres adaptés au reste de ce livre. Les deux examens sont des examens pratiques et pratiques. Lorsque vous passerez l'un ou l'autre des examens, vous serez confronté à un système RHEL en direct avec une série de problèmes à résoudre et des systèmes à configurer. Le RHCSA couvre les compétences de base en administration système. Les examens Red Hat supposent désormais l'utilisation d'un système 64 bits. Red Hat configure le système de machine virtuelle par défaut, KVM, uniquement dans la version 64 bits de RHEL 6. Et vous devez configurer RHEL 6 en tant qu'hôte virtuel pour la RHCSA. Avec un abonnement au RHN, vous pouvez télécharger les fichiers ISO d'installation de RHEL du compte associé. Étant donné que le logiciel RHEL est publié sous des licences open source, des tiers tels que CentOS et Scientific Linux ont utilisé ce code source sans les marques Red Hat. Vous pouvez également utiliser ces distributions de reconstruction pour préparer les examens RHCSA et RHCE. Il sera utile de créer plusieurs installations de RHEL 6 pour mettre en pratique les compétences que vous apprendrez dans les chapitres suivants. À cette fin, je recommande la configuration de trois systèmes. Alors que de nombreux utilisateurs n'ont pas trois ordinateurs physiques de rechange à consacrer à leurs études, les VM permettent de configurer ces systèmes sur un seul ordinateur physique ordinateur. Comme l'installation de RHEL 6 est relativement facile même pour les nouveaux utilisateurs de Linux, tous les détails ne sont pas couverts dans ce chapitre. Cependant, il est basé sur la source d'installation réseau créée dans le laboratoire 2. Après l'installation vient le processus de premier démarrage, qui varie selon que vous avez installé ou non une interface graphique.
Machine Translated by Google
Exercice de deux minutes 59
EXERCICE DE DEUX MINUTES Voici quelquesuns des points clés des objectifs de certification du chapitre 1.
Les examens RHCSA et RHCE Le RHCSA est un examen distinct et une condition préalable au RHCE. Les examens Red Hat sont tous « pratiques » ; il n'y a pas de questions à choix multiples. Si vous étudiez pour la RHCSA, concentrezvous sur les chapitres 1 à 9. Si vous étudiez
Pour la RHCE, alors que vous êtes responsable des informations contenues dans l'ensemble du manuel, concentrezvous sur les chapitres 1 et 10–17.
Configuration matérielle de base Bien que RHEL 6 puisse être installé sur une variété d'architectures, vous aurez besoin
matériel capable de gérer la version 64 bits avec virtualisation assistée par matériel pour les examens Red Hat. Red Hat prend en charge les installations RHEL 6 sur des systèmes avec au moins 512 Mo de
RAM. Moins est possible, en particulier sur les systèmes sans interface graphique. Plus est nécessaire pour une installation GUI dans KVM. RHEL 6 peut être installé sur des disques durs locaux ou sur une variété de disques durs réseau.
Obtenir Red Hat Enterprise Linux Les examens Red Hat utilisent Red Hat Enterprise Linux. Des abonnements et des copies de test de RHEL 6 sont disponibles. Étant donné que Red Hat publie le code source de RHEL 6, les tiers sont libres de « reconstruire » la distribution à partir du code source de Red Hat (à l'exception des marques déposées).
Les reconstructions tierces de RHEL 6 sont fonctionnellement identiques, à l'exception de l'accès
au réseau Red Hat. Des reconstructions tierces réputées sont disponibles auprès de CentOS et Scientific
Linux.
Machine Translated by Google
60 Chapitre 1 : Préparation aux certifi cations pratiques Red Hat
Exigences d'installation Red Hat a déclaré que les examens sont présentés sur des « systèmes préinstallés » avec des questions présentées « par voie électronique ». La RHCSA nécessite la configuration d'une machine physique en tant que héberger.
La solution de machine virtuelle RHEL 6 native est KVM. Il est utile de configurer plusieurs machines virtuelles pour simuler les communications réseau.
Possibilités d'installation Vous pouvez démarrer le processus d'installation à partir de divers supports de démarrage. RHEL 6 peut être installé à partir d'un DVD, d'un lecteur local, d'un répertoire NFS, d'un serveur Web Apache ou d'un serveur FTP. RHEL 6 doit être configuré sur des volumes distincts pour au moins le répertoire racine de niveau supérieur (/), le répertoire /boot et l'espace d'échange Linux. RHEL 6 inclut des groupes de packages d'installation dans un certain nombre de catégories.
Options de configuration du système La première étape postinstallation est le processus de premier démarrage. Les parefeu basés sur SELinux et iptables sont activés par défaut.
Configurer les services de partage de fichiers par défaut L'examen RHCSA comprend des exigences pour déployer des serveurs HTTP et FTP dans leurs configurations par défaut. Les services par défaut associés aux protocoles HTTP/FTP sont le serveur Web Apache et le serveur vsFTP. Une manière de déployer un serveur HTTP ou FTP par défaut consiste à le configurer avec fichiers d'installation à partir du DVD RHEL.
Machine Translated by Google
Autotest 61
AUTOTEST Les questions suivantes vous aideront à mesurer votre compréhension du matériel présenté dans ce chapitre. Comme il n'y a pas de questions à choix multiples dans les examens Red Hat, il n'y a pas de questions à choix multiples dans ce livre. Ces questions testent exclusivement votre compréhension du chapitre. Bien que les rubriques de ce chapitre soient des « prérequis », il n'y a pas de problème si vous avez une autre façon d'effectuer une tâche. Obtenir des résultats, et non mémoriser des anecdotes, est ce qui compte pour les examens Red Hat.
Les examens RHCSA et RHCE 1. Combien de questions à choix multiples l'examen RHCE comportetil ? Et sur le Examen RHCSA ? _____________________________________________________
Configuration matérielle de base 2. En supposant un matériel PC basé sur Intel, quelle est la technologie de virtualisation par défaut pour RHEL 6 ? _____________________________________________________ 3. Combien de bits sont requis d'un CPU qui peut être utilisé pour configurer KVM sur RHEL 6 ? _____________________________________________________ Obtenez Red Hat Enterprise Linux 4. Nommez une distribution tierce basée sur le code source RHEL 6. _____________________________________________________
Exigences d'installation 5. Combien de temps est alloué à l'installation lors des examens RHCSA et RHCE ? _____________________________________________________
Possibilités d'installation 6. Nommez deux options différentes pour le support d'installation qui démarrera l'installation de RHEL 6 programme.
_____________________________________________________ _____________________________________________________
Machine Translated by Google
62 Chapitre 1 : Préparation aux certifi cations pratiques Red Hat
7. Nommez trois types de volumes qui peuvent être configurés et formatés pendant le RHEL 6 processus d'installation pour stocker des données.
_____________________________________________________ _____________________________________________________ _____________________________________________________ 8. Supposons que vous avez monté le DVD RHEL 6 dans le répertoire /media. Il y a un fichier XML dessus DVD avec une base de données de packages et de groupes de packages. Dans quel répertoire pouvezvous trouver ce fichier XML ? _____________________________________________________
Options de configuration du système 9. Quelle commande lance le même menu que le processus de premier démarrage en mode texte ? _____________________________________________________ 10. Quel service est autorisé via le parefeu par défaut ? _____________________________________________________
Configurer les services de partage de fichiers par défaut 11. Quel est le répertoire standard pour le partage de fichiers pour l'implémentation RHEL 6 du vsFTP serveur? _____________________________________________________ 12. Quel est le répertoire standard des fichiers HTML sur le serveur Web Apache ? _____________________________________________________
QUESTIONS DE LABORATOIRE Le premier laboratoire est assez élémentaire, conçu pour vous faire réfléchir en termes de réseaux et de mise en réseau. Le deuxième laboratoire devrait vous aider à configurer un serveur d'installation. Le troisième laboratoire suggère que vous examiniez les exigences associées au Linux Professional Institute, pour une perspective différente sur l'administration système.
Machine Translated by Google
Questions de laboratoire 63
Laboratoire 1
Dans cet atelier, vous allez planifier les systèmes requis pour un réseau Red Hat. Vous avez trois ordinateurs configurés avec RHEL 6. Deux de ces ordinateurs doivent être configurés sur un domaine, example.com. Ces ordinateurs auront les noms d'hôte server1 et tester1. Le troisième ordinateur doit être configuré sur un deuxième domaine, example.org, avec un nom d'hôte outsider1. L'un des ordinateurs du domaine example.com, server1, peut être configuré avec deux cartes réseau. Alternativement, si ces systèmes sont configurés en tant qu'invités sur un hôte virtuel KVM, le transfert IP permettra à ces systèmes de communiquer, même s'ils sont configurés sur des réseaux différents. L'accent sera mis sur l'adressage IPv4. ■ Les systèmes du domaine example.com seront configurés sur le réseau 192.168.122.0/24. ■ Les systèmes du domaine example.org seront configurés sur le réseau 192.168.100.0/24.
Idéalement, vous devez configurer le système server1.example.com en tant que poste de travail et serveur. Les instructions de base décrites dans ce chapitre devraient suffire, car il vous appartiendra d'installer et de configurer les services requis une fois l'installation terminée. Ce sera le système principal que vous utiliserez pour la pratique. Vous installerez RHEL 6 sur ce système au chapitre 2 et vous le clonerez pour différents chapitres ainsi que pour les exemples d'examens à la fin de ce livre. Le système tester1.example.com sera un système qui autorise l'accès à distance uniquement à partir du service SSH. Dans certains cas, des services de serveur qui ne sont pas nécessairement requis pour la certification peuvent être configurés sur le réseau outsider1.example.org. Cela vous permettra de tester les clients requis pour la certification.
Laboratoire 2
Cet atelier suppose que vous avez téléchargé l'ISO sur DVD pour RHEL 6 ou une reconstruction telle que CentOS ou Scientific Linux. L'ISO basée sur DVD est importante, car elle servira à deux fins. Ce sera le référentiel d'installation utilisé plus tôt dans ce chapitre ainsi que le référentiel de packages à configurer au chapitre 7. Ce laboratoire inclut simplement les commandes nécessaires pour configurer les fichiers notés sur le serveur vsFTP. Alors que les examens Red Hat sont donnés sur un système préinstallé, les exigences associées suggèrent que vous devez savoir comment installer des systèmes sur un réseau et configurer les installations Kickstart. Et comme vous n'avez pas accès à Internet pendant l'examen, vous n'aurez pas accès au Red Hat Network ni à aucun autre référentiel Internet. 1. Créez un répertoire pour vos fichiers d'installation. Avec la commande suivante, créez le répertoire /var/ftp/pub/ inst. (Si vous obtenez un message d'erreur, il se peut que vsFTP ne soit pas correctement installé.)
# mkdir /var/ftp/pub/inst
Machine Translated by Google
64 Chapitre 1 : Préparation aux certifi cations pratiques Red Hat
2. Insérez le DVD d'installation de RHEL 6 dans son lecteur. S'il n'est pas monté automatiquement, faitesle avec une commande telle que mount /dev/cdrom /media. (Si vous n'avez que les fichiers ISO, par exemple dans le sousrépertoire Downloads/, remplacez mount ro loop Downloads/rhel*.iso /media.) 3. Copiez les fichiers requis à partir du DVD d'installation de RHEL 6. Utilisez cp ar /source/. /var/ftp/ pub/inst, où est le répertoire de montage (tel que /media/). cachés, y compris N'oubliez le fichier .discinfo. pas le point (.); il s'assure de copier les fichiers
4. Assurezvous que rien ne bloque l'accès à votre serveur vsFTP. Utilisez un outil tel que l'outil de configuration du parefeu pour ouvrir le port 21 sur le système local. Pour plus d'informations sur les pare feu et SELinux, consultez le chapitre 4. 5. Si SELinux est activé sur le système local, exécutez la commande suivante pour appliquer contextes SELinux aux fichiers du nouveau répertoire : # chcon R t public_content_t /var/ftp/
6. Activez maintenant le serveur FTP avec la commande suivante : # redémarrage du service vsftpd
7. Testez le résultat. Sur un système distant, vous devriez pouvoir utiliser la commande lftp pour vous connecter au serveur FTP local, en utilisant son adresse IP. Une fois connecté, vous pourrez trouver les fichiers d'installation dans le sousrépertoire pub/inst/. Laboratoire 3
Les examens Red Hat sont un défi avancé. Dans cet atelier, vous allez examiner les prérequis de l'examen Red Hat d'un point de vue légèrement différent. Si vous n'êtes pas certain d'être prêt pour cet examen, le Linux Professional Institute propose des examens de niveau 1 qui testent les compétences de base plus en détail. De plus, ils couvrent un certain nombre de commandes connexes qui, je pense, sont des prérequis implicites pour les certifications Red Hat. À cette fin, examinez les objectifs détaillés associés aux examens notés 101 et 102. Des liens vers ces objectifs sont disponibles sur www.lpi.org. Si vous êtes à l'aise avec la plupart des fichiers, termes et utilitaires répertoriés dans les objectifs de ces examens, vous êtes prêt à commencer vos études pour le Red Hat examens.
Machine Translated by Google
Réponses à l'autotest 65
RÉPONSES À L'AUTOTEST Les examens RHCSA et RHCE 1. Il n'y a pas de questions à choix multiples dans les examens Red Hat. Cela fait près d'une décennie que Red Hat n'avait pas de composant à choix multiples. Les examens Red Hat sont des expériences entièrement « pratiques ».
Configuration matérielle de base 2. La technologie de virtualisation par défaut pour RHEL 6 est KVM. Bien qu'il existe de nombreuses excellentes technologies de virtualisation disponibles, KVM est l'option par défaut prise en charge par Red Hat sur RHEL 6.
3. 64. Pour configurer KVM sur RHEL 6, vous avez besoin d'un système avec un ou plusieurs processeurs 64 bits.
Obtenir Red Hat Enterprise Linux 4. Il existe plusieurs distributions différentes basées sur le code source RHEL 6. Deux options sont CentOS et Scientific Linux. Il peut y avoir d'autres bonnes réponses.
Exigences d'installation 5. Il n'y a pas de réponse correcte à cette question. Alors que les examens Red Hat sont désormais présentés sur systèmes préinstallés, il est possible que vous deviez installer RHEL 6 sur une machine virtuelle au sein d'une installation RHEL 6 existante.
Possibilités d'installation 6. Les options de support de démarrage d'installation pour RHEL 6 incluent un CD, un DVD et une clé USB. Rouge Hat ne crée plus de support de démarrage au format disquette. 7. Vous pouvez configurer et formater des partitions régulières, des matrices RAID et des volumes logiques pendant la processus d'installation pour stocker des données.
8. Vous pouvez trouver le fichier XML spécifié dans les conditions indiquées dans /media/repodata annuaire.
Machine Translated by Google
66 Chapitre 1 : Préparation aux certifi cations pratiques Red Hat
Options de configuration du système 9. La commande est setup, qui nécessite des privilèges d'administration root. 10. Le parefeu RHEL 6 par défaut permet l'accès au service Secure Shell, SSH en abrégé.
Configurer les services de partage de fichiers par défaut 11. Le répertoire standard pour le partage de fichiers pour l'implémentation RHEL 6 du serveur vsFTP est / var/ftp/pub. 12. Le répertoire standard des fichiers HTML pour l'implémentation RHEL 6 du serveur Web Apache est /var/www/html.
RÉPONSES DE LABORATOIRE Laboratoire 1
Lors de la configuration d'un réseau connecté à Internet, vous souhaiterez autoriser l'accès à certains systèmes et le refuser à d'autres. À cette fin, cet atelier fournit un cadre pour les systèmes que vous souhaiterez configurer pour étudier en vue des examens RHCSA/ RHCE. Comme le RHCSA est à bien des égards un exercice de configuration d'un poste de travail, il peut sembler moins important tant de mettre en place un réseau pour étudier pour cet examen. Cependant, cet examen comporte des éléments de serveur, tels que la configuration des serveurs de fichiers FTP et HTTP, de sorte que les réseaux ne peuvent pas être négligés pour le RH CSA.
Avec le développement des VM, le coût du matériel devrait être moins handicapant même pour les particuliers qui préparent les examens Red Hat. Cependant, la RHCSA nécessite la configuration des machines virtuelles. Et la solution Red Hat par défaut, KVM, ne peut être configurée que pour RHEL 6 sur des systèmes 64 bits. Alors que les adresses IPv4 dynamiques sont utilisées pour la plupart des postes de travail, les adresses IPv4 statiques sont plus appropriées dans de nombreux cas, comme pour les serveurs DNS et de messagerie. Les clients sont plus faciles à configurer lorsque l'adresse IP de ces serveurs est connue. Il convient donc de configurer des adresses IPv4 statiques pour de tels
systèmes. Trois systèmes est un minimum suggéré, car les règles associées aux parefeux ne sont généralement pas appliquées à un système local. Le deuxième système est un client distant qui doit avoir accès aux services du serveur local. Le troisième système est un client distant qui ne devrait pas avoir un tel accès. Bien sûr, les réseaux « réels » sont beaucoup plus complexes. Et vous êtes invités à mettre en place un réseau avec plus de systèmes. Dans le chapitre 2, lorsque vous installez des systèmes RHEL 6 sur des machines virtuelles basées sur KVM, vous souhaiterez cloner ce système pour prendre en charge la configuration à partir d'une ligne de base. Et en fait, c'est ce qui se passe dans de nombreux
Machine Translated by Google
Autotest 67
entreprises. Les machines virtuelles permettent de dédier un ou plusieurs systèmes RHEL 6 à un service spécifique, tel que le serveur Web Apache.
Laboratoire 2
Pendant les examens Red Hat, vous n'aurez pas accès à Internet. Cependant, de nombreuses installations et mises à jour nécessitent un accès à Internet pour accéder aux fichiers associés à l'installation et aux mises à jour. Lorsque vous configurez les fichiers à partir du DVD d'installation de RHEL 6 sur un système distant, vous configurez un substitut efficace pour l'installation de packages supplémentaires. De plus, ces fichiers prennent en charge l'installation réseau, qui est toujours une exigence RHCSA. Les étapes décrites sont associées à la configuration du serveur vsFTP, protégé par SELi nux. C'est vrai, ce sont des compétences RHCE. Cependant, comme le suggèrent les étapes de cet atelier, la configuration du serveur vsFTP est assez simple. Bien que l'utilisation de SELinux puisse sembler intimidante pour le candidat RHCSA, c'est une exigence. Les commandes décrites dans ce laboratoire montrent comment vous pouvez vivre avec SELi nux sur un serveur vsFTP. Le chapitre 4 expliquera comment vous pouvez faire en sorte que Live with SELinux fonctionne pour vous dans un certain nombre d'autres situations.
Laboratoire 3
Ce laboratoire peut sembler étrange, car il fait référence aux exigences d'une autre certification Linux. Cependant, de nombreux administrateurs Linux prennent au sérieux les examens du Linux Professional Institute (LPI). LPI crée d'excellentes certifications. De nombreux administrateurs Linux étudient et réussissent les examens LPIC de niveau 1. Réussir les examens LPIC 101 et 102 fournit une excellente base pour les RHCSA et RHCE examens.
Si vous ressentez le besoin d'approfondir vos connaissances sur Linux, reportezvous à certains des livres décrits dans le début de ce chapitre. Les examens Red Hat sont un défi avancé. Certaines des exigences pour les examens RHCSA et RHCE peuvent sembler intimidantes. Ce n'est pas grave si certains d'entre eux semblent audelà de vos capacités pour le moment, car c'est le but de ce livre. Cependant, si vous n'êtes pas à l'aise avec les outils de ligne de commande de base tels que ls, cd et cp, vous devrez peutêtre d'abord vous familiariser davantage avec Linux. Mais de nombreux candidats réussissent à combler les lacunes de leurs connaissances grâce à un peu d'autoapprentissage et de pratique.
Machine Translated by Google
2 Machines virtuelles et installations automatisées OBJECTIFS DE LA CERTIFICATION 2.01
Configurer KVM pour Red Hat
2.02
Configurer une machine virtuelle sur KVM
2.03
Options d'installation automatisée
2.04
Administration avec Secure Shell
2.05
Envisagez d'ajouter ces lignes de commande Outils
Exercice de deux minutes Autotest Q&R
Machine Translated by Google
2 Chapitre 2 : Machines virtuelles et installations automatisées
Même si l'installation est spécifiée comme une exigence dans les objectifs RHCSA, Red Hat a également déclaré que leurs examens sont désormais dispensés sur des systèmes préinstallés. En d'autres termes, vous
n'aurez pas à installer RHEL 6 sur un système nu pendant les examens. Cependant, la gestion des machines virtuelles (VM) et les installations Kickstart nécessitent également des compétences RHCSA. En d'autres termes, vous devez être prêt à installer RHEL 6 sur une machine virtuelle via un réseau, manuellement et avec l'aide de Kickstart.
Le chapitre 1 couvre les bases du processus d'installation. Il supposait que vous pouviez configurez également la virtualisation pendant le processus d'installation. Mais il est possible que vous deviez installer et configurer KVM une fois l'installation terminée. Bien sûr, cela suppose que vous travaillez sur un système avec un processeur physique 64 bits. Kickstart est le système Red Hat pour les installations automatisées. Il fonctionne à partir d'un fichier texte qui fournit des réponses au programme d'installation de RHEL 6. Avec ces réponses, le programme d'installation de RHEL 6 peut fonctionner automatiquement, sans autre intervention.
Une fois l'installation terminée sur les systèmes utilisés pour le test, l'étude et le service, vous souhaiterez pouvoir les administrer à distance. Non seulement la compréhension des connexions SSH est une exigence RHCSA, mais c'est aussi une excellente pratique dans le monde réel. Les références aux options de menu dans ce livre sont basées sur l'environnement de bureau GNOME. Si vous utilisez un environnement de bureau différent, comme KDE, les étapes sont quelque peu différentes.
OBJECTIF DE CERTIFICATION 2.01
Configurer KVM pour Red Hat Au chapitre 1, vous avez configuré un système physique RHEL 6 64 bits avec les packages requis pour configurer les machines virtuelles. Si tout le reste échoue, cette configuration peut vous aider à configurer plusieurs installations de RHEL 6. Mais si vous êtes confronté à une installation RHEL sans les packages nécessaires, que faitesvous ?
Avec les bons packages, vous pouvez configurer des modules KVM, accéder aux commandes de configuration de VM et configurer une configuration détaillée pour un groupe de VM. Certaines des commandes décrites dans cette section sont en quelque sorte des aperçus des prochains chapitres. Par exemple, les outils associés aux mises à jour sont traités au chapitre 7. Mais d'abord, il est important de discuter des raisons pour lesquelles quelqu'un voudrait utiliser une machine virtuelle, alors que le matériel physique est tellement plus tangible.
Machine Translated by Google
Configurer KVM pour Red Hat 3
À L'INTÉRIEUR DE L'EXAMEN À L'INTÉRIEUR DE L'EXAMEN
Gérer les machines virtuelles
■ Installer automatiquement Red Hat Enterprise Linux à l'aide de Kickstart À cette fin, chaque
Les objectifs de la RHCSA suggèrent que vous devez savoir comment
installation RHEL inclut un exemple de fichier Kickstart,
■ Accéder à la console d'une machine virtuelle
basé sur l'installation donnée. Dans ce chapitre, vous
■ Démarrer et arrêter des machines virtuelles
apprendrez à utiliser ce fichier pour automatiser le processus d'installation. C'est un peu plus délicat qu'il n'y
■ Configurer des systèmes pour lancer des
paraît, car l'exemple de fichier Kickstart doit d'abord être
machines au démarrage
■ Installer les systèmes Red Hat Enterprise Linux en tant qu'invités virtuels Il est raisonnable de supposer que les VM en question sont basées
modifié, audelà des paramètres uniques pour différents systèmes. Mais une fois configuré, vous pourrez configurer autant d'installations de RHEL que nécessaire à l'aide de ce fichier Kickstart de base.
sur la solution de VM par défaut de Red Hat, KVM. Alors qu'au chapitre 1, vous avez installé cette solution pendant le processus d'installation sur un système 64 bits, vous devrez peutêtre également installer les packages associés sur un système en direct pendant un examen. De plus, il existe une console graphique Virtual Machine Manager utilisée par Red Hat pour gérer ces machines virtuelles. Bien sûr, ce Virtual Machine Manager est un frontal pour les outils de ligne de commande qui peuvent également être utilisés pour installer un système.
Accéder aux systèmes distants Les objectifs de la RHCSA stipulent que vous devez savoir comment
■ Accéder aux systèmes distants à l'aide de SSH et VNC Si les administrateurs système devaient être en contact physique avec chaque système qu'ils doivent administrer, la
Ces outils peuvent également être utilisés pour configurer
moitié de leur vie serait passée d'un système à l'autre. Avec
ce système pour qu'il démarre automatiquement pendant
des outils tels que Secure Shell (SSH) et Virtual Network
le processus de démarrage. Alors que le blog de l'examen Red Hat indiqué au
Computing (VNC), les administrateurs ont la possibilité de faire leur travail à distance.
chapitre 1 suggère que vous passerez un examen sur un système « préinstallé », cela n'empêche pas les installations
Alors que ce chapitre se concentre sur les utilisations de
sur des machines virtuelles. Ainsi, dans ce chapitre, vous
SSH, le chapitre 9 se concentre sur la configuration de
apprendrez à configurer une installation de RHEL 6 sur KVM.
VNC. Alors que SSH est automatiquement installé dans une configuration standard dans RHEL 6, les options de configuration personnalisées telles que les phrases de passe
Installations de démarrage Les objectifs de la RHCSA stipulent que vous devez savoir comment
sont du ressort de l'examen RHCE.
Machine Translated by Google
4 Chapitre 2 : Machines virtuelles et installations automatisées
Je devrais probablement vous avertir que les systèmes de production ne doivent pas être utilisés pour les hôtes virtuels basés sur KVM. Cependant, j'écris ce livre sur un tel système RHEL 6.
Pourquoi les machines virtuelles Il semble que tout le monde veuille entrer dans le jeu VM. Et ils devraient. Les entreprises avaient autrefois dédié différents systèmes physiques pour chaque service. En fait, pour assurer la fiabilité, ils peuvent avoir dédié deux ou plusieurs systèmes pour chacun de ces services. Bien sûr, il est possible de configurer plusieurs services sur un seul système. En fait, c'est ce que vous allez faire lors des examens Red Hat. Mais dans les entreprises soucieuses de la sécurité, les systèmes sont souvent dédiés à des services individuels, afin de réduire le risque si un système ou un service est compromis. Avec des systèmes correctement configurés, chaque service peut être configuré sur sa propre machine virtuelle dédiée. Vous pouvez trouver dix machines virtuelles toutes installées sur un seul système hôte physique. Comme différents services utilisent généralement des cycles de RAM et de CPU à des moments différents, il est souvent raisonnable de « surréserver » la RAM et le CPU sur le système physique local. Par exemple, sur un système avec 8 Go de RAM, il est souvent raisonnable d'allouer 1 Go chacune à dix machines virtuelles configurées sur ce système. En pratique, un administrateur peut remplacer dix machines physiques sur un ancien réseau par deux systèmes physiques. Chacune des dix machines virtuelles serait installée deux fois, une fois sur chaque système physique. Bien sûr, ces deux systèmes physiques nécessitent un matériel puissant. Sinon, les économies sont immenses, non seulement en termes de coûts matériels globaux, mais également en termes d'installations, de consommation d'énergie, etc.
Si vous devez installer KVM Si vous devez installer n'importe quel type de logiciel sur RHEL 6, l'outil Ajout/Suppression de logiciel peut être d'une grande aide. Connectezvous à l'interface graphique en tant qu'utilisateur normal. Pour l'ouvrir à partir de l'interface graphique, cliquez sur Système | Administratif | Ajouter/supprimer des logiciels. Tant qu'il existe une connexion appropriée aux référentiels tels que le RHN ou ceux associés à des tiers, la recherche prendra quelques instants. Dans le volet de gauche, cliquez sur la flèche en regard de Virtualisation. Les quatre groupes de packages de virtualisation doivent apparaître. Cliquez sur le groupe de packages de virtualisation et sur le premier package de ce groupe pour afficher un écran similaire à celui illustré à la figure 21. La liste est peutêtre un peu trop complète ; dans la Figure 21, vous remarquerez peutêtre deux versions différentes du paquet qemukvm. Généralement, seule la dernière version du
Machine Translated by Google
Configurer KVM pour Red Hat 5
FIGURE 21
Ajouter/supprimer un outil logiciel
forfait est requis. Pour installer les packages KVM, il vous suffit de sélectionner les packages appropriés dans les groupes de packages Virtualization, Virtualization Client et Virtualization Platform. Si vous ne vous souvenez pas de la liste affichée dans le Tableau 21, installez simplement la dernière version de tous les packages de virtualisation.
TABLEAU 21
Paquets Associé à Virtualisation
Emballer
Description
qemukvm
Le package KVM principal
pythonvirtinst
Outils de ligne de commande et bibliothèques pour créer des machines virtuelles
virtmanager
Outil d'administration de machine virtuelle graphique
virttop
Commande pour les statistiques de VM
visionneuse virtuelle
Connexion de l'interface graphique aux machines virtuelles configurées
libvirt
Boîte à outils du langage C avec le service libvirtd
libvirtclient
Boîte à outils en langage C pour les clients VM
Machine Translated by Google
6 Chapitre 2 : Machines virtuelles et installations automatisées
C'est juste sept paquets ! Bien sûr, dans la plupart des configurations, ils extraient d'autres packages en tant que dépendances. Mais c'est tout ce dont vous avez vraiment besoin pour configurer des machines virtuelles sur un système physique RHEL 6 avec un processeur 64 bits. Bien qu'aucun de ces packages ne se trouve dans le groupe Outils de virtualisation, ces packages peuvent être utiles dans la vie réelle. Il comprend des outils qui peuvent aider à lire et à gérer les images de disque de VM. Si vous choisissez de convertir des images de Xen ou de certains formats de VMware, le package virtv2v est ce dont vous avez besoin. L'installation avec l'outil Ajout/Suppression de logiciels est assez simple. Sélectionnez simplement (ou désélectionnez) les packages souhaités et cliquez sur Appliquer. S'il existe des packages dépendants qui nécessitent également une installation, vous serez invité à fournir la liste complète de ces packages. Bien sûr, depuis l'interface de ligne de commande, vous pouvez installer ces packages avec la commande yum install packagename .
Les bons modules KVM Dans la plupart des cas, l'installation des bons packages est suffisante. Les modules appropriés doivent être chargés automatiquement. Avant que KVM puisse fonctionner, les modules associés doivent être chargés. Exécutez la commande suivante : # lsmod | grep kvm
Si les modules KVM sont correctement chargés, vous verrez l'un des deux ensembles de modules suivants : kvm_intel kvm
45578 4 291875 1 kvm_intel
ou
kvm_amd kvm
35678 4 261575 1 kvm_amd
Comme le suggèrent les noms des modules, la sortie dépend du fabricant du processeur. Si vous n'obtenez pas cette sortie, assurezvous d'abord que le matériel est adapté. Et comme suggéré au chapitre 1, assurezvous que l'indicateur svm ou vmx est répertorié dans le contenu du fichier /proc/cpuinfo. Sinon, une configuration supplémentaire peut être requise dans le menu BIOS ou UEFI du système. Certains menus incluent des options spécifiques pour la virtualisation matérielle, qui doivent être activées. Si l'un des indicateurs notés existe dans le fichier /proc/cpuinfo, l'étape suivante consiste à essayer de charger les modules applicables. La méthode la plus simple est avec le modprobe
Machine Translated by Google
Configurer KVM pour Red Hat 7
commande. La commande suivante doit également charger le module dépendant, qu'il s'agisse de kvm_intel ou de kvm_amd : # modprobe kvm
Configurer le Virtual Machine Manager Le gestionnaire de machines virtuelles fait partie du package virtmanager. Et vous pouvez le démarrer dans une interface graphique avec la commande du même nom. Sinon, dans le bureau GNOME, cliquez sur Applications | Outils système | Gestionnaire de machines virtuelles. Il ouvre la fenêtre Virtual Machine Manager illustrée à la Figure 22. Dans certains cas, deux hyperviseurs, également appelés moniteurs de machine virtuelle, sont affichés sur le système localhost. Ces hyperviseurs fonctionnent avec QEMU en tant qu'émulateurs de processeur au sein des machines virtuelles. QEMU est également connu sous son ancien acronyme, l'émulateur rapide. Si un émulateur de mode utilisateur apparaît, il convient si vous souhaitez exécuter des applications 32 bits sur un système 64 bits. Mais c'est inefficace. Dans la plupart des cas, vous souhaiterez créer et gérer des machines virtuelles en mode normal localhost (QEMU). Depuis la version RHEL 6, l'émulateur de mode utilisateur QEMU est sujet au bogue 634876 sur https://bugzilla.redhat.com. Le problème a été résolu par une mise à jour du package virtmanager.
FIGURE 22
Machine virtuelle Directeur
Machine Translated by Google
8 Chapitre 2 : Machines virtuelles et installations automatisées
Connexions aux hyperviseurs Si vous le souhaitez, les machines virtuelles basées sur KVM peuvent être configurées et administrées à distance. Il vous suffit de vous connecter à l'hyperviseur distant. Pour ce faire, cliquez sur Fichier | Ajouter une connexion. Il ouvre une fenêtre Ajouter une connexion qui vous permet de sélectionner :
■ Un hyperviseur, normalement KVM ou Xen. (Xen était l'hyperviseur par défaut sur RHEL 5.)
■ Une connexion, qui peut être locale ou distante à l'aide d'une connexion telle que SSH. Les connexions à distance peuvent être données avec le nom d'hôte ou l'adresse IP du serveur distant. système.
Configuration par hyperviseur Chaque hyperviseur peut être configuré en détail. Cliquez avec le bouton droit sur l'hyperviseur localhost (QEMU) et sélectionnez Détails dans le menu contextuel qui s'affiche. Il ouvre une fenêtre de détails nommée d'après l'hôte du système local, comme illustré à la Figure 23. Comme indiqué, l'onglet Présentation répertorie les bases de la configuration de la machine virtuelle, comme indiqué dans le Tableau 22.
FIGURE 23 Détails de l'hôte VM.
Machine Translated by Google
Configurer KVM pour Red Hat 9
TABLEAU 22
Paramètre
Détails de l'hôte de la machine virtuelle
Description
Connexion
Universal Resource Identifier (URI) pour l'hyperviseur
Nom d'hôte
Nom d'hôte de l'hôte VM
Hyperviseur
QEMU est utilisé par KVM
Mémoire
RAM disponible du système physique pour les machines virtuelles
Processeurs logiques Cœurs de processeur disponibles ; "4" indique quatre processeurs ou un système quadcore Architecture Architecture du processeur Connexion automatique
Se connecter automatiquement à l'hyperviseur pendant le processus de démarrage
Pour la section suivante, restez dans la fenêtre des détails de l'hôte pour l'hyperviseur actuel.
Réseaux virtuels sur un hyperviseur Vous allez maintenant examiner les réseaux configurés pour les machines virtuelles dans le gestionnaire de machines virtuelles. Dans la fenêtre des détails de l'hôte de l'hyperviseur actuel, cliquez sur l'onglet Réseaux virtuels. Le réseau virtuel par défaut illustré à la Figure 24 illustre le réseau standard pour les machines virtuelles créées avec cet hyperviseur.
FIGURE 24
Détails de l'hôte VM.
Machine Translated by Google
10 Chapitre 2 : Machines virtuelles et installations automatisées
Vous remarquerez que le réseau donné est configuré pour démarrer automatiquement lorsque la machine virtuelle est démarrée. Ainsi, si une carte réseau virtuelle appropriée est configurée sur la machine virtuelle, ainsi qu'une commande client associée au protocole DHCP (Dynamic Host Configuration Protocol), une adresse IP de la plage indiquée lui est automatiquement attribuée. Comme indiqué dans la figure, les adresses attribuées sont configurées pour transférer les informations à l'aide de la traduction d'adresses réseau (NAT). Avec les boutons en bas à gauche de l'écran, vous pouvez ajouter un nouveau réseau, démarrer et arrêter un réseau virtuel existant, puis supprimer ce réseau. Dans l'exercice 21, vous allez créer un deuxième réseau virtuel. Pour la section suivante, restez dans la fenêtre des détails de l'hôte pour l'hyperviseur actuel.
EXERCICE 21 Créer un deuxième réseau virtuel Dans cet exercice, vous allez créer un deuxième réseau virtuel sur l'hyperviseur KVM standard dans le gestionnaire de machines virtuelles GUI. Cet exercice nécessite un système RHEL 6 configuré, est basé sur une installation en cours de RHEL 6 et suppose le gestionnaire de machines virtuelles comme indiqué au début de ce chapitre. 1. Cliquez avec le bouton droit sur l'hyperviseur standard localhost (QEMU). Dans le menu contextuel qui s'affiche, sélectionnez Détails. 2. Dans la fenêtre Détails de l'hôte qui s'affiche avec le nom du système local, sélectionnez l'onglet Réseaux virtuels. 3. Cliquez sur le signe plus dans le coin inférieur gauche de l'onglet Réseaux virtuels pour ouvrez l'assistant Créer un nouveau réseau virtuel. 4. Lisez les instructions que vous suivrez dans les prochaines étapes. Cliquez sur Transférer continuer. 5. Attribuez un nom au nouveau réseau virtuel. Pour les besoins de ce livre, entrez le nom outsider. Cliquez sur Transférer pour continuer. 6. Si ce n'est déjà fait, saisissez l'adresse réseau 192.168.100.0/24 dans la zone de texte Réseau. Le système calcule automatiquement les entrées appropriées pour d'autres informations sur le réseau, comme indiqué dans l'illustration. Cliquez sur Transférer vers continuer.
Machine Translated by Google
Configurer KVM pour Red Hat 11
Veillez à éviter les conflits d'adresse IP avec le matériel existant sur le réseau local, comme les routeurs et les points d'accès sans fil. Par exemple, au moins un « modem » câble utilise l'adresse IP 192.168.100.1 pour la maintenance. Dans ce cas, le réseau 192.168.100.0/24 indiqué rendrait ce « modem » câblé inaccessible. Si vous disposez d'un tel matériel, modifiez l'adresse réseau indiquée dans l'illustration.
7. Vous pouvez maintenant sélectionner la plage d'adresses IP au sein du réseau configuré qui peut être attribuée par un client DHCP. Selon le chapitre 1, tableau 12, vous allez configurer une adresse IP statique pour le système outsider1.example.org sur ce réseau. Tant que l'adresse IP 192.168.100.100 notée est en dehors de la plage d'adresses IP attribuables par DHCP, aucune modification n'est requise. Apportez les modifications nécessaires et cliquez sur Suivant pour continuer. 8. Maintenant, vous aurez besoin d'un système qui transfère la communication réseau vers le réseau physique, ne seraitce que parce que c'est ainsi que les systèmes de ce réseau
communiquent avec les systèmes sur différents réseaux virtuels, éventuellement sur différents hôtes virtuels La destination peut être N'importe quel périphérique physique, en mode NAT, pour aider à cacher ces systèmes aux hôtes distants. À moins que vous ne souhaitiez limiter le routage des VM à une carte réseau physique spécifique, les valeurs par défaut sous Forwarding To Physical
Machine Translated by Google
12 Chapitre 2 : Machines virtuelles et installations automatisées
Le réseau devrait fonctionner. Les options sont couvertes plus loin dans ce chapitre, dans la discussion de l'onglet Interfaces réseau. Effectuez les sélections appropriées et cliquez sur Suivant pour continuer. 9. Passez en revue le résumé de ce qui a été configuré. Si vous êtes satisfait, cliquez sur Terminer. Le réseau externe sera désormais disponible pour une utilisation par les nouveaux systèmes VM et les cartes réseau.
Stockage virtuel sur un hyperviseur Vous allez maintenant examiner le stockage virtuel configuré pour les machines virtuelles dans le gestionnaire de machines virtuelles. Dans la fenêtre des détails de l'hôte de l'hyperviseur actuel, cliquez sur l'onglet Stockage. Le répertoire du système de fichiers par défaut illustré à la Figure 25 configure le répertoire /var/lib/ libvirt/images pour les images virtuelles. Ces images sont essentiellement d'énormes fichiers d'espace réservé utilisés comme disques durs pour les machines virtuelles. Ces fichiers volumineux peuvent facilement submerger de nombreux systèmes. Une façon de contrôler ces fichiers consiste à dédier une partition ou un volume logique à ce répertoire /var/lib/libvirt/images.
FIGURE 25
Stockage de machine virtuelle
Détails
Machine Translated by Google
Configurer KVM pour Red Hat 13
Comme j'avais déjà dédié la plus grande quantité d'espace libre à une partition dédiée à mon répertoire / home, j'ai choisi de créer un stockage dédié dans cette zone. À cette fin, j'ai créé un répertoire /home/ michael/KVM pour contenir mes fichiers VM utilisés pour les disques durs virtuels. Les commandes suivantes créent le répertoire approprié en tant qu'utilisateur normal, se connectent en tant qu'utilisateur root, définissent les contextes SELinux appropriés, suppriment le répertoire /var/lib/libvirt/images et recréent ce répertoire en tant que lien vers le répertoire utilisateur approprié :
$ mkdir /home/michael/KVM # su root # chcon R reference /var/lib/ libvirt/images /home/michael/KVM # rmdir /var/lib/libvirt/images # ln s /home/ michael/KVM/var/ lib/libvirt/images
L'un des avantages de cette configuration est qu'elle conserve les paramètres SELinux par défaut pour le répertoire /var/lib/libvirt/images, tels que définis dans le fichier file_contexts du répertoire /etc/selinux/ cible/contexts/files. En d'autres termes, cette configuration survit à un changement d'étiquette de SELinux, tel que défini au chapitre 11.
Interfaces réseau virtuelles sur un hyperviseur Vous allez maintenant examiner les interfaces réseau virtuelles configurées pour les machines virtuelles dans le gestionnaire de machines virtuelles. Dans la fenêtre des détails de l'hôte de l'hyperviseur actuel, cliquez sur l'onglet Interfaces réseau. Les périphériques d'interface réseau illustrés à la Figure 26 spécifient les périphériques physiques auxquels les machines virtuelles basées sur KVM peuvent se connecter. Si le système local se connecte via la première carte réseau Ethernet standard, les valeurs par défaut avec le périphérique eth0 devraient être suffisantes. Une machine virtuelle correctement configurée doit avoir accès aux réseaux externes, compte tenu des options de configuration du parefeu et du transfert IP décrites au chapitre 1. Cependant, la figure 26 spécifie une interface supplémentaire, wlan0. C'est un fichier de périphérique d'interface réseau sans fil typique. De la même manière qu'avec les onglets Réseau virtuel et Stockage, vous pouvez ajouter une autre interface réseau en cliquant sur le signe plus dans le coin inférieur gauche de l'onglet Interfaces réseau. Il ouvre une fenêtre Configurer les interfaces réseau qui peut vous aider à configurer l'un des quatre différents types d'interfaces réseau :
■ Bridge Lie une interface physique et une interface virtuelle ; généralement associé à Xén.
■ Bond Connecte deux ou plusieurs interfaces réseau comme s'il s'agissait d'une seule interface.
Machine Translated by Google
14 Chapitre 2 : Machines virtuelles et installations automatisées
FIGURE 26 Réseau de MV cartes
■ Ethernet Configure une interface virtuelle en tant que pont. ■ VLAN Connecte une interface réseau réelle ou virtuelle au système VM.
OBJECTIF DE CERTIFICATION 2.02
Configurer une machine virtuelle sur KVM Le processus de configuration d'une machine virtuelle sur KVM est simple, en particulier à partir de Virtual Machine Manager. Essentiellement, tout ce que vous avez à faire est de cliquer avec le bouton droit sur l'hyperviseur souhaité, de cliquer sur Nouveau et de suivre les invites qui s'affichent. Mais comme il est important de comprendre le processus en détail, vous lirez le processus, étape par étape. Les nouvelles machines virtuelles peuvent être configurées non seulement à partir de l'interface graphique, mais également à partir de l'interface de ligne de commande. Comme pour les autres services Linux, les machines virtuelles résultantes sont configurées dans des fichiers texte.
Machine Translated by Google
Configurer une machine virtuelle sur KVM 15
Configurer une machine virtuelle sur KVM Pour suivre cette section, ouvrez le gestionnaire de machines virtuelles dans l'interface graphique. Une autre façon de le faire est d'utiliser une ligne de commande basée sur une interface graphique. Exécutez la commande virtmanager. Il devrait ouvrir le gestionnaire de machines virtuelles un peu plus rapidement que la commande de menu de l'interface graphique. Cliquez avec le bouton droit sur l'hyperviseur localhost (QEMU) et cliquez sur Connecter dans le menu contextuel qui s'affiche. Si vous y êtes invité, entrez le mot de passe administrateur racine. Avec les étapes suivantes, vous allez configurer la VM associée au système server1.example.com abordé au chapitre 1. Maintenant, pour configurer une nouvelle VM, procédez comme suit : 1. Cliquez avec le bouton droit sur l'hyperviseur localhost (QEMU). Dans le menu contextuel qui s'affiche, cliquez sur Nouveau pour ouvrir la fenêtre Nouvelle VM illustrée à la Figure 27. 2. Saisissez un nom pour la nouvelle VM ; pour correspondre à la discussion dans le reste de ce livre, vous devez nommer cette VM server1.example.com. 3. Sélectionnez maintenant si le support d'installation est disponible sur le support d'installation local (image ISO ou CDROM) ou à partir d'un serveur d'installation réseau. Ce serveur peut être associé au protocole HTTP, NFS ou FTP. Sélectionnez l'installation locale
FIGURE 27 Créer un nouveau VM.
Machine Translated by Google
16 Chapitre 2 : Machines virtuelles et installations automatisées
Médias et cliquez sur Transférer pour continuer. (Dans l'atelier 1, vous réexécuterez ce processus avec l'option d'installation réseau.) 4. Si le support est disponible dans un lecteur de CD/DVD local, une option pour celuici sera sélectionnable, comme illustré à la Figure 28. Mais dans ce cas, sélectionnez Utiliser l'image ISO et cliquez sur Parcourir pour accéder à l'emplacement du DVD RHEL 6 ou de l'image ISO de démarrage réseau. En outre, vous devrez utiliser les zones de texte déroulantes Type de système d'exploitation et Version pour sélectionner un type de système d'exploitation et une distribution, comme indiqué. 5. Choisissez la quantité de mémoire RAM et le nombre de CPU à allouer à la VM. Soyez conscient des minimums décrits plus haut dans ce chapitre et dans le chapitre 1 pour RHEL 6. Comme le montre la Figure 29, en petits caractères, vous verrez des informations sur la RAM et les processeurs disponibles. Effectuez les sélections appropriées et cliquez sur Suivant pour continuer.
6. Vous allez maintenant configurer les disques durs pour la machine virtuelle, dans l'écran illustré à la figure 210. Bien qu'il soit possible de le configurer dans des volumes physiques dédiés, la norme consiste à configurer de gros fichiers en tant que disques durs virtuels. Bien que l'emplacement par défaut de ces fichiers soit le répertoire /var/lib/libvirt/images/, il peut être modifié, comme
FIGURE 28
Machine virtuelle Installation multimédia
Choix
Machine Translated by Google
Configurer une machine virtuelle sur KVM 17
FIGURE 29 Machine virtuelle RAM et CPU Sélection.
FIGURE 210 Créer un virtuel Disque dur
Machine Translated by Google
18 Chapitre 2 : Machines virtuelles et installations automatisées
abordé plus haut dans ce chapitre. Lors d'un examen, il est probable que vous disposiez d'un espace plus que suffisant dans le répertoire /var/lib/libvirt/images. L'option Sélectionner un stockage géré ou un autre stockage existant prend en charge la création d'un disque dur virtuel dans un pool de stockage préconfiguré différent. 7. Assurezvous que le lecteur virtuel est de 12 Go et que l'option Allouer tout le disque maintenant est sélectionnée et cliquez sur Suivant pour continuer. 8. Dans la fenêtre suivante, confirmez les options sélectionnées jusqu'à présent. Cliquez sur Options avancées pour ouvrir les sélections illustrées à la Figure 211. Vous pouvez avoir des options à sélectionner parmi les réseaux virtuels disponibles. Si vous avez effectué l'exercice 21, l'option d'adresse réseau 192.168.100.0/24 devrait être disponible.
FIGURE 211 Créer un virtuel Disque dur
Machine Translated by Google
Configurer une machine virtuelle sur KVM 19
9. Le système peut prendre un peu de temps pour créer la machine virtuelle, y compris l'énorme fichier qui servira de disque dur virtuel. Une fois terminé, Virtual Machine Manager doit démarrer automatiquement le système à partir du DVD d'installation de RHEL 6 dans une fenêtre VNC.
10. Si le nouveau système ne démarre pas automatiquement, cette machine virtuelle doit être répertoriée dans le gestionnaire de machines virtuelles illustré à la figure 22. Vous devriez alors pouvoir mettre en surbrillance la nouvelle machine virtuelle (dans ce cas, nommée server1.example.org), puis cliquer sur Open.
11. Vous devriez maintenant pouvoir procéder à l'installation de RHEL 6 dans la machine virtuelle, comme indiqué au chapitre 1. Si vous choisissez de vérifier l'intégrité du DVD pendant le processus d'installation dans la machine virtuelle, le programme d'installation « éjecte » ce DVD. KVM ne reconnaît pas cette "éjection". Dans ce cas, vous devrez cliquer sur Afficher | Détails, sélectionnez l'option IDE CDROM1, cliquez sur Déconnecter, puis cliquez sur Connecter. Dans la fenêtre Choisir un média qui s'affiche, sélectionnez le fichier approprié avec l'image DVD ISO ou le CDROM pour le média physique. 12. Sachez que lors de la sélection du logiciel, ce système est un invité virtuel, et non un hôte virtuel configuré au chapitre 1. Il n'est pas nécessaire d'ajouter des packages de virtualisation à l'installation. Un serveur de base pour les systèmes hôtes sur une machine virtuelle est suffisant, avec les groupes de packages Desktop, Fonts, X Window System et Internet Browser ajoutés.
13. Une fois l'installation terminée, cliquez sur Redémarrer. Si le système essaie de démarrer à partir du lecteur de DVD, vous devrez modifier l'ordre de démarrage entre le DVD et le disque dur. Si le système démarre directement à partir du disque dur, vous avez terminé !
14. Si le système tente de redémarrer à partir du DVD, vous devrez arrêter le système. Pour ce faire, cliquez sur Machine virtuelle | Arrêter | Arrêt forcé. (L'option Arrêter | Arrêter ne fonctionne pas pour le moment.)
15. Si c'est la première fois que vous exécutez cette séquence de commandes, le Virtual Ma chine Manager demande une confirmation. Cliquez sur Oui. 16. Cliquez maintenant sur Afficher | Détails. 18. Une façon de modifier l'ordre de démarrage consiste à mettre en surbrillance CDROM, puis à cliquer sur le bouton fléché vers le bas. Cliquez sur Appliquer, sinon les modifications ne seront pas enregistrées. 19. Cliquez maintenant sur Afficher | Console puis Machine virtuelle | Courir. Le système devrait maintenant démarrer normalement dans le processus de premier démarrage décrit au chapitre 1.
Machine Translated by Google
20 Chapitre 2 : Machines virtuelles et installations automatisées
FIGURE 212 Options de démarrage dans la machine virtuelle
Une autre raison de l'utilisation des machines virtuelles est la facilité avec laquelle des disques durs Les étapes décrites dans cette section décrivent comment respecter la RHCSA objectif "d'accéder à la console d'une machine virtuelle". Il suggère également une méthode que vous pouvez utiliser pour "démarrer et arrêter des machines virtuelles".
virtuels supplémentaires peuvent être ajoutés. Le processus varie selon la solution de machine virtuelle. Pour la solution Virtual Machine Manager with KVM par défaut de RHEL 6, vous pouvez le faire à partir de la fenêtre de la machine en cliquant sur Afficher | Détails. Vous verrez une option Ajouter du matériel sur cet écran.
EXERCICE 22 Ajouter des disques durs virtuels Dans cet exercice, vous allez créer un disque dur virtuel supplémentaire sur une machine virtuelle KVM. Il suppose qu'il existe une machine virtuelle KVM à cet effet, ainsi que l'utilisation du gestionnaire de machines virtuelles GUI. Bien sûr, étant donné qu'il s'agit de KVM, cela suppose que le système physique local prend en charge la virtualisation matérielle.
Machine Translated by Google
Configurer une machine virtuelle sur KVM 21
1. Ouvrez le gestionnaire de machines virtuelles. À partir de la ligne de commande dans une interface graphique, exécutez la commande virtmanager. 2. Mettez en surbrillance l'hyperviseur standard localhost (QEMU). Si ce n'est pas déjà con connecté, cliquez dessus avec le bouton droit de la souris et sélectionnez Connecter dans le menu contextuel qui s'affiche. Cette étape peut se produire automatiquement. 3. Si vous y êtes invité, entrez le mot de passe administrateur racine et cliquez sur Authentifier. 4. Cliquez avec le bouton droit sur une machine virtuelle existante, puis cliquez sur Ouvrir dans le menu contextuel qui s'affiche. des poires.
5. Cliquez sur Afficher | Détails. Dans le coin inférieur gauche de la fenêtre qui s'ouvre, cliquez sur Ajouter du matériel.
6. Dans la fenêtre Ajouter un nouveau matériel virtuel qui s'affiche, sélectionnez Stockage le menu déroulant, puis cliquez sur Transférer pour continuer. 7. Dans la fenêtre Stockage qui apparaît, illustrée dans l'illustration, configurez un lecteur de 1,0 Go, sélectionnez Allouer tout le disque maintenant, sélectionnez Type de périphérique IDE, en mode Cache par défaut. (Vous pouvez également sélectionner un disque SCSI, USB ou virtuel (Virtio).) Effectuez les choix souhaités et cliquez sur Suivant pour continuer.
Machine Translated by Google
22 Chapitre 2 : Machines virtuelles et installations automatisées
8. Vous verrez une confirmation des paramètres sélectionnés. Si vous êtes satisfait, cliquez sur Terminer pour créer le nouveau disque dur virtuel. 9. Répétez les étapes précédentes pour créer un deuxième disque dur de 1 Go. Pour en savoir plus sur KVM, il serait utile de configurer quelque chose de différent, comme un disque SCSI. Cependant, ce n'est pas obligatoire. 10. La prochaine fois que vous démarrerez ce système, exécutez la commande fdisk l. Il doit confirmer les informations appropriées sur les périphériques de disque dur configurés.
Fichiers de configuration KVM Les machines virtuelles basées sur KVM sont normalement configurées dans deux répertoires différents : /etc/libvirt et /var/lib/libvirt. Lorsqu'une VM KVM est configurée, elle est configurée dans des fichiers au format XML dans le répertoire /etc/libvirt/qemu. Par exemple, la figure 213 montre un extrait pertinent du fichier de configuration de la machine virtuelle principale que j'ai utilisée pour préparer ce livre (server1.example.com.xml).
Les paramètres importants pour la machine virtuelle sont étiquetés. Par exemple, la quantité de mémoire est indiquée en Ko, deux CPU virtuels sont alloués, KVM est l'émulateur, le disque se trouve dans le fichier server1.example.com.img dans le répertoire /var/lib/libvirt/images, et ainsi de suite.
Bien que vous puissiez modifier ce fichier de configuration directement, les modifications ne sont pas implémentées tant que le script libvirtd dans le répertoire /etc/init.d n'est pas redémarré avec une commande telle que / etc/init.d/libvirtd restart.
Contrôler les machines virtuelles à partir de la ligne de commande Bien sûr, les outils de ligne de commande peuvent être utilisés pour créer, cloner, convertir et installer des machines virtuelles sur RHEL 6. Les commandes clés à cette fin sont virtinstall, virsh et virt clone. La commande virsh est un moyen particulièrement utile pour répondre à deux objectifs RHCSA différents.
La commande virtinstall Vous pouvez effectuer les mêmes étapes que précédemment dans ce chapitre à l'aide de Virtual Machine Manager. Tout ce dont vous avez besoin est la commande virtinstall prompt. La commande demande automatiquement les informations requises décrites précédemment. Examinez la commande et les invites illustrées à la Figure 214.
Machine Translated by Google
Configurer une machine virtuelle sur KVM 23
FIGURE 213
Le Fichier de configuration pour un KVM virtuel
Machine.
FIGURE 214
Configurez une machine virtuelle avec la commande virt install.
Machine Translated by Google
24 Chapitre 2 : Machines virtuelles et installations automatisées
Pour beaucoup, c'est plus simple que de configurer le Gestionnaire de machines virtuelles GUI. Le message Création de domaine à la fin de la Figure 214 ouvre une
Regarder l'examen Le virt La commande d'installation est une méthode pour résoudre
fenêtre VNC avec une vue graphique du programme d'installation donné. Si vous faites une erreur avec la commande virt
l'objectif RHCSA « Installer les systèmes Red Hat Enterprise Linux en tant qu'invités virtuels ».
install, vous pouvez interrompre le processus en appuyant sur CTRLC. Mais sachez que la VM nouvellement créée est toujours en cours d'exécution. Et il y a maintenant un fichier
de configuration et un disque virtuel pour cette machine virtuelle. Si vous essayez de relancer la commande virtinstall avec le même nom pour la machine virtuelle, un message d'erreur apparaîtra. Ainsi, si vous souhaitez utiliser le même nom pour la VM, procédez comme suit : 1. Arrêtez la VM que vous venez de créer. S'il s'agit du système tester1.example.com illustré à la figure 214, vous pouvez le faire avec la commande suivante :
# virsh détruire tester1.example.com 2. Supprimez le fichier de configuration XML associé dans le répertoire /etc/libvirt/qemu tory. Pour le nom de système donné, ce fichier serait tester1.example.com.xml. 3. Si vous le souhaitez, vous pouvez également supprimer le fichier de disque virtuel, normalement créé dans le répertoire /var/lib/libvirt/images. Cependant, cela n'est pas nécessaire si le fichier est d'une taille acceptable, car il est réutilisable. Pour le nom de système donné, ce fichier serait tester1.example.com.img. 4. Avec la commande suivante, redémarrez le démon VM, pour effacer le tester1. système example.com à partir de la RAM :
# /etc/init.d/libvirtd redémarrage 5. Vous pourrez maintenant réexécuter la commande virtinstall avec le même nom de la machine virtuelle.
La commande virtinstall et Kickstart Pour les installations Kickstart décrites plus loin dans ce chapitre, la commande virtinstall prompt ne peut pas être utilisée pour citer un fichier de configuration Kickstart. À cette fin, vous devrez comprendre certains des commutateurs à clé associés à la commande virtinstall, comme indiqué dans le Tableau 23. Par exemple, la commande virtinstall suivante installe automatiquement un système nommé outsider1.example.org à partir d'un fichier Kickstart nommé ks1.cfg du
Machine Translated by Google
Configurer une machine virtuelle sur KVM 25
TABLEAU 23
Commande Commutateurs pour virt
installer
Changer
Description
n (nom)
Définit le nom de la VM
r (ram)
Configure la quantité de RAM en Mo
disque
Définit le disque virtuel ; souvent utilisé avec path=/var/lib/libvirt/ images/virt.img Spécifie le répertoire ou l'URL avec les fichiers
l (emplacement)
d'installation (équivalent à location)
x (extraargs=)
Inclut des données supplémentaires, telles que l'URL d'un fichier Kickstart
Serveur FTP sur l'adresse IP notée, avec 768 Mo de RAM et un outsider1.example. disque virtuel org.img.
# virtinstall n outsider1.example.org r 768 disk \ path=/var/lib/libvirt/images/ outsider1.example.org.img \ l ftp://192.168.122.1/pub/inst \ x "ks=ftp:// 192.168.122.1/pub/ks1.cfg"
Si vous exécutez la commande virtinstall avec un fichier Kickstart personnalisé à partir d'une installation précédente basée sur KVM, elle peut échouer. Une installation basée sur KVM standard configure le premier disque virtuel sur le périphérique /dev/vda. En revanche, la commande virtinstall suppose que le premier disque virtuel en question est le périphérique /dev/sda. Le fichier Kickstart décrit plus loin dans ce chapitre devra être personnalisé pour cette différence. Le fichier noté contient un certain nombre de commutateurs. La plupart des interrupteurs illustrés sont décrit dans les exemples répertoriés dans la page de manuel de la commande virtinstall. L'exception est le x, un autre nom pour le commutateur extraargs=. Vous pouvez noter des commutateurs supplémentaires, qui sont utiles mais ne sont pas requis pour l'installation de RHEL 6. Cependant, ils sont tenus de rechercher le fichier Kickstart donné. Rappelezvous donc le format des arguments supplémentaires, avec les guillemets, qui peuvent également être exprimés comme suit :
extraargs=”ks=ftp://192.168.122.1/pub/ks1.cfg” La commande virsh La commande virsh démarre un frontal pour les machines virtuelles KVM existantes. Lorsqu'il est exécuté seul, il passe d'une ligne de commande normale à l'invite suivante :
virsh #
Machine Translated by Google
26 Chapitre 2 : Machines virtuelles et installations automatisées
À partir de cette invite, exécutez la commande help. Il comprend l'accès à un certain nombre de commandes, dont certaines sont répertoriées dans le Tableau 24. Toutes les commandes affichées dans la sortie de la commande help ne sont pas actives pour KVM. Les commandes virsh utilisables peuvent également être exécutées directement à partir de l'invite du shell bash ; par exemple, la commande virsh list all répertorie toutes les machines virtuelles configurées, qu'elles soient en cours d'exécution ou non. Dans le contexte de KVM, le nom de chaque machine virtuelle est un domaine, qui est utilisé par différentes commandes virsh. Jetez un œil à la sortie de la commande virsh list all sur mon système : État
Nom d'identification
server1.example.com éteint tester1.example.com éteint Avec les bonnes commandes virsh, vous pouvez atteindre deux objectifs RHCSA. Premièrement la La commande suivante démarre le système noté server1.example.com :
# virsh start serveur1.exemple.com Malheureusement, la commande virsh shutdown ne fonctionne pas à ce jour. Donc, pour réellement arrêter une VM à partir de la ligne de commande, vous devez exécuter une commande un peu plus sévère :
# virsh détruit serveur1.exemple.com Le commutateur de commande virsh destroy est fonctionnellement équivalent à la déconnexion du cordon d'alimentation sur un système physique. Comme cela peut entraîner différents problèmes, il est préférable d'arrêter une VM en exécutant la commande poweroff depuis la VM. Alors que la commande shutdown fonctionne dans les fichiers de configuration Kickstart, pour arrêter un système à partir de la ligne de commande, la commande fonctionnelle est poweroff. TABLEAU 24
Commande virsh
Description
Commandes au
démarrage automatique
Démarrer un domaine pendant le processus de démarrage du système hôte
invite virsh
capacités
Répertorie les capacités de l'hyperviseur local
modifier
Modifie le fichier de configuration XML du domaine
tout lister
Lister tous les domaines
démarrer
Démarrer le domaine donné
arrêter
Fermer gracieusement le domaine donné
Machine Translated by Google
Confi gurer une machine virtuelle sur KVM 27
Même sur les systèmes les plus protégés, l'alimentation les pannes arrivent. Les mises à jour du noyau nécessitent toujours un redémarrage du système. Dans ces cas, il est utile
Pour démarrer et arrêter une machine virtuelle, vous pouvez exécuter les commandes
d'automatiser le démarrage des machines virtuelles sur un hôte virtuel pendant le processus de démarrage.
virsh start vmname et virsh destroy vmname , où vmname est le nom de la machine virtuelle, comme indiqué dans la sortie de la commande virsh list all .
De plus, la commande virsh est la plus moyen simple de s'assurer qu'une machine virtuelle est démarrée au prochain démarrage d'un système. Par exemple, la commande suivante démarre le système tester1.example.com noté pendant la
processus de démarrage du système hôte.
# testeur de démarrage automatique virsh1.example.com Une fois le processus de démarrage terminé pour l'hôte et la machine virtuelle, vous pourrez utiliser des commandes telles que ssh pour vous connecter normalement à ce système de machine virtuelle. Cependant, à partir de l'interface graphique de l'hôte virtuel, vous devrez toujours démarrer le gestionnaire de machines virtuelles et vous connecter à l'hyperviseur associé pour vous connecter réellement à la console virtuelle de ce système tester1.example.com. La commande crée un fichier lié logiciel dans le /etc/libvirt/qemu/autostart annuaire. Pour inverser le processus, exécutez la commande suivante :
# virsh autostart disable tester1.example.com ou supprimez le fichier lié symbolique nommé d'après la machine virtuelle cible de ce répertoire.
La commande virtclone La commande virt clone prompt peut être utilisée pour cloner une machine virtuelle existante. Avant de démarrer le processus, assurez Pour configurer une machine virtuelle afin qu'elle démarre automatiquement lorsqu'un système est démarré, vous pouvez exécuter la commande virsh autostart
vous que le système à cloner est arrêté. C'est simple; un exemple où un système tester1.example.com est créé à partir d'un système server1.example.com est illustré à la Figure 215.
vmname, où vmname est le nom de la machine virtuelle, comme indiqué dans la sortie de la commande virsh list all . Une fois le processus terminé, non seulement vous trouverez les images de disque dur notées dans le répertoires spécifiés, mais vous trouverez également un nouveau fichier de configuration XML pour cette machine virtuelle dans le répertoire /etc/libvirt/qemu.
Machine Translated by Google
28 Chapitre 2 : Machines virtuelles et installations automatisées
FIGURE 215
Cloner un virtuel Machine
La première fois que vous démarrez une machine clonée, il peut être préférable de la démarrer au niveau d'exécution 1. Comme décrit au chapitre 5, le niveau d'exécution 1 ne démarre pas la plupart des services, y compris la mise en réseau. Dans ce cas, vous pourrez modifier tous les paramètres réseau fixes, tels que le nom d'hôte et l'adresse IP avant de démarrer cette machine clonée sur un réseau de production. De plus, vous voudrez vous assurer de changer l'adresse matérielle de la carte réseau associée, afin d'éviter les conflits avec la carte réseau d'origine.
Bien que ce processus ne soit pas difficile pour une ou deux machines virtuelles, imaginez la configuration de quelques dizaines de machines virtuelles, chacune configurée ultérieurement pour différents services. Cette situation serait aidée par une plus grande automatisation. À cette fin, Red Hat fournit un système appelé Kickstart.
OBJECTIF DE CERTIFICATION 2.03
Options d'installation automatisée Kickstart est la solution de Red Hat pour une installation automatisée de Red Hat. Considérez chacune des étapes effectuées au cours du processus d'installation comme des questions. Avec Kickstart, chacune de ces questions peut être répondue automatiquement avec un seul fichier texte. Avec Kickstart, vous pouvez mettre en place des systèmes identiques très rapidement. À cette fin, les fichiers Kickstart sont utiles pour un déploiement et une distribution rapides des systèmes Linux. De plus, le processus d'installation est l'occasion d'en savoir plus sur RHEL 6, non seulement sur le support de démarrage, mais aussi sur les partitions et les volumes logiques pouvant être configurés.
Machine Translated by Google
Options d'installation automatisée 29
une fois l'installation terminée. Avec l'avènement des VM, il n'est pas difficile de mettre en place une installation automatisée sur une nouvelle VM à l'aide de Kickstart. Les étapes décrites dans cette section supposent une connexion au serveur FTP avec Fichiers d'installation de RHEL 6 créés et configurés au chapitre 1, laboratoire 2.
Concepts de démarrage L'un des problèmes d'une installation basée sur Kickstart est qu'elle n'inclut pas les paramètres personnalisés créés une fois l'installation de base terminée. Bien qu'il soit possible d'inclure ces paramètres en fonction des scripts de postinstallation, cela dépasse le cadre de l'examen RHCSA.
Il existe deux méthodes pour créer le fichier de configuration Kickstart requis :
■ Démarrez avec le fichier anacondaks.cfg du répertoire personnel de l'utilisateur root, /root. ■ Utilisez le configurateur graphique Kickstart, accessible via la commande systemconfig kickstart. La première option vous permet d'utiliser le Kickstart fichier modèle créé pour le système local par Anaconda, anacondaks.cfg dans le répertoire /root. La Bien que ce soit une bonne idée de surveiller https://bugzilla.redhat.com pour les bogues
deuxième option, le configurateur Kickstart, est abordée en détail plus loin dans ce chapitre.
liés aux composants clés, cela peut être particulièrement important en ce qui concerne Kickstart. Par exemple, le
Il est relativement facile de personnaliser le
bogue 624536 suggère que les installations Kickstart
fichier anacondaks.cfg pour différents systèmes.
basées sur NFS sont problématiques.
Dans quelques instants, vous verrez comment personnaliser ce fichier selon les besoins pour différentes tailles de disque dur, noms d'hôte, adresses IP, etc.
Configurer l'accès local à Kickstart Une fois le fichier Kickstart configuré, vous pouvez le configurer sur un support local tel qu'une clé USB, un CD, une partition de secours ou même un lecteur de disquette. (Ne riez pas ; de nombreux systèmes de VM, y compris KVM, facilitent l'utilisation des lecteurs de disquette virtuels.) Pour ce faire, suivez ces étapes de base :
1. Configurez et modifiez le fichier anacondaks.cfg comme vous le souhaitez. Je vais décrire ce pro Cesser plus en détail sous peu.
Machine Translated by Google
30 Chapitre 2 : Machines virtuelles et installations automatisées
2. Montez le support local souhaité. Vous devrez peutêtre exécuter une commande telle que fdisk l en tant qu'utilisateur root pour identifier le fichier de périphérique approprié. Si le lecteur ne se monte pas automatiquement, vous pouvez alors monter le lecteur avec une commande telle que mount /dev/sdb / mnt. 3. Copiez le fichier Kickstart dans ks.cfg sur le support local monté. (Autres noms sont d'accord; ks.cfg est simplement le nom de fichier le plus courant à cet effet dans la documentation de Red Hat.) 4. Assurezvous que le fichier ks.cfg dispose au moins des autorisations de lecture pour tous les utilisateurs. Si SELinux est actif sur le système local, les contextes doivent normalement correspondre à ceux des autres fichiers du même répertoire. Pour plus d'informations, voir le chapitre 4. Attention, un fichier de configuration Kickstart sur un serveur FTP peut présenter un risque pour la sécurité. C'est presque comme l'ADN d'un système. Si un cracker met la main sur ce fichier, il pourrait l'utiliser pour créer une copie de vos systèmes, pour voir comment s'introduire et compromettre vos données. Comme ce fichier contient normalement un mot de passe administrateur root, vous devez changer ce mot de passe dès que ce système est démarré pour la première fois. Soyez prudent avec le fichier de configuration Kickstart. À moins que les connexions root directes ne soient désactivées, le fichier inclut le mot de passe administrateur root. Même si ce mot de passe est crypté, un cracker avec les bons outils et une copie de ce fichier de configuration Kickstart peut décrypter ce mot de passe plus rapidement que prévu.
5. Vous devriez maintenant être prêt à utiliser le support Kickstart sur un autre système. Vous pourrez réessayer cela sous peu dans un exercice. 6. Essayez maintenant d'accéder au fichier Kickstart sur le support local. Démarrez le CD/DVD d'installation de RHEL 6. Lorsque le premier menu apparaît, mettez en surbrillance Installer ou mettre à niveau un système existant et appuyez sur TAB. Les commandes d'Anaconda devraient apparaître, semblables à ce qui suit. Un curseur doit apparaître à la fin de cette ligne.
vmlinuz initrd=initrd.img 7. Ajoutez des informations sur l'emplacement du fichier Kickstart à la fin de la ligne. Par exemple, l'ajout suivant localise ce fichier sur la première partition du deuxième disque dur, qui peut être une clé USB.
ks=hd:sdb1:/ks.cfg
Machine Translated by Google
Options d'installation automatisée 31
Sinon, si le fichier kickstart se trouve sur le CD de démarrage, essayez d'ajouter la commande suivante :
ks=cdrom:/ks.cfg Sinon, si le fichier kickstart se trouve sur le premier lecteur de disquette, entrez ce qui suit :
ks=hd:fd0:/ks.cfg Il peut y avoir des essais et des erreurs avec cette méthode. Oui, les fichiers de périphérique sont attribués dans l'ordre (sda, sdb, sdc, etc.). Cependant, à moins que vous ne démarriez Linux avec le support de stockage donné, il n'y a aucune certitude quant au fichier de périphérique attribué à un lecteur spécifique.
Configurer l'accès au réseau pour démarrer Le processus de configuration d'un fichier Kickstart à partir d'un support local peut prendre du temps, surtout si vous devez passer d'un système à l'autre pour charger ce fichier. Dans de nombreux cas, il est plus efficace de configurer le fichier Kickstart sur un serveur réseau. Un emplacement logique est le même serveur réseau utilisé pour les fichiers d'installation. Par exemple, sur la base du serveur FTP créé au chapitre 1, laboratoire 2, supposons qu'il existe un fichier ks.cfg dans le répertoire /var/ftp/pub du serveur FTP. De plus, les contextes SELinux doivent correspondre à celui de ce répertoire, ce qui peut être confirmé avec les commandes suivantes :
# ls Zd /var/ftp/pub # ls Z / var/ftp/pub Une fois qu'un fichier ks.cfg approprié se trouve dans le répertoire /var/ftp/pub, vous pouvez y accéder en ajoutant la directive suivante à la fin de la ligne vmlinuz initrd=initrd.img décrite précédemment à l'étape 6 :
ks=ftp://192.168.122.1/pub/ks.cfg Des options similaires sont possibles pour un fichier Kickstart sur un serveur NFS et HTTP, comme suit :
ks=nfs:192.168.122.1/ks.cfg ks=http:// 192.168.122.1/ks.cfg Cependant, vous ne devez pas utiliser NFS pour partager des fichiers Kickstart tant que le bogue 624536 susmentionné n'a pas été résolu. S'il existe un serveur DNS opérationnel sur le réseau local, vous pouvez remplacer le nom d'hôte ou nom de domaine complet du serveur cible pour l'adresse IP.
Machine Translated by Google
32 Chapitre 2 : Machines virtuelles et installations automatisées
Red Hat s'efforce de faciliter le processus de création d'un serveur d'installation basé sur Kickstart. Pour plus d'informations, consultez le projet Cobbler sur https:// fedorahosted.org/cobbler/.
Exemple de fichier de démarrage J'ai basé cette section sur le fichier anacondaks.cfg créé lorsque j'ai installé RHEL 6 sur une machine virtuelle basée sur KVM. J'ai ajouté un certain nombre de commentaires. Bien que vous puissiez l'utiliser comme exemple de fichier, assurezvous de le personnaliser en fonction de votre matériel et de votre réseau. Cette section ne fait qu'effleurer ce que vous pouvez faire avec un fichier Kickstart ; votre version de ce fichier peut varier.
Contrairement à ce qui est disponible
répertoire pour obtenir de l'aide pendant un examen. Si vous n'êtes pas sûr des commandes spécifiques à inclure
pour de nombreux autres packages Red Hat, la documentation Kickstart est disponible dans
dans le fichier Kickstart, le configurateur Kickstart décrit
un système RHEL 6 installé est quelque peu clairsemé.
plus loin dans ce chapitre peut vous aider.
En d'autres termes, vous ne pouvez pas vraiment vous fier aux pages de manuel ou aux fichiers dans /usr/share/doc
Alors que la plupart des options sont explicites, j'ai entrecoupé mon explication de chaque commande dans le fichier. Ce fichier illustre juste une petite partie des commandes disponibles. Pour plus d'informations sur chaque commande (et options) de ce fichier, lisez le dernier Guide d'installation de RHEL 6, disponible en ligne à l'adresse http://docs.redhat. com/docs/enUS. Suivez ces règles et directives de base lors de la configuration d'un fichier Kickstart :
■ En général, conservez l'ordre des directives. Cependant, certaines variations sont autorisé selon que l'installation se fait à partir d'un support local ou via un réseau.
■ Vous n'avez pas besoin d'utiliser toutes les options. ■ Si vous omettez une option obligatoire, l'utilisateur sera invité à répondre. ■ N'ayez pas peur de faire un changement ; par exemple, les directives relatives aux partitions sont commenté par défaut.
Machine Translated by Google
Options d'installation automatisée 33
Si vous omettez une option, le processus d'installation s'arrêtera à ce stade. C'est un moyen facile de voir si un fichier Kickstart est correctement configuré. Mais comme certaines options Kickstart modifient les partitions sur un disque dur, même les tests peuvent être dangereux. Il est donc préférable de tester un fichier Kickstart sur un système de test, ou mieux encore, une VM expérimentale. Voici le code de l'un de mes fichiers anacondaks.cfg. Les deux premières lignes sont des commentaires qui me disent que ce fichier a été créé lors du processus d'installation de RHEL 6 : # Fichier Kickstart généré automatiquement par anaconda. #version=RHEL6
La première commande est simple ; il démarre le processus d'installation. Il utilise par défaut le premier média local disponible ; dans ce cas, le premier DVD/CD ou clé USB d'installation de RHEL. installer
L'étape suivante consiste à spécifier la source des fichiers d'installation. Pour utiliser les DVD RHEL 6, entrez cdrom. Pour installer à partir d'un serveur NFS, spécifiez l'URI comme suit. S'il existe un serveur DNS fiable sur le réseau local, vous pouvez substituer le nom d'hôte à l'adresse IP. nfs server=192.168.122.1 dir=/inst
Vous pouvez également configurer une connexion à un serveur FTP ou HTTP en remplaçant l'une des commandes affichées ici. Les répertoires que je spécifie sont basés sur les serveurs d'installation FTP et HTTP créés au chapitre 1 : url url http://192.168.122.1/inst
ou url url ftp://192.168.122.1/pub/inst
Si le fichier ISO qui représente le DVD RHEL 6 existe sur une partition de disque dur local, vous pouvez également le spécifier. Par exemple, la directive suivante pointe vers les CD ou DVD ISO sur la partition /dev/sda10 : disque dur partition=/dev/sda10 dir=/home/michael/
La commande lang spécifie la langue à utiliser pendant le processus d'installation. Cela importe si l'installation s'arrête en raison d'une commande manquante dans ce fichier. Le clavier
Machine Translated by Google
34 Chapitre 2 : Machines virtuelles et installations automatisées
La commande est explicite, car elle spécifie le clavier à configurer sur cet ordinateur.
lang en_US.UTF8 clavier us
La commande réseau requise est plus simple s'il existe un serveur DHCP pour le réseau local. réseau : réseau device eth0 bootproto dhcp. En revanche, la ligne suivante configure les informations d'adresse IP statique, avec le masque de réseau indiqué (netmask), l'adresse de la passerelle (gateway), le serveur DNS (nameserver) et le nom de l'ordinateur (hostname).
réseau device eth0 bootproto statique ip 192.168.122.150 netmask 255.255.255.0 gateway 192.168.122.1 nameserver 192.168.122.1 hostname tester1.example.com
Veuillez noter que toutes les options de la commande network doivent figurer sur une seule ligne. Doubler l'habillage, si les options dépassent l'espace dans un éditeur de texte, est acceptable. Si vous configurez ce fichier pour un autre système, n'oubliez pas de modifier l'adresse IP et le nom d'hôte en conséquence. Sachez que si vous n'avez pas configuré le réseau pendant le processus d'installation, il ne sera pas écrit dans le sujet anacondaks. fichier cfg. Compte tenu de la complexité de la directive réseau, vous pouvez soit utiliser le configurateur Kickstart pour vous aider à configurer cette directive, soit configurer la mise en réseau une fois l'installation terminée. Comme le mot de passe de l'utilisateur racine fait partie du processus d'installation de RHEL 6, le fichier de configuration Kickstart peut spécifier ce mot de passe au format crypté. Bien que le cryptage ne soit pas requis, il peut au moins retarder un pirate qui pourrait s'introduire dans un système une fois l'installation terminée. Étant donné que la fonction de hachage cryptographique associée est la même que celle utilisée pour le fichier /etc/shadow, vous pouvez copier le mot de passe souhaité à partir de ce fichier.
rootpw iscrypted $6$5UrLfXTk$CsCW0nQytrUuvycuLT317/
Quant à la sécurité, la directive parefeu suggère qu'elle est activée. Lorsqu'il est associé à service=ssh, il spécifie le numéro de port de service autorisé à travers le parefeu, en fonction de la manière dont il est défini dans le fichier /etc/services. parefeu service=ssh
Ensuite, la commande authconfig configure Shadow Password Suite (enableshadow), l'algorithme de chiffrement SHA 512 bits pour le chiffrement de mot de passe (passalgo=sha512) et l'authentification avec n'importe quel lecteur d'empreintes digitales existant.
Machine Translated by Google
Options d'installation automatisée 35
Un mot de passe crypté avec l'algorithme SHA512 commence par 6 $, comme le mot de passe d'administration racine que nous venons d'afficher.
authconfig enableshadow passalgo=sha512 enablefingerprint
La directive selinux peut être définie sur enforcing, permissive ou disabled.
selinux application La commande timezone est associée à une longue liste de fuseaux horaires. Ils sont documentés dans le package tzdata. Pour une liste complète, exécutez la commande rpm ql tzdata. Par défaut, Red Hat règle l'horloge matérielle sur l'équivalent du temps moyen de Greenwich avec le commutateur utc. Ce paramètre prend en charge les modifications automatiques de l'heure d'été. Le paramètre suivant se trouve sous la forme d'un sousrépertoire et d'un fichier dans le répertoire /usr/share/ zoneinfo.
fuseau horaire America/Los_Angeles Le chargeur de démarrage par défaut est GRUB. Il doit normalement être installé sur le Master Boot Record (MBR) d'un disque dur. Vous pouvez inclure un commutateur driveorder pour spécifier le lecteur avec le chargeur de démarrage et un commutateur append pour spécifier des commandes pour le noyau. Alors que l'option crashkernel=auto donnée devrait automatiquement sélectionner la mémoire disponible en cas de plantage, les premiers rapports sur RHEL 6 suggèrent que vous devrez peutêtre la remplacer par un emplacement de mémoire spécifique tel que crashkernel=128M@16M. chargeur de démarrage location=mbr driveorder=vda
append="crashkernel=auto rhgb silencieux" Comme suggéré par les commentaires qui suivent, il est d'abord important d'effacer un ensemble de partitions existant. Tout d'abord, la directive clearpart drives=vda all initlabel efface tous les volumes sur le disque dur virtuel vda. S'il n'a pas été utilisé auparavant, initlabel initialise ce lecteur. Bien sûr, avant qu'une telle commande ne prenne effet, tout caractère de commentaire existant (#) doit être supprimé. La directive ignoreisk qui suit spécifie les volumes uniquement sur le lecteur vda noté. Bien entendu, cela ne fonctionne que s'il existe un lecteur virtuel spécifié sur la machine virtuelle cible. (Il est possible de spécifier des lecteurs PATA ou SCSI sur de telles machines virtuelles, ce qui entrerait en conflit avec ces directives.)
# Voici les informations de partition que vous avez demandées # Notez que toutes les partitions que vous avez supprimées ne sont pas exprimées # ici donc à moins que vous n'effaciez d'abord toutes les partitions, cela n'est # pas garanti de fonctionner
Machine Translated by Google
36 Chapitre 2 : Machines virtuelles et installations automatisées
clearpart –drives=vda all initlabel ignoreisk onlyuse=vda
Si vous prévoyez d'utiliser ce fichier Kickstart avec la commande virtinstall décrite précédemment, vous devrez remplacer le périphérique sda par vda, car la commande virtinstall n'utilise normalement pas ce fichier de périphérique de disque dur virtuel. Des modifications sont requises dans les directives de partition (partie) qui suivent. Ils devraient spécifiez le répertoire, le format du système de fichiers (fstype) et size en Mo. part /boot fstype=ext4 size=500 part / fstype=ext4 size=8000 part swap size=1000 part /home fstype=ext4 size=1000
Attention, votre version d'un fichier anacondaks.cfg peut inclure une directive onpart qui spécifie les fichiers de périphérique de partition tels que /dev/vda1. Cela conduirait à une erreur à moins que les partitions notées existent déjà. Donc, si vous voyez ces directives onpart, il est plus simple de les supprimer. Sinon, vous devrez créer ces partitions avant de démarrer le processus d'installation, ce qui peut être délicat. La version par défaut du fichier Kickstart peut contenir une directive repo. Il pointerait vers la source d'installation du réseau FTP du chapitre 1, laboratoire 2, et devrait être supprimé ou commenté du fichier Kickstart comme suit : #repo name=”Red Hat Enterprise Linux” baseurl=ftp:// 192.168.122.1/pub/ cost=100
Pour vous assurer que le système termine réellement le processus d'installation, c'est ici qu'il faut inclure une directive telle que redémarrage, arrêt, arrêt ou mise hors tension. Personnellement, je préfère la directive shutdown; si vous souhaitez éviter le processus de premier démarrage décrit précédemment, vous pouvez également inclure la directive firstboot disabled. Comme il n'y a aucun moyen de configurer un fichier Kickstart avec des réponses au processus de premier démarrage, cette directive disabled aide à automatiser le processus Kickstart. fermer firstboot disabled
Si vous réutilisez une machine virtuelle KVM existante, il peut être nécessaire d'éteindre le système pour changer le support de démarrage du CD/DVD sur le disque dur. Donc, à la place, vous préférerez peutêtre remplacer la directive suivante : fermer
Alors que d'autres options sont disponibles en ce qui concerne la configuration des matrices RAID et des volumes logiques, l'objectif des examens Red Hat est de configurer ces volumes après
Machine Translated by Google
Options d'installation automatisée 37
l'installation est terminée. Ce qui suit est une liste des groupes de packages qui sont installés via ce fichier de configuration Kickstart. Ces noms correspondent aux noms que vous pouvez trouver dans le fichier *compsrhel6Server.xml du répertoire /repodata du DVD RHEL 6 décrit au chapitre 1. Comme la liste est longue, ce qui suit n'est que des extraits de groupes de packages ( qui commencent par le @) et les noms de packages :
%packages @ base @consoleinternet
... nsspamldapd perl DBDSQLite %end
Une fois les groupes de packages installés, vous pouvez spécifier des commandes de postinstallation après la directive suivante. Par exemple, vous pouvez configurer des fichiers de configuration personnalisés. Mais la directive %post et tout ce qui suit n'est pas nécessaire.
%poste
EXERCICE 23 Créer et utiliser un exemple de fichier Kickstart Dans cet exercice, vous utiliserez le fichier anacondaks.cfg pour dupliquer l'installation d'un ordinateur à un autre avec un matériel identique. Cet exercice installe exactement les mêmes packages avec la même configuration de partition sur le deuxième ordinateur. Cet exercice configure même le contexte SELinux pour ce fichier Kickstart. Comme l'objectif est d'installer les mêmes packages que l'installation actuelle, aucune modification n'est requise pour les packages ou les groupes de packages à partir du fichier anacondaks.cfg par défaut dans le répertoire /root. Cela suppose l'accès à une source d'installation réseau telle que celle créée au Chapitre 1 Lab 2. Les étapes de cet exercice supposent un espace et des ressources suffisants pour au moins deux différentes machines virtuelles basées sur KVM, comme indiqué au chapitre 1.
1. Consultez le fichier /root/anacondaks.cfg. Copiezle dans ks.cfg. 2. S'il existe une directive réseau dans le fichier, modifiezla pour qu'elle pointe vers une Adresse IP 192.168.122.150, avec un nom d'hôte testeur1.exemple.com. Ce n'est pas grave si une telle directive n'existe pas déjà ; la mise en réseau peut être configurée une fois l'installation terminée, en utilisant les techniques décrites au chapitre 3.
Machine Translated by Google
38 Chapitre 2 : Machines virtuelles et installations automatisées
3. Assurezvous que les directives associées aux lecteurs et aux partitions dans le fichier ks.cfg sont actives, car elles sont commentées par défaut dans le fichier /root/anacondaks.cfg. Faites attention à la directive clearpart ; il doit normalement être défini sur all pour effacer toutes les partitions et initlabel pour initialiser les disques nouvellement créés. S'il y a plus d'un disque dur sur le système, le commutateur drives=vda peut se concentrer sur le premier disque virtuel sur une machine virtuelle basée sur KVM. 4. Vérifiez l'emplacement du serveur d'installation, associé à l'url ou directives nfs. Cet atelier suppose qu'il s'agit d'un serveur FTP accessible à l'adresse IP 192.168.122.1, dans le sousrépertoire pub/inst/. S'il s'agit d'une adresse IP et d'un répertoire différents, remplacezles en conséquence. 5. Assurezvous que les directives suivantes sont incluses juste avant la direction %post tif à la fin du fichier :
fermer firstboot disabled 6. Copiez le fichier ks.cfg dans le répertoire de base du serveur d'installation ; s'il s'agit du serveur vsFTP, ce répertoire est /var/ftp/pub. Assurezvous que ce fichier est lisible par tous les utilisateurs. Une méthode consiste à utiliser la commande suivante :
# chmod +r /var/ftp/pub/ks.cfg 7. En supposant que le répertoire de base est /var/ftp/pub, modifiez le contexte SELinux de ce fichier avec la commande suivante :
# chcon reference /var/ftp/pub /var/ftp/pub/ks.cfg 8. Assurezvous qu'aucun parefeu existant ne bloque le port de communication associé au serveur d'installation. Pour plus d'informations, reportezvous au chapitre 4. La manière la plus simple, bien que non sécurisée, consiste à utiliser la commande suivante :
#iptables F 9. Préparez le deuxième ordinateur afin qu'il dispose d'un espace disque suffisant. Ce deuxième ordinateur peut être une machine virtuelle basée sur KVM sur un hôte local. Démarrez ce deuxième ordinateur sur le DVD RHEL 6. 10. Dans le menu Red Hat Installation, sélectionnez la première option et appuyez sur TAB. Il affichera les directives de démarrage vers le bas de l'écran. À la fin de cette liste, ajoutez la directive suivante :
ks=ftp://192.168.122.1/pub/ks.cfg Si le fichier Kickstart se trouve sur un autre serveur ou sur un support local, remplacezle en conséquence.
Machine Translated by Google
Options d'installation automatisée 39
Vous devriez maintenant voir l'installation du système créer la même configuration de base que le premier système. Si le processus d'installation s'arrête avant le redémarrage, il y a un problème avec le fichier Kickstart, probablement un cas d'informations insuffisantes.
Le configurateur Kickstart Même les utilisateurs qui préfèrent travailler sur la ligne de commande peuvent apprendre de l'outil graphique Red Hat connu sous le nom de Kickstart Configurator. Il inclut la plupart (mais pas toutes) des options de base associées à la configuration d'un fichier de configuration Kickstart. Vous pouvez l'installer avec la commande suivante :
# yum install systemconfigkickstart En tant qu'outil graphique associé au processus d'installation, cette commande comprend un certain nombre de dépendances. Lorsque je l'ai installé sur mon système, cette seule commande a trouvé 27 dépendances, ce qui signifie que cette commande a installé un total de 28 packages. Ceux d'entre vous sensibles à l'anglais écrit correct peuvent s'opposer au terme "Kickstart Configurator". Mais c'est le nom donné par Red Hat à l'outil de configuration GUI noté.
Maintenant que vous comprenez les bases de ce qui se passe dans un fichier Kickstart, il est temps de consolider votre compréhension grâce au configurateur graphique Kickstart. cela peut vous aider à en savoir plus sur la configuration du fichier Kickstart. Une fois les bons packages installés, il peut être ouvert à partir d'une ligne de commande GUI avec la commande systemconfig kickstart. Pour le démarrer avec la configuration par défaut du système local, citez le fichier anacondaks.cfg comme suit :
# systemconfigkickstart /root/anacondaks.cfg Il devrait ouvrir le configurateur Kickstart illustré à la Figure 216. (Bien sûr, c'est probablement une bonne idée de sauvegarder d'abord le fichier anacondaks.cfg.) Avant de démarrer le configurateur Kickstart, il est préférable de s'assurer qu'il existe une connexion active à un référentiel RHEL 6 distant. Si vous utilisez une copie de test de RHEL 6, cela est également possible en vous connectant à la source d'installation créée au chapitre 1, laboratoire 2 à l'aide des techniques décrites au chapitre 7.
Machine Translated by Google
40 Chapitre 2 : Machines virtuelles et installations automatisées
FIGURE 216 Le coup d'envoi Configurateur.
L'écran illustré à la Figure 216 illustre un certain nombre d'étapes d'installation de base. Si vous avez déjà installé RHEL, toutes ces étapes devraient vous sembler familières. Un certain nombre d'autres options apparaissent dans le volet de gauche, chacune associée à différentes commandes Kickstart. Pour en savoir plus sur Kickstart, testez certains de ces paramètres. Utilisez le fichier | Enregistrer la commande pour enregistrer ces paramètres avec le nom de fichier de votre choix, que vous pourrez ensuite consulter dans un éditeur de texte. Alternativement, vous pouvez choisir Fichier | Prévisualisez pour voir l'effet de différents paramètres sur le fichier Kickstart. Les sections suivantes fournissent un bref aperçu de chaque option affichée dans le volet de gauche. Une compréhension détaillée du configurateur Kickstart peut également vous aider à comprendre le processus d'installation.
Configuration de base Dans l'écran Configuration de base, vous pouvez attribuer des paramètres aux composants suivants :
■ Langue par défaut Spécifie la langue par défaut pour l'installation et système opérateur.
■ Clavier Définit le clavier par défaut ; normalement associé au langage.
Machine Translated by Google
Options d'installation automatisée 41
■ Fuseau horaire Prend en charge les ordinateurs sur lesquels l'horloge matérielle est réalisation atomique de l'UTC, qui est essentiellement la même que le temps moyen de Greenwich.
■ Mot de passe racine Spécifie le mot de passe de l'utilisateur administratif racine ; peut être chiffré.
■ Architecture cible Peut vous aider à personnaliser un fichier Kickstart pour différentes systèmes.
■ Redémarrer le système après l'installation Ajoute la commande de redémarrage à la fin du fichier kickstart. ■ Effectuer l'installation du système en mode texte Prise en charge automatisée installation en mode texte. Une fois automatisé, le mode d'installation ne doit pas
matière.
■ Effectuer l'installation en mode interactif Permet de passer en revue les étapes associé à une installation Kickstart.
Méthode d'installation Les options de méthode d'installation sont simples. Soit vous installez Linux pour la première fois, soit vous mettez à jour une installation précédente. La méthode d'installation et vos entrées sont basées sur l'emplacement des fichiers d'installation. Par exemple, si vous sélectionnez une méthode d'installation NFS, le configurateur Kickstart vous demande le nom ou l'adresse IP du serveur NFS et le répertoire partagé avec les fichiers d'installation RHEL.
Vous pouvez configurer le fichier Kickstart pour installer RHEL à partir d'un CD/DVD, d'un disque dur local partition de disque dur ou l'un des serveurs réseau standard : NFS, HTTP ou FTP.
Options du chargeur de démarrage La section suivante répertorie les options du chargeur de démarrage. Le chargeur de démarrage par défaut est GRUB, qui prend en charge les mots de passe cryptés pour un niveau de sécurité supplémentaire lors du démarrage processus. Les chargeurs de démarrage Linux sont normalement installés sur le MBR. Si vous effectuez un double démarrage Linux et Microsoft Windows avec GRUB, vous pouvez configurer le chargeur de démarrage Windows (ou un chargeur de démarrage alternatif tel que Partition Magic ou System Commander) pour qu'il pointe vers GRUB sur le premier secteur de la partition Linux avec le /répertoire de démarrage.
Machine Translated by Google
42 Chapitre 2 : Machines virtuelles et installations automatisées
Informations sur les partitions Les options d'informations sur la partition déterminent comment cette installation configure les disques durs sur les ordinateurs concernés. Bien qu'il prenne en charge la configuration des partitions standard et RAID, il ne prend pas encore en charge la configuration des groupes LVM. L'option Effacer l'enregistrement de démarrage principal vous permet d'effacer le MBR d'un disque dur plus ancien qui pourrait avoir un problème làbas. il inclut la commande zerombr yes dans le fichier Kickstart.
N'utilisez pas l' option zerombr yes si vous souhaitez conserver un chargeur de démarrage alternatif sur le MBR, tel que Partition Magic ou Windows 7 Bootmgr.
Vous pouvez supprimer des partitions selon qu'elles ont été créées ou non sur un système de fichiers Linux. Si vous utilisez un nouveau disque dur, il est également important d'initialiser l'étiquette du disque. Cliquez sur la commande Ajouter ; il ouvre la boîte de dialogue Options de partition.
Configuration réseau La section Configuration réseau vous permet de configurer l'adressage IP sur les cartes réseau d'un ordinateur cible. Vous pouvez personnaliser l'adressage IP statique pour un ordinateur spécifique ou configurer l'utilisation d'un serveur DHCP. Cliquez simplement sur Ajouter un périphérique réseau et explorez la fenêtre Informations sur le périphérique réseau. Authentification La section Authentification vous permet de configurer deux formes de sécurité pour les mots de passe utilisateur : les mots de passe fantômes, qui chiffrent les mots de passe utilisateur dans le fichier /etc/shadow, et le hachage de chiffrement pour ces mots de passe. Cette section vous permet également de configurer les informations d'authentification pour divers protocoles :
■ NIS Network Information Service pour se connecter à une base de données d'authentification de connexion sur un réseau avec des ordinateurs Unix et Linux. ■ LDAP Dans ce contexte, le protocole Lightweight Directory Assistance est un base de données d'authentification de connexion alternative.
■ Kerberos 5 Le système MIT pour une cryptographie forte pour authentifier les utilisateurs sur un réseau.
■ Hesiod associé à Kerberos 5. ■ SMB Samba (CIFS) se connecte à un réseau de style Microsoft Windows pour l'authentification de connexion.
Machine Translated by Google
Options d'installation automatisée 43
■ Name Switch Cache Associé à NIS pour la recherche de mots de passe et groupes.
Configuration du parefeu La section Configuration du parefeu vous permet de configurer un parefeu par défaut pour l'ordinateur concerné. Sur la plupart des systèmes, vous souhaiterez limiter au minimum le nombre de services de confiance. Cependant, dans une situation comme les examens Red Hat, il peut vous être demandé de configurer une multitude de services sur un seul système, ce qui nécessiterait la configuration d'une multitude de services de confiance sur un parefeu. Dans cette section, vous pouvez également configurer les paramètres de base de SELinux. Les options Actif et Désactivé sont simples ; l'option Warn correspond à une implémentation Permissive de SELinux. Pour plus d'informations, voir le chapitre 4.
Configuration de l'affichage La section Configuration de l'affichage prend en charge l'installation d'une interface graphique Linux de base. L'installation réelle dépend des packages et des groupes de packages sélectionnés dans la section suivante. Bien qu'il y ait beaucoup de débats sur la supériorité des outils administratifs basés sur l'interface graphique ou le texte, les outils basés sur le texte sont plus stables. Pour cette raison (et plus encore), de nombreux administrateurs Linux n'installent même pas d'interface graphique. Cependant, si vous installez Linux sur une série de postes de travail, comme cela pourrait être fait avec une série de fichiers Kickstart, il est probable que la plupart des utilisateurs ne seront pas des administrateurs. En outre, vous pouvez désactiver ou activer l'agent de configuration, également connu sous le nom de processus de premier démarrage. Pour une installation entièrement automatisée, l'Agent de configuration doit être désactivé.
Sélection de packages La section Sélection de packages vous permet de choisir les groupes de packages qui sont installés via ce fichier Kickstart. Vous devriez le reconnaître comme les écrans d'installation personnalisés affichés pendant le processus d'installation. Comme indiqué précédemment, les écrans associés sont vides s'il n'y a pas de connexion actuelle à un référentiel distant, comme les mises à jour du RHN ou du serveur d'installation décrit précédemment.
Scripts d'installation Vous pouvez ajouter des scripts de préinstallation et de postinstallation au fichier Kickstart. Les scripts de postinstallation sont plus courants et peuvent aider à configurer d'autres parties
Machine Translated by Google
44 Chapitre 2 : Machines virtuelles et installations automatisées
d'un système d'exploitation Linux d'une manière courante. Par exemple, si vous souhaitez installer un répertoire contenant des informations sur les avantages sociaux des employés, vous pouvez ajouter un script de post installation qui ajoute les commandes cp appropriées pour copier des fichiers à partir d'un serveur réseau.
OBJECTIF DE CERTIFICATION 2.04
Administration avec Secure Shell Red Hat Enterprise Linux installe les packages Secure Shell (SSH) par défaut. L'exigence RHCSA en ce qui concerne SSH est simple ; vous devez savoir comment l'utiliser pour accéder à des systèmes distants. Par conséquent, dans cette section, vous allez examiner comment utiliser la commande ssh pour accéder à des systèmes distants en tant que client. Comme suggéré précédemment, l'étape est déjà définie par l'installation par défaut de SSH sur les installations standard de RHEL 6. Alors que les parefeu sont activés par défaut, le parefeu RHEL 6 standard laisse le port 22 ouvert pour l'accès SSH. Les fichiers de configuration associés sont stockés dans le répertoire /etc/ssh. La configuration détaillée du serveur fait partie des exigences RHCE. Les commandes client associées sont scp et sftp, également abordées dans cette section. Le démon Secure Shell est sécurisé car il chiffre les messages. En d'autres termes, les utilisateurs qui écoutent sur un réseau ne peuvent pas lire les messages envoyés entre les clients et les serveurs SSH. Et c'est important sur un réseau public comme Internet. RHEL intègre SSH version 2, qui inclut un algorithme d'échange de clés, qui est l'amélioration par rapport à SSH version 1.
Configurer un client SSH Le fichier de configuration principal du client SSH est /etc/ssh/ssh_config. Les utilisateurs individuels peuvent avoir des configurations client SSH personnalisées dans leurs fichiers ~/.ssh/config. Quatre directives sont incluses par défaut. Tout d'abord, la directive Host * applique les autres directives à toutes les connexions.
Héberger *
Elle est suivie d'une directive qui prend en charge l'authentification à l'aide de l'attribut Generic Interface de programmation d'application des services de sécurité pour l'authentification client/serveur :
Authentification GSSAPI oui
Machine Translated by Google
Administration avec Secure Shell 45
Cette directive suivante prend en charge l'accès à distance aux outils de l'interface graphique. X11 est une référence héritée au serveur X Window System utilisé sous Linux.
ForwardX11Trusted oui
Les directives suivantes permettent au client de définir plusieurs variables d'environnement. Le les détails sont normalement triviaux entre deux systèmes Red Hat Enterprise Linux.
SendEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES EnvoyerEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT EnvoyerEnv LC_IDENTIFICATION LC_ALL Cela prépare le terrain pour l'accès à la ligne de commande des systèmes distants.
Accès en ligne de commande Cette section est basée sur un accès standard avec la commande ssh. Pour accéder à un système distant, vous avez besoin du nom d'utilisateur et du mot de passe sur ce système distant. Par défaut, l'accès direct basé sur ssh au compte root est activé. Par exemple, la commande suivante accède à ce compte sur le système server1 noté :
$ ssh [email protected] La commande suivante fonctionne de la même manière :
$ ssh l racine serveur1.exemple.com Sans le nom d'utilisateur, la commande ssh suppose que vous vous connectez à distance comme nom d'utilisateur sur le système local. Par exemple, si je devais exécuter la commande suivante à partir de mon compte utilisateur michael :
$ ssh serveur1.exemple.com La commande ssh suppose que j'essaie de me connecter à server1.example. système com en tant qu'utilisateur michael. La première fois que la commande est exécutée entre les systèmes, elle présente quelque chose de similaire au message suivant :
$ ssh server1.example.com L'authenticité de l'hôte 'server1.example.com (192.168.122.50)' ne peut pas être établie. L'empreinte digitale de la clé RSA est b9:8a:c8:cd:c3:02:87:b3:1c:a9:a7:ed:d8:9c :28:b8. Voulezvous vraiment continuer à vous connecter (oui/non) ? Oui Avertissement : 'server1.example.com,192.168.122.50' ajouté de manière permanente
Machine Translated by Google
46 Chapitre 2 : Machines virtuelles et installations automatisées
(RSA) à la liste des hôtes connus. Mot de passe de [email protected] : L'un des défauts de ce type de commande ssh est la façon dont il envoie le mot de passe sur le réseau. Un accès plus sécurisé est possible en utilisant un accès basé sur une phrase de passe à des paires de clés privées/publiques de 1024 bits (et plus). Mais cette option plus sécurisée est du ressort de l'examen RHCE, abordé au chapitre 11. Lorsque la connexion est établie, une copie de l'empreinte digitale de la clé distante est ajoutée au fichier ~/.ssh/known_hosts de l'utilisateur. Le RSA est une référence à la clé de chiffrement publique du système distant ; l'acronyme est basé sur les noms de famille de ses développeurs, Rivest, Shamir et Adelman. La clé publique est donnée aux systèmes distants ; la clé privée est conservée sur le système local pour correspondre aux demandes distantes autorisées. Une fois connecté via ssh, vous pouvez faire n'importe quoi sur le système distant qui est pris en charge par vos privilèges d'utilisateur sur ce système distant. Par exemple, vous pouvez même arrêter le système distant en douceur avec la commande poweroff. Après avoir exécuté cette commande, vous aurez quelques secondes pour quitter le système distant avec la commande exit.
Plus d'outils de ligne de commande SSH Si vous préférez accéder au système distant avec un client de type FTP, la commande sftp est faite pour vous. Bien que le commutateur l ne fonctionne pas avec cette commande, il peut toujours être utilisé pour se connecter au compte de n'importe quel utilisateur sur le système distant. Alors que la communication FTP normale se déroule en texte clair, la communication avec la commande sftp peut être utilisée pour transférer des fichiers au format crypté. Alternativement, si vous souhaitez simplement copier via une connexion cryptée, la commande scp peut vous aider. Par exemple, j'ai créé certaines des captures d'écran de ce livre sur les machines virtuelles de test configurées aux chapitres 1 et 2. Pour transmettre cette capture d'écran à mon ordinateur portable, j'ai utilisé une commande similaire à la suivante, qui a copié le F0220. tif du répertoire local vers le système distant avec le nom d'hôte noté, dans le répertoire /home/michael/RHbook/Chapter2.
# scp F0220.tif michael@server1:/home/michael/RHbook/Chapter2/ À moins qu'une connexion basée sur une phrase de passe n'ait été établie (comme indiqué dans Chapitre 11), la commande demande le mot de passe de l'utilisateur michael sur le
Machine Translated by Google
Administration avec Secure Shell 47
système nommé serveur1. Une fois le mot de passe confirmé, la commande scp copie le fichier F0220.tif au format crypté dans le répertoire indiqué sur le système distant nommé server1.
Accès graphique Secure Shell La commande ssh peut être utilisée pour transmettre des outils GUI sur un réseau. Aussi étrange que cela puisse paraître, cela fonctionne si le système local fonctionne comme un serveur GUI pendant que vous appelez des applications client GUI distantes à partir de systèmes distants. Par défaut, les fichiers de configuration du serveur SSH et du client sont configurés pour prendre en charge Communication X11 sur un réseau. Tout ce que vous avez à faire est de vous connecter au système distant avec le commutateur X. Par exemple, vous pouvez utiliser la séquence de commandes illustrée à la Figure 217 pour administrer les utilisateurs sur le système distant.
FIGURE 217 Accès à distance à l'interface graphique via SSH.
Machine Translated by Google
48 Chapitre 2 : Machines virtuelles et installations automatisées
OBJECTIF DE CERTIFICATION 2.05
Envisagez d'ajouter ces outils de ligne de commande Vous voudrez peutêtre envisager d'ajouter plusieurs outils de ligne de commande pour vous aider à administrer divers systèmes Linux. Ces outils seront utilisés plus loin dans ce livre pour s'assurer que les différents serveurs sont réellement opérationnels. Bien qu'il soit préférable de tester des services comme Postfix avec des clients de messagerie réels comme Evolution et Thunderbird, des outils de commande comme telnet, nmap et mutt peuvent être utilisés pour vérifier ces services à distance, à partir d'une interface de ligne de commande. À des fins d'examen, vous pouvez utiliser ces outils pour tester, diagnostiquer et résoudre les problèmes du système dans le temps qu'il faudrait pour télécharger un outil complexe comme Evolution. Bien que la commande ssh puisse aider à accéder à distance aux outils de l'interface graphique, la communication avec ces outils peut prendre du temps. À des fins administratives, les outils d'intérêt comprennent les éléments suivants :
■ telnet et nmap pour vérifier l'accès à distance aux ports ouverts. ■ mutt en tant que client de messagerie pour vérifier la fonctionnalité d'un serveur de messagerie. ■ elinks comme navigateur Web pour s'assurer que les services Web sont accessibles. ■ Utilisez lftp pour accéder aux serveurs FTP avec l'achèvement de la commande.
Vérification des ports avec telnet La commande telnet est un outil étonnamment puissant. Toute personne consciente des implications de sécurité des clients en texte clair peut hésiter à utiliser telnet. Les personnes qui utilisent telnet pour se connecter à des serveurs distants transmettent leurs noms d'utilisateur, mots de passe et autres commandes en texte clair. Toute personne disposant d'un analyseur de protocole tel qu'Ethereal peut lire ces données assez facilement.
Mais telnet peut faire plus. Lorsqu'il est exécuté localement, il peut vérifier le fonctionnement d'un service. Pour exemple, la commande suivante vérifie le fonctionnement de vsFTP sur le système local :
$ telnet localhost 21 Essayer 127.0.0.1... Connecté à l'hôte local. Le caractère d'échappement est '^]'. 220 (vsFTPd 2.2.2) Le "caractère d'échappement" est la touche CTRL et le crochet droit (]) enfoncés simultanément. En appuyant sur cette combinaison de commandes à partir de l'écran indiqué, l'invite telnet> s'affiche. De là, vous pouvez quitter avec la commande quit.
Machine Translated by Google
Envisagez d'ajouter ces outils de ligne de commande 49
^] telnet> quitter Vous n'avez même pas besoin d'exécuter le caractère d'échappement pour quitter ; tapez simplement la commande QUIT. Si vsFTP n'était pas en cours d'exécution ou avait été configuré pour communiquer sur un port autre que 21, vous obtiendriez la réponse suivante :
Essayer 127.0.0.1... telnet : connexion à l'adresse 127.0.0.1 : connexion refusée S'il n'y a pas de parefeu, vous obtiendrez le même résultat à partir d'un système distant. Si un parefeu bloque les communications sur le port 21, vous obtiendrez un message similaire au suivant :
telnet : connexion à l'adresse 192.168.122.50 : aucune route vers l'hôte Certains services comme le serveur de messagerie Postfix sont configurés par défaut pour accepter connexions uniquement à partir du système local. Dans ce cas, avec ou sans parefeu, vous obtiendrez le message "connexion refusée" lorsque vous essayez de vous connecter à distance
système.
Vérification des ports avec nmap La commande nmap est un puissant outil d'analyse de ports. En tant que tel, le site Web des développeurs de nmap indique que "lorsqu'il est utilisé de manière incorrecte, nmap peut (dans de rares cas) vous faire poursuivre, renvoyer, expulser, emprisonner ou bannir par votre FAI". Néanmoins, il est inclus dans les référentiels RHEL 6 standard. En tant que tel, il est pris en charge par Red Hat pour une utilisation légale. C'est un moyen rapide d'avoir une vue des services qui sont ouverts localement et à distance. Par exemple, la commande nmap localhost illustrée à la Figure 218 détecte et révèle les services qui s'exécutent sur le système local. Mais en revanche, lorsque le scanner de port est exécuté à partir d'un système distant, il ressemble à un seul port est ouvert. Cela montre l'effet du parefeu sur le serveur.
Démarrage de Nmap 5.21 ( http://nmap.org ) au 20101129 09:52 PST Rapport d'analyse Nmap pour server1.example.com (192.168.122.50) L'hôte est actif (latence de 0,00027 s). Non illustré : 999 ports filtrés SERVICE DE L'ÉTAT DU PORT
22/tcp ouvrir ssh
Machine Translated by Google
50 Chapitre 2 : Machines virtuelles et installations automatisées
FIGURE 218 Appliquer un scanner de port localement
Configurer un client de messagerie Le processus de configuration d'un client de messagerie GUI devrait être simple pour tout candidat à la certification Red Hat. Cependant, il n'en va pas nécessairement de même pour les clients en ligne de commande, et ils sont utiles pour tester les fonctionnalités des services de serveur de messagerie standard tels que Postfix et sendmail. Par exemple, une fois qu'un serveur est configuré pour le courrier électronique Post Office Protocol (POP), même le courrier électronique qui est livré à l'aide de la version 3 quasi omniprésente (POP3), il peut être vérifié avec la commande suivante :
# mutt f pop://nom d'utilisateur@hôte Étant donné que les clients de messagerie GUI devraient être triviaux pour les lecteurs, le reste de ce La section se concentre sur l'utilisation des clients de messagerie en ligne de commande.
Courrier en ligne de commande Une façon de tester un système de messagerie local consiste à utiliser l'utilitaire de messagerie en ligne de commande intégré. Il fournit une interface textuelle simple. Le système conserve le courrier de chaque utilisateur dans les fichiers du répertoire / var/mail associés à chaque nom d'utilisateur. Les utilisateurs qui lisent les messages avec l'utilitaire de messagerie peuvent également répondre, transférer ou supprimer les messages associés. Vous pouvez certainement utiliser n'importe lequel des autres lecteurs de messagerie, tels que mutt, ou les gestionnaires de messagerie associés à différents navigateurs Web à interface graphique pour tester votre système. D'autres lecteurs de messagerie stockent les messages dans différents répertoires. Par exemple, l'utilitaire pine serait
Machine Translated by Google
Envisagez d'ajouter ces outils de ligne de commande 51
créer et stocker des messages pour l'utilisateur mj dans le répertoire /home/mj/mail. Les lecteurs de messagerie tels que mutt, mail et pine peuvent être utilisés pour envoyer des messages si un serveur SMTP (Simple Mail Transfer Protocol) est actif pour le système local. Il existe deux méthodes de base pour utiliser le courrier. Tout d'abord, vous pouvez entrer le sujet et puis le texte du message. Lorsque vous avez terminé, appuyez sur CTRLD , puis entrez un autre destinataire dans la ligne Cc :, si vous le souhaitez. Lorsque vous appuyez sur ENTRÉE, le message est envoyé et l'utilitaire de messagerie s'arrête et revient à la ligne de commande.
$ mail Michael Objet : Message d'essai Envoyé et reçu Cc : [email protected] $
Alternativement, vous pouvez rediriger un fichier en tant que texte d'un email vers un autre utilisateur. Par exemple, la commande suivante envoie une copie de /etc/hosts à l'utilisateur root, avec le nom de sujet "hosts file" :
$ mail s 'fichier hosts' , >\>, |, 2>, etc.)
La variété de la documentation locale
Bien que l'accès à Internet ne soit pas disponible pendant les examens Red Hat, ce n'est pas grave. Google n'est pas votre seul ami. Linux a une excellente documentation installée avec
Les opérateurs entre parenthèses peuvent rediriger les flux à partir de la sortie de la commande, de l'erreur de commande, des fichiers de données, etc.
la plupart des packages. Des manuels de commande sont également disponibles. L'objectif suivant est simple, car il décrit les commandes et le répertoire associés à la plupart des documentations Linux en ligne.
Gestion des fichiers et des répertoires Alors, quand vous ■ Localisez, lisez et utilisez la documentation système en
arrivez à une ligne de commande, que se passetil ensuite ?
utilisant man, info et les fichiers dans /usr/share/doc
C'est la province de la gestion des fichiers et des répertoires. Avec les commandes associées, vous pouvez naviguer dans l'arborescence des répertoires Linux et effectuer toutes les tâches suggérées dans les objectifs associés : ■ Créer/ supprimer/copier/déplacer des fichiers et des répertoires
Les objectifs incluent un modificateur intéressant à cet objectif : ■ Remarque : Red Hat peut utiliser des applications
pendant l'examen qui ne sont pas inclus dans Red Hat Enterprise Linux dans le but d'évaluer les ■ Créer des liens matériels et logiciels
L'analyse de la sortie texte La plupart des
capacités du candidat à atteindre cet objectif.
La plupart des développeurs Linux suivent les paramètres de base qui viennent d'être décrits pour la
fichiers de configuration Linux sont des fichiers texte.
documentation du système. La « note » de Red Hat
En tant que tel, il est important de comprendre et
signifietelle qu'ils vont « cacher » certaines informations clés
d'analyser le flux de texte tel qu'il est envoyé à travers le
dans une page de manuel ou un fichier dans le répertoire /usr/share/doc ?
shell. À cette fin, des outils comme la commande grep
Le libellé suggère que vous devez être préparé à un tel scénario.
peuvent aider à se concentrer sur les informations nécessaires. De cette façon, vous examinerez comment atteindre l'objectif suivant :
Machine Translated by Google
4 Chapitre 3 : Compétences fondamentales en ligne de commande
L'utilisation des éditeurs de texte
(FQDN) comme server1.example.com et des adresses IP comme 192.168.122.50. La résolution des noms dépend du
Pour configurer Linux, vous devez savoir comment éditer des fichiers texte. Et pour ceux qui découvrent Linux, cela nécessite un paradigme différent. Alors que les traitements de texte comme OpenOffice.org Writer et Microsoft Word peuvent enregistrer des fichiers au format texte, une erreur avec un fichier de configuration de clé peut rendre un système Linux impossible à démarrer. Vous devez donc savoir comment gérer l'objectif suivant. ■ Créer et modifier des fichiers texte
nom d'hôte local, de la base de données locale /etc/hosts des noms d'hôte et des adresses IP, ainsi que des bases de données disponibles des serveurs DNS (Domain Name Service). Il s'agit d'une interprétation de l'objectif RHCSA suivant : ■ Configurer la mise en réseau et la résolution de nom d'hôte de manière statique ou dynamique Lors de la première publication de RHCSA, cela était décrit comme deux objectifs. Bien que ces objectifs ne soient plus officiellement en vigueur, ils fournissent plus d'informations sur ce que signifie configurer la mise en réseau et la résolution
La gestion du réseau
de nom d'hôte :
Prestations de service
Bien qu'il existe d'excellents outils d'interface graphique pour aider à gérer les services réseau, les erreurs sont trop faciles à commettre avec de tels outils. Les outils de ligne de commande peuvent vous aider à comprendre et à gérer les services réseau directement ou via des fichiers de configuration associés. L'objectif associé est : ■ Démarrer, arrêter et vérifier
■ Gérer les périphériques réseau : comprendre les bases de la mise en réseau/routage IP, configurer Adresses IP/route par défaut de manière statique ou dynamique ■ Gérer la résolution de noms : définir
l'état de nom d'hôte, configurez /etc/hosts, configurez pour service réseau Bien sûr, cet objectif nécessite une compréhension de base des réseaux IP.
utiliser le serveur DNS existant Bien que le dépannage du réseau ne fasse plus partie de l'examen Red Hat d'entrée de gamme, la façon dont vous traitez les problèmes liés à la configuration du réseau et à la résolution du nom d'hôte peut vous aider mieux comprendre le
La configuration de la mise en réseau et de la résolution de noms La résolution des noms dépend des bases de données de noms d'hôte ou de noms de domaine pleinement qualifiés
fonctionnement des réseaux.
Machine Translated by Google
Coquillages 5
OBJECTIF DE CERTIFICATION 3.01 Coquilles Un shell est une interface utilisateur. Il est également utilisé comme interpréteur de ligne de commande. Sous Linux, le shell est l'interpréteur qui vous permet d'interagir avec Linux à l'aide de diverses commandes. Avec les bonnes autorisations de fichiers, vous pouvez configurer des commandes dans des scripts à exécuter selon vos besoins, même au milieu de la nuit. Les shells Linux peuvent traiter les commandes dans différentes séquences, selon la façon dont vous gérez l'entrée et la sortie de chaque commande. La façon dont les commandes sont interprétées est en partie déterminée par les variables et les paramètres associés à chaque shell.
Le shell par défaut sous Linux est bash, également connu sous le nom de BourneAgain Shell. L'objectif des commandes dans ce livre est basé sur la façon dont elles sont utilisées dans bash. Cependant, un certain nombre d'autres shells sont disponibles et sont populaires auprès de nombreux utilisateurs. Tant que les RPM appropriés sont installés, les utilisateurs peuvent démarrer n'importe lequel de ces shells. Si vous le souhaitez, vous pouvez modifier le shell par défaut pour des utilisateurs individuels dans le fichier /etc/passwd.
Autres coquillages Avec quatre shells disponibles pour RHEL 6, les utilisateurs ont le choix entre les interpréteurs de ligne de commande. Bien que bash soit la valeur par défaut, les utilisateurs Linux et Unix de longue date peuvent préférer autre chose :
■ bash Le shell BourneAgain par défaut, basé sur l'interpréteur de ligne de commande développé à l'origine par Stephen Bourne. ■ dash Un shell plus simple avec moins de fonctionnalités que bash, mais plus rapide. ■ tcsh Une version améliorée du shell Unix C. ■ zsh Un shell sophistiqué, similaire au shell Korn. Ces shells sont configurés dans le répertoire /bin. Si un utilisateur préfère l'une de ces options comme shell par défaut, il est facile de la modifier. La méthode la plus directe consiste à changer le shell par défaut dans le fichier /etc/passwd. Par exemple, la ligne qui s'applique à mon compte régulier est :
michael:x:1000:1000:Michael Jang:/home/michael:/bin/bash Par exemple, pour remplacer la valeur par défaut par le shell de tableau de bord, remplacez /bin/bash par /bin/dash.
Machine Translated by Google
6 Chapitre 3 : Compétences fondamentales en ligne de commande
Consoles de terminaux Par défaut, six consoles de ligne de commande sont Même si cela devrait être trivial
disponibles sur les systèmes RHEL. Ils sont définis par le
pour la plupart des utilisateurs de Linux, une partie de l'un
fichier startttys.conf dans le répertoire /etc/init.
des objectifs de la RHCSA consiste à "accéder à une invite
Jetez un oeil à ce fichier. Vous verrez que les consoles sont
du shell". Vous devez maintenant savoir comment configurer
définies pour les niveaux d'exécution 2, 3, 4 et 5. Les consoles
l'accès aux différentes invites du shell.
actives sont définies en tant que fichiers de périphérique /dev/ tty1 à /dev/tty6. Lorsqu'une interface graphique est configurée, elle prend /dev/tty1. Il est possible de configurer plus de
consoles virtuelles, limitées par celles autorisées pour l'utilisateur administratif root dans le fichier /etc/securetty.
Normalement, pour passer d'une console à l'autre, appuyez sur ALT et la touche de fonction associée avec la console. Par exemple, la combinaison de touches ALTF2 se déplace vers la deuxième console. Cependant, dans l'interface graphique RHEL, la combinaison de touches ALTF2 est utilisée pour démarrer l'outil Exécuter l'application ; par conséquent, vous devrez appuyer sur CTRLALTF2 pour passer à cette deuxième console virtuelle. Lors d'une connexion à la console texte, vous verrez l'invite suivante, qui dépend un peu de la version de RHEL, du numéro de version du noyau et du nom d'hôte du système :
Red Hat Enterprise Linux version 6.0 (Santiago) Noyau 2.6.3271.el6.x86_64 sur x86_64 connexion serveur1 : La connexion graphique, qui nécessite l'installation du gestionnaire d'affichage GNOME (GDM), est plus intuitive, comme le montre la figure 31.
Interfaces du shell GUI Une fois connecté à l'interface graphique, l'accès au shell bash est facile. Si vous êtes dans l'environnement de bureau GNOME par défaut, cliquez sur Applications | Outils système | Terminal. Traditionnellement, les administrateurs travaillaient depuis la console. Mais dans de nombreux cas, travailler la ligne de commande à partir de l'interface graphique peut être utile, en particulier avec les consoles qui peuvent être placées côte à côte. Un clic droit sur un écran de terminal GUI prend en charge l'ouverture de terminaux supplémentaires dans différentes fenêtres ou dans des onglets. Il prend également en charge le copiercoller au besoin. Les captures d'écran de la ligne de commande prises pour ce livre sont basées sur l'interface graphique basée sur la ligne de commande, en partie parce que le texte sombre sur un écran blanc est plus facile à lire.
Machine Translated by Google
Coquillages 7
FIGURE 31
Une première console de connexion graphique.
Différences entre les utilisateurs réguliers et administratifs Ce que vous pouvez faire sur la ligne de commande dépend des privilèges associés au compte de connexion. Deux invites de base sont disponibles. Voici un exemple de ce que vous pouvez voir lorsque vous êtes connecté en tant qu'utilisateur standard : [michael@serveur1 ~]$
Notez comment il inclut le nom d'utilisateur, le nom d'hôte du système local, le répertoire courant et une invite $. L'invite $ est la norme pour les utilisateurs réguliers. Comme indiqué dans l'introduction du livre, des exemples de commandes exécutées à partir d'un compte d'utilisateur normal montrent simplement ce qui suit : $
En revanche, jetez un œil à une invite pour l'utilisateur administratif root sur le même système. Cela devrait vous sembler familier. À l'exception du nom du compte, la seule différence cohérente est l'invite. [racine@serveur1 ~]#
Machine Translated by Google
8 Chapitre 3 : Compétences fondamentales en ligne de commande
Ainsi, des exemples de commandes exécutées à partir du compte administrateur racine montrent simplement ce qui suit :
# Outre la propriété et les autorisations, d'autres différences entre les comptes réguliers et administratifs sont abordées au chapitre 8.
Flux de texte et redirection de commande Linux utilise trois flux de données de base. Les données entrent, les données sortent et les erreurs sont envoyées dans une direction différente. Ces flux sont appelés entrée standard (stdin), sortie standard (stdout) et erreur standard (stderr). Normalement, l'entrée provient du clavier et sort à l'écran, tandis que les erreurs sont envoyées à un tampon. Les messages d'erreur sont également envoyés à l'écran (sous forme de flux de texte 2). Dans l'exemple suivant, filename est stdin pour la commande cat :
# nom de fichier chat Lorsque vous exécutez cat filename, le contenu de ce fichier est envoyé à l'écran en tant que sortie standard. Vous pouvez rediriger chacun de ces flux vers ou depuis un fichier. Par exemple, si vous avez un programme nommé base de données et un fichier de données avec beaucoup de données, le contenu de ce fichier de données peut être envoyé au programme de base de données avec une flèche de redirection vers la gauche ( liste de fichiers
Machine Translated by Google
Outils de ligne de commande standard 9
Vous pouvez ajouter une sortie standard à la fin d'un fichier existant avec une double flèche de redirection avec une commande telle que ls >\> filelist. Redirection de commande
Si vous pensez qu'un programme particulier génère des
symboles tels que >, >\>, 2> et | sont associés à
erreurs, redirigez le flux d'erreurs à partir de celuici avec une
l'objectif de « redirection des entrées/sorties » dans
commande comme celleci :
les objectifs de l'examen RHCSA.
# programme 2> liste d'erreurs
OBJECTIF DE CERTIFICATION 3.02
Outils de ligne de commande standard Alors que les nouveaux utilisateurs de Linux peuvent préférer utiliser l'interface graphique, le moyen le plus efficace d'administrer Linux est à partir de l'interface de ligne de commande. Bien que d'excellents outils GUI soient disponibles, l'aspect et la convivialité de ces outils varient considérablement selon la distribution. En revanche, si vous connaissez les outils de ligne de commande standard, vous pourrez vous repérer dans toutes les distributions Linux.
Deux groupes de commandes de base sont utilisés pour gérer les fichiers Linux. Un groupe vous aide à parcourir les fichiers et répertoires Linux. L'autre groupe fait quelque chose de créatif avec les fichiers. N'oubliez pas que dans toute opération de fichier Linux, vous pouvez tirer parti de l'HISTORIQUE (ceci est en majuscule car il s'agit d'une variable d'environnement standard) des commandes précédentes, ainsi que des caractéristiques de complétion de commande, qui vous permettent d'utiliser la touche TAB presque comme un joker pour compléter une commande ou un nom de fichier, ou vous donner les options disponibles en termes de chemin absolu.
Presque toutes les commandes Linux incluent commutateurs, des options qui vous permettent d'en faire plus. Cette section ne couvre que les
Peu sont couverts dans ce chapitre. Si vous êtes moins familier
commandes les plus élémentaires disponibles sous Linux. Il
avec l'une de ces commandes, utilisez leurs pages de manuel.
ne décrit que quelques fonctionnalités de chaque commande.
Étudiez les interrupteurs. Essayezles!
Néanmoins, il vous permet « d'émettre des commandes avec
Ce n'est qu'avec de la pratique, de la pratique et encore de la
une syntaxe correcte », comme décrit dans les objectifs RHCSA.
pratique que vous pourrez vraiment comprendre le pouvoir de certaines de ces commandes.
Machine Translated by Google
10 Chapitre 3 : Compétences fondamentales en ligne de commande
Concepts de fichiers et de répertoires Comme indiqué précédemment, tout sous Linux peut être réduit à un fichier. Les répertoires sont des types spéciaux de fichiers qui servent de conteneurs pour d'autres fichiers. Pour naviguer et trouver des fichiers importants, vous avez besoin de quelques concepts de base pour vous dire où vous êtes et comment vous déplacer d'un répertoire à l'autre. La commande est pwd, une variable qui mène toujours au répertoire personnel d'un utilisateur est le tilde (~), et le concept qui décrit où vous vous trouvez dans l'arborescence des répertoires Linux est le chemin. Les répertoires recherchés lorsqu'une commande est saisie, qui est basée sur la variable d'environnement connue sous le nom de PATH, sont étroitement liés. Une fois ces concepts compris, vous pouvez naviguer entre les répertoires avec la commande cd.
pwd Dans l'interface de ligne de commande, le répertoire courant peut se trouver soit dans le répertoire racine (/) de niveau supérieur, soit dans un sousrépertoire. La commande pwd identifie le répertoire courant. Essaye le. Cela vous donnera un nom de répertoire relatif au répertoire racine de niveau supérieur (/). Avec ces informations en main, vous pouvez vous déplacer vers un autre répertoire si nécessaire. Incidemment, pwd est l'abréviation de répertoire de travail d'impression (qui n'a rien à voir avec les imprimantes modernes, mais respecte l'époque où la sortie était imprimée sur un télétype). Par exemple, lorsque j'exécute cette commande dans mon répertoire personnel, j'obtiens le résultat suivant :
/accueil/michael
Le Tildé (~) Lors d'une connexion standard, chaque utilisateur Linux est dirigé vers un répertoire personnel. Le tilde (~) peut être utilisé pour représenter le répertoire personnel de tout utilisateur actuellement actif. Par exemple, lorsque l'utilisateur john se connecte, il est redirigé vers son répertoire personnel, /home/john. En revanche, le répertoire personnel de l'utilisateur administratif root est /root. Ainsi, l'effet de la commande cd ~ dépend de votre nom d'utilisateur. Par exemple, si vous êtes connecté en tant qu'utilisateur mj, la commande cd ~ accède au répertoire /home/mj. Si vous êtes connecté en tant qu'utilisateur root, cette commande accède au répertoire /root. Vous pouvez répertorier le contenu de votre répertoire personnel depuis n'importe où dans l'arborescence des répertoires avec la commande ls ~. Les commandes cd et ls sont décrites brièvement. Lorsque je me connecte en tant qu'utilisateur administratif root et que j'exécute la commande ls, je vois :
anacondaks.cfg install.log install.log.syslog
Machine Translated by Google
Outils de ligne de commande standard 11
Incidemment, ces fichiers décrivent ce qui s'est passé pendant le processus d'installation, les packages qui ont été installés et les utilisateurs et groupes ajoutés au système local. La commande anacondaks.cfg est importante pour les installations Kickstart automatisées, comme décrit au Chapitre 2.
Chemins de répertoire Il existe deux concepts de chemin que vous devez connaître lorsque vous travaillez avec des répertoires Linux : les chemins absolus et les chemins relatifs. Un chemin absolu décrit la structure complète du répertoire en termes de répertoire de niveau supérieur, racine (/). Un chemin relatif est basé sur le répertoire courant. Les chemins relatifs n'incluent pas la barre oblique devant. La différence entre un chemin absolu et un chemin relatif est importante. Surtout lors de la création d'un script, les chemins absolus sont essentiels. Sinon, les scripts exécutés à partir d'autres répertoires peuvent entraîner des conséquences imprévues. Par exemple, supposons que vous vous trouviez dans le répertoire racine de niveau supérieur et que vous ayez sauvegardé le répertoire /home à l'aide du chemin relatif. Si vous vous trouvez dans le répertoire /home lors de la restauration de cette sauvegarde, les fichiers de l'utilisateur michael seront restaurés dans le répertoire /home/home/michael.
En revanche, si le répertoire /home a été sauvegardé en utilisant le chemin absolu, le répertoire courant n'a pas d'importance lors de la restauration de ces fichiers. Cette sauvegarde sera restaurée dans les répertoires corrects.
Chemins d'accès d'environnement Strictement parlant, lors de l'exécution d'une commande, vous devez citer le chemin d'accès complet à cette commande. Par exemple, étant donné que la commande ls se trouve dans le répertoire /bin, les utilisateurs doivent en fait exécuter la commande /bin/ls pour répertorier les fichiers dans le répertoire actuel. Avec l'avantage du PATH, une variable d'environnement, ce n'est pas nécessaire. Le shell bash recherche automatiquement dans les répertoires répertoriés dans le PATH d'un utilisateur la commande que l'utilisateur vient de taper sur la ligne de commande. Les variables d'environnement sont constantes d'une console à l'autre. Pour déterminer le PATH du compte utilisateur actuel, exécutez la commande echo $PATH. Vous devriez voir une série de répertoires dans la sortie. Les différences entre le PATH pour un utilisateur standard et celui pour un utilisateur root se sont réduites dans RHEL 6 :
$ echo $CHEMIN / usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin # echo $CHEMIN / usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
Machine Translated by Google
12 Chapitre 3 : Compétences fondamentales en ligne de commande
Aujourd'hui, les répertoires du PATH pour les utilisateurs administratifs réguliers et root sont essentiellement les mêmes. Mais les différences sont importantes, car les répertoires sont recherchés dans l'ordre. Par exemple, la commande systemconfigkeyboard est disponible dans les répertoires /usr/bin et /usr/sbin. Comme vous pouvez le voir à partir du PATH par défaut pour les utilisateurs réguliers et root, la version exécutée varie en raison des différences dans le PATH. Le PATH est déterminé globalement par les paramètres actuels du fichier /etc/profile. Vous remarquerez peutêtre des différences entre le PATH configuré pour l'ID utilisateur (UID) 0 et tous les autres utilisateurs. L'UID 0 correspond à l'utilisateur administratif racine. Le PATH pour les utilisateurs individuels peut être personnalisé avec une entrée appropriée dans le répertoire personnel de cet utilisateur, dans le fichier caché nommé .profile. cd Il est facile de changer de répertoire sous Linux. Utilisez simplement cd et citez le chemin absolu du répertoire souhaité. Si vous utilisez le chemin relatif, n'oubliez pas que la destination dépend du répertoire de travail actuel. Par défaut, la commande cd navigue d'ellemême vers votre répertoire personnel. Le tildé n'est pas nécessaire pour cette commande.
Listes de fichiers et ls
Maintenant que vous avez passé en revue ces commandes qui peuvent naviguer d'un répertoire à un autre, il est temps de voir quels fichiers existent dans un répertoire. Et c'est la province de la commande ls. La commande Linux ls, avec les bons commutateurs, peut être assez puissante. Le bon type de ls peut tout vous dire sur un fichier, comme la date de création, la date du dernier accès et la taille. Il peut vous aider à organiser la liste des fichiers dans à peu près n'importe quel ordre souhaité. Les variations importantes de cette commande incluent ls a pour révéler les fichiers cachés, ls l pour les listes longues, ls t pour une liste temporelle et ls i pour les numéros d'inode. Vous pouvez combiner des commutateurs ; J'utilise souvent la commande ls ltr pour afficher en dernier les fichiers les plus récemment modifiés. Le commutateur d, lorsqu'il est combiné avec d'autres, peut vous donner plus d'informations sur le répertoire courant. Une fonctionnalité importante qui renvoie les contextes SELinux est la commande ls Z. Prendre un regard sur la sortie de la figure 32. La sortie system_u, object_r, var_t et s0 montre les contextes SELinux actuels des fichiers notés. Pendant l'examen RHCSA (ainsi que RHCE), vous devrez configurer un système avec SELinux activé. À partir du chapitre 4, ce livre explique comment SELinux peut être configuré pour chaque service installé.
Machine Translated by Google
Outils de ligne de commande standard 13
FIGURE 32
SELinux actuel contextes
Commandes de création de fichiers Deux commandes sont utilisées pour créer de nouveaux fichiers : touch et cp. Alternativement, vous pouvez laisser un éditeur de texte tel que vi créer un nouveau fichier. Bien sûr, bien que les commandes ln, mv et rm ne créent pas de fichiers, elles les gèrent de manières connexes.
touche Le moyen le plus simple de créer un nouveau fichier consiste peutêtre à utiliser la commande touch. Par exemple, la commande touch abc crée un fichier vide nommé abc dans le répertoire local. La commande touch est également utilisée pour modifier la date du dernier accès à un fichier. Par exemple, essayez les trois commandes suivantes :
# ls l /etc/passwd # touch / etc/passwd # ls l /etc/passwd Notez la date et l'heure associées à la sortie de chaque commande ls l. La modification est associée à la date et à l'heure actuelles, qui sont associées à la commande date.
Machine Translated by Google
14 Chapitre 3 : Compétences fondamentales en ligne de commande
cp La commande cp (copier) vous permet de prendre le contenu d'un fichier et d'en placer une copie avec le même nom ou un nom différent dans le répertoire de votre choix. Par exemple, la commande cp file1 file2 prend le contenu de file1 et enregistre le contenu dans file2. L'un des dangers de cp est qu'il peut facilement écraser des fichiers dans différents répertoires, sans vous demander de vous assurer que c'est ce que vous vouliez vraiment faire.
La commande cp, avec le commutateur r, prend en charge les modifications récursives. Par exemple, la commande suivante copie tous les sousrépertoires du répertoire indiqué, ainsi que les fichiers associés :
# cp ar /usr/share/doc/. /doc/ m.v. Bien que vous ne puissiez pas renommer un fichier sous Linux, vous pouvez le déplacer. La commande mv place essentiellement une étiquette différente sur un fichier. Par exemple, la commande mv file1 file2 change le nom de file1 en file2. À moins que vous ne déplaciez le fichier vers une autre partition, tout ce qui concerne le fichier, y compris le numéro d'inode, reste le même. La commande mv fonctionne également avec les répertoires.
dans
Les fichiers liés permettent aux utilisateurs de modifier le même fichier à partir de différents répertoires. Lorsque les fichiers liés sont des périphériques, ils peuvent représenter des noms plus courants, tels que /dev/dvd. Les fichiers liés peuvent être matériels ou logiciels. Les liens physiques incluent une copie du fichier. Tant que le lien physique est établi dans le même partition, les numéros d'inode sont identiques. Vous pouvez supprimer un fichier lié en dur dans un répertoire et il existera toujours dans l'autre répertoire. Par exemple, la commande suivante crée un lien physique entre le fichier de configuration Samba réel et smb.conf dans le répertoire local :
# ln /etc/samba/smb.conf smb.conf D'autre part, un lien symbolique sert de redirection ; lorsque vous ouvrez un fichier créé avec un lien symbolique, le lien vous redirige vers le fichier d'origine. Si vous supprimez le fichier d'origine, le fichier est perdu. Tant que le lien symbolique est toujours là, il n'a nulle part où aller. La commande suivante est un exemple de la façon dont vous pouvez créer un fichier lié symbolique :
# ln s /etc/samba/smb.conf smb.conf
Machine Translated by Google
Outils de ligne de commande standard 15
rm La commande rm est quelque peu dangereuse. À la ligne de commande Linux, il n'y a pas de corbeille. Donc, si vous supprimez un fichier avec la commande rm, il est au mieux difficile de récupérer ce fichier. La commande rm est puissante. Par exemple, lorsque j'ai téléchargé les fichiers source du noyau Linux, il incluait plusieurs milliers de fichiers dans le répertoire /root/rpmbuild/BUILD/kernel2.6.3271.1.el6. Comme il n'est pas pratique de supprimer ces fichiers un par un, la commande rm inclut des commutateurs puissants. La commande suivante supprime tous ces fichiers en une seule commande :
# rm rf /root/rpmbuild/BUILD/kernel2.6.3271.1.el6 Le commutateur r fonctionne de manière récursive et le commutateur f annule toutes les précautions de sécurité, comme indiqué dans la sortie de la commande alias pour l'utilisateur administratif root. C'est toujours une commande assez dangereuse, comme une simple erreur de frappe qui met un espace entre la première barre oblique et le nom du répertoire, comme indiqué ici :
# rm rf / root/rpmbuild/BUILD/kernel2.6.3271.1.el6 supprimerait d'abord tous les fichiers en commençant par le répertoire racine de niveau supérieur, avant de rechercher le sousrépertoire root/rpmbuild/BUILD/kernel2.6.3271.1.el6.
Création et suppression de répertoires Les commandes mkdir et rmdir sont utilisées pour créer et supprimer des répertoires. La façon dont ces commandes sont utilisées dépend des concepts déjà discutés de chemins absolus et relatifs. Par exemple, la commande suivante crée le sousrépertoire test dans le répertoire actuel. Si vous êtes actuellement dans le répertoire /home/michael, le chemin complet serait /home/michael/test. # test mkdir Sinon, la commande suivante crée le répertoire /test :
# mkdir/test Si vous le souhaitez, la commande suivante crée une série de répertoires :
# mkdir p /test1/test2/test3
Machine Translated by Google
16 Chapitre 3 : Compétences fondamentales en ligne de commande
Cette commande est équivalente aux commandes suivantes :
# mkdir /test1 # mkdir /test1/test2 # mkdir / test1/test2/test3 A l'inverse, la commande rmdir supprime un répertoire, uniquement s'il est vide. Si vous nettoyez après les commandes mkdir précédentes, le commutateur p est également utile ici. La commande suivante supprime le répertoire et les sousrépertoires notés, tant que tous les répertoires sont autrement vides :
# rmdir p /test1/test2/test3
alias La commande alias peut être utilisée pour simplifier quelques commandes. Pour l'utilisateur administratif root, les alias par défaut offrent un peu de sécurité. Pour voir les alias de l'utilisateur actuel, exécutez la commande alias. La sortie suivante est les alias Red Hat par défaut pour l'utilisateur root :
alias cp='cp i' alias l.='ls d .* color=auto' alias ll='ls l color=auto' alias ls='ls color=auto' alias mv='mv i' alias rm='rm i' alias qui='alias | /usr/bin/which ttyonly readalias showdot showtilde' Certains de ces alias aident à protéger les fichiers clés contre les erreurs. Le commutateur i invite l'utilisateur à confirmer avant qu'un fichier ne soit supprimé ou écrasé avec la commande cp, mv ou rm. Sachez simplement que le commutateur f remplace le i pour les commandes indiquées. Comme suggéré par l'éditeur technique, certains administrateurs définissent un alias différent pour la commande rm : alias rm='mv t ~/.Trash'. Les fichiers de ce répertoire sont comme une corbeille standard. Le répertoire de la corbeille par défaut pour le bureau GNOME se trouve dans le sous répertoire .local/share/Trash/files/ de chaque utilisateur.
Machine Translated by Google
Outils de ligne de commande standard 17
Caractères génériques
Parfois, vous ne connaissez peutêtre pas le nom exact du fichier ou le terme de recherche exact. C'est alors qu'un caractère générique est utile, en particulier avec les commandes décrites tout au long du livre. Trois caractères génériques de base sont présentés dans le Tableau 31.
Les caractères génériques sont parfois connus dans le monde Linux sous le nom de globbing.
Recherches de fichiers
La plupart des utilisateurs qui étudient Linux pendant un certain temps se familiarisent avec les fichiers clés. Par exemple, named.conf est le fichier de configuration de clé pour les serveurs DNS (Domain Name Service) standard, basé sur le Berkeley Internet Name Domain (BIND). Mais peu de gens se souviennent que l'exemple de fichier named.conf, avec toutes sortes d'astuces de configuration utiles, se trouve dans le répertoire /usr/share/doc/bind*/ sample/etc. À cette fin, il existe deux commandes de base pour les recherches de fichiers : rechercher et localiser.
trouver
La commande find recherche dans les répertoires et sousrépertoires le fichier souhaité. Par exemple, si vous souhaitez trouver le répertoire contenant l'exemple de fichier de configuration DNS named.conf, vous pouvez utiliser la commande suivante, qui lancera la recherche dans le répertoire racine :
# find / nom nommé.conf
TABLEAU 31
Description générique *
Les caractères génériques dans le
Coquille
N'importe quel nombre de caractères alphanumériques (ou aucun caractère du tout). Par exemple, la commande ls ab* renverrait les noms de fichiers suivants, en supposant qu'ils existent dans le répertoire courant : ab, abc, abcd.
?
Un seul caractère alphanumérique : Par exemple, le ls ab? renverrait les noms de fichiers suivants, en supposant qu'ils existent dans le répertoire courant : abc, abd, abe.
[]
Une gamme d'options. Par exemple, la commande ls ab[123] renverrait les noms de fichiers suivants, en supposant qu'ils existent dans le répertoire courant : ab1, ab2, ab3. Alternativement, la commande ls ab[XZ] renverrait les noms de fichiers suivants, en supposant qu'ils existent dans le répertoire courant : abX, abY, abZ.
Machine Translated by Google
18 Chapitre 3 : Compétences fondamentales en ligne de commande
Mais la vitesse de cette recherche dépend de la mémoire et de la puissance de traitement disponibles sur le système local. Avec l'avènement des machines virtuelles, cette puissance de traitement peut être relativement faible. Sinon, si vous savez que ce fichier se trouve dans l'arborescence des sousrépertoires /usr, vous pouvez démarrer dans ce répertoire avec la commande suivante :
# trouver /usr nom nommé.conf Cette commande devrait maintenant trouver le fichier souhaité plus rapidement.
Si cela prend trop de temps, RHEL vous permet de configurer une base de données des fichiers et répertoires installés. Les recherches avec la commande de localisation sont presque instantanées. Et les recherches de localisation ne nécessitent pas le nom de fichier complet. L'inconvénient est que la base de données de la commande locate n'est normalement mise à jour qu'une fois par jour, comme documenté dans le script /etc/cron.daily/ mlocate.cron. Comme les tâches quotidiennes ne sont exécutées qu'une fois toutes les 24 heures, ce n'est pas suffisant, en particulier lors d'un examen de 2 heures. Heureusement, le script noté peut être exécuté
Quand j'ai pris Red Hat examens, j'ai exécuté le script mlocate.cron noté pour m'aider à trouver les fichiers nécessaires plus rapidement.
directement à partir de l'interface de ligne de commande, par l'utilisateur administratif root. Tapez simplement le chemin complet du fichier comme s'il s'agissait d'une commande :
# /etc/cron.daily/mlocate.cron
OBJECTIF DE CERTIFICATION 3.03
La gestion des fichiers texte Linux et Unix sont gérés par une série de fichiers texte. Les administrateurs Linux n'utilisent normalement pas d'éditeurs graphiques pour gérer ces fichiers de configuration. Les éditeurs tels que WordPerfect, OpenOffice.org Writer et oui, même Microsoft Word enregistrent normalement les fichiers dans un format binaire ou ajoutent des balises. À moins que les fichiers texte ne soient conservés dans leur format d'origine, sans balises, les modifications apportées peuvent empêcher le démarrage d'un système Linux.
Les commandes Linux ont été configurées pour gérer les fichiers texte comme des flux de données. Vous avez vu des outils tels que des flèches de redirection et des tuyaux. Mais ces données peuvent être accablantes
Machine Translated by Google
La gestion des fichiers texte 19
sans outils capables de trier ces données. Mais avant même que les fichiers ne soient modifiés, il est important de savoir comment lire ces fichiers dans l'interface de ligne de commande.
Commandes pour traiter les flux de texte Auparavant, vous avez passé en revue des commandes telles que cd, ls et pwd qui peuvent vous aider à contourner les fichiers Linux. Avec des commandes telles que rechercher et localiser, vous avez vu comment identifier l'emplacement des fichiers souhaités. Il est maintenant temps de commencer à lire, copier et déplacer les fichiers. La plupart des fichiers de configuration Linux sont des fichiers texte. Les éditeurs Linux sont des éditeurs de texte. Les commandes Linux sont conçues pour lire des fichiers texte. Pour identifier les types de fichiers dans le répertoire courant, essayez la commande file *.
chat La commande la plus basique pour lire des fichiers est cat. La commande cat filename fait défiler le texte dans le fichier de nom de fichier . Il fonctionne également avec plusieurs noms de fichiers ; il concatène les noms de fichiers que vous pourriez lister comme une sortie continue sur votre écran. Vous pouvez rediriger la sortie vers le nom de fichier de votre choix, comme décrit dans la section « Redirection de commande » qui suit.
de moins en moins Les fichiers plus volumineux exigent une commande qui peut vous aider à faire défiler le texte du fichier à votre guise. Linux a deux de ces commandes : more et less. Avec la commande more filename , vous pouvez faire défiler le texte d'un fichier, du début à la fin, un écran à la fois. Avec la commande less filename , vous pouvez faire défiler dans les deux sens le même texte avec les touches PAGE UP et PAGE DOWN . Les deux commandes prennent en charge les recherches de style vi.
Comme de moins en moins de commandes ne modifient pas les fichiers, elles constituent un excellent moyen de faire défiler et de rechercher des éléments dans un fichier texte volumineux tel qu'un journal des erreurs. Par exemple, pour effectuer une recherche dans le fichier de base /var/log/messages, exécutez la commande suivante :
# moins de /var/log/messages Vous pourrez ensuite faire défiler le fichier journal de haut en bas pour obtenir des informations importantes. Vous pouvez ensuite utiliser la barre oblique et le point d'interrogation pour rechercher dans le fichier. Par exemple, une fois que vous avez exécuté la commande qui vient d'être affichée, vous serez redirigé vers un écran similaire à celui illustré à la Figure 33.
Machine Translated by Google
20 Chapitre 3 : Compétences fondamentales en ligne de commande
FIGURE 33 Le moins pager et /var/log/ messages.
Par exemple, pour rechercher dans le fichier le terme "tunneling IPv4", saisissez ce qui suit dans le téléavertisseur :
/Tunnelisation IPv4 Pour rechercher dans le sens inverse, substituez un ? pour le /. La commande less a une fonctionnalité supplémentaire non disponible pour les commandes comme more et chat; il peut lire des fichiers texte compressés au format Gzip, normalement affichés avec l'extension .gz. Par exemple, les pages de manuel associées à de nombreuses commandes standard exécutées dans le shell se trouvent dans le répertoire /usr/share/man/man1. Tous les fichiers de ce répertoire sont compressés au format .gz. Néanmoins, la commande less peut lire ces fichiers, sans les décompresser.
Et cela indique le fonctionnement de la commande man. Autrement dit, ces deux les commandes sont fonctionnellement équivalentes :
# homme chat # moins /usr/share/man/man1/cat.1.gz
Machine Translated by Google
La gestion des fichiers texte 21
tête et queue Les commandes head et tail sont des commandes distinctes qui fonctionnent essentiellement de la même manière. Par défaut, la commande head filename regarde les 10 premières lignes d'un fichier ; la commande tail filename examine les 10 dernières lignes d'un fichier. Vous pouvez spécifier le nombre de lignes affichées avec le commutateur nxy . N'oubliez pas d'éviter l'espace lorsque vous spécifiez le nombre de lignes ; par exemple, la commande tail n15 /etc/passwd répertorie les 15 dernières lignes du fichier /etc/passwd. La commande tail peut être particulièrement utile pour les problèmes en cours. Par exemple, s'il y a un problème persistant, la commande suivante surveille le fichier noté pour les tentatives de connexion :
# tail f /var/log/secure
Commandes pour traiter les flux de texte Un flux de texte est le mouvement de données. Par exemple, la commande cat filename transmet les données du fichier filename à l'écran. Lorsque ces fichiers deviennent volumineux, il est pratique d'avoir des commandes qui peuvent filtrer et autrement traiter ces flux de texte. À cette fin, Linux inclut des commandes simples pour vous aider à rechercher, vérifier ou trier le contenu d'un fichier. Et il existe des fichiers spéciaux qui en contiennent d'autres ; certains de ces fichiers conteneurs sont connus familièrement sous le nom de "tarballs". Les archives tar sont un moyen courant de distribuer des packages Linux. Ils sont normalement distribués dans un format compressé, avec une extension de fichier .tar.gz ou .tgz, regroupés sous forme de package dans un seul fichier. À cet égard, ils sont similaires aux fichiers zip compressés de style Microsoft.
trier Vous pouvez trier le contenu d'un fichier de plusieurs façons. Par défaut, la commande de tri trie le contenu par ordre alphabétique en fonction de la première lettre de chaque ligne. Par exemple, la commande sort /etc/passwd trierait tous les utilisateurs (y compris ceux associés à des services spécifiques et autres) par nom d'utilisateur.
Machine Translated by Google
22 Chapitre 3 : Compétences fondamentales en ligne de commande
grep et egrep La commande grep utilise un terme de recherche pour parcourir un fichier. Il renvoie la ligne complète qui contient le terme de recherche. Par exemple, grep 'Michael Jang' /etc/passwd recherche le nom de cet auteur dans le fichier /etc/passwd.
La commande egrep est plus indulgente ; il vous permet d'utiliser des caractères inhabituels dans votre recherche, notamment +, ?, |, (, et ). Bien qu'il soit possible de configurer grep pour rechercher ces caractères à l'aide de la barre oblique inverse, la commande peut être délicate.
différence
Une option utile pour trouver la différence entre les fichiers est la commande diff. Si vous venez d'utiliser un outil tel que l'outil Connexions réseau décrit plus loin dans ce chapitre, il modifiera un fichier tel que ifcfgeth0 dans le répertoire /etc/sysconfig/networkscripts. Si vous avez sauvegardé ce fichier ifcfgeth0, la commande diff peut identifier les différences entre les deux fichiers. Par exemple, la commande suivante identifie les différences entre le fichier ifcfgeth0 dans les répertoires de scripts /root et /etc/sysconfig/network :
# diff /root/ifcfgeth0 /etc/sysconfig/networkscripts/ifcfgeth0 Ainsi, si vous avez sauvegardé le fichier ifcfgeth0 dans le répertoire /root, la commande affichée peut aider à identifier les modifications apportées par les outils de configuration.
toilettes
La commande wc, abréviation de nombre de mots, peut renvoyer le nombre de lignes, de mots et de caractères dans un fichier. Les options de toilettes sont simples ; par exemple, wc w filename renvoie le nombre de mots dans ce fichier.
sed
La commande sed, abréviation de stream editor, vous permet de rechercher et de modifier des mots spécifiés ou même des flux de texte dans un fichier. Par exemple, la commande suivante remplace la première instance du mot « Windows » par « Linux » dans chaque ligne du fichier opsys, et écrit le résultat dans le fichier newopsys :
# sed 's/Windows/Linux' opsys > newopsys
Machine Translated by Google
La gestion des fichiers texte 23
Cependant, cela peut ne pas suffire. S'il y a plus d'une instance de "Windows" dans une ligne du fichier opsys, cela ne change pas la deuxième instance de ce mot. Mais vous pouvez résoudre ce problème en ajoutant un suffixe "global":
# sed 's/Windows/Linux/g' opsys > newopsys L'exemple suivant permettrait de s'assurer que tous les partages Samba configurés avec la directive writable = yes sont inversés :
# sed 's/writable = yes/writable = no/g' /etc/samba/smb.conf > ~/smb.conf Bien entendu, vous devez ensuite examiner les résultats dans le fichier /root/smb.conf avant d'écraser le fichier /etc/samba/smb.conf d'origine.
awk La commande awk, du nom de ses développeurs (Aho, Weinberger et Kernighan), est davantage un utilitaire de manipulation de base de données. Il peut identifier les lignes avec un motclé et lire le texte d'une colonne spécifiée dans cette ligne. Un exemple courant est avec le fichier /etc/passwd. Par exemple, la commande suivante lira le nom d'utilisateur de chaque utilisateur avec une liste de "mike":
# awk '/mike/ {print $1}' /etc/passwd
Modifier les fichiers texte sur la console La version originale des objectifs RHCSA spécifiait l'utilisation de l'éditeur vim. À proprement parler, peu importe l'éditeur de texte que vous utilisez pour modifier les fichiers texte. Cependant, je pense que vous devez savoir comment utiliser l'éditeur vim, et apparemment certains chez Red Hat sont d'accord. L'éditeur vim est l'abréviation de vi, amélioré. Une fois installé, vous pouvez également démarrer l'éditeur vim avec la commande vi. Ciaprès, je désignerai cet éditeur de texte par vi. Je crois que chaque administrateur a besoin d'au moins une connaissance de base de vi. Bien qu'emacs puisse être plus populaire et flexible, vi peut vous aider à sauver un système défectueux. Si jamais vous devez restaurer un fichier de configuration critique à l'aide d'un support de démarrage d'urgence, vi peut être le seul éditeur dont vous disposerez. Alors que RHEL 6 inclut également l'accès à l'éditeur nano plus intuitif, une connaissance des commandes vi peut vous aider à identifier plus rapidement les sections clés des pages de manuel et d'autres fichiers texte. Alors que le support de secours RHEL prend en charge davantage d'éditeurs basés sur la console, je décris vi ici simplement parce que c'est l'éditeur que je connais le mieux.
Machine Translated by Google
24 Chapitre 3 : Compétences fondamentales en ligne de commande
Vous devez savoir utiliser les deux modes de base de vi : commande et insertion. Lorsque vous utilisez vi pour ouvrir un fichier, il s'ouvre en mode commande. Certaines commandes démarrent le mode insertion. L'ouverture d'un fichier est simple : utilisez simplement la commande vi filename . Par défaut, cela démarre vi en mode commande. Un exemple de vi avec le fichier /etc/nsswitch. conf est illustré à la Figure 34. Ce qui suit n'est que la plus brève des introductions à l'éditeur vi. Pour plus d'informations, il existe un certain nombre de livres disponibles, ainsi qu'un manuel complet formaté comme un HOWTO disponible sur le projet de documentation Linux à l'adresse www. tldp.org. Alternativement, un didacticiel est disponible via la commande vimtutor.
vi Mode commande En mode commande, vous pouvez tout faire sur un fichier texte sauf le modifier. Les options en mode commande sont larges et variées, et elles font l'objet de nombreux textes de la longueur d'un livre. En résumé, les options du mode de commande vi se répartissent en sept catégories : ■ Ouvrir Pour ouvrir un fichier dans l'éditeur vi à partir de l'interface de ligne de commande, exécutez
la commande de nom de fichier vi . ■ Rechercher Pour une recherche vers l'avant, commencez par une barre oblique inverse (/), suivie du terme de recherche. N'oubliez pas que Linux est sensible à la casse, donc si vous recherchez
FIGURE 34
L'éditeur vi avec /etc/nsswitch. conf.
Machine Translated by Google
La gestion des fichiers texte 25
"Michael" dans /etc/passwd, utilisez la commande /Michael (pas /michael). Pour une recherche inversée, commencez par un point d'interrogation (?). ■ Ecrire Pour enregistrer vos modifications, utilisez la commande w. Vous pouvez combiner des commandes ; par exemple, :wq écrit le fichier et quitte vi. ■ Fermer Pour quitter vi, utilisez la commande :q. ■ Abandonner Si vous souhaitez abandonner des modifications, utilisez la commande :q! commande. ■ Modifier Vous pouvez utiliser un certain nombre de commandes pour modifier des fichiers via vi, comme
comme x, qui supprime le caractère actuellement en surbrillance, dw, qui supprime le mot actuellement en surbrillance, et dd, qui supprime la ligne en cours. N'oubliez pas que p place le texte d'un tampon et U restaure le texte d'une modification précédente.
■ Insérer Un certain nombre de commandes vous permettent de démarrer le mode insertion, y compris i pour commencer à insérer du texte à la position actuelle de l'éditeur, et o pour ouvrir une nouvelle ligne juste en dessous de la position actuelle du curseur.
Édition de texte de base Dans les systèmes Linux modernes, l'édition de fichiers avec vi est facile. Utilisez simplement les touches de navigation normales (touches fléchées, PAGE UP et PAGE DOWN), puis l'une des commandes de base telles que i ou o pour démarrer le mode d'insertion de vi, et tapez vos modifications directement dans le fichier. Lorsque vous avez terminé avec le mode insertion, appuyez sur la touche ESC pour revenir au mode commande. Vous pouvez ensuite enregistrer vos modifications ou les abandonner et quitter vi. Il existe plusieurs variantes spécialisées de la commande vi . Trois sont vipw, vigw et visudo, qui éditent respectivement /etc/passwd, /etc/group et /etc/sudoers. Les commandes vipw s et vigr s modifient les fichiers /etc/shadow et /etc/gshadow.
EXERCICE 31 Utiliser vi pour créer un nouvel utilisateur Dans cet exercice, vous allez créer un nouvel utilisateur en modifiant le fichier /etc/passwd avec l'éditeur de texte vi. Bien qu'il existe d'autres façons de créer de nouveaux utilisateurs Linux, cet exercice vous aide à vérifier vos compétences avec vi et sur l'interface de ligne de commande. 1. Ouvrez une interface de ligne de commande Linux. Connectezvous en tant qu'utilisateur root et tapez la commande vipw. Cette commande utilise l'éditeur vi pour ouvrir /etc/passwd.
Machine Translated by Google
26 Chapitre 3 : Compétences fondamentales en ligne de commande
2. Naviguez jusqu'à la fin du fichier. Comme vous devez déjà le savoir, il existe plusieurs façons de le faire en mode commande, notamment la touche DOWN ARROW , la touche PAGE DOWN , la commande G ou même la touche K. 3. Identifiez une ligne associée à un utilisateur régulier. Si vous venez de créer un nouvel utilisateur, il devrait s'agir de la dernière ligne du fichier, avec des nombres comme 500 et plus. Si un utilisateur régulier n'existe pas encore, identifiez la première ligne, qui doit être associée à l'utilisateur administratif racine, avec le chiffre 0 dans la troisième et la quatrième colonne.
4. Faites une copie de cette ligne. Si vous êtes déjà à l'aise avec vi, sachez que vous pouvez copier une ligne entière dans le tampon avec la commande yy. Cela "tire" la ligne dans le tampon. Vous pouvez ensuite restaurer ou mettre cette ligne autant de fois que vous le souhaitez avec la commande p. 5. Modifiez le nom d'utilisateur, l'ID utilisateur, l'ID de groupe, le commentaire utilisateur et le répertoire personnel du nouvel utilisateur. Pour plus d'informations sur chaque entrée, reportez vous au chapitre 8. Par exemple, dans l'illustration suivante, cela correspond à tweedle, 501, 501, Tweedle Dee et /home/tweedle. Assurezvous que le nom d'utilisateur correspond également au répertoire personnel.
6. Revenez au mode commande en appuyant sur la touche ESC . Enregistrez le fichier avec la commande :w, puis quittez avec la commande :q. (Vous pouvez combiner les deux
Machine Translated by Google
La gestion des fichiers texte 27
commandes dans vi ; la prochaine fois que vous apporterez une modification et que vous souhaitez enregistrer et quitter, exécutez la commande :wq.) 7. Vous devriez voir le message suivant :
Vous avez modifié /etc/passwd. Vous devrez peutêtre modifier /etc/shadow pour plus de cohérence. Veuillez utiliser la commande 'vipw s' pour le faire. Ce message peut être ignoré, car l'étape suivante ajoute les informations appropriées au fichier /etc/ shadow. Cependant, vous n'avez pas besoin de modifier /etc/shadow directement.
8. En tant qu'utilisateur racine, exécutez la commande passwd newuser . Attribuez le mot de passe de votre choix au nouvel utilisateur. Pour cet exemple, le nouvel utilisateur est tweedle. 9. Le processus n'est pas encore terminé ; chaque utilisateur a besoin d'un groupe. À cette fin, exécutez la commande vigr. Répétez les étapes précédentes qui ont copié une ligne appropriée à partir de la fin du fichier. Notez que les noms de groupe et les numéros d'identification de groupe sont normalement identiques à leurs noms d'utilisateur et numéros d'identification d'utilisateur. 10. Tout ce que vous devez changer pour la nouvelle entrée est le nom du groupe et le numéro d'identification du groupe. Sur la base des informations présentées dans l'illustration précédente, ce serait un nom de groupe de tweedle et un numéro de groupe de 501. 11. Répétez la commande :wq susmentionnée pour fermer vi et enregistrer la modification. En fait, vous recevrez un message suggérant que le fichier est en lecture seule. Vous devez exécuter le :wq! dans ce cas pour écrire dans ce fichier "en lecture seule", en remplaçant les paramètres actuels.
12. Faites attention au message suivant :
Vous avez modifié /etc/group. Vous devrez peutêtre modifier /etc/gshadow pour plus de cohérence. Veuillez utiliser la commande 'vigr s' pour le faire. 13. Comme suggéré, exécutez la commande vigr s pour ouvrir le fichier /etc/gshadow. Vous remarquerez qu'il y a moins d'informations dans ce fichier. Une fois qu'une copie est faite d'une ligne appropriée, tout ce que vous aurez à faire est de changer le nom du groupe. 14. Répétez ce qui précède :wq! commande pour fermer vi et enregistrer la modification. 15. Des étapes supplémentaires sont nécessaires pour configurer correctement le nouvel utilisateur, lié au répertoire personnel de cet utilisateur et aux fichiers standard du répertoire /etc/skel. Pour plus d'informations, reportezvous au chapitre 8.
Machine Translated by Google
28 Chapitre 3 : Compétences fondamentales en ligne de commande
Si vous n'aimez pas vi Par défaut, lorsque vous exécutez des commandes telles que edquota et crontab, les fichiers de configuration de quota et de tâche cron associés sont ouverts dans l'éditeur vi. Si vous détestez absolument vi, l'éditeur par défaut peut être changé avec la commande suivante :
# export EDITOR=/bin/nano Pour modifier l'éditeur par défaut pour tous les utilisateurs, ajoutez la ligne précédente au fichier de configuration de l'environnement /etc/. Vous n'avez absolument pas besoin d'utiliser l'éditeur vi pour modifier / etc/environment ; à la place, ce qui suit ajoute la commande notée à la fin du fichier /etc/environment :
# echo 'export EDITOR=/bin/nano' >\> /etc/environment Comme l'éditeur nano est assez intuitif, comme le montre la figure 35, les instructions ne seront pas être fournis dans ce livre. Le manuel complet est disponible sur www.nanoeditor.org/dist/v2.1/nano.html.
Des modifications similaires peuvent être apportées si vous préférez un éditeur différent tel que emacs, pico ou joe.
FIGURE 35
L'éditeur nano avec /etc/ nsswitch.conf
Machine Translated by Google
Documentation locale en ligne 29
Modifier les fichiers texte dans l'interface graphique
Sans aucun doute, les examens Red Hat sont devenus plus conviviaux envers l'interface graphique. L'éditeur de texte gedit a même été inclus pendant une courte période dans les objectifs RHCSA. Les administrateurs Linux plus traditionnels ont peutêtre été horrifiés. (L'éditeur gedit a depuis été supprimé des objectifs.) L'éditeur de texte gedit n'est pas installé par défaut. Heureusement, l'installation est facile avec la commande yum install gedit. Une fois installé, vous pouvez le démarrer en cliquant sur Applications | Accessoires | Éditeur de texte gedit. Comme il s'agit d'un éditeur de texte GUI intuitif, son utilisation est triviale. Ne soyez pas obsédé par les éditeurs ; ce ne sont que des outils pour les examens et dans la vraie vie. Toutefois, si vous modifiez des fichiers de configuration sur des systèmes distants, il est possible que vous n'aurez pas accès à gedit sur ce système, surtout si l'interface graphique n'y a pas été installée. Bien sûr, vous pouvez installer l'interface graphique sur n'importe quel système Red Hat. Mais de nombreux administrateurs configurent des machines virtuelles sans l'interface graphique pour économiser de l'espace et réduire les risques de sécurité.
OBJECTIF DE CERTIFICATION 3.04
Documentation locale en ligne Bien qu'aucun accès à Internet ne soit autorisé pendant les examens Red Hat, de nombreuses aides sont disponibles en ligne, déjà installées sur un système RHEL 6. Cela commence par les pages de manuel, qui documentent les options et les paramètres associés à la plupart des commandes et à de nombreux fichiers de configuration. Il continue avec les documents d'information. Bien que moins de commandes et de fichiers contiennent de tels documents, lorsqu'ils sont disponibles, ils fournissent encore plus d'informations.
Lorsque Red Hat dit qu'il "peut
capacités du candidat » en ce qui concerne la
utiliser des applications pendant l'examen qui ne sont
documentation, je ne serais pas choqué de trouver des
pas incluses dans Red Hat Enterprise
informations importantes sur l'examen dans le répertoire /
Linux dans le but d'évaluer
usr/share/doc.
Machine Translated by Google
30 Chapitre 3 : Compétences fondamentales en ligne de commande
De nombreux packages incluent une documentation complète dans le répertoire /usr/ share/doc. Appliquez simplement la commande ls à ce répertoire. Chaque sousrépertoire contient des informations sur les capacités de chaque package associé. Bien sûr, il y a plus.
Quand vous avez besoin d'aide La première chose que je fais quand j'ai besoin d'aide avec une commande est de l'exécuter toute seule. Si plus d'informations sont requises, la commande invite avec une demande d'informations supplémentaires, y compris une variété d'options. À titre d'exemple, examinez le résultat de la commande suivante :
$ miam Si cette approche ne fonctionne pas, une aide est généralement disponible avec les commutateurs h ou help. Parfois, une erreur conduit à des indices ; la sortie de la commande suivante suggère des commutateurs légaux vers la commande cd :
$ cd h bash : cd : h : option invalide cd : utilisation : cd [L|P] [dir] FIGURE 36
Aide au processus
Gestion
Machine Translated by Google
Documentation locale en ligne 31
Parfois, le commutateur h est plus utile ; jetez un oeil à la sortie de la commande fdisk h. Mais le commutateur h ne fonctionne pas toujours ; parfois le commutateur help est plus utile. Regardez la figure 36 comme exemple, qui affiche la sortie de la commande ps help.
Une variété de pages de manuel Peu de gens peuvent se souvenir de chaque commutateur à chaque commande. C'est l'une des raisons pour lesquelles la documentation des commandes est si importante. La plupart des commandes Linux sont documentées dans un format connu sous le nom de page de manuel. Si vous exécutez la commande man seule, RHEL renvoie le message suivant :
Quelle page de manuel voulezvous ? Par exemple, disons que vous devez configurer un volume physique mais que vous avez oublié le commutateurs associés à la commande lvexpand. Pour parcourir la page de manuel de cette commande, exécutez man lvexpand. Comme pour beaucoup d'autres commandes, il y a une section EXAMPLES, comme celle illustrée à la figure 37. Si vous avez déjà exécuté la commande lvexpand, cette section peut vous aider à vous rafraîchir la mémoire.
FIGURE 37 Exemples de l'homme lvexpand page
Machine Translated by Google
32 Chapitre 3 : Compétences fondamentales en ligne de commande
Ces pages de manuel sont disponibles pour la plupart des fichiers de configuration et des commandes. Cependant, il peut y en avoir plus. Et si vous n'êtes pas sûr du nom de la page de manuel ? Dans ce cas, les commandes whatis et apropos peuvent aider. Par exemple, pour trouver les pages de manuel avec "nfs" dans le titre, exécutez la commande suivante :
# qu'estce que nfs Si vous souhaitez rechercher les pages de manuel avec nfs dans la description, la commande suivante peut identifier les commandes associées.
# à propos de nfs Cependant, si vous venez d'installer un service tel que Samba, associé à l'implémentation Linux du réseau Microsoft, des commandes telles que whatis smb.conf et apropos smbpasswd ne fourniront probablement aucune information. Ces commandes fonctionnent à partir d'une base de données dans le répertoire /var/cache/man. Vous pouvez mettre à jour cette base de données avec le travail makewhatis.cron dans le répertoire /etc/cron.daily. Comme ce script est déjà exécutable, la commande suivante met à jour la base de données des pages de manuel :
# /etc/cron.daily/makewhatis.cron Si vous rencontrez une situation, comme lors d'un examen Red Hat, où le man n'est pas installée, il y a au moins trois raisons possibles. Le progiciel fonctionnel associé n'est peutêtre pas installé. Le package RPM nommé manpages peut également ne pas être installé. Dans certains cas, il existe un package spécifiquement dédié à la documentation qui doit être installé séparément. Par exemple, il existe un package systemconfigusersdoc qui inclut une documentation basée sur l'interface graphique pour l'outil de configuration User Manager. Il existe un package httpdmanual séparé installé séparément du serveur Web Apache.
Dans certains cas, plusieurs pages de manuel sont disponibles. Examinez la sortie suivante de la commande whatis smbpasswd :
smbpasswd
(5) Le fichier de mot de passe crypté Samba (8) modifier le mot
smbpasswd
de passe SMB d'un utilisateur
Les numéros (5) et (8) sont associés à différentes sections des pages de manuel. Si vous êtes intéressé par les détails, ils sont affichés dans la sortie de la commande man man. La page de manuel affichée par défaut est la commande. Dans ce cas, si vous souhaitez consulter la page de manuel du fichier de mots de passe chiffrés, exécutez la commande suivante :
$ homme 5 smbpasswd Pour quitter une page de manuel, appuyez sur q.
Machine Translated by Google
Documentation locale en ligne 33
Les manuels d'information La liste des manuels d'information disponibles est quelque peu limitée. Pour une liste complète, exécutez la commande ls /usr/ share/info. Lorsqu'un manuel d'information n'est pas disponible, une demande renvoie par défaut à la page de manuel associée.
Pour en savoir plus sur le shell bash, exécutez la commande info bash. Comme le montre la Figure 38, les manuels d'information sont organisés en sections. Pour accéder à une section, déplacez le curseur sur l'entrée avec un astérisque et appuyez sur ENTER. Pour quitter une page d'informations, appuyez sur q.
Documentation détaillée dans /usr/share/doc La liste de la documentation disponible dans le répertoire /usr/share/doc semble impressionnante. Mais la qualité de la documentation dépend du travail de ses développeurs. Les sousrépertoires incluent le nom et le numéro de version du package installé. Certains de ces sousrépertoires incluent un seul fichier, normalement nommé COPYING, qui spécifie la licence sous laquelle le logiciel donné a été publié. Par exemple, la plupart des packages systemconfig* incluent une copie de la GNU GPL dans le fichier COPYING du répertoire /usr/share/doc associé.
FIGURE 38 Un exemple de manuel d'information.
Machine Translated by Google
34 Chapitre 3 : Compétences fondamentales en ligne de commande
Parfois, le répertoire de documentation contient des exemples utiles. Par exemple, le sousrépertoire sudo*/ inclut des exemples de fichiers de configuration et des directives pour le contrôle administratif, ce qui peut être utile lors de la configuration d'administrateurs avec différents privilèges. Parfois, la documentation comprend des manuels entiers au format HTML. Pour un exemple, jetez un œil au sousrépertoire rsyslog*/, qui comprend un manuel en ligne complet pour le serveur démon de journalisation décrit aux chapitres 9 et 17.
OBJECTIF DE CERTIFICATION 3.05
Une introduction au réseautage TCP/IP est une série de protocoles organisés en couches, appelée suite de protocoles. Il a été développé pour Unix et finalement adopté comme norme de communication sur Internet. Avec les adresses IP, il peut vous aider à organiser un réseau. Il existe un certain nombre d'outils et de configurations TCP/IP qui peuvent vous aider à gérer un réseau. Comme dans les sections précédentes de ce chapitre, les déclarations ici sont des simplifications excessives. Donc, si vous trouvez cette section écrasante et/ou incomplète, lisez les références citées au chapitre 1. Linux est conçu pour la mise en réseau, et il n'y a aucun moyen pratique de réussir l'un ou l'autre des examens Red Hat à moins que vous ne compreniez la mise en réseau en détail. Alors que les réseaux actuels se concentrent toujours sur l'adressage IP version 4, certaines organisations ont mandaté une évolution vers les réseaux IP version 6 (IPv6). Même si Internet est à court de nouvelles adresses IPv4 publiques, le matériel prenant en charge le routage des réseaux IPv6 est encore assez rare. Espérons que cela changera au cours de la vie de ce livre.
Numéros IP version 4 et classes d'adresses Chaque ordinateur qui communique sur un réseau a besoin de sa propre adresse IP. Certaines adresses sont attribuées en permanence à un ordinateur particulier ; cellesci sont appelées adresses statiques . D'autres sont loués à partir d'un serveur DHCP pour une durée limitée ; cellesci sont également appelées adresses IP dynamiques . Les adresses IPv4 sont organisées en cinq classes différentes, comme indiqué dans le Tableau 32. Les universitaires parmi vous peuvent noter que ce tableau diffère légèrement des adresses officielles dans chaque classe IPv4 comme spécifié dans la RFC 1518 de l'Internet Engineering
Machine Translated by Google
Une introduction au réseautage 35
Groupe de travail (www.ietf.org). La plage d'adresses attribuables comprend les adresses IP qui peuvent être attribuées à un ordinateur spécifique sur un réseau. De plus, il existe un certain nombre d'adresses IP privées qui ne doivent être attribuées à aucun ordinateur directement connecté à Internet. Ils sont associés aux adresses réseau 10.0.0.0, 172.168.0.0 et 192.168.0.0 à 192.168.255.0.
Adressage IP de base version 6 Les experts en réseau prédisent la disparition d'IPv4 depuis des années. C'est vrai, il n'y a pas assez d'adresses IPv4 pour Internet. Cependant, avec l'aide de blocs d'adresses IP privées, les utilisateurs des réseaux d'entreprise n'ont pas besoin d'autant d'adresses IP publiques. Néanmoins, il y aura un moment où les adresses IPv6 seront la norme. D'abord, à comparer, les adresses IPv4 ont 32 bits et sont configurées en octets en notation décimale pointée. Les adresses IPv6 ont 128 bits et sont configurées en notation hexadécimale, également appelée base 16. En d'autres termes, les « chiffres » d'une adresse IPv6 peuvent inclure les éléments suivants :
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, un, b, c, ré, e, f Une adresse IPv6 est normalement organisée en huit groupes de quatre nombres hexadécimaux chacun et peut ressembler à 4abe:03e2:c132:69fa:0000:0000:c0b8:2148. L'adresse IPv6 actuelle du système local est indiquée dans la sortie de la commande ifconfig. Avec 128 bits, les adresses IPv6 peuvent être divisées en plusieurs catégories. D'abord, il existe trois formats d'adresse pertinents.
■ Monodiffusion Une adresse de monodiffusion est associée à une seule carte réseau. Les adresses de monodiffusion routables incluent un préfixe réseau 48 bits, un sousréseau 16 bits
TABLEAU 32
Adresse IP
Classe
Remarque sur la plage d'adresses attribuables
UN
1.1.1.1–126.255.255.254
Autorise les réseaux jusqu'à 16 millions d'ordinateurs
B
128.0.0.1–191.255.255.254
Autorise les réseaux jusqu'à 65 000 ordinateurs
C
192.0.0.1–223.255.255.254
Autorise les réseaux jusqu'à 254 ordinateurs
D
224.0.0.1–239.255.255.254
Réservé aux multidiffusions
E
240.0.0.1–255.255.255.254
Réservé à un usage expérimental
Des classes
Machine Translated by Google
36 Chapitre 3 : Compétences fondamentales en ligne de commande
identifiant et un identifiant d'interface 64 bits associé à une adresse matérielle d'adaptateur réseau. Les adresses de monodiffusion lienlocal incluent un préfixe de 10 bits, 54 zéros et le même identifiant d'interface de 64 bits. Les adresses de monodiffusion lienlocal ne sont pas routables.
■ Multidiffusion Une adresse de multidiffusion est utilisée pour envoyer un message à plusieurs adaptateurs réseau simultanément. L'organisation d'une adresse multicast varie. ■ Anycast Une adresse anycast est utilisée pour envoyer un message à l'un des adaptateurs réseau en option. Il est utile pour les systèmes avec plusieurs sauvegardes, comme un groupe de serveurs Web. Les adresses Anycast ont la même organisation de base qu'une adresse unicast. Avec cette diversité de formats d'adresses, les adresses de diffusion de type IPv4 ne sont pas utilisées. Au lieu de cela, l'adressage IPv6 utilise l'adressage multidiffusion à cette fin. Les adresses IPv6 sont également organisées en plusieurs plages différentes, comme décrit dans le Tableau 33. L'adresse IPv6 par défaut est parfois également répertoriée comme ::/128.
Comment définir un réseau avec des adresses IP Trois adresses IP clés définissent un réseau : l'adresse réseau, l'adresse de diffusion et le masque de sous réseau. L'adresse réseau est toujours la première adresse IP d'une plage ; l'adresse de diffusion est toujours la dernière adresse dans la même plage. Le masque de sousréseau aide votre ordinateur à définir la différence entre les deux adresses. Vous pouvez attribuer des adresses IP entre le réseau et les adresses de diffusion (n'incluant pas ces adresses) à n'importe quel ordinateur du réseau.
Un masque de sousréseau est également appelé masque de réseau ou masque de réseau. Un exemple de masque de réseau IPv4 est 255.255.255.0. Un exemple de masque de réseau IPv6 est /64. TABLEAU 33
Adresse
Description
Adresse IP
::1
Adresse de bouclage
Des classes
::
Adresse par défaut
::ffff:0000:0000
Adresses IPv6 mappées IPv4 dans les 8 derniers zéros
fe80 ::
adresses lienlocal ; pas de routage entre les réseaux
fec0 ::
Adresses sitelocal, pour un seul réseau
ff ::
Adresses multidiffusion
2000 ::
Les destinataires globaux de monodiffusion sont routables
Machine Translated by Google
Une introduction au réseautage 37
Par exemple, définissons la plage d'adresses d'un réseau privé. Commencez par l'adresse du réseau privé 192.168.122.0. Utilisez le masque de sousréseau standard pour un réseau de classe C, 255.255.255.0. Sur la base de ces deux adresses, l'adresse de diffusion est 192.168.122.255 et la plage d'adresses IP que vous pouvez attribuer sur ce réseau particulier est comprise entre 192.168.122.1 et 192.168.122.254. Ce masque de sousréseau est également défini par le nombre de bits associés, 24. Dans d'autres travaux, le réseau donné peut être représenté par 192.168.122.0/24. Cela est également connu sous le nom de notation CIDR (Classless InterDomain Routing). Les réseaux IPv6 utilisent un concept similaire pour les masques de réseau, qui sont toujours exprimés en notation CIDR. Par exemple, même les réseaux point à point ont un masque de réseau de /64. Cela permet d'utiliser 64 bits pour l'adresse matérielle 48 bits. Les adresses restantes peuvent être attribuées à des cartes réseau spécifiques. Le réseau IPv6 standard a un masque de réseau /48 bits. qui prend en charge la configuration de sousréseaux 16 bits. Les 64 bits restants sont encore utilisés en partie pour les cartes réseau, comme décrit précédemment pour les réseaux point à point. Le concept de passerelle est lié à la mise en réseau et aux masques de réseau. C'est une IP adresse qui définit la jonction entre le réseau local et un réseau externe. Bien que cette adresse IP de passerelle fasse partie du réseau local, elle est attachée à un système ou à un routeur avec une adresse IP sur un réseau différent tel que l'Internet public. L'adresse IP de la passerelle est normalement configurée dans la table de routage du système local, comme défini par la commande route ou netstat r décrite dans la section suivante. Si cela vous déroute de quelque manière que ce soit, veuillez vous référer au Mini sousréseau IP HOWTO et le Linux IPv6 HOWTO du Linux Documentation Project sur www.tldp.org.
Outils, commandes et passerelles Il existe un nombre important d'outils disponibles pour gérer la suite de protocoles TCP/IP sur votre ordinateur Linux. Quatre des commandes de gestion de réseau les plus importantes sont ping, ifconfig, arp, netstat r et route. Il existe également une version spécifique à IPv6 de la commande ping, ping6. La commande dhclient est fréquemment utilisée pour automatiser la configuration qui peut être effectuée avec certaines de ces commandes. Mais ce ne sont que des commandes. Dans la section suivante, vous examinerez les fichiers Red Hat qui déterminent les commandes appelées pour configurer automatiquement les réseaux pendant le processus de démarrage. Ces commandes sont régies par le script principal du service de configuration réseau, /etc/init.d/network. Ils peuvent également être appelés manuellement avec des commandes telles que ifup et ifdown.
Machine Translated by Google
38 Chapitre 3 : Compétences fondamentales en ligne de commande
ping et ping6 La commande ping permet de tester la connectivité. Il peut être appliqué localement, au sein d'un réseau et à travers des réseaux sur Internet. Pour les besoins de cette section, supposons que votre adresse IP est 192.168.122.50 et que l'adresse de la passerelle sur le réseau local est 192.168.122.1. Si vous rencontrez des problèmes pour vous connecter à un réseau, essayez les commandes ping suivantes dans l'ordre. La première étape consiste à tester l'intégrité de TCP/IP sur ton ordinateur:
# ping 127.0.0.1 Normalement, ping fonctionne en continu sur Linux ; vous devrez appuyer sur CTRLC pour arrêter cette commande. Si vous avez besoin de vérifier une bonne connexion à un réseau local, envoyez un ping à l'adresse IP de la carte réseau locale :
# ping 192.168.122.50 Si cela fonctionne, envoyez un ping à l'adresse d'un autre ordinateur de votre réseau. Ensuite, commencez à tracer la route vers Internet. ping l'adresse de la passerelle réseau, dans ce cas, 192.168.122.1. Si possible, envoyez un ping à l'adresse de la connexion du réseau à Internet, qui se trouverait de l'autre côté de la passerelle. Il peut s'agir de l'adresse IP publique sur Internet. Et enfin, envoyez un ping à l'adresse d'un ordinateur dont vous savez qu'il est actif sur Internet. Vous pouvez substituer des noms d'hôte tels que www.google.com à une adresse IP. Si le nom d'hôte ne fonctionne pas, il y a probablement un problème avec la base de données des noms d'hôte et des adresses IP, plus communément appelée Domain Name Service (DNS), Berkeley Internet Name Domain (BIND) ou serveur de noms. Cela pourrait également indiquer un problème avec le fichier de configuration / etc/hosts. En revanche, la commande ping6 fonctionne presque de la même manière. L'exception sur les systèmes Red Hat est que vous devez spécifier la carte réseau. Par exemple, la commande suivante envoie un ping au réseau IPv6 noté via l'adaptateur virbr0 virtuel :
# ping6 I virbr0 fe80::5652:ff:fe39:24d8 Si vous avez configuré des adresses IPv6 globales et configuré le routage vers Internet, Google propose une URL IPv6 de test sur ipv6.google.com.
Examiner les adaptateurs réseau actuels avec ifconfig La commande ifconfig peut afficher l'état actuel des adaptateurs réseau actifs. Il peut également être utilisé pour attribuer des adresses réseau et plus encore. Exécutez la commande ifconfig
Machine Translated by Google
Une introduction au réseautage 39
par luimême pour examiner les cartes réseau actives sur le système local. S'il semble y avoir une carte réseau manquante, essayez la commande ifconfig a, qui affiche la configuration actuelle de toutes les cartes réseau, qu'elles soient actives ou non. La commande ifconfig eth0 affichée ici reflète la configuration actuelle de la première carte réseau Ethernet : # ifconfig eth0 eth0 Encap du lien :Ethernet HWadr 00:50:56:40:1E:6A inet addr :192.168.122.50 Bcast :192.168.122.255 Masque : 255.255.255.0
adresse inet6 : fe80::2e0:4cff:fee3:d106/64 Portée : lien UP BROADCAST EN COURS MULTICAST MTU : 1 500 Métrique : 1 Paquets RX : 11253 erreurs : 0 abandonnées : 0 dépassements : 0 trame : 0 Paquets TX : 1304 erreurs : 0 abandonnées : 0 dépassements : 0 voiture plus:0 collisions:0 txqueuelen:1000 Octets RX:2092656 (1,9 Mo) Octets TX:161329 (157,5 Ko)
Configurer une carte réseau avec ifconfig Vous pouvez également utiliser ifconfig pour attribuer également des informations d'adresse IP. Par exemple, la commande suivante attribue l'adresse IP et le masque réseau notés à la carte réseau eth0 :
# ifconfig eth0 192.168.122.150 masque de réseau 255.255.255.0
Le premier paramètre, eth0, vous indique quelle interface est configurée. L'argument suivant, 192.168.122.150, spécifie la nouvelle adresse IP attribuée à cette interface. Pour vous assurer que la modification a fonctionné, exécutez à nouveau la commande ifconfig eth0 pour afficher ses paramètres actuels. Avec le bon commutateur, la commande ifconfig peut modifier un certain nombre d'autres paramètres pour une carte réseau sélectionnée. Certains de ces commutateurs sont illustrés dans le Tableau 34.
Activer et désactiver les adaptateurs réseau Il est possible d'utiliser la commande ifconfig pour activer et désactiver les adaptateurs réseau. Par exemple, les commandes suivantes désactivent et réactivent la première carte Ethernet :
# ifconfig eth0 vers le bas # ifconfig eth0 vers le haut
Machine Translated by Google
40 Chapitre 3 : Compétences fondamentales en ligne de commande
TABLEAU 34
Commutateurs ifconfig
Paramètre en haut
Description Active l'adaptateur spécifié.
bas
Désactive l'adaptateur spécifié.
adresse du masque de réseau
Attribue le masque de sousréseau d'adresse .
adresse de diffusion
Attribue l' adresse comme adresse de diffusion. Rarement requis, car l'adresse de diffusion par défaut est standard pour la plupart des réseaux actuels.
métrique N
Vous permet de définir une valeur métrique de N pour la table de routage associée à la carte réseau.
mtu N arp
Définit l'unité de transmission maximale sur N, en octets. Désactive le protocole ARP (Address Resolution Protocol), qui collecte les adresses matérielles des adaptateurs réseau.
promis
Active le mode promiscuité. Cela permet à la carte réseau de lire tous les paquets vers tous les hôtes du réseau local. Peut être utilisé pour analyser les problèmes du réseau ou pour essayer de déchiffrer les messages entre d'autres utilisateurs.
promisque
Désactive le mode promiscuité.
Cependant, quelques scripts plus intuitifs sont conçus pour contrôler les adaptateurs réseau : ifup et ifdown. Contrairement à la commande ifconfig, ils appellent les fichiers de configuration et les scripts appropriés dans le répertoire /etc/sysconfig/networkscripts, pour plus de détails sur la façon dont une carte réseau doit être activée et désactivée. Par exemple, la commande ifup eth0 affiche la première carte réseau Ethernet basée sur le fichier de configuration ifcfgeth0 et le script ifcfgeth dans le répertoire /etc/sysconfig/ networkscripts. Si vous avez configuré la carte réseau avec l'outil Connexions réseau décrit plus loin dans ce chapitre, le nom de fichier dans le répertoire /etc/sysconfig/networkscripts peut ressembler à ifcfgSystem_eth0.
arp en tant qu'outil de diagnostic Le protocole ARP associe l'adresse matérielle d'une carte réseau à une adresse IP. La commande arp affiche un tableau des adresses matérielles et IP sur l'ordinateur local. La commande arp peut aider à détecter des problèmes tels que des adresses en double sur le réseau. De tels problèmes peuvent survenir avec des systèmes mal clonés. Si nécessaire, la commande arp peut être utilisée pour définir ou modifier des tables de routage matérielles. Comme les adresses matérielles ne sont pas routables, une table arp doit être limitée au réseau local. Voici un exemple de commande arp, montrant toutes les entrées arp dans la base de données locale :
Machine Translated by Google
Une introduction au réseautage 41
# arp Adresse
HWtype HWAdresse Masque éther 52:A5:CB:54:52:A2 C
192.168.122.150
Drapeaux
Je fais face
eth0
192.168.100.100
éther 00:A0:C5:E2:49:02 C
eth0
192.168.122.1
éther 00:0E:2E:6D:9E:67 C
eth0
Si la table ARP est vide, aucune connexion récente n'existe avec d'autres systèmes sur le réseau local. La colonne Adresse répertorie les adresses IP connues sur le LAN. La colonne HWtype affiche le type de matériel de l'adaptateur, tandis que la colonne HWaddress affiche l'adresse matérielle de l'adaptateur.
Tables de routage avec netstat r et route La commande netstat est polyvalente ; il peut vous aider à voir les canaux disponibles pour les connexions réseau, les statistiques d'interface, etc. Une version importante de cette commande, netstat r, affiche des tables de routage qui peuvent vous dire si le système sait où envoyer un message. C'est fonctionnellement équivalent à la commande route. Lorsqu'il est exécuté sur un système, il est fréquemment exécuté avec le commutateur n, pour afficher les adresses au format numérique. La table de routage du système local comprend normalement une référence à l'adresse de la passerelle locale, couplée à la route par défaut. Par exemple, examinez la sortie suivante de la commande route n : Table de routage IP du noyau Passerelle de destination 192.168.122.0 0.0.0.0 0.0.0.0
masque général
255.255.255.0U
192.168.122.1 0.0.0.0
Indicateurs Référence métrique Utiliser 0 0 Iface 0 eth0 UG 0 0 0 eth0
La commande netstat nr doit afficher le même tableau. Pour cette table de routage, l'adresse IP de la passerelle est 192.168.122.1. C'est la passerelle vers l'adresse IP de destination 0.0.0.0, qui est l'adresse IP par défaut. En d'autres termes, la transmission réseau vers autre chose que le réseau 192.168.122.0 est envoyée à l'adresse de la passerelle. Le système à l'adresse de la passerelle, généralement un routeur, est chargé de transmettre ce message à un réseau externe. Si la destination se trouve sur le réseau local, aucune passerelle n'est requise. Un astérisque (ou 0.0.0.0) s'affiche donc dans cette colonne. La colonne Genmask répertorie le masque de réseau. Les réseaux recherchent une route appropriée à l'adresse IP de destination. L'adresse IP est comparée aux réseaux de destination, dans l'ordre. Lorsqu'il s'avère que l'adresse IP fait partie de l'un de ces réseaux, elle est envoyée dans cette direction. S'il existe une adresse de passerelle, elle est envoyée à l'ordinateur avec cette passerelle. La colonne Flags décrit comment cela est fait. Les descriptions des indicateurs sont répertoriées dans le Tableau 35.
Machine Translated by Google
42 Chapitre 3 : Compétences fondamentales en ligne de commande
TABLEAU 35
Le drapeau netstat Indique le Itinéraire
Drapeau
Description
g
La route utilise une passerelle.
tu
La carte réseau, répertoriée dans la colonne Iface, est active.
H
Un seul hôte peut être atteint via cette route.
D
Cette entrée a été créée par un message de redirection ICMP.
M
Cette entrée a été modifiée par un message de redirection ICMP.
En revanche, si une table de routage IPv6 est plus complexe, les principes sont les mêmes. En d'autres termes, l'adresse de la passerelle IPv6 est associée à la route IPv6 par défaut, symbolisée par l'adresse ::/128. Les mêmes commandes route et netstat peuvent être utilisées pour les tables de routage IPv6, lorsqu'elles sont associées au commutateur A inet6.
Configurer dynamiquement les adresses IP avec dhclient Bien que le nom de la commande ait changé de temps en temps, la fonctionnalité est restée la même. Depuis que les serveurs DHCP (Dynamic Host Configuration Protocol) ont été créés pour rationner les adresses IPv4, les clients ont eu besoin de commandes pour faire appel aux services de ce serveur. Pour le moment, la commande clé est dhclient. Lorsqu'il est utilisé avec le nom de périphérique d'une carte réseau, il fait appel à un serveur DHCP pour une adresse IP et plus encore. En fait, une commande comme celleci peut faire appel à ce serveur DHCP pour un certain nombre de paramètres.
# dhclient eth0
Généralement, les options réseau configurées via un serveur DHCP incluent l'adresse IP, le masque de réseau, l'adresse de la passerelle pour l'accès aux réseaux externes et l'adresse IP de tous les serveurs DNS pour ce réseau. En d'autres termes, la commande dhclient eth0 attribue non seulement les informations d'adresse IP de la manière effectuée avec la commande ifconfig décrite précédemment, mais elle configure également la route par défaut pour la table de routage affichée avec la commande route n. De plus, il ajoute l'adresse IP du serveur DNS au fichier de configuration /etc/resolv.conf.
Machine Translated by Google
Configuration réseau et dépannage 43
OBJECTIF DE CERTIFICATION 3.06
Configuration et dépannage du réseau Maintenant que vous avez passé en revue les bases de l'adressage IP et les commandes associées, il est temps d'examiner les fichiers de configuration associés. Ces fichiers de configuration déterminent si la mise en réseau est démarrée pendant le processus de démarrage. S'ils sont démarrés, ces fichiers déterminent également si les adresses et les routes sont configurées statiquement comme documenté, ou dynamiquement à l'aide de commandes telles que dhclient. La configuration de base du réseau confirme uniquement que les systèmes peuvent communiquer via leurs adresses IP. Mais ce n'est pas assez. Que vous pointiez vers des systèmes tels que server1.example.com ou des URL telles que www.mheducation.com, la configuration du réseau ne suffit pas si la configuration du nom d'hôte (ou FQDN) ne fonctionne pas.
La cause la plus courante des problèmes de réseau est physique. Cette section suppose que vous avez vérifié toutes les connexions réseau. Sur une machine virtuelle, cela signifie s'assurer que la carte réseau virtuelle n'a pas été supprimée accidentellement sur la machine virtuelle ou sur l'hôte physique.
Fichiers de configuration réseau En cas de problème avec une configuration réseau, une chose à vérifier est l'état actuel du réseau. Pour ce faire, exécutez la commande suivante :
# /etc/init.d/état du réseau La commande doit répertorier les périphériques configurés et actifs. Si un périphérique clé tel que eth0 n'est pas répertorié comme actif, cela explique pourquoi le réseau semble être en panne. Les fichiers de configuration clés commencent par /etc/sysconfig/network. Ils continuent avec les fichiers du répertoire /etc/sysconfig/networkscripts.
Parfois, des erreurs se produisent. Si vous avez désactivé un adaptateur ou si vous venez de perdre un connexion sans fil, une solution simple peut être de redémarrer le réseau. La commande suivante redémarre la mise en réseau avec les fichiers de configuration actuels.
# /etc/init.d/network restart Si un simple redémarrage des services réseau ne fonctionne pas, il est temps d'entrer dans les fichiers.
Machine Translated by Google
44 Chapitre 3 : Compétences fondamentales en ligne de commande
/etc/sysconfig/network Si vous exécutez la commande ifconfig et ne voyez Des services tels que la mise en réseau peut être configurée pour démarrer pendant le processus de démarrage, comme indiqué au chapitre 5.
aucune sortie, cela signifie que tous les périphériques réseau sont actuellement inactifs. Si vous exécutez la commande ifconfig a et ne voyez pas UP dans la sortie vers un périphérique réseau configuré, cela confirme l'inactivité. La première chose à vérifier dans ce cas est le contenu du fichier /etc/sysconfig/network
fichier de configuration. C'est un fichier assez simple. En général, vous devriez voir quelque chose de similaire à ce qui suit dans ce fichier :
NETWORKING=oui HOSTNAME=server1.example.com Si NETWORKING=no, alors le script /etc/init.d/network n'en active aucun Périphériques réseau. L'autre problème qui peut empêcher le démarrage de la mise en réseau est le statut du script. Exécutez la commande réseau chkconfig list. La sortie devrait ressembler à :
réseau
0 : désactivé 1 : désactivé 2 : activé 3 : activé 4 : activé 5 : activé 6 : désactivé Si les paramètres à côté des niveaux d'exécution 3 et 5 sont désactivés, c'est un problème. Pour vous assurer qu'un service est actif dans les niveaux d'exécution appropriés, exécutez le réseau chkconfig sur commande. Pour plus d'informations sur chkconfig, reportezvous au chapitre 5. Si la mise en réseau IPv6 est active sur un système, vous verrez la directive suivante dans le fichier :
NETWORKING_IPV6=oui D'autres directives qui peuvent apparaître dans ce fichier concernent la configuration est la PASSERELLE, si c'est la même adresse IP pour tous les périphériques réseau. Sinon, cette configuration est prise en charge soit par la commande dhclient, soit configurée dans les informations d'adresse IP d'un périphérique réseau spécifique, dans le répertoire /etc/sysconfig/network scripts.
/etc/sysconfig/networkscripts/ifcfglo En parlant du répertoire /etc/sysconfig/networkscripts, peutêtre que la base du réseau est l'adresse de bouclage. Ces informations sont configurées dans le fichier ifcfglo de ce répertoire. Le contenu du fichier peut vous aider à comprendre comment les fichiers de ce répertoire sont utilisés pour les périphériques réseau. Par défaut, vous devriez voir les entrées suivantes dans ce fichier, en commençant par le nom du périphérique de bouclage : DISPOSITIF=lo
Machine Translated by Google
Configuration réseau et dépannage 45
Il est suivi de l'adresse IP (IPADDR), du masque de réseau (NETMASK), de l'adresse IP du réseau (NETWORK), ainsi que de l'adresse de diffusion correspondante (BROADCAST).
IPADDR=127.0.0.1 MASQUE RÉSEAU=255.0.0.0
RESEAU=127.0.0.0 DIFFUSION=127.255.255.255
Les entrées suivantes précisent si le périphérique est activé pendant le processus de démarrage, et le nom commun de l'appareil. ONBOOT=oui NOM=bouclage
/etc/sysconfig/networkscripts/ifcfgeth0 Ce que vous voyez dans le fichier ifcfgeth0 dépend de la façon dont cette première carte réseau Ethernet a été configurée. Par exemple, examinez la situation où la mise en réseau a été configurée uniquement à des fins d'installation. Si vous n'avez pas configuré la mise en réseau lors de la configuration du nom d'hôte lors du processus d'installation de l'interface graphique, la mise en réseau ne sera pas configurée sur le système. Dans ce cas, le fichier ifcfgeth0 contiendrait les directives suivantes, en commençant par le nom du périphérique, ainsi que l'adresse matérielle :
PÉRIPHÉRIQUE=”eth0”
HWADDR=”F0:DE:F3:06:C6:DB”
Par défaut, RHEL 6 utilise un service appelé Network Manager. Si un réseau card est contrôlée par ce service, la directive suivante serait définie sur yes : NM_CONTROLLED=”oui”
Le gestionnaire de réseau est un service ; pour vous assurer qu'il est en cours d'exécution, exécutez la commande de démarrage /etc/init.d/NetworkManager. Bien sûr, si la mise en réseau n'a pas été configurée lors du processus d'installation, il n'y a aucune raison pour qu'elle soit activée lors du processus de démarrage : ONBOOT=”non”
L'alternative au service Network Manager consiste à le configurer directement. Pour À cette fin, le fichier de configuration illustré à la Figure 39 fournit un guide.
Machine Translated by Google
46 Chapitre 3 : Compétences fondamentales en ligne de commande
FIGURE 39 Un statique
configuration non maîtrisée par réseau Directeur
Bien entendu, si vous préférez utiliser un serveur DHCP, cette information d'adresse réseau statique serait omise et la directive suivante serait modifiée : BOOTPROTO=dhcp
Vous verrez bientôt comment utiliser l'outil Connexions réseau de Network Manager pour modifier la configuration d'un périphérique réseau. Mais d'abord, pour une perspective différente, passez en revue la figure 310, qui illustre la configuration d'une carte réseau sans fil sur mon système d'ordinateur portable RHEL 6.
FIGURE 310
Un sans fil réseau configuration
Machine Translated by Google
Configuration réseau et dépannage 47
Autres fichiers /etc/sysconfig/networkscripts/ La plupart des fichiers du répertoire /etc/sysconfig/networkscripts sont en fait des scripts. En d'autres termes, ce sont des fichiers exécutables basés sur une série de commandes textuelles. La plupart de ces scripts sont basés sur les commandes ifup et ifdown, personnalisées pour le type de périphérique réseau. S'il y a une route spéciale à configurer, les paramètres de configuration obtiennent leur propre fichier spécial dans ce répertoire, avec un nom comme routeeth0. Cette route spéciale spécifierait la passerelle vers une paire adresse réseau distante/masque réseau. Un exemple basé sur les systèmes décrits au chapitre 1 pourrait inclure les directives suivantes : ADRESSE0=192.168.100.100 NETMASK0=255.255.255.0 PASSERELLE0=192.168.122.1
Outils de configuration réseau Red Hat inclut deux outils qui peuvent être utilisés pour configurer les périphériques réseau dans RHEL 6. Le premier est l'outil de configuration réseau de la console. Vous pouvez le démarrer à partir de la ligne de commande avec la commande systemconfignetwork. Le second est l'outil Connexions réseau que vous pouvez démarrer à partir d'une ligne de commande GUI avec la commande nmconnectioneditor. Le gestionnaire de réseau comprend également un autre outil pour afficher l'état actuel des périphériques réseau. La sortie est quelque peu similaire à la sortie de la commande ifconfig.
L'outil de configuration réseau de la console Comme son nom l'indique, vous pouvez démarrer cet outil à partir d'une console de ligne de commande. Exécutez simplement la commande systemconfignetwork. Avec un outil de console, vous devez appuyer sur TAB pour basculer entre les options, et la barre d'espace ou la touche ENTRÉE pour sélectionner l'option en surbrillance. Cet outil n'étant pas le Network Manager, vous devrez désactiver l'appareil associé pour que la configuration personnalisée avec cet outil soit effective. L'exercice 32 illustre ce processus. Appuyez sur TAB jusqu'à ce que Quitter soit en surbrillance et appuyez sur ENTER. Pour l'instant, faites une sauvegarde du fichier ifcfgeth0 à partir du répertoire /etc/sysconfig/network scripts. Basée sur la commande diff, la Figure 311 compare le contenu d'une carte eth0 qui utilise le protocole DHCP, tel que configuré lors du processus d'installation, avec une carte qui utilise un adressage IP statique, configuré avec l'outil systemconfignetwork. Les directives illustrées à la Figure 311 sont décrites dans le Tableau 36.
Machine Translated by Google
48 Chapitre 3 : Compétences fondamentales en ligne de commande
FIGURE 311
Les différences entre statique et réseau dynamique configuration
TABLEAU 36
Directif
Directives de configuration réseau dans le répertoire /etc/sysconfig/networkscripts
Description
APPAREIL
Périphérique réseau; eth0 est la première carte réseau Ethernet
HWADDR
Adresse matérielle de la carte réseau
NM_CONTROLLED Directive binaire (oui ou non) qui précise si la carte est contrôlée par le Service de gestionnaire de réseau AU DÉMARRAGE
Directive binaire qui spécifie si le périphérique réseau est démarré pendant le processus de démarrage
BOOTPROTO
Peut être défini sur aucun pour une configuration statique, DHCP pour acquérir des adresses IP à partir d'un Serveur DHCP
MASQUE RÉSEAU
Masque de réseau basé sur une configuration d'adresse IP statique
TAPER
Type de réseau, généralement Ethernet
IPV6INIT
Directive binaire qui spécifie l'utilisation de l'adressage IPv6
UTILISATEUR
Directive binaire pour le contrôle des appareils par l'utilisateur
Machine Translated by Google
Configuration réseau et dépannage 49
TABLEAU 36
Directives de configuration réseau dans le répertoire /etc/sysconfig/networkscripts (suite)
DÉROUTE
Directive binaire pour utiliser la route par défaut, définie par route n
ROUTES PEER
Directive binaire permettant l'utilisation de routes définies
IPV4_FAILURE_ FATAL
Directive binaire prenant en charge l'échec du réseau en cas d'erreur
NOM
Nom du périphérique Ethernet ; s'il est présent, l'appareil devient la valeur, telle que System_eth0
UUID
Identifiant universel unique pour l'appareil
IPADDR
Adresse IP statique
PASSERELLE
Adresse IP de la passerelle par défaut
EXERCICE 33 Configurer une carte réseau Dans cet exercice, vous allez configurer la première carte réseau Ethernet avec l'outil de configuration réseau basé sur la console. Tout ce dont vous avez besoin est une interface de ligne de commande. Peu importe que la ligne de commande se trouve dans l'interface graphique. Si vous n'êtes pas connecté en tant qu'utilisateur root, vous serez invité à entrer le mot de passe administrateur root. Pour configurer une carte réseau, procédez comme suit : 1. Sauvegardez une copie du fichier de configuration actuel pour la première carte Ethernet. Normalement, c'est ifcfgeth0 dans le répertoire /etc/sysconfig/networkscripts. Pour les autres cartes, telles que eth1, remplacezles en conséquence. (Astuce : utilisez la commande cp et non la commande mv.) 2. Exécutez la commande systemconfignetwork. 3. Dans le menu Select Action qui s'affiche, Device Configuration doit être mis en surbrillance. Si nécessaire, appuyez sur la touche TAB jusqu'à ce que ce soit le cas. Appuyez ensuite sur ENTRÉE. 4. Dans l'écran Sélectionner un périphérique qui s'affiche, la première carte réseau Ethernet doit être mise en surbrillance. Quand c'est le cas, appuyez sur ENTER. 5. Dans la fenêtre Configuration réseau illustrée ici, l'option Utiliser DHCP peut être sélectionnée. Si c'est le cas, mettezle en surbrillance et appuyez sur la BARRE D'ESPACEMENT pour le désélectionner.
Machine Translated by Google
50 Chapitre 3 : Compétences fondamentales en ligne de commande
6. Saisissez les informations d'adresse IP du système. Les paramètres affichés dans la fenêtre sont basés sur les paramètres décrits au chapitre 1 pour le serveur1. système exemple.com. Lorsque vous avez terminé, mettez en surbrillance OK et appuyez sur ENTER. 7. Vous êtes ramené à l'écran Sélectionner un appareil. Assurezvous que Save est élevé allumé et appuyez sur ENTER. 8. Vous êtes ramené à l'écran Sélectionner une action. Assurezvous que Save&Quit est en surbrillance et appuyez sur ENTER. 9. Désactivez puis réactivez la première carte Ethernet avec les commandes ifdown eth0 et ifup eth0, et vérifiez le résultat avec les commandes ifconfig eth0 et route n. La configuration de la carte réseau et la table de routage associée doivent refléter la nouvelle configuration.
10. Pour restaurer la configuration d'origine, restaurez le fichier ifcfgeth0 dans le répertoire /etc/sy sconfig/networkscripts et redémarrez le réseau avec la commande /etc/init.d/network restart.
Machine Translated by Google
Configuration réseau et dépannage 51
L'outil de connexions réseau de Network Manager Vous allez maintenant travailler avec le nouvel outil de gestion de réseau par défaut pour RHEL 6, l'outil de connexions réseau. Avec le nombre d'utilisateurs sur plusieurs connexions réseau, le gestionnaire de réseau est conçu pour rendre la commutation entre, par exemple, une connexion sans fil et une connexion Ethernet aussi transparente que possible. Mais c'est quelque chose de plus applicable aux systèmes portables, par opposition aux serveurs. Pour nos besoins, tout ce que vous devez savoir est de savoir comment configurer une carte réseau avec cet outil. Ce n'est pas vraiment nouveau, car il est utilisé sur le banc d'essai Fedora Linux depuis plusieurs années. Il ne fonctionne que dans l'interface graphique. Pour le démarrer, vous pouvez soit exécuter la commande de l'éditeur nmconnection, soit cliquer sur Système | Préférences | Les connexions de réseau. Il ouvre l'outil Connexions réseau illustré à la Figure 312. Comme vous pouvez le voir sur la figure, l'outil répertorie la première carte réseau Ethernet détectée, même si elle n'a pas été utilisée auparavant. Les autres onglets prennent en charge la configuration d'autres types de connexions réseau, y compris les cartes haut débit mobiles sans fil telles que celles utilisées pour se connecter aux réseaux 3G et 4G, les connexions de réseau privé virtuel (VPN) et les connexions de ligne d'abonné numérique (DSL). Sur un serveur standard, l'accent est mis sur des connexions fiables, et cela est toujours basé sur un périphérique Ethernet câblé standard.
FIGURE 312
Le réseau Directeur Réseau Outil de connexions.
Machine Translated by Google
52 Chapitre 3 : Compétences fondamentales en ligne de commande
Mettez en surbrillance le premier périphérique Ethernet (eth0) et cliquez sur Modifier. Cela ouvrira la fenêtre d'édition du système illustrée à la figure 313. Notez comment la fenêtre inclut le nom du périphérique Ethernet et le nom d'hôte du système. Cela signifie que j'ai accédé à distance à la fenêtre, avec la commande ssh X décrite au chapitre 2. (Si l'accès est local, le nom d'hôte ne sera pas affiché.) Cliquez sur l'onglet Paramètres IPv4. Sauf configuration préalable, il suppose que la carte réseau recevra les paramètres de configuration d'un serveur DHCP. Cliquez sur la zone de texte déroulante Méthode. Bien qu'il prenne en charge la configuration de une carte réseau de plusieurs manières différentes, la seule intéressante dans ce cas est Manuel. Sélectionnez cette option et la section Adresses de la fenêtre ne devrait plus être masquée. Ajoutez maintenant les informations d'adresse IP pour le système. Sur la base du système server1.example.com décrit au chapitre 1, les options appropriées incluent les éléments suivants :
■ Adresse IP 192.168.122.50 FIGURE 313
Modification d'un
Connexion Ethernet dans le Outil Paramètres réseau
Machine Translated by Google
Configuration réseau et dépannage 53
■ Masque de réseau 255.255.255.0 (24 en notation CIDR est un équivalent dans ce champ) ■ Adresse passerelle 192.168.122.1
■ Serveur DNS 192.168.122.1 ■ Rechercher des domaines Aucune entrée requise ■ Requérir un adressage IPv4 pour cette connexion pour terminer les prises en charge Adressage IPv4
■ Disponible pour tous les utilisateurs Si désélectionné, l'accès est désactivé pour tous les utilisateurs Si elle est correctement saisie, la configuration associée à la première carte Ethernet est intitulée avec le nom de connexion répertorié dans la Figure 313. Pour cette configuration, les paramètres sont enregistrés dans le fichier ifcfg System_eth0 dans le répertoire /etc/sysconfig/networkscripts.
Fichiers de configuration du nom d'hôte RHEL 6 inclut au moins quatre fichiers de configuration de nom d'hôte intéressants : /etc/sysconfig/network, /etc/ nsswitch.conf, /etc/hosts et /etc/resolv.conf. Ces quatre fichiers, pris ensemble, contiennent le nom d'hôte local, la base de données locale des noms d'hôte et des adresses IP, l'adresse IP d'un serveur DNS et l'ordre dans lequel ces bases de données sont considérées.
/etc/nsswitch.conf Le fichier /etc/nsswitch.conf inclut des entrées de recherche de base de données pour tout, de l'authentification aux services de noms. En tant que fichier de changement de serveur de noms, il inclut l'entrée suivante qui détermine la base de données à rechercher en premier.
hôtes : fichiers DNS Lorsqu'un système reçoit une demande de recherche d'un nom d'hôte tel que outsider1.example. org, la directive précédente signifie que le fichier /etc/hosts est recherché en premier. Si ce nom n'est pas trouvé dans /etc/hosts, l'étape suivante consiste à rechercher les serveurs DNS configurés disponibles, en utilisant normalement celui configuré dans le fichier /etc/resolv.conf. Quelques composants logiciels plus anciens utilisent le fichier /etc/host.conf à cette fin. Le les entrées de ce fichier sont simples, car elles prennent en charge les recherches d'entrées multiples dans
Machine Translated by Google
54 Chapitre 3 : Compétences fondamentales en ligne de commande
/etc/hosts, ainsi qu'une recherche commençant par ce fichier, suivi d'un serveur DNS configuré avec le logiciel Berkeley Internet Name Domain (BIND).
multi sur commander des hôtes, lier
/etc/hosts Le fichier /etc/hosts est une base de données statique de noms d'hôtes/FQDN et d'adresses IP. Il convient aux petits réseaux relativement statiques. Cependant, cela peut être pénible pour les réseaux où les changements sont fréquents. Chaque fois qu'un système est ajouté ou supprimé, vous devrez modifier ce fichier, non seulement sur le système local, mais également sur tous les autres systèmes de ce réseau. Il est bien adapté aux systèmes de réseau local créés au chapitre 1. Une version simple du fichier peut inclure les entrées suivantes :
192.168.122.50 serveur1.exemple.com 192.168.122.150 testeur1.exemple.com 192.168.100.100 outsider1.exemple.org 127.0.0.1 localhost.localdomain localhost ::1 serveur1.exemple.com serveur1 localhost6.localdomain6 localhost6 En raison des entrées localhost IPv6, vous ne pouvez pas simplement copier ce fichier sur les trois systèmes de test. Cependant, il n'est pas difficile de remplacer une entrée comme server1 par tester1 dans un fichier /etc/hosts local. Dans certains cas, vous souhaiterez peutêtre configurer plusieurs entrées pour une adresse IP. Par exemple, les entrées suivantes peuvent être ajoutées pour spécifier les adresses IP des serveurs Web et FTP :
192.168.122.50 www.exemple.com 192.168.122.150 ftp.exemple.com /etc/resolv.conf Le fichier standard pour documenter l'emplacement des serveurs DNS est toujours /etc/resolv. conf. En règle générale, il aura une ou deux entrées, semblables à ce qui suit :
rechercher example.com serveur de noms 192.168.122.1 La directive de recherche ajoute le nom de domaine example.com aux recherches de noms d'hôtes simples. La directive nameserver spécifie l'adresse IP du DNS configuré
Machine Translated by Google
Configuration réseau et dépannage 55
serveur. En cas de doute sur le fonctionnement du serveur DNS, exécutez la commande suivante :
# creuser @192.168.122.1 mheducation.com
Si nécessaire, remplacez l'adresse IP associée à la directive nameserver dans votre fichier /etc/resolv.conf.
Options de configuration du nom d'hôte Pendant le processus de démarrage, le service réseau consulte le fichier /etc/sysconfig/network pour définir la valeur du nom d'hôte local. Ce n'est pas grave si ce nom d'hôte est défini comme un FQDN comme tester1.example.com. Comme suggéré précédemment, il s'agit d'un simple fichier, où le nom d'hôte peut être documenté avec une directive comme celleci : HOSTNAME=tester1.example.com
Bien entendu, vous pouvez modifier la valeur du nom d'hôte avec la commande hostname newname . Cependant, comme ces modifications ne sont pas reflétées dans le fichier /etc/ hosts ou sur un serveur DNS, ces modifications peuvent ne pas être très utiles.
L'applet du gestionnaire de réseau Le gestionnaire de réseau comprend également une applet pour aider les utilisateurs à gérer les connexions réseau configurées. Par exemple, sur mon système personnel, j'ai configuré une connexion Ethernet et une connexion sans fil. Lorsque je clique avec le bouton gauche sur l'applet réseau, cela révèle les connexions disponibles et actives, comme illustré à la Figure 314. Notez les connexions disponibles sur les réseaux câblés et sans fil. Je peux sélectionner différentes connexions comme je le souhaite. L'icône réelle associée à l'applet varie selon qu'il existe ou non une connexion active en cours. L'applet se trouve dans la zone supérieure droite de l'écran du bureau GNOME, près de la date et de l'heure, sur le panneau supérieur. (Pour aider à protéger la vie privée de mes voisins, les noms des réseaux sans fil illustrés à la Figure 314 ont été partiellement masqués.) Si vous cliquez avec le bouton droit sur l'applet Network Manager, un menu contenant des options de configuration s'affiche. Les options sont pour nos besoins explicites et triviales.
Machine Translated by Google
56 Chapitre 3 : Compétences fondamentales en ligne de commande
FIGURE 314
Un réseau Applet du gestionnaire
menu
SCÉNARIO & SOLUTION Le réseautage est en panne
Vérifiez les connexions physiques. Exécutez ifconfig pour vérifier les connexions actives. Exécutez la commande d'état /etc/init.d/network. Passez en revue le fichier /etc/sysconfig/network.
Impossible d'accéder aux systèmes distants
Utilisez la commande ping pour tester l'accès aux adresses IP locales, puis distantes.
Les paramètres réseau actuels entraînent des conflits
Vérifiez la configuration du périphérique réseau dans les fichiers /etc/sysconfig/networkscripts. Vérifiez les paramètres avec l'outil Connexions réseau.
Paramètres réseau non cohérents
Vérifiez la configuration du périphérique réseau dans les fichiers /etc/sysconfig/networkscripts. Vérifiez les paramètres avec l'outil Connexions réseau. Le scénario suggère un souhait pour une configuration de réseau statique, alors révisez en conséquence.
Le nom d'hôte n'est pas reconnu
Passez en revue /etc/sysconfig/network, exécutez la commande hostname, passez en revue /etc/hosts pour la cohérence.
Noms d'hôtes distants non reconnus
Passez en revue /etc/hosts. Vérifiez /etc/resolv.conf pour une adresse IP de serveur DNS appropriée. Exécutez la commande dig pour tester le serveur DNS.
Machine Translated by Google
Configuration réseau et dépannage 57
RÉSUMÉ DES CERTIFICATIONS L'objet de ce chapitre est double. Il couvrait les outils de ligne de commande de base anciennement associés aux prérequis de l'examen Red Hat. Comme ces objectifs ont été incorporés dans le corps principal de la RHCSA, ils ont été combinés avec la configuration du réseau, pour vous permettre de pratiquer ces outils de ligne de commande. La ligne de commande commence par un shell, un interpréteur qui vous permet d'interagir avec le système d'exploitation à l'aide de diverses commandes. Bien qu'aucun shell ne soit spécifié dans les objectifs, le shell par défaut dans la plupart des distributions Linux, y compris RHEL 6, est bash. Vous pouvez démarrer une invite de ligne de commande sur l'une des consoles par défaut ou sur un terminal de l'interface graphique. À l'invite bash, vous pouvez gérer les fichiers et répertoires à travers lesquels Linux est configuré et organisé. Comme les fichiers de configuration Linux sont généralement au format texte, ils peuvent être configurés comme des bases de données à rechercher et à modifier avec une variété de commandes. Les fichiers texte Linux peuvent être traités comme des flux de données pouvant être interprétés et traités. Pour modifier un fichier texte, vous avez besoin d'un éditeur de texte tel que vim et gedit. La documentation en ligne sous Linux est vaste. Cela commence par des commutateurs de commande tels que h et help qui fournissent des indications sur ce qui se passe avec une commande. Il continue avec les pages man et info. De nombreux packages incluent des fichiers de documentation complets dans le répertoire /usr/share/info. Dans de nombreux cas, voire la plupart, vous n'avez pas besoin d'un accès à Internet pour trouver les indices nécessaires. Linux est par nature un système d'exploitation réseau. Les périphériques réseau tels que eth0 peuvent être configurés avec des adresses IPv4 et IPv6. Les commandes de révision et de configuration du réseau incluent ifconfig, ifup, ifdown et dhclient. Les commandes connexes supplémentaires incluent arp, route, netstat et ping. Les fichiers de configuration associés commencent par /etc/sysconfig/network. Les périphériques individuels sont configurés dans le répertoire /etc/sysconfig/ networkscripts. Les périphériques réseau peuvent également être configurés avec la commande system confignetwork sur la console et l'outil Network Manager Network Connections.
Machine Translated by Google
58 Chapitre 3 : Compétences fondamentales en ligne de commande
EXERCICE DE DEUX MINUTES Voici quelquesuns des points clés des objectifs de certification du chapitre 3. Coquilles Le shell Linux par défaut est bash. Six consoles de ligne de commande sont disponibles par défaut ; si l'interface graphique est installée, elle
reprend la première console. Vous pouvez ouvrir plusieurs terminaux de ligne de commande dans l'interface graphique. Les shells fonctionnent avec trois flux de données : stdin, stdout et stderr. À cette fin,
la redirection de commande signifie que les flux de données peuvent être gérés avec des opérateurs tels que >, >\>, .
Outils de ligne de commande standard Tout sous Linux peut être réduit à un fichier. Des commandes telles que pwd et cd peuvent faciliter la navigation dans les répertoires. Des concepts tels que les chemins de répertoire, le PATH et le tilde (~) peuvent vous aider
comprendre et utiliser les commandes du shell. Les commandes de base vous permettent de trouver les fichiers nécessaires et de lire le contenu des fichiers. Ces
les commandes incluent ls, find et locate. Les commandes de création (et de suppression) de fichiers incluent touch, cp, ln, mv et rm ; les commandes de création et de suppression de répertoire correspondantes sont mkdir et rmdir.
Les commandes peuvent être personnalisées avec la commande alias.
La gestion des fichiers texte Linux est géré via une série de fichiers texte de configuration. Les fichiers texte peuvent être lus comme des flux de données avec des commandes telles que cat, less, more,
tête et queue.
Machine Translated by Google
Exercice de deux minutes 59
De nouveaux fichiers peuvent être créés, copiés, déplacés, liés et supprimés avec les commandes touch, cp, mv, ln et rm. Les commandes peuvent être personnalisées avec la commande alias.
Les filtres de fichiers tels que les commandes sort, grep, egrep, wc, sed et awk prennent en charge le traitement des flux de texte. Comprendre les éditeurs de texte est une compétence essentielle. Une version antérieure des objectifs RHCSA spécifiait l'utilisation de vim et gedit.
Documentation locale en ligne Si vous avez besoin d'un indice pour une commande, essayezle seul ; sinon, essayez les commutateurs h ou help. Les pages de manuel des commandes incluent souvent des exemples ; whatis et apropos peuvent rechercher des pages de manuel sur différents sujets. Si un manuel d'information est disponible pour une commande ou un fichier, vous le trouverez dans le répertoire /usr/share/info. De nombreux packages incluent une documentation complète et des exemples dans le répertoire /usr/share/doc.
Une introduction au réseautage Les adresses IPv4 ont 32 bits. Il existe cinq classes d'adresses IPv4 et trois ensembles différents d'adresses IPv4 privées adaptées à la configuration de TCP/IP sur un LAN.
Les adresses IPv6 ont 128 bits et peuvent être unicast, multicast ou anycast.
Les adresses de monodiffusion peuvent être limitées aux réseaux locaux ou routables. Des outils tels que ping, ping6, arp, ifconfig et netstat peuvent vous aider à diagnostiquer problèmes sur ce LAN. Les fichiers de configuration de résolution de noms tels que /etc/resolv.conf déterminent comment un système trouve la bonne adresse IP ; ce fichier peut être configuré à partir d'un serveur DHCP avec la commande dhclient.
Machine Translated by Google
60 Chapitre 3 : Compétences fondamentales en ligne de commande
Configuration et dépannage du réseau La mise en réseau Linux démarre avec le script /etc/init.d/network et le /etc/
fichier de configuration sysconfig/réseau. Les périphériques réseau individuels sont configurés dans le répertoire /etc/sysconfig/network scripts. Les outils de configuration réseau incluent le système de configuration basé sur la console
la commande network et l'outil Network Manager Network Connections. Les fichiers de configuration de nom d'hôte incluent /etc/nsswitch.conf, /etc/hosts et /etc/ resolv.conf.
Machine Translated by Google
Autotest 61
AUTOTEST Les questions suivantes vous aideront à mesurer votre compréhension du matériel présenté dans ce chapitre. Comme il n'y a pas de questions à choix multiples dans les examens Red Hat, il n'y a pas de questions à choix multiples dans ce livre. Ces questions testent exclusivement votre compréhension du chapitre. Obtenir des résultats, et non mémoriser des anecdotes, est ce qui compte pour les examens Red Hat.
Coquilles 1. Quel est le nom du shell Linux par défaut ? _______________________________________________ 2. À partir de l'interface graphique, quelle combinaison de touches passe à la console virtuelle 3 ?
_______________________________________________
(3) Outils de ligne de commande standard 3. Quelle commande unique crée la série de répertoires /abc/def/ghi/jkl ? _______________________________________________ 4. Quel symbole représente le répertoire personnel de l'utilisateur actuel ? _______________________________________________
La gestion des fichiers texte 5. Quelle commande liste les dix dernières lignes du fichier /var/log/messages ? _______________________________________________ 6. Quelle commande renvoie les lignes contenant le terme Linux à partir du fichier /var/log/dmesg ? _______________________________________________
Documentation locale en ligne 7. Quelle commande recherche dans la base de données des pages de manuel les manuels faisant référence au passwd fichier de commande et de configuration ? _______________________________________________ 8. S'il existe des pages de manuel pour la commande et le fichier hypothétiques abcde, dans les sections 5 et 8, saisissez la commande qui appellera à coup sûr les pages de manuel de la section 5 ? _______________________________________________
Machine Translated by Google
62 Chapitre 3 : Compétences fondamentales en ligne de commande
Une introduction au réseautage 9. Dans l'adressage IPv4, avec une adresse réseau de 192.168.100.0 et une adresse de diffusion de 192.168.100.255, quelle est la plage d'adresses IP attribuables ? _______________________________________________ 10. Compte tenu des adresses décrites à la question 9, quelle commande attribue l'adresse IPv4 192.168.100.100 au périphérique réseau eth0 ? _______________________________________________
Configuration et dépannage du réseau 11. Quel est le chemin d'accès complet au fichier de configuration avec le nom d'hôte du système local ? _______________________________________________ 12. Quel est le chemin d'accès complet au fichier de configuration associé au premier adaptateur Ethernet pour le système local ? _______________________________________________
QUESTIONS DE LABORATOIRE Plusieurs de ces laboratoires impliquent des exercices de configuration. Vous ne devez faire ces exercices que sur des machines de test. Il est supposé que vous exécutez ces exercices sur des machines virtuelles telles que KVM. Red Hat présente ses examens par voie électronique. Pour cette raison, la plupart des travaux pratiques de ce chapitre et des chapitres suivants sont disponibles sur le CD qui accompagne le livre, dans le sousrépertoire Chapter3/. Si vous n'avez pas encore configuré RHEL 6 sur un système, reportezvous au chapitre 1 pour les instructions d'installation. Les réponses pour chaque laboratoire suivent les réponses de l'autotest pour les questions à compléter.
Machine Translated by Google
Réponses à l'autotest 63
RÉPONSES À L'AUTOTEST Coquilles 1. Le shell Linux par défaut est bash, également connu sous le nom de shell BourneAgain. 2. À partir de l'interface graphique, la combinaison de touches vers la console virtuelle 3 est CTRLALTF3.
Outils de ligne de commande standard 3. La seule commande qui crée la série de répertoires /abc/def/ghi/jkl est mkdir p /abc/def/ghi/jkl. 4. Le symbole qui représente le répertoire personnel de l'utilisateur actuel est le tilde (~).
La gestion des fichiers texte 5. La commande qui liste les dix dernières lignes du fichier /var/log/messages est tail n10 /var/log/messages. 6. La commande qui renvoie les lignes contenant le terme Linux à partir du fichier /var/log/dmesg est grep Linux /var/log/ dmesg. D'autres variantes sont acceptables, telles que cat /var/log/dmesg | grep Linux.
Documentation locale en ligne 7. La commande qui recherche dans la base de données des pages de manuel les manuels faisant référence à la commande passwd et au fichier de configuration est whatis passwd. Les commandes apropos et man k vont plus loin, car elles répertorient les pages de manuel avec le texte « passwd » dans la commande ou la description. 8. La commande qui appelle la page de manuel de la section 5 pour l'hypothétique abcde com mand et le fichier est man 5 abcde.
Une introduction au réseautage 9. La plage d'adresses IP attribuables dans le réseau IPv4 indiqué est de 192.168.100.1 à 192.168.100.254. 10. Compte tenu des adresses décrites à la question 9, la commande qui attribue l'adresse IPv4 192.168.100.100 au périphérique réseau eth0 est ifconfig eth0 192.168.100.100.
Machine Translated by Google
64 Chapitre 3 : Compétences fondamentales en ligne de commande
Configuration et dépannage du réseau
11. Le chemin d'accès complet au fichier de configuration avec le nom d'hôte du système local est /etc/hosts. 12. Le chemin d'accès complet au fichier de configuration associé au premier adaptateur Ethernet pour le système local est /etc/sysconfig/networkscripts/ifcfgeth0. Si vous avez l'habitude de configurer des cartes réseau avec l'outil Connexions réseau, ifcfgSystem_eth0 est également acceptable.
RÉPONSES DE LABORATOIRE
Laboratoire 1
Ce laboratoire a testé la situation où la mise en réseau était désactivée avec le paramètre le plus inoffensif, la directive NETWORKING dans le fichier /etc/sysconfig/network. Lorsqu'il est défini sur non, ce paramètre désactive la mise en réseau sur un système. Rien d'autre n'est changé ; les informations d'adresse IP pour des cartes réseau spécifiques sont toujours correctes. Bien sûr, vous pouvez toujours activer la mise en réseau par d'autres moyens, mais à moins que NETWORKING=yes ne figure dans le fichier noté, de telles modifications ne survivraient pas à un redémarrage. Le script utilisé dans cet atelier a enregistré la copie originale de /etc/sysconfig/network dans le répertoire /root/backup. Maintenant que l'atelier est terminé, vous pouvez restaurer ce fichier à son emplacement d'origine. Attention, l'indicateur immuable a été appliqué au fichier copié ; pour le supprimer du répertoire /root/backup, vous devez d'abord supprimer le drapeau immuable avec la commande chattr i.
Laboratoire 2
Ce laboratoire a défini une configuration d'adresse IP non valide pour le premier adaptateur Ethernet, eth0. La norme pour les systèmes configurés au chapitre 1 est basée sur le réseau 192.168.122.0/24. Le fichier de configuration dans le répertoire /etc/ sysconfig/networkscripts peut porter des noms légèrement différents, selon la façon dont cet adaptateur a été configuré. Le fichier d'origine de ce répertoire a été déplacé vers le répertoire /root/backup. Si vos efforts pour recréer ce fichier de configuration échouent, restaurez le fichier de configuration d'origine à partir de ce répertoire /root/backup/. Attention, l'indicateur immuable a été appliqué au fichier copié ; pour le supprimer de /root/backup répertoire, vous devez d'abord supprimer l'indicateur immuable avec la commande chattr i. En fait, avant que Lab 3 ne fonctionne, vous devrez exécuter la commande suivante :
# chattr i /root/backup/*
Laboratoire 3
Ce laboratoire désactive le premier périphérique Ethernet du système et fonctionne si ce périphérique porte le nom de fichier de périphérique eth0 par défaut. Cela devrait également fonctionner si vous avez exécuté les connexions réseau de Network Manager
Machine Translated by Google
Autotest 65
outil sans changer trop de valeurs par défaut, car le script Ch3Lab3 désactive également le fichier de périphérique System_eth0.
Laboratoire 4
Ce laboratoire a remplacé le fichier /etc/resolv.conf. Si le réseau local utilise déjà un serveur DNS sur l'adresse IP 192.168.1.111, cet atelier ne devrait poser aucun problème. La version originale de ce fichier a été déplacée vers le répertoire /root/backup. Si vos efforts pour recréer ce fichier de configuration échouent, restaurez le fichier de configuration d'origine à partir de ce répertoire de sauvegarde.
Laboratoire 5
Dans cet atelier, vous configurerez le fichier /etc/hosts sur chacun des systèmes décrits au chapitre 1. À l'exception des paramètres système locaux ajoutés par le gestionnaire de réseau, les données dans /etc/hosts sur les trois systèmes peuvent être identique. Plus précisément, ce fichier doit inclure les entrées suivantes : 192.168.122.50 serveur1 serveur1.exemple.com 192.168.122.150 testeur1 testeur1.exemple.com 192.168.100.100 outsider1 outsider1.example.org
Peu importe que les systèmes soient sur des réseaux IP différents. Tant qu'il existe un chemin de routage entre les systèmes, ces données dans chaque fichier /etc/hosts fonctionneront. Et la duplication avec les données insérées par le gestionnaire de réseau n'est pas un problème, tant que les données sont cohérentes. En fait, il est possible de configurer plusieurs noms pour une adresse IP ; par exemple, si je configure un serveur Web sur le système 192.168.122.50, je pourrais ajouter l'entrée suivante à /etc/hosts. 192.168.122.50 www.exemple.com
Laboratoire 6
Les quatre premières lignes provenaient de la configuration d'origine d'une carte réseau eth0. Alors que les valeurs associées aux directives DEVICE, HWADDR, NM_CONTROLLED et ONBOOT n'ont pas changé, le format fourni par l'installation de RHEL 6 est différent.
Laboratoire 7
Si vous avez utilisé l'outil Connexions réseau, il peut y avoir un fichier ifcfgSystem_eth0 à la place du fichier ifcfgeth0. L'outil systemconfignetwork peut toujours gérer ce fichier. Assurezvous simplement de remplacer en conséquence. Assurezvous de connaître les paramètres associés aux directives telles que USERCTL, BOOTPROTO et DNS1.
Machine Translated by Google
4 Niveau RHCSA Options de sécurité
OBJECTIFS DE LA CERTIFICATION 4.01
Autorisations de fichier de base
4.02
Listes de contrôle d'accès et plus
4.03
Contrôle de base du parefeu
4.04 Une introduction à la sécurité de Linux Exercice de deux minutes Autotest Q&R
Machine Translated by Google
2 Chapitre 4 : Options de sécurité de niveau RHCSA
La sécurité Linux commence par un concept connu sous le nom de "contrôles d'accès discrétionnaires". Ils comprennent les autorisations et la propriété associées aux fichiers et aux répertoires. Les autorisations par défaut sur les nouveaux fichiers dépendent du umask. Les autorisations peuvent aller plus loin avec des bits spécialisés. Les contrôles d'accès discrétionnaires Linux peuvent être configurés de manière plus précise à l'aide de listes de contrôle d'accès (ACL). Ces ACL prennent en charge les autorisations accordées à des utilisateurs spécifiques, remplaçant la propriété et les autorisations standard.
Le parefeu fait également partie du domaine de la sécurité. Dans ce chapitre, vous examinerez le pare feu par défaut, comment il fonctionne avec la commande iptables et comment il peut également être configuré avec les outils de configuration du parefeu Red Hat. Ce que vous créez peut être davantage protégé par un autre type de sécurité appelé «contrôle d'accès obligatoire». L'implémentation RHEL 6 de ce type est connue sous le nom de SecurityEnhanced Linux (SELinux). Red Hat s'attend à ce que vous travailliez avec SELinux activé lors de leurs examens. À cette fin, vous examinerez comment définir des modes d'application, modifier les contextes de fichiers, utiliser des paramètres booléens et diagnostiquer les violations de politique SELinux. Si vous démarrez avec l'installation par défaut créée au cours du processus d'installation, vous devrez peutêtre installer des packages supplémentaires au cours de ce chapitre. Si une installation réseau est disponible, prenez le nom du package et appliquezlui la commande yum install. Par exemple, pour examiner l'outil de configuration de parefeu basé sur l'interface graphique, vous devrez l'installer avec la commande suivante :
# yum install systemconfigfirewall Pour plus d'informations sur le processus, voir le chapitre 7.
À L'INTÉRIEUR DE L'EXAMEN À L'INTÉRIEUR DE L'EXAMEN
Autorisations de fichier de base
■ Répertorier, définir et modifier les autorisations ugo/ rwx standard Les autorisations standard pour les
La sécurité sous Linux commence par les autorisations accordées aux fichiers. Comme tout sous Linux peut être
fichiers Linux sont définies pour les utilisateurs, les groupes
défini comme un fichier, c'est un excellent début. Dans tous
et autres, ce qui conduit à l' ugo. Ces autorisations sont en
les cas, l'objectif associé, une fois compris, est assez simple :
lecture, en écriture et en exécution, ce qui définit le fichier rwx.
Machine Translated by Google
Autorisations de fichiers de base 3
Ces autorisations sont définies comme un contrôle d'accès
ce qui est nécessaire, Red Hat a décomposé les
discrétionnaire, par opposition au système de contrôle
objectifs liés à SELinux. Le premier objectif est
d'accès obligatoire connu sous le nom de SELinux,
fondamental pour SELinux, car il concerne les trois
également abordé dans ce chapitre.
modes disponibles pour SELinux sur un système (enforcing/ permissive/disabled) :
Listes de contrôle d'accès Les ACL peuvent être configurées pour remplacer les autorisations de fichiers de base. Par exemple, avec les ACL, vous pouvez configurer un fichier dans votre
■ Définir les modes d'application/permissif pour
SELinux L'objectif suivant nécessite que vous compreniez les contextes SELinux définis pour différents fichiers
répertoire personnel qui peut être lu par un nombre limité
et processus. Bien que les commandes associées
d'autres utilisateurs et groupes. L'objectif associé de
soient simples, les contextes disponibles sont aussi larges que le nombre de services disponibles sur Linux :
RHCSA est : ■ Créer et gérer des listes de contrôle d'accès (ACL)
■ Lister et identifier le fichier SELinux et contextes de processus
Contrôle du parefeu Tel qu'il est configuré sous Linux, un parefeu peut bloquer le trafic sur tous les ports réseau sauf quelquesuns. Il peut également être utilisé pour réguler le trafic de plusieurs autres manières, mais cela relève de l'examen RHCE. L'objectif RHCSA associé est le suivant : ■ Configurer les paramètres du parefeu à l'aide de systemconfigfirewall ou iptables
Au fur et à mesure que vous expérimentez avec différents contextes SELi nux, des erreurs se produisent. Vous ne vous souvenez peutêtre pas des contextes par défaut associés aux répertoires importants. Mais avec les bonnes commandes, vous n'avez pas à vous souvenir de tout, comme le suggère l'objectif suivant, il est relativement facile de restaurer la valeur par défaut : ■ Restaurer les contextes de fichiers par défaut Enfin, le dernier objectif peut sembler complexe. Mais les paramètres booléens associés à SELinux ont des noms descriptifs.
Linux sécurisé Il n'y a pas moyen de contourner cela. Lors des examens Red Hat, vous
D'excellents outils sont disponibles pour clarifier davantage les contextes booléens disponibles. Essentiellement, cela
devez travailler avec SELi nux. Il n'est pas clair si vous
signifie que pour exécuter un certain service sous SELinux,
pouvez même réussir les examens Red Hat à moins qu'au moins certains services ne soient configurés avec SELinux
tout ce que vous avez à faire est d'activer un (ou plusieurs)
à l'esprit. Pour aider les candidats à l'examen à comprendre
commutateurs : ■ Utilisez les paramètres booléens pour modifier les paramètres système SELinux
Machine Translated by Google
4 Chapitre 4 : Options de sécurité de niveau RHCSA
OBJECTIF DE CERTIFICATION 4.01
Autorisations de fichier de base La sécurité de base d'un ordinateur Linux est basée sur les autorisations de fichiers. Les autorisations de fichier par défaut sont définies via la variable shell umask. Les autorisations de super utilisateur peuvent être configurées pour donner à tous les utilisateurs et/ou groupes l'accès à des fichiers spécifiques. Ceuxci sont connus sous le nom de bits d'autorisation spéciale d'ID de super utilisateur (SUID) et d'ID de super groupe (SGID). La propriété est basée sur les identifiants d'utilisateur et de groupe par défaut de la personne qui a créé un fichier. La gestion des autorisations et de la propriété implique des commandes telles que chmod, chown et chgrp. Avant d'explorer ces commandes, il est important de comprendre les autorisations et la propriété associées à un fichier.
Autorisations de fichiers et propriété Les autorisations et la propriété des fichiers Linux sont simples. Comme suggéré par l'objectif associé, ils sont lus, écrits et exécutés, classés par l'utilisateur, le groupe et tous les autres utilisateurs. Considérez la sortie suivante de ls l /sbin/fdisk : rwxrxrx. 1 racine racine 103432 13 août 01:23 /sbin/fdisk Les autorisations sont affichées sur le côté gauche de la liste. Dix personnages sont montré. Le premier caractère détermine s'il s'agit d'un fichier normal ou spécial. Les neuf caractères restants sont regroupés par trois, applicables au propriétaire du fichier (utilisateur), au propriétaire du groupe et à tous les autres sur ce système Linux. Les lettres sont simples : r = lire, w = écrire, x = exécuter. Ces autorisations sont décrites dans le Tableau 41.
TABLEAU 41
Position
Description
Description de
1
Type de fichier ; = fichier normal, d = répertoire, b = périphérique, l = fichier lié
Autorisations de fichier
234
Autorisations accordées au propriétaire du fichier
567
Autorisations accordées au groupe propriétaire du fichier
890
Autorisations accordées à tous les autres utilisateurs sur le système Linux
Machine Translated by Google
Autorisations de base sur les fichiers 5
Il est courant que l'utilisateur et le groupe propriétaires d'un fichier portent le même nom. Dans ce Dans ce cas, l'utilisateur root est membre du groupe root. Mais ils n'ont pas besoin d'avoir le même nom. Par exemple, les répertoires conçus pour la collaboration entre utilisateurs peuvent appartenir à un groupe spécial. Comme indiqué au chapitre 8, cela implique des groupes avec plusieurs utilisateurs réguliers en tant que membres. Il y a un élément relativement nouveau avec des permissions. C'est subtil. Remarquez le point après le dernier x dans la sortie de la commande ls l /sbin/fdisk ? Il spécifie le contrôle par SELinux. Si vous avez configuré des autorisations ACL sur un fichier, ce point est remplacé par un signe plus (+). Mais ce symbole ne remplace pas le contrôle SELinux. Vous devez envisager un autre type d'autorisation : le bit spécial. Non seulement ce sont les bits SUID et SGID, mais aussi une autre autorisation spéciale connue sous le nom de bit collant. Un exemple du bit SUID est associé à la commande passwd, dans le répertoire /usr/bin. La commande ls l sur ce fichier conduit au résultat suivant :
rwsrxrx. 1 racine racine 31768 28 janvier 2010 /usr/bin/passwd Le s dans le bit d'exécution pour l'utilisateur propriétaire du fichier est le bit SUID. Cela signifie que le fichier peut être exécuté par d'autres utilisateurs avec l'autorité du propriétaire du fichier, l'utilisateur administratif root. Mais cela ne signifie pas que n'importe quel utilisateur peut modifier les mots de passe d'autres utilisateurs. L'accès à la commande passwd est en outre réglementé par les modules d'authentification enfichables (PAM) décrits au chapitre 10, une compétence RHCE. Un exemple du bit SGID peut être trouvé avec la commande sshagent, également dans le répertoire / usr/bin. Il dispose du bit SGID pour stocker correctement les phrases secrètes décrites au chapitre 11, qui prend en charge les connexions les plus sécurisées entre le client SSH et le serveur. La commande ls l sur ce fichier affiche la sortie suivante :
rwxrsrx. 1 racine personne 112000 12 août 07:04 /usr/bin/sshagent Le s dans le bit d'exécution pour le groupe propriétaire du fichier (groupe personne) est le bit SGID. Enfin, un exemple de sticky bit se trouve dans les permissions du /tmp annuaire. Cela signifie que les utilisateurs peuvent copier leurs fichiers dans ce répertoire, tout en conservant la propriété de ces fichiers (qui est le "collant"). La commande ls ld sur ce répertoire affiche la sortie suivante :
drwxrwxrwt. 22 racine racine 4096 15 décembre 17:15 /tmp/ Le t dans le bit d'exécution pour les autres utilisateurs est le bit collant.
Machine Translated by Google
6 Chapitre 4 : Options de sécurité de niveau RHCSA
La faille dans les autorisations d'écriture Il est facile de supprimer les autorisations d'écriture d'un fichier. Par exemple, si vous souhaitez rendre le fichier license.txt "en lecture seule", la commande suivante supprime les autorisations d'écriture de ce fichier : $ chmod aw license.txt Mais l'utilisateur propriétaire du fichier peut toujours apporter des modifications. Cela ne fonctionnera pas dans le texte de l'interface graphique
des éditeurs tels que gedit. Cela ne fonctionnera même pas dans l'éditeur de texte nano. Cependant, si une modification est apportée dans l'éditeur de texte vi, l'utilisateur propriétaire de ce fichier peut remplacer le manque d'autorisations d'écriture par le caractère bang, qui ressemble à un point d'exclamation (!). En d'autres termes, dans l'éditeur vi, l'utilisateur propriétaire du fichier peut exécuter la commande suivante pour remplacer l'absence d'autorisations d'écriture :
!w
Concepts de base des utilisateurs et des groupes Linux, comme Unix, est configuré avec des utilisateurs et des groupes. Tous ceux qui utilisent Linux sont configurés avec un nom d'utilisateur, même s'il s'agit simplement d'"invité". Il y a même un utilisateur standard nommé « personne ». Jetez un œil à /etc/passwd. Une version de ce fichier est illustrée à la Figure 41.
FIGURE 41 Le fichier /etc/ passwd.
Machine Translated by Google
Autorisations de base sur les fichiers 7
Comme indiqué, tous les types de noms d'utilisateur sont répertoriés dans le fichier /etc/passwd. Même un certain nombre de services Linux tels que mail, news, ftp et apache ont leurs propres noms d'utilisateur. Dans tous les cas, le fichier /etc/passwd suit un format spécifique, décrit plus en détail au chapitre 8. Pour l'instant, notez que les seuls utilisateurs réguliers affichés dans ce fichier sont examprep et michael, leurs ID utilisateur (UID) et ID de groupe (GID) sont 500 et 501, et leurs répertoires personnels correspondent à leurs noms d'utilisateur. L'utilisateur suivant obtient l'UID et le GID 502, et bientôt.
Cette correspondance des UID et des GID est basée sur le schéma de groupe privé d'utilisateurs Red Hat. Exécutez maintenant la commande ls l /home. La sortie doit ressembler à ce qui suit.
drwx. 4 examprep examprep 4096 15 décembre 16:12 examprep drwx. 4 michael michael 4096 16 décembre 14:00 michael Attention aux autorisations. Basé sur les concepts rwx/ugo décrits précédemment dans ce chapitre, seul l'utilisateur nommé propriétaire a accès aux fichiers de son répertoire personnel.
L'umask La façon dont umask fonctionne dans Red Hat Enterprise Linux peut être surprenante, surtout si vous venez d'un environnement de style Unix différent. Vous ne pouvez pas configurer umask pour autoriser la création automatique de nouveaux fichiers automatiquement avec des autorisations exécutables. Cela favorise la sécurité : si moins de fichiers ont des autorisations exécutables, moins de fichiers sont disponibles pour qu'un pirate puisse les utiliser pour exécuter des programmes pour percer votre système. Dans le monde de Linux, un hacker est une bonne personne qui veut simplement créer de meilleurs logiciels. Un cracker est quelqu'un qui veut s'introduire dans votre système à des fins malveillantes. Dans le monde de la sécurité informatique, ces termes peuvent être traduits respectivement par « hacker au chapeau blanc » et « hacker au chapeau noir ». Chaque fois que vous créez un nouveau fichier, les autorisations par défaut sont basées sur la valeur de umask. Dans le passé, la valeur de umask annulait la valeur des autorisations numériques sur un fichier. Par exemple, si la valeur de umask est 000, les autorisations par défaut pour tout fichier créé par cet utilisateur étaient autrefois 777 – 000 = 777, ce qui correspond aux autorisations de lecture, d'écriture et d'exécution pour tous les utilisateurs. Ils sont maintenant 666, car les nouveaux fichiers réguliers ne peuvent plus obtenir d'autorisations exécutables. Les répertoires, en revanche, nécessitent des autorisations exécutables pour que tout fichier qu'ils contiennent puisse être lu.
Machine Translated by Google
8 Chapitre 4 : Options de sécurité de niveau RHCSA
Lorsque vous tapez la commande umask, la commande renvoie une sortie à quatre chiffres comme 0245. Au moment d'écrire ces lignes, le premier nombre dans la sortie umask est toujours 0 et n'est pas utilisé. À l'avenir, ce premier numéro pourra être utilisé pour autoriser de nouveaux fichiers qui incluent automatiquement les bits SUID ou SGID. De plus, quelle que soit la valeur de umask, les nouveaux fichiers dans Red Hat Enterprise Linux ne peuvent plus être automatiquement créés avec des autorisations exécutables. En d'autres termes, une valeur umask de 0454 conduit à des autorisations identiques sur les nouveaux fichiers en tant que valeur umask de 0545. Vous devez utiliser des commandes telles que chmod pour définir des autorisations exécutables sur un fichier spécifique.
L'umask par défaut Dans cet esprit, le umask par défaut est piloté par le fichier /etc/bashrc, en particulier la strophe suivante, qui pilote une valeur pour umask en fonction de la valeur de l'UID :
if [ $UID gt 199 ] && [ "'id gn'" = "'id un'" ]; alors masque 002 autre masque 022 Fi
En d'autres termes, l'umask pour les comptes d'utilisateurs avec des UID de 200 et plus est 002. En revanche, l'umask pour les UID inférieurs à 200 est 022. Dans RHEL 6, les utilisateurs de services tels que adm, postfix et apache ont des UID inférieurs ; cela affecte principalement les autorisations des fichiers journaux créés pour ces services. Bien sûr, l'utilisateur administratif root a l'UID le plus bas de 0. Par défaut, les fichiers créés pour ces utilisateurs ont 644 autorisations ; les répertoires créés pour ces utilisateurs ont 755 autorisations. En revanche, les utilisateurs réguliers ont un UID de 500 et plus. Les fichiers créés par ces utilisateurs ont normalement 664 autorisations. Les répertoires créés par ces utilisateurs ont normalement 775 autorisations.
Commandes pour modifier les autorisations et la propriété Les commandes clés qui peuvent vous aider à gérer les autorisations et la propriété d'un fichier sont chmod, chown et chgrp. Dans les soussections suivantes, vous examinerez comment utiliser ces commandes pour modifier les autorisations ainsi que l'utilisateur et le groupe qui possèdent un fichier spécifique, voire une série de fichiers. Une astuce qui peut vous aider à modifier les autorisations sur une série de fichiers est le commutateur R. C'est le commutateur récursif pour ces trois commandes. Autrement dit, si
Machine Translated by Google
Autorisations de base sur les fichiers 9
vous spécifiez le commutateur R avec l'une des commandes notées sur un répertoire, il applique les modifications de manière récursive. Les modifications sont appliquées à tous les fichiers de ce répertoire, y compris tous les sousrépertoires. La récursivité signifie que les modifications sont également appliquées aux fichiers de chaque sousrépertoire, et ainsi de suite.
La commande chmod La commande chmod utilise la valeur numérique des autorisations associées au propriétaire, au groupe et à d'autres. Sous Linux, les autorisations sont affectées des valeurs numériques suivantes : r = 4, w = 2 et x = 1. Par exemple, si vous étiez assez fou pour vouloir donner des autorisations de lecture, d'écriture et d'exécution sur fdisk à tous les utilisateurs, vous pourrait exécuter la commande chmod 777 /sbin/fdisk. Les commandes chown et chgrp ajustent les propriétaires d'utilisateurs et de groupes associés au fichier cité.
La commande chmod est flexible. Vous n'êtes pas toujours obligé d'utiliser des chiffres. Par exemple, la commande suivante définit les autorisations d'exécution pour l'utilisateur propriétaire du fichier Ch3Lab1 :
# chmod u+x Ch3Lab1 Notez comment le u et le x suivent le format ugo/rwx spécifié dans l'objectif RHCSA associé. Pour interpréter, cette commande ajoute (avec le signe plus) pour l'utilisateur propriétaire du fichier (avec le u) les permissions d'exécution (avec le x). Ces symboles peuvent être combinés. Par exemple, la commande suivante désactive les autorisations d'écriture pour le propriétaire du groupe et tous les autres utilisateurs sur le fichier local nommé special :
# spécial chmod gow Bien que vous puissiez utiliser les trois types d'utilisateurs dans la commande chmod, ce n'est pas nécessaire. Comme décrit dans les travaux pratiques du chapitre 3, la commande suivante rend le fichier noté exécutable par tous les utilisateurs :
# chmod +x Ch3Lab2 Pour les bits SUID, SGID et sticky, certaines options spéciales sont disponibles. Si vous choisissez d'utiliser des bits numériques, ces bits spéciaux reçoivent également des valeurs numériques, où SUID = 4, SGID = 2 et sticky bit = 1. Par exemple, la commande suivante configure le bit SUID. Il inclut les autorisations rwx pour le propriétaire de l'utilisateur, l'autorisation rx pour le propriétaire du groupe et les autorisations r pour les autres utilisateurs, sur le fichier nommé testfile :
# fichier de test chmod 4764
Machine Translated by Google
10 Chapitre 4 : Options de sécurité de niveau RHCSA
Si vous préférez utiliser le format ugo/rwx, la commande suivante active le Bit SGID pour le fichier testscript local :
# script de test chmod g+s Et la commande suivante active le sticky bit pour le répertoire /test :
# chmod o+t /test Bien que la commande chmod décrite dans cette section suppose que les modifications sont apportées par l'utilisateur administratif root, cela n'est pas toujours nécessaire. L'utilisateur propriétaire d'un fichier est autorisé à modifier les autorisations associées à ce fichier.
La commande chown La commande chown peut être utilisée pour modifier l'utilisateur qui possède un fichier. Par exemple, jetez un œil à la propriété de la première figure que j'ai créée pour ce chapitre, basée sur la commande ls l :
rwrr. 1 michael examprep 855502 Oct 25 14:07 F0401.tif L'utilisateur propriétaire de ce fichier est michael ; le groupe propriétaire de ce fichier est exampleprep. La commande chown affichée change le propriétaire de l'utilisateur en utilisateur elizabeth :
# chown elizabeth F0401.tif Vous pouvez faire plus avec chown ; par exemple, la commande suivante modifie à la fois l'utilisateur et le propriétaire du groupe du fichier noté à l'utilisateur donna et aux superviseurs de groupe, en supposant que l'utilisateur et le groupe existent déjà.
# chown donna.superviseurs F0401.tif
La commande chgrp Vous pouvez changer le propriétaire du groupe d'un fichier avec la commande chgrp. Par exemple, la commande suivante remplace le propriétaire du groupe du répertoire F0401.tif noté par le groupe nommé projet (en supposant qu'il existe) :
# projet chgrp F0401.tif
Machine Translated by Google
Autorisations de base sur les fichiers 11
Attributs de fichiers spéciaux Juste au delà des permissions régulières rwx/ugo se trouvent les attributs de fichiers. Ces attributs peuvent vous aider à contrôler ce que n'importe qui peut faire avec différents fichiers. Alors que la commande lsattr répertorie les attributs de fichier actuels, la commande chattr peut vous aider à modifier ces attributs. Par exemple, la commande suivante protège /etc/fstab d'une suppression accidentelle, même par l'administrateur root :
# chattr +i /etc/fstab Avec cet attribut, si vous essayez de supprimer ce fichier en tant qu'utilisateur administratif root, vous obtiendrez la réponse suivante :
# rm /etc/fstab rm : supprimer le fichier normal `/etc/fstab' ? y rm : impossible de supprimer `/etc/fstab' : opération non autorisée La commande lsattr montre comment la commande chattr +i précédente a ajouté le attribut immuable à /etc/fstab :
# lsattr /etc/fstab i e /etc/fstab Bien sûr, l'utilisateur administratif root peut désactiver cet attribut avec ce qui suit commande. Néanmoins, le refus initial de supprimer le fichier devrait au moins faire réfléchir cet administrateur avant que des modifications ne soient apportées :
# chattr i /etc/fstab Plusieurs attributs clés sont décrits dans le Tableau 42. D'autres attributs, tels que c (compressé), s (suppression sécurisée) et u (non supprimable) ne fonctionnent pas pour les fichiers stockés dans les systèmes de fichiers ext2, ext3 et ext4. L'attribut de format d'étendue est associé aux systèmes ext4. TABLEAU 42
Attributs de fichier
Attribut
Description
ajouter seulement (a)
Empêche la suppression, mais autorise l'ajout à un fichier. Par exemple, si vous avez exécuté chattr +a tester, cat /etc/fstab >\> tester ajoutera le contenu de /etc/fstab à la fin du fichier testeur. pas de vidage (d) Interdit les sauvegardes du fichier configuré avec la commande dump. format d'extension
(e) Défini avec le système de fichiers ext4 ; un attribut qui ne peut pas être supprimé. immuable (i)
Empêche la suppression ou tout autre type de modification d'un fichier.
indexé (I)
Défini sur des répertoires pour l'indexation avec des arbres hachés ; un attribut qui ne peut pas être supprimé.
Machine Translated by Google
12 Chapitre 4 : Options de sécurité de niveau RHCSA
OBJECTIF DE CERTIFICATION 4.02
Listes de contrôle d'accès et plus Il fut un temps où les utilisateurs avaient accès en lecture aux fichiers de tous les autres utilisateurs. Mais par défaut, les utilisateurs n'ont des autorisations que dans leurs propres répertoires. Avec les ACL, vous pouvez accorder à des utilisateurs sélectionnés des autorisations de lecture, d'écriture et d'exécution sur des fichiers sélectionnés dans votre répertoire personnel. Il fournit un deuxième niveau de contrôle d'accès discrétionnaire, une méthode qui prend en charge le remplacement des autorisations ugo/rwx standard. À proprement parler, les autorisations ugo/rwx régulières constituent le premier niveau de contrôle d'accès discrétionnaire. En d'autres termes, les ACL commencent par la propriété et les autorisations décrites précédemment dans ce chapitre. Vous verrez bientôt comment cela s'affiche avec les commandes ACL.
Pour configurer les ACL, vous devrez configurer le système de fichiers approprié avec le option ACL. Ensuite, vous devrez configurer les autorisations d'exécution sur les répertoires associés. Ce n'est qu'alors que vous pourrez configurer les ACL avec les autorisations souhaitées pour les utilisateurs appropriés.
Maintenant que RHEL 6 utilise la version 4 de Network File System (NFS), ces ACL peuvent être partagées sur un réseau.
Chaque fichier a déjà une ACL Comme le suggère le titre, chaque fichier est déjà configuré avec une liste de contrôle d'accès. En supposant que le package acl est installé, vous devriez avoir accès à la commande getfacl, qui affiche les ACL actuelles d'un fichier. Par exemple, la commande suivante affiche les ACL actuelles pour le fichier anacondaks.cfg dans le répertoire /root :
# fichier : anacondaks.cfg # propriétaire : root # groupe : root utilisateur :: rw
groupe :: autre ::
Exécutez la commande ls l /root/anacondaks.cfg. Vous devez reconnaître chaque élément des ACL affichés ici dans la sortie. Les ACL que vous ajouterez sous peu sont en plus de celles présentées ici. Mais d'abord, vous devrez créer un système de fichiers compatible avec ce deuxième niveau d'ACL.
Machine Translated by Google
Listes de contrôle d'accès et plus 13
Rendre une ACL de système de fichiers conviviale Avant qu'un fichier ou un répertoire puisse être configuré avec des ACL, vous devez monter le système de fichiers associé avec le même attribut. Si vous testez simplement un système pour ACL, vous pouvez remonter une partition existante de manière appropriée. Par exemple, si /home est monté sur /dev/sda3, je peux le remonter avec ACL en utilisant la commande suivante :
# mount o remount o acl /dev/sda3 /home Pour vous assurer que c'est ainsi que /home est monté au prochain redémarrage, modifiez /etc/fstab. D'après la commande précédente, la ligne associée peut se présenter comme suit :
/dev/sda3
/maison
poste3
valeurs par défaut, ACL
1,2
Dans la plupart des cas sur RHEL 6, vous verrez UUID=somelargehexidecimalnumber à la place du fichier de périphérique. Une fois la modification apportée à /etc/fstab, vous pouvez l'activer avec la commande suivante :
# monter o remonter /home Pour confirmer que le répertoire /home est monté avec l'option acl, exécutez la commande mount seule, sans commutateurs ni options. Vous devriez voir acl dans la sortie similaire à ce qui est montré ici :
/dev/sda3 sur /home tapez ext4 (rw,acl) Vous pouvez maintenant commencer à utiliser les commandes ACL pour définir des contrôles d'accès secondaires sur les fichiers et répertoires souhaités.
Gérer les ACL sur un fichier Désormais, avec un système de fichiers correctement monté et les autorisations appropriées, vous pouvez gérer les ACL sur un système. Pour passer en revue les ACL par défaut, exécutez la commande getfacl filename . Pour cet exemple, j'ai créé un fichier texte nommé TheAnswers dans le répertoire /home/examprep. Voici la sortie de la commande getfacl /home /examprep/TheAnswers :
# fichier home/examprep/TheAnswers # propriétaire : examprep # groupe : surveillants utilisateur :: rw
groupe ::r autre ::
Machine Translated by Google
14 Chapitre 4 : Options de sécurité de niveau RHCSA
Notez que le fichier TheAnswers appartient à l'utilisateur examprep et aux surveillants de groupe. Cet utilisateur propriétaire dispose d'autorisations de lecture et d'écriture ; ce propriétaire de groupe a des autorisations de lecture sur ce fichier. En d'autres termes, alors que l'utilisateur d'examprep peut modifier le fichier Answers, les utilisateurs membres du groupe de surveillants peuvent lire le fichier TheAnswers. Maintenant, si vous étiez l'examprep ou l'utilisateur root sur ce système, vous pourriez assigner ACL pour le fichier nommé TheAnswers pour moimême (utilisateur michael) avec la commande setfacl. Par exemple, la commande suivante me donne des autorisations de lecture sur ce fichier :
# setfacl mu:michael:rwx /home/examprep/LesRéponses Cette commande modifie les ACL pour le fichier indiqué, en modifiant (m) les ACL pour l'utilisateur michael, en accordant à cet utilisateur des autorisations de lecture, d'écriture et d'exécution sur ce fichier. Pour confirmer, exécutez la commande getfacl sur ce fichier, comme illustré à la Figure 42. Mais lorsque j'essaie d'accéder à ce fichier à partir de mon compte utilisateur, cela ne fonctionne pas. En fait, si j'essaie d'accéder au fichier avec l'éditeur de texte vi, cela suggère que le fichier /home/examprep/ TheAnswers est un nouveau fichier. Et puis il refuse d'enregistrer les modifications que je pourrais apporter à ce fichier. Avant que les fichiers du répertoire /home/examprep ne soient accessibles, l'utilisateur administratif devra modifier les autorisations ou les paramètres ACL associés à ce répertoire. Avant de passer à la modification des contrôles d'accès discrétionnaires sur un répertoire, explorons différentes commandes setfacl.
Malgré son nom, la commande setfacl peut être utilisée pour supprimer ces privilèges ACL avec le commutateur x. Par exemple, la commande suivante supprime les privilèges rwx précédemment configurés pour l'utilisateur michael :
# setfacl xu:michael /home/examprep/LesRéponses
FIGURE 42 Les ACL d'un fichier
Machine Translated by Google
Listes de contrôle d'accès et plus 15
De plus, la commande setfacl peut être utilisée avec des groupes ; par exemple, si le groupe des enseignants existe, la commande suivante donnerait des privilèges de lecture aux utilisateurs qui sont membres de ce groupe :
# setfacl mg:teachers:r /home/examprep/TheAnswers Si vous voulez voir comment fonctionnent les ACL, ne supprimez pas les privilèges ACL sur le Le fichier Réponses, du moins pas encore. Alternativement, si vous voulez recommencer, la commande suivante, avec le commutateur b, supprime toutes les entrées ACL sur le fichier noté.
# setfacl b /home/examprep/LesRéponses Certains des commutateurs disponibles pour la commande setfacl sont présentés dans le Tableau 43 : Une option légèrement dangereuse concerne les autres utilisateurs. Par exemple, la commande suivante :
# setfacl mo:rwx /home/examprep/LesRéponses accorde aux autres utilisateurs des autorisations de lecture, d'écriture et d'exécution pour le fichier TheAnswers. Pour ce faire, il modifie les autorisations principales du fichier, comme indiqué dans la sortie de la commande ls l /home/examprep/TheAnswers. Les commutateurs b et x ne suppriment pas ces modifications ; vous devez utiliser l'une des commandes suivantes :
# setfacl mo: /home/examprep/LesRéponses # chmod orwx /home/examprep/TheAnswers
TABLEAU 43
Changer
Description
Description de
b (removeall) Supprime toutes les entrées ACL ; conserve les autorisations standard ugo/rwx
Autorisations de fichier
k
Supprime les entrées ACL par défaut
m
Modifie l'ACL d'un fichier, normalement avec un utilisateur (u) ou un groupe (g) spécifique
n (masque)
Omet le masque lors du recalcul des autorisations
R
Applique les modifications de manière récursive
X
Supprime une entrée ACL spécifique
Machine Translated by Google
16 Chapitre 4 : Options de sécurité de niveau RHCSA
Configurer un répertoire pour les ACL Il existe deux manières de configurer un répertoire pour les ACL. Tout d'abord, vous pouvez définir le bit d'exécution normal pour tous les autres utilisateurs. Une façon de le faire sur le répertoire indiqué consiste à utiliser la commande suivante :
# chmod 701 /home/examprep Il s'agit d'un moyen minimal de fournir l'accès aux fichiers d'un répertoire. Les utilisateurs autres que exampleprep et root ne peuvent pas répertorier les fichiers de ce répertoire. Ils doivent savoir que le fichier TheAnswers existe réellement pour accéder à ce fichier. Cependant, avec le bit d'exécution défini pour les autres utilisateurs, n'importe quel utilisateur peut accéder aux fichiers du répertoire /home/examprep pour lesquels il a l'autorisation. Cela devrait lever un drapeau de sécurité. Un utilisateur ? Même si le fichier est caché, avezvous déjà voulu donner de vrais privilèges à tous les utilisateurs ? Bien sûr, les ACL ont été définies uniquement pour le fichier TheAnswers dans ce répertoire /home/ examprep, mais c'est une couche de sécurité que vous avez supprimée volontairement.
La bonne approche consiste à appliquer la commande setfacl au répertoire /home/examprep. La commande suivante fournit des autorisations d'exécution car le contrôle associé aux autorisations régulières est limité ; les bonnes ACL peuvent permettre aux administrateurs d'accorder un accès en lecture, en écriture et en exécution à une variété d'utilisateurs et de groupes. Ainsi, le moyen le plus sûr de configurer le partage consiste à définir les autorisations d'exécution ACL uniquement pour le compte d'utilisateur michael sur le répertoire indiqué, avec la commande suivante :
# setfacl mu:michael:x /home/examprep Comme l'utilisateur d'examprep est le propriétaire du répertoire /home/examprep, cet utilisateur peut également exécuter la commande setfacl notée. Parfois, vous souhaiterez peutêtre appliquer de telles ACL à tous les fichiers d'un répertoire. Dans ce Dans ce cas, le commutateur R peut être utilisé pour appliquer les modifications de manière récursive ; par exemple, la commande suivante permet à l'utilisateur michael d'avoir des autorisations de lecture et d'exécution sur tous les fichiers du répertoire /home/examprep ainsi que sur tous les sousrépertoires qui peuvent exister :
# setfacl R mu:michael:rx /home/examprep Deux méthodes sont disponibles pour désactiver ces options. Tout d'abord, vous pouvez appliquer le x bascule vers la commande précédente, en omettant les paramètres d'autorisation :
# setfacl R xu:michael /home/examprep
Machine Translated by Google
Listes de contrôle d'accès et plus 17
Alternativement, vous pouvez utiliser le commutateur b ; cependant, cela effacerait les ACL configurées pour tous les utilisateurs sur le répertoire noté (et avec le commutateur R, les sousrépertoires applicables) :
# setfacl R b /home/examprep
Restrictions spéciales avec les ACL Les ACL peuvent également être utilisées pour limiter les autorisations à des utilisateurs spécifiques. Par exemple, certaines installations RHEL 6 incluent un utilisateur invité standard pour l'interface graphique, xguest. Pour de tels systèmes, vous souhaiterez peutêtre utiliser des ACL pour limiter l'accès à certains fichiers ou répertoires. Par exemple, la commande setfacl suivante peut être utilisée pour limiter l'accès au fichier /etc/passwd :
# setfacl mu:xguest: /etc/passwd Bien que le fichier /etc/passwd n'inclue normalement aucun mot de passe, il inclut les noms d'utilisateur. C'est souvent un point de départ pour de nombreux crackers ; les utilisateurs malveillants disposant de programmes de piratage de mots de passe peuvent alors concentrer leurs efforts sur les utilisateurs standard présentant des faiblesses connues. Sans utilisateur xguest, cette commande conduit à un message d'erreur légèrement déroutant. Si vous le souhaitez, vous pouvez tester cela en installant le package xguest ou en remplaçant un nom d'utilisateur différent. Bien entendu, de telles actions peuvent être appliquées de manière récursive ; si vous ne souhaitez pas autoriser l'accès de l'utilisateur xguest à tous les fichiers de l'arborescence de répertoires /etc/, la commande suivante applique les modifications susmentionnées de manière récursive :
# setfacl R mu:xguest: /etc Pour tester le résultat, essayez la commande getfacl sur un fichier quelque part dans /etc arborescence de répertoires. Par exemple, la commande getfacl /etc/httpd/conf/httpd.conf examine les ACL associées au fichier de configuration principal du serveur Web Apache. Notez la différence entre les utilisateurs réguliers et l'utilisateur xguest dans la sortie suivante :
# fichier : etc/httpd/conf/httpd.conf # propriétaire : root # groupe : racine utilisateur :: rw
utilisateur:xguest: groupe ::r masque ::r autre ::r
Machine Translated by Google
18 Chapitre 4 : Options de sécurité de niveau RHCSA
Le propriétaire de l'utilisateur dispose d'autorisations de lecture et d'écriture. Tous les autres utilisateurs réguliers ont des autorisations de lecture. Mais l'utilisateur xguest n'a aucune autorisation pour faire quoi que ce soit avec le fichier noté. Comme pour les fichiers individuels, les modifications apportées aux ACL pour l'utilisateur xguest peuvent être annulées avec le commutateur x. Par exemple, la commande suivante annule les paramètres ACL pour cet utilisateur de manière récursive :
# setfacl R xu:xguest /etc Cependant, avec les ACL, vous ne pouvez pas refuser l'accès d'un utilisateur à son répertoire personnel.
ACL et masques Le masque associé à une ACL limite les permissions disponibles sur un fichier. Le masque illustré à la Figure 42 est rwx, ce qui signifie qu'il n'y a pas de limites. S'il était défini sur r, les seules autorisations pouvant être accordées avec une commande telle que setfacl sont lues. Pour modifier le masque du fichier TheAnswers en lecture seule, exécutez la commande suivante :
# setfacl m mask:r /home/examprep/TheAnswers Examinez maintenant le résultat avec la commande getfacl /home/examprep/TheAnswers. Faites attention à l'entrée pour un utilisateur spécifique. Sur la base des privilèges ACL accordés à l'utilisateur michael précédemment, vous verrez une différence avec la figure 42 :
utilisateur:michael:rwx
#efficace :r
En d'autres termes, avec un masque de r, vous pouvez essayer de fournir aux autres utilisateurs toutes les privilèges dans le monde. Mais tout ce qui peut être défini avec ce masque, ce sont les privilèges de lecture.
EXERCICE 43 Utiliser des ACL pour refuser un utilisateur Dans cet exercice, vous allez configurer des ACL pour refuser l'accès au fichier de configuration de bouclage à un utilisateur standard. Il s'agit du fichier ifcfglo dans le répertoire /etc/sysconfig/networkscripts. Cet exercice suppose que vous avez configuré un utilisateur standard. Comme j'ai configuré l'utilisateur michael sur mes systèmes, il s'agit de l'utilisateur régulier répertorié dans cet exercice. Remplacez en conséquence. Pour refuser cet accès, procédez comme suit : 1. Sauvegardez une copie du fichier de configuration actuel pour le périphérique de bouclage. C'est le fichier ifcfglo dans le répertoire /etc/sysconfig/networkscripts. (Astuce : utilisez la commande cp et non la commande mv.)
Machine Translated by Google
Listes de contrôle d'accès et plus 19
2. Exécutez setfacl mu:michael: /etc/sysconfig/networkscripts/ifcfglo commande. 3. Passez en revue les résultats. Exécutez la commande getfacl sur les deux copies du fichier, dans les répertoires /etc/sysconfig/networkscripts et backup. Quelles sont les différences?
4. Connectezvous en tant qu'utilisateur cible. Depuis le compte administrateur racine, une méthode pour ce faire, utilisez la commande su michael. 5. Essayez de lire le fichier /etc/sysconfig/networkscripts/ifcfglo dans le vi text edi tor ou même avec la commande cat. Ce qui se produit? 6. Répétez l'étape précédente avec le fichier dans le répertoire de sauvegarde. Que se passetil des stylos?
7. Exécutez maintenant la commande cp à partir de la sauvegarde du fichier ifcfglo et écrasez la version dans le fichier /etc/sysconfig/networkscripts. (N'utilisez pas la commande mv dans ce but.) Vous devrez peutêtre revenir en tant qu'utilisateur root pour le faire. 8. Essayez à nouveau la commande getfacl /etc/sysconfig/networkscripts/ifcfglo. Sont tu es surpris du résultat? 9. Il existe deux manières de restaurer la configuration ACL d'origine pour le fichier ifcfglo. Appliquez d'abord la commande setfacl b sur le fichier. Cela atil fonctionné ? Confirmez avec la commande getfacl. Si d'autres commandes connexes ont été appliquées, cela peut avoir fonctionné ou non.
10. La seule façon sûre de restaurer l'ACL d'origine d'un fichier est de restaurer le sauvegarde, en supprimant d'abord le fichier modifié dans le répertoire /etc/sysconfig/networkscripts, puis en copiant le fichier à partir du répertoire de sauvegarde. 11. Toutefois, si vous exécutez l'étape 10, vous devrez peutêtre également restaurer les textes contextuels SELinux du fichier avec la commande restorecon F /etc/sysconfig/networkscripts/ ifcfg lo. Plus d'informations sur la commande restorecon sont disponibles plus loin dans ce chapitre.
Partages NFS et ACL Bien qu'il n'y ait aucune preuve que les examens Red Hat couvriront les listes de contrôle d'accès basées sur NFS, il s'agit d'une fonctionnalité que les administrateurs Linux doivent connaître. En tant que telle, la description dans cette section ne fournit que des exemples et est loin d'être complète. Un plus complet
Machine Translated by Google
20 Chapitre 4 : Options de sécurité de niveau RHCSA
la description est disponible auprès d'IBM à l'adresse www.ibm.com/developerworks/aix/library/au filesys_NFSv4ACL/index.html. Souvent, le répertoire /home provient d'un répertoire NFS partagé. En fait, Les listes de contrôle d'accès basées sur NFS sont plus précises que les listes de contrôle d'accès standard. Cette fonctionnalité a été introduite avec NFS version 4, la norme pour RHEL 6. À cette fin, la commande nfs4_getfacl peut afficher les ACL associées aux fichiers d'un répertoire partagé. Sur la base des ACL données précédemment, la Figure 43 montre la sortie de la commande nfs4_getfacl. La sortie est au format suivant :
type:indicateurs:principal:autorisations où les paramètres sont délimités par les deuxpoints. En bref, les deux types indiqués autorisent (A) ou refusent (D) le principal noté (un utilisateur ou un groupe) les autorisations spécifiées. Aucun indicateur n'est affiché dans la Figure 43, ce qui peut fournir un contrôle relativement fin. Le principal peut être un utilisateur régulier ou un groupe, en minuscules. Il peut également s'agir d'un utilisateur générique tel que le PROPRIÉTAIRE du fichier, le GROUPE propriétaire du fichier ou d'autres utilisateurs, comme spécifié par TOUT LE MONDE. Les autorisations, comme indiqué dans le Tableau 44, sont plus précises. L'effet varie selon que l'objet est un fichier ou un répertoire.
La configuration de NFS en tant que client est traitée au chapitre 6, avec d'autres systèmes de fichiers locaux et réseau. La configuration d'un serveur NFS est un objectif RHCE traité au chapitre 16.
FIGURE 43
NFS version 4 ACL
Machine Translated by Google
Contrôle de base du parefeu 21
TABLEAU 44
Description de la liste de contrôle d'accès NFSv4
Description de l'autorisation r
Lire le fichier ou lister le répertoire
w
Écrire dans un fichier ou créer un nouveau fichier dans un répertoire
un
Ajouter des données à un fichier ou créer un sousrépertoire
X
Exécuter un script ou changer de répertoire
d
Supprimer le fichier ou le répertoire
D
Supprimer le sousrépertoire
t
Lire les attributs du fichier ou du répertoire
J
Écrivez les attributs du fichier ou du répertoire
c
Lire les ACL du fichier ou du répertoire
C
Écrire les ACL du fichier ou du répertoire
y
Synchroniser le fichier ou le répertoire
Autorisations
OBJECTIF DE CERTIFICATION 4.03
Contrôle de base du parefeu Traditionnellement, les parefeu étaient configurés uniquement entre les réseaux locaux et les réseaux extérieurs tels qu'Internet. Mais à mesure que les menaces de sécurité augmentent, il y a un besoin croissant de parefeu sur chaque système. RHEL 6 inclut des parefeu dans chaque configuration par défaut. Les meilleurs parefeu viennent en couches. Ils incluent des filtres de paquets avec des commandes telles que iptables. Ils incluent des wrappers TCP pour contrôler le trafic vers et depuis les services basés sur TCP. Ils incluent les contrôles des services individuels. Sans doute, ils incluent également des outils de contrôle d'accès obligatoires tels que SELinux. Bien que SELinux soit couvert en partie plus loin dans ce chapitre, des outils tels que TCP Wrappers et les parefeux de services individuels sont couverts dans la partie RHCE de ce livre. Avant d'envoyer un message sur un réseau, le message est décomposé en unités plus petites appelées paquets. Des informations administratives, notamment le type de données, l'adresse source et l'adresse de destination, sont ajoutées à chaque paquet. Les paquets sont réassemblés lorsqu'ils atteignent l'ordinateur de destination. Un parefeu examine ces champs administratifs dans chaque paquet pour déterminer s'il autorise le passage du paquet.
Machine Translated by Google
22 Chapitre 4 : Options de sécurité de niveau RHCSA
Il existe des exigences RHCSA et RHCE liées à la commande iptables. Pour RHCSA, vous devez comprendre comment configurer un parefeu pour bloquer ou autoriser les communications réseau via un ou plusieurs ports. Pour le RHCE, vous devez savoir comment utiliser la commande iptables pour filtrer les paquets en fonction d'éléments tels que les adresses IP source et de destination. RHEL 6 inclut également une commande de parefeu pour les réseaux IPv6, ip6tables. Les commandes associées sont quasiment identiques. Contrairement à iptables, la commande ip6tables n'est pas répertoriée dans les objectifs Red Hat.
Ports standards Linux communique sur un réseau, principalement à l'aide de la suite de protocoles TCP/IP. Différents protocoles utilisent certains ports et protocoles par défaut, comme défini dans le fichier / etc/services. Il peut être utile de connaître certains de ces ports par cœur, tels que ceux décrits dans le Tableau 45. Sachez que certains de ces ports peuvent communiquer à l'aide d'un ou plusieurs des protocoles suivants : le protocole de contrôle de transmission (TCP), le protocole de datagramme utilisateur (UDP) et le protocole de message de contrôle Internet (ICMP). Ces communications sont répertoriées dans le fichier /etc/services. Par exemple, comme indiqué dans les extraits suivants du fichier /etc/services, les communications vers les serveurs FTP peuvent continuer à l'aide des protocoles TCP et UDP. Strictement parlant, les protocoles de « niveau transport » autres que TCP, UDP et ICMP peuvent être spécifiés avec la commande iptables . Par exemple, les protocoles Encapsulating Security Payload (ESP) et Authentication Header (AH) sont utilisés avec la suite Internet Protocol Security (IPsec).
ftp 21/tcp ftp 21/ udp Cependant, vous verrez bientôt que les outils de configuration du parefeu Red Hat n'ouvrent que les communications TCP pour les services FTP, et le serveur vsFTP par défaut configuré au chapitre 1 fonctionne correctement dans de telles circonstances.
Machine Translated by Google
Contrôle de base du parefeu 23
TABLEAU 45
Commun Ports TCP/IP
Port
Description
21
FTP
22
Coquille sécurisée (SSH)
23
Telnet
25
Protocole SMTP (Simple Mail Transfer Protocol), par exemple, Postfix, sendmail
53
Serveurs de service de nom de domaine
80
Protocole de transfert hypertexte (HTTP)
88
KerberosName
110
Protocole postal, version 3 (POP3)
139
Service de session NetBIOS (Network Basic Input/Output System)
143
Protocole d'accès à la messagerie Internet (IMAP)
443
HTTP, sécurisé (HTTPS)
Zoom sur iptables La philosophie d'iptables est basée sur les « chaînes ». Ce sont des ensembles de règles appliquées à chaque paquet réseau, enchaînées. Chaque règle fait deux choses : elle spécifie les conditions qu'un paquet doit remplir pour correspondre à la règle, et elle spécifie l'action si le paquet correspond.
La commande iptables utilise le format de base suivant :
iptables t type de table \>test.txt $ touch abcd
7. Maintenant, en tant qu'utilisateur root, définissez les autorisations d'écriture du groupe sur le répertoire testshared.
# chmod 770 /home/testshared 8. Connectezvous à nouveau en tant qu'utilisateur test1, revenez au répertoire /home/testshared, puis essayez de créer un fichier dans le nouveau répertoire. Jusqu'ici, tout va bien.
$ cd /home/testshared $ date >\> test.txt $ ls l test.txt
9. Supprimez toutes les autorisations des autres utilisateurs sur les nouveaux fichiers dans /home/testshared annuaire:
# chmod orwx /home/testshared/*
Machine Translated by Google
40 Chapitre 8 : Administration des utilisateurs
10. Maintenant, avec la commande suivante, vérifiez la propriété du nouveau fichier. Pensezvous que d'autres utilisateurs du groupe tg1 peuvent accéder à ce fichier ? En cas de doute, connectezvous en tant qu'utilisateur test2 et voyez par vousmême.
$ ls l 11. Depuis le compte root, définissez le bit SGID sur le répertoire :
# chmod g+s /home/testshared (Oui, si vous êtes soucieux de l'efficacité, vous savez peutêtre que la commande chmod 2770 / home/testshared combine l'effet de ceci et des commandes chmod précédentes.)
12. Revenez au compte test1, revenez au /home/testshared répertoire et créez un autre fichier. Supprimez les autorisations des autres utilisateurs sur le fichier nouvellement créé. Vérifiez la propriété sur le fichier nouvellement créé. Pensezvous que l'utilisateur test2 peut désormais accéder à ce fichier ? (Pour voir par vousmême, essayezle depuis le compte test2.)
$ date >\> testb.txt $ chmod o rwx /home/testshared/testb.txt $ ls l
13. Connectezvous maintenant en tant que compte test2. Allez dans le répertoire /home/testshared. Essayez d'accéder au fichier testb.txt. Créez un fichier différent et utilisez ls l pour vérifier à nouveau les missions et la propriété. (Pour voir si cela a fonctionné, essayez d'accéder à ce fichier à partir du compte test1.) 14. Basculez vers le compte test3 et vérifiez si cet utilisateur peut ou ne peut pas créer de fichiers dans ce répertoire, et si cet utilisateur peut ou ne peut pas afficher les fichiers dans ce répertoire.
Machine Translated by Google
Groupes spéciaux 41
RÉSUMÉ DES CERTIFICATIONS Vous pouvez gérer les utilisateurs et les groupes avec les fichiers de la suite de mots de passe shadow. Ces fichiers peuvent être modifiés directement, à l'aide de commandes telles que useradd et groupadd, ou de l'outil Gestionnaire d'utilisateurs. La façon dont les utilisateurs sont configurés est basée sur le fichier /etc/login.defs. Toutes les variables ou fonctions à l'échelle du système que vous pourriez avoir besoin d'exécuter peuvent être conservées dans le script /etc/bashrc ou /etc/profile. Ils peuvent être modifiés par des fichiers dans les répertoires personnels des utilisateurs. Il existe plusieurs façons de limiter l'utilisation des privilèges administratifs. La capacité se connecter peut être réglé dans des fichiers tels que /etc/securetty et /etc/security/access. conf. L'accès à la commande su peut être limité à l'aide de PAM. Des privilèges administratifs partiels et complets peuvent être configurés pour la commande sudo dans le fichier /etc/sudoers.
Vous pouvez utiliser la gestion centralisée des comptes réseau avec le service LDAP. Les systèmes RHEL 6 peuvent être configurés en tant que client LDAP à l'aide des fichiers /etc/ pam_ldap.conf et /etc/openldap/ldap.conf. Par défaut, Red Hat Enterprise Linux attribue des numéros d'identification d'utilisateur et de groupe uniques à chaque nouvel utilisateur. C'est ce qu'on appelle le schéma de groupe privé d'utilisateurs. Ce schéma prend en charge la configuration de groupes spéciaux pour un ensemble spécifique d'utilisateurs. Les utilisateurs du groupe peuvent être configurés avec des privilèges de lecture et d'écriture dans un répertoire dédié, grâce au bit SGID.
Machine Translated by Google
42 Chapitre 8 : Administration des utilisateurs
EXERCICE DE DEUX MINUTES Voici quelquesuns des points clés des objectifs de certification du chapitre 8.
Gestion des comptes utilisateurs Après l'installation, un système ne peut avoir qu'un seul compte de connexion : root. Pour le fonctionnement quotidien, il est préférable de créer un ou plusieurs comptes réguliers. La suite de mots de passe shadow est configurée dans les fichiers /etc/passwd, /etc/shadow, /etc/group et /etc/ gshadow. Les administrateurs peuvent ajouter des comptes d'utilisateurs et de groupes en modifiant directement les fichiers de la suite de mots de passe cachés ou avec des commandes telles que useradd et groupadd.
La manière dont les comptes sont ajoutés est définie par le fichier /etc/login.defs. Des comptes peuvent être ajoutés avec l'outil Red Hat User Manager. Vous pouvez aussi utilisez cet outil ou des commandes associées telles que chage et usermod pour modifier d'autres paramètres de compte.
Contrôle administratif Les connexions en tant qu'utilisateur root peuvent être réglementées par le fichier /etc/ securetty. Les connexions en général peuvent être réglementées par le fichier /etc/security/ access.conf. L'accès à la commande su peut être réglementé via le fichier /etc/pam.d/su. Les privilèges administratifs personnalisés peuvent être configurés dans le fichier /etc/sudoers.
Configuration de l'utilisateur et du shell Le répertoire personnel des nouveaux comptes de connexion est rempli à partir du répertoire /etc/skel/
annuaire. Chaque utilisateur dispose d'un environnement lorsqu'il est connecté au système, basé sur /etc/ profile, et si le shell est bash, /etc/bashrc. Tous les utilisateurs ont des fichiers de configuration shell cachés dans leurs répertoires personnels.
Machine Translated by Google
Exercice de deux minutes 43
Authentification des utilisateurs et du réseau LDAP vous permet de configurer une base de données de noms d'utilisateurs et de mots de passe gérée de manière centralisée avec d'autres systèmes Linux et Unix sur un réseau local. Les clients LDAP sont configurés dans /etc/pam_ldap.conf et /etc/openldap/ldap.conf. Des modifications sont nécessaires dans /etc/ nsswitch.conf pour qu'un système recherche base de données d'authentification distante telle que LDAP.
Red Hat inclut des outils d'interface graphique et de console qui peuvent aider à configurer un système en tant que client LDAP.
Groupes spéciaux Le schéma de groupe privé d'utilisateurs de Red Hat configure les utilisateurs avec leur propre numéros d'identification d'utilisateur et de groupe.
Avec les autorisations SGID appropriées, vous pouvez configurer un répertoire partagé pour un groupe spécifique d'utilisateurs.
Le réglage du bit SGID est facile ; utiliser chown pour définir personne comme propriétaire de l'utilisateur et le nom du groupe en tant que propriétaire du groupe. Exécutez ensuite la commande chmod 2770 sur le répertoire partagé.
Machine Translated by Google
44 Chapitre 8 : Administration des utilisateurs
AUTOTEST Les questions suivantes vous aideront à mesurer votre compréhension du matériel présenté dans ce chapitre. Comme aucune question à choix multiples n'apparaît dans les examens Red Hat, aucune question à choix multiples n'apparaît dans ce livre. Ces questions testent exclusivement votre compréhension du chapitre. Ce n'est pas grave si vous avez une autre façon d'effectuer une tâche. Obtenir des résultats, et non mémoriser des anecdotes, est ce qui compte pour les examens Red Hat. Il peut y avoir plus d'une réponse à plusieurs de ces questions.
Gestion des comptes utilisateurs 1. Quel est le numéro d'identification d'utilisateur minimum standard pour les utilisateurs réguliers sur les distributions Red Hat ? ___________________________________________________ 2. Quelle commande sur une console texte basée sur l'interface graphique démarre le Red Hat User Manager ? ___________________________________________________
Contrôle administratif 3. Quel fichier régule les consoles locales sur lesquelles l'utilisateur root peut se connecter ? ___________________________________________________ 4. Quel fichier prend en charge la configuration des administrateurs personnalisés ? ___________________________________________________ 5. Lorsqu'un utilisateur régulier utilise la commande sudo pour exécuter une commande administrative, quel mot de passe est requis? ___________________________________________________
Configuration de l'utilisateur et du shell 6. Si vous souhaitez ajouter des fichiers à chaque nouveau compte utilisateur, quel répertoire devezvous utiliser ? ___________________________________________________ 7. Le fichier de configuration système associé au shell bash est ___________________________________________________
Machine Translated by Google
Autotest 45
Authentification des utilisateurs et du réseau 8. Si le domaine LDAP est example.org, quel est le DN de la base de recherche LDAP ? dc=____________________ dc=____________________ 9. Quel est le chemin d'accès complet au fichier qui fait référence à une base de données LDAP pour l'authentification ?
___________________________________________________
Groupes spéciaux 10. Quelle commande définirait le bit SGID sur le répertoire /home/developer ? ___________________________________________________ 11. Quelle commande configurerait la propriété du groupe de développeurs sur /home/developer annuaire? ___________________________________________________ 12. Quelle commande ajouterait l'utilisateur alpha au groupe de développeurs ? Cette question suppose que l'utilisateur alpha et le groupe de développeurs existent déjà. ___________________________________________________
QUESTIONS DE LABORATOIRE Red Hat présente ses examens par voie électronique. Pour cette raison, les travaux pratiques de ce chapitre sont disponibles sur le CD qui accompagne le livre, dans le sousrépertoire Chapter8/. Ils sont disponibles aux formats .doc, .html et .txt, pour refléter les options standard associées à la livraison électronique sur un système RHEL 6 en direct. Si vous n'avez pas encore configuré RHEL 6 sur un système, reportezvous au premier laboratoire du chapitre 2 pour obtenir des instructions d'installation. Les réponses pour chaque laboratoire suivent les réponses de l'autotest pour les questions à compléter.
Machine Translated by Google
46 Chapitre 8 : Administration des utilisateurs
RÉPONSES À L'AUTOTEST Gestion des comptes utilisateurs 1. Le numéro d'identification utilisateur minimum pour les utilisateurs réguliers sur les distributions Red Hat est de 500. Il est de 100 sur de nombreuses autres distributions Linux. 2. La commande dans une console texte basée sur l'interface graphique qui démarre le Red Hat User Manager est systemconfigusers.
Contrôle administratif 3. Le fichier qui régule les consoles locales sur lesquelles l'utilisateur root peut se connecter est /etc/securetty. 4. Le fichier qui prend en charge la configuration des administrateurs personnalisés est /etc/sudoers. 5. Lorsqu'un utilisateur régulier utilise la commande sudo pour exécuter une commande administrative, la mot de passe de cet utilisateur est requis.
Configuration de l'utilisateur et du shell 6. Pour ajouter automatiquement des fichiers à chaque nouveau compte utilisateur, vous devez utiliser le répertoire /etc/skel. 7. Le fichier de configuration système associé au shell bash est /etc/bashrc.
Authentification des utilisateurs et du réseau 8. Si le domaine LDAP est example.org, le DN de la base de recherche LDAP est dc=example,dc=org. 9. Le chemin d'accès complet au fichier qui pointe vers une base de données LDAP pour l'authentification est /etc/nsswitch.conf.
Groupes spéciaux 10. La commande qui définirait le bit SGID sur le répertoire /home/developer est chmod g+s /home/developer. Les options numériques telles que chmod 2770 /home/developer ne sont pas correctes, car elles vont audelà de la simple définition du bit SGID.
11. La commande configurerait la propriété du groupe de développeurs dans le répertoire /home/developer est le développeur chgrp /home/developer. 12. La commande qui ajoute l'utilisateur alpha au groupe de développeurs est usermod G developer alpha.
Machine Translated by Google
Autotest 47
RÉPONSES DE LABORATOIRE
Laboratoire 1
Bien qu'il existe un certain nombre de méthodes disponibles pour créer de nouveaux utilisateurs et groupes, elles devraient toutes aboutir au même résultat. 1. La sortie de la commande ls l /home doit inclure la sortie suivante, en remplaçant la date d'aujourd'hui:
drwx. 4 newguy newguy drwx. 4 stagiaire stagiaire
4096 19 janvier 12:13 nouveau mec 4096 19 janv. 12:13 stagiaire
2. Exécutez la commande ls la /etc/skel. La sortie doit inclure un certain nombre de fichiers cachés, appartenant par la racine de l'utilisateur et la racine du groupe. 3. Exécutez les commandes ls la /home/newguy et ls la /home/intern. La sortie doit inclure les mêmes fichiers cachés que dans /etc/ skel, mais appartenant aux utilisateurs associés à chaque répertoire personnel.
4. La fin des fichiers /etc/passwd et /etc/shadow doit inclure des entrées pour les deux utilisateurs. Si vous avez configuré un mot de passe pour ces utilisateurs, il doit être au format crypté dans la deuxième colonne de /etc/shadow.
5. L'entrée suivante doit exister quelque part au milieu du fichier /etc/group. Il est acceptable si d'autres utilisateurs sont inclus à la fin de la ligne.
utilisateurs:x:100:nouveau mec 6. La ligne suivante doit être proche ou à la fin du fichier /etc/group ; l'ordre des utilisateurs dans la quatrième colonne n'a pas d'importance. peons:x:123456:nouveau,stagiaire
Laboratoire 2
Le moyen le plus simple de limiter les connexions root à la sixième console virtuelle se trouve dans le fichier /etc/securetty. Les seules directives actives dans ce fichier doivent être : vc/6 tty6
Bien sûr, il existe d'autres façons de faire à peu près n'importe quoi sous Linux. Pour l'essayer, appuyez sur CTRLALTF1 et essayez de vous connecter en tant qu'utilisateur root. Appuyez sur CTRLALTF2 et répétez le processus via le terminal virtuel 6.
Machine Translated by Google
48 Chapitre 8 : Administration des utilisateurs
Laboratoire 3
Utilisez les réponses de la première partie de l'atelier 1 comme guide pour vérifier le répertoire de propriété et d'autorisations / home/senioradm, ainsi que les fichiers qu'il contient. En ce qui concerne les privilèges sudo, vous devriez voir la ligne suivante dans le fichier /etc/sudoers : administrateur principal
TOUT=(TOUS)
TOUS
Pour tester le résultat, connectezvous en tant qu'utilisateur senioradm et exécutez une commande d'administration, précédée de un sudo. Par exemple, essayez la commande suivante :
# sudo systemconfigfirewall À moins que vous n'ayez exécuté la commande sudo au cours des dernières minutes, cette action vous demandera un mot de passe. Entrez le mot de passe créé pour l'utilisateur senioradm. Il devrait ouvrir l'outil de configuration du parefeu.
Laboratoire 4
Utilisez les réponses à Lab 1 comme guide pour vérifier la propriété et les autorisations du répertoire /home/junioradm, ainsi que les fichiers qu'il contient. En ce qui concerne les privilèges sudo, vous devriez voir la ligne suivante dans le fichier /etc/sudoers :
junioradm
TOUT=/sbin/fdisk
Ensuite, essayez d'exécuter la commande fdisk telle que :
$ sudo /sbin/fdisk l Vous serez invité à saisir un mot de passe. Entrez le mot de passe créé pour l'utilisateur junioradm. À moins que les mots de passe ne soient identiques, le mot de passe root ne fonctionnera pas. En cas de succès, vous devriez voir une liste de partitions pour les lecteurs connectés dans la sortie.
Laboratoire 5
Utilisez les réponses à Lab 1 comme guide pour vérifier la propriété et les autorisations sur le répertoire /home/infouser, ainsi que les fichiers qu'il contient. En cas de succès, ce répertoire inclura un sousrépertoire info*/. De plus, le répertoire /etc/skel doit également inclure un sousrépertoire info*/. Ce sousrépertoire doit contenir les mêmes fichiers que ceux affichés dans le répertoire / usr/share/doc/info*. Bien sûr, cela ne fonctionne que si vous copiez le contenu du sousrépertoire info*/ du répertoire /usr/share/info vers /etc/skel.
Machine Translated by Google
Autotest 49
Laboratoire 6
Il s'agit d'un processus simple, utilisant les étapes de base suivantes : 1. Créez des comptes pour mike, rick, terri et maryam si nécessaire. Vous pouvez utiliser la commande useradd, modifier directement le fichier /etc/passwd ou utiliser le gestionnaire d'utilisateurs. 2. Créez un groupe pour ces utilisateurs. Configurez un ID de groupe en dehors de la plage des utilisateurs réguliers avec une ligne tel que:
cuisine :: 88888: mike, rick, terri, maryam 3. Créez le répertoire /home/galley. Donnezlui la propriété et les autorisations appropriées avec les éléments suivants commandes :
# mkdir /home/galley # chown personne.galley # chmod 2770 / home/galley
Machine Translated by Google
9 RHCSA Système de niveau
Administration Tâches OBJECTIFS DE LA CERTIFICATION 9.01
Configurer l'accès avec VNC
9.01
Administration du système élémentaire Commandes
9.01
Administration système automatisée : cron et at
9.01
Analyse du fichier journal
local Exploration en deux minutes Autotest Q&R
Machine Translated by Google
2 Chapitre 9 : Tâches d'administration système au niveau RHCSA
En tant que dernier chapitre lié à l'examen RHCSA, il couvre les systèmes fonctionnels tâches d'administration qui ne sont pas déjà couvertes dans d'autres chapitres. Une partie de l'accès à distance non encore couverte est basée sur le partage basé sur l'interface graphique activé via Virtual Informatique en réseau (VNC).
Les tâches d'administration système abordées dans ce chapitre incluent la gestion des processus et l'utilisation des archives. En outre, ce chapitre vous aide également à effectuer des tâches d'administration système répétitives. Certains d'entre eux se produisent lorsque vous voulez avoir une « vie », plus lorsque vous préférez dormir. Dans ce chapitre, vous apprendrez à planifier l'exécution ponctuelle et périodique des tâches. Cela est rendu possible avec le cron et les démons. Dans ce cas, "at" n'est pas une préposition, mais un service qui surveille un système pour les travaux planifiés ponctuels. De la même manière, cron est un service qui surveille un système pour les tâches planifiées régulièrement.
Lors du dépannage, la journalisation système fournit souvent les indices dont vous avez besoin pour résoudre de nombreux problèmes. Dans ce chapitre, l'accent est mis sur la journalisation locale ; les capacités de journalisation réseau du service rsyslog sont une compétence RHCE abordée au chapitre 17.
À L'INTÉRIEUR DE L'EXAMEN À L'INTÉRIEUR DE L'EXAMEN
Accès à distance Les administrateurs Linux sont souvent responsables
atteindre les objectifs RHCSA. Le premier de ces objectifs concerne les compétences fondamentales de commandement :
d'une variété de systèmes dans des emplacements distants. Vous avez passé en revue les options client
■ Archiver, compresser, décompresser et décompresser
associées à SSH au chapitre 2. Dans ce chapitre, vous
compresser les fichiers en utilisant tar, star, gzip et
découvrirez la partie VNC de cet objectif : ■ Accéder à des
bzip2
systèmes distants à l'aide de SSH et VNC
Ces autres objectifs sont plus étroitement liés à l'administration du système : ■ Identifiez les ressources CPU/mémoire
Administration du système Les administrateurs Linux travaillent sur les systèmes Linux de plusieurs manières. Dans ce chapitre, vous apprendrez diverses méthodes pour répondre aux
processus ; ajuster la priorité des processus avec renice, tuer les processus ■ Planifier des tâches à l'aide de cron ■ Localiser et interpréter les fichiers journaux du système
Machine Translated by Google
Confi gurer l'accès avec VNC 3
OBJECTIF DE CERTIFICATION 9.01
Configurer l'accès avec VNC Si vous maîtrisez suffisamment Linux pour opter pour la RHCSA, vous avez probablement déjà utilisé VNC. Il s'agit de la visionneuse standard pour les machines virtuelles basées sur KVM. Compte tenu de la manière transparente dont il est intégré au gestionnaire de machines virtuelles, l'utilisation de VNC pour afficher les machines virtuelles créées jusqu'à présent dans ce livre est essentiellement indolore. Mais VNC peut faire tellement plus. C'est une excellente option pour visualiser des systèmes distants dans une autre pièce ou sur un autre continent. Bien que VNC ne soit pas sécurisé, il peut être redirigé via des systèmes de communication sécurisés tels que SSH. La communication VNC se déroule normalement sur le port 5900, de sorte que le port (et ceux immédiatement audessus) doivent être ouverts pour permettre la communication. Par exemple, la première connexion à un serveur VNC utiliserait également le port 5901 ; la deuxième connexion utiliserait le port 5902, et potentiellement jusqu'au port 5909, car le port 5910 est normalement réservé à un service différent. Cette communication passe par le protocole TCP. Comme l'intention est de fournir un accès à distance à une interface graphique, cette section suppose qu'un environnement de bureau d'interface graphique est installé sur le système local. De plus, il existe trois types de packages VNC Server disponibles pour RHEL 6.
■ L'affichage associé à une machine virtuelle basée sur KVM. ■ Le serveur VNC basé sur GNOME connu sous le nom de vino. Il convient aux utilisateurs qui veulent que d'autres, comme le support technique, voient ce qu'ils font. ■ Le serveur TigerVNC, basé sur le serveur TightVNC. C'est adapté pour administrateurs qui souhaitent accéder à distance à une interface graphique sur un autre système. L'affichage VNC associé à une machine virtuelle basée sur KVM est intégré à ce système. Comme aucune configuration supplémentaire n'est requise, audelà des étapes décrites dans le chapitre 2, ce chapitre ne traite pas de l'affichage associé au KVM. Cependant, cet affichage ne fonctionne pas simultanément avec vino sur RHEL 6.
Sachez simplement que de telles connexions aux écrans VNC sont intrinsèquement moins sécurisées qu'une connexion standard, car tout ce qui est requis est la connaissance du bon port et peutêtre un mot de passe. Quelqu'un qui se connecte à distance via VNC n'a même pas besoin d'avoir un nom d'utilisateur. De plus, les serveurs TightVNC et vino ne doivent pas être exécutés simultanément sur le même système.
Machine Translated by Google
4 Chapitre 9 : Tâches d'administration système au niveau RHCSA
Installer et confi gurer un serveur TigerVNC Bien que des alternatives soient disponibles, le moyen le plus simple de configurer la communication VNC à distance consiste à utiliser TigerVNC. Il comprend des packages client et serveur : tigervnc et tigervncserver. Mais vous n'avez pas besoin de tigervnc pour vous connecter à tigervncserver. Certains utilisateurs peuvent préférer un client GUI alternatif tel que Remote Desktop Viewer. Comme toujours, la méthode la plus simple pour installer ces packages consiste à utiliser la commande yum install vinagre tigervnc tigervncserver. Une fois qu'ils sont installés, vous pouvez démarrer le processus de configuration dans le fichier /etc/sysconfig/vncservers. Les deux dernières lignes de la version par défaut du fichier sont des exemples de directives de configuration :
# VNCSERVERS="2:monnom d'utilisateur" # VNCSERVERARGS[2]="geometry 800x600 nolisten tcp localhost" La première directive fonctionnerait pour un seul nom d'utilisateur ; par exemple, la ligne suivante fonctionnerait pour deux noms d'utilisateur. Le nom d'utilisateur associé au numéro n'a pas d'importance ; cependant, les numéros doivent être consécutifs. De plus, les numéros affichés ici correspondent aux numéros de port VNC. Par exemple, la ligne affichée ici fait correspondre les utilisateurs michael et elizabeth aux numéros de port 5901 et 5902, respectivement.
VNCSERVER="1:michael 2:elizabeth" Pour l'instant, spécifiez simplement la géométrie avec la directive suivante, qui prend en charge les connexions via TCP et ne nécessite pas de tunnel via une connexion SSH.
# VNCSERVERARGS[2]="géométrie 800x600" Maintenant, enregistrez les modifications et lancez le service VNC. La séquence d'actions suivante semblera contreintuitive. Pour démarrer le service VNC, vous devez d'abord vous assurer qu'il est arrêté, avec la commande suivante :
# /etc/init.d/vncserver stop Configurez maintenant l'un des utilisateurs associés à la directive VNCSERVER que vous venez de configurer. Vous devrez le faire à partir du compte de cet utilisateur avec la commande vncserver. Le premier port disponible est supposé, sauf si un est spécifié. La commande suivante spécifie une connexion via le port 5902 (et non 2) :
$ vncserver :2 Vérifiez maintenant le résultat avec la commande suivante. Il devrait confirmer que VNC les serveurs fonctionnent réellement.
# /etc/init.d/état du serveur vnc
Machine Translated by Google
Confi gurer l'accès avec VNC 5
Une configuration plus détaillée est possible. La commande suivante ajoute plus d'informations, qui dans ce cas remplacent les dimensions de la fenêtre GUI définies dans le fichier de configuration / etc/sysconfig/vncservers :
$ vncserver :2 geometry 640x400 La commande ajoute des options de configuration au répertoire personnel de l'utilisateur concerné, dans le sousrépertoire .vnc/, dont nous parlerons bientôt. Le nombre inclus après les deuxpoints (:) avec la commande vncserver détermine le port de communication pour cette connexion. Dans ce cas, les utilisateurs distants pourront se connecter à ce système via le port 5902. Pour la commande avec le :1, une connexion à ce système peut être établie via le port 5901. Dans les deux cas, la commande vncserver demande normalement un mot de passe , qui est utilisé pour la connexion depuis le système distant.
Le serveur vino basé sur GNOME Le serveur vino basé sur GNOME permet aux administrateurs de visualiser l'état actuel des environnements de bureau à interface graphique distants. Les outils nécessaires sont inclus dans le package du même nom. Une fois qu'il est installé, exécutez la commande vinopreferences à partir du compte souhaité pour ouvrir la fenêtre Préférences Bureau à distance illustrée à la Figure 91.
FIGURE 91
Bureau à distance Préférences avec vin
Machine Translated by Google
6 Chapitre 9 : Tâches d'administration système de niveau RHCSA
Les options associées à la fenêtre Préférences Bureau à distance sont simples. De plus, dans la plupart des cas, si vous placez le curseur sur une option, l'outil fournit des explications supplémentaires. Comme l'objectif est de partager l'environnement de bureau local sur un réseau, toutes les autres options sont grisées à moins que vous n'activiez la première option : Autoriser les autres utilisateurs à afficher votre bureau. Lorsque vous activez cette première option, la fenêtre Préférences Bureau à distance change ; il évalue la configuration actuelle pour déterminer si et comment le bureau peut être accessible sur le réseau local. Cela change en fonction des autres options désormais actives dans la fenêtre. Chaque option est décrite comme suit :
■ Autoriser les autres utilisateurs à contrôler votre bureau Si cette option est active, les utilisateurs distants pourront entrer des frappes et des clics de souris à distance sur votre environnement de bureau.
■ Vous devez confirmer chaque accès à cette machine Si cette option est active, vous aurez la possibilité de confirmer les demandes distantes d'accès à l'environnement de bureau GUI local. C'est un excellent moyen de permettre aux utilisateurs locaux de garder le contrôle de leurs systèmes locaux, peutêtre jusqu'à ce qu'une personne du support technique essaye de les aider. ■ Demander à l'utilisateur d'entrer ce mot de passe Si cette option est active, elle fournit une mesure de sécurité supplémentaire pour l'utilisateur local. ■ Configurer le réseau pour qu'il accepte automatiquement les connexions Si un routeur de réseau local fonctionne avec Universal Plug and Play (UPnP), cette option permet l'accès à partir de réseaux distants. Une seule des trois dernières options peut être active. Comme ils se rapportent à une icône de notification, ils n'ont aucune incidence sur la configuration de vino en tant que serveur. Ils déterminent simplement si et quand une icône associée au serveur vino s'affiche dans le coin supérieur droit de l'environnement de bureau GNOME. Le serveur vino ne fonctionne pas avec la configuration standard d'un hébergeur physique et les machines virtuelles créées dans les deux premiers chapitres de ce livre. Si des machines virtuelles basées sur KVM sont en cours d'exécution, elles doivent être désactivées. Vous pourrez ensuite vous connecter au serveur VNC basé sur vino à partir d'un système distant, à l'aide de la commande vncviewer ou d'une option telle que l'outil Préférences du bureau à distance. Incidemment, l'outil Préférences Bureau à distance enregistre ses paramètres dans un fichier XML dans le répertoire personnel de l'utilisateur concerné, dans le sousrépertoire .gconf/desktop/ gnome/remote_access/.
Machine Translated by Google
Confi gurer l'accès avec VNC 7
Bien que le serveur vino nécessite les mêmes ports ouverts que le serveur TigerVNC susmentionné, les deux serveurs VNC ne doivent pas être exécutés simultanément. Si vous rencontrez un problème avec vino, je vous ai prévenu de ce problème plus tôt dans le chapitre.
Installer et confi gurer un client VNC Vous devriez alors pouvoir tester le résultat localement, avec la commande vncviewer. Mais curieusement, cette action échoue avec un message d'erreur "Impossible de trouver le pixmap approprié". Si vous êtes déjà sur un système distant, cette commande fonctionnera avec l'adresse IP du serveur VNC, couplée au port associé. Par exemple, si la commande vncserver :2 précédente a été exécutée sur un système local 192.168.122.1, vous devriez pouvoir vous connecter à distance via le port 5902 avec la commande suivante : # vncviewer 192.168.122.1:2
Pour tester un serveur VNC sur un système local, vous pouvez utiliser Remote Desktop Viewer, qui peut être démarré à partir d'un bureau GUI avec la commande vinagre ou à partir du bureau GNOME en cliquant sur Applications | Internet | Visionneuse de bureau à distance. Il ouvre la fenêtre Remote Desktop Viewer. Cliquez sur Connecter pour ouvrir la fenêtre Remote Desktop Viewer illustrée à la Figure 92. FIGURE 92
Bureau à distance Préférences
Machine Translated by Google
8 Chapitre 9 : Tâches d'administration système au niveau RHCSA
Les options sont les suivantes : ■ Le protocole VNC est supposé dans ce chapitre ; cependant, le Remote Desktop Viewer peut être utilisé avec une variété de protocoles. ■ Hôte Spécifiez le nom d'hôte ou l'adresse IP du système auquel vous
souhaitez vous connecter.
■ Plein écran Si cette option est sélectionnée, la connexion à distance occupe tout l'écran du système local.
■ Afficher uniquement Si cette option est sélectionnée, aucune action n'est autorisée sur la connexion. ■ Mise à l'échelle Lorsque cette option est sélectionnée, change l'écran pour permettre l'affichage dans différents
environnements GUI dimensionnés.
En cas de succès, il ouvrira une autre fenêtre Remote Desktop Viewer, avec une demande pour le mot de passe, et une option Mémoriser cet identifiant, qui stocke ce mot de passe. Si une connexion est établie, vous verrez le bureau « distant » sur le système local, comme illustré à la Figure 93.
FIGURE 93 Un local Connection à une télécommande"
Bureau via VNC
Machine Translated by Google
Confi gurer l'accès avec VNC 9
Mais ce n'est qu'une connexion locale. Avant de passer aux options de parefeu, utilisez cette commande pour vous assurer que ce serveur VNC s'exécute au prochain démarrage de ce système :
# chkconfig vncserver sur Il y a une limite. Une seule connexion peut être établie par port. Par exemple, si la commande vncviewer précédente utilisait le port 5902, vous ne pouvez pas utiliser Remote Desktop Viewer pour vous connecter au même port.
Options de parefeu Les ports à ouvrir dans un parefeu dépendent du nombre de connexions pouvant être établies avec le serveur VNC local. Au minimum, vous devrez ouvrir les ports 5900 et 5901. Les ports supplémentaires que vous ouvrez dépendent du nombre de connexions nécessaires à partir des systèmes distants. Bien que les parefeu soient traités dans les chapitres 4 et 10, voici une brève description d'une manière d'ouvrir les ports 5900 à 5905 via un parefeu.
1. Exécutez la commande systemconfigfirewalltui. 2. Dans la fenêtre de la console qui apparaît, sélectionnez Personnaliser et appuyez sur ENTRÉE. 3. Dans la fenêtre Services de confiance qui s'affiche, sélectionnez Transférer et appuyez sur ENTREE. 4. Dans la fenêtre Autres ports, sélectionnez Ajouter pour ouvrir la fenêtre Port et protocole dow illustré à la Figure 94. Les entrées affichées spécifient les ports 5900 à 5905, sur le protocole TCP. Tapez ces entrées, sélectionnez OK et appuyez sur ENTER. 5. Sélectionnez Fermer et appuyez sur ENTER. 6. De retour dans la fenêtre Configuration du parefeu, sélectionnez OK et appuyez sur ENTREE. 7. Lorsque l'avertissement s'affiche concernant le remplacement de la configuration de parefeu existante, sélectionnez Oui et appuyez sur ENTER.
8. Pour confirmer le nouveau parefeu, exécutez la commande iptables L. Ce qui suit La ligne de la sortie confirme que les ports associés à vncserver dans le fichier /etc/services, 5900 à 5905, sont ouverts dans le parefeu.
ACCEPTER tcp n'importe où n'importe où état NOUVEAU tcp dpts:vncserver:5905 Le système local est maintenant prêt à transmettre les connexions du serveur VNC aux systèmes distants, à l'aide d'outils de connexion tels que Remote Desktop Viewer et la commande vncviewer.
Machine Translated by Google
10 Chapitre 9 : Tâches d'administration système au niveau RHCSA
FIGURE 94 Ports de parefeu et
Protocole
Confi rmer l'accès à un serveur VNC C'est un cas où les outils telnet et nmap discutés au chapitre 2 peuvent être utiles. Les messages associés au démarrage de divers serveurs VNC peuvent être cryptiques. Pour confirmer qu'un système écoute sur les ports appropriés d'un système local, essayez la commande suivante : # nmap localhost
Pour mon système hôte physique, cela se traduit par le résultat suivant : Démarrage de Nmap 5.21 ( http://nmap.org ) au 20110126 12:18 PST Rapport d'analyse Nmap pour localhost (127.0.0.1) L'hôte est actif (latence de 0,000011 s). Enregistrement rDNS pour 127.0.0.1 : localhost.localdomain Non illustré : 993 ports fermés PORT SERVICES D'ÉTAT 22/tcp ouvert ssh 25/tcp ouvert smtp 5900/tcp ouvert vnc 5901/ tcp ouvert vnc1 5902/tcp ouvert vnc2
Machine Translated by Google
Confi gurer l'accès avec VNC 11
Les trois dernières lignes confirment la disponibilité de trois ports pour les connexions aux serveurs VNC. Pour rappel, les ports 5901 et 5902 sont utilisés pour différents terminaux VNC. Les ports peuvent être confirmés avec des commandes telnet telles que les suivantes : # telnet localhost 5900
La sortie suivante confirme indirectement une connexion à un serveur VNC, car le RFB affiché dans la sortie fait référence à un framebuffer distant, un protocole d'accès réseau à une interface graphique : RFB 003.008
Bien sûr, l'accès à distance aux serveurs VNC ne fonctionnera que s'il y a un accès via le parefeu configuré précédemment. Vous pouvez utiliser les commandes nmap et telnet à cette fin à partir de systèmes distants. Remplacez simplement l'adresse IP ou le nom d'hôte du serveur VNC par localhost dans les commandes qui viennent d'être affichées.
Routage via un shell sécurisé Pour cet exemple, supposons que vous avez configuré un serveur VNC sur le server1.example. système de communication. De plus, supposons que vous avez configuré /etc/sysconfig/vncservers pour pointer vers le port approprié et que vous avez exécuté la commande suivante pour configurer le compte de l'utilisateur elizabeth pour l'accès à distance sur le port 5903 : $ vncserver :3
Accédez maintenant à un système distant tel que tester1.example.com. A partir de ce système, exécutez la commande suivante pour configurer un tunnel SSH : $ ssh L 5903:serveur1.exemple.com:5903 [email protected]
Cette commande ssh avec le L spécifie que les communications du port local 5903 doivent être liées aux communications sur le port 5903 du server1.example. système de communication. Étant donné que le shell sécurisé nécessite une connexion utilisateur, la commande ssh nécessite un accès via un compte sur ce système distant. Étant donné que cette communication passe par le port 5903, elle n'interfère pas avec la communication ssh normale. Cependant, cela signifie également que vous devrez ouvrir le port 5903 pour ce serveur VNC particulier. Une fois ce tunnel de communication établi, ouvrez une deuxième console de ligne de commande ou la visionneuse de bureau à distance sur le système local. Connectezvous au système localhost:3. Cette connexion est transmise sur le port 5903 via le tunnel SSH désormais établi.
Machine Translated by Google
12 Chapitre 9 : Tâches d'administration système au niveau RHCSA
Plus de configuration VNC Lorsqu'un utilisateur établit une connexion en saisissant une commande telle que vncserver :3, cette action configure les fichiers de configuration dans le répertoire personnel de cet utilisateur, dans le sous répertoire .vnc/. Cette commande configure quatre fichiers dans le sousrépertoire .vnc/ : le mot de passe, un fichier journal, un fichier d'identificateur de processus (PID) et un fichier de configuration. Lorsque la commande vncserver :3 demande un mot de passe, une version chiffrée de cette entrée est stockée dans le fichier passwd. L'activité associée à un serveur VNC est un processus, avec un numéro PID. Sur le système server1.example.com, ce fichier est server1.example.com.pid. Ce fichier comprend le numéro PID réel. La commande kill peut être utilisée pour arrêter ce processus, comme expliqué plus loin dans ce chapitre.
Les deux derniers fichiers sont plus importants. Le fichier server1.example.com.log fournit des informations sur ce qui s'est passé et sur ce qui se passe avec la connexion. Le fichier de configuration est xstartup, qui est préconfiguré pour démarrer l'environnement de bureau local par défaut.
Un fichier de configuration utilisateur VNC Ce qui suit est une analyse ligne par ligne du fichier de configuration VNC créé lorsqu'un utilisateur active un serveur VNC pour son système. Pour passer en revue, le fichier est xstartup dans le sousrépertoire .vnc/ de l'utilisateur cible. La première ligne est commune à de nombreux scripts, car elle établit le shell bash via un lien symbolique comme shell pour le script :
!#/bin/sh La ligne suivante configure la fenêtre VNC sous forme d'icône :
vncconfig iconique La commande unset appliquée à la variable SESSION_MANAGER permet nouvelle interface graphique pour créer son propre socket de communication :
désactiver SESSION_MANAGER La commande unset appliquée à la variable DBUS_SESSION_BUS_ADDRESS prend en charge la création d'un nouveau bus de messages pour l'interface graphique à créer :
désactiver DBUS_SESSION_BUS_ADDRESS
Machine Translated by Google
Commandes élémentaires d'administration système 13
Bien qu'il soit utile de confirmer que le système d'exploitation est Linux avec la directive OS=`uname s`, la boucle if qui suit s'applique uniquement à la variable PATH associée à la distribution SUSE Linux. Puisque ce livre couvre RHEL, cette boucle n'est pas montrée ici. Les deux boucles if qui suivent exécutent les commandes dans /etc/X11/xinit/xinitrc scénario. La seule différence est les commutateurs x et f, qui exécutent le script selon que le fichier noté dispose ou non d'autorisations exécutables. Vous pouvez déjà reconnaître le script xinitrc comme le script standard associé à la commande startx, qui démarre l'interface graphique à partir de l'interface de ligne de commande.
si [ x /etc/X11/xinit/xinitrc ] ; puis exec /etc/X11/xinit/ xinitrc fi if [ f /etc/X11/xinit/xinitrc ]; puis exec sh /etc/ X11/xinit/xinitrc fi
OBJECTIF DE CERTIFICATION 9.02
Commandes d'administration système élémentaires Il existe plusieurs commandes d'administration système dans les objectifs RHCSA qui ne sont pas couvertes dans les chapitres précédents. Ils sont associés à la gestion des ressources système et aux archives. La gestion des ressources système vous permet de voir quels processus sont en cours d'exécution, de vérifier les ressources qu'ils utilisent et de tuer ou de redémarrer ces processus. Les commandes d'archivage prennent en charge la consolidation d'un groupe de fichiers dans une seule archive, qui peut ensuite être compressée.
Commandes de gestion des ressources système Linux inclut une variété de commandes qui peuvent vous aider à identifier les processus qui monopolisent le système. La plus basique de ces commandes est ps, qui fournit un instantané des processus en cours d'exécution. Ces processus peuvent être classés avec la commande top, qui peut afficher les tâches Linux en cours d'exécution dans l'ordre de leur utilisation des ressources. Avec top, vous pouvez identifier les processus qui utilisent le plus de CPU et de mémoire RAM. Les commandes qui peuvent ajuster la priorité des processus incluent nice et renice. Parfois, il ne suffit pas d'ajuster la priorité du processus, auquel cas il
Machine Translated by Google
14 Chapitre 9 : Tâches d'administration système au niveau RHCSA
peut être approprié d'arrêter un processus avec des commandes comme kill et killall. Si vous devez surveiller l'utilisation du système, les commandes sar et iostat L'objectif lié à la gestion des
peuvent également être utiles.
ressources système est "d'identifier les processus gourmands en CPU/mémoire, d'ajuster la priorité des processus avec renice et de tuer les processus".
Gestion des processus avec psCommand Il est important de savoir ce qui s'exécute sur un ordinateur Linux. Pour vous aider dans cette tâche, la commande ps comporte un certain nombre de
commutateurs critiques. Lorsque vous essayez de diagnostiquer un problème, il est courant d'obtenir la liste la plus complète possible des processus en cours d'exécution, puis de rechercher un programme spécifique. Par exemple, si le navigateur Web Firefox devait soudainement planter, vous voudriez tuer tous les processus associés. Le ps aux | La commande grep firefox pourrait alors vous aider à identifier le ou les processus que vous devez tuer. La commande ps seule ne suffit généralement pas. Tout ce qu'il fait, c'est identifier ceux processus s'exécutant dans le shell de ligne de commande actuel. À moins que vous n'ayez démarré un processus en cours d'exécution avec l'esperluette (&) pour renvoyer la commande à une invite du shell, cette commande renvoie généralement uniquement le processus associé au shell actuel et le processus de commande ps luimême. Pour identifier les processus associés à un nom d'utilisateur, la commande ps u username peut vous aider. Parfois, il y a des utilisateurs spécifiques qui peuvent être problématiques pour diverses raisons. Ainsi, si vous vous méfiez d'un utilisateur comme mjang, la commande suivante peut vous aider à passer en revue tous les processus actuellement associés à cet utilisateur : $ ps u mjang
En tant qu'administrateur, vous pouvez choisir de vous concentrer sur un compte spécifique pour diverses raisons, telles que l'activité révélée par la commande top, décrite dans la section suivante. Si une vue d'ensemble plus grande est requise, vous pouvez auditer tous les processus en cours d'exécution avec une commande comme celleci : $ ps aux
La sortie est une base de données plus complète des processus en cours d'exécution, afin de leurs PID. Le a répertorie tous les processus en cours d'exécution, le u classe ces processus par utilisateur et le x lève la limitation standard selon laquelle les processus répertoriés doivent être associés à un terminal ou à une console. Un exemple est illustré à la Figure 95. Alors que la sortie peut inclure des centaines de processus et plus, la sortie peut être redirigée vers un fichier pour une analyse plus approfondie avec des commandes comme grep. Les colonnes de sortie illustrées à la Figure 95 sont décrites dans le Tableau 91.
Machine Translated by Google
Commandes élémentaires d'administration système 15
FIGURE 95
Sortie de la commande ps aux
TABLEAU 91
Colonnes de Sortie de ps aux
Titre de la colonne Description UTILISATEUR
Le nom d'utilisateur associé au processus
PID
Identificateur de processus
%CPU
Utilisation actuelle du processeur
%MEM
Utilisation actuelle de la RAM
VSZ
Taille de la mémoire virtuelle du processus en Ko
RSS
Mémoire physique utilisée par le processus, hors espace d'échange, en Ko
ATS
Console terminale associée
STAT
Statut du processus
COMMENCER
Heure de début du processus ; si vous ne voyez qu'une date, le processus a commencé il y a plus de 24 heures
TEMPS
Temps CPU cumulé utilisé
COMMANDE Commande associée au processus
Machine Translated by Google
16 Chapitre 9 : Tâches d'administration système au niveau RHCSA
Incidemment, vous pouvez noter que la commande ps aux n'inclut pas le tiret familier devant les commutateurs aux. Dans ce cas, la commande fonctionne avec et sans le tiret ; l'alternative suivante inclut les variables environnementales actuelles.
$ ps eux Les processus peuvent être organisés sous forme d'arborescence. Plus précisément, le premier processus, avec un PID de 1, est init. Ce processus est la base de l'arborescence, qui peut être affichée avec la commande pstree. Dans quelques cas, il n'est pas possible d'utiliser les commandes kill standard décrites brièvement pour tuer un processus. Dans de tels cas, il peut être possible de tuer un processus en tuant son « parent » dans l'arborescence. À cette fin, la commande suivante identifie le parent d'un processus, appelé PPID :
$ ps essieu Le commutateur l n'est pas compatible avec le commutateur u ; en d'autres termes, vous ne pouvez pas configurer la sortie de la commande ps pour inclure à la fois l'utilisateur qui a démarré le processus et le PPID. Vous pouvez afficher les PID et PPID de tous les processus en cours d'exécution dans la Figure 96. Avec le commutateur Z (c'est un Z majuscule), la commande ps peut également identifier le Contextes SELinux associés à un processus. Par exemple, la commande suivante inclut les contextes SELinux de chaque processus au début de la sortie. Si vous avez lu le chapitre 4, les contextes devraient déjà vous sembler familiers. Par exemple, comparez le contexte du processus du serveur vsFTP avec l'extrait suivant :
system_u:system_r:ftpd_t:s0s0:c0.c1023 2059 ? Ss /etc/vsftpd/vsftpd.conf
FIGURE 96
Sortie de la commande ps axl
0:00 /usr/sbin/vsftpd
Machine Translated by Google
Commandes élémentaires d'administration système 17
Comparez cela avec le contexte du démon réel. Le rôle d'objet fonctionne avec le démon réel ; vous pouvez le consulter avec d'autres démons dans le répertoire /usr/sbin. Le démon vsftpd fonctionne avec le fichier de configuration associé de type ftpd_t. En revanche, le démon vsftpd seul est exécutable avec le type ftpd_exec_t.
rwxrxrx. racine root system_u:object_r:ftpd_exec_t:s0 /usr/sbin/vsftpd Le rôle des différents démons et leurs processus correspondants doivent correspondre et contraster de la même manière. Si ce n'est pas le cas, le démon ne devrait pas fonctionner et le problème devrait être documenté dans le journal d'audit SELinux décrit au chapitre 4 dans le répertoire /var/log/audit.
Afficher les charges avec le navigateur de tâches supérieur La commande top trie d'abord les processus actifs en fonction de leur charge CPU et de l'utilisation de la mémoire RAM. Jetez un œil à la Figure 97. Il fournit un aperçu de l'état actuel du système, en commençant par le temps de fonctionnement actuel, le nombre d'utilisateurs connectés, les tâches actives et en veille, la charge du processeur, etc. La sortie est en fait un navigateur de tâches. Le champ de tri par défaut est Charge CPU. En d'autres termes, le processus qui consomme le plus de ressources CPU est répertorié en premier. Vous pouvez modifier le champ de tri à l'aide des touches directionnelles gauche et droite (). La plupart des colonnes sont identiques à celles illustrées à la Figure 96, comme détaillé dans le Tableau 91. Les colonnes supplémentaires sont décrites dans le Tableau 92.
FIGURE 97 Sortie de la commande supérieure
Machine Translated by Google
18 Chapitre 9 : Tâches d'administration système au niveau RHCSA
TABLEAU 92
Supplémentaire
Titre de la colonne
Description
RP
La priorité de la tâche ; pour plus d'informations, voir les commandes nice et renice
NI
La belle valeur de la tâche, un ajustement à la priorité
VIRT
La mémoire virtuelle utilisée par la tâche
RES
Mémoire physique utilisée par le processus, hors espace de swap, dans KB (similaire à RSS dans la sortie de la commande ps aux)
SHR
Mémoire partagée utilisée par une tâche, qui peut être réallouée
S
Statut du processus (identique à STAT dans la sortie de la commande ps aux)
Colonnes de Sortie du haut
Un problème avec les commandes top et ps est qu'elles affichent l'état des processus sur un système sous la forme d'un instantané dans le temps. Cela ne suffira peutêtre pas. Les processus peuvent charger un système pendant juste un instant, ou même des instants périodiques. Une façon de trouver plus d'informations sur la charge globale d'un système consiste à utiliser deux commandes du package sysstat : sar et iostat. Ces informations sur l'activité du système sont consignées grâce aux commandes sa1 et sa2 associées au script /etc/cron.d/ sysstat, qui sera décrit sous peu.
Rapports d'activité du système avec la commande sar La commande sar, par essence, peut être utilisée pour fournir un rapport d'activité du système. Par exemple, la Figure 98 montre la sortie de la commande sar A. Comme vous pouvez le voir, la sortie affiche diverses mesures du processeur à différents moments. Les paramètres par défaut mesurent la charge du processeur à des intervalles de dix minutes. Il y a quatre cœurs de processeur sur ce système, qui sont mesurés individuellement et dans leur ensemble. Les grands nombres inactifs affichés sur la figure sont un bon signe que le CPU n'est pas surchargé ; cependant, la figure montre la charge pendant moins d'une heure. Les intervalles de dix minutes associés à la sortie de la commande sar sont pilotés par une tâche régulière dans le répertoire /etc/cron.d. La sortie de ces rapports est collectée dans des fichiers journaux dans le répertoire /var/log/sa. Les noms de fichiers sont associés au jour numérique du mois ; par exemple, l'état du rapport d'activité du système pour le quinzième jour du mois se trouve dans le fichier sa15 du répertoire indiqué. Cependant, ces rapports sont normalement stockés pendant les sept derniers jours, selon la valeur par défaut suivante dans le fichier /etc/sysconfig/sysstat : HISTORIQUE=7
Machine Translated by Google
Commandes élémentaires d'administration système 19
FIGURE 98
Sortie de la commande sar A
Statistiques du processeur et du périphérique de stockage avec iostat Contrairement à sar, la commande iostat rapporte des statistiques d'entrée/sortie plus générales pour le système, non seulement pour le processeur, mais également pour les périphériques de stockage connectés, tels que les lecteurs locaux et les répertoires NFS partagés montés. Un exemple illustré à la Figure 99 affiche des informations sur la CPU et les périphériques de stockage sur le serveur1.exemple. système de communication.
Variations de sar avec sa1 et sa2 Les commandes sa1 et sa2 sont souvent utilisées pour collecter des données de rapport d'activité système. Dans le script /etc/ cron.d/sysstat, la commande sa1 est utilisée pour collecter les données d'activité du disque toutes les dix minutes. Dans ce même script, la commande sa2 collecte toutes les données sar dans un rapport quotidien. Comme indiqué dans le script, ce rapport est traité tous les jours, sept minutes avant minuit.
nice et renice Les commandes nice et renice permettent de gérer la priorité des différents processus. Alors que la commande nice est utilisée pour démarrer un processus avec une priorité différente, la commande renice est utilisée pour modifier la priorité d'un processus en cours d'exécution.
Machine Translated by Google
20 Chapitre 9 : Tâches d'administration système au niveau RHCSA
FIGURE 99
Statistiques du processeur et du périphérique de stockage
Les priorités de processus sous Linux spécifient des nombres qui semblent contreintuitifs. La plage de nombres de nice disponibles peut varier de 20 à 19. Un processus ayant une priorité de 20 a priorité sur tous les autres processus. En revanche, un processus auquel on attribue une priorité de 19 attendra que le système soit presque entièrement libre avant de prendre des ressources. Le nombre de nice par défaut d'un processus est 0. La commande nice précède les autres commandes. Par exemple, si vous avez un script intensif à exécuter la nuit, vous pouvez choisir de le démarrer avec une commande comme celleci :
$ nice n 19 ./script intensif Cette commande démarre le script noté avec la priorité la plus basse possible. S'il est démarré la nuit (ou à un autre moment où un système n'est pas chargé par d'autres programmes), le script est exécuté jusqu'à ce que presque toutes les autres tâches, telles qu'un script dans les répertoires /etc/cron.*, soient programmées pour exécution . Comme ces scripts sont exécutés selon un calendrier, ils devraient normalement avoir la priorité sur certains programmes configurés par l'utilisateur. Parfois, un programme utilise trop de ressources. Si vous devez vous assurer que le programme continue de s'exécuter, une étape avant de tuer le processus associé consiste à réduire sa priorité avec la commande renice. Normalement, le moyen le plus simple d'identifier un processus qui utilise trop de ressources consiste à utiliser son PID dans la sortie de la commande top. Ce numéro PID se trouve dans la colonne de gauche de la sortie. Par exemple, si vous identifiez un processus qui monopolise les ressources CPU et mémoire actuelles, copiez le numéro PID de ce processus. Si ce nombre était 1234, la commande suivante changerait le nombre gentil de ce processus en 10, ce qui donne à ce processus une priorité plus élevée que la valeur par défaut de 0.
# renice 10 1234
Machine Translated by Google
Commandes élémentaires d'administration système 21
Même si la sortie fait référence à la « priorité », il ne s'agit en fait que de répertorier les anciennes et les de nouveaux numéros « sympas » pour le processus :
1234 : ancienne priorité 0, nouvelle priorité, 10 Le nouveau nombre sympa est affiché dans la sortie de la commande supérieure, sous la colonne NI.
Commandes de destruction de processus Parfois, il ne suffit pas de redéfinir les priorités d'un processus. Certains processus peuvent simplement submerger un système. Avec certains autres systèmes d'exploitation, de telles situations nécessitent un redémarrage. Linux est différent. Dans la plupart des cas, vous pouvez arrêter ces processus difficiles avec les commandes kill et killall. Dans de nombreux cas, vous pouvez tuer un processus directement à partir du navigateur de tâches supérieur.
S'il y a une situation où un processus utilise beaucoup de mémoire ou de CPU, il ralentit probablement tout ce qui s'exécute sur ce système. Comme le montre la figure 910, Firefox a chargé assez lourdement le processeur du système indiqué. Si cela ralentissait mon système, j'appuierais sur k dans le navigateur de tâches supérieur.
FIGURE 910 Le meilleur navigateur de tâches avec
charge Firefox lourde
Machine Translated by Google
22 Chapitre 9 : Tâches d'administration système au niveau RHCSA
Comme le montre la figure, la commande k révèle l'invite PID To Kill:, où J'entre le PID du processus Firefox, 2971. Il applique la commande kill au processus avec ce numéro PID.
Bien sûr, vous pouvez appliquer la commande kill directement à un numéro PID. Par exemple, la commande suivante équivaut aux étapes décrites cidessus dans le navigateur de tâches supérieur :
# tuer 2971 La commande kill peut être exécutée par le propriétaire d'un processus depuis son compte. Ainsi, l'utilisateur michael pourrait exécuter la commande kill 2971 à partir de son compte habituel, car il dispose de privilèges administratifs sur les processus associés à son nom d'utilisateur. La commande kill peut envoyer une grande variété de signaux à différents processus. Pour une liste complète, exécutez la commande kill l. Avant l'avènement des scripts dans le répertoire /etc/init.d, la commande kill 1 était utilisée pour envoyer un signal de redémarrage aux démons de service. Par exemple, si le numéro PID du processus associé au serveur vsFTP est 2059, la commande suivante est fonctionnellement équivalente à la commande /etc/init.d/vsftpd restart :
# kill 1 2059 Sans le commutateur 1, la commande kill, dans des circonstances normales, arrêterait le processus donné. Dans ce cas, cela arrêterait le serveur vsFTP. Mais parfois, les processus restent bloqués dans des boucles. Dans certains cas, la commande kill ne fonctionne pas par ellemême. Le processus continue de s'exécuter. Dans ce cas, vous pouvez essayer deux choses. Tout d'abord, vous pouvez essayer la commande kill 9, qui tente d'arrêter un processus "malproprement". S'il réussit, d'autres processus connexes peuvent rester en cours d'exécution. Parfois, plusieurs processus s'exécutent sous le même nom. Par exemple, comme vous le verrez au chapitre 14, le serveur Web Apache démarre plusieurs processus qui s'exécutent simultanément. Il est au mieux inefficace de tuer un seul processus ; la commande suivante tuerait tous les processus serveur en cours d'exécution, en supposant qu'il n'y ait pas d'autres problèmes :
# killall httpd
Archives et Compression Linux inclut une variété de commandes pour archiver des groupes de fichiers. Certaines archives peuvent être retraitées dans des packages tels que des RPM. D'autres archives sont simplement utilisées comme sauvegardes. Dans les deux cas, les archives peuvent être très pratiques, surtout lorsqu'elles sont compressées. À cette fin, cette section explore ces commandes d'archivage et de compression
Machine Translated by Google
Commandes élémentaires d'administration système 23
spécifiquement cité dans les objectifs RHCSA. Ces "outils essentiels" incluent les commandes gzip, bzip2, tar et star.
gzip et bzip2 Les commandes gzip et bzip2 sont fonctionnellement similaires, car elles compressent et décompressent les fichiers, en utilisant des algorithmes différents. La commande gzip utilise l'algorithme LempelZiv, présent dans certains algorithmes de compression Microsoft. La commande bzip2 utilise l'algorithme de tri des blocs de BurrowsWheeler. Bien qu'ils fonctionnent tous les deux bien, la commande bzip2 rend un gros fichier un peu plus petit. Par exemple, l'une des deux commandes suivantes peut être utilisée pour compresser un gros fichier image nommé big.jpg :
# gzip gros.jpg # bzip2 gros.jpg Il ajoute un suffixe .gz ou .bz2 au fichier, compressé aux algorithmes associés. Avec le commutateur d, vous pouvez utiliser les mêmes commandes pour inverser le processus :
# gzip d gros.jpg.gz # bzip2 d gros.jpg.bz2
le goudron
La commande tar a été développée à l'origine pour archiver des données sur des lecteurs de bande. Cependant, il est couramment utilisé aujourd'hui pour collecter une série de fichiers, en particulier à partir d'un répertoire. Par exemple, la commande suivante sauvegarde les informations du répertoire /home dans le fichier home.tar.gz :
# tar czvf home.tar.gz /home Comme la commande ps, c'est l'une des rares commandes qui ne nécessite pas de tiret devant le commutateur. Cette commande particulière crée (c) une archive, la compresse (z), en mode verbeux (v), avec le nom de fichier (f) qui suit. Vous pouvez également extraire (x) de ce fichier avec la commande suivante :
# tar xzvf home.tar.gz /home La compression spécifiée (z) est associée à la commande gzip ; si tu voulais pour utiliser la compression bzip2, remplacez le commutateur j. Mais la commande tar présente des inconvénients, car ces archives ne stockent pas les paramètres de la liste de contrôle d'accès ni les attributs SELinux. Mais si une archive tar est la seule disponible, vous pouvez utiliser des commandes telles que restorecon, comme décrit au chapitre 4, pour restaurer les contextes d'une archive qui ont été restaurés dans leurs répertoires d'origine.
Machine Translated by Google
24 Chapitre 9 : Tâches d'administration système de niveau RHCSA
étoile La commande star est plus appropriée pour archiver des fichiers dans un système SELinux. Comme la commande star n'est normalement pas installée, vous devrez l'installer ; une méthode consiste à utiliser la commande suivante :
# miam install star Malheureusement, la commande star ne fonctionne pas tout à fait de la même manière que tar. Si jamais vous devez utiliser la commande étoile, un peu d'entraînement est approprié. Par exemple, la commande suivante créerait une archive, avec tous les contextes SELinux, à partir du répertoire /home actuel :
# star xattr H=exustar c f=home.star /home/ Le commutateur xattr enregistre les attributs étendus associés à SELinux. Le H=exustar enregistre les entêtes associés aux ACL. Le c crée un nouveau fichier d'archive. Le f spécifie le nom du fichier d'archive. Une fois l'archive créée, elle peut être décompressée avec la commande suivante, qui extrait l'archive :
# étoile x f=maison.étoile Si vous le souhaitez, l'archive peut être compressée avec les commandes gzip ou bzip2 susmentionnées. Cependant, avec une archive créée avec la commande star, de tels fichiers compressés ne peuvent pas être décompressés avec la commande gzip d ou bzip2 d. Néanmoins, la commande star x peut détecter et restaurer des fichiers à partir d'archives configurées avec différents schémas de compression. Par exemple, sur la base d'une archive compressée avec gzip, la commande star décompresse cette archive, comme indiqué par le message d'information de journal suivant :
star : AVERTISSEMENT : L'archive est compressée en "gzip", essayez d'utiliser l'option z.
Contrôler les services via des démons Un démon est un processus qui s'exécute en arrièreplan. Il réside dans la RAM du système et surveille les signaux avant d'entrer en action. Par exemple, un démon réseau tel que httpd, le serveur Web Linux connu sous le nom d'Apache, attend une demande d'un navigateur avant de servir une page Web. De nombreux démons Linux sont conçus pour fonctionner sur un réseau. Malheureusement, les réseaux ne fonctionnent pas toujours. Parfois, vous devez redémarrer un démon réseau pour implémenter une modification de configuration. Comme indiqué au chapitre 5, RHEL facilite le contrôle des démons de service réseau via les scripts du répertoire /etc/rc.d/init.d. Ce
Machine Translated by Google
Administration système automatisée : cron et at 25
comprend des scripts qui peuvent contrôler les services réseau Linux installés (et plus) pour tout, du système de fichiers réseau (NFS) à sendmail. Le démon luimême se trouve généralement dans le répertoire /sbin ou /usr/sbin.
OBJECTIF DE CERTIFICATION 9.03
Administration système automatisée : cron et at Le système cron est essentiellement un réveil intelligent. Lorsque l'alarme retentit, Linux exécute automatiquement les commandes de votre choix. Vous pouvez régler le réveil pour qu'il fonctionne à toutes sortes d'intervalles de temps réguliers. De nombreuses tâches cron sont programmées pour s'exécuter au milieu de la nuit, lorsque l'activité des utilisateurs est plus faible. Bien sûr, ce timing peut être ajusté. Alternativement, le système at permet aux utilisateurs d'exécuter les commandes de leur choix, une fois, à un moment précis dans le futur. RHEL installe le démon cron par défaut. Il y a eu des changements significatifs dans cron depuis RHEL 5, car le démon cron intègre désormais le Étant donné que cron vérifie toujours
système anacron. Le démon cron démarre les travaux
les modifications, vous n'avez pas à redémarrer cron
selon un calendrier régulier. Le système anacron aide le
chaque fois qu'une modification a été apportée.
démon cron à fonctionner sur des systèmes qui sont éteints la nuit. Cela aide les entreprises qui souhaitent économiser de l'énergie.
Il est configuré pour vérifier le répertoire /var/spool/cron pour les travaux par utilisateur. De plus, il intègre les travaux définis dans le fichier /etc/anacrontab, basés sur le script 0anacron dans le répertoire / etc/cron.hourly. Il vérifie également les travaux planifiés pour l'ordinateur décrit dans le fichier /etc/crontab et dans le répertoire /etc/cron.d.
La crontab système et les composants Le fichier /etc/crontab est configuré dans un format spécifique. Chaque ligne peut être vide, un commentaire (qui commence par #), une variable ou une commande. Naturellement, les lignes vides et les commentaires sont ignorés. Grâce à RHEL 5, ce fichier comprenait un calendrier des tâches. À ce stade, le fichier crontab inclut uniquement le format des autres fichiers de configuration associés. Les utilisateurs exécutent des commandes régulières. Quiconque exécute une commande régulière, que ce soit vous ou un démon, est limité par diverses variables environnementales. Pour voir le
Machine Translated by Google
26 Chapitre 9 : Tâches d'administration système au niveau RHCSA
variables d'environnement pour l'utilisateur actuel, exécutez la commande env. Si cet utilisateur est votre compte, certaines des variables standard de RHEL incluent HOME, qui doit correspondre à votre répertoire personnel, SHELL, qui doit correspondre au shell par défaut, et LOGNAME comme nom d'utilisateur.
D'autres variables peuvent être définies dans /etc/crontab et les fichiers associés tels que /etc/anacrontab et /etc/ cron.d/0hourly au format suivant :
Variable=Valeur Certaines variables sont déjà définies pour vous. Par exemple, MAIL pour moi est /var/spool /mail/michael, LANG est en_US.UTF8 et PATH est l'endroit où le shell recherche les commandes. Vous pouvez définir ces variables sur différentes valeurs dans divers fichiers de configuration cron. Par exemple, le fichier /etc/crontab par défaut inclut les variables suivantes :
COQUE=/bin/bash CHEMIN=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=racine ACCUEIL=/
Notez que les valeurs de PATH, MAILTO et HOME sont différentes des variables d'environnement standard. La variable PATH dans un fichier de configuration cron peut être différente de la variable PATH associée à un shell. En fait, les deux variables sont indépendantes. Par conséquent, vous voudrez connaître le chemin exact de chaque commande dans chaque fichier de configuration cron. Spécifiez le chemin absolu avec la commande s'il n'est pas dans le crontab PATH.
La variable MAILTO peut vous aider à administrer plusieurs systèmes Linux. Le démon cron envoie la sortie par email. Ajoutez simplement une ligne telle que [email protected] pour acheminer tous les messages cron associés à ce fichier vers cette adresse email. Le format d'une ligne dans /etc/crontab est maintenant détaillé dans les commentaires, comme indiqué dans Image 911. Chacune de ces colonnes est expliquée plus en détail dans le Tableau 93. Si vous voyez un astérisque dans une colonne, le démon cron exécute cette commande pour toutes les valeurs possibles de cette colonne. Par exemple, un * dans le champ des minutes signifie que la commande est exécutée toutes les minutes pendant la ou les heures spécifiées. Prenons un autre exemple, comme illustré ici :
1
5
3 4 * ls
Machine Translated by Google
Automatiser l'administration système : cron et at 27
FIGURE 911
Le format d'un crontab
Cette ligne exécute la commande ls tous les 3 avril à 5 h 01. L' astérisque dans la colonne du jour de la semaine signifie simplement que le jour de la semaine n'a pas d'importance ; crontab exécute toujours la commande ls à l'heure spécifiée. Les entrées associées au démon cron sont flexibles. Par exemple, une entrée de 7 à 10 dans le champ des heures exécuterait la commande spécifiée à 7h00 , 8h00 , 9h00 et 10h00 . Une liste d'entrées dans le champ des minutes telles que 0, 5,10,15,20,25,30,35,40,45,50,55 exécuterait la commande spécifiée toutes les cinq minutes. Mais cela fait beaucoup de chiffres. Le */5 dans le champ des minutes conduirait au même résultat. Le démon cron reconnaît également les abréviations pour les mois et le jour de la semaine.
TABLEAU 93
Champ
Valeur
Colonnes
minute
0–59
dans un cron
heure
Basé sur une horloge de 24 heures; par exemple, 23 = 23 h
Fichier de configuration
jour du mois 1–31 mois
1–12, ou jan, fév, mar, etc. 0–
jour de la semaine
7 ; où 0 et 7 sont tous les deux dimanche ; ou dim, lundi, mardi, etc.
commande
La commande à exécuter, parfois répertoriée avec le nom d'utilisateur pour exécuter la commande
Machine Translated by Google
28 Chapitre 9 : Tâches d'administration système au niveau RHCSA
La commande réelle est le sixième champ. Vous pouvez configurer de nouvelles lignes avec un symbole de pourcentage (%). Ceci est utile pour formater l'entrée standard. L'exemple d'un fichier cron suit les formats d'entrée pour un message électronique :
# crontab l # Exemple de fichier crontab # # Forcer /bin/sh à être mon shell pour tous mes scripts. SHELL=/bin/bash # Exécuter 15 minutes après minuit tous les samedis 15 0 * * sat $HOME/scripts/scary.script # Effectuez un nettoyage de routine le premier de chaque mois à 4h30 /usr/scripts/removecores >> /tmp/core.tmp 2>>&1 30 4 1 * * # Envoyez un message à 10h45 tous les vendredis 45 10 * * ven mail s "Mise à jour du projet employés%Puisje avoir une mise à jour de l'état de votre projet ? %%Votre patron.% # Toutes les deux heures, vérifiez les messages d'alerte 0 * /2 * * * /usr/scripts/ check.alerts
Tâches cron horaires Il est maintenant temps pour quelques exemples de fichiers cron. Les fichiers et scripts discutés sont limités à ceux vus sur le système server1.example.com. Un certain nombre de packages différents ajoutent leurs propres tâches cron. Certaines tâches associées au démon cron sont exécutées toutes les heures, en fonction du script 0hourly du répertoire /etc/cron.d. Il inclut les mêmes variables que le fichier / etc/crontab que nous venons de décrire. Pour les emplois horaires, il comprend une ligne :
01 * * * * root runparts /etc/cron.hourly Compte tenu des informations fournies dans la section précédente, vous devriez pouvoir lire cette ligne. La commande runparts exécute chaque script dans le répertoire qui suit ; les scripts de ce répertoire sont exécutés en tant qu'utilisateur root. Bien entendu, les cinq premières colonnes précisent l'heure ; les scripts sont exécutés toutes les heures, toutes les heures, tous les jours, tous les mois, tous les jours de la semaine. Le script qui nous intéresse dans le répertoire /etc/cron.hourly est 0anacron. Ce script examine le contenu du fichier /var/spool/anacron/cron.daily, pour voir si la commande anacron a été exécutée au cours de la dernière journée. Sinon, et si le système fonctionne sur secteur, la commande /usr/sbin/ anacron s est exécutée, qui exécute les scripts définis dans le fichier de configuration /etc/anacrontab.
Machine Translated by Google
Automatiser l'administration système : cron et at 29
Le script d'état du système décrit précédemment est stocké dans le fichier /etc/cron.d/sysstat. Il y a deux commandes actives dans ce fichier. La première commande, sa1, est exécutée toutes les dix minutes, comme illustré par */10. Cette commande est exécutée toutes les heures, tous les jours, etc. */10 * * * * racine /usr/lib64/sa/sa1 S DISQUE 1 1
La deuxième commande, sa2, est exécutée 53 minutes après l'heure, la 23e heure de chaque jour. En d'autres termes, le rapport d'activité du système n'est pas collecté avant 23h53 le soir.
53 23 * * * racine /usr/lib64/sa/sa2 A
Emplois Anacron réguliers Le script 0anacron dans le répertoire /etc/cron.hourly décrit précédemment exécute la commande anacron après la mise sous tension d'un système. Cette commande exécute trois scripts définis dans le fichier /etc/anacrontab. Il comprend trois variables d'environnement qui devraient vous sembler familières : COQUE=/bin/sh CHEMIN=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=racine
La directive SHELL peut sembler un peu différente, mais la commande ls l /bin/sh doit confirmer un lien logiciel vers la commande /bin/bash, qui démarre le shell bash par défaut. La directive suivante signifie que les scripts sont exécutés à une heure aléatoire pouvant aller jusqu'à 45 minutes après l'heure planifiée :
RANDOM_DELAY=45 Avec la directive suivante, les tâches anacron ne sont exécutées qu'entre 3 h 00 et 22 h 59 .
START_HOURS_RANGE=322
Bien que le format de /etc/anacrontab soit similaire à ceux répertoriés dans un script pour une tâche cron standard, il existe des différences. L'ordre des données dans chaque ligne est spécifié par le commentaire suivant : #période en jours délai en minutes commande jobidentifier
La période en jours est 1, 7 ou @mensuel, car le nombre de jours dans un mois varie. Le délai en minutes est associé à la directive RANDOM_DELAY. Depuis
Machine Translated by Google
30 Chapitre 9 : Tâches d'administration système au niveau RHCSA
le fichier /etc/anacrontab est exécuté via le script /etc/cron.d/0hourly, l'horloge démarre une minute après l'heure, après le démarrage du système. Le délai en minutes vient avant la directive RANDOM_DELAY. En d'autres termes, sur la base de la ligne suivante, les scripts du répertoire /etc/cron.daily peuvent être exécutés entre 5 et 50 minutes après l'exécution de la commande anacron, ou entre 6 et 51 minutes après l'heure. 1
5 cron.quotidien
belles pièces d'exécution /etc/cron.daily
Pour plus d'exemples, passez en revue certains des scripts dans le répertoire /etc/cron.daily. Trois scripts clés incluent logrotate, pour la rotation des fichiers journaux ; mlocate.cron, qui met à jour la base de données des fichiers de localisation ; et tmpwatch, qui efface les fichiers de /tmp et /var/tmp après un certain temps. Les seuls paramètres SELinux associés à cron prennent en charge le réétiquetage automatisé et permettent l'accès au planificateur fcron , associé aux booléens cron_can_relabel et fcron_crond .
Configuration de cron pour les utilisateurs Chaque utilisateur peut utiliser la commande crontab pour créer et gérer des tâches cron pour ses propres comptes. Quatre commutateurs sont associés à la commande crontab : ■ u user Permet à l'utilisateur root de modifier la crontab d'un autre utilisateur spécifique. ■ l Répertorie les entrées actuelles du fichier crontab.
■ r Supprime les entrées cron. ■ e Modifie une entrée crontab existante. Par défaut, crontab utilise vi. Pour configurer des entrées cron sur votre propre compte, commencez par la commande crontab e. Normalement, il ouvre un fichier dans l'éditeur vi, où vous pouvez ajouter des variables et des commandes appropriées, similaires à ce que vous avez vu dans d'autres fichiers de travail cron. Une fois la tâche cron enregistrée, vous pouvez confirmer la tâche avec la commande crontab l ou en lisant le contenu d'un fichier dans le répertoire /var/spool/cron associé à un nom d'utilisateur. Toutes les tâches cron en cours pour un utilisateur peuvent être supprimées avec la commande crontab r.
Machine Translated by Google
Automatiser l'administration système : cron et at 31
EXERCICE 91 Créer une tâche cron Dans cet exercice, vous modifierez les paramètres de base de la tâche cron Red Hat pour lire un fichier texte à 13 h 05 tous les lundis du mois de janvier. Pour ce faire, vous devrez créer un répertoire pour les tâches cron annuelles. Pour ce faire, procédez comme suit : 1. Connectezvous en tant qu'utilisateur régulier.
2. Créez un répertoire /etc/cron.yearly. Ajoutez un fichier appelé taxrem, qui lit un fichier texte à partir de votre répertoire personnel. Une commande telle que la suivante dans le fichier taxrem devrait suffire :
chat ~/rappel Assurezvous d'ajouter les lignes appropriées au fichier de rappel dans votre répertoire personnel, telles que "N'oubliez pas de faire vos impôts !" Assurezvous que le fichier taxrem est exécutable avec la commande chmod +x /etc/cron.yearly/taxrem. 3. Ouvrez la crontab de votre compte avec la commande crontab e. 4. Ajoutez une commande appropriée à la crontab. Sur la base des conditions décrites, il se lirait comme suit :
5 13 * 1 1 root runparts /etc/cron.yearly 5. N'oubliez pas les directives telles que SHELL=/bin/bash au début du script. 6. Enregistrez et quittez. Confirmez l'existence du fichier cron utilisateur dans /var/spool/cron annuaire. Ce fichier doit avoir le même nom que l'utilisateur.
Exécuter une tâche avec le système at Comme cron, le démon at prend en charge le traitement des tâches. Cependant, vous pouvez définir une tâche at à exécuter une seule fois. Les tâches du système cron doivent être configurées pour s'exécuter régulièrement. Le démon at fonctionne de manière similaire au processus d'impression ; les travaux sont mis en file d'attente dans le répertoire /var/spool/at et exécutés à l'heure spécifiée. Vous pouvez utiliser le démon at pour exécuter la commande ou le script de votre choix. Pour le Dans le cadre de cette section, supposons que l'utilisateur michael a créé un script nommé 797 dans son répertoire personnel pour traiter une base de données de ventes d'avions dans un autre fichier du même répertoire appelé sales.
Machine Translated by Google
32 Chapitre 9 : Tâches d'administration système au niveau RHCSA
À partir de la ligne de commande, vous pouvez exécuter la commande at time pour démarrer une tâche à exécuter à une heure précise. Ce moment peut être maintenant; dans un nombre spécifié de minutes, d'heures ou de jours ; ou à l'heure de votre choix. Plusieurs exemples sont illustrés dans le Tableau 94.
Vous pouvez utiliser l'un des exemples de commandes présentés dans le Tableau 94 pour ouvrir un travail at. Il ouvre une interface de ligne de commande différente, où vous pouvez spécifier la commande de votre choix. Pour cet exemple, supposons que vous êtes sur le point de quitter le travail et que vous souhaitez commencer le travail dans une heure. À partir des conditions spécifiées, exécutez les commandes suivantes :
$ à maintenant + 1 heure à> /home/michael/797 > /home/michael/sales à> CtrlD
La commande CTRLD quitte le shell at et revient à l'interface de ligne de commande d'origine. La commande atq, comme illustré ici, vérifie l'état des tâches at en cours. Tous les travaux en attente sont répertoriés dans la sortie de la commande atq :
$ atq 1 20121221 03:00 a Michel S'il y a un problème avec le travail, vous pouvez le supprimer avec la commande atrm. Par exemple, vous pouvez supprimer la tâche notée, intitulée tâche 1, avec la commande suivante :
$ atrm 1
Sécurisez cron et at Vous ne voulez peutêtre pas que tout le monde puisse exécuter un travail au milieu de la nuit. Si le système présente une faille de sécurité, quelqu'un peut télécharger des données importantes ou pire, et cela peut prendre des jours avant que la faille de sécurité ne soit découverte.
TABLEAU 94
Exemples de commande at
Exemple de période de temps
Heure de début des travaux
Minutes
maintenant + 10 minutes Dans 10 minutes
Heures
maintenant + 2 heures
Dans 2 heures
Jours
maintenant + 1 jour
En 24 heures
Semaines
maintenant + 1 semaine
Dans 7 jours
n / A
à l'heure du thé
À 16h00
n / A
à 3:00 21/12/12
Le 21 décembre 2012 à 03h00
Machine Translated by Google
Automatiser l'administration système : cron et at 33
TABLEAU 95
/etc/cron.deny existe
/etc/cron.deny n'existe pas
/etc/cron.allow existe Effets de sécurité de cron.allow et
Seuls les utilisateurs répertoriés dans /etc/
Seuls les utilisateurs répertoriés dans /etc/cron.allow
cron. allow peut exécuter crontab e ; le
peuvent exécuter crontab e.
cron.deny
contenu de /etc/cron.deny est ignoré.
/etc/cron.allow n'existe
Tous les utilisateurs répertoriés dans /etc/
pas
cron. refuser ne peut pas utiliser crontab e.
Seul l'utilisateur root peut exécuter crontab e.
Les utilisateurs peuvent être configurés dans les fichiers /etc/cron.allow et /etc/cron.deny. Si aucun de ces fichiers n'existe, l'utilisation de cron est limitée à l'utilisateur administratif root. Si le fichier /etc/cron. allow existe, seuls les utilisateurs nommés dans ce fichier sont autorisés à utiliser cron. S'il n'y a pas de fichier /etc/ cron.allow, seuls les utilisateurs nommés dans /etc/cron.deny ne peuvent pas utiliser cron. Ces fichiers sont formatés sur une ligne par utilisateur ; si vous incluez les entrées suivantes dans /etc/cron.deny, et que le fichier /etc/cron.allow n'existe pas, les utilisateurs elizabeth et nancy ne sont pas autorisés à configurer leurs propres scripts cron :
elisabeth Nancy
Cependant, si le fichier /etc/cron.allow existe, avec la même liste d'utilisateurs, il est prioritaire. Dans ce cas, les utilisateurs elizabeth et nancy sont autorisés à configurer leurs propres scripts cron. L'éventail des possibilités est résumé dans le Tableau 95. La sécurité des utilisateurs pour le système at est presque identique. Les fichiers de configuration de sécurité correspondants sont /etc/at.allow et /etc/at.deny. L'éventail des possibilités est résumé dans le Tableau 96. Si vous êtes paranoïaque à propos de la sécurité, il peut être approprié d'inclure uniquement les utilisateurs souhaités dans les fichiers /etc/cron.allow et /etc/at.allow. Sinon, une faille de sécurité dans un compte de service peut permettre à un cracker d'exécuter un cron ou un script at à partir du compte associé. compte.
TABLEAU 96
Effets de sécurité de
/etc/at.deny existe /etc/at.allow existe
Seuls les utilisateurs répertoriés dans /etc/ at.allow peuvent exécuter la commande at ; le
/etc/at.deny n'existe pas Seuls les utilisateurs répertoriés dans /etc/at.allow peuvent exécuter la commande at.
contenu de /etc/at.deny est ignoré.
at.allow et at.deny /etc/at.allow
Tous les utilisateurs répertoriés dans /etc/
n'existe pas
at.deny ne peuvent pas exécuter la commande at.
Seul l'utilisateur root peut exécuter la commande at.
Machine Translated by Google
34 Chapitre 9 : Tâches d'administration système au niveau RHCSA
OBJECTIF DE CERTIFICATION 9.04
Analyse du fichier journal local Une partie importante du maintien d'un système sécurisé consiste à surveiller les activités qui se déroulent sur le système. Si vous savez ce qui se passe habituellement, comme comprendre quand les utilisateurs se connectent à un système, vous pouvez utiliser les fichiers journaux pour repérer les activités inhabituelles. Red Hat Enterprise Linux est livré avec de nouveaux utilitaires de surveillance du système qui peuvent aider à identifier le coupable en cas de problème.
RHEL 6 est livré avec un démon de journalisation amélioré appelé rsyslog. Il inclut les fonctionnalités des services de journalisation du noyau et du système utilisés via RHEL 5. Le service rsyslogd consigne toutes les activités de processus. Vous pouvez utiliser les fichiers journaux ainsi générés pour suivre les activités sur un système. La configuration de rsyslog en tant que serveur de journalisation pour plusieurs systèmes est une compétence RHCE abordée au chapitre 17. Le démon rsyslog est actif par défaut et peut être activé par le script /etc/init.d/rsyslog. La façon dont il journalise les fichiers est basée sur la configuration définie dans le fichier /etc/rsyslog.conf. Si vous connaissez les démons syslogd et klogd de RHEL 5, les concepts du fichier rsyslog.conf devraient vous être familiers.
Dans de nombreux cas, des services tels que SELinux, Apache et Samba ont leur propre journal fichiers, définis dans leurs propres fichiers de configuration. Les détails sont traités dans les chapitres associés à ces services.
Fichier de configuration du journal système Vous pouvez configurer ce qui est journalisé via le fichier de configuration /etc/rsyslog.conf. Comme le montre la Figure 912, il inclut un ensemble de règles pour différentes fonctions (si les paquetages correspondants sont installés) : authpriv, cron, kern, mail, news, user et uucp. Chaque installation est associée à plusieurs niveaux de journalisation différents, connus sous le nom de priorité. Dans l'ordre croissant, les priorités des journaux sont debug, info, notice, warn, err, crit, alert, emerg. Il existe également une priorité générique aucune qui n'enregistre aucun message de l'installation spécifique ; par exemple, une directive authpriv.none omettrait toute authentification messages. Pour chaque installation et priorité, les informations du journal sont envoyées à un fichier journal spécifique. Pour exemple, considérez la ligne suivante de /etc/syslog.conf :
*.info;mail.none;news.none;authpriv.none;cron.none /var/log/messages
Machine Translated by Google
Analyse du fichier journal local 35
FIGURE 912 Le fichier de configuration du journal rsyslog.conf
Cette ligne envoie les informations de journal de toutes les installations données au fichier /var/log/messages. Ceci comprend
■ Tous les messages d'installation de niveau info et supérieur ■ À l'exception des messages de journal liés aux services de messagerie, d'actualités, d'authpriv (authentification) et cron Vous pouvez utiliser l'astérisque comme caractère générique dans /etc/syslog.conf. Par exemple, une ligne qui commence par *.* indique au démon rsyslogd de tout consigner. Une ligne qui commence par auth.* signifie que vous souhaitez enregistrer tous les messages du service authpriv. Par défaut, rsyslogd enregistre tous les messages d'une priorité donnée ou supérieure. Autrement dit, une ligne cron.err inclura tous les messages de journal du démon cron aux niveaux err, crit, alert et emerg.
La plupart des messages du démon rsyslogd sont écrits dans des fichiers du répertoire /var/log. Vous devez analyser ces journaux régulièrement et rechercher des modèles qui pourraient indiquer une faille de sécurité. Il est également possible de configurer des tâches cron pour rechercher de tels modèles.
Machine Translated by Google
36 Chapitre 9 : Tâches d'administration système au niveau RHCSA
Gestion des fichiers journaux Les journaux peuvent facilement devenir très volumineux et difficiles à lire. Par défaut, l'utilitaire logrotate crée un nouveau fichier journal toutes les semaines, en utilisant les directives du fichier /etc/logrotate.conf, qui extrait également les directives des fichiers du répertoire /etc/logrotate.d. Comme le montre la Figure 913, les directives du fichier sont simples et bien expliquées par le
commentaires. Plus précisément, les paramètres par défaut effectuent une rotation hebdomadaire des fichiers journaux, en stockant les journaux des quatre dernières semaines. De nouveaux fichiers journaux sont créés pendant la rotation et les fichiers plus anciens ont la date de rotation comme suffixe. Différentes dispositions sont données aux journaux wtmp et btmp, liés à l'authentification.
FIGURE 913 Rotation des journaux configurée dans /etc/logrotate.conf
Machine Translated by Google
Analyse du fichier journal local 37
Une variété de fichiers journaux Divers fichiers journaux et leurs fonctionnalités sont décrits dans le Tableau 97. Ces fichiers sont créés sur la base de la configuration décrite précédemment du fichier /etc/rsyslog.conf. Tous les fichiers affichés se trouvent dans le répertoire /var/log. Si vous n'avez pas installé, activé ou utilisé le service indiqué, le fichier journal associé peut ne pas s'afficher. En revanche, vous pouvez voir des fichiers journaux non affichés ici en fonction de services installés supplémentaires. TABLEAU 97 Fichiers journaux
anaconda.*
Fichiers journaux Red Hat standard
Description Spécifie six fichiers journaux : anaconda.log pour les messages d'installation ; anaconda.program.log pour les messages de détection de stockage ; anaconda.storage.log pour les messages de format ; anaconda.syslog pour le premier dmesg, anaconda.xlog pour le premier démarrage du serveur GUI ; et anaconda.yum.log pour l'installation du package Inclut le fichier audit.log, qui collecte les messages du soussystème d'audit du noyau 2.6
Audit/
Associé aux services qui démarrent et arrêtent le processus Répertorie les tentatives de connexion échouées ;
boot.log
lisible avec la commande utmpdump btmp Suit les connexions des utilisateurs avec les consoles et le matériel des
btmp
périphériques d'entrée Collecte des informations à partir de scripts exécutés par le démon cron Répertoire des
ConsoleKit/
accès à l'imprimante, des pages et des journaux d'erreurs
cron tasses/
dmesg
Inclut les messages de démarrage de base
gdm/
Répertoire des messages associés au démarrage via le gestionnaire d'affichage GNOME ; inclut les échecs de connexion Répertoire des fichiers journaux associés au serveur Web Apache Répertorie les enregistrements de
httpd/
connexion ; lisible avec la commande lastlog Collecte les messages du journal liés aux serveurs de messagerie
lastlog
Spécifie les données d'exception de vérification de la machine sur les systèmes 64 bits Inclut les messages d'autres
maillog
services tels que définis dans /etc/syslog.conf Répertoire avec les données du serveur NTP Spécifie deux fichiers
mcelog
journaux liés à l'alimentation Annuaire de gestion avec statistiques de protocole point à point ; généralement
messages
associé aux modems téléphoniques Répertoire contenant les journaux des bibliothèques préliées et des binaires
ntpstats/
conçus pour accélérer le processus de démarrage Liste actuelle des packages RPM installés Répertoire avec les
pm* ppp/
rapports d'activité du système Répertoire des journaux d'accès et de service pour le serveur Samba
prelink/ rpmpkgs
sa/ samba/
Machine Translated by Google
38 Chapitre 9 : Tâches d'administration système de niveau RHCSA
TABLEAU 97
Fichiers journaux Red Hat standard (suite)
Description
Fichiers journaux
scrollkeeper.log Notes les informations du journal relatives à la documentation GNOME Répertorie les sécurisé
messages de connexion et d'accès
setroubleshoot/ Répertoire des messages associés au spooler de l'outil de dépannage SELinux Affiche un fichier journal pouvant inclure des messages critiques squid/ Répertoire des fichiers liés à l'accès, au cache et au stockage sssd/ de Squid Proxy Server Répertoire des messages associés au journal de pointage du démon des services de sécurité du système
Prend en charge pam_tally, qui verrouille un utilisateur après des tentatives de connexion
excessives up2date
Comprend des messages d'accès à un serveur de mise à jour Red Hat Network
wtmp
Liste des logins, au format binaire ; peut être lu avec la commande utmpdump
xferlog
Ajoute des messages associés aux transferts de fichiers depuis un serveur FTP local
Xorg.0.log
Messages de configuration de Notes pour le système X Window ; peut inclure des problèmes de configuration
yum.log
Spécifie les packages de journaux installés, mis à jour et effacés avec yum
Journaux spécifiques au service Comme suggéré précédemment, un certain nombre de services contrôlent leurs propres fichiers journaux. Les fichiers journaux du serveur vsFTP, par exemple, sont configurés dans le fichier vsftpd.conf du répertoire /etc/vsftpd. Comme indiqué dans ce fichier, la directive suivante active la journalisation des chargements et des téléchargements dans le fichier /var/log/ xferlog :
xferlog_enable=OUI La journalisation d'autres services peut être plus complexe. Par exemple, des fichiers journaux distincts sont configurés pour l'accès et les erreurs dans le serveur Web Apache dans le répertoire /var/log/httpd.
EXERCICE 92 Apprendre les fichiers journaux Dans cet exercice, vous allez inspecter les fichiers journaux sur un système local pour tenter d'identifier différents problèmes.
1. Redémarrez l'ordinateur Linux. Connectezvous en tant qu'utilisateur root. Utilisez le mauvais mot de passe une fois.
Machine Translated by Google
Analyse du fichier journal local 39
2. Connectezvous correctement avec le mot de passe correct en tant qu'utilisateur root. 3. Dans une console, accédez au répertoire /var/log et ouvrez le fichier nommé sécurisé. Accédez au message « ÉCHEC DE LA CONNEXION » le plus proche de la fin du fichier. Fermez le fichier. 4. Consultez les autres journaux dans le répertoire /var/log. Utilisez le tableau 97 pour vous guider. Recherchez les messages associés au matériel. Dans quels fichiers journaux se trouventils ? Cela atil du sens?
5. La plupart des fichiers journaux, mais pas tous, sont des fichiers texte. Essayez de lire le fichier lastlog dans le répertoire /var/log sous la forme d'un fichier texte. Ce qui se produit? Essayez la commande lastlog. Êtesvous en train de lire le contenu du fichier /var/log/lastlog ? Pouvezvous le confirmer à partir de la page de manuel associée ?
SCÉNARIO & SOLUTION Impossible de se connecter à un serveur VNC local
Assurezvous que le serveur VNC est en cours d'exécution avec la commande /etc/init.d/vncserver restart ou vinopreferences.
Impossible de se connecter à un serveur VNC distant
Assurezvous que vous vous connectez au bon port ; par exemple, une connexion à 192.168.100.1:1 nécessite l'ouverture des ports 5900 et 5901. Passez en revue les ports ouverts avec les commandes nmap et telnet appropriées.
Les utilisateurs réguliers ne peuvent pas accéder à la commande crontab ou
Passez en revue les fichiers cron.allow et cron.deny dans le répertoire /
à l'invite at
etc/. Si tous les utilisateurs réguliers sont autorisés à accéder, assurezvous que le fichier cron.deny existe mais qu'il est vide et supprimez cron.allow. (Des directives similaires s'appliquent à l'invite à.)
Les fichiers journaux ne contiennent pas suffisamment d'informations
Révisez /etc/rsyslog.conf. Concentrezvous sur l'installation souhaitée, telle que authpriv, mail ou cron, et révisez la priorité pour inclure des informations plus détaillées
Machine Translated by Google
40 Chapitre 9 : Tâches d'administration système au niveau RHCSA
RÉSUMÉ DES CERTIFICATIONS RHEL 6 comprend deux serveurs VNC qui peuvent vous aider à configurer des connexions à distance à un environnement de bureau GUI local. Ils nécessitent des ports ouverts commençant par 5900 et plus, selon le nombre de connexions GUI distantes que vous souhaitez autoriser. Une telle communication peut être cryptée via une connexion SSH. Attention, le visualiseur de la console graphique KVM utilise également VNC.
Diverses commandes d'administration système peuvent vous aider, en tant qu'administrateur, à surveiller et à gérer les ressources utilisées sur un système. Ces commandes incluent ps, top, kill, nice et renice. De plus, avec les bonnes commandes, vous pouvez créer des archives. Cependant, des commandes spéciales sont nécessaires pour sauvegarder des fichiers avec des attributs spécialisés tels que ceux basés sur les ACL et SELinux. Les démons cron et at peuvent vous aider à gérer les tâches exécutées sur un système selon un calendrier. Avec les fichiers de configuration associés, l'accès à ces démons peut être limité à certains utilisateurs. Alors que les fichiers de configuration cron suivent un format spécifique documenté dans /etc/crontab, ces directives de configuration ont été intégrées au système anacron qui prend en charge la gestion des tâches sur les systèmes régulièrement éteints.
RHEL 6 inclut le démon rsyslog, configuré principalement pour les systèmes locaux dans le fichier /etc/rsyslog.conf. Les fichiers journaux sont normalement collectés dans le répertoire /var/log. Le démon rsyslog prend également en charge la création d'un serveur de journalisation qui peut collecter des informations sur les fichiers journaux à partir de divers systèmes.
Machine Translated by Google
Exercice de deux minutes 41
EXERCICE DE DEUX MINUTES Voici quelquesuns des points clés des objectifs de certification du chapitre 9.
Configurer l'accès avec VNC La communication VNC est normalement configurée sur les ports 5900 à 5909 ; pour permettre l'accès à distance, les parefeu configurés doivent laisser passer ce trafic. Sur RHEL 6, les serveurs VNC peuvent être configurés avec le serveur TightVNC et le serveur vino.
RHEL 6 utilise également VNC pour fournir une vue graphique des réseaux virtuels basés sur KVM.
Machines. Le logiciel client compatible VNC inclut la commande vncviewer et le Remote Desktop Viewer que vous pouvez démarrer avec la commande vinagre. La communication VNC peut être cryptée en la faisant passer par un SSH
connexion.
Commandes d'administration système élémentaires La commande ps peut identifier les processus en cours d'exécution. La commande top lance un navigateur de tâches qui peut identifier les processus prenant
charge excessive sur un système. Les commandes sar et associées fournissent des rapports sur l'activité du système. La commande iostat peut fournir des statistiques sur le processeur et le périphérique de stockage. Les commandes nice et renice peuvent être utilisées pour redéfinir les priorités des processus. Les commandes kill et killall peuvent être utilisées pour arrêter les processus en cours d'exécution et même les démons avec une variété de signaux. Les archives peuvent être créées, extraites et compressées avec gzip, bzip2,
commandes tar et star. La commande chkconfig peut aider à contrôler les services au niveau du démon.
Machine Translated by Google
42 Chapitre 9 : Tâches d'administration système au niveau RHCSA
Administration système automatisée : cron et at Le système cron permet aux utilisateurs de planifier des travaux afin qu'ils s'exécutent à des intervalles donnés. Le système at permet aux utilisateurs de configurer les travaux pour qu'ils s'exécutent une fois à une heure planifiée. La commande crontab est utilisée pour travailler avec les fichiers cron. Utilisez crontab e pour modifier, crontab l pour répertorier ou crontab r pour supprimer les fichiers cron. Les fichiers /etc/cron.allow et /etc/cron.deny sont utilisés pour contrôler l'accès au planificateur de tâches cron ; les fichiers /etc/at.allow et /etc/at.deny sont utilisés pour contrôler l'accès au planificateur de travaux at de la même manière.
Analyse du fichier journal local Red Hat Enterprise Linux inclut le démon rsyslog, qui surveille un
système pour les messages du noyau ainsi que d'autres activités de processus, comme configuré dans / etc/rsyslog.conf. Vous pouvez utiliser les fichiers journaux générés dans le répertoire /var/log pour suivre les activités sur un système. D'autres fichiers journaux peuvent être créés et configurés via la configuration du service des dossiers.
Les fichiers journaux peuvent faire l'objet d'une rotation régulière, comme configuré dans le
/etc/logrotate.conf.
Machine Translated by Google
Autotest 43
AUTOTEST Les questions suivantes vous aideront à mesurer votre compréhension du matériel présenté dans ce chapitre. Comme aucune question à choix multiples n'apparaît dans les examens Red Hat, aucune question à choix multiples n'apparaît dans ce livre. Ces questions testent exclusivement votre compréhension du chapitre. Ce n'est pas grave si vous avez une autre façon d'effectuer une tâche. Obtenir des résultats, et non mémoriser des anecdotes, est ce qui compte pour les examens Red Hat.
Configurer l'accès avec VNC 1. Quels sont les deux numéros de port associés à la première connexion à un serveur VNC ? ___________________________________________________________ ___________________________________________________________ 2. Quelle commande utiliseriezvous pour vous connecter à la troisième fenêtre du serveur VNC, où le serveur VNC est sur l'adresse IP 192.168.200.1 ? ___________________________________________________________ 3. Nommez un progiciel associé au serveur VNC. Les numéros de version ne sont pas requis, juste le nom du package qui peut être utilisé avec la commande yum pour l'installation. ___________________________________________________________
Commandes d'administration système élémentaires 4. Quelle commande identifie tous les processus en cours d'exécution dans la console de terminal actuelle ? ___________________________________________________________ 5. Quel est le numéro de priorité le plus élevé que vous pouvez définir pour un processus avec la commande nice ? ___________________________________________________________ 6. Quelle commande permet d'archiver les fichiers d'un répertoire existant tout en sauvegardant ses contextes SELinux ? ___________________________________________________________
Administration système automatisée : cron et at 7. Vous souhaitez planifier une tâche de maintenance, maintenance.pl, à exécuter à partir de votre répertoire personnel le premier de chaque mois à 4h00. Vous avez exécuté la commande crontab e pour ouvrir votre répertoire personnel.
Machine Translated by Google
44 Chapitre 9 : Tâches d'administration système au niveau RHCSA
dossier de travail. Supposons que vous avez ajouté les directives PATH et SHELL appropriées. Quelle directive ajouteriezvous pour exécuter le travail spécifié à l'heure spécifiée ? ______________________________________________________________ 8. Si vous voyez l'entrée suivante dans la sortie de la commande crontab l,
42 4 1 * * root runparts /etc/cron.monthly Quelle est la prochaine fois que Linux exécutera les travaux dans le répertoire /etc/cron.monthly ? ______________________________________________________________ 9. Si les utilisateurs tim et stephanie sont répertoriés à la fois dans les fichiers /etc/cron.allow et /etc/cron.deny, et que les utilisateurs donna et elizabeth ne sont répertoriés que dans le fichier /etc/cron.allow, lesquels les utilisateurs sont autorisés à exécuter la commande crontab e ? ___________________________________________________________ 10. Quel fichier documente la manière dont les fichiers journaux sont gérés au fil du temps ?
___________________________________________________________
Analyse du fichier journal local 11. Quelle entrée du fichier /etc/rsyslog.conf avertirait les utilisateurs connectés en cas de problème sérieux avec le noyau ?
___________________________________________________________ 12. Il y a plusieurs fichiers dans le répertoire /var/log liés à ce qui s'est passé pendant l'installation processus. Quel est le premier mot partagé par le nom de ces fichiers journaux ? ___________________________________________________________
QUESTIONS DE LABORATOIRE Plusieurs de ces laboratoires impliquent des exercices qui peuvent sérieusement affecter un système. Vous ne devez faire ces exercices que sur des machines de test. Le deuxième laboratoire du chapitre 1 configure KVM à cette fin. Cependant, certains lecteurs peuvent ne pas avoir de matériel prenant en charge KVM. Les alternatives à KVM incluent des solutions de machines virtuelles telles que VMware, disponible sur www.vmware.com, ou Virtualbox, édition open source, disponible sur www.virtualbox.org. Red Hat présente ses examens par voie électronique. Pour cette raison, les travaux pratiques de ce chapitre sont disponibles sur le CD qui accompagne le livre, dans le sousrépertoire Chapter9/. Il est disponible aux formats .doc, .html et .txt, dans le nom de fichier commençant par 56509labs. Si vous n'avez pas encore configuré RHEL 6 sur un système, reportezvous au premier laboratoire du chapitre 2 pour obtenir des instructions d'installation. Cependant, les réponses pour chaque laboratoire suivent les réponses de l'autotest pour les questions à compléter.
Machine Translated by Google
Réponses à l'autotest 45
RÉPONSES À L'AUTOTEST Configurer l'accès avec VNC 1. Les deux numéros de port associés à la première connexion à un serveur VNC sont 5900 et 5901. 2. La commande appropriée pour se connecter à la troisième fenêtre du serveur VNC sur l'adresse IP donnée est vncserver 192.168.200.1:3 3. Tigervnc et vino sont deux packages logiciels qui installent les serveurs VNC.
Commandes d'administration système élémentaires 4. C'est un peu une question piège, car la commande ps par ellemême identifie tout en cours d'exécution processus dans la console actuelle. 5. Le numéro de priorité le plus élevé pouvant être utilisé avec la commande nice est 20. Se souvenir, les numéros de priorité des processus sont contreintuitifs. 6. La commande qui préserve les contextes SELinux dans une archive est star.
Automatisation de l'administration système : cron et at 7. La directive qui exécute le script maintenance.pl à partir d'un répertoire personnel à l'heure indiquée est
00 4 1 * * ~/maintenance.pl 8. Sur la base de l'entrée notée dans /etc/crontab, la prochaine fois que Linux exécutera les tâches dans /etc/cron. l'annuaire mensuel est le premier du mois à venir, à 4h42 9. Lorsque des noms d'utilisateur existent à la fois dans les fichiers /etc/cron.allow et /etc/cron.deny, les utilisateurs répertoriés dans
/etc/cron.deny sont ignorés. Ainsi, les quatre utilisateurs répertoriés sont autorisés à exécuter diverses commandes crontab. 10. Le fichier associé à la gestion des fichiers journaux dans le temps est /etc/logrotate.conf.
Analyse du fichier journal local 11. Il y a une entrée commentée dans le fichier /etc/rsyslog.conf qui répond aux exigences de la question. Activezle simplement pour vous avertir (ainsi que tout le monde) chaque fois qu'un problème sérieux avec le noyau survient :
kern.*
/dev/console
Machine Translated by Google
46 Chapitre 9 : Tâches d'administration système au niveau RHCSA
Bien sûr, cela signifie qu'il existe d'autres moyens acceptables de répondre aux exigences de la question. 12. Les fichiers journaux dans /var/log les plus pertinents pour le processus d'installation commencent par anaconda.
RÉPONSES DE LABORATOIRE
Laboratoire 1
Une façon de modifier les messages de connexion comme indiqué consiste à suivre les étapes suivantes (je peux penser à au moins une autre méthode, liée au répertoire /etc/cron.d) : 1. Connectezvous en tant qu'utilisateur racine.
2. Exécutez la commande crontab e. 3. Ajoutez les variables d'environnement appropriées, au moins les suivantes :
COQUE=/bin/bash 4. Ajoutez les commandes suivantes au fichier pour remplacer /etc/motd aux moments appropriés :
0 7 * * * /bin/echo 'L'heure du café !' > /etc/motd 0 13 * * * /bin/ echo 'Tu veux une glace ?' > /etc/motd 0 18 * * * /bin/echo 'Ne devriezvous pas faire autre chose ?' > /etc/mot 5. Enregistrez le fichier. Tant que le démon cron est actif (ce qui est le cas par défaut), le prochain utilisateur qui se connecte à la console après l'une des heures spécifiées devrait voir le message lors d'une connexion réussie. Si vous souhaitez tester le résultat immédiatement, la commande date peut vous aider. Par exemple, la commande suivante
# date 06120659 fixe la date du 12 juin à 6h59 , juste avant que le démon cron n'exécute la première commande de la liste. (Bien sûr, vous voudrez remplacer la date d'aujourd'hui et attendre une minute avant de vous connecter à ce système à partir d'une autre console.)
Laboratoire 2
Pour configurer une tâche at afin qu'elle démarre dans 24 heures, commencez par la commande at. Cela vous mènera à un >
rapide. Les RPM actuellement installés sont affichés dans la sortie de la commande rpm qa. Puisqu'il n'y a pas de PATH donné à l'invite at>, vous devez inclure le chemin complet. Donc, une façon de créer une liste de cur
Machine Translated by Google
Autotest 47
RPM actuellement installés dans le fichier /root/rpms.txt, dans une tâche unique commençant dans cinq minutes, est avec les commandes suivantes :
# à maintenant + 5 min à> /bin/rpm qa > /root/rpms.txt à> Ctrl+d # Dans les cinq minutes, vous devriez voir un fichier rpms.txt dans le répertoire personnel de l'utilisateur root, /root. Si cinq minutes sont trop longues à attendre (comme cela pourrait être le cas lors de l'examen RHCSA), passez à l'atelier 3 et revenez sur ce problème par la suite. N'oubliez pas de configurer l'autre au travail pour qu'il soit exécuté dans les 24 heures.
Laboratoire 3
Compte tenu du matériel décrit jusqu'à présent dans ce livre, la configuration réussie d'un serveur VNC distant ne peut être confirmée qu'indirectement. Cependant, si vous avez un deuxième système physique avec RHEL installé, il n'est pas difficile de confirmer la disponibilité d'un serveur VNC à distance. Par exemple, si le serveur VNC se trouve sur le système 192.168.122.200, sur le deuxième terminal, vous pouvez vous connecter à ce serveur VNC avec la commande vncviewer 192.168.122.200:2.
Laboratoire 4
Il n'y a pas de solutions secrètes dans ce laboratoire ; l'intention est de vous amener à examiner le contenu des fichiers journaux clés pour voir ce qui devrait s'y trouver. Lorsque vous examinez les fichiers anaconda.* dans /var/log et que vous les comparez à d'autres fichiers, vous pouvez avoir une idée de la façon de diagnostiquer les problèmes d'installation. Dans les prochains chapitres, vous examinerez certains des fichiers journaux associés à des services spécifiques ; beaucoup sont situés dans des sousrépertoires tels que /var/log/samba/ et / var/log/httpd/. L'échec de la connexion doit être facilement visible dans le fichier /var/log/secure. Vous pourrez peutêtre obtenir des indices dans la sortie de la commande utmpdump btmp. Lorsque vous examinez le fichier /var/log/cron, vous verrez quand les tâches cron standard ont été exécutées. La plupart doit être rempli (par défaut) par le travail horaire standard, runparts /etc/cron.hourly, à partir du fichier de configuration /etc/ crontab. Si vous avez redémarré, vous pouvez voir le service anacron et vous devriez pouvoir rechercher le travail du même nom. Alors que /var/log/dmesg inclut le noyau actuellement démarré, il peut s'agir du même noyau que celui associé à /var/log/ anaconda.syslog, si vous n'avez pas mis à niveau les noyaux. À la fin de /var/log/dmesg, vous pouvez trouver les systèmes de fichiers montés au format EXT4, ainsi que les partitions d'échange actuellement montées. Par exemple, la liste suivante répertorie les partitions d'un lecteur virtuel basé sur KVM :
EXT4FS (vda1) : système de fichiers monté avec mode de données ordonnées. SELinux : initialisé (dev vda1, type ext4), utilise xattr
Machine Translated by Google
48 Chapitre 9 : Tâches d'administration système de niveau RHCSA
EXT4FS (vda5) : système de fichiers monté avec mode de données ordonnées. SELinux : initialisé (dev vda5, type ext4), utilise xattr Ajout de 1023992k swap sur / dev/vda3. Priorité : 1 étendues : 1 sur : 979 956 k Comme vous l'avez découvert, je l'espère, le fichier /var/log/maillog n'inclut aucune information sur le courrier clients, mais uniquement des serveurs.
Red Hat a inclus un outil de configuration GUI dans RHEL 5. La configuration automatique pour le matériel les graphismes sont maintenant suffisamment fiables ; il n'y a même plus de fichier de configuration xorg.conf standard.
Machine Translated by Google
dix Une introduction à la sécurité
OBJECTIFS DE LA CERTIFICATION 10.01 10.02
Les couches de sécurité Linux
10.05
Modules d'authentification enfichables
Parefeu et adresse réseau
10.06
Sécurisez vos fichiers et bien plus encore avec GPG
Traduction 10.03
Le superserveur Internet étendu
10.04 Emballages TCP
Exercice de deux minutes Autotest Q&R
Machine Translated by Google
2 Chapitre 10 : Introduction à la sécurité
Dès que vous commencez le premier chapitre de la section RHCE de ce livre, vous commencerez par la sécurité. De nombreux administrateurs et entreprises se tournent vers Linux parce qu'ils pensent que c'est plus sûr. Étant
donné que la plupart des logiciels Linux sont publiés sous des licences open source, la source le code est accessible à tous. Certains pensent que cela offre des avantages aux crackers qui veulent s'introduire dans un système.
Cependant, les développeurs Linux croient en la collaboration. « Loi de Linus », selon au sommité opensource Eric Raymond est que "avec suffisamment de globes oculaires, tous les bogues sont superficiels". Certains de ces yeux viennent de la National Security Agency (NSA) des ÉtatsUnis, qui a fourni beaucoup de code à Linux, y compris les fondations de SELinux. La NSA a également contribué à un certain nombre d'autres concepts adaptés par Red Hat, qui ont été intégrés dans une stratégie de sécurité en couches. Il comprend des parefeux système, des wrappers sur les paquets et la sécurité par service. Il inclut à la fois la sécurité basée sur l'utilisateur et sur l'hôte. Il inclut des contrôles d'accès tels que la propriété, les autorisations et SELinux. (Un certain nombre de ces couches ont été abordées dans les chapitres précédents.) Les principes fondamentaux de ces couches de sécurité, tels qu'ils s'appliquent aux objectifs RHCE, sont également abordés ici. RHEL est livré avec un assortiment large et varié d'outils pour gérer la sécurité. Ceuxci incluent des outils de gestion de la sécurité sur des ordinateurs Linux individuels et des outils de gestion de la sécurité pour l'ensemble d'un réseau de systèmes, à la fois Linux et autres. Dans ce chapitre, vous examinerez certains des outils fournis par RHEL pour gérer la sécurité. Vous commencerez par quelques notions de base et poursuivrez avec une analyse détaillée des parefeu, des modules d'authentification enfichables (PAM), des wrappers TCP, etc. Ce n'est pas le seul chapitre à se concentrer sur la sécurité. Au sens strict, il ne couvre que deux des objectifs RHCE. Cependant, ce chapitre couvre les thèmes associés à la sécurité sur les systèmes Linux. Et ces thèmes peuvent vous aider à comprendre les options de sécurité associées à chaque service de ce livre.
OBJECTIF DE CERTIFICATION 10.01
Les couches de sécurité Linux La meilleure sécurité vient en couches. S'il y a une brèche dans une couche, telle qu'une pénétration à travers un parefeu, un compte d'utilisateur compromis ou un débordement de mémoire tampon qui perturbe un service, il existe presque toujours une autre mesure de sécurité qui empêche ou au moins minimise d'autres dommages.
Machine Translated by Google
Les couches de sécurité Linux 3
À L'INTÉRIEUR DE L'EXAMEN À L'INTÉRIEUR DE L'EXAMEN
Ce chapitre est le premier de ce manuel consacré
les objectifs RHCE. Ce chapitre fournit une base pour une
aux exigences RHCE. Comme décrit dans les objectifs
discussion sur la sécurité, y compris plusieurs méthodes
RHCE, la sécurité commence par des parefeux développés pour ■ Configurer la sécurité basée sur l'hôte et sur avec la commande iptables. L'objectif connexe est ■ Utiliser
l'utilisateur pour le service Alors que la sécurité basée
iptables pour implémenter le fichier de paquets
sur l'hôte peut commencer avec des parefeux basés sur iptables, les mesures de sécurité basées sur
ter et configurer l'adresse réseau
l'hôte et l'utilisateur peuvent impliquent le superserveur
Traduction (NAT)
Internet étendu, les wrappers TCP et les modules
Mais comme suggéré dans l'introduction, la
d'authentification enfichables.
sécurité est un problème pour tous les services couverts par
Ces options commencent par les hôtes bastion, ce qui minimise les fonctionnalités associées à un système Linux individuel. Les meilleures défenses viennent de concert avec d'autres développeurs Linux, lorsque vous vous tenez au courant des dernières mises à jour de sécurité. Audelà du parefeu et de SELinux viennent des options de sécurité associées à des services individuels. Les options d'isolement telles que les prisons chroot sont généralement configurées dans le cadre d'un service. Un certain nombre de ces options sont basées sur les recommandations de la NSA. Alors que les sections sur les systèmes bastion sont destinées à être une introduction aux mesures de sécurité utilisées pour les services de niveau RHCE, elles intègrent également les options de sécurité souvent associées à l'examen RHCSA, qui sont décrites dans les chapitres précédents.
Systèmes de bastions Correctement configuré, un système bastion minimise le risque d'atteinte à la sécurité. Il est basé sur une installation minimale, avec moins de logiciels que ce qui était installé sur les systèmes configurés aux chapitres 1 et 2. Un système bastion est configuré avec deux services. Un service définit la fonctionnalité du système. Il peut s'agir d'un serveur Web, d'un serveur de fichiers, d'un serveur d'authentification ou de quelque chose de similaire. L'autre service prend en charge l'accès à distance, tel que SSH, ou peutêtre VNC sur SSH.
Machine Translated by Google
4 Chapitre 10 : Introduction à la sécurité
Avant la virtualisation, l'utilisation du système bastion était souvent limitée. Seulement le les entreprises les plus riches pouvaient se permettre de dédier différents systèmes physiques à chaque service. Si une redondance était nécessaire, les coûts n'auraient fait qu'augmenter davantage. Avec la virtualisation, les systèmes bastion sont à la portée des entreprises encore plus petites. Tout ce qui est nécessaire est une installation minimale standard. Avec quelques fichiers Kickstart, vous, en tant qu'administrateur d'un tel réseau, pourriez facilement créer tout un groupe de systèmes bastion. Chaque système pourrait alors être personnalisé avec et dédié à un seul serveur. Les systèmes de bastion bien construits suivent deux principes :
■ Si vous n'avez pas besoin du logiciel, désinstallezle. ■ Si vous avez besoin du logiciel mais que vous ne l'utilisez pas, assurezvous qu'il n'est pas actif. En général, les pirates ne peuvent pas profiter d'une faille de sécurité si le service associé n'est pas installé. Si vous devez installer le service à des fins de test, laissez ce service inactif. Cela peut aider à réduire les risques au minimum. Bien entendu, les parefeux configurés pour chaque système bastion ne doivent autoriser le trafic que pour le service dédié et la méthode d'accès à distance.
Meilleures défenses avec les mises à jour de sécurité Les meilleures défenses proviennent des mises à jour de sécurité. Vous pouvez consulter les mises à jour disponibles avec l'outil de mise à jour logicielle. Vous pouvez démarrer cet outil dans une interface graphique avec la commande gpkupdateviewer. Comme indiqué au chapitre 7, vous pouvez configurer des mises à jour de sécurité automatiques avec l'outil Préférences des mises à jour logicielles que vous pouvez démarrer dans une interface graphique avec la commande gpkprefs. En pratique, la sécurité est souvent une course. Lorsqu'une vulnérabilité est découverte, les développeurs responsables de la communauté open source publient un avis public du problème. Ils se mettent au travail sur les mises à jour. Tant que cette mise à jour n'est pas disponible et installée, tous les services concernés peuvent être vulnérables. En tant que professionnel Linux, il est de votre devoir de connaître ces vulnérabilités. Si vous maintenez des serveurs comme Apache, vsFTP et Samba, surveillent les flux d'informations de ces développeurs. Les informations sur la sécurité peuvent se présenter sous diverses formes, des mises à jour des babillards électroniques aux flux RSS. Normalement, Red Hat se tient également au courant de ces problèmes. Cependant, si vous êtes abonné aux forums gérés par les développeurs d'un service, il est préférable d'être informé des problèmes et des solutions prévues directement à partir de la source. Dans une certaine mesure, c'est une province de sécurité spécifique à un service.
Machine Translated by Google
Les couches de sécurité Linux 5
Sécurité spécifique au service La plupart des principaux services ont un certain niveau de sécurité qui peut être configuré à l'intérieur. Dans de nombreux cas, vous pouvez configurer un service pour limiter l'accès par hôte, par réseau, par utilisateur et par groupe. Comme indiqué dans les objectifs RHCE, vous devez savoir comment configurer la sécurité basée sur l'hôte et l'utilisateur pour chaque service répertorié, répertorié par protocole. Des options SELinux sont également disponibles pour aider à sécuriser chacun de ces services. Bien que les détails soient abordés dans les prochains chapitres appropriés, ce qui suit est un bref aperçu des options de sécurité spécifiques au service.
Sécurité spécifique au service HTTP/HTTPS Bien qu'il existe des alternatives, le service principal pour le protocole HTTP et HTTPS sous Linux est le serveur Web Apache. En fait, Apache est le serveur Web dominant sur Internet. Pas de doute, les fichiers de configuration d'Apache sont complexes. Mais ils doivent l'être, car les défis de sécurité sur Internet sont considérables. Certaines options pour répondre à ces défis sont abordées au chapitre 14. Apache comprend un bon nombre de composants logiciels optionnels. N'installez pas plus que ce qui est absolument nécessaire. S'il existe une faille de sécurité dans un script CGI (Common Gateway Interface) et que vous n'avez pas installé le support Apache pour les scripts CGI, ce problème de sécurité ne vous concerne pas. Mais comme le RHCE spécifie un objectif de déploiement d'une « application CGI de base », vous n'avez pas ce luxe. Heureusement, avec Apache, vous pouvez limiter l'accès de plusieurs façons. Les limites peuvent être créé sur le serveur ou sur des hôtes virtuels individuels. Différentes limites peuvent être créées sur des sites Web réguliers et sécurisés. De plus, Apache prend en charge l'utilisation de certificats sécurisés.
Les serveurs DNS (Domain Name Service) de sécurité spécifiques au service DNS sont une cible importante pour les pirates. Dans cet esprit, RHEL 6 inclut le package bindchroot, qui configure les fichiers, périphériques et bibliothèques nécessaires dans un sousrépertoire isolé. Ce sousrépertoire fournit une limite pour tout utilisateur qui franchit la sécurité DNS connue sous le nom de prison chroot. Il est conçu pour limiter les répertoires dans lesquels un cracker peut naviguer s'il s'introduit dans le service. En d'autres termes, les pirates qui s'introduisent dans un serveur DNS RHEL 6 ne devraient pas pouvoir "échapper" au sousrépertoire configuré comme une prison chroot. Étant donné que les candidats à l'examen RHCE ne sont pas censés créer un serveur DNS maître ou esclave, les défis et les risques sont quelque peu limités. Néanmoins, au chapitre 17, vous verrez comment limiter l'accès au serveur DNS configuré par hôte.
Machine Translated by Google
6 Chapitre 10 : Introduction à la sécurité
Sécurité spécifique au service FTP Bien qu'il existe des alternatives, le serveur FTP principal pour RHEL 6 est vsFTP. Lorsque vous avez créé un serveur FTP de base au chapitre 1 avec ce service, aucune configuration supplémentaire n'a été requise. Au chapitre 16, vous configurerez les principaux fichiers de configuration vsFTP pour limiter l'accès par utilisateur et par chroot jail. Bien que vous puissiez utiliser des options telles que TCP Wrappers et iptables pour limiter l'accès par adresse IP, ces limites ne sont pas directement disponibles dans les fichiers de configuration vsFTP.
Sécurité spécifique au service NFS Avec le passage au système de fichiers réseau, version 4, il est désormais possible de configurer l'authentification Kerberos pour prendre en charge la sécurité basée sur l'utilisateur. Cependant, la configuration des serveurs pour Kerberos et LDAP dépasse le cadre des objectifs RHCE. Ainsi, la discussion du chapitre 16 se concentre sur les options de sécurité basées sur l'hôte.
Sécurité spécifique au service SMB Le SMB répertorié dans les objectifs RHCE correspond au protocole Server Message Block. C'est le protocole réseau développé à l'origine par IBM, modifié plus tard par Microsoft en tant que protocole réseau pour ses systèmes d'exploitation. Alors que Microsoft l'appelle désormais le Common Internet File System (CIFS), l'implémentation Linux de ce protocole réseau est toujours connue sous le nom de Samba.
Comme implémenté pour RHEL 6, vous pouvez profiter de l'authentification Microsoft bases de données. Samba prend en charge le mappage de ces utilisateurs et groupes dans une base de données d'authentification Linux. Samba prend également en charge la sécurité basée sur l'utilisateur et sur l'hôte au niveau du répertoire global et partagé, comme indiqué au chapitre 15. La norme Samba pour RHEL 6 est la version 3.5.4. Tant qu'il y a une version 4 de Samba package disponible dans les référentiels RHEL 6, il n'est pas encore prêt pour une utilisation en production. Lorsqu'il sera prêt, vous pourrez configurer RHEL 6 en tant que contrôleur de domaine Active Directory.
Sécurité spécifique au service SMTP RHEL prend en charge deux services différents pour la communication par email via le protocole SMTP (Simple Mail Transport Protocol) : Postfix et sendmail. Les deux sont publiés sous des licences opensource. Le service sendmail est répertorié en minuscules, pour le distinguer de la version commerciale de Sendmail. Le service de messagerie SMTP par défaut pour RHEL 6 est Postfix, ce qui est un changement—le la valeur par défaut pour RHEL 5 est sendmail. Vous pouvez configurer l'un ou l'autre service pour répondre aux
Machine Translated by Google
Les couches de sécurité Linux 7
objectif RHCE associé. Dans les deux cas, le service n'écoute normalement que sur l'adresse localhost, qui est un niveau de sécurité. D'autres niveaux de sécurité sont possibles en fonction des hôtes, des noms d'utilisateur, etc. Pour plus d'informations, reportezvous au chapitre 13.
Sécurité spécifique au service SSH Le service SSH est installé par défaut même dans l'installation minimale de RHEL 6. Cela encourage son utilisation comme outil d'administration à distance. Cependant, il existe des risques associés au serveur SSH qui peuvent être minimisés. Par exemple, il n'est pas nécessaire d'envoyer même des mots de passe cryptés sur un réseau. Les connexions à distance au compte root ne doivent pas être autorisées. La sécurité peut être davantage réglementée par l'utilisateur.
Sécurité basée sur l'hôte La sécurité basée sur l'hôte fait référence aux limites d'accès, non seulement par les noms d'hôte du système, mais également par leurs noms de domaine complets et leurs adresses IP. La syntaxe associée à la sécurité basée sur l'hôte peut varier. Par exemple, alors que chaque système reconnaît une adresse IP spécifique telle que 192.168.122.50, l'utilisation de caractères génériques ou la notation CIDR (Classless Inter Domain Routing) pour une plage d'adresses IP varie selon le service. Selon le service, vous pouvez utiliser une ou plusieurs des options suivantes pour la plage d'adresses réseau indiquée :
192.168.122.0/255.255.255.0 192.168.122.0/24 192.168.122.* 192.168.122. 192.168.122 Attention, certaines de ces options peuvent entraîner des erreurs de syntaxe sur certains services réseau, mais pas sur tous. De la même manière, l'une des options suivantes peut fonctionner ou non pour représenter tous les systèmes sur un réseau example.com :
*.exemple.com .exemple.com exemple.com
Sécurité basée sur l'utilisateur La sécurité basée sur l'utilisateur inclut les utilisateurs et les groupes. Généralement, les utilisateurs et les groupes auxquels l'accès à un service est autorisé ou refusé sont rassemblés dans une liste. Cette liste pourrait inclure un
Machine Translated by Google
8 Chapitre 10 : Introduction à la sécurité
user sur chaque ligne, comme dans des fichiers comme /etc/cron.allow, ou il pourrait être dans une liste qui suit une directive, comme utilisateurs valides = michael donna @book
Parfois, la syntaxe d'une liste d'utilisateurs est impitoyable ; dans certains cas, un espace supplémentaire après une virgule ou à la fin d'une ligne peut entraîner un échec d'authentification. Les groupes sont fréquemment inclus dans une liste d'utilisateurs, avec un symbole spécial devant, comme un @ ou un +. Parfois, les utilisateurs autorisés à accéder à un système sont configurés dans une base de données d'authentification distincte, telle que celle associée au serveur Samba, configurée avec la commande smbpasswd.
Sécurité de la console Comme indiqué au chapitre 8, la sécurité de la console est réglementée dans les fichiers /etc/securetty et /etc/ security/access.conf. Il peut vous aider à réguler l'accès à la console locale pour les utilisateurs root et réguliers.
Mais l'accès à la console n'est pas seulement local. Pour une vue complète de la sécurité de la console, vous devez pouvoir configurer des limites d'accès à la console distante. Deux options principales sont SSH, comme indiqué précédemment, et Telnet. Bien que la commande telnet ait ses utilisations, comme décrit au chapitre 2, les communications avec les serveurs Telnet sont intrinsèquement non sécurisées. Les noms d'utilisateur, mots de passe et autres communications vers et depuis un serveur Telnet sont transmis en texte clair. Cela signifie qu'un analyseur de protocole réseau tel qu'Ethereal pourrait être utilisé pour lire ces noms d'utilisateur, mots de passe et toute autre information critique. Même si des options basées sur Kerberos sont disponibles pour les serveurs Telnet, la plupart des les professionnels évitent à tout prix Telnet pour les consoles distantes. Et cela est conforme aux recommandations de la NSA.
Recommandations de la National Security Agency des ÉtatsUnis La NSA s'est particulièrement intéressée à Linux, et plus particulièrement à Red Hat Enterprise Linux. Non seulement la NSA a pris le temps de développer SELinux, mais elle a également créé des guides pour aider les administrateurs comme vous à créer une configuration RHEL plus sécurisée. (Oui, la NSA "supersecrète" a publié le code SELinux sous des licences opensource pour que tout le monde puisse le voir.) Ils reconnaissent l'importance de Linux dans l'infrastructure des réseaux informatiques. Les observateurs de RHEL peuvent remarquer que les changements entre RHEL 5 et RHEL 6 suivent les recommandations de la NSA.
Machine Translated by Google
Les couches de sécurité Linux 9
La NSA comprend cinq principes généraux pour la sécurisation des systèmes d'exploitation dans général et RHEL en particulier.
■ Crypter les données transmises chaque fois que possible Les recommandations de la NSA pour le cryptage incluent les communications sur ce qui devrait être des réseaux privés et sécurisés. SSH, avec les options de sécurité décrites au chapitre 11, est une excellente étape dans ce processus. ■ Minimiser les logiciels pour minimiser les vulnérabilités Comme le suggère la NSA, « le moyen le plus simple d'éviter les vulnérabilités des logiciels est d'éviter d'installer ces logiciels. La NSA accorde une attention particulière à tout logiciel capable de communiquer sur un réseau, y compris l'interface graphique Linux. L'installation minimale de RHEL 6 comprend beaucoup moins de packages que l'installation comparable de RHEL 5. ■ Exécuter différents services réseau sur des systèmes distincts Ceci est cohérent avec le concept de serveurs bastion décrit précédemment dans ce chapitre. La mise en œuvre est facilitée par la flexibilité offerte par les technologies de machines virtuelles telles que KVM.
■ Configurer les outils de sécurité pour améliorer la robustesse du système Les objectifs RHCSA et RHCE couvrent ce point, avec l'utilisation de parefeux basés sur iptables, SELinux et des services de collecte de journaux appropriés. ■ Moindre privilège En principe, vous devez accorder aux utilisateurs les privilèges minimum requis pour accomplir leurs tâches. Cela signifie non seulement minimiser l'accès au compte administratif root, mais également utiliser avec prudence les privilèges de la commande sudo. Les options SELinux telles que le rôle user_u pour le confinement décrit au chapitre 4 peuvent également être utiles à cette fin.
Le PolicyKit Le PolicyKit est un autre mécanisme de sécurité conçu pour aider à protéger différents outils d'administration. Lors du démarrage d'un outil d'administration dans l'interface graphique à partir d'un compte standard, la plupart des outils demandent le mot de passe d'administration racine avec une fenêtre similaire à la Figure 101. Alternativement, vous pouvez voir une fenêtre légèrement différente similaire à celle montrée dans Illustration 102. Fonctionnalité, l'effet est le même. Comme décrit dans la fenêtre, l'authentification par le superutilisateur est requise. Dans ce cas, vous devrez toujours entrer le mot de passe administrateur root. Cependant, il y a une différence, comme indiqué dans les détails.
Machine Translated by Google
10 Chapitre 10 : Introduction à la sécurité
FIGURE 101 Accès à Administratif Outils dans l'interface graphique
nécessite le mot de passe root.
L'action spécifie la stratégie requise par le "fournisseur", dans ce cas, la commande system configfirewall. L'action notée est « org.fedoraproject.config.firewall.auth », qui est associée à un fichier de stratégie dans le répertoire /usr/share/polkit1/actions. Les fichiers de configuration de stratégie sont stockés dans ce répertoire ; le fichier correspondant pour l'outil systemconfigfirewall est org.fedoraproject.config.firewall.policy. Ces fichiers de stratégie sont configurés au format XML et peuvent être modifiés davantage pour prendre en charge un contrôle précis par les utilisateurs individuels. Cependant, étant donné que PolicyKit ne fonctionne que dans l'interface graphique, ses contrôles précis n'affectent pas l'utilisation des outils d'administration à partir de la console. Cela n'empêche certainement pas les administrateurs de configurer ou de contrôler des services importants. Si un contrôle précis est requis, le meilleur outil est le fichier /etc/sudoers décrit au chapitre 8.
FIGURE 102 Accès à Administratif Les outils peuvent être limités par le PolicyKit.
Machine Translated by Google
Parefeu et traduction d'adresses réseau 11
OBJECTIF DE CERTIFICATION 10.02
Parefeu et traduction d'adresses réseau En règle générale, les parefeu résident entre les réseaux locaux internes et les réseaux extérieurs non sécurisés tels qu'Internet. Un parefeu peut être configuré pour examiner chaque paquet réseau entrant ou sortant de votre réseau local. Lorsqu'il est configuré avec les règles appropriées, il peut filtrer les paquets susceptibles de présenter un risque de sécurité pour les systèmes du réseau local. Cependant, pour suivre l'esprit des recommandations de la NSA, vous configurerez un parefeu sur chaque système. Bien que la traduction d'adresses réseau utilise la même commande iptables, son utilisation reste généralement la plus appropriée pour les systèmes sur la passerelle ou le routeur entre un LAN et un réseau extérieur.
Définitions Les parefeu basés sur la commande iptables fonctionnent en lisant les entêtes de chaque paquet de données réseau. Sur la base des informations contenues dans les entêtes, des règles basées sur iptables peuvent être utilisées pour filtrer chaque paquet. Pour comprendre comment fonctionne le filtrage de paquets , vous devez comprendre un peu comment les informations sont envoyées sur les réseaux. Avant qu'un message ne soit envoyé sur un réseau, ce message est décomposé en plus petits unités appelées paquets. Les informations administratives, y compris le type de données, l'adresse source et l'adresse de destination, sont ajoutées à l'entête de chaque paquet. Les paquets sont réassemblés lorsqu'ils atteignent l'ordinateur de destination. Un parefeu examine les champs de chaque entête. Selon les règles existantes, le parefeu peut alors effectuer l'une des quatre actions suivantes avec ce paquet :
■ Autoriser le paquet dans le système. ■ Transférer le paquet vers d'autres systèmes si le système actuel est une passerelle ou routeur entre les réseaux.
■ Rejeter le paquet avec un message envoyé à l'adresse IP d'origine. ■ Déposez le paquet sans envoyer aucune sorte de message. Quel que soit le résultat, la décision peut être consignée. Si un nombre important de paquets sont rejetés ou abandonnés, un fichier journal peut être utile. RHEL 6 est livré avec tout ce dont vous avez besoin pour configurer un système en tant que parefeu, y compris les commandes iptables et ip6tables pour les réseaux IPv4 et IPv6.
Machine Translated by Google
12 Chapitre 10 : Introduction à la sécurité
En revanche, NAT masque l'adresse IP des ordinateurs d'un réseau local qui se connectent à hors réseaux. NAT remplace l'adresse source interne par l'adresse IP de la passerelle ou du système de routeur avec le parefeu. Cette adresse source interne est mise en cache sur la passerelle, elle sait donc quel ordinateur a fait la demande. Lorsque le parefeu reçoit des données telles qu'une page Web, le processus est inversé. Lorsque les paquets traversent le parefeu, l'ordinateur d'origine est identifié dans le cache. L'entête de chaque paquet est modifié en conséquence avant que les paquets ne soient envoyés.
Cette approche est utile pour plusieurs raisons. Cacher ces adresses IP internes rend il est plus difficile pour un pirate de savoir quelle adresse IP utiliser pour pénétrer dans un réseau interne. NAT prend en charge les connexions entre les systèmes avec des adresses IP privées et des réseaux externes tels qu'Internet. C'est la raison pour laquelle l'adressage IPv4 a survécu si longtemps. Dans le monde Linux, ce processus est connu sous le nom de masquage IP.
La structure de la commande iptables La façon dont les commandes iptables sont assemblées dans un parefeu est basée sur des « chaînes ». Une chaîne de règles de parefeu peut être appliquée à chaque paquet réseau, dans l'ordre. Chaque règle d'une chaîne fait deux choses : elle spécifie les conditions qu'un paquet doit remplir pour correspondre à la règle, et elle spécifie l'action si le paquet correspond. La commande iptables utilise le format de base suivant :
iptables t type de table . Quatre actions de base sont associées avec les règles iptables :
■ A (append) Ajoute une règle à la fin d'une chaîne.
Machine Translated by Google
Parefeu et traduction d'adresses réseau 13
■ D (delete) Supprime une règle d'une chaîne. Spécifiez la règle par le numéro ou le modèle de paquet.
■ L (list) Répertorie les règles actuellement configurées dans la chaîne. ■ F (flush) Vide toutes les règles de la chaîne iptables actuelle. Si vous ajoutez à (A) ou supprimez de (D) une chaîne, vous voudrez l'appliquer aux données réseau circulant dans l'une des trois directions. Dans la plupart des cas, pour un parefeu standard qui protège un système des données externes, la direction appropriée à appliquer est INPUT :
■ INPUT Tous les paquets entrants sont vérifiés par rapport aux règles de cette chaîne. ■ SORTIE Tous les paquets sortants sont vérifiés par rapport aux règles de cette chaîne. ■ FORWARD Tous les paquets envoyés à un autre ordinateur sont vérifiés par rapport aux règles de cette chaîne. Ensuite, vous devez configurer un . Vérification de tous les parefeu iptables chaque paquet contre ce modèle. Le modèle le plus simple est par adresse IP : ■ s adresse_ip Tous les paquets sont vérifiés pour une adresse IP source spécifique. ■ d adresse_ip Tous les paquets sont vérifiés pour une adresse IP de destination spécifique. Les modèles de paquets peuvent être plus complexes. Dans TCP/IP, la plupart des paquets sont transportés à l'aide des protocoles TCP (Transport Control Protocol), UDP (User Datagram Protocol) ou ICMP (Internet Control Message Protocol). Vous pouvez spécifier le protocole avec le commutateur p, suivi du port de destination (dport). Par exemple, l'extension p tcp dport 80 affecte les utilisateurs extérieurs à votre réseau qui tentent d'utiliser une connexion HTTP. Une fois que la commande iptables trouve une correspondance de modèle de paquet, elle doit savoir quoi faire avec ce paquet, ce qui conduit à la dernière partie de la commande, j . Il existe trois options de base :
■ DROP Le paquet est supprimé. Aucun message n'est envoyé à l'ordinateur demandeur. ■ REJETER Le paquet est abandonné. Un message d'erreur est envoyé au demandeur ordinateur.
■ ACCEPTER Le paquet est autorisé à continuer comme spécifié avec l'action A : INPUT, OUTPUT ou FORWARD.
Machine Translated by Google
14 Chapitre 10 : Introduction à la sécurité
Jetez un œil à quelques exemples d'utilisation des commandes iptables pour configurer un parefeu. Une bonne première étape consiste à voir ce qui est actuellement configuré, avec la commande suivante :
#iptables L
Si iptables est correctement configuré, il doit renvoyer des règles de chaîne dans trois catégories différentes : INPUT, FORWARD et OUTPUT. La règle suivante rejette tout le trafic du sousréseau 192.168.75.0 et envoie un message d'erreur "destination inaccessible" à tout client de cette adresse réseau qui a essayé de se connecter : # iptables A ENTRÉE s 192.168.75.0/24 j REJETER
Cette règle arrête les utilisateurs de l'ordinateur avec une adresse IP de 192.168.25.200 de « pinger » votre système, car la commande ping utilise le protocole ICMP : # iptables A INPUT s 192.168.25.200 p icmp j DROP
La commande suivante protège contre les attaques TCP SYN provenant de l'extérieur du système local, associées aux inondations de paquets et aux attaques par déni de service. Supposons que l'adresse IP du LAN à protéger est 192.168.1.0. Le point d'exclamation (!) inverse le sens ; dans ce cas, la commande s'applique à toutes les adresses IP sauf celles avec une adresse réseau 192.168.1.0 (et un masque de sousréseau 255.255.255.0). SYN n'est pas un acronyme, mais un type de paquet envoyé par un client utilisant TCP. La réponse est un paquet SYNACK, qui est un accusé de réception. Le client envoie alors un message ACK au serveur. La règle iptables associée arrête les attaques potentielles au niveau SYN.
# iptables A INPUT s !192.168.1.0/24 p tcp j DROP
Ensuite, si vous souhaitez supprimer la règle liée à la commande ping dans cette liste, utilisez la commande suivante : # iptables D INPUT s 192.168.25.200 p icmp j DROP
La règle par défaut pour INPUT, OUTPUT et FORWARD est d'ACCEPTER paquets. Une façon d'arrêter le transfert de paquets consiste à ajouter la règle suivante : # iptables A AVANT j DROP
Machine Translated by Google
Parefeu et traduction d'adresses réseau 15
Le parefeu par défaut Maintenant que vous avez vu l'effet de diverses règles de parefeu, il est temps d'examiner le pare feu par défaut pour RHEL 6, basé sur les systèmes de VM installés dans les chapitres 1 et 2. Bien que vous puissiez utiliser la commande iptables L pour cela À cet effet, les règles de parefeu mises en œuvre lors du processus de démarrage sont stockées dans le fichier /etc/sysconfig/iptables. (Pour les réseaux IPv6, le fichier de configuration du parefeu correspondant est /etc/sysconfig/ip6tables.) La signification de chacune de ces lignes est décrite au Chapitre 4.
Recommandations de la NSA Les parefeux simples sont souvent les plus sûrs. Lors d'un examen, il est préférable de tout garder, y compris les parefeu, aussi simple que possible. Mais la NSA irait plus loin. Il contient des recommandations concernant les règles par défaut, les limitations de la commande ping et les blocages des groupes d'adresses IP suspects. À ces recommandations, j'en ajoute quelques unes pour réduire les risques pour un système SSH qui peuvent s'appliquer à d'autres services. Bien que ces recommandations vont audelà de ce qui est suggéré par les objectifs RHCE, lisez cette section. Si vous n'êtes pas à l'aise avec la commande iptables, cette section peut vous aider. Pour implémenter ces modifications sur plusieurs systèmes, il peut être plus efficace de modifier directement le fichier /etc/sysconfig/iptables. Bien que vous puissiez implémenter ces modifications avec l'option Règles personnalisées dans l'outil de configuration du parefeu, cela est moins efficace qu'un script qui modifie directement le fichier noté. Malheureusement, l'outil de configuration du pare feu écrase ces modifications. Donc, si vous administrez le parefeu sur plusieurs systèmes avec des scripts, assurezvous de sauvegarder ce fichier /etc/sysconfig/iptables. Néanmoins, l'option Règles personnalisées de l'outil de configuration du parefeu est un excellent choix si vous modifiez simplement le parefeu pour un ou deux systèmes. Ensuite, vous pouvez tester l'une de ces suggestions sur un système tel que la VM server1.example.com créée au chapitre 2. Pour ce faire, modifiez le fichier / Les modifications suggérées aux pare feux basés sur iptables ne sont que
etc/sysconfig/iptables. Et ensuite, pour appliquer ces modifications, exécutez la commande suivante :
des recommandations. Cependant, étant donné que l'exigence de « mettre en œuvre le filtrage de paquets » est générique, il est utile d'examiner une variété d'exemples.
# /etc/init.d/iptables redémarre
Machine Translated by Google
16 Chapitre 10 : Introduction à la sécurité
Modifications recommandées des règles par défaut Il recommande des modifications des règles par défaut qui sont appropriées sur les serveurs bastion tels que les machines virtuelles configurées au début de ce livre. La valeur par défaut est :ENTRÉE ACCEPTÉE [0:0] :AVANCE ACCEPTER [0:0]
La recommandation de la NSA changerait cela en :CHUTE D'ENTREE [0:0] :DÉBUT AVANT [0:0]
Bien que les règles qui autorisent le trafic réseau dans le système s'appliquent toujours, ces modifications fournissent une autre limite au trafic dans un système et au trafic qui peut être transféré vers un autre système.
Fais attention. Lorsque j'ai essayé ces modifications sur un système de passerelle, en particulier le système hôte physique de mes machines virtuelles, la communication a été interrompue en supprimant des paquets entre les machines virtuelles et les réseaux externes. J'aurais dû limiter ces changements aux machines virtuelles. Testez donc toutes les modifications avant de les mettre en œuvre sur les systèmes de production.
Réglementer la commande ping Une attaque antérieure sur divers systèmes Internet impliquait la commande ping. Depuis Linux, il est possible d'inonder un autre système avec le commutateur f. Il peut transmettre des milliers de paquets par seconde. Il est important d'être en mesure de défendre un système contre de telles attaques, car elles peuvent empêcher les autres d'accéder à vos sites Web et plus encore. Le commutateur f de la commande ping a été décrit uniquement pour souligner l'un des risques majeurs sur un réseau. Dans de nombreux cas, il est illégal d'exécuter une telle commande sur ou contre le système de quelqu'un d'autre. Par exemple, un article de Wikipédia suggère qu'une telle attaque pourrait constituer une violation de la loi sur la police et la justice au RoyaumeUni avec une peine pouvant aller jusqu'à dix ans de prison.
Des lois similaires existent dans d'autres pays. Une règle potentiellement gênante dans le parefeu par défaut est A ENTRÉE p icmp j ACCEPTER
Cependant, les messages ICMP vont dans les deux sens. Si vous exécutez la commande ping sur un système distant, le système distant répond par un paquet ICMP. Ainsi, si vous souhaitez limiter les messages ICMP, les règles suivantes autorisent les réponses « acceptables » à un ping :
Machine Translated by Google
Parefeu et traduction d'adresses réseau 17
A INPUT p icmp icmptype echoreply j ACCEPTER A INPUT p icmp icmptype destinationunreachable j ACCEPTER A INPUT p icmp icmptype timeexceeded j ACCEPT La règle suivante limite la vitesse à laquelle une commande ping peut être appliquée à un système:
A INPUT p icmp icmptype echorequest m limit limit 1/s j ACCEPTER Alors que l'outil de configuration du parefeu décrit plus loin dans ce chapitre peut limiter la effet des messages ICMP de la plupart des mêmes manières, il n'a pas la capacité de réguler le taux de paquets réseau ping acceptés sur un système.
Bloquer les adresses IP suspectes Les pirates qui souhaitent s'introduire dans un système peuvent masquer leur adresse IP source. Comme personne n'est censé utiliser une adresse IPv4 privée, multidiffusion ou expérimentale sur l'Internet public, ces adresses sont un moyen de se cacher. Les ajouts suivants au fichier /etc/sysconfig/ iptables supprimeraient les paquets provenant des blocs d'adresses réseau IPv4 spécifiés :
A INPUT i eth0 s 10.0.0.0/8 j DROP A INPUT i eth0 s 172.16.0.0/12 j DROP A INPUT i eth0 s 192.168.0.0/16 j DROP A INPUT i eth0 s 224.0.0.0/4 j DROP A INPUT i eth0 s 240.0.0.0/5 j DROP
Réglementer l'accès à SSH Étant donné que SSH est un moyen si important pour l'administration de systèmes distants, des mesures supplémentaires pour protéger ces services sont importantes. Il est certainement possible de configurer un port non standard pour la communication SSH. Une telle mesure peut faire partie d'une stratégie de sécurité en couches. Cependant, des outils comme nmap peuvent détecter l'utilisation de SSH sur de tels ports non standard. Il est donc généralement préférable de configurer
la configuration du serveur SSH comme indiqué au chapitre 11 avec des règles de parefeu telles que les suivante La première règle affichée ici crée une nouvelle chaîne, SSH_CHAIN, pour tout le trafic TCP vers le port 22 :
A INPUT i eth0 p tcp m tcp dport 22 m state state NEW j SSH_CHAIN La règle suivante démarre la SSH_CHAIN, en limitant les demandes d'accès à trois par minute.
A SSH_CHAIN i eth0 p tcp m tcp dport 22 m state state NEW m recent update seconds 60 hitcount 3 rttl name SSH j DROP
Machine Translated by Google
18 Chapitre 10 : Introduction à la sécurité
Assurezvous que le parefeu fonctionne Une fois les modifications souhaitées enregistrées dans le fichier de configuration /etc/sysconfig/iptables, il est important de s'assurer que le parefeu est opérationnel, avec les nouvelles règles. Étant donné que l'option de rechargement n'est pas disponible dans le script / etc/init.d/iptables, vous devrez le faire avec la commande suivante :
Il est essentiel de comprendre
# redémarrage du service iptables
comment sécuriser un système Red Hat Enterprise Linux Comme discuté au chapitre 11, ceci est fonctionnellement
contre tout accès non autorisé.
équivalent à la commande de redémarrage /etc/init.d/ iptables.
Masquage IP Red Hat Enterprise Linux prend en charge une variante de NAT appelée IP masquerading. Le masquage IP prend en charge l'accès à Internet à partir de plusieurs ordinateurs avec une seule adresse IP publique. Le masquage IP fait correspondre plusieurs adresses IP internes à cette seule adresse IP externe valide. Cela aide car toutes les adresses IPv4 publiques ont maintenant été attribuées. Bien que les adresses IPv4 soient souvent encore disponibles auprès de ces tiers, cela a un prix. Ce coût est une raison de plus pour IP Masquerading. D'un autre côté, les systèmes sur les réseaux IPv6 peuvent ne pas avoir besoin de masquage, car il est relativement facile pour de nombreux utilisateurs demandeurs d'obtenir leur propre sousréseau d'adresses IPv6 publiques. Néanmoins, même sur les réseaux IPv6, le masquage peut aider à assurer la sécurité de ce système. L'IP Masquerading est une méthode assez simple processus. Il est implémenté sur une passerelle ou
Les objectifs RHCE spécifient l'utilisation d' iptables pour configurer la traduction d'adresses réseau.
un routeur, où le système dispose de deux cartes réseau ou plus. Une carte réseau est connectée à un réseau extérieur tel qu'Internet, et la deuxième carte réseau (et supplémentaire) est connectée à un réseau local. La carte connectée au réseau extérieur peut se connecter via un périphérique externe tel qu'un « modem » câblé ou un
adaptateur de ligne d'abonné numérique (DSL). Les hypothèses suivantes sont faites pour la configuration :
■ L'adresse IP publique est attribuée à la carte réseau directement connecté au réseau extérieur.
Machine Translated by Google
Parefeu et traduction d'adresses réseau 19
■ Les cartes réseau sur le réseau local obtiennent des adresses IP associées à un seul réseau. ■ Une carte réseau sur le système de passerelle ou de routeur obtient une adresse IP sur ce même réseau privé. ■ Les mêmes fichiers de commande et de configuration iptables utilisés pour configurer un parefeu sont également utilisés pour configurer le masquage IP.
■ Le transfert IP est activé sur le routeur ou le système de passerelle, comme indiqué plus loin dans
ce chapitre. ■ Chaque système sur le réseau local est configuré avec l'adresse IP privée du routeur ou du système de passerelle comme adresse de passerelle par défaut.
Lorsqu'un ordinateur sur un réseau local veut une page Web sur Internet, il envoie des paquets au parefeu. Le parefeu remplace l'adresse IP source de chaque paquet par l'adresse IP publique du parefeu. Il attribue ensuite un nouveau numéro de port au paquet. Le parefeu met en cache l'adresse IP source et le numéro de port d'origine. Lorsqu'un paquet arrive d'Internet vers le parefeu, il doit inclure un numéro de port. Si le parefeu peut faire correspondre une règle associée avec le numéro de port attribué à un paquet sortant spécifique, le processus est inversé. Le parefeu remplace l'adresse IP de destination et le numéro de port par l'adresse IP privée de l'ordinateur interne, puis retransmet le paquet au client d'origine sur le LAN. En pratique, la commande suivante utilise iptables pour activer le masquage. Le La commande notée suppose que eth1 représente la carte réseau qui est directement connectée à Internet, avec un réseau IP privé de 192.168.0.0/24 : # iptables t nat A POSTROUTING s 192.168.0.0/24 o eth1 j MASQUERADE
Dans la plupart des cas, l'adresse du réseau IP privé n'est pas requise, car la plupart des réseaux locaux protégés par un masquage sont configurés sur un seul réseau IP privé. Si vous utilisez des réseaux privés distincts, comme pour les machines virtuelles basées sur KVM configurées aux chapitres 1 et 2, le masquage de ces réseaux permet la communication entre ces systèmes. Dans cette configuration, les règles de masquage seraient appliquées au parefeu du système hôte physique. Sur mon système, j'ai les règles de masquage suivantes :
# iptables t nat A POSTROUTING o wlan0 j MASQUÉ # iptables t nat A POSTROUTING o virbr0 j MASQUÉ # iptables t nat A POSTROUTING o virbr1 j MASQUÉ
Ces règles fonctionnent main dans la main avec les règles de transfert IP décrites ciaprès. Juste attention, le masquage remplace l'adresse IP du routeur par celle du
Machine Translated by Google
20 Chapitre 10 : Introduction à la sécurité
système d'origine. Ainsi, si vous configurez le masquage sur le système hôte physique pour deux machines virtuelles, la communication d'une machine virtuelle semble provenir de l'adresse IP du système hôte physique.
Transfert IP Le transfert IP est plus communément appelé routage. Le routage est essentiel au fonctionnement d'Internet ou de tout réseau IP. Les routeurs connectent et facilitent la communication entre plusieurs réseaux. Lorsque vous configurez un ordinateur pour trouver un site sur un réseau extérieur, il a besoin d'une adresse de passerelle. Cela correspond à l'adresse IP d'un routeur sur le LAN. Un routeur regarde l'adresse IP de destination de chaque paquet. Si l'adresse IP se trouve sur l'un de ses réseaux locaux, il achemine le paquet directement vers l'ordinateur approprié. Sinon, il envoie le paquet à une autre passerelle plus proche de sa destination finale. Pour utiliser un système Red Hat Enterprise Linux comme routeur, vous devez activer le transfert IP dans le fichier de configuration /etc/sysctl.conf en modifiant
net.ipv4.ip_forward = 0 pour
net.ipv4.ip_forward = 1 Ces paramètres prendront effet au prochain redémarrage. Jusquelà, le transfert IPv4 peut être activé avec la commande suivante :
echo 1 > /proc/sys/net/ipv4/ip_forward Mais ce n'est pas assez. Vous devrez également activer le routage via le parefeu pour les communications vers d'autres réseaux. Par exemple, avec les systèmes de VM basés sur KVM sur deux réseaux virtuels, ils incluent deux périphériques réseau virtuels dans la sortie de la commande ifconfig sur l'hôte physique : virbr0 et virbr1. Sur le système que j'utilise pour écrire ce livre, il inclut également le périphérique de réseau sans fil local, wlan0. Pour un hôte physique avec une carte Ethernet câblée standard, vous devrez peutêtre remplacer eth0 par wlan0.
# iptables A EN AVANT o wlan0 j ACCEPTER # iptables A EN AVANT o virbr0 j ACCEPTER # iptables A EN AVANT o virbr1 j ACCEPTER Si vous avez réellement besoin de configurer une connexion à des réseaux externes tels qu'Internet, une modification est également requise dans le fichier /etc/resolv.conf sur les machines virtuelles. Normalement,
Machine Translated by Google
Parefeu et traduction d'adresses réseau 21
il définit le serveur DNS par défaut sur l'adresse IP des réseaux virbr0 et virbr1 sur le système hôte physique. Vous devrez peutêtre remplacer cette adresse IP de serveur DNS par celle utilisée pour d'autres systèmes sur le réseau local. Cependant, cela ne devrait pas être nécessaire, car l'accès à Internet n'est pas disponible pendant les examens Red Hat.
Outil de configuration du parefeu Red Hat La fonctionnalité de base de l'outil de configuration du parefeu Red Hat a été abordée au chapitre 4, en ce qui concerne les objectifs RHCSA. L'outil de configuration du parefeu peut faire plus. Démarrezle avec la commande systemconfigfirewall ou en cliquant sur System | Administratif | Parefeu. Il s'agit d'un outil avec un certain nombre de fonctionnalités, comme le montre la Figure 103. En général, vous pouvez appliquer immédiatement toute modification apportée avec le bouton Appliquer. Mais pour cette raison, vous souhaiterez peutêtre sauvegarder la version actuelle du fichier /etc/sysconfig/iptables avant de faire quoi que ce soit avec l'outil de configuration du parefeu.
FIGURE 103 Le parefeu Outil de configuration
Machine Translated by Google
22 Chapitre 10 : Introduction à la sécurité
Une fonctionnalité similaire est disponible à partir de la version console de l'outil. Vous pouvez l'ouvrir avec la commande systemconfigfirewalltui. Sélectionnez Personnaliser pour accéder aux mêmes options illustrées à la Figure 103. Les sections suivantes traitent des options qui n'ont pas été abordées précédemment au chapitre 4.
Interfaces approuvées Dans l'outil de configuration du parefeu, cliquez sur Interfaces approuvées pour afficher la fenêtre illustrée à la Figure 104. Les routeurs et les passerelles ont deux cartes réseau ou plus. Les administrateurs qui font confiance aux systèmes du réseau interne peuvent choisir de désactiver le pare feu sur cette interface. Cependant, cela ne devrait pas être nécessaire. Les menaces peuvent provenir aussi bien de l'intérieur que de l'extérieur d'un réseau. Les options illustrées à la Figure 104 s'appliqueraient à toutes les interfaces de chaque type, comme indiqué dans le Tableau 101. Ils se terminent tous par un +, qui est en fait comme un joker. Par exemple, eth+ est associé au périphérique eth0, eth1, etc. Dans la plupart des cas, le système de passerelle ou de routeur aura deux périphériques Ethernet. Supposons que ces périphériques soient eth0 et eth1, où eth0 est connecté à un réseau externe. Si le réseau local doit être approuvé, vous pouvez configurer le périphérique eth1 en tant que périphérique de confiance. Parfois, les appareils sans fil apparaissent sous d'autres noms. Dans certaines configurations, le matériel sans fil apparaît comme des périphériques Ethernet tels que eth0 ou eth1. Dans d'autres cas, j'ai vu des appareils sans fil apparaître comme wlan0 ou même ath0. Il est donc important de connaître les fichiers de périphérique associés à chaque périphérique réseau sur un système. Cliquez sur Ajouter pour ouvrir la fenêtre Interface illustrée à la Figure 105. Entrez ensuite le nom de périphérique de l'interface, dans ce cas, eth1.
TABLEAU 101
Appareil
Réseau
eth+
Types d'interfaces
ppp+
Description Périphériques Ethernet Dispositifs de réseau numérique à intégration de services (RNIS) pour point à point Protocole de communication (PPP)
RNIS+
Appareils RNIS normaux
PPP+
Périphériques PPP, normalement associés aux modems téléphoniques
ton+
Dispositifs de tunnellisation, souvent associés à des réseaux privés virtuels
réseau local+
Périphériques LAN sans fil
Machine Translated by Google
Parefeu et traduction d'adresses réseau 23
FIGURE 104 Interfaces de confiance
FIGURE 105 Un utilisateur défini interface de confiance
Machine Translated by Google
24 Chapitre 10 : Introduction à la sécurité
Une fois appliquées, les interfaces approuvées ajoutent des règles au fichier /etc/sysconfig/iptables. Par exemple, si vous sélectionnez les périphériques wlan+, tous les périphériques portant ce nom sont approuvés, comme documenté avec la directive suivante dans le fichier noté : A ENTRÉE i wlan+ j ACCEPTER
qui accepte tous les paquets réseau qui entrent dans tous les appareils « sans fil ». En revanche, la directive suivante est plus spécifique, basée sur l'interface sécurisée définie par l'utilisateur de la Figure 105. A ENTRÉE i eth1 j ACCEPTER
Vous devez également noter que ces règles apparaissent juste après une règle similaire pour le périphérique de bouclage, lo. Ces règles apparaissent avant toute autre règle autorisant l'entrée de paquets via certains ports, tels que 22 pour la communication SSH.
Masquage Dans l'outil de configuration du parefeu, cliquez sur Masquage pour afficher la fenêtre illustrée à la Figure 106. Les routeurs et les passerelles ont deux périphériques réseau ou plus. Dans la plupart
FIGURE 106 Masquage avec le parefeu
Outil de configuration
Machine Translated by Google
Parefeu et traduction d'adresses réseau 25
cas, vous devez configurer le masquage pour les systèmes sur un réseau interne. Cela a trois avantages :
■ Il cache l'identité de l'adresse IP des systèmes internes aux réseaux.
■ Il ne nécessite qu'une seule adresse IP publique. ■ Il configure le transfert sur les périphériques réseau configurés. Comme pour les interfaces approuvées, vous devez connaître le nom de fichier du périphérique associé à chaque carte réseau. Si vous avez sélectionné un périphérique spécifique comme interface approuvée, comme eth1, ce périphérique doit également apparaître dans cette section. Sinon, il est sélectionnable de la même manière. Les administrateurs peuvent choisir de configurer le masquage sur l'interface réseau de leur choix. L'interface réseau sélectionnée doit être celle connectée à un réseau externe tel qu'Internet. L'action ajoute plusieurs commandes au fichier /etc/sysconfig/iptables. L'exemple suivant est basé sur le périphérique eth1 en tant qu'interface réseau connectée au réseau externe. La première ligne spécifie le type de table, associé au commutateur iptables t. L'option nat représente la traduction d'adresse réseau, la fonctionnalité associée au masquage.
nat
Les quatre lignes qui suivent acceptent les données à transmettre, avant routage (PREROUTING), en tant que sortie vers un autre réseau (OUTPUT), et après que le routage a été déterminé (POSTROUTING) via l'interface eth1 avec les réseaux extérieurs. La directive COMMIT valide en fait les commandes sur le parefeu. :PRÉROUTAGE ACCEPTER [0:0] :SORTIE ACCEPTER [0:0] :POSTROUTING ACCEPTER [0:0] A POSTROUTING o eth1 j MASQUERADE COMMETTRE
Plusieurs directives sont également ajoutées vers la fin du parefeu, appliquées aux paquets qui sont à transmettre. La première directive FORWARD illustrée ici poursuit la communication qui est déjà en cours : A AVANT m état état ÉTABLI, CONNEXE j ACCEPTER
Machine Translated by Google
26 Chapitre 10 : Introduction à la sécurité
La directive suivante accepte les paquets ping et autres paquets ICMP, que vous voudrez peutêtre modifier. A TRANSFERT p icmp j ACCEPTER
Les deux options suivantes acceptent les paquets transmis via l'adaptateur de bouclage (lo) et retour (o) via l'interface vers le réseau externe (eth1). A AVANT i lo j ACCEPTER A AVANT o eth1 j ACCEPTER
Redirection de port Dans l'outil de configuration du parefeu, sélectionnez Redirection de port. Comme suggéré dans la description, le transfert de cette manière ne fonctionne qu'en combinaison avec le masquage. Avec de telles règles, la redirection de port peut être utilisée pour établir la communication entre un port d'une interface réseau spécifique et un port d'un système distant, tel que défini par son adresse IP. Un exemple est illustré à la Figure 107. Les options présentées dans la figure incluraient deux règles supplémentaires, qui redirigent le trafic destiné au port 22 sur le périphérique réseau eth1 vers une destination distante, avec
FIGURE 107 Redirection de port avec le parefeu Outil de configuration
Machine Translated by Google
Parefeu et traduction d'adresses réseau 27
une adresse IP de 192.168.122.150. Le port sur ce système distant est 20022. La deuxième règle garantit que les informations transmises à ce port sur l'adresse IP notée sont acceptées et transmises via le parefeu. A PREROUTING i eth1 p tcp dport 22 j DNAT todestination 192.168.122.150:20022 A AVANT i eth1 m état état NOUVEAU m tcp p tcp d 192.168.122.150 dport 20022 j ACCEPTER
Filtre ICMP Dans l'outil de configuration du parefeu, cliquez sur Filtre ICMP pour ouvrir l'écran illustré à la Figure 108. Comme suggéré dans la description, les options répertoriées concernaient différents messages associés au protocole ICMP. Cela ne se limite pas à la commande ping et aux réponses. Les options affichées sont décrites plus en détail dans le Tableau 102. Si un filtre de cette table est activé, les paquets du filtre indiqué sont bloqués. Comme le montre la Figure 108, si vous placez le curseur sur une option, l'outil de configuration du parefeu fournit plus d'informations.
FIGURE 108 Filtres ICMP avec le parefeu
Outil de configuration
Machine Translated by Google
28 Chapitre 10 : Introduction à la sécurité
TABLEAU 103
Filtre
Description
Filtre ICMP
Destination inaccessible Messages d'hôte introuvable en réponse à une commande ping
Choix
Réponse en écho
Messages de réponse réguliers à la commande ping
Demande d'écho
Un paquet associé à la commande ping réelle
Problème de paramètre
Message d'erreur non défini autrement
Réorienter
Pour un message de routage
Annonce de routeur
Message périodique aux autres routeurs d'une adresse IP multicast
Sollicitation de routeur
Une demande d'annonce de routeur
Éteindre la source
Réponse à un hôte pour ralentir les transferts de paquets
Temps écoulé
Message d'erreur si un message "Time To Live" dans un paquet est dépassé
Règles personnalisées Les développeurs derrière Red Hat et Fedora ont fait un excellent travail pour améliorer la flexibilité de l'outil de configuration du parefeu. Un gourou Linux qui souhaite créer un parefeu personnalisé peut désinstaller les deux outils de parefeu en désinstallant les packages systemconfigfirewall et systemconfigfirewalltui. Comme suggéré précédemment, cela aiderait à garantir que les règles personnalisées créées par des scripts ne sont pas écrasées par l'outil de configuration du parefeu. Cependant, quelqu'un qui n'administre que quelques systèmes peut utiliser l'outil de configuration du parefeu Red Hat pour configurer un fichier avec des règles personnalisées. Pour les besoins de cette section, j'ai créé un fichier, /root/iptablescustom, avec les lignes suivantes : A ENTRÉE m état état NOUVEAU m tcp p tcp dport 2222 j ACCEPTER A ENTRÉE m état état NOUVEAU m tcp p tcp dport 8080 j ACCEPTER
Dans l'outil de configuration du parefeu, j'ai ensuite sélectionné Règles personnalisées et cliqué sur Ajouter pour ouvrir la fenêtre Fichier de règles personnalisées illustrée à la Figure 109. Si vous comprenez la commande iptables, il est plus facile de configurer un fichier personnalisé. Ces fichiers sont plus faciles à transférer d'un système à l'autre. La figure 109 montre en fait le résultat après avoir cliqué sur le bouton Fichier et sélectionné le fichier /root/iptablescustom que j'ai créé à cet effet. Le nom du fichier personnalisé que vous pouvez choisir de créer n'a pas d'importance. Lorsque la modification est appliquée, les règles sont ajoutées au fichier /etc/sysconfig/iptables à un emplacement approprié.
Machine Translated by Google
Le superserveur Internet étendu 29
FIGURE 109 Profitez des règles personnalisées.
OBJECTIF DE CERTIFICATION 10.03
Le superserveur Internet étendu Linux prend généralement en charge la communication réseau entre les clients et les serveurs. Par exemple, même s'il n'est pas sécurisé, il est toujours possible d'utiliser Telnet sous Linux pour se connecter à un système distant. Le client Telnet sur un ordinateur local établit une connexion avec un démon de serveur Telnet sur le système distant. Cette section suppose que vous avez installé les packages RHEL xinetd et telnetserver par défaut. L'utilisation de Telnet dans cette section est uniquement à des fins d'illustration. Ce livre n'approuve pas l'utilisation de Telnet ou de tout protocole en texte clair pour les données privées. Bien que cette section se concentre sur Telnet, d'autres packages xinetd à noter incluent rsync, qui est populaire pour les sauvegardes ; et cvs, populaire pour le contrôle de version de développement de logiciels. Comme aucun service xinetd n'est explicitement cité dans les objectifs RHCE, je garde la
Machine Translated by Google
30 Chapitre 10 : Introduction à la sécurité
couverture des services xinetd au minimum. Néanmoins, les services xinetd sont des « services réseau », un sous ensemble important des objectifs de l'examen. » Le service xinetd (également appelé démon des services Internet étendus) peut démarrer un certain nombre de démons de serveur simultanément. Le service xinetd écoute les demandes de connexion pour tous les serveurs actifs avec des scripts dans le répertoire /etc/xinetd.d. Il existe un fichier de configuration générique pour les services xinetd, /etc/xinetd.conf. Les scripts du répertoire / etc/xinetd.d fonctionnent comme des fichiers de configuration spécifiques au service.
Configuration xinetd générique La configuration générique des services xinetd est stockée dans le fichier /etc/xinetd.conf. Étant donné que les candidats RHCE doivent configurer les services uniquement pour le « fonctionnement de base », ce chapitre analyse uniquement les directives actives dans ce fichier. Tout d'abord, un certain nombre de paramètres par défaut sont activés avec la commande suivante : valeurs par défaut
Cela permet à des services tels que rsync de conserver leurs ports TCP/IP par défaut (873) au sein du service xinetd. Celleci est suivie de log_type = informations sur le démon SYSLOG
qui spécifie la journalisation via le démon rsyslog comme décrit dans les chapitres 9 et 17, tel que configuré dans /etc/rsyslog.conf. Celleci est suivie de log_on_failure = HÔTE
qui spécifie les informations de journalisation lorsqu'une connexion via un service contrôlé par xinetd échoue. Naturellement, cela spécifie le nom d'hôte (ou l'adresse IP) de l'hôte client. Il peut être utile d'ajouter USERID à la liste, qui répertorie le numéro UID associé à l'échec de la connexion. Cela peut vous aider à identifier les comptes compromis. Cette ligne, log_on_success = SORTIE DE DURÉE DE L'HÔTE PID
spécifie les informations de journalisation associées à une connexion réussie. Par exemple, une fois que j'ai déconnecté une connexion Telnet à partir d'un système distant, cela a conduit aux entrées suivantes dans /var/log/ messages : 31 janvier 08:46:55 server1 xinetd[16543] : DÉMARRER : telnet pid=16582 from=::ffff:tester1.example.com
Machine Translated by Google
Le superserveur Internet étendu 31
31 janvier 08:47:01 server1 xinetd[16543] : EXIT : telnet status=0 pid=16582 duration=6(sec)
L'effet de /etc/xinetd.conf est simple. La prochaine ligne active est cps = 50 10
La commande cps empêche les tentatives « d'inonder » tout service xinetd ; cette ligne limite les connexions à 50 par seconde. Si cette limite est dépassée, xinetd attend 10 secondes avant de permettre à un utilisateur distant de réessayer. La ligne suivante, occurrences = 50
limite le nombre de services actifs pour un service particulier ; dans ce cas, pas plus de 50 utilisateurs peuvent être connectés simultanément au serveur Telnet local. Ce nombre diminue si d'autres services xinetd sont en cours d'exécution. Ceci est suivi d'une directive connexe : par_source = 10
ce qui limite le nombre de connexions à partir de chaque adresse IP. La prochaine directive active est presque explicite : v6only = non
Si cette option était définie sur Oui, l'accès serait limité aux systèmes avec des adresses IPv6. Quelques directives d'environnement suivent, qui permettent l'exécution avec le xinetd group, ou défini avec la directive group (singulier), puisqu'il n'y a pas de groupe xinetd par défaut.
groupes = oui umask = 002
Enfin, la dernière ligne active supporte l'utilisation des autres fichiers de configuration spécifiés dans le répertoire /etc/xinetd.d : répertoire inclus /etc/xinetd.d
Configuration xinetd spécifique au service Chaque fichier du répertoire /etc/xinetd.d spécifie un service particulier à gérer par xinetd. Par défaut, les scripts de ce répertoire sont désactivés. Le code suivant montre un exemple du fichier de configuration /etc/xinetd.d/telnet, avec ce service désactivé :
Machine Translated by Google
32 Chapitre 10 : Introduction à la sécurité
# par défaut : on # description : Le serveur telnet sert les sessions telnet ; il utilise # service telnet paires nom d'utilisateur/mot de passe non cryptées pour l'authentification. { flags
= RÉUTILISER
socket_type attendre
= flux
utilisateur
= racine
serveur
= /usr/sbin/in.telnetd
= non
log_on_failure += USERID désactiver = oui }
Il s'agit d'un fichier de configuration /etc/xinetd.d typique. Les variables (et quelques variables supplémentaires que vous pouvez utiliser) sont décrites dans le Tableau 103. Il s'agit d'un fichier de configuration polyvalent ; les autres champs sont décrits dans les pages de manuel de xinetd.conf. Lisez le xinetd. page de manuel de configuration ; les directives only_from et no_access peuvent être particulièrement intéressantes, car elles peuvent vous aider à "configurer la sécurité basée sur l'hôte et sur l'utilisateur pour le service". Vous pouvez activer n'importe quel service xinetd en remplaçant disable = yes par disable = no.
TABLEAU 103
Standard
Champ drapeaux
types de réseaux.
pour xinetd
Des dossiers
Prend en charge différents paramètres pour le service ; REUSE est une valeur par défaut qui prend en charge l'utilisation continue du service. Les options incluent IPv6 pour le définir en tant que service pour ces
Paramètres
Configuration
Description de l'entrée de champ
socket_type
Spécifie le flux de communication.
attendez
Défini sur oui pour les applications monothread ou sur non pour les applications multithread.
utilisateur
Compte sous lequel le serveur doit s'exécuter.
groupe
Groupe sous lequel le serveur doit s'exécuter.
serveur
Le programme serveur.
seulement de
Nom d'hôte ou adresse IP autorisé à utiliser le serveur. La notation CIDR (telle que 192.168.0.0/24) est
pas d'accès
Le nom d'hôte ou l'adresse IP n'est pas autorisé à utiliser le serveur. La notation CIDR est correcte.
acceptable.
log_on_failure En cas d'échec de la tentative de connexion, ceci spécifie les informations envoyées à un fichier journal.
désactiver
Par défaut, défini sur oui, ce qui désactive le service.
Machine Translated by Google
Le superserveur Internet étendu 33
Il existe deux manières d'activer un service xinetd. Vous pouvez modifier le fichier de configuration directement en changeant le champ de désactivation de N'oubliez jamais de vous assurer qu'un service sera actif après un redémarrage. La
non à oui. Faites ensuite relire les fichiers de configuration par le démon xinetd avec la commande service xinetd reload.
commande chkconfig servicename on est une manière de procéder pour les services xinetd. Sinon, tout ce que vous
Alternativement, vous pouvez utiliser la commande
configurez peut ne pas fonctionner après le redémarrage
chkconfig servicename on, qui effectue automatiquement cette
d'un système.
modification et oblige xinetd à relire le fichier de configuration.
EXERCICE 101 Configurer xinetd Dans cet exercice, vous allez activer le service Telnet à l'aide de xinetd. Cet exercice suppose que le package telnet server est déjà installé. Avant de commencer cet exercice, essayez d'établir une session Telnet à l'aide de la commande telnet localhost. Si vous réussissez, Telnet était précédemment activé ; dans ce cas, désactivezle d'abord avec la commande chkconfig telnet off.
1. Modifiez /etc/xinetd.d/telnet et changez la valeur de disable de yes à no. 2. Dites à xinetd de relire son fichier de configuration à l'aide de cette commande : # rechargement du service xinetd
3. Essayez à nouveau la commande telnet localhost. Cela devrait fonctionner. 4. Essayez de vous connecter avec un nom d'utilisateur ou un mot de passe incorrect.
5. Connectezvous à un autre terminal. Que voyezvous lorsque vous exécutez utmpdump /var/log/wtmp ? 6. Connectezvous maintenant avec un nom d'utilisateur et un mot de passe corrects.
7. Que voyezvous dans /var/log/messages ? 8. Déconnectezvous de la session Telnet. Que voyezvous maintenant dans /var/log/messages ? 9. Utilisez la commande chkconfig pour désactiver Telnet. (N'oubliez pas que le nom du service est telnet.) Essayez de vous reconnecter au serveur Telnet. Devezvous redémarrer ou recharger xinetd ? 10. Que se passetil lorsque vous utilisez chkconfig pour désactiver Telnet ? Estce que ça change le /etc/xinted.d/fichier de configuration telnet ?
Machine Translated by Google
34 Chapitre 10 : Introduction à la sécurité
11. Pour la sécurité de ce système, désinstallez le package associé avec la commande rpm e telnet server. Comme suggéré par la NSA, les pirates ne peuvent pas exploiter les faiblesses des logiciels désinstallés.
OBJECTIF DE CERTIFICATION 10.04
Emballages TCP Comme son nom l'indique, TCP Wrappers protège les services qui communiquent à l'aide du protocole TCP. Il a été conçu à l'origine pour aider à protéger les services configurés via le superserveur Internet étendu que nous venons de décrire. Mais la protection des wrappers TCP ne se limite plus à ces services ; la protection peut s'appliquer à tous les services liés statiquement et dynamiquement au fichier wrapper de bibliothèque associé, libwrap.so.0. La façon dont les wrappers TCP protègent un service est définie dans /etc/hosts.allow et /etc/hosts.deny fichiers de configuration.
Un service estil protégé par des enveloppeurs TCP ? La commande strings peut être utilisée pour identifier les démons protégés par TCP Wrappers. Pour ce faire, il répertorie les chaînes associées aux différents composants des fichiers binaires. La chaîne associée aux wrappers TCP est hosts_access. Les démons se trouvent dans les répertoires /sbin et /usr/ sbin. Ainsi, le moyen le plus rapide d'analyser les démons dans ces répertoires pour la chaîne host_access consiste à utiliser les commandes suivantes :
# chaînes /sbin/* | grep hosts_access # chaînes / usr/sbin/* | grep hosts_access La sortie dépend des packages installés. Un exemple est le démon SSH, /usr/sbin/sshd. Vous pouvez ensuite utiliser le chemin complet vers ce démon pour confirmer un lien vers la bibliothèque TCP Wrappers, libwrap.0.so. La commande de dépendances de bibliothèque, ldd, peut lister les bibliothèques utilisées par le sshd démon. Pour identifier ces dépendances, exécutez la commande suivante :
# ldd /usr/sbin/sshd Mais ce n'est pas pratique, car il renvoie les fichiers de plus d'une douzaine de fichiers de bibliothèque. En tant qu'expert de la ligne de commande Linux, vous devez savoir comment diriger
Machine Translated by Google
Emballages TCP 35
cette sortie à la commande grep pour voir si elle est associée au fichier de bibliothèque TCP Wrappers : libwrap.so.0 :
# ldd /usr/sbin/sshd | grep libwrap.0.so Et dès la sortie, c'est confirmé :
libwrap.so.0 => /lib64/libwrap.so.0 (0x00007f231674e000) Maintenant c'est confirmé. Vous pouvez utiliser les fichiers de configuration TCP Wrappers pour aider à protéger le service SSH. Cette protection vient audelà de tous les paramètres inclus dans les parefeu de commande iptables standard, le fichier de configuration du serveur SSH, SELinux, etc. Mais une telle protection redondante est importante dans une stratégie de sécurité en couches.
Fichiers de configuration des wrappers TCP Lorsqu'un système reçoit une requête réseau pour un service lié à la bibliothèque libwrap.so.0, il transmet la requête aux wrappers TCP. Ce système enregistre la demande, puis vérifie ses règles d'accès. S'il n'y a pas de limites sur l'hôte ou l'adresse IP particulière, TCP Wrappers redonne le contrôle au service.
Les fichiers clés sont hosts.allow et hosts.deny. La philosophie est assez simple : les utilisateurs et les clients répertoriés dans hosts.allow sont autorisés à accéder ; les utilisateurs et les clients répertoriés dans hosts.deny se voient refuser l'accès. Comme les utilisateurs et/ou les clients peuvent être répertoriés dans les deux fichiers, le système TCP Wrappers suit les étapes suivantes :
1. Il recherche /etc/hosts.allow. Si TCP Wrappers trouve une correspondance, il accorde l'accès. Aucune recherche supplémentaire n'est requise. 2. Il recherche /etc/hosts.deny. Si TCP Wrappers trouve une correspondance, il refuse l'accès. 3. Si l'hôte n'est trouvé dans aucun des fichiers, l'accès est automatiquement accordé au client. Vous utilisez le même langage de contrôle d'accès dans /etc/hosts.allow et /etc/hosts.deny des dossiers. Le format de base des commandes dans chaque fichier est le suivant :
liste_démon : liste_client La version la plus simple de ce format est
TOUS : TOUS
Machine Translated by Google
36 Chapitre 10 : Introduction à la sécurité
Cela spécifie tous les services et rend la règle applicable à tous les hôtes sur toutes les adresses IP. Si vous définissez cette ligne dans /etc/hosts.deny, l'accès est interdit à tous les services. Bien sûr, puisque cela est lu après /etc/hosts.allow, les services de ce fichier sont autorisés. Bien sûr, vous pouvez créer des filtres plus fins que simplement interdire l'accès à TOUS démons de TOUS les systèmes. Par exemple, la ligne suivante dans /etc/hosts.allow permet au client avec une adresse IP de 192.168.122.50 de se connecter au système local via le Secure Shell :
sshd : 192.168.122.50 La même ligne dans /etc/hosts.deny empêcherait l'ordinateur avec cette adresse IP d'utiliser SSH pour se connecter. Si la même ligne existe dans les deux fichiers, /etc/hosts.allow est prioritaire et les utilisateurs de l'adresse IP indiquée pourront se connecter via SSH, en supposant que d'autres paramètres de sécurité tels que les parefeu basés sur iptables le permettent. Vous pouvez spécifier des clients de différentes manières, comme indiqué dans le Tableau 104. Comme vous pouvez le voir dans le tableau 104, il existe deux types différents de caractères génériques. ALL peut être utilisé pour représenter n'importe quel client ou service, et le point (.) spécifie tous les hôtes avec le nom de domaine ou l'adresse réseau IP spécifié. Vous pouvez configurer plusieurs services et adresses avec des virgules. Les exceptions sont faciles à faire avec l'opérateur EXCEPT. Passez en revue l'exemple suivant extrait d'un fichier /etc/hosts.allow :
#hosts.allow ALL : .example.com sshd : 192.168.122.0/255.255.255.0 SAUF 192.168.122.150 rpc.mountd, in.tftpd : 192.168.100.100
TABLEAU 104
Client .exemple.com
Exemples de commandes dans /etc/hosts.allow et /etc/hosts.deny
Description Nom de domaine. Comme ce nom de domaine commence par un point, il spécifie tous les clients sur le domaine example.com.
172.16.
Adresse IP. Comme cette adresse se termine par un point, elle spécifie tous les clients avec une adresse IP de 172.16.xy
172.16.72.0/255.255.254.0 Adresse réseau IP avec masque de sousréseau. Notation CIDR non reconnue. TOUS
N'importe quel client, n'importe quel démon.
[email protected] S'applique à l'utilisateur spécifique sur l'ordinateur donné.
Machine Translated by Google
Emballages TCP 37
La première ligne de ce fichier est simplement un commentaire. La ligne suivante ouvre TOUS les services à tous les ordinateurs du domaine example.com. La ligne suivante ouvre le service SSH à n'importe quel ordinateur du réseau 192.168.122.0, à l'exception de celui dont l'adresse IP est 192.168.122.150. Ensuite, les services de montage et TFTP sont ouverts sur l'ordinateur avec une adresse IP de 192.168.100.100. Vous pouvez ajouter le réseau d'adresses IP localhost aux démons notés dans le fichier /etc/hosts.allow, comme suit :
sshd : 127. 192.168.122.0/255.255.255.0 SAUF 192.168.122.150 rpc.mountd, in.tftpd : 127. 192.168.100.100 Sinon, les tentatives de connexion à partir du système local peuvent être refusées en fonction des directives du fichier /etc/hosts.deny qui suit. Le code qui suit contient un fichier hosts.deny pour voir comment des listes peuvent être construites pour contrôler l'accès :
#hosts.deny TOUS SAUF in.tftpd : .example.org sshd : TOUS SAUF 192.168.122.150 TOUS : TOUS
La première ligne du fichier hosts.deny est un commentaire. La deuxième ligne refuse tous les services à l'exception de TFTP aux ordinateurs du domaine example.org. La troisième ligne indique que le seul ordinateur autorisé à accéder au serveur SSH local a une adresse IP de 192.168.122.100. Enfin, la dernière ligne est un déni général ; tous les autres ordinateurs se voient refuser l'accès à tous les services contrôlés par TCP Wrappers.
EXERCICE 102 Configuration des encapsuleurs TCP Dans cet exercice, vous utiliserez des encapsuleurs TCP pour contrôler l'accès aux ressources réseau. Étant donné que ces contrôles sont activés par défaut, vous ne devriez pas avoir à apporter de modifications aux services installés. 1. Essayez de vous connecter au serveur telnet local en utilisant l'adresse localhost. Vous pouvez devez d'abord faire plusieurs choses : A. Installez le service de serveur Telnet, à partir du RPM telnetserver. B. Activez le service avec la commande chkconfig telnet on. C. Autoriser Telnet via n'importe quel parefeu actif, sur le port par défaut de 23.
Machine Translated by Google
38 Chapitre 10 : Introduction à la sécurité
D. Ajoutez la ligne suivante à /etc/hosts (remplacez le nom d'hôte de votre ordinateur par server1 et server1.example.com).
127.0.0.1 serveur1 serveur1.exemple.com localhost.localdomain localhost E. Reconnaître que le service Telnet inclus avec RHEL 6 ne autorisent généralement les connexions root.
2. Modifiez /etc/hosts.deny et ajoutez la ligne suivante (n'oubliez pas d'écrire le fichier) :
TOUS : TOUS 3. Que se passetil lorsque vous essayez de vous connecter par telnet à l'adresse localhost ? 4. Modifiez /etc/hosts.allow et ajoutez la ligne suivante :
dans.telnetd : 127.0.0.1 5. Maintenant, que se passetil lorsque vous essayez de vous connecter par telnet à l'adresse localhost ? Avez vous besoin d'ajouter autre chose au fichier /etc/hosts.allow ? Essayez d'ajouter le nom d'hôte localhost.
6. Si d'autres services réseau associés aux wrappers TCP sont disponibles sur le système local, essayez de restreindre l'accès à ces démons dans les fichiers /etc/hosts.allow et /etc/hosts.deny.
7. Annuler toutes les modifications apportées lorsque vous avez terminé. Si vous convenez qu'un protocole de communication en texte clair tel que Telnet est intrinsèquement non sécurisé, cela devrait inclure la suppression du paquet telnetserver.
OBJECTIF DE CERTIFICATION 10.05
Modules d'authentification enfichables RHEL utilise le système de modules d'authentification enfichables (PAM) comme autre couche de sécurité principalement pour les outils d'administration et les commandes associées. PAM comprend un groupe de modules de bibliothèque chargeables dynamiquement qui régissent la manière dont les applications individuelles vérifient leurs utilisateurs. Vous pouvez modifier les fichiers de configuration PAM pour personnaliser les exigences de sécurité pour différents utilitaires d'administration. La plupart des fichiers de configuration PAM sont stockés dans le répertoire /etc/pam.d.
Machine Translated by Google
Modules d'authentification enfichables 39
Les modules PAM standardisent également le processus d'authentification des utilisateurs. Par exemple, le programme de connexion utilise PAM pour exiger des noms d'utilisateur et des mots de passe lors de la connexion. Ouvrez le fichier /etc/pam.d/login. Jetez un oeil à la première ligne:
auth [user_unknown=ignorer success=ok ignorer=ignorer default=bad] \ pam_securetty.so Pour interpréter, cette ligne signifie que les utilisateurs root ne peuvent se connecter qu'à partir de terminaux sécurisés, comme défini dans le fichier /etc/securetty, et que les utilisateurs inconnus sont ignorés. Une barre oblique inverse dans une ligne de commande « échappe » la signification du caractère suivant ; dans la commande précédente, pam_securetty.so est ajouté à la fin de la ligne de commande. En raison des limites du format de cette série, j'ai dû modifier l'espacement de certaines lignes et ajouter des barres obliques inverses à d'autres.
Les fichiers de configuration affichés dans le répertoire /etc/pam.d portent souvent le même nom que la commande qui démarre l'utilitaire d'administration. Ces utilitaires sont « compatibles PAM ». En d'autres termes, vous pouvez modifier la façon dont les utilisateurs sont vérifiés pour des applications telles que le programme de connexion à la console. Modifiez simplement le fichier de configuration approprié dans le répertoire /etc/pam.d.
Fichiers de configuration Examinez les fichiers de configuration dans un répertoire /etc/pam.d typique, comme illustré à la Figure 1010. Selon ce qui est installé, vous pouvez voir une liste de fichiers quelque peu différente.
Comme suggéré précédemment, la plupart des noms de fichiers du répertoire /etc/pam.d sont descriptifs. Jetez un œil à certains de ces fichiers. Dans la plupart des cas, ils font référence aux modules PAM. Ces modules se trouvent dans le répertoire /lib64/security (sur les systèmes 32 bits, dans le répertoire /lib/security). D'excellentes descriptions de chaque module peuvent être trouvées dans le répertoire /usr/share/doc/pam versionnumber , dans les sousrépertoires txt/ et html/. Par exemple, la fonctionnalité du module pam_securetty.so est décrite dans le fichier README.pam_securetty.
En fait, il existe une version HTML du Guide de l'administrateur système LinuxPAM disponible dans le répertoire /usr/share/doc/pamversionnumber/html, en commençant par le fichier LinuxPAM_SAG.html.
Machine Translated by Google
40 Chapitre 10 : Introduction à la sécurité
FIGURE 1010
PAM fichiers de configuration dans le répertoire /etc/pam.d
Drapeaux de contrôle Le système PAM divise le processus de vérification des utilisateurs en quatre tâches distinctes. Voici les quatre différents types de drapeaux PAM :
■ Gestion de l'authentification (auth) Etablit l'identité d'un utilisateur. Par exemple, une commande PAM auth décide s'il faut demander un nom d'utilisateur et/ou un mot de passe. Les options associées peuvent même accorder l'appartenance à un groupe. ■ Gestion du compte (compte) Autorise ou refuse l'accès selon les politiques du compte. Par exemple, une commande de compte PAM peut refuser l'accès en fonction de l'heure, de l'expiration du mot de passe ou d'une liste spécifique d'utilisateurs restreints. ■ Gestion des mots de passe (password) Gère les autres politiques de mot de passe. Par exemple, une commande de mot de passe PAM peut limiter le nombre de tentatives de connexion d'un utilisateur avant la réinitialisation d'une console. ■ Gestion de session (session) Applique les paramètres d'une application. Pour Par exemple, la commande de session PAM peut définir les paramètres par défaut d'une console de connexion. Le code illustré à la Figure 1011 provient d'un exemple de fichier de configuration PAM, /etc/pam.d/login. Chaque ligne de tous les fichiers de configuration PAM est écrite au format suivant :
module_type control_flag module_path [arguments]
Machine Translated by Google
Modules d'authentification enfichables 41
FIGURE 1011
L'APM /etc/pam.d/fichier de configuration de connexion
Le module_type, comme décrit précédemment, peut être auth, account, password ou session. Le control_flag détermine ce que PAM fait si le module réussit ou échoue. Le module_path spécifie l'emplacement du fichier de module PAM réel. Enfin, comme pour les commandes shell habituelles, vous pouvez spécifier des arguments pour chaque module. Le champ control_flag nécessite des explications supplémentaires. Il détermine comment le fichier de configuration réagit lorsqu'un module signale un succès ou un échec. Les cinq indicateurs de contrôle différents sont décrits dans le Tableau 105.
TABLEAU 105
Contrôle PAM
control_flag Description requis
Si le module fonctionne, la commande continue. S'il échoue, PAM passe à la commande suivante dans le fichier de configuration, mais la commande contrôlée par PAM échouera toujours.
requis
Arrête le processus si le module échoue.
suffisant
Si le module fonctionne, la connexion ou une autre authentification se poursuit. Aucune autre commande ne doit être traitée.
facultatif
PAM ignore le succès ou l'échec de ce module, à moins qu'aucun autre module ne soit utilisé.
inclure
Inclut toutes les directives module_type du fichier de configuration indiqué ; par exemple, si la directive est password include systemauth, cela inclut toutes les directives de mot de passe du fichier PAM systemauth.
Drapeaux
Machine Translated by Google
42 Chapitre 10 : Introduction à la sécurité
Pour voir comment fonctionnent les drapeaux de contrôle, jetez un œil aux commandes du /etc/pam.d/reboot fichier de configuration :
authentification suffisante
pam_rootok.so
La première commande auth vérifie le module pam_rootok.so. En d'autres termes, si l'utilisateur root exécute la commande reboot, le control_flag est suffisant et les autres commandes auth de ce fichier sont ignorées. Linux exécute la commande de redémarrage. Ceci est expliqué dans le fichier README.pam_rootok du répertoire /usr/share/doc/pamversionnumber/txts .
authentification requise
pam_console.so
Compte tenu de l'objectif de la première ligne, cette deuxième commande auth est exécutée uniquement pour les utilisateurs non root, afin de régir les autorisations au sein de la console. Dans ce cas, il confirme simplement la propriété de la console à tout utilisateur connecté à cette console.
#auth inclure
authentification système
La troisième ligne est commentée par défaut. Si vous activez cette ligne, elle inclut les commandes du fichier de configuration systemauth, qui nécessite des privilèges d'utilisateur root. Les utilisateurs distants qui se connectent avec des privilèges root sont toujours autorisés à redémarrer le système.
compte requis
pam_permit.so
Le module associé à la commande de compte (pam_permit.so) accepte tous les utilisateurs, même ceux qui se sont connectés à distance. En d'autres termes, ce fichier de configuration permettrait à tout utilisateur root, local ou distant, de redémarrer le système Linux, à moins qu'il ne soit rejeté par une directive précédente.
Le format d'un fichier PAM Cette section est un peu complexe. Il commence par le fichier de configuration /etc/pam.d/login illustré à la Figure 1012. De plus, comme le fichier inclut des références au fichier de configuration /etc/pam.d/ systemauth, vous devrez faire des allersretours entre les fichiers pour suivre cette section. Lorsqu'un utilisateur ouvre une console texte et se connecte, Linux parcourt ce fichier de configuration ligne par ligne. Comme indiqué précédemment, la première ligne de /etc/pam.d/login limite l'accès de l'utilisateur root aux terminaux sécurisés comme défini dans le fichier /etc/securetty :
auth [user_unknown=ignorer success=ok ignorer=ignorer default=bad] \ pam_securetty.so
Machine Translated by Google
Modules d'authentification enfichables 43
FIGURE 1012 Le fichier de configuration PAM /etc/pam.d/systemauth
La ligne suivante inclut les commandes auth du fichier de configuration PAM system auth : l'authentification inclut
authentification système
Le fichier de configuration systemauth illustré à la Figure 1012 comprend cinq directives auth : requis suffisant
pam_env.so
authentification authentification
suffisant
pam_unix.so nullok try_first_pass pam_succeed_if.so
authentification
requis requis
uid >= 500 calme pam_deny.so
authentification
pam_fprintd.so
authentification
Dans l'ordre, ils configurent les variables d'environnement, vérifient l'authentification via un lecteur d'empreintes digitales (pam_fprintd.so) si disponible, et vérifient les mots de passe (pam_unix.so). L'indicateur suffisant associé à ces modules signifie que l'authentification fonctionne si une empreinte digitale ou un mot de passe valide a été saisi. L'ID utilisateur du compte doit être
Machine Translated by Google
44 Chapitre 10 : Introduction à la sécurité
500 et plus. Si ces conditions ne sont pas remplies, l'utilisateur est verrouillé (pam_deny.so). Revenez maintenant au fichier /etc/pam.d/login. Le Si le fichier /etc/nologin existe,
la ligne suivante, qui recherche un type de module de
les utilisateurs réguliers ne sont pas autorisés à se
compte, vérifie les comptes non autorisés à se connecter
connecter à la console locale. Tout utilisateur régulier
comme indiqué dans le fichier /etc/nologin :
qui essaie de se connecter peut lire le contenu de /etc/ nologin sous forme de message.
compte requis
pam_nologin.so
Le module de compte suivant inclut les modules de compte du fichier de configuration /etc/pam.d/systemauth : compte comprend
authentification système
Voici les lignes de type de module de compte de /etc/pam.d/systemauth :
compte requis compte pam_unix.so suffisant pam_localuser.so compte suffisant pam_succeed_if.so uid /dev/null 2>&1
La ligne suivante affecte la valeur de sortie standard à une variable nommée EXITVALUE :
VALEUREXIT=$ ? Le succès a une valeur de sortie de 0. S'il y a un problème, la valeur de sortie est un autre nombre. La commande if démarre une instruction conditionnelle. Le caractère bang (!), qui ressemble à un point d'exclamation, signifie en fait "pas" ou "tout sauf". Ainsi, le conditionnel suivant est vrai lorsque la valeur de EXITVALUE est différente de 0 :
si [ $EXITVALUE != 0 ];
Donc, si EXITVALUE n'est pas 0, la commande à l'intérieur du conditionnel if est exécutée, qui peut aider un administrateur à identifier un problème avec le script logrotate ou les fichiers journaux associés. /usr/bin/logger t logrotate "ALERT s'est terminé anormalement avec [$EXITVALUE]"
Machine Translated by Google
Automatiser la maintenance du système 5
La commande fi qui suit termine l'instruction conditionnelle qui a commencé par le si. La dernière directive renvoie 0, une indication de succès :
sortie 0 Comme cela peut être déroutant pour les utilisateurs novices en matière de scripts, c'est le bon moment pour examiner certaines des commandes de base disponibles pour les scripts.
Commandes de script Les scripts sont remplis de diverses constructions de commande. Certains groupes de commandes sont organisés en boucle, qui continue de s'exécuter tant que les conditions sont remplies. Ces constructions de commande sont également appelées opérateurs. Les opérateurs courants incluent for, if et test. La fin d'une boucle peut être étiquetée avec un opérateur tel que done ou fi. Certains opérateurs n'existent que dans le contexte d'autres, qui seront décrits dans les soussections qui suivent.
Opérateurs de test avec if L'opérateur if est principalement utilisé pour vérifier si un fichier est d'un certain type. Par exemple, la commande suivante vérifie si le fichier /var/cache/man/whatis, une base de données locale de pages de manuel, est tout sauf un fichier normal : si [
! f /var/cache/man/whatis ]
Comme suggéré précédemment, le bang (!) est "tout sauf". Le f vérifie si le nom de fichier qui suit est un fichier régulier existant actuellement. La clé réside dans les opérateurs de test courants dans les scripts shell bash. Certains de ces opérateurs sont répertoriés dans le Tableau 121. L'opérateur if est normalement associé à un opérateur then et éventuellement à un opérateur else. Prenons par exemple la boucle hypothétique suivante : si [ e /etc/inittab ]; then /bin/ls /home > /root/homedirs else /bin/echo "Ne redémarrez pas, /etc/inittab est manquant !"
Fi
Pour cette boucle, si le fichier /etc/inittab existe (grâce au e), la commande associée à l'opérateur then est exécutée. Si ce fichier est manquant, le message noté est exécuté.
Machine Translated by Google
6 Chapitre 12 : Tâches administratives RHCE
TABLEAU 121
Opérateur
Description
Opérateurs de test
b
Vérifie un fichier de bloc.
pour les scripts bash
d
Regarde si le fichier est un répertoire.
e
Demande si le fichier existe.
eq
Vérifie l'égalité des variables ou des valeurs notées.
F
Fonctionne si le fichier est un fichier normal.
ge
Cherche à voir si la première valeur est supérieure ou égale à la seconde.
le
Regarde si la première valeur est inférieure ou égale à la seconde.
lt
Regarde si la première valeur est inférieure à la seconde.
ne
Regarde si la première valeur n'est pas égale à la seconde.
r
Vérifie le fichier pour les autorisations de lecture.
s
Vérifie si la taille du fichier est supérieure à zéro.
w
Inspecte le fichier pour les autorisations d'écriture.
X
Regarde le fichier pour les autorisations d'exécution.
||
Demande si l'expression précédente est fausse.
&&
Demande si l'expression précédente est vraie.
Opérateurs de test avectest L'opérateur de test est parfois utilisé comme conditionnel dans le if. Par exemple, la version originale du script 0anacron dans le répertoire /etc/cron.hourly inclut la ligne suivante : si test x /var/spool/anacron/cron.daily;
qui est fonctionnellement équivalent à if [ x /var/spool/anacron/cron.daily ] ;
La doLoop La boucle do existe normalement dans d'autres boucles. C'est assez simple; l'exemple suivant continue jusqu'à ce qu'une condition liée à la variable n soit remplie : faire
echo "J'adore Linux #$n" fait
Machine Translated by Google
Automatiser la maintenance du système 7
Un exemple plus complexe existe dans le script tmpwatch, dans le répertoire /etc/cron.daily, car il est combiné avec un opérateur if : faire
si [ d "$d" ]; then /usr/sbin/ tmpwatch "$flags" f 30d "$d" Fi fait
Cette boucle exécute la commande tmpwatch notée pour tous les fichiers notés de la variable d qui sont confirmés comme répertoires [ d "$d" ].
La directive for avec un doLoop Un exemple de directive for existe dans le script tmpwatch, dans le répertoire /etc/cron.daily. Il inclut la boucle do qui vient d'être décrite. La directive for spécifie la valeur de la variable d basée sur les répertoires existants tels que /var/cache/man/cat1. pour d dans /var/{cache/man,catman}/{cat?,X11R6/cat?,local/cat?} ; faire si [ d "$d" ]; then /usr/sbin/ tmpwatch "$flags" f 30d "$d" Fi fait
Cette combinaison peut sembler complexe. J'ai écrit un script plus simple pour l'exercice 121.
Créez vos propres scripts d'administration Si c'est la première fois que vous créez un script, restez simple. Il peut y avoir une commande que vous exécutez souvent sur un système Linux. Par exemple, je configure parfois mon serveur pour collecter des images d'une caméra extérieure toutes les secondes. Après quelques jours, cela se traduit par beaucoup de fichiers. La commande rm seule ne peut pas gérer trop de fichiers. Je ne me souviens jamais de la commande exacte, j'ai donc créé un script à cet effet : #!/bin/sh /usr/ bin/find /home/camera/ type f name "outside*" exec rm f {} \
Ce script particulier trouve tous les fichiers normaux (type f) avec le nom donné et le transmet à la commande rm. Les commandes d'une telle complexité sont des candidats parfaits pour les scripts. Je pourrais configurer ce script pour qu'il soit exécuté régulièrement avec une tâche cron associée à l'utilisateur nommé camera, en supposant que les fichiers de ce répertoire appartiennent à cet utilisateur. Ces tâches cron ont été abordées au chapitre 9.
Machine Translated by Google
8 Chapitre 12 : Tâches administratives RHCE
EXERCICE 123 Créer un scénario Dans cet atelier, vous allez créer un script simple qui répertorie les fichiers .doc dans le répertoire d'accueil local. Bien sûr, il existe des moyens plus simples d'identifier les fichiers .doc locaux. S'il n'y en a pas. doc dans un répertoire approprié, vous pouvez utiliser la commande touch pour les créer, ou remplacer un autre type de fichier, comme ceux avec une extension .pdf ou .conf. Le but de cet exercice est d'aider les utilisateurs novices en matière de scripts à comprendre leur fonctionnement. 1. Utilisez le script /etc/cron.daily/cups comme modèle. Copiezle dans votre répertoire personnel avec une commande telle que cp /etc/cron.daily/cups ~/testscript. 2. Prenez possession du script depuis votre compte utilisateur habituel avec la commande chown. Pour plus d'informations sur chown, voir le chapitre 4. Confirmez les permissions appropriées dans le fichier nouvellement copié avec la commande ls l ~/testscript. Les scripts doivent être exécutables. 3. Ouvrez le scénario. Considérez la première ligne. Il est acceptable de le laisser tel quel ou changezle en #!/bin/bash. 4. Considérez la deuxième ligne. Il lit les noms de fichiers dans le répertoire /var/spool/cups/tmp. Comment le changeriezvous pour lire les fichiers .doc dans votre répertoire personnel local ? Pour l'utilisateur michael, une option est la suivante : pour d dans /home/michael/*.doc
Dans certains cas, un répertoire différent tel que /home/michael/Documents peut être plus approprié. 5. Considérez la boucle if qui suit. L'opérateur d vérifie si le fichier est un répertoire. Une option comme f est plus appropriée, car elle vérifie si le contenu de la variable est un fichier normal. Bien que d'autres options puissent fonctionner, modifiez la ligne notée pour lire
si [ f "$d" ]; alors
6. Comme l'objectif est simplement d'identifier les fichiers .doc dans le répertoire local, il est préférable d'envoyer la sortie vers un autre fichier. Une méthode consiste à utiliser la ligne suivante, où le >\> ajoute la sortie à la fin d'un fichier. /bin/ls l "$d" >\> fichiers doc
Machine Translated by Google
Paramètres d'exécution du noyau 9
7. Vous pouvez conserver les lignes restantes ; où le fi termine la boucle if, le done termine la boucle do, et l'exit 0 renvoie un message de réussite : Fi fait
sortie0 8. Enregistrez les modifications. Exécutez le script à partir du répertoire local. Le nom du script étant testscript, la commande suivante exécute son contenu à partir du répertoire local :
$ ./testscript
9. Vérifiez le contenu du fichier docfiles. Si le script a fonctionné, vous trouverez des fichiers .doc existants dans ce répertoire.
OBJECTIF DE CERTIFICATION 12.02
Paramètres d'exécution du noyau Les paramètres d'exécution du noyau, tels que définis dans les objectifs RHCE, se rapportent aux fichiers du répertoire /proc/sys et à la commande sysctl. Le fichier de configuration /etc/sysctl.conf est étroitement lié, car il est utilisé par la commande sysctl pendant le processus de démarrage pour ajouter des paramètres à divers fichiers dans le répertoire /proc/sys. Il est donc approprié de commencer cette section avec un regard sur ce fichier sysctl.conf.
Comment sysctl fonctionne avec /etc/sysctl.conf Le fichier /etc/sysctl.conf a été brièvement décrit au chapitre 1, car il contrôle le transfert IPv4. Pour passer en revue, vous pouvez activer le transfert IPv4 en deux étapes. Tout d'abord, modifiez la directive booléenne suivante pour activer le transfert IPv4 dans la configuration : net.ipv4.ip_forward = 1
Ensuite, faites relire le fichier de configuration par le système avec la commande suivante : # sysctlp
Machine Translated by Google
10 Chapitre 12 : Tâches administratives RHCE
Examinons ce processus un peu plus en détail. Tout d'abord, les paramètres d'exécution du noyau sont documentés dans divers fichiers du répertoire /proc/sys. Ajoutez la variable net.ipv4.ip_forward à ce répertoire. Cela est interprété comme le fichier ip_forward, dans le sousrépertoire net/ipv4/. En d'autres termes, le transfert IPv4 est documenté dans le fichier ip_forward, dans le répertoire /proc/sys/net/ipv4. Comme ce fichier contient soit un 0 soit un 1, il s'agit d'une variable booléenne. Donc la valeur 1 pour la variable net.ipv4.ip_forward active le transfert IPv4. Et si vous souhaitez ajouter le transfert IPv6 ? Bien que cela ne soit pas configuré dans le fichier /etc/ sysctl.conf, c'est une fonctionnalité que vous pouvez ajouter. Le transfert IPv6 peut être défini dans un fichier nommé forwarding, dans le répertoire /proc/sys/net/ipv6/conf/all. En d'autres termes, pour définir le transfert IPv6 au redémarrage, vous devez inclure la directive suivante dans /etc/sysctl.conf :
net.ipv6.conf.all.forwarding=1 Des directives similaires fonctionneraient pour d'autres paramètres associés aux fichiers du répertoire / proc/sys. Regardez les directives icmp_* dans le répertoire /proc/sys/net/ipv4. Certains d'entre vous reconnaissent peutêtre que le protocole ICMP (Internet Control Message Protocol) est le plus souvent associé à la commande ping. En fait, une commande ping est une demande d'écho. Ainsi, icmp_echo_ignore_all et icmp_echo_ignore_broadcasts se rapportent à une commande ping directe, ainsi qu'à une commande ping associée à l'adresse de diffusion. En d'autres termes, si vous ajoutez les directives suivantes au fichier /etc/sysctl.conf :
net.ipv4.icmp_echo_ignore_all = 1 net.ipv4.icmp_echo_ignore_broadcasts = 1 le système local ne répondra pas à une commande ping directe, ni ne répondra à une demande faite par un ping à l'adresse de diffusion du réseau.
Paramètres dans le fichier /etc/sysctl.conf Les paramètres du fichier /etc/sysctl.conf ne représentent qu'une petite partie de ce qui peut être configuré. Il est juste de supposer que RHEL 6 inclut les options dans ce fichier pour une raison, et ces paramètres sont plus susceptibles d'être traités dans un examen RHCE. Vous avez déjà examiné la première directive pour le transfert IPv4. La directive suivante, si elle est active, s'assure que les paquets provenant d'un réseau externe sont en fait externes :
net.ipv4.conf.default.rp_filter = 1
Machine Translated by Google
Paramètres d'exécution du noyau 11
La directive suivante est normalement désactivée, pour empêcher les pirates des réseaux extérieurs de router les données via des tiers. Un tel routage est une tactique courante dans les attaques, car il peut aider à masquer l'identité de l'attaquant.
net.ipv4.conf.default.accept_source_route = 0 Également connue sous le nom de clé sysrq magique du noyau, les développeurs peuvent activer cette directive à des fins de développement. En règle générale, vous devez conserver le paramètre suivant :
noyau.sysrq = 0 En cas de plantage du noyau Linux, cette option inclut le numéro PID avec le fichier de vidage du noyau du noyau pour aider à identifier le coupable :
noyau.core_uses_pid = 1 Une autre méthode standard utilisée par les pirates pour surcharger un système est une inondation de paquets SYN. C'est similaire au soidisant "ping de la mort". Le paramètre suivant régit leur utilisation :
net.ipv4.tcp_syncookies = 1 Un pont est un terme plus ancien désignant un commutateur capable de réguler le trafic au sein d'un même réseau. Les directives suivantes désactivent l'utilisation des commandes iptables, ip6tables et arptables indiquées sur ces ponts.
net.bridge.bridgenfcallip6tables = 0 net.bridge.bridgenf calliptables = 0 net.bridge.bridgenfcallarptables = 0
De tels ponts concernent la virtualisation sur des systèmes hôtes physiques ; ils ne s'appliquent pas dans les machines virtuelles basées sur KVM.
EXERCICE 122 Désactiver les réponses à la commande ping Dans cet exercice, vous utiliserez les paramètres du noyau pour désactiver les réponses à la commande ping. Bien que cet exercice puisse être exécuté sur deux systèmes connectés, cet exercice suppose que vous allez configurer le système server1.example.com et tester le résultat du système tester1.example.com.
Machine Translated by Google
12 Chapitre 12 : Tâches administratives RHCE
1. Sur le système server1.example.com, vérifiez le paramètre actuel lié à réponses aux messages ping avec la commande suivante :
# cat /proc/sys/net/ipv4/icmp_echo_ignore_all 2. En supposant que la sortie est un 0, essayez la commande ping localhost. Ce qui se produit? N'oubliez pas d'appuyer sur CTRLC pour quitter le flux de sortie. Si la sortie est 1, passez à l'étape 5. 3. Confirmez le résultat d'un système distant tel que tester1.example.com. Dans certaines situations, vous n'aurez peutêtre pas un accès physique à ce système, alors connectezvous avec la commande ssh appropriée. Depuis le système distant, essayez les commandes ping server1.example.com ou ping 192.168.122.50. 4. Revenez au système server1.example.com. Modifiez le paramètre du noyau décrit à l'étape 1 avec la commande suivante :
# echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all Confirmez en répétant la commande de l'étape 1. Essayez à nouveau la commande ping localhost. Ce qui se produit? 5. Restaurez le paramètre 0 d'origine pour l'option icmp_echo_ignore_all.
OBJECTIF DE CERTIFICATION 12.03
Créer un package RPM Si vous n'avez jamais créé de RPM auparavant, l'objectif de RHCE de « créer un RPM simple qui regroupe un seul fichier » peut sembler un défi de taille. Avec l'aide d'outils relativement nouveaux, c'est plus facile qu'il n'y paraît. Bien que vous n'ayez pas accès à Internet pendant l'examen, vous pouvez télécharger source RPMs pour aider à étudier pour l'examen. Les RPM source, lorsqu'ils sont installés, configurent une structure de sousrépertoires. L'emplacement dépend de l'utilisateur. Si le RPM source est installé par l'utilisateur michael (et oui, les utilisateurs réguliers peuvent désormais charger le code source), les sousrépertoires du RPM source se trouvent dans le répertoire /home/michael/rpmbuild.
Machine Translated by Google
Créer un package RPM 13
En production, il est risqué d'installer et de compiler un RPM source en tant qu'utilisateur administratif root. Des erreurs dans le RPM source pourraient facilement compromettre un système de production.
Le code source décompressé d'un RPM source (SRPM) peut servir de modèle pour celui que vous allez créer. Les outils RHEL 6 sont désormais disponibles pour vous aider à configurer un fichier de spécifications. Ce fichier de spécification peut ensuite être utilisé pour créer un RPM binaire réel que d'autres peuvent utiliser pour installer le fichier unique sur leurs propres systèmes.
RPM sources Sur les systèmes Red Hat, lorsque la licence publique générale GNU (GPL) fait référence au code source, elle fait référence aux RPM source. En fait, Red Hat se conforme à ces licences open source en partie en publiant des RPM sources sur leurs serveurs publics à l'adresse ftp.redhat.com. Le code source comprend les programmes et les fichiers, tels que créés par les développeurs. Le code source peut ensuite être intégré dans les packages binaires utilisés pour l'installation de RHEL 6 et de logiciels supplémentaires une fois l'installation terminée. Dans cette section, vous allez télécharger et installer le RPM de code source associé au serveur vsFTP. Une façon de le faire est d'utiliser la commande lftp décrite au chapitre 2. Pour utiliser cette commande pour vous connecter au serveur FTP Red Hat, exécutez la commande suivante :
$ lftp ftp.redhat.com Cette commande se connecte au serveur FTP public Red Hat de manière anonyme et lance l'invite lftp ftp.redhat.com>. Pour vous connecter au répertoire avec les packages de code source pour le serveur RHEL 6, exécutez la commande suivante à partir du
rapide: lftp ftp.redhat.com> cd /redhat/linux/enterprise/6Server/en/os/SRPMS Les fonctionnalités de complétion de commande fonctionnent à l'invite lftp ; en d'autres termes, si vous n'êtes pas sûr des répertoires disponibles après avoir tapé la commande cd, appuyez simplement sur TAB une ou deux fois. Dans le répertoire indiqué, vous pouvez ensuite télécharger le code source du serveur vsFTP avec la commande suivante (le numéro de version varie selon les mises à jour) :
obtenir vsftpd2.2.26.el6.src.rpm Vous pouvez ensuite exécuter la commande quit pour quitter l'invite lftp et revenir à l'interface de ligne de commande habituelle. Le code source SRPM devrait maintenant être disponible
Machine Translated by Google
14 Chapitre 12 : Tâches administratives RHCE
dans le répertoire local. Même en tant qu'utilisateur régulier, vous pourrez décompresser ce SRPM avec la commande rpm. Par exemple, la commande suivante exécutée à partir de mon compte habituel décompresse ce code source dans les sousrépertoires /home/michael/rpmbuild : $ rpm ivh vsftpd*.src.rpm
La commande n'installe pas le serveur vsFTP, comme elle le ferait avec un package RPM normal. Il décompresse le SRPM dans des sousrépertoires spécifiques.
La structure de répertoire d'une source RPM Les SRPM, une fois installés, sont décompressés. Le code source de ces packages est chargé dans les sousrépertoires rpmbuild/SPECS et rpmbuild/SOURCES. Comme suggéré par les noms, le code source se trouve dans le sousrépertoire SOURCES. La figure 121 illustre la liste des fichiers décompressés à partir du code source vsFTP. La plupart des fichiers du répertoire indiqué sont des correctifs, des mises à jour du code source. Certains de ces fichiers sont des fichiers de configuration à charger dans le répertoire /etc/vsftpd par le paquet binaire. Le code source réel est compressé dans une archive tar compressée par gzip, au format .tar.gz. Notez comment le numéro de version est inclus dans la source
FIGURE 121 Code source dans un rpmbuild/ Sous répertoire SOURCES
Machine Translated by Google
Créer un package RPM 15
archives de codes. De telles archives peuvent être créées et décompressées à l'aide de la commande tar. Le code source peut également être compressé à l'aide de l'algorithme bzip2. Pour créer un RPM, vous allez devoir configurer une archive similaire dans le même sous répertoire rpmbuild/SOURCES. Une fois configuré, vous devrez également créer un fichier . spec, à stocker dans le sousrépertoire rpmbuild/SPECS. Vous pourrez alors compiler ce paquet avec la commande rpmbuild.
Installer et analyser la commande rpmbuild La commande rpmbuild est utilisée pour construire un RPM binaire à partir du code source, tel que configuré avec un fichier .spec. Comme la commande n'est pas disponible par défaut, vous devrez l'installer à partir du package rpmbuild. Vous devez également installer le package rpmdevtools, qui vous sera utile sous peu. Pour accélérer le processus, il est plus efficace d'utiliser les privilèges administratifs pour utiliser la commande yum pour installer tous ces packages, en utilisant les procédures décrites au chapitre 7.
# yum install rpmbuild rpmdevtools
En général, si vous souhaitez plus d'informations sur son fonctionnement, exécutez la commande rpmbuild avec le commutateur v ou vv. La plupart des documentations supposent que la commande rpmbuild utilise un fichier spec dans le répertoire rpmbuild/SPECS. Dans ce cas, vous utiliseriez le commutateur b. Les options avec le commutateur t sont associées à un fichier de spécification inclus dans l'archive de code source réelle au format .tar ou compressé .tar.gz. Compte tenu de la documentation actuelle, il est supposé que vous configurerez un fichier .spec séparé et que vous utiliserez donc l'un des commutateurs b décrits dans le tableau 122.
TABLEAU 122
Commutateurs pour
le rpmbuild Commande
Commutateur Description ba
Génère des packages RPM binaires et source.
bb
Construit le package RPM binaire.
avant JC
Exécute les commandes %prep et %build à partir du fichier .spec.
bi
Exécute les commandes %prep, %build et %install à partir du fichier .spec.
bl
Vérifie l'existence de fichiers cités.
bp
Exécute uniquement l'étape %prep du fichier .spec.
bs
Construit uniquement le package RPM source.
Machine Translated by Google
16 Chapitre 12 : Tâches administratives RHCE
En général, vous appliquerez la commande rpmbulid ba ou rpmbuild bb au fichier . spec du sous répertoire rpmbuild/SPECS.
Utilisez la commande rpmbuild Si vous avez décompressé le RPM source vsFTP décrit précédemment, il y aura un fichier .spec dans le sous répertoire rpmbuild/SPECS. La commande rpmbuild suivante peut être utilisée pour créer à la fois les RPM source et binaire pour le serveur vsFTP, à partir du répertoire personnel d'un utilisateur standard :
$ rpmbulid ba rpmbuild/SPECS/vsftpd.spec Dans de nombreux cas, le processus de création d'un RPM à partir du code source nécessite l'installation de packages de développement. Par exemple, lorsque j'ai exécuté la commande rpmbuild notée sur le système standard server1.example.com, elle a cité le besoin de quatre autres packages :
pamdevel est requis par vsftpd2.2.26.el6.x86_64 libcapdevel est requis par vsftpd2.2.26.el6.x86_64 openssldevel est requis par vsftpd2.2.26.el6. x86_64 tcp_wrappersdevel est requis par vsftpd2.2.26.el6.x86_64 Le package du compilateur GNU C, gcc, est également requis. Avec les dépendances, plusieurs autres packages seront probablement nécessaires sur votre système. Donc, avant que la commande rpmbuild notée ne fonctionne, vous devez installer les packages notés avec une commande comme
# yum install gcc pamdevel libcapdevel openssldevel tcp_wrappersdevel Une fois ces packages de développement et de compilateur associés installés, un l'utilisateur pourra exécuter la commande rpmbuild susmentionnée pour compiler le code source du serveur vsFTP afin de créer un binaire et un RPM source. Une fois le processus de construction terminé, le RPM binaire compilé se trouve dans le sous répertoire rpmbuild/RPMS/x86_64 ; bien sûr, le dernier bit varierait avec l'architecture. Le RPM source collecté se trouve dans le sousrépertoire rpmbuild/SRPMS
Créer un code source personnalisé Avec ce que vous savez maintenant sur le processus de génération du RPM source vsFTP, vous devriez être en mesure de créer un package de code source. Pour les besoins de ce chapitre, j'ai créé un fichier corporate_policies.pdf. Étant donné que le code source intégré à un RPM est configuré comme une archive tar compressée gzip qui sera développée dans un répertoire, il
Machine Translated by Google
Créer un package RPM 17
doit être copié dans un répertoire créé à cet effet. De plus, la commande rpmbuild, avec les fichiers .spec standard, nécessite l'accès à un fichier exécutable nommé configure. Il peut s'agir d'un fichier vide. Pour mon propre compte d'utilisateur, j'ai suivi les étapes suivantes : 1. J'ai copié le fichier corporate_policies.pdf donné dans un fichier nouvellement créé /home/michael/CorPor1.0. Le 1.0 représente le numéro de version du package.
2. J'ai créé un fichier vide nommé configure et lui ai attribué des autorisations exécutables avec les commandes suivantes :
$ cd /home/michael/CorPor1.0 $ touch configure $ chmod u+x configure $ cd /home/ michael
3. J'ai utilisé la commande suivante pour créer un tar compressé gzip approprié archive:
$ tar czvf CorPor1.0.tar.gz CorPor1.0 4. J'ai ensuite copié l'archive dans le sousrépertoire rpmbuild/SOURCES. Si vous suivez un compte régulier, téléchargez un fichier PDF, tel que la documentation RHEL 6 disponible sur http://docs.redhat.com/docs/enUS/Red_Hat_Enterprise_Linux/index.html. Copiez le PDF téléchargé et modifiez ce nom de fichier avec une commande telle que mv en corporate_policies.pdf.
Ce sousrépertoire rpmbuild/SOURCES peut également contenir le code source du serveur vsFTP discuté précédemment. Ne vous préoccupez pas de tous les correctifs et autres fichiers, car l'objectif de RHCE est de créer un RPM avec un seul fichier. Avec un fichier de spécification correctement configuré, le code source de plusieurs packages peut coexister dans ce répertoire.
Un autre paquet de préparation L'étape suivante consiste à créer un fichier de spécifications. Si vous avez regardé le fichier vsftpd.spec dans le sousrépertoire rpmbuild/SPECS, ne vous inquiétez pas trop. Tout d'abord, votre fichier de spécifications n'a pas besoin d'être aussi complexe. Deuxièmement, il n'est pas nécessaire de mémoriser le format d'un fichier .spec, tant que le package rpmdevtools est installé. Cela dépend du package fakeroot, qui prend en charge les privilèges de type root.
Machine Translated by Google
18 Chapitre 12 : Tâches administratives RHCE
Une fois installées, deux commandes du package rpmdevtools présentent un intérêt particulier. La commande rpmdevsetuptree crée le sousrépertoire rpmbuild/, avec les sousrépertoires appropriés. La commande rpmdevnewspec crée un nouveau paquet. spec dans le répertoire local, avec un modèle qui peut être utilisé pour créer un RPM. Ainsi, si l'examen RHCE vous demande de créer un RPM, vous devez exécuter la commande rpmdevsetuptree pour créer la structure de répertoires, puis copier l'archive compressée gzip dans le sous répertoire rpmbuild/SOURCES. Vous pouvez maintenant créer un fichier de spécifications pour traiter cette archive.
Créez votre propre fichier de spécifications Vous pouvez créer un fichier newpackage.spec avec la commande rpmdevnewspec. À partir de ce modèle, vous pouvez configurer un fichier de spécification capable de traiter l'archive CorPor.tar.gz dans un package RPM. Le fichier illustré à la Figure 122 demande essentiellement toutes les informations nécessaires. Comparez ce fichier au contenu du fichier vsftpd.spec décrit précédemment pour obtenir des conseils. Pour cette section, faites une copie de ce fichier sous le nom de corpor.spec dans le sousrépertoire rpmbuild/SPECS. Seule l'extension de fichier .spec compte ; il pourrait être nommé mytest.spec. Examinez le fichier .spec ligne par ligne. La première ligne est le nom du fichier de spécifications. Bien que le nom donné n'ait pas d'importance, il devient le nom du package RPM : Nom : CorPor
Le numéro de version est également ajouté au RPM ; 1.0 est standard : Version : 1.0
Le numéro de version est ajouté par la suite ; cette valeur par défaut ajoute un 1.el6 pour RHEL 6 : Libération : 1 % (?dist)
Bien que le résumé doive décrire le contenu du paquet, il n'affecte pas comment le RPM est créé. Résumé : Un package avec un seul fichier
Le groupe est lié aux groupes de packages répertoriés dans le fichier XML décrit au chapitre 7. Pour configurer un package dans le cadre d'un groupe de packages, vous devez affecter un groupe de packages réel ; par exemple, le serveur vsFTP fait partie du groupe de packages System Environment /Daemons. Mais pour nos besoins, le groupe de packages attribué ne matière. Groupe : Divers
Machine Translated by Google
Créer un package RPM 19
FIGURE 122
Un nouveau paquet. fichier de spécifications
Les logiciels open source peuvent être publiés sous différentes licences. La plupart des logiciels RHEL 6 sont publiés sous licence GPL. Licence : McGrawHill
Vous pouvez soit commenter l'URL, soit ajouter une adresse appropriée, comme illustré ici : URL : http://www.mheducation.com/
Le Source0 est peutêtre le plus important. Il spécifie le nom du gzip compressé tar, soit à partir d'une URL distante, soit à partir du rpmbuild/SOURCES local
Machine Translated by Google
20 Chapitre 12 : Tâches administratives RHCE
sousrépertoire. Bien que le fichier vsftpd.spec inclue les directives Source1, Source2 et ultérieures, il n'est pas obligatoire. Tout ce qui est nécessaire est le nom complet du fichier d'archive compressé. Source0 : CorPor1.0.tar.gz
La plupart des packages n'incluent pas de directive BuildArch, car la plupart des packages sont construits selon l'architecture du système local. Cependant, pour les packages censés être indépendants de l'architecture, il convient d'inclure la ligne BuildArch suivante :
BuildArch : noarch
Si vous oubliez, ne vous inquiétez pas. La ligne BuildArch n'est pas requise à moins que l'on vous dise de configurer un seul package RPM qui peut être installé sur des systèmes avec toutes les architectures. Les lignes qui suivent sont des dépendances. La ligne BuildRequires spécifie les packages qui doit être installé avant que les packages RPM et SRPM puissent être construits avec ce fichier de spécification. Consultez le fichier vsftpd.spec pour cette ligne. Il y a en fait quatre lignes BuildRequires dans ce fichier, qui spécifient les packages de développement répertoriés comme dépendances lorsque vous avez appliqué la commande rpmbuild ba à ce fichier vsftpd.spec. En revanche, la ligne Requires spécifierait les dépendances réelles. Pour un package RPM à partir d'un seul fichier, en particulier celui lié à la documentation, il n'y a généralement aucune raison d'avoir des dépendances BuildRequires ou Requires. Dans ce cas, vous commenteriez ces lignes :
#BuildRequires #A besoin
La directive %description qui suit vous permet d'inclure un bref paragraphe de description du package. Un mot suffirait. %description Il s'agit d'un package avec un fichier, associé aux politiques d'entreprise.
La section %prep est associée à toutes les commandes requises pour préparer le code source. la ligne qui suit est un peu étrange. Même s'il commence par un %, c'est une commande. Le %setup q est une macro de commande qui décompresse l'archive tar compressée dans le répertoire rpmbuild/SOURCES.
%prep %setup q
Machine Translated by Google
Créer un package RPM 21
La section %build qui suit inclut des commandes qui configurent et compilent le code source. Il pointe normalement vers des scripts dans le code source, généralement configurés avec des noms de fichiers de script tels que configure et make. Avec un RPM à un seul fichier, il n'y a rien à configurer ou à compiler, il est donc approprié de commenter ou d'effacer ces options.
%construire
#%configure #make %{?_smp_mflags} La section %install inclut des commandes qui ajoutent réellement les fichiers du package aux répertoires notés. Il commence normalement par la commande suivante pour supprimer l'arborescence de répertoires associée à toutes les versions précédentes de ce package :
%installer rm rf $RPM_BUILD_ROOT Comme indiqué précédemment, la commande make est normalement utilisée pour compiler le code source réel. À moins que vous n'ayez inclus un script, une commande ou un exécutable dans le code source, ce n'est pas non plus nécessaire. Pour les packages RPM avec un seul fichier, vous devriez en fait effacer ou commenter cette ligne :
#make install DESTDIR=$RPM_BUILD_ROOT Cependant, cela signifie que vous devez configurer un répertoire dans lequel le package spécifié est réellement installé. J'ai d'ailleurs trouvé un excellent modèle à cet effet dans un package de fontes pour une langue d'Ethiopie, dans les abyssinicafonts. fichier de spécifications. L'extrait clé est illustré à la Figure 123. Les directives de la Figure 123 offrent également une perspective légèrement différente. Par exemple, %{buildroot} est équivalent à $RPM_BUILD_ROOT. Comme il n'y a rien à compiler dans un groupe de polices, il n'y a pas de commande « make » dans ce fichier. J'ai un peu modifié ces options. La directive install d crée un répertoire, avec (m) (autorisations octales de style chmod) de 0755. Le système est construit sur une racine hypothétique à définir, dans le sousrépertoire /opt/CorPor1.0.
FIGURE 123
Un modèle RPM pour le placement de fichiers
Machine Translated by Google
22 Chapitre 12 : Tâches administratives RHCE
Le fichier corporate_policies.pdf est alors installé, avec les permissions 0644, dans le répertoire qui vient d'être créé.
install d m 0755 $RPM_BUILD_ROOT/opt/CorPor1.0 install m 0644 corporate_policies.pdf $RPM_BUILD_ROOT/opt/CorPor1.0/corporate_policies.pdf
Une fois le code source compilé, il est nettoyé avec la directive suivante : %faire le ménage
rm rf $RPM_BUILD_ROOT Les emplacements des fichiers et des répertoires peuvent être confirmés :
%files %dir /opt/CorPor1.0 %defattr(,root,root,) /opt/ CorPor1.0/corporate_policies.pdf Si vous le souhaitez, vous pouvez configurer une propriété différente. Par exemple, si l'utilisateur et le groupe michael ont été remplacés par root dans la directive %defattr(,root,root,), le fichier corporate_policies.pdf qui suit appartiendrait à l'utilisateur et au groupe michael.
Une fois les modifications effectuées, vous pouvez procéder à la construction d'un RPM.
Construisez votre propre RPM Avec les packages installés jusqu'à présent dans ce chapitre, la commande rpmbuild ba peut être exécutée par un utilisateur normal pour créer des packages RPM binaires et source. Pour le fichier corpor.spec que nous venons de décrire, l'utilisateur michael, à partir de son répertoire personnel, pourrait construire le RPM à partir des directives spécifiées dans ce fichier avec la commande suivante :
$ rpmbuld ba rpmbuild/SPECS/corpor.spec En cas de succès, le dernier message doit indiquer le succès, comme suit :
+ sortie 0 En cas de problème, le dernier message peut fournir un indice. Par exemple, le message suivant est simple, associé à une erreur typographique dans un fichier. Il montre également l'emplacement de la variable $RPM_BUILD_ROOT dans le fichier .spec. Erreurs de compilation RPM :
Fichier introuvable : /home/michael/rpmbuild/BUILDROOT/CorPor1.01.el6.x86_64/ opt/CorPor1.0/corporate_policies.pdf
Machine Translated by Google
Créer un package RPM 23
Certains messages d'erreur sont encore plus simples. Quand j'ai évité une entrée dans le champ Licence, la commande rpmbuild a renvoyé le message suivant :
erreur : le champ de licence doit être présent dans le package : (package principal) D'autres messages d'erreur peuvent sembler plus énigmatiques, mais ils pointent vers un fichier qui génère en fait le RPM :
make : *** Aucune cible spécifiée et aucun makefile trouvé. Arrêt. |erreur : mauvais état de sortie de /var/tmp/rpmtmp.tF080m (%build) L'extension du fichier rpmtmp varie. Pour plus d'informations, examinez le contenu du dernier fichier rpmtmp.* dans le répertoire /var/tmp. Parfois, le message d'erreur inclut un numéro de ligne. Dans certains cas, la commande rpmbuild ba vv fournit des informations très détaillées (d'où le commutateur vv).
Les RPM intégrés Une fois construit, vous pourrez trouver les RPM dans la même arborescence de sousrépertoires rpmbuild/. Avec la commande rpmbuild ba décrite précédemment, les RPM source et binaire sont construits dans cette arborescence. Les RPM sources se trouvent dans le sousrépertoire rpmbuild/SRPMS ; les RPM binaires peuvent être trouvés dans un sousrépertoire comme rpmbuild/RPMS/noarch ou rpmbuild/RPMS/x86_64. Le répertoire réel classe les RPM construits de manière indépendante de l'architecture ou pour les systèmes dotés de processeurs 64 bits. Pour voir les différences, j'ai construit le RPM CorPor avec et sans la directive BuildArch: noarch dans le fichier .spec. Les packages résultants sont
rpmbuild/RPMS/noarch/CorPor1.01.el6.noarch.rpm rpmbuild/RPMS/ x86_64/CorPor1.01.el6.x86_64.rpm Bien que le package fakeroot ait permis d'exécuter la commande rpmbuild en tant qu'utilisateur normal, l'installation du nouveau package nécessite toujours des privilèges administratifs. Une fois installé, il a chargé le fichier corporate_policies.pdf noté dans le répertoire /opt/CorPor1.0. Et une commande rpm qi appliquée à ce package a conduit à la sortie illustrée à la figure 124. Comparez cette sortie aux informations ajoutées au fichier corpor.spec décrit plus tôt. Cela devrait vous aider à mieux comprendre le but de chaque entrée dans le fichier .spec.
Machine Translated by Google
24 Chapitre 12 : Tâches administratives RHCE
FIGURE 124 Informations sur le dossier unique Paquet RPM
OBJECTIF DE CERTIFICATION 12.04
Options réseau spéciales Cette section concerne trois options de réseau différentes, chacune associée à un objectif pour l'examen RHCE. Le premier est lié au routage, qui nécessite une compréhension des tables de routage, de la commande route et des outils et fichiers de configuration associés. La seconde concerne la configuration d'un système en tant que client Kerberos. Ce n'est pas la première fois qu'une configuration côté client uniquement est requise pour les examens Red Hat, car la version précédente de l'examen RHCE ne nécessitait que la configuration d'un système en tant que service d'informations réseau (NIS) ou protocole LDAP (Lightweight Directory Access Protocol). client. Sachez simplement qu'un client Kerberos ne fonctionne que si les clients NTP (Network Time Protocol) des deux systèmes sont configurés pour se synchroniser avec le même serveur NTP. Pour la troisième option, vous devez savoir comment configurer un client iSCSI, qui peut se connecter au stockage via une connexion réseau standard. Juste pour être clair, comme un client iSCSI ne nécessite pas de matériel SCSI, il n'est pas nécessaire de rechercher ce type de support de stockage de serveur désormais plus ancien.
Configurer des routes IP spéciales Comme décrit dans les objectifs RHCE, vous devez savoir comment « router le trafic IP et créer des routes statiques ». C'est vraiment deux tâches. Tout d'abord, la configuration d'une route par défaut vers un réseau extérieur fait partie intégrante de la configuration réseau. Mais il y a aussi le
Machine Translated by Google
Options réseau spéciales 25
tâche connexe, lorsqu'un système dispose de deux périphériques réseau ou plus, de configuration d'un itinéraire spécial, à l'aide d'un périphérique autre que celui par défaut, vers un réseau spécifique.
Configurer une route par défaut La route par défaut est le chemin emprunté par un message réseau, lorsque l'adresse de destination se trouve sur un réseau extérieur. Lorsqu'un serveur DHCP (Dynamic Host Configuration Protocol) fonctionne et est configuré pour attribuer des adresses de passerelle, une route par défaut est attribuée avec l'adresse IP dynamique. C'est normalement évident dans la sortie des commandes route n et netstat nr discutées au chapitre 5. Un exemple d'une telle sortie pour un système qui utilise un serveur DHCP est montré ici :
Destination
Passerelle
0.0.0.0
masque général
255.255.255.0U
192.168.122.0 0.0.0.0 192.168.122.1 0.0.0.0
Indicateurs Référence métrique Utiliser Iface 0 0 0 eth0 UG
0
0
0 eth0
Pour rappel, l'adresse IPv4 par défaut est 0.0.0.0, donc la route par défaut passe par l'adresse de passerelle 192.168.122.1. De la même manière, la route par défaut d'un système réseau configuré de manière statique est configurée avec la directive GATEWAY dans son fichier de configuration. Ces fichiers de configuration sont stockés dans le répertoire / etc/sysconfig/networkscripts, avec des noms comme ifcfgeth0.
Mais il existe des situations, telles qu'une déconnexion temporaire sur un câble réseau, où la route par défaut n'est pas donnée par un serveur DHCP. Le serveur DHCP doit peutêtre être remplacé et vous devrez configurer des informations d'adresse IP statique. Dans de tels cas, la sortie de la commande route n peut ressembler davantage à ce qui suit :
Destination 192.168.122.0 0.0.0.0
Passerelle
masque général
255.255.255.0U
Indicateurs Référence métrique Utiliser Iface 0 0 0 eth0
En d'autres termes, puisque l'adresse IP par défaut de 0.0.0.0 est manquante, il n'y a pas de itinéraire. Cette route peut être ajoutée temporairement avec la commande route add. Par exemple, la commande suivante restaurerait la route par défaut indiquée précédemment :
# route ajouter par défaut gw 192.168.122.1 Si plusieurs périphériques réseau existent sur le système local, vous pouvez le spécifier ; juste pour variété, la commande suivante spécifie la deuxième carte Ethernet, eth1 :
# route ajouter par défaut gw 192.168.122.1 dev eth1 Pour vous assurer que la route par défaut survit à un redémarrage, vous devez vous assurer que le système configure cette adresse IP de passerelle par défaut dans le cadre d'une configuration statique ou que le serveur DHCP utilisé pour le réseau peut attribuer cette adresse IP de passerelle. Pour passer en revue, la Figure 125 reflète la façon dont l'adresse IPv4 de la passerelle par défaut est configurée
Machine Translated by Google
26 Chapitre 12 : Tâches administratives RHCE
FIGURE 125 Un réseau statique configuration par défaut passerelle
avec l'outil de configuration réseau. De plus, vous devrez vous assurer que la route par défaut ajoutée survit à un redémarrage, soit par une modification directe du fichier de configuration ifcfg ethx, soit indirectement avec l'outil de configuration réseau. Certains systèmes peuvent avoir plusieurs périphériques réseau connectés au même réseau. Dans ce cas, vous devrez peutêtre configurer une route spéciale. Comme vous pouvez le voir, les itinéraires spéciaux ne sont pas possibles avec l'outil de configuration réseau basé sur la console.
Configurer un itinéraire spécial Une façon de configurer un itinéraire spécial consiste à utiliser l'outil Connexions réseau. Comme indiqué au chapitre 5, vous pouvez le démarrer à partir d'une console graphique avec la commande nmconnectioneditor. Sélectionnez un périphérique réseau câblé ou sans fil existant, puis cliquez sur Modifier. Sous l'onglet IPv4 ou IPv6, il y a un bouton Routes pour les routes spéciales. Cliquez dessus pour voir la fenêtre illustrée à la Figure 126. L'outil Connexions réseau ne fonctionne que si le service NetworkManager dans le répertoire /etc/ init.d est actif.
Machine Translated by Google
Options réseau spéciales 27
FIGURE 126 Une route spéciale pour un périphérique réseau spécifique
Lorsqu'il est appliqué, il écrit un fichier routeeth0 dans le répertoire /etc/sysconfig/ networkscripts. Voici le contenu complet de ce fichier : ADRESSE0=192.168.0.0 NETMASK0=255.255.255.0 PASSERELLE0=192.168.122.1
Lorsque le service réseau est redémarré, il est appliqué à la table de routage. Basé sur la table de routage précédemment configurée, voici le résultat : Passerelle de destination 192.168.0.0 192.168.122.1 255.255.255.0 UG
masque général
192.168.122.0 0.0.0.0
255.255.255.0U
0.0.0.0
192.168.122.1 0.0.0.0
Indicateurs Référence métrique Utiliser 0 0 Iface 0 eth0 1 0 0 eth0 UG 0 0 eth0 0
Machine Translated by Google
28 Chapitre 12 : Tâches administratives RHCE
Configurer un client Kerberos Dans le cadre d'un examen, ainsi que sur le lieu de travail, il est presque toujours préférable de garder les solutions aussi simples que possible. C'est là que l'outil de configuration d'authentification peut vous aider. Pour voir ce que fait cet outil pour vous aider à configurer un client Kerberos, vous pouvez sauvegarder les fichiers dans le répertoire / etc/sssd, ainsi que le fichier de configuration /etc/nsswitch.conf. Il est lié au démon des services de sécurité du système, contrôlé par le script /etc/init.d/sssd. Si vous avez précédemment configuré un système pour s'authentifier via un serveur LDAP au chapitre 8, le service sssd est peutêtre déjà en cours d'exécution.
Comme il n'y a pas d'objectif RHCE lié à la configuration d'un serveur Kerberos, ce processus ne sera pas traité dans ce livre. Ce que vous devez savoir, c'est que les serveurs Kerberos configurés sur RHEL 6 n'ont pas leurs propres bases de données d'authentification. Ainsi, pour une connexion client valide à un serveur Kerberos, vous aurez également besoin d'une connexion à une base de données d'authentification réseau telle que LDAP.
Si vous configurez un serveur Kerberos, assurezvous que le port 88 est ouvert dans les parefeux concernés.
Qu'estce que Kerberos Kerberos est un protocole d'authentification réseau développé à l'origine au Massachusetts Institute of Technology (MIT) qui prend en charge l'identification sécurisée des systèmes en réseau. Comme il fonctionne avec les systèmes, un protocole distinct tel que LDAP est requis pour l'authentification basée sur l'utilisateur.
Deux systèmes configurés avec et confirmés par Kerberos peuvent communiquer au format crypté, avec une clé symétrique. Cette clé est accordée par un centre de distribution de clés (KDC), qui se compose d'un serveur d'authentification (AS) et d'un serveur d'octroi de tickets (TGS). Lorsque l'authentification est confirmée, le client Kerberos obtient un ticket valide pour une durée limitée, généralement huit heures.
Compte tenu de l'importance du temps pour Kerberos, cela peut ne pas fonctionner à moins d'être configuré les clients et les serveurs utilisent également les services NTP, comme indiqué aux chapitres 5 et 17.
L'outil de configuration d'authentification graphique Une façon d'ouvrir la version GUI de l'outil de configuration d'authentification consiste à utiliser la commande authconfiggtk. Cela devrait ouvrir l'outil de configuration d'authentification avec les deux onglets illustrés à la figure 127. Bien que d'autres bases de données d'authentification soient prises en charge, l'accent est mis sur LDAP, d'autant plus que LDAP est l'option d'authentification du client réseau sélectionnée pour l'examen RHCSA. Les options de la moitié LDAP de l'onglet Identité et authentification ont été présentées au chapitre 8.
Machine Translated by Google
Options réseau spéciales 29
FIGURE 127 Configurez un Basé sur Kerberos client avec le graphique Authentification Outil de paramétrage.
Cette section se concentre sur la seconde moitié de l'onglet. Pour un client basé sur Kerberos, vous conserverez le mot de passe Kerberos comme méthode d'authentification. Les autres options sont ■ Domaine Par convention, le domaine Kerberos est identique au nom de domaine du réseau, en lettres majuscules. Il est nécessaire si vous configurez la prise en charge DNS pour Kerberos. ■ KDC Le KDC est le centre de distribution de clés Kerberos. L'entrée ici doit correspondre au nom de domaine complet (FQDN) ou à l'adresse IP du serveur Kerberos réel.
Machine Translated by Google
30 Chapitre 12 : Tâches administratives RHCE
■ Serveurs d'administration Le serveur d'administration associé au KDC se trouve souvent sur le même système. Sur le serveur d'administration Kerberos, le démon kadmind est en cours d'exécution. ■ Utiliser DNS pour résoudre les hôtes en domaines Lorsqu'un serveur DNS approuvé existe pour le réseau local, vous pouvez autoriser le système local à utiliser un serveur DNS pour trouver le domaine. Si cette option est activée, la zone de texte Realm sera vide dehors.
■ Utiliser DNS pour localiser les KDC pour les domaines Lorsqu'un serveur DNS approuvé existe pour le réseau local, vous pouvez autoriser le système local à utiliser un serveur DNS pour trouver le KDC et le serveur d'administration. Si cette option est activée, les zones de texte KDC et Admin Servers seront masquées. Pour les besoins de cette section, acceptez les options par défaut comme illustré à la Figure 127. Cliquez sur Appliquer. Après quelques instants, la fenêtre de configuration de l'authentification se fermera et des modifications seront apportées aux fichiers de configuration susmentionnés. De plus, le service sssd sera démarré.
L'outil de configuration d'authentification de la console L'une des faiblesses de la version console de l'outil de configuration d'authentification est peutêtre la possibilité de configurer un système en tant que client Kerberos sans connexion à une base de données d'authentification réseau. Si vous utilisez l'outil de console, gardez à l'esprit la nécessité d'une base de données d'authentification utilisateur réelle pour aller avec Kerberos.
Pour démarrer la version en mode texte de l'outil de configuration d'authentification, exécutez la commande authconfig tui. Comme le montre la figure 128, vous devrez activer LDAP au moins pour l'authentification.
Après avoir sélectionné Suivant, l'outil vous demande des informations sur les paramètres LDAP, comme indiqué au chapitre 8. Après cet écran, vous verrez l'écran Paramètres Kerberos illustré à la Figure 129. Les options par défaut présentées ici sont les mêmes que celles présentées dans la version graphique de l'outil de la Figure 127.
Vous devrez peutêtre également configurer les modifications des fichiers de configuration, décrites ciaprès.
Modifications des fichiers de configuration Plusieurs modifications sont apportées aux fichiers de configuration locaux, en particulier /etc/nsswitch.conf et /etc/sssd/sssd.conf, en fonction de la configuration d'un client Kerberos.
Machine Translated by Google
Options réseau spéciales 31
FIGURE 128 Configurez un Basé sur Kerberos client avec la console Authentification Outil de paramétrage.
FIGURE 129
Spécifiez les paramètres du client Kerberos.
Machine Translated by Google
32 Chapitre 12 : Tâches administratives RHCE
Tout d'abord, regardez les modifications apportées au fichier /etc/nsswitch.conf, où le paramètre sss est ajouté aux fichiers d'authentification affichés ici : passwd : fichiers sss shadow : fichiers sss fichiers sss groupe:
En d'autres termes, lorsque le système local recherche des noms d'utilisateur et des mots de passe, les fichiers de la suite de mots de passe cachés locaux sont vérifiés. Si le nom d'utilisateur n'y est pas trouvé, le contrôle est transféré au démon sssd décrit précédemment. Ces fichiers sont configurés dans le répertoire /etc/sssd. Les modifications apportées à la configuration du démon sssd sont ajoutées à la fin de /etc/sssd/ sssd. fichier conf. Les directives ajoutées sont illustrées à la Figure 1210 et expliquées au Tableau 123. Les directives sont répertoriées dans l'ordre dans lequel elles apparaissent dans la figure.
Se connecter au stockage iSCSI distant L'objectif RHCE pertinent est de « configurer un système en tant qu'initiateur iSCSI qui monte de manière persistante une cible iSCSI ». L'initiateur iSCSI est un client. La cible iSCSI est le stockage partagé sur le serveur, qui communique avec le client sur le port 3260. Une fois le client configuré, vous aurez accès à la cible iSCSI ; cette cible ressemblera à un autre disque dur. Bien sûr, la réponse sera probablement plus lente, mais cela dépend de la vitesse et du trafic sur ce réseau. Pour configurer un client iSCSI, vous aurez besoin des packages iscsiinitiatorutils, ainsi que toutes dépendances. Ensuite, vous utiliserez la commande iscsiadm pour découvrir les cibles iSCSI disponibles. Une méthode consiste à utiliser la commande suivante : # iscsiadm m discoverydb t st p 192.168.122.1 D FIGURE 1210
Configuration Kerberos dans /etc/sssd/sssd.conf
Machine Translated by Google
Options réseau spéciales 33
TABLEAU 123
Directif
Description
Basé sur Kerberos
auth_provider
Défini sur krb5 pour l'authentification Kerberos.
Directives en
cache_credentials
Stocke les informations d'authentification localement si défini sur true.
/etc/sssd/sssd.conf
ldap_id_use_start_tls Requiert Transport Layer Security (TLS) pour chiffrer les connexions au serveur LDAP, si défini sur true. debug_level
Configure le moment où les messages sont enregistrés ; peut être défini entre 0 pour limiter la journalisation aux messages critiques et 10 pour plus d'informations.
krb5_kpasswd
Peut spécifier le nom de domaine complet du serveur applicable.
ldap_search_base
Spécifie les composants de domaine du serveur LDAP.
krb5_realm
Notez que le nom du domaine Kerberos doit être en lettres majuscules.
chpass_provider
Spécifie le fournisseur du mot de passe Kerberos.
id_provider ldap_uri
Configure le fournisseur d'identité pour le domaine, généralement ldap. Inclut l'URI (Uniform Resource Identifier) pour le LDAP serveur.
krb5_kdcip
Note les adresses IP ou FQDN des serveurs Kerberos ; plusieurs serveurs peuvent être inclus.
ldap_tls_cacertdir
Spécifie le répertoire avec un certificat sécurisé pour le serveur LDAP.
Pour interpréter, cette commande iscsiadm interroge les cibles iSCSI. Il fonctionne en découverte mode de base de données (discoverydb) (m), où le type de découverte (t) demande que les serveurs iSCSI envoient réellement les cibles disponibles (sendtargets ou st), avec un portail (p) de l'adresse IP notée, à découvrir (D ) stockage partagé. En cas de succès, vous verrez une sortie semblable à la suivante :
192.168.122.1:3260,1 iqn.201102.com.exemple :pour.tous Vous devriez alors pouvoir démarrer le service iSCSI avec une commande telle que
# /etc/init.d/iscsi start En cas de succès, vous pourrez passer en revue le stockage partagé iSCSI disponible, avec le Commande d'état /etc/init.d/iscsi. La sortie doit être similaire à celle illustrée à la Figure 1211.
Machine Translated by Google
34 Chapitre 12 : Tâches administratives RHCE
FIGURE 1211
iSCSI découvert stockage
Pour configurer un client iSCSI,
ouvert sur ce serveur, le rendant accessible avec la commande iscsiadm décrite dans vous aurez besoin d'accéder à une cible iSCSI, agissant en tant que serveur. Normalement, le port 3260 sera
ce chapitre.
Vous devriez alors pouvoir gérer le stockage partagé comme s'il s'agissait d'un nouveau disque dur sur le système local. Le fichier de périphérique du disque dur apparaîtra dans le fichier /var/log/ messages avec des informations telles que les suivantes, qui pointent vers le fichier de périphérique /dev/sg3.
noyau serveur1 : scsi 7:0:0:0 : scsi générique sg3 type 12 attaché
Machine Translated by Google
Options réseau spéciales 35
Vous devriez alors pouvoir créer des partitions et plus sur le nouveau lecteur /dev/sg3 comme s'il s'agissait d'un disque local, selon les techniques décrites au chapitre 6. Bien sûr, un « montage persistant » tel que décrit dans l'objectif RHCE pertinent nécessite que vous vous assuriez que le service iSCSI démarre la prochaine fois que le système est redémarré avec une commande comme # chkconfig iscsi activé
Pour vous assurer qu'il existe un montage réel, vous devrez peutêtre également configurer une partition réellement montée dans le fichier /etc/fstab. En pratique, le fichier de périphérique réel du lecteur iSCSI peut varier à chaque redémarrage. Par conséquent, ces montages doivent être configurés avec les numéros UUID (Universally Unique Identifier) décrits au chapitre 6. Vous n'avez pas besoin de créer un serveur de stockage cible iSCSI pour l'examen RHCE. Mais comme la configuration d'un serveur iSCSI est relativement simple, vous pouvez envisager d'en créer un à cet effet. Le développeur Red Hat Daniel Berrangé a créé une excellente introduction à la création d'un serveur de stockage iSCSI sur http://berrange.com/tags/tgtadm/.
SCÉNARIO & SOLUTION Vous devez configurer une tâche quotidienne pour sauvegarder les fichiers
Configurez un script dans le répertoire /etc/cron.daily avec les commandes
dans le répertoire /home
de sauvegarde appropriées pour copier les fichiers depuis /home.
On vous a demandé de configurer le transfert IPv6 sur un système
Incluez le paramètre net.ipv6.conf.all.forwarding=1 dans /etc/sysctl.conf et activezle avec la commande sysctl p.
Vous devez configurer le code source d'un RPM à fichier unique Configurer le fichier unique, ainsi qu'un exécutable configurer le script dans un répertoire dédié ; puis configurezle dans une archive tar compressée. Vous devez configurer une route statique spéciale sur le périphérique eth1
Utilisez l'outil Connexions réseau pour configurer cette route spéciale, en fonction de l'adresse réseau, du masque de sousréseau et de l'adresse IP de la passerelle souhaitée.
Vous devez configurer un système en tant que client Kerberos
Utilisez l'outil de configuration d'authentification GUI ; le domaine doit être la liste en majuscules du domaine. Vous aurez également besoin du FQDN pour les serveurs d'administration KDC et Kerberos (qui peuvent être identiques).
Vous devez configurer un initiateur iSCSI
Installez le package iscsiinitiatorutils, utilisez la commande iscsiadm pour découvrir les cibles iSCSI disponibles et assurezvous que le service iscsi est actif au redémarrage.
Machine Translated by Google
36 Chapitre 12 : Tâches administratives RHCE
RÉSUMÉ DES CERTIFICATIONS Les administrateurs Linux doivent configurer des scripts régulièrement. Des exemples de scripts sont déjà disponibles dans différents répertoires /etc/cron.*. Normalement, les scripts commencent par la ligne #!/bin/bash, qui définit la langue pour le reste du script. Les scripts administratifs peuvent utiliser des commandes bash, ainsi que des opérateurs tels que for, if, do et test. Les paramètres d'exécution du noyau se trouvent dans le répertoire /proc/sys. Mais les modifications apportées à ces fichiers sont temporaires. Pour des modifications plus permanentes, vous devez configurer des options dans le fichier /etc/sysctl.conf. Les modifications apportées à ce fichier peuvent être implémentées avec la commande sysctl p. De nombreuses options standard concernent la mise en réseau. Une nouvelle exigence RHCE consiste à créer un RPM à partir d'un seul fichier. Pour ce faire, vous devez savoir comment configurer une archive de code source. Les packages rpmdevtools et rpmbuild peuvent vous aider. La commande d'arborescence rpmdevsetup peut aider à configurer les répertoires nécessaires. La commande rpmdev newspec peut aider à créer un modèle pour un fichier .spec. La commande rpmbuild peut ensuite être utilisée pour traiter les instructions du fichier spec avec le code source empaqueté dans un SRPM et un paquet RPM qui peuvent être installés sur différents systèmes.
Les objectifs RHCE incluent des exigences pour plusieurs options de réseau spéciales. À l'aide de l'outil Connexions réseau, des routes IP spéciales peuvent être configurées dans un fichier du répertoire / etc/sysconfig/networkscripts. Les clients Kerberos peuvent être configurés dans le fichier /etc/sssd/sssd.conf, référencé via le fichier /etc/nsswitch.conf. Le moyen le plus simple de configurer un client Kerberos consiste peut être à utiliser l'outil de configuration d'authentification GUI.
Machine Translated by Google
Exercice de deux minutes 37
EXERCICE DE DEUX MINUTES Voici quelquesuns des points clés des objectifs de certification du chapitre 12.
Automatiser la maintenance du système Les scripts d'administration standard peuvent fournir un modèle de scripts personnalisés pour automatiser les tâches de maintenance du système. Divers opérateurs de commande dans les scripts incluent do, for, if et test. De nombreux scripts administratifs Linux commencent par #!/bin/bash, une référence au
coque bash.
Paramètres d'exécution du noyau Les paramètres d'exécution du noyau se trouvent dans le répertoire /proc/sys. De nombreux paramètres d'exécution du noyau sont liés aux options réseau telles que
expédition et sécurité. Les paramètres d'exécution du noyau peuvent être configurés de manière permanente à l'aide du fichier /etc/sysctl.conf.
Créer un package RPM Les RPM source disponibles peuvent être utilisés comme modèle pour vous aider à créer vos propres RPM. Les composants du code source RPM se trouvent dans les répertoires personnels des utilisateurs, dans le sousrépertoire rpmbuild/, comme configuré avec la commande rpmdevsetuptree. Le code source réel se trouve dans le sousrépertoire rpmbuild/SOURCES. Les RPM sont construits avec la commande rpmbuild, basée sur un fichier .spec dans le
Sousrépertoire rpmbuild/SPECS. Vous pouvez créer un modèle .spec standard avec la commande rpmdevnewspec. Les RPM construits se trouvent dans les sousrépertoires rpmbuild/SRPMS et rpmbuild/RPMS.
Machine Translated by Google
38 Chapitre 12 : Tâches administratives RHCE
Options réseau spéciales La route réseau par défaut vers un réseau extérieur passe par une passerelle IP adresse.
Des itinéraires spéciaux vers différents réseaux peuvent être configurés via certains périphériques réseau spécifiques.
Pour configurer un client Kerberos, vous devez modifier le fichier /etc/sssd/sssd.conf. Une connexion au client Kerberos nécessite également une connexion à un réseau service d'authentification tel que LDAP.
Pour configurer un client iSCSI, vous avez besoin du package iscsiinitiatorutils, qui peut être utilisé pour se connecter au stockage iSCSI avec la commande iscsiadm. Pour vous assurer que la connexion iSCSI survit à un redémarrage, vous devez activer le service iscsi.
Machine Translated by Google
Autotest 39
AUTOTEST Les questions suivantes vous aideront à mesurer votre compréhension du matériel présenté dans ce chapitre. Comme aucune question à choix multiples n'apparaît dans les examens Red Hat, aucune question à choix multiples n'apparaît dans ce livre. Ces questions testent exclusivement votre compréhension du chapitre. Ce n'est pas grave si vous avez une autre façon d'effectuer une tâche. Obtenir des résultats, et non mémoriser des anecdotes, est ce qui compte pour les examens Red Hat.
Automatiser la maintenance du système 1. Quel numéro de sortie est associé au succès dans un script ? ______________________________________________________________ 2. Quel opérateur signifie "tout sauf" ? ______________________________________________________________
Paramètres d'exécution du noyau 3. Quel est le chemin d'accès complet au fichier associé au paramètre net.ipv4.ip_forward ? ______________________________________________________________
Créer un package RPM 4. Lorsque le code source est installé à partir d'un SRPM par l'utilisateur stephanie dans son répertoire personnel, quel est le chemin d'accès complet au code source réel ? ______________________________________________________________ 5. Quel est le nom du package avec une commande qui peut être utilisée pour créer un fichier spec modèle? ______________________________________________________________ 6. Quel fichier commun est nécessaire dans un répertoire de code source pour traiter le code source standard paquets? Bonus : qu'estce qui devrait être différent dans les autorisations sur ce fichier, par rapport à un fichier normal ? ______________________________________________________________
Machine Translated by Google
40 Chapitre 12 : Tâches administratives RHCE
7. Quelle commande peut être utilisée pour créer juste un RPM régulier à partir du code source, basé sur le test. spec dans le sousrépertoire rpmbuild/SPECS ? Supposons que tout le code source requis se trouve au bon emplacement. ______________________________________________________________ 8. Lorsque l'utilisateur tim construit un RPM normal associé à des systèmes 64 bits, quel est le chemin d'accès complet au répertoire avec ce RPM ? ______________________________________________________________
Options réseau spéciales 9. Quels sont les trois types d'adresses IP associées à une route spéciale ? ___________________________________________________________ 10. Dans quel fichier un client Kerberos estil configuré ? ___________________________________________________________ 11. Quel est le domaine Kerberos standard pour le système server1.example.com ? ___________________________________________________________ 12. Quel script de service doit être exécuté au redémarrage sur une cible iSCSI correctement configurée ? ___________________________________________________________
QUESTIONS DE LABORATOIRE Plusieurs de ces laboratoires impliquent des exercices de configuration. Vous ne devez faire ces exercices que sur des machines de test. Il est supposé que vous exécutez ces exercices sur des machines virtuelles telles que KVM. Red Hat présente ses examens par voie électronique. Pour cette raison, les travaux pratiques de ce chapitre et des chapitres suivants sont disponibles sur le CD qui accompagne le livre, dans le sousrépertoire Chapter12/. Si vous n'avez pas encore configuré RHEL 6 sur un système, reportezvous au chapitre 1 pour les instructions d'installation. Les réponses pour les laboratoires suivent les réponses de l'autotest pour les questions à compléter.
Machine Translated by Google
Réponses à l'autotest 41
RÉPONSES À L'AUTOTEST Automatiser la maintenance du système 1. Le numéro de sortie associé au succès d'un script est 0. Dans un script, l'opérateur qui signifie tout sauf le point d'exclamation (!). (C'est aussi connu comme un "bang" dans le monde de Linux.)
Paramètres d'exécution du système 2. Le chemin d'accès complet au fichier associé au paramètre net.ipv4.ip_forward est /proc/sys/net/ipv4/ ip_forward.
Créer un package RPM 3. Le chemin d'accès complet au code source réel, installé à partir d'un SRPM par l'utilisateur stephanie, est /home/ stephanie/rpmbuild/SOURCES. 4. Le nom du package avec une commande pouvant être utilisée pour créer un modèle de fichier de spécifications est rpmdevnewspec. 5. Le fichier commun requis dans les packages de code source standard est nommé configure. Bonus : ce fichier doit également avoir des autorisations exécutables. 6. La commande qui peut être utilisée pour créer juste un RPM régulier à partir du code source sous le conditions est rpmbuild ba rpmbuild/SPECS/test.spec. 7. Lorsque l'utilisateur tim construit un RPM standard associé à des systèmes 64 bits, le chemin d'accès complet au répertoire avec ce RPM est /home/tim/rpmbuild/RPMS/x86_64.
Options réseau spéciales 8. Les trois types d'adresses IP associées à une route spéciale sont l'adresse réseau, le masque de réseau ou de sousréseau et l'adresse de la passerelle. 9. Sur RHEL 6, les clients Kerberos sont normalement configurés dans le fichier /etc/sssd/sssd.conf. 10. Le domaine Kerberos standard pour le système server1.example.com est EXAMPLE.COM. 11. Le script de service qui doit être actif au redémarrage sur une cible iSCSI correctement configurée est iscsi.
Machine Translated by Google
42 Chapitre 12 : Tâches administratives RHCE
RÉPONSES DE LABORATOIRE
Laboratoire 1
Le succès dans ce laboratoire devrait être simple. Si vous avez exécuté la commande date comme suggéré dans le corps de l'atelier, les fichiers du répertoire /etc doivent être copiés dans le répertoire /backup une minute plus tard. La façon la plus simple de configurer ce script pour qu'il soit exécuté toutes les heures est de le configurer dans le répertoire /etc/cron.hourly. Le script n'a besoin que de deux lignes. Voici un exemple de configuration de ce script :
#/bin/bash # / bin/cp ar /etc /backup Bien sûr, pour que ce script fonctionne, il nécessite des autorisations exécutables. Le nom du fichier n'a pas d'importance, tant qu'il se trouve dans le répertoire /etc/cron.hourly. Pour les besoins de ce laboratoire, j'ai créé un script nommé any.cron dans ce répertoire avec les deux lignes qui viennent d'être affichées. Le nom du script n'a pas d'importance, tant qu'il est enregistré dans le répertoire /etc/cron.hourly. Comme défini dans le script 0hourly du répertoire /etc/cron.d, les scripts horaires sont exécutés une minute après chaque heure. Comme je suis par nature impatient (et que j'ai testé ce fichier le 14 avril), j'ai lancé la commande suivante pour avancer l'horloge à l'heure suivante (11h ) :
# date 04141100 Une minute plus tard, j'ai trouvé le contenu du répertoire /etc dans le répertoire /backup. Étant donné l'importance de l'horloge système pour l'authentification basée sur Kerberos, vous devez restaurer l'heure d'origine.
Laboratoire 2
Si vous avez suivi les instructions de cet atelier, le fichier /etc/sysctl.conf devrait maintenant contenir l'entrée suivante :
net.ipv4.icmp_echo_ignore_all = 1 Cela garantit simplement que le nouveau paramètre survit à un redémarrage. Vous avez peutêtre également défini le fichier associé, /proc/sys/net/ipv4/icmp_echo_ignore_all, sur 1, ou exécuté la commande sysctl p pour implémenter la modification avant le redémarrage du système. Bien sûr, le succès peut être confirmé avec une commande ping à partir des systèmes locaux et distants. Si vous souhaitez restaurer la configuration d'origine, revenez au système server1.example.com, puis supprimez l'option net.ipv4.icmp_echo_ignore_all du fichier /etc/sysctl.conf.
Machine Translated by Google
Autotest 43
Laboratoire 3
En cas de succès, vous aurez un fichier .spec dédié dans le répertoire rpmbuild/SPECS, et au moins un RPM binaire dans un répertoire comme rpmbuild/RPMS/noarch. Oui, vous devrez prendre des privilèges administratifs pour exécuter la commande rpm ; une fois installé, le fichier vsftpd.conf doit être installé dans le répertoire /opt/sampleftp. Si cela ne fonctionne pas, vous devrez peutêtre vous reporter au corps du chapitre pour plus d'informations. Pour résumer, pensez à effectuer les étapes suivantes : 1. Configurez une archive compressée pour le répertoire avec le fichier vsftpd.conf. 2. Installez les packages rpmbuild, rpmdevtools et gcc, ainsi que les dépendances affichées exécutant la commande rpmbuild ba. 3. Utilisez la commande rpmdevsetuptree pour configurer une arborescence de répertoires afin de créer le nouveau RPM. 4. Utilisez la commande rpmdevnewspec pour configurer un fichier newpackage.spec afin de traiter la source RPM code. 5. Dans le fichier .spec, assurezvous de renseigner le nom, la version, le numéro de version, le résumé, le groupe, la licence et une description. Vous devez commenter les options BuildRequires et Requires, car il n'y a pas de dépendances pour ce fichier RPM. 6. Assurezvous de configurer les directives %install à la fin du fichier ; par exemple, ce qui suit garantirait que le RPM binaire, une fois installé, configure le fichier dans le répertoire spécifié.
install d m 0755 $RPM_BUILD_ROOT/opt/sampleftp install m 0644 vsftpd.conf $RPM_BUILD_ROOT/opt/sampleftp/vsftpd.conf 7. Assurezvous que les directives suivantes confirment les répertoires notés, la propriété et le nom de fichier du code source. Bien sûr, vous pouvez changer la propriété du fichier chargé à l'aide de la directive defattr.
%des dossiers
%dir /opt/sampleftp %defattr(,root,root,) /opt/ sampleftp/vsftpd.conf 8. Enregistrez le fichier et appliquez la commande rpmbuild ba au fichier .spec. 9. Corrigez toutes les erreurs de construction qui peuvent apparaître dans la sortie de la commande rpmbuild ba, ou la dernière /var/tmp/rpmtmp.* fichier. 10. Utilisez la commande rpm pour installer le RPM nouvellement configuré à partir d'un sousrépertoire rpmbuild/RPMS/norarch (ou rpmbuild/RPMS/x86_64).
Machine Translated by Google
44 Chapitre 12 : Tâches administratives RHCE
Laboratoire 4
Comme pour le Lab 3, vous aurez un fichier .spec dédié différent dans le répertoire rpmbuild/SPECS, et au moins un RPM binaire dans un répertoire comme rpmbuild/RPMS/x86_64. Oui, vous devrez prendre des privilèges administratifs pour exécuter la commande rpm ; une fois installé, le fichier OVERVIEW doit être installé dans le répertoire /opt/postfixinfo.
Si vous êtes prêt, cela peut être un aperçu du prochain chapitre. Le fichier OVERVIEW fournit des informations générales sur la philosophie derrière le service Postfix.
Laboratoire 5
Si vous utilisez l'outil Connexions réseau pour configurer une route spéciale, il doit configurer un fichier spécial dans le répertoire / etc/sysconfig/networkscripts. Si la carte réseau spécifiée est eth0, ce fichier spécial serait routeeth0. Compte tenu des paramètres utilisés pour le réseau outsider1.example.org comme indiqué au chapitre 1, ce fichier contiendrait les trois lignes suivantes :
ADRESSE0=192.168.100.0 NETMASK0=255.255.255.0 PASSERELLE0=192.168.122.1
Bien entendu, si le système outsider1.example.org se trouve sur un réseau différent, le contenu du fichier route eth0 changera en conséquence.
Laboratoire 6
Le succès dans ce laboratoire signifie ce qui suit : 1. Le service sssd est en cours d'exécution et est configuré pour s'exécuter au prochain démarrage du système, avec les commandes comme /etc/init.d/sssd start et chkconfig sssd on. 2. Le fichier /etc/nsswitch.conf inclut les entrées suivantes pour la suite de mots de passe shadow : passwd : fichiers sss shadow : fichiers sss groupe:
fichiers sss
Machine Translated by Google
Autotest 45
3. Le fichier /etc/sssd/sssd.conf doit inclure les entrées suivantes : [domaine/par défaut]
ldap_id_use_start_tls=Faux cache_credentials = Vrai auth_provider = krb5 debug_level = 0 krb5_kpasswd = maui.exemple.org ldap_schema = rfc2307 ldap_search_base = dc=exemple,dc=org krb5_realm = EXAMPLE.ORG chpass_provider = krb5 id_provider = ldap ldap_uri = ldap://192.168.100.1 krb5_kdcip = maui.exemple.org ldap_tls_cacertdir = /etc/openldap/cacerts
Machine Translated by Google
13 Courrier électronique Les serveurs
OBJECTIFS DE LA CERTIFICATION 13.01 Une variété d'agents de courrier électronique
13.02 La configuration de Postfix 13.03
L'autre service SMTP : sendmail
Exercice de deux minutes Autotest Q&R
Machine Translated by Google
2 Chapitre 13 : Serveurs de messagerie électronique
Linux offre un certain nombre de méthodes alternatives pour gérer les emails entrants et sortants.
RHEL 6 inclut sendmail et Postfix à cet effet. Oui, il inclut également Dovecot, Fetchmail et Procmail, mais comme les
objectifs RHCE se concentrent sur les services associés au protocole SMTP (Simple Mail Transfer Protocol), ce chapitre se concentre sur sendmail et Postfix, car ce sont les deux services pris en charge associés à SMTP. .
Le service SMTP RHEL 6 par défaut est désormais Postfix. Ce service a été développé pour la première fois à la fin des années 1990 comme alternative à sendmail. Il a été conçu pour être plus facile à configurer. Il est possible pour la plupart des administrateurs de modifier directement les fichiers de configuration associés. Maintenant que Red Hat a changé les services SMTP par défaut de sendmail à Postfix, ils ont franchi une nouvelle étape. Malgré l'évolution de Red Hat vers Postfix, sendmail reste peutêtre le serveur le plus courant pour les services SMTP. C'était le service par défaut via RHEL 5. Red Hat le prend toujours en charge pour RHEL 6. Une fois installé et configuré, sendmail peut être configuré en tant que serveur de messagerie pour tout, d'une entreprise à un hôte intelligent pour un système personnel, sous réserve aux limites d'un FAI. RHEL inclut la version open source de sendmail ; la version commerciale est le Sentrion Message Processing Engine de la société Sendmail (avec le S majuscule).
Pour les besoins de ce chapitre, Postfix et sendmail ont été installés sur le système hôte physique. Des versions d'hôtes intelligents de chaque serveur ont été installées sur le système server1.example.com. Des tests d'accès ont été effectués à partir des VM configurées dans les chapitres 1 et 2, représentant différents réseaux externes. Un certain nombre d'alternatives à Postfix et sendmail ne sont pas couvertes dans ce livre ; ils incluent procmail, mail.local, exim, Cyrus IMAP et uucp.
À L'INTÉRIEUR DE L'EXAMEN À L'INTÉRIEUR DE L'EXAMEN
Les objectifs liés aux services de messagerie électronique
installez et configurez sendmail comme alternative pour
de l'examen RHCE sont relativement simples. Premièrement,
répondre aux exigences notées, en particulier pour ■
comme l'accent est mis sur les services SMTP, l'accent est
Configurer un agent de transfert de courrier
mis sur les services directement associés à SMTP. Les principaux services SMTP disponibles pour RHEL 6 sont Postfix et sendmail. Bien que Postfix soit installé par défaut, vous êtes certainement libre de
(MTA) pour accepter les emails entrants provenant d'autres systèmes
Machine Translated by Google
Une variété d'agents de courrier électronique 3
■ Configurer un MTA pour transférer (relais) les e mails via un hôte actif
Un indice connexe provient du cours de
ces systèmes peuvent également être configurés pour recevoir des emails d'autres réseaux. Le courrier peut également être envoyé à des systèmes distants.
préparation Red Hat pour le RHCE, qui comprend un
Si un parefeu ou peutêtre un FAI nécessite l'envoi d'e
objectif de "configurer un serveur SMTP pour un
mails via leurs serveurs, vous pouvez configurer les
fonctionnement de base (client nul, réception de courrier, relais smarthost)".
services SMTP en tant qu'hôtes intelligents, qui transfèrent les informations à ces services. En outre, vous devez également atteindre les
Un client nul est un système qui ne peut envoyer poster. Un système pouvant recevoir du courrier est
objectifs RHCE de base qui s'appliquent à tous les
normalement limité au réseau local ; cependant,
services réseau, comme indiqué au chapitre 11.
OBJECTIF DE CERTIFICATION 13.01
Une variété d'agents de messagerie Avec Postfix ou sendmail, il existe des fichiers de configuration sérieux qui peuvent sembler énigmatiques aux administrateurs novices en matière d'administration de messagerie. Ne laissez pas la taille des fichiers de configuration vous intimider. Quelques modifications suffisent pour répondre aux exigences associées aux objectifs RHCE. Dans cette section, vous explorerez la place des services SMTP dans la hiérarchie des services de messagerie.
Définitions et protocoles Un serveur de messagerie comporte quatre composants principaux, comme décrit dans le Tableau 131. Sur n'importe quel ordinateur Linux, vous pouvez configurer un agent de transfert de courrier (MTA) tel que Postfix ou sendmail pour divers services sortants, tels que le transfert, le relais, la communication d'hôte intelligent avec d'autres MTA, les alias et les répertoires de mise en file d'attente. D'autres MTA, tels que Dovecot, sont conçus pour gérer uniquement les services de courrier électronique entrant, en fonction des protocoles qu'il dessert, POP3 (Post Office Protocol, version 3) et IMAP4 (Internet Message Access Protocol, version 4).
Machine Translated by Google
4 Chapitre 13 : Serveurs de messagerie électronique
TABLEAU 131
Serveur de courrier
Composants
Abréviation Signification
Exemples
MTA
Agent de transfert de courrier
Postfix, sendmail, pigeonnier
MUA
Agent utilisateur de messagerie
cabot, évolution, courrier, Thunderbird
MDA
Agent de distribution du courrier
procmail
MSA
Agent de dépôt de courrier
Postfix, sendmail
Les systèmes de messagerie dépendent fortement de la résolution des noms. Bien que vous puissiez gérer la résolution de noms via /etc/hosts sur un petit réseau, tout système de messagerie nécessitant un accès à Internet doit avoir accès à un serveur DNS entièrement fonctionnel. Pour la protection antispam et plus encore, il est important de s'assurer que le système qui a l'intention d'envoyer un email transmet bien avec l'adresse IP attribuée. Mais ce n'est qu'un élément du fonctionnement du courrier électronique, de la transmission à la livraison. Les messages électroniques commencent par un agent utilisateur de messagerie (MUA), un système client pour l'envoi et la réception de courrier électronique tel que mutt, Evolution ou Thunderbird. Avec l'aide d'un agent de soumission de courrier (MSA), ce courrier est normalement envoyé à un MTA tel que Postfix ou sendmail. Un agent de distribution de courrier (MDA) tel que Procmail fonctionne localement pour transférer le courrier électronique d'un serveur vers un dossier de boîte de réception. Procmail peut également être utilisé pour filtrer les emails. Red Hat prend également en charge des services MTA supplémentaires tels que Dovecot pour permettre à POP3 et/ou IMAP (ou les cousins sécurisés, POP3 et IMAP) de recevoir des emails. SMTP, le protocole de transfert de courrier simple, est devenu l'un des protocoles de service les plus importants de l'ère moderne. Une grande partie du monde connecté à Internet vit et meurt par email et s'appuie sur SMTP pour le livrer. Comme POP3 et IMAP, SMTP est un protocole, un ensemble de règles de transfert de données utilisées par divers agents de transfert de messagerie.
Forfaits de serveur de messagerie pertinents Les packages associés à sendmail et Postfix font tous deux partie du groupe de packages "Email server". Les packages de clés sont répertoriés dans le Tableau 132. Vous pouvez les installer avec la commande rpm ou yum. N'oubliez pas que vous n'avez pas besoin de tout installer dans ce tableau. Une fois installé, le groupe de packages du serveur de messagerie par défaut inclut des packages pour Serveurs Postfix et Dovecot, ainsi que le filtre Spamassassin. Étant donné que vous n'aurez peutêtre pas besoin de tous ces packages, il peut être plus rapide d'installer uniquement Postfix ou sendmail avec la commande rpm ou yum, en particulier si vous configurez votre ordinateur Linux à partir de la console texte. Le démarrage de l'interface graphique prend du temps.
Machine Translated by Google
Une variété d'agents de messagerie 5
TABLEAU 132
Serveur de courrier
Forfait RPM cyrusimapd*
Description Installe le système de messagerie d'entreprise Cyrus IMAP (plusieurs packages); peut nécessiter perlCyrus.
Paquets cyrussasl
Ajoute l'implémentation Cyrus de la couche d'authentification simple et de sécurité (SASL).
pigeonnier
Prend en charge les protocoles de courrier électronique entrant IMAP et POP.
pigeonniermysql, pigeonnierpgsql, pigeonnierpigeonnier
Inclut les backends de base de données et les plugins associés pour Dovecot.
facteur
Prend en charge les listes de discussion par courrier électronique.
suffixe
Inclut une alternative à sendmail.
envoyer un mail
Installe le serveur de messagerie open source le plus populaire du même nom.
sendmailcf
Ajoute un certain nombre de modèles que vous pouvez utiliser pour générer votre fichier de configuration sendmail ; requis pour traiter de nombreux fichiers de configuration de sendmail.
spamassassin
Comprend le package antispam du même nom.
Si vous choisissez de travailler avec sendmail, vous devez également installer le
package sendmailcf pour prendre en charge l'utilisation des fichiers de macro sendmail.
Utiliser des alternatives pour sélectionner un système de messagerie La commande alternatives, avec le commutateur config, prend en charge les choix entre différents services tels que Postfix et sendmail. Avant d'utiliser des alternatives, vous devez arrêter le service SMTP en cours d'exécution avec la commande appropriée parmi les suivantes :
# /etc/init.d/postfix stop # /etc/init.d/ sendmail stop Exécutez maintenant la commande alternative suivante, avec le commutateur config, pour sélectionner le MTA préféré :
# alternatives config mta
Machine Translated by Google
6 Chapitre 13 : Serveurs de messagerie électronique
La commande conduit à la sortie suivante, qui vous permet de choisir parmi les serveurs de messagerie SMTP installés. D'autres services SMTP, s'ils sont installés, seraient inclus dans la liste suivante :
Il y a 2 programmes qui fournissent 'mta'. Sélection
Commande
*+ 1
/usr/sbin/sendmail.sendmail /usr/sbin/
2
sendmail.postfix
Entrez pour conserver la sélection actuelle[+], ou saisissez le numéro de la sélection : Lorsque vous effectuez une sélection, les alternatives modifient les scripts de niveau d'exécution appropriés pour chaque service, qui peut être confirmé avec les commandes suivantes :
# chkconfig list sendmail # chkconfig list suffixe En fait, la commande chkconfig, lorsqu'elle est utilisée pour lister les niveaux d'exécution associés à un service inactif, peut renvoyer un message d'erreur (avec une proposition de solution) similaire au suivant :
le service sendmail prend en charge chkconfig, mais n'est référencé dans aucun niveau d'exécution (exécutez 'chkconfig add sendmail')
La commande alternatives n'arrête ni ne démarre par ellemême un service. Si vous n'avez pas arrêté le service d'origine plus tôt, le démon sera toujours en cours d'exécution. Dans ce cas, vous devrez utiliser la commande kill décrite au chapitre 9 pour tuer le service SMTP indésirable. Et il est important de n'avoir qu'un seul service SMTP en cours d'exécution sur un système. Les interactions entre sendmail et Postfix conduiraient à des erreurs. De plus, vous devrez utiliser le script approprié dans le répertoire /etc/init.d (sendmail ou postfix) pour démarrer le service SMTP souhaité.
Sécurité générale de l'utilisateur Par défaut, tous les utilisateurs sont autorisés à utiliser les services SMTP configurés localement, sans mot de passe. Vous verrez comment cela peut être changé pour Postfix et sendmail dans les sections appropriées plus loin dans ce chapitre. Cette section suppose que les limitations appropriées ont été configurées.
Dans certains cas, vous souhaiterez peutêtre configurer des utilisateurs locaux uniquement pour qu'ils aient accès à ces
prestations de service. Si vous ne voulez pas que ces utilisateurs se connectent au serveur avec des comptes réguliers,
Machine Translated by Google
Une variété d'agents de messagerie 7
une option consiste à s'assurer que ces utilisateurs n'ont pas de shell de connexion. Par exemple, la commande suivante peut configurer un utilisateur nommé tempworker sur un système local sans shell de connexion :
# useradd tempworker s /sbin/nologin Cet utilisateur intérimaire peut ensuite configurer son propre gestionnaire de messagerie, tel qu'Evolution, Thunderbird ou même Outlook Express, pour se connecter aux services réseau Postfix ou sendmail SMTP. Toute tentative de cet utilisateur de se connecter directement au serveur est rejetée. Bien entendu, l'accès est limité aux utilisateurs configurés, que leurs comptes soient configurés ou non avec un shell de connexion. Cela est configuré avec l'aimable autorisation de la couche d'authentification simple et de sécurité (SASL). Tel qu'implémenté pour RHEL 6, il est basé sur le package cyrussasl, tel que configuré dans le répertoire /etc/sasl2. Bien que ce répertoire puisse inclure différents fichiers de configuration pour Postfix (smtpd.conf) et sendmail (Sendmail.conf, oui, c'est un S majuscule), les deux fichiers de configuration renvoient au même schéma d'authentification avec la directive suivante :
pwcheck_method : saslauthd Le fichier de configuration /etc/sysconfig/saslauthd confirme le mécanisme standard de vérification des mots de passe avec la directive suivante :
MECH=pam Il s'agit d'une référence aux modules d'authentification enfichables (PAM) décrits dans Chapitre 10. En d'autres termes, les utilisateurs qui sont configurés sur le système local sont contrôlés par des fichiers associés dans le répertoire /etc/pam.d, à savoir smtp.postfix et smtp.sendmail. Cependant, vous devrez apporter quelques modifications à Postfix pour qu'il lise réellement la base de données d'authentification.
Journalisation des emails
La plupart des messages de journal associés aux services SMTP se trouvent dans le fichier /var/log/maillog. Les messages que vous pourriez vous attendre à voir dans ce fichier concernent
■ Redémarrage de sendmail et de Postfix ■ Connexions utilisateur réussies et échouées ■ Emails envoyés et rejetés
Machine Translated by Google
8 Chapitre 13 : Serveurs de messagerie électronique
Problèmes de sécurité courants Par défaut, le service SMTP utilise le port 25. Si vous ouvrez le port 25 sur le parefeu, des utilisateurs extérieurs peuvent avoir accès à ce serveur. Si vous avez besoin de savoir comment ouvrir ce port, consultez le chapitre 10. Une option pour les parefeux basés sur iptables est basée sur les adresses IP source. Comme Postfix et sendmail sont des services SMTP, ils utilisent tous deux le port 25. Pour créer une option d'adresse source avec l'outil de configuration du parefeu, vous devez utiliser l'option Règles personnalisées. Comme le montre la Figure 131, vous pouvez voir les fichiers personnalisés ajoutés à la configuration du parefeu, à partir du répertoire /usr/share/netcf. Pour créer une règle personnalisée qui prend en charge l'accès uniquement à partir de systèmes sur le 192.168.122.0 réseau, j'ai inclus l'entrée suivante dans ce fichier : A ENTRÉE m état état NOUVEAU m tcp p tcp s 192.168.122.0/24 dport 25 j ACCEPTER
L'entrée est au même format que les commandes du fichier /etc/sysconfig/iptables. Le service iptables, lorsqu'il est démarré, lit le contenu du fichier /etc/sysconfig/iptables ainsi que les fichiers cités dans la section Règles personnalisées. N'oubliez pas, lorsque vous ajoutez un fichier en tant que règle personnalisée, de vous assurer que l'option Table de parefeu illustrée à la figure 132 fait référence à un filtre, cohérent avec les règles de pare feu standard basées sur iptables.
FIGURE 131 Règles personnalisées
Machine Translated by Google
Une variété d'agents de messagerie électronique 9
FIGURE 132 Fichier de règles personnalisées
Alternativement, vous pouvez éditer directement le fichier /etc/sysconfig/iptables. Mais toute utilisation future de l'outil de configuration du parefeu écraserait ces règles personnalisées. En général, SELinux n'est pas un problème pour les services SMTP. Un seul booléen SELinux s'applique au service Postfix, allow_postfix_local_write_mail_spool. Comme son nom l'indique, il permet au service Postfix d'écrire des fichiers email dans les spools utilisateur du répertoire /var/spool/postfix.
Test d'un serveur de messagerie En plus de la commande telnet décrite plus loin dans ce chapitre, la manière appropriée de tester un serveur de messagerie consiste à utiliser un client de messagerie. Bien sûr, il serait pratique d'avoir un client de messagerie graphique disponible. Mais comme discuté au chapitre 2, seuls les clients texte comme mutt peuvent être disponibles.
EXERCICE 131 Créer des utilisateurs uniquement pour le courrier électronique
Dans cet exercice, vous allez créer trois utilisateurs sur le système local, juste pour qu'ils puissent accéder au serveur SMTP local. Il est entendu qu'une configuration supplémentaire est nécessaire pour paramétrer l'accès ou les limites de ces utilisateurs sur les services SMTP de Postfix ou sendmail. Les utilisateurs sont mailer1, mailer2 et mailer3. 1. Passez en revue la commande useradd. Identifiez le commutateur associé à la valeur par défaut shell de connexion.
Machine Translated by Google
10 Chapitre 13 : Serveurs de messagerie électronique
2. Vérifiez le contenu du fichier /etc/passwd. Trouver un shell non associé à connexions. Ça devrait être
/sbin/nologin 3. Exécutez des commandes telles que useradd mailer1 s /sbin/nologin pour ajouter un nouvel utilisateur. Assurezvous d'attribuer un mot de passe à cet utilisateur. 4. Vérifiez le résultat dans /etc/passwd. 5. Répétez l'étape 3 pour les autres utilisateurs notés. 6. Essayez de vous connecter à l'un des nouveaux comptes en tant qu'utilisateur régulier. Cela devrait échouer. Passez en revue les messages associés dans le fichier /var/log/secure. 7. Conservez les nouveaux utilisateurs.
OBJECTIF DE CERTIFICATION 13.02
La configuration de Postfix Le serveur de messagerie Postfix est un moyen de gérer le flux de courrier électronique sur un système et pour un réseau. Les fichiers de configuration standard sont stockés dans le répertoire /etc/postfix. La commande postconf peut être utilisée pour tester la configuration. Tel qu'il est installé, Postfix n'accepte les emails que du système local. Les changements de configuration nécessaires pour configurer Postfix pour accepter les emails entrants et pour transférer les emails via un hôte intelligent sont relativement simples.
Les détails des fichiers de configuration de Postfix incluent des options pour l'utilisateur et l'hôte. sécurité. Si vous savez déjà comment configurer Postfix pour un fonctionnement de base et que vous souhaitez simplement savoir ce qui est requis pour atteindre les objectifs SMTP de Postfix, passez directement aux sections associées à /etc/postfix/access, à l'acceptation des emails entrants et aux hôtes intelligents.
Fichiers de configuration Les fichiers de configuration sont stockés dans le répertoire /etc/postfix. Le fichier de configuration principal, main.cf, est un peu plus simple que l'alternative à sendmail, sendmail.cf. C'est quand même complexe, car il comprend près de 700 lignes.
Machine Translated by Google
La configuration de Postfi x 11
À l'exception des fichiers .cf, toute modification doit d'abord être traitée dans une base de données avec la commande postmap. Par exemple, si vous avez ajouté des limites au fichier d'accès, il peut être transformé en un fichier binaire access.db avec la commande suivante :
# accès postmap Dans de nombreux cas, le contenu des fichiers du répertoire /etc/postfix est une version commentée de la page de manuel associée. Les sections suivantes ne couvrent pas les fichiers main.cf ou master.cf, car ceux ci sont traités plus tard. Il ne couvre pas non plus le fichier header_checks, car il s'agit plutôt d'un filtre de message. Une fois les modifications apportées aux fichiers de configuration de Postfix, il est généralement préférable de les recharger dans le démon avec la commande suivante :
# /etc/init.d/postfix recharge Il est préférable de recharger la plupart des services, car cela évite de lancer les utilisateurs actuellement connectés. Et cela peut éviter les utilisateurs qui se plaignent de la perte d'emails. Mais attention à la sortie. Il devrait inclure les éléments suivants :
Rechargement du suffixe :
[ D'ACCORD ]
Sans cette sortie, il peut y avoir un autre type de problème avec Postfix. Parfois, ce problème peut être résolu en redémarrant le service avec la commande suivante :
# /etc/init.d/postfix redémarrage
Le fichier d'accès de Postfix Le fichier d'accès peut être configuré avec des limites sur les utilisateurs, les hôtes, etc. Il inclut une copie commentée de la page de manuel associée, qui peut également être appelée avec la commande man 5 access. Lorsque des limites sont incluses dans ce fichier, elles sont configurées selon le modèle suivant :
modèle d'action Les modèles peuvent être configurés de plusieurs façons. Comme suggéré par la page de manuel, vous peut limiter les utilisateurs avec des modèles tels que
nom d'[email protected] Les modèles peuvent être configurés avec des adresses IP individuelles, des réseaux d'adresses IP et domaines, comme dans les exemples suivants. Attention à la syntaxe,
Machine Translated by Google
12 Chapitre 13 : Serveurs de messagerie électronique
spécifiquement l'absence de point à la fin de 192.168.100 et au début des expressions example.org. Ces expressions incluent toujours tous les systèmes sur le réseau 192.168.100.0/24 et le domaine *.example.org. 192.168.122.50 serveur1.exemple.com 192.168.100 exemple.org
Bien sûr, de tels modèles n'ont aucun sens sans une action. Les actions typiques incluent REJETER et OK. Les exemples suivants de lignes actives dans le fichier d'accès /etc/postfix/ suivent le format d'action de modèle : 192.168.122.50 D'accord serveur1.exemple.com OK 192.168.100 REFUSER exemple.org REJETER
Une façon de configurer la
parefeux basés sur ceux décrits au Chapitre 10.
sécurité basée sur l'hôte et l'utilisateur pour Postfix
Bien qu'il existe des méthodes plus complexes pour
consiste à utiliser le fichier d'accès dans le répertoire /
configurer la sécurité basée sur l'utilisateur, les objectifs
etc/postfix. Une autre façon de configurer la sécurité
RHCE suggèrent de « configurer le service pour un
basée sur l'hôte consiste à utiliser la commande iptables–
fonctionnement de base ».
Les fichiers canoniques et génériques de Postfix Le fichier canonique et générique du répertoire /etc/postfix fonctionne comme un fichier alias. En d'autres termes, lorsque les utilisateurs se déplacent d'un endroit à l'autre ou si une entreprise passe d'un domaine à un autre, le fichier canonique peut faciliter cette transition. La différence est que, tandis que le fichier canonique s'applique aux emails entrants provenant d'autres systèmes, le fichier générique s'applique aux emails envoyés à d'autres systèmes. Semblable au fichier d'accès, les options de ce fichier suivent un modèle : résultat du motif
L'itération la plus simple est la suivante, qui transfère les emails envoyés à un utilisateur local à une adresse email classique : michael [email protected]
Machine Translated by Google
La configuration de Postfi x 13
Pour les entreprises qui utilisent des domaines différents, la ligne suivante transfère les emails dirigés vers [email protected] vers [email protected]. Il transmettra d'autres adresses e mail example.org de la même manière. @exemple.org @exemple.com
N'oubliez pas de traiter les fichiers résultants dans des bases de données avec les commandes génériques postmap canonical et postmap. Si vous modifiez les fichiers déplacés, de transport ou virtuels dans le répertoire /etc/postfix, appliquez également la commande postmap à ces fichiers. Le fichier relocalisé de Postfix Le fichier / etc/postfix/relocated est conçu pour contenir des informations pour les utilisateurs qui sont maintenant sur des réseaux externes, tels que les utilisateurs qui ont quitté une organisation actuelle. Le format est similaire aux fichiers canoniques et génériques susmentionnés dans le même répertoire. Par exemple, l'entrée suivante peut refléter le transfert d'un réseau d'entreprise local vers une adresse email personnelle : [email protected] [email protected]
Le fichier de transport de Postfix Le fichier /etc/postfix/transport peut être utile dans certaines situations où le courrier est transféré, comme depuis un hôte actif. Par exemple, l'entrée suivante transfère les emails dirigés vers le réseau example.com vers un serveur SMTP tel que Postfix sur le système server1.example.com : exemple.com smtp:serveur1.exemple.com
Le fichier virtuel de Postfix Le fichier /etc/postfix/virtual peut transférer des emails adressés de manière normale, par exemple à [email protected], vers le compte d'utilisateur sur un système local. Par exemple, si l'utilisateur elizabeth est en fait l'administrateur d'un système, l'entrée suivante transfère le courrier envoyé à l'adresse email notée à l'utilisateur administrateur racine : racine [email protected]
Machine Translated by Google
14 Chapitre 13 : Serveurs de messagerie électronique
Le fichier de configuration main.cf Sauvegardez ce fichier et ouvrezle dans un éditeur de texte. Il y a plusieurs choses que vous devez configurer dans ce fichier pour le faire fonctionner. Correctement configurés, les changements devraient limiter l'accès au système local et au réseau. Cette section décrit également la fonction d'autres directives actives, basées sur la version par défaut du fichier. Tout d'abord, les files d'attente de Postfix, qui incluent les emails qui n'ont pas encore été envoyés ou les emails qui ont été reçus, peuvent être trouvées dans le queue_directory :
queue_directory = /var/spool/postfix Le répertoire suivant est un standard. Il décrit l'emplacement de la plupart des commandes Postfix.
répertoire_commande = /usr/sbin Postfix inclut un nombre important de fichiers exécutables, pour la configuration dans le fichier master.cf. La directive daemon_directory spécifie leur emplacement :
daemon_directory = /usr/libexec/postfix Postfix inclut des fichiers de données inscriptibles dans le répertoire suivant ; il comprend normalement un fichier master.lock avec le PID du démon Postfix :
répertoire_données = /var/lib/postfix Comme défini dans les commentaires du fichier main.cf, certains fichiers et répertoires doivent appartenir à l'utilisateur administratif root ; les autres doivent appartenir au mail_owner spécifié. Dans le fichier /etc/ groups, vous pouvez confirmer qu'il existe un groupe dédié nommé postfix, qui fait également partie du groupe nommé mail.
mail_owner = suffixe Alors que Postfix fonctionne pour le système local "prêt à l'emploi", il faut faire plus pour le faire fonctionner pour un réseau. À cette fin, vous devrez activer et modifier la directive myhostname suivante pour pointer vers le nom du système local. Par exemple, vous pouvez modifier l'entrée
#myhostname = host.domain.tld à une alternative comme
myhostname = serveur1.exemple.com
Machine Translated by Google
La configuration de Postfi x 15
Un serveur DNS faisant autorité peut être configuré pour pointer vers un serveur de messagerie SMTP dans sa base de données. Lorsqu'un serveur SMTP est situé sur un système spécifique, ces serveurs SMTP sont normalement configurés pour un réseau entier. C'est configuré avec la directive mydomain. Pour cela, vous devez modifier le commentaire suivant : #mondomaine = domaine.tld
pour refléter le nom de domaine ou l'adresse réseau IP du réseau local : mondomaine = exemple.com
Normalement, vous décommentez simplement la directive myorigin suivante, pour étiqueter les emails adresses provenant de ce serveur Postfix avec un domaine d'origine. Dans ce cas, le domaine d'origine est example.com : monorigine = $mondomaine
Par défaut, la directive active suivante limite la portée du service Postfix au système local.
#inet_interfaces = all inet_interfaces = localhost
Dans la plupart des cas, vous modifieriez la directive active pour que Postfix écoute sur toutes les cartes réseau actives : inet_interfaces = tous #inet_interfaces = localhost
Normalement, Postfix écoute à la fois les réseaux IPv4 et IPv6, selon la directive inet_protocols suivante : inet_protocols = tous
La directive mydestination spécifie les systèmes servis par ce serveur Postfix. Sur la base des paramètres précédents, la directive par défaut suivante signifie que le courrier accepté peut être envoyé au FQDN du système local (server1.example.com), à l'adresse localhost sur le réseau example.com et au système localhost : madestination = $myhostname, localhost.$mydomain, localhost
Machine Translated by Google
16 Chapitre 13 : Serveurs de messagerie électronique
Pour un serveur Postfix configuré pour le réseau local, vous devez ajouter le nom du domaine local, déjà affecté à la directive mydomain :
madestination = $mondomaine, $monnomd'hôte, localhost.$mondomaine, localhost De plus, vous souhaiterez configurer la directive mynetworks pour qu'elle pointe vers l'adresse IP adresse réseau à couvrir par ce serveur Postfix. La directive commentée par défaut ne pointe pas vers le réseau example.com défini pour ce livre :
#mesréseaux = 168.100.189.0/28, 127.0.0.0/8 Ainsi, pour des systèmes tels que server1.example.com, cette directive doit être remplacée par
mes réseaux = 192.168.122.0/24, 127.0.0.0/8 Une fois les modifications apportées au fichier main.cf (et tous les autres fichiers du répertoire /etc/ postfix) sont complets et enregistrés, vous voudrez peut Les limites de sécurité basées sur l'hôte dans Postfix sont configurées via la directive mynetworks dans le fichier /etc/postfix/main.cf.
être revoir les paramètres actuels de Postfix. Pour ce faire, exécutez la commande suivante :
# postconf Bien sûr, la plupart de ces paramètres sont des valeurs par défaut. Pour revoir les paramètres modifiés par
le fichier main.cf, exécutez la commande suivante :
# postconf n La sortie est illustrée à la Figure 133. Un paramètre de la sortie postconf n est important pour l'authentification. Plus précisément, lorsque la directive suivante est ajoutée au fichier main.cf, Postfix exigera des noms d'utilisateur et des mots de passe autorisés pour l'accès :
smtpd_sender_restrictions = permit_sasl_authenticated, rejeter De plus, Postfix inclut un vérificateur de syntaxe dans le démon de base. Exécutez le commande suivante pour voir s'il y a des erreurs fatales dans le fichier main.cf :
# vérification de suffixe
Machine Translated by Google
La configuration de Postfi x 17
FIGURE 133 Postfix personnalisé
paramètres, basés sur /etc/ postfix/main.cf
Le fichier de configuration /etc/aliases Une autre directive du fichier /etc/postfix/main.cf inclut le hachage de la base de données du fichier /etc/ aliases, qui est traité dans le fichier /etc/aliases.db lorsque le système Postfix est redémarré.
alias_maps = hachage :/etc/aliases Le fichier /etc/aliases est normalement configuré pour rediriger les emails envoyés aux comptes système vers l'utilisateur administratif racine. Comme vous pouvez le voir à la fin de ce fichier, les messages électroniques envoyés à root peuvent être redirigés vers un compte d'utilisateur normal :
#racine marc Bien qu'il existe un certain nombre de directives supplémentaires disponibles dans ce fichier, elles vont audelà de la configuration de base associée aux objectifs RHCE. Lorsque les modifications sont terminées, vous pouvez et devez les traiter dans une base de données appropriée avec la commande newaliases. Comme le fichier /etc/aliases fonctionne à la fois pour Postfix et sendmail, la commande newaliases peut traiter le fichier /etc/aliases pour les deux MTA.
Machine Translated by Google
18 Chapitre 13 : Serveurs de messagerie électronique
Le fichier de configuration master.cf En règle générale, vous ne devriez pas avoir à apporter de modifications au fichier master.cf. Il est configuré pour configurer Postfix pour les services SMTP réguliers. Comme indiqué dans la première page du fichier, il inclut des options pour le protocole de soumission sur le port 587, qui est requis pour un relais d'hôte intelligent vers les serveurs de messagerie de certains FAI. Il prend également en charge la configuration du SMTP sécurisé.
Tester la configuration actuelle de Postfix Comme indiqué dans les chapitres précédents, la commande telnet est un excellent moyen de vérifier l'état actuel d'un service sur un système local. Sur la base de la configuration par défaut de Postfix, une version active de ce service devrait écouter sur le port 25. Dans ce cas, une commande telnet localhost 25 devrait renvoyer des messages similaires à ceuxci : Essayer 127.0.0.1... Connecté à l'hôte local. Le caractère d'échappement est '^]'. 220 Maui.exemple.com Suffixe ESMTP
Si la mise en réseau IPv6 est activée sur le système local, l'adresse de bouclage IPv4 (127.0.0.1) serait remplacée par l'adresse de bouclage IPv6 normale (::1). La commande quit peut être utilisée pour quitter cette connexion. Mais n'abandonnez pas encore. La commande EHLO localhost est importante ; EHLO est la commande HELO améliorée, qui introduit les paramètres de base d'un serveur SMTP. Hôte local EHLO 250maui.exemple.com 250TUYAUTAGE 250TAILLE 10240000 250VRFY 250ETRN 250 CODES D'ÉTAT AMÉLIORÉS
2508BITMIME 250 DSN
Pour nos besoins, l'information la plus importante est ce qui manque. Aucune authentification n'est requise sur ce serveur. Lorsque l'authentification est correctement configurée sur Postfix, vous verrez également la ligne suivante dans la sortie : 250AUTH GSSAPI
Machine Translated by Google
La configuration de Postfi x 19
Confi gurer l'authentification Postfi x Lorsque l'authentification est configurée dans Postfix, des limites d'utilisateurs peuvent s'appliquer. Mais comme il n'y a pas d'indices dans le fichier de configuration standard main.cf, vous devrez vous référer à la documentation de Postfix pour obtenir des indices. Comme suggéré au chapitre 3, la plupart des paquets incluent un certain niveau de documentation dans le répertoire /usr/share/doc. Heureusement, la documentation de Postfix dans ce répertoire est assez complète. Pour RHEL 6, vous pourrez trouver cette documentation dans le sousrépertoire postfix2.6.6/. Les directives que vous devez ajouter au fichier main.cf pour configurer l'authentification sont affichées dans le fichier READMEPostfixSASLRedHat.txt de ce répertoire. L'extrait clé est illustré à la Figure 134. Pour la première étape listée, il suffit de copier les quatre directives listées à la fin du fichier main.cf, d'abord pour activer l'authentification SASL pour les connexions Postfix :
smtpd_sasl_auth_enable = oui Ensuite, cela désactive l'authentification anonyme :
smtpd_sasl_security_options = noanonyme
FIGURE 134 Instructions pour configurer l'authentification Postfix
Machine Translated by Google
20 Chapitre 13 : Serveurs de messagerie électronique
La directive qui suit permet l'authentification à partir de clients non standard tels que Microsoft Outlook Express : cassé_sasl_auth_clients = oui
Cela autorise les utilisateurs authentifiés, autorise l'accès depuis les réseaux configurés avec la directive mynetworks et rejette les destinations autres que le serveur Postfix : smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, rejette_unauth_destination
Confi gurer les emails entrants Les directives requises pour configurer Postfix afin qu'il accepte les emails entrants d'un autre système ont été décrites précédemment dans la description du fichier main.cf. Mais c'était une description plus complète de ce dossier. Cette section ne couvre que les exigences minimales pour configurer Postfix, selon les termes des objectifs RHCE, "pour accepter les e mails entrants d'autres systèmes". Étant donné un serveur Postfix configuré sur le système server1.example.com, sur le réseau 192.168.122.0/24, vous apporteriez les modifications suivantes au fichier main.cf dans le répertoire /etc/postfix : myhostname = server1.example.com mydomain = example.com myorigin = mydomain inet_interfaces = all mynetworks = 192.168.122.0/24, 127.0.0.0/8
Chacune de ces options remplace soit un commentaire, soit une directive active dans le fichier /etc/postfix/main.cf par défaut. Par exemple, vous devriez au moins commenter la directive suivante : #inet_interfaces = hôte local
Configurer un relais via un hôte intelligent Un hôte intelligent possède toutes les fonctionnalités d'un serveur SMTP normal, à l'exception du transfert de tous les emails via un second serveur SMTP. L'emplacement de l'hôte intelligent peut être spécifié avec la directive relayhost. Par exemple, si l'hôte intelligent distant est outsider1.example.org, vous ajouterez la directive suivante au fichier /etc/postfix/ main.cf : relayhost = outsider1.example.org
Machine Translated by Google
L'autre service SMTP : sendmail 21
Pour que les hôtes intelligents fonctionnent, vous devez vous assurer que les messages électroniques destinés aux utilisateurs du système local sont correctement transférés. Et c'est possible grâce au fichier /etc/aliases mentionné cidessus. Au minimum, vous devez configurer le courrier
électronique destiné à l'utilisateur administratif root comme transféré à un utilisateur local normal, avec une ligne telle
racine michael
EXERCICE 133 Changer de service Cet exercice suppose que vous avez installé et souhaitez tester le service SMTP sendmail. Si vous êtes sur Postfix, il n'est pas nécessaire d'exécuter cet exercice. Il suppose que les packages sendmail et sendmailcf sont installés. 1. Désactivez le service Postfix avec la commande d'arrêt /etc/init.d/postfix. 2. Exécutez la commande alternative config mta. Dans le menu qui s'affiche, sélectionnez le service SMTP sendmail. 3. Démarrez le service sendmail avec la commande /etc/init.d/sendmail start. 4. Passez en revue les processus SMTP en cours d'exécution avec ps aux | suffixe grep et le ps aux | commandes grep sendmail. 5. Arrêtez le service sendmail avec la commande d'arrêt /etc/init.d/sendmail. 6. Exécutez la commande alternative config mta. Dans le menu qui s'affiche, sélectionnez le service SMTP Postfix. 7. Redémarrez le service Postfix avec la commande de démarrage /etc/init.d/postfix.
OBJECTIF DE CERTIFICATION 13.03
L'autre service SMTP : sendmail Le serveur de messagerie sendmail est peutêtre encore le service SMTP le plus populaire sur Internet. Il s'agit de l'ancienne méthode Red Hat de gestion du flux de courrier électronique sur un système et pour un réseau. C'était le service SMTP par défaut via RHEL 5. Configuration standard
Machine Translated by Google
22 Chapitre 13 : Serveurs de messagerie électronique
Les fichiers sont stockés dans le répertoire /etc/mail. Comme sendmail est assez complexe, la configuration se fait normalement à l'aide de macros. Comme avec Postfix, le logiciel sendmail tel qu'il est installé n'accepte que les emails du système local. Sur la base d'une compréhension des fichiers de macro associés, les modifications de configuration requises pour modifier sendmail afin d'accepter les emails entrants d'un réseau et de transférer les emails via un hôte intelligent sont relativement simples. Si vous connaissez déjà sendmail et souhaitez simplement savoir ce qui est requis pour atteindre les objectifs RHCE pour ce service SMTP, passez directement aux sections associées à /etc/mail/access, au fichier, à l'acceptation des emails entrants et aux hôtes intelligents.
Les bases de sendmail Lorsque sendmail démarre, il lit les fichiers /etc/mail/sendmail.cf et /etc/mail/submit.cf. Le fichier sendmail.cf est un fichier long (environ 1800 lignes) qui peut sembler difficile à déchiffrer mais qui contient une multitude de commentaires utiles. Le fichier submit.cf est presque aussi long. Ce fichier fournit des règles détaillées (organisées en ensembles de règles) sur la manière dont sendmail doit traiter les adresses email, filtrer les spams, communiquer avec d'autres serveurs de messagerie, etc. Ce fichier est extrêmement complexe et utilise une syntaxe cryptique. Heureusement, la plupart des directives incluses dans ce fichier sont des normes que vous n'avez pas besoin de modifier. Beaucoup sont requis par divers accords Internet relatifs à l'adresse email, aux agents de transfert de courrier, etc. Red Hat simplifie ce processus avec un fichier plus petit, /etc/mail/sendmail.mc, qui contient uniquement les directives de configuration les plus pertinentes. Il est entièrement composé de macros qui définissent les paramètres clés de sendmail.cf. Une fois les modifications appropriées effectuées, vous pouvez exécuter la commande make pour compiler un nouveau fichier sendmail.cf personnalisé. Cependant, la version RHEL par défaut de ce fichier contient toujours environ 200 lignes. Dans la plupart des cas, vous devrez peutêtre modifier 2 ou 3 de ces lignes. Bien sûr, une fois les fichiers créés ou révisés et compilés dans le répertoire /etc/mail, vous voudrez faire relire ces fichiers de configuration par le service sendmail avec la commande suivante :
# /etc/init.d/sendmail recharge En cas de succès, vous verrez la sortie suivante (le second "rechargement" est en minuscule) :
Rechargement de sendmail : [ OK ] rechargement de smclient : [ OK ] Sans cette sortie, vous devez supposer que sendmail n'a pas relu les fichiers de configuration, et d'autres mesures sont nécessaires, comme un redémarrage.
Machine Translated by Google
L'autre service SMTP : sendmail 23
Fichiers de configuration Voici une brève description des fichiers de configuration standard dans le répertoire /etc/mail. Les fichiers supplémentaires avec une extension .db sont des fichiers de base de données traités à partir de certains de ceux répertoriés ici : ■ access Prend en charge le contrôle d'accès. La version par défaut de ce fichier prend en charge
accès depuis l'ordinateur local. Vous pouvez ajouter des noms d'hôtes ou des réseaux à cette liste, avec un message REJECT avec un message d'erreur, DISCARD sans message d'erreur ou RELAY pour accepter et envoyer l'email. C'est une façon de configurer la sécurité basée sur l'hôte et même sur l'utilisateur. ■ aliasesdbstamp Prend en charge les vérifications de date des fichiers de base de données existants. ■ domaintable Permet de mapper différents domaines. Par exemple, si une entreprise déplace ses utilisateurs de mheducation.com vers mcgrawhill.com, les utilisateurs peuvent toujours envoyer des emails à des adresses telles que [email protected]. La ligne suivante transmettra cet email à michael@mcgrawhill.com.
mheducation.com mcgrawhill.com ■ helpfile Prend en charge les commandes d'aide à partir de l'invite sendmail, accessible
avec la commande telnet localhost 25.
■ noms d'hôtes locaux Autorise l'ajout de noms d'hôtes ou d'alias pour un serveur sendmail. Entrez un alias par ligne. ■ mailertable Les informations ajoutées à ce fichier peuvent remplacer
Recherches DNS. ■ makefile Prend en charge la compilation du fichier sendmail.mc. ■ sendmail.cf Spécifie le fichier de configuration principal de sendmail. ■ sendmail.mc Nom d'un fichier macro pouvant être utilisé pour générer un nouveau fichier sendmail.cf.
■ spamassassin/ Un répertoire qui inclut des fichiers de configuration pour aider à minimiser le spam. La ligne suivante dans /etc/procmailrc l'aide à fonctionner avec Procmail pour les emails reçus localement :
INCLUDERC=/etc/mail/spamassassin/spamassassindefault.rc Si vous oubliez comment spamassassin est utilisé avec sendmail, exécutez la commande rpm qi spamassassin . Vous le verrez dans la description.
Machine Translated by Google
24 Chapitre 13 : Serveurs de messagerie électronique
■ statistic Collecte des statistiques sur l'utilisation de sendmail au format binaire. Vous pouvez le lire avec la commande mailstats. N'existe pas tant que le service sendmail n'a pas commencé à traiter le courrier. ■ submit.cf Le principal fichier de configuration de sendmail sortant. ■ submit.mc Une macro que vous pouvez modifier puis générer un nouveau fichier submit.cf. ■ trustedusers Répertorie les utilisateurs spéciaux qui peuvent envoyer des emails sans avertissement. ■ virtusertable Prend en charge le transfert d'emails ; si certains utilisateurs de réseaux locaux extérieurs utilisent le serveur sendmail local, ce fichier prend en charge le transfert d'emails à partir de ces domaines.
Certains de ces fichiers nécessitent l'autre package sendmail, sendmailcf. Utilisez le rpm qa | commande grep sendmail pour confirmer si ces packages sont installés. Beaucoup de ces fichiers sont cités dans le fichier sendmail.mc. Par exemple, ce qui suit incorpore /etc/mail/virtusertable dans le fichier de configuration par défaut sendmail.mc :
FEATURE(`virtusertable',`hash o /etc/mail/virtusertable.db')dnl
Vous remarquerez peutêtre plusieurs versions de ces fichiers avec des extensions .db. Ce sont les fichiers de base de données utilisés par sendmail. Lorsque vous modifiez des fichiers dans le répertoire / etc/mail, la commande /etc/mail/make, décrite brièvement, traite ces fichiers dans les bases de données .db. Il existe un autre fichier important, /etc/aliases, déjà décrit plus haut dans ce chapitre. Il a la même fonctionnalité pour Postfix et sendmail. En d'autres termes, il inclut une liste de redirecteurs sur un système local, des adresses système au compte root, ou d'un compte d'utilisateur régulier à un autre. La commande newalises traite également ce fichier pour sendmail.
Le fichier macro sendmail.mc Même le fichier de macro principal de sendmail, sendmail.mc, peut sembler intimidant. Mais très peu de modifications sont nécessaires pour que sendmail fonctionne réellement. Néanmoins, si vous rencontrez une question légèrement différente lors d'un examen ou une question quelque peu non standard au travail, il est important de comprendre le contenu du fichier sendmail.mc. Les fichiers de macro pour sendmail commencent par la directive divert suivante : détourner(1)dnl
Machine Translated by Google
L'autre service SMTP : sendmail 25
Chaque ligne du fichier commence ou se termine par le dnl, qui est l'équivalent fonctionnel du caractère de commentaire. Toutes les informations après le dnl sont ignorées par le processeur de macro sendmail. S'il est couplé avec un divert(0)dnl, toutes les informations entre les deux directives de détour sont ignorées. Les commentaires qui suivent fournissent des orientations importantes ; la commande make dans le répertoire /etc/mail traite en fait tous les fichiers du répertoire /etc/mail : dnl # Ceci est le fichier de configuration de la macro sendmail pour m4. Si vous apportez des modifications au dnl # /etc/mail/ sendmail.mc, vous devrez régénérer le fichier dnl # /etc/mail/sendmail.cf en confirmant que le package sendmailcf dnl # est installé puis en effectuant un dnl #
dnl #
/etc/mail/make
La commande qui suit inclut le processeur de macro c4.m4 noté, à partir du paquet sendmailcf : inclure(`/usr/share/sendmailcf/m4/cf.m4')dnl
La directive include indique à la commande make de lire le contenu du fichier nommé et de l'insérer à l'emplacement actuel dans la sortie. Les guillemets du fichier sendmail.mc ne sont pas conformes à l'usage standard en anglais. C'est ainsi que des informations de configuration standard supplémentaires sont exclues du fichier de macro principal sendmail.mc. Incidemment, les paramètres entre guillemets commencent par un guillemet arrière (`) et se terminent par un guillemet simple ('). Le VERSIONID qui suit fournit une étiquette pour la configuration actuelle :
VERSIONID(`configuration pour Linux')dnl La directive OSTYPE qui suit spécifie le système d'exploitation configuré : OSTYPE(`linux')dnl La directive define définit des fichiers ou active des fonctionnalités éventuellement souhaitables. Quelques exemples
dans sendmail.mc prend en charge une liste d'alias de messagerie dans ALIAS_FILE (/etc/aliases), identifie où se trouve procmail (PROCMAIL_MAILER_PATH) et définit les options d'authentification de base (confAUTH_OPTIONS). Une option utile consiste à éviter de publier la version de sendmail utilisée, qui serait autrement affichée dans les entêtes des messages électroniques. Si vous activez la fonction de définition suivante, les autres n'ont pas besoin de savoir que vous avez configuré la version 8.14.4 de sendmail.
dnl définir(`confSMTP_LOGIN_MSG', `$j Sendmail; $b')dnl
Machine Translated by Google
26 Chapitre 13 : Serveurs de messagerie électronique
La directive de définition commentée pour un SMART_HOST qui suit serait la le moyen le plus simple de configurer le transfert vers un hôte intelligent, comme nous le verrons plus loin dans ce chapitre.
dnl définir(`SMART_HOST', `smtp.votre.fournisseur')dnl
La plupart des options de définition actives qui suivent concernent les performances du service d'envoi de courrier. Les exceptions, illustrées ciaprès, prennent en charge l'utilisation de Procmail pour le filtrage, activent /etc/aliases pour les adresses email de substitution et nécessitent une authentification pour recevoir des emails : définir(`PROCMAIL_MAILER_PATH', `/usr/bin/procmail')dnl définir(`ALIAS_FILE', `/etc/ aliases')dnl définir(`confAUTH_OPTIONS', `A')dnl
Le problème avec la dernière de ces directives de définition est qu'elle permet l'authentification en texte brut. Comme le service Telnet, il permet aux utilisateurs d'envoyer leurs noms d'utilisateur et mots de passe sur le réseau en texte clair, où toute personne qui écoute peut lire ces informations d'authentification. Un texte clair peut être approprié pour les tests initiaux et est généralement conforme au concept de « fonctionnement de base » associé aux objectifs RHCE. Cependant, pour un service sendmail qui nécessite une certaine forme de cryptage, vous pouvez remplacer la directive suivante, qui est commentée par défaut :
dnl définir(`confAUTH_OPTIONS', `A p')dnl
Ce mécanisme d'authentification, s'il est actif, doit être associé à des options d'authentification. Les directives commentées qui suivent fournissent quelques suggestions de solutions. Bien qu'il n'y ait aucune preuve des objectifs RHCE d'une exigence d'authentification pour les services SMTP, elle est répertoriée dans le plan de cours public Red Hat RH254, ce qui suggère que vous devez comprendre l'utilisation des certificats SSL (Secure Sockets Layer) et son successeur. , Transport Layer Security (TLS). Bien que ce ne soit probablement pas nécessaire pour les services SMTP, il peut être utile de se familiariser avec certains de ces mécanismes d'authentification, comme aperçu du chapitre 14. À cette fin, les directives commentées suivantes prennent en charge une variété de mécanismes d'authentification :
dnl TRUST_AUTH_MECH(`EXTERNAL DIGESTMD5 CRAMMD5 LOGIN PLAIN')dnl dnl define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGESTMD5 CRAMMD5 LOGIN PLAIN')dnl
Pour prendre en charge le chiffrement, la section commentée suivante décrit les commandes nécessaire pour créer un certificat SSL/TLS pour sendmail, et son emplacement dans l'arborescence :
dnl # Informations rudimentaires sur la création de certificats pour sendmail TLS : dnl # cd /etc/pki/tls/certs ; faire sendmail.pem
Machine Translated by Google
L'autre service SMTP : sendmail 27
dnl # Utilisation complète : dnl # make C /etc/pki/tls/certs usage dnl # dnl define(`confCACERT_PATH', `/ etc/pki/tls/certs')dnl dnl define(`confCACERT', `/etc /pki/tls/certs/ cabundle.crt')dnl dnl definir(`confSERVER_CERT', `/etc/pki/tls/certs/ sendmail.pem')dnl dnl definir(`confSERVER_KEY', `/etc/pki /tls/certs/sendmail.pem')dnl
La directive define qui suit, si elle est activée, prend en charge l'utilisation de l'authentification LDAP :
dnl définir(`confDONT_BLAME_SENDMAIL', `groupreadablekeyfile')dnl Les directives de définition qui suivent concernent le comportement de sendmail pour les retards de message et n'affectent pas la configuration de base. La seule directive active affichée désactive les délais d'attente lorsque le serveur attend une requête d'identification (IDENT).
dnl définir(`confTO_QUEUEWARN', `4h')dnl dnl définir(`confTO_QUEUERETURN', `5d')dnl dnl définir(`confQUEUE_LA', `12')dnl dnl définir(`confREFUSE_LA', `18')dnl définir( `confTO_IDENT', `0')dnl dnl FEATURE(delay_checks)dnl
Les directives FEATURE activent des fonctionnalités spécifiques. Certains administrateurs configurent sendmail pour utiliser le protocole de soumission, à la place de SMTP. Dans ce cas, vous voudriez désactiver la directive suivante, qui empêche sendmail d'écouter sur le port 587 :
FEATURE(`no_default_msa', `dnl')dnl D'autres FONCTIONNALITÉS concernent des fichiers exécutables et de configuration spécifiques. Le Ce qui suit spécifie les emplacements du shell sendmail (smrsh), ainsi que les bases de données mailertable et virtualusertable susmentionnées.
FEATURE(`smrsh', `/usr/sbin/smrsh')dnl FEATURE(`mailertable`hash o /etc/mail/mailertable.db')dnl FEATURE(`virtusertable', `hash o /etc/mail/ virtusertable.db')dnl Les directives FEATURE qui suivent prennent en charge la redirection vers d'autres adresses e mail, ajoutent le nom de domaine local à une adresse email si aucune n'est répertoriée et utilisent des fichiers tels que les utilisateurs de confiance et les noms d'hôte local : FONCTIONNALITÉ (redirection) dnl
FEATURE(always_add_domain)dnl FEATURE(use_cw_file)dnl FEATURE(use_ct_file)dnl
Machine Translated by Google
28 Chapitre 13 : Serveurs de messagerie électronique
Bien que cette fonctionnalité prenne en charge les tentatives répétées de livraison d'email :
FEATURE(local_procmail, `', `procmail t Y a $h d $u')dnl Les options suivantes sont des conditions préalables à la sécurité basée sur l'hôte, car elles consultent le fichier / etc/mail/access pour les utilisateurs, les systèmes et même les réseaux (autorisés et) sur liste noire :
FEATURE(`access_db', `hash T o /etc/mail/access.db')dnl FEATURE(`blacklist_recipients')dnl Si l'utilisateur racine essaie d'envoyer des emails via ce serveur SMTP, l'option suivante requiert l'adresse email complète de cet utilisateur :
EXPOSED_USER(`root')dnl Par défaut, la directive DAEMON_OPTIONS suivante limite le service sendmail au système local. Pour un fonctionnement de base, il est plus simple de commenter cette directive :
DAEMON_OPTIONS(`Port=smtp,Adr=127.0.0.1, Nom=MTA')dnl Aucune directive supplémentaire n'est requise dans le fichier sendmail.mc pour prendre en charge l'accès depuis d'autres systèmes sur un réseau. Cependant, la sécurité dépend également du fichier /etc/mail/access, qui limite également par défaut l'accès au système localhost. Pour configurer sendmail sur le port de soumission 587 susmentionné, vous devez activer la directive suivante :
dnl DAEMON_OPTIONS(`Port=soumission, Nom=MSA, M=Ea')dnl Si vous avez compilé les certificats TLS décrits précédemment, vous pouvez activer le directive suivante pour écouter les connexions SMTP sécurisées sur le port 465 :
dnl DAEMON_OPTIONS(`Port=smtps, Nom=TLSMTA, M=s')dnl Pour la mise en réseau IPv6, la directive suivante n'écouterait que le système localhost :
dnl DAEMON_OPTIONS(`port=smtp,Addr=::1, Name=MTAv6, Family=inet6')dnl Alternativement, la directive suivante écoute à la fois le trafic IPv4 et IPv6 :
dnl DAEMON_OPTIONS(`Nom=MTAv4, Famille=inet, Nom=MTAv6, Famille=inet6') La directive FEATURE suivante autorise sendmail aux domaines accept_unresolvable_. Cela permet à sendmail d'accepter le courrier même s'il ne peut pas déterminer le domaine de l'utilisateur qui a envoyé le courrier électronique. Plus précisément, un domaine est considéré comme insoluble
Machine Translated by Google
L'autre service SMTP : sendmail 29
lorsqu'une recherche d'adresse IP inversée ne trouve pas le nom de domaine associé. Cependant, si un service DNS fiable est disponible, la désactivation de cette option peut réduire le spam.
FEATURE(`accept_unresolvable_domains')dnl Si active, la directive suivante accepte l'utilisation des enregistrements MX des serveurs DNS pour les emplacements des serveurs de messagerie distants :
dnl FEATURE(`relay_based_on_MX')dnl La directive suivante est nécessaire pour s'assurer que le service sendmail accepte les emails des utilisateurs locaux :
LOCAL_DOMAIN(`localhost.localdomain')dnl Si vous souhaitez substituer un autre domaine aux adresses email, procédez comme suit directives, si elles sont actives, spécifiez un substitut :
dnl MASQUERADE_AS(`mydomain.com')dnl dnl FEATURE(masquerade_envelope)dnl dnl FEATURE(masquerade_entire_domain)dnl Le masquage peut être prolongé. Les directives suivantes, si actives, obtiendraient sendmail pour substituer le domaine MASQUERADE_AS aux noms de domaine localhost, localhost.localdomain, mydomainalias.com et mydomain.lan.
dnl MASQUERADE_DOMAIN(localhost)dnl dnl MASQUERADE_DOMAIN(localhost.localdomain)dnl dnl MASQUERADE_DOMAIN(mydomainalias.com)dnl dnl MASQUERADE_DOMAIN(mydomain.lan)dnl Enfin, les directives MAILER suivantes spécifient les serveurs utilisés :
MAILER(smtp)dnl MAILER(procmail)dnl dnl MAILER(cyrusv2)dnl
Le fichier de macro submit.mc Dans la plupart des cas, aucune modification n'est nécessaire dans le fichier submit.mc. S'il est modifié, il peut également être traité par la même commande make dans le répertoire /etc/mail. En général, si le réseau est configuré pour utiliser le service d'informations réseau (NIS) pour une base de données d'authentification, vous devez commenter la directive suivante :
définir(`confDONT_INIT_GROUPS', `True')dnl
Machine Translated by Google
30 Chapitre 13 : Serveurs de messagerie électronique
Mais NIS n'est pas sécurisé. Il se trouve que pour RHEL 6, Red Hat a retiré NIS de ses objectifs d'examen. Si le réseau local est configuré pour utiliser uniquement l'adressage IPv6, vous devez modifier le dernière ligne de ce fichier à partir de
FEATURE(`msp', `[127.0.0.1]')dnl pour
FONCTIONNALITÉ(`msp', `[IPv6 :::1]')dnl
Configurez sendmail pour accepter les emails d'autres systèmes Cette section répond à l'objectif RHCE de configuration de sendmail pour un fonctionnement de base. Accédez au répertoire /etc/mail. Sauvegardez le fichier macro sendmail.mc. Ouvrez ce fichier dans un éditeur de texte. Passez en revue la directive suivante, qui limite l'accès de sendmail à l'ordinateur local :
DAEMON_OPTIONS(`Port=smtp,Adr=127.0.0.1, Nom=MTA')dnl
Vous pouvez autoriser d'autres ordinateurs à utiliser votre serveur sendmail en commentant cette ligne. Comme décrit précédemment, cela nécessite une directive dnl devant, comme indiqué : dnl DAEMON_OPTIONS(`Port=smtp,Adr=127.0.0.1, Nom=MTA')dnl
Ensuite, si un accès DNS fiable est disponible, commentez la directive FEATURE qui permet au service sendmail d'accepter_unresolvable_domains. Cette action, qui nécessite la vérification des adresses email des expéditeurs, peut aider à bloquer les spammeurs. Un spammeur peut falsifier son domaine. Les utilisateurs de "domaines insolubles" ne sont pas autorisés à accéder à ce service, sauf si l'option accept_unresolvable_domains est active, qui utilisent uniquement une adresse IP, ou les spammeurs qui falsifient leur nom de domaine pour se cacher : dnl FEATURE(`accept_unresolvable_domains')dnl
Mais cela ne suffit pas. Pour autoriser l'accès du système distant au serveur sendmail local, vous devrez ajouter leurs noms ou adresses IP au fichier /etc/mail/access. Par exemple, pour autoriser l'accès au domaine 192.168.122.0, vous devez ajouter la ligne suivante à ce fichier :
Connexion : 192.168.122
RELAIS
Regardez la notation ; contrairement aux autres services, il n'y a pas de point (.) à la fin de l'adresse. Il couvre tous les ordinateurs du réseau 192.168.122.0. Vous pouvez également désigner le domaine example.com ou un nom d'ordinateur ou une adresse IP spécifique.
Machine Translated by Google
L'autre service SMTP : sendmail 31
Sauvegardez le fichier sendmail.cf actuel. Ensuite, vous pouvez générer un nouveau sendmail.cf file, traitez les autres fichiers dans /etc/mail et redémarrez les services sendmail avec la commande suivante :
# /etc/mail/make Vous pouvez désormais reconfigurer des clients de messagerie tels que Mozilla Thunderbird, Novell Evolution ou même Microsoft Outlook Express pour envoyer des emails sortants via le serveur sendmail nouvellement configuré. Vous devrez définir le nom de domaine ou l'adresse IP de l'ordinateur sendmail comme serveur de courrier sortant SMTP.
Configurer sendmail pour relayer le courrier électronique vers un hôte intelligent En plus des options décrites pour le fichier sendmail.mc, il est facile de configurer sendmail pour relayer les emails vers un hôte actif. Le fichier sendmail.mc par défaut fournit un indice avec la directive commentée suivante :
dnl définir(`SMART_HOST', `smtp.votre.fournisseur')dnl Si l'hôte intelligent distant est smtp.example.org, vous devez activer la directive comme suit :
définir(`SMART_HOST', `smtp.example.org')dnl
Confi gurez la sécurité sendmail basée sur l'utilisateur et sur l'hôte Comme suggéré dans la discussion du fichier /etc/mail/access, la sécurité basée sur l'hôte peut y être configurée. Par exemple, tant que la limitation au système 127.0.0.1 est supprimée ou commentée de la macro sendmail.mc, la sécurité basée sur l'hôte est contrôlée via le fichier /etc/mail/access. Par exemple, l'entrée suivante rejette tous les utilisateurs nommés michael :
michael @ REFUSER
De plus, contrairement à Postfix, sendmail peut être protégé par des wrappers TCP, comme expliqué au chapitre 10. En d'autres termes, vous pouvez utiliser hosts.allow et hosts. refuser les fichiers du répertoire /etc pour limiter l'accès à certains utilisateurs et hôtes.
Testez la configuration actuelle de sendmail Comme avec Postfix, la commande telnet peut être utilisée pour vérifier l'état actuel du service sendmail. Basé sur la configuration par défaut de Postfix, une version active de
Machine Translated by Google
32 Chapitre 13 : Serveurs de messagerie électronique
ce service doit écouter sur le port 25. Dans ce cas, une commande telnet localhost 25 doit renvoyer quelque chose de similaire aux messages suivants : Essayer ::1... telnet : connexion à l'adresse ::1 : connexion refusée Essayer 127.0.0.1... Connecté à l'hôte local. Le caractère d'échappement est '^]'. 220 serveur1.exemple.com ESMTP Sendmail 8.14.4/8.14.4 ; Mer, 23 Fév 2011 16:58:20 0800
Le premier message de refus de connexion confirme que le fichier de configuration de sendmail n'écoute normalement pas le réseau IPv6. Pour configurer sendmail.mc pour IPv4 et IPv6 audelà du système localhost, désactivez la directive suivante (en ajoutant le dnl devant) :
dnl DAEMON_OPTIONS(`Port=smtp,Adr=127.0.0.1, Nom=MTA')dnl
Et activez la directive suivante : DAEMON_OPTIONS(`Nom=MTAv4, Famille=inet, Nom=MTAv6, Famille=inet6')
Mais cela n'est requis que si la mise en réseau IPv6 est requise, ce qui n'est pas toujours le cas. cas. Si seul le réseau IPv4 est requis, commentez également cette directive.
SCÉNARIO & SOLUTION On vous demande de configurer un serveur SMTP pour le réseau
Utilisez le serveur Postfix par défaut ; modifiez les
192.168.0.0/24
directives myhostname, mydomain, myorigin, inet_interfaces et mynetworks dans /etc/postfix/main.cf. N'oubliez pas de traiter les fichiers noncf dans des bases de données avec la commande postmap.
On vous dit d'autoriser l'accès uniquement au serveur SMTP pour
Créez les utilisateurs notés avec un shell par défaut /sbin/nologin.
l'utilisateur1, l'utilisateur2 et l'utilisateur3 On vous dit de configurer sendmail sur RHEL 6
Arrêtez le service Postfix et utilisez des alternatives pour changer le MTA par défaut en sendmail.
On vous demande de configurer sendmail pour autoriser l'accès à tous
Commentez la directive DAEMON_OPTIONS associée à l'adresse de
les systèmes
bouclage.
Machine Translated by Google
L'autre service SMTP : sendmail 33
RÉSUMÉ DES CERTIFICATIONS Red Hat comprend deux serveurs associés au protocole SMTP : Postfix et sendmail. Red Hat a basculé les services SMTP par défaut entre RHEL 5 et RHEL 6 ; c'est maintenant Postfix. Quel que soit le service SMTP que vous sélectionnez, il ne s'agit que d'une partie de la hiérarchie des services de messagerie. Postfix et sendmail font tous deux partie du groupe de packages "E mail server". Si vous souhaitez basculer entre les services SMTP, la commande alternatives config mta peut vous aider. Les informations du journal de messagerie se trouvent dans le fichier /var/log/ maillog. Vous pouvez tester l'état actuel des deux services SMTP à partir du système local avec la commande telnet localhost 25. Postfix est un peu plus facile à configurer que sendmail. Différents fichiers de configuration de Postfix peuvent être trouvés dans le répertoire /etc/postfix. Les limites d'utilisateur et d'hôte peuvent être configurées dans le fichier d'accès. Plusieurs autres fichiers concernent des comptes de messagerie ou des domaines redirigés ou renommés. Vous devrez modifier plusieurs directives de configuration de Postfix dans le fichier /etc/postfix/main.cf, notamment myhostname, mydomain, myorigin, inet_interfaces et mynetworks. La directive relayhost peut aider à configurer le transfert vers un hôte actif. Si vous avez besoin de configurer l'authentification Postfix, reportezvous aux directives supplémentaires dans le répertoire /usr/ share/doc/postfix2.6.6, dans le fichier READMEPostfixSASLRedHat.txt. Le service sendmail est peutêtre encore le serveur SMTP le plus populaire sur Internet. Il a des fichiers de configuration dans le répertoire /etc/mail. Les deux principaux fichiers de configuration sont : sendmail.cf et submit.cf. Vous pouvez configurer ces fichiers via des macros configurées dans les fichiers sendmail.mc et submit.mc. Vous pouvez configurer la sécurité basée sur l'utilisateur et l'hôte à l'aide du fichier /etc/mail/access. Le fichier sendmail.mc inclut un exemple de directive commenté pour vous aider à configurer une connexion à un hôte intelligent distant.
Machine Translated by Google
34 Chapitre 13 : Serveurs de messagerie électronique
EXERCICE DE DEUX MINUTES Voici quelquesuns des points clés des objectifs de certification du chapitre 13.
Une variété d'agents de messagerie RHEL 6 vous permet de choisir entre Postfix et sendmail. Les deux sont des MTA.
N'activez pas les deux. Vous pouvez utiliser la commande alternatives config mta pour choisir entre Postfix et envoyer un email.
Les informations du serveur de messagerie sont consignées dans le fichier /var/log/maillog.
La configuration de Postfix Le serveur Postfix est plus simple à configurer grâce aux fichiers de configuration du répertoire /etc/postfix. En fait, vous pouvez configurer directement le fichier main.cf. Vous pouvez configurer l'utilisateur Postfix et la sécurité de l'hôte Postfix dans /etc/ aliases. Vous pouvez configurer différents types de transfert d'emails dans des fichiers tels que canoniques, génériques et déplacés, le tout dans le répertoire /etc/postfix. Le répertoire /usr/share/doc/postfix2.6.6 contient des informations sur les options d'authentification des utilisateurs dans le fichier READMEPostfixSASLRedHat.txt. La commande relayhost peut être utilisée pour configurer une connexion à un hôte actif. Vous pouvez tester une configuration Postfix standard depuis le système local avec la commande telnet localhost 25. (La même commande fonctionne également pour une configuration standard de sendmail.)
L'autre service SMTP : sendmail Le fichier de configuration principal de sendmail est /etc/mail/sendmail.cf. Il est plus facile de configurer sendmail via son fichier macro, /etc/mail/sendmail.mc. Vous pouvez ouvrir l'accès à tous les systèmes dans le fichier sendmail.mc en commentant
la directive DAEMON_OPTIONS. Le fichier sendmail.mc inclut une suggestion commentée pour configurer une connexion à un hôte actif. Vous pouvez personnaliser les ordinateurs autorisés à accéder à un serveur sendmail via les fichiers access et virtusertable du répertoire /etc/mail. La commande /etc/mail/make traite tous les fichiers du répertoire /etc/mail.
Machine Translated by Google
Autotest 35
AUTOTEST Les questions suivantes vous aideront à mesurer votre compréhension du matériel présenté dans ce chapitre. Comme aucune question à choix multiples n'apparaît dans les examens Red Hat, aucune question à choix multiples n'apparaît dans ce livre. Ces questions testent exclusivement votre compréhension du chapitre. Ce n'est pas grave si vous avez une autre façon d'effectuer une tâche. Obtenir des résultats, et non mémoriser des anecdotes, est ce qui compte pour les examens Red Hat. Il peut y avoir plus d'une réponse à de nombreuses questions.
Une variété d'agents de messagerie 1. Citez deux exemples d'un MTA pris en charge sur RHEL 6. _______________________________________________________________ 2. Quelle commande peut être utilisée pour basculer entre les services Postfix installés et sendmail ? _______________________________________________________________
La configuration de Postfix 3. Comment modifieriezvous la directive suivante dans /etc/postfix/main.cf pour ouvrir Postfix à tous systèmes ?
inet_interfaces = hôte local _______________________________________________________________ 4. Si vous utilisez /etc/aliases pour transférer des emails, quelle commande traite ces fichiers dans un fichier de base de données approprié pour Postfix ? _______________________________________________________________ 5. Quel fichier prend en charge les limites sur les hôtes pouvant se connecter à Postfix ? _______________________________________________________________ 6. Quelle directive du fichier main.cf est utilisée pour spécifier le domaine servi par le serveur Postfix ? _______________________________________________________________ 7. Quelle directive dans le fichier main.cf est utilisée pour spécifier le réseau d'adresses IP desservi par le Serveur Postfix ? _______________________________________________________________
Machine Translated by Google
36 Chapitre 13 : Serveurs de messagerie électronique
8. Dans quel répertoire peuton trouver la documentation associée au serveur Postfix ? _______________________________________________________________
L'autre service SMTP : sendmail 9. Dans quel fichier stockeriezvous les adresses email de transfert ? _______________________________________________________________ 10. Pourquoi voudriezvous commenter la directive suivante dans sendmail.mc ?
DAEMON_OPTIONS(`Port=smtp,Adr=127.0.0.1, Nom=MTA')dnl _______________________________________________________________ 11. De quoi avezvous besoin si vous souhaitez commenter la directive suivante dans sendmail.mc ?
FEATURE(`accept_unresolvable_domains')dnl _______________________________________________________________ 12. Quelle commande traite tous les fichiers dans /etc/mail ? _______________________________________________________________
QUESTIONS DE LABORATOIRE Plusieurs de ces laboratoires impliquent des exercices de configuration. Vous ne devez faire ces exercices que sur des machines de test. Il est supposé que vous exécutez ces exercices sur des machines virtuelles telles que KVM. Pour ce chapitre, il est également supposé que vous modifiez la configuration d'un système hôte physique pour de telles machines virtuelles. Red Hat présente ses examens par voie électronique. Pour cette raison, les travaux pratiques de ce chapitre et des chapitres suivants sont disponibles sur le CD qui accompagne le livre, dans le sousrépertoire Chapter13/. Si vous n'avez pas encore configuré RHEL 6 sur un système, reportezvous au chapitre 1 pour les instructions d'installation. Les réponses pour chaque laboratoire suivent les réponses de l'autotest pour les questions à compléter.
Machine Translated by Google
Réponses à l'autotest 37
RÉPONSES À L'AUTOTEST Une variété d'agents de messagerie 1. Trois exemples de MTA pris en charge sur RHEL 6 sont Postfix, sendmail et Dovecot. 2. La commande qui peut être utilisée pour aider à basculer entre les MTA Postfix et sendmail est alternatives config mta.
La configuration de Postfix 3. La solution la plus simple est de changer la directive en
inet_interfaces = tout 4. Les adresses email de transfert pour sendmail et Postfix sont normalement stockées dans /etc/aliases. Assurezvous de traiter ces fichiers dans des bases de données appropriées ; pour /etc/aliases, la base de données est mise à jour avec la commande newaliases. 5. Le fichier qui prend en charge les limites sur les hôtes pouvant se connecter à Postfix est /etc/postfix/access. 6. La directive dans le fichier main.cf qui est utilisée pour spécifier le domaine servi par le serveur Postfix est mondomaine. 7. La directive dans le fichier main.cf est utilisée pour spécifier que l'adresse IP du réseau desservie par le serveur Postfix est mynetworks. 8. Vous trouverez la documentation associée au serveur Postfix dans /usr/share/doc/postfix2.6.6 annuaire.
L'autre service SMTP : sendmail 9. Les adresses email de transfert pour sendmail et Postfix sont normalement stockées dans /etc/aliases. Si vous transférez des emails pour des domaines entiers, le fichier approprié est /etc/mail/domaintable. Assurezvous de traiter ces fichiers dans des bases de données appropriées ; pour /etc/aliases, la base de données est mise à jour avec la commande newaliases. Pour /etc/mail/domaintable, la base de données est mise à jour avec la commande /etc/mail/make. 10. Si vous commentez la directive indiquée, l'accès est pris en charge par tous les systèmes autorisés à se connecter. 11. Si vous commentez la directive notée dans sendmail.mc, un serveur DNS fiable n'est pas requis. 12. La commande qui traite tous les fichiers du répertoire /etc/mail est /etc/mail/make.
Machine Translated by Google
38 Chapitre 13 : Serveurs de messagerie électronique
RÉPONSES DE LABORATOIRE Pour la plupart de ces laboratoires, vous utilisez peutêtre un client de messagerie comme mutt. Pour envoyer un email à l'utilisateur michael@localhost, procédez comme suit : 1. Exécutez la commande mutt michael@localhost. Le message À : michael@localhost devrait apparaître. 2. Appuyez sur ENTRÉE. À l'invite Objet :, entrez un nom de sujet de test approprié et appuyez sur ENTRÉE. 3. Vous êtes redirigé vers un écran vide dans l'éditeur vi. Utilisez les commandes appropriées à cet éditeur pour un écran similaire à celui illustré à la Figure 135. 13. À partir de l'écran illustré à la Figure 135, appuyez sur y pour envoyer le message noté. De plus, vous pouvez vérifier la réception des emails dans des fichiers un fichier de nom d'utilisateur dans le répertoire / var/spool/mail. Normalement, ces emails peuvent être consultés à partir d'un compte d'utilisateur avec la commande mail. De plus, vous pouvez vérifier l'accès à un serveur SMTP en cours d'exécution avec la commande telnet ip_address 25, où ip_address est l'adresse IP du serveur SMTP. Après avoir effectué une modification de configuration, n'oubliez pas de traiter le fichier de manière appropriée. Pour Postfix, la commande postmap filename traite le fichier. Pour sendmail, le script /etc/mail/make traite le fichier. Pour le fichier commun /etc/aliases, la commande newaliases traite le fichier. Et n'oubliez pas de vous assurer que le service relit bien les nouveaux fichiers de configuration.
Laboratoire 1
Dans Postfix, pour désactiver l'accès local uniquement dans le fichier /etc/postfix/main.cf, modifiez la directive inet_interfaces pour accepter toutes les connexions :
inet_interfaces = tout
FIGURE 135
L'email du chien client.
Machine Translated by Google
Autotest 39
Mais pour répondre aux exigences de l'atelier, vous souhaiterez conserver la valeur par défaut de cette directive :
inet_interfaces = hôte local Assurezvous que Postfix est actif (et que les serveurs de messagerie alternatifs tels que sendmail ne le sont pas). En général, pour vérifier l'authentification sur un serveur SMTP, connectezvous depuis le système local avec la commande telnet localhost 25. Lorsque vous voyez un message semblable à
220 maui.example.com Suffixe ESMTP tapez la commande suivante :
Hôte local EHLO Selon la configuration, vous devriez voir des messages semblables aux suivants : 250AUTH CONNEXION PLAIN 250AUTH=CONNEXION PLAIN
Pour vérifier la réception du courrier électronique dans un compte d'utilisateur, connectezvous à ce compte ou vérifiez au moins l'horodatage associé au nom d'utilisateur dans le répertoire /var/mail. Pour vous assurer que les emails adressés à l'utilisateur root sont redirigés vers un compte d'utilisateur normal, vous devez ajouter une ligne comme celleci au fichier /etc/aliases :
racine: michel Compte tenu de la formulation de la question, tout compte d'utilisateur standard serait acceptable. Bien sûr, pour implémenter ce changement, vous devrez exécuter la commande newaliases, qui traite ce fichier dans le fichier /etc/aliases.db. Pour vous assurer que cela fonctionne, vous devrez utiliser un client en ligne de commande tel que mutt ou même mail tel que défini au chapitre 2. Par exemple, si vous envoyez un email de test à l'utilisateur root local, le message devrait être reçu par l'utilisateur michael (ou quiconque est configuré dans le fichier /etc/aliases pour recevoir les emails transférés de l'utilisateur root).
Laboratoire 2
Pour activer l'accès depuis plus que l'hôte local, vous devrez modifier la directive inet_interfaces dans /etc/postfix/main.cf pour
inet_interfaces = tout La tâche suivante consiste à limiter l'accès à un réseau spécifique, dans ce cas, example.com. Bien qu'il existe des options dans les fichiers /etc/postfix, le moyen le plus efficace de limiter l'accès à un réseau spécifique consiste peutêtre à utiliser une règle de parefeu appropriée basée sur iptables. Par exemple, la règle personnalisée suivante limiterait l'accès
Machine Translated by Google
40 Chapitre 13 : Serveurs de messagerie électronique
au port TCP 25 aux systèmes sur le réseau d'adresses IP donné. Le réseau affiché est basé sur la configuration définie à l'origine pour example.com, le réseau 192.168.122.0/24 : A ENTRÉE m état état NOUVEAU m tcp p tcp s 192.168.122.0/24 dport 25 j ACCEPTER
De plus, vous devrez configurer ce réseau dans le fichier /etc/postfix/access avec une règle comme celleci :
192.168.122 D'accord
Une fois Postfix lancé, vous devriez pouvoir confirmer le résultat avec une commande telnet appropriée depuis un système distant. Par exemple, si Postfix est configuré sur un système avec une adresse IP 192.168.122.50, la commande serait # telnet 192.168.122.50 25
La configuration d'un hôte intelligent dans Postfix est basée sur la directive relayhost. Pour les paramètres donné dans le laboratoire, si l'hôte physique est situé sur le système maui.example.com, la directive dans le fichier main.cf serait relayhost = maui.exemple.com
Si Postfix sur le système server1.example.com est correctement configuré en tant qu'hôte intelligent, les emails vers l'hôte transféré doivent être livrés de manière fiable et même enregistrés dans le fichier /var/log/maillog approprié.
Laboratoire 3
Avec la règle iptables présentée dans le Lab 2, l'accès devrait déjà être interdit depuis d'autres réseaux. Cependant, si vous n'avez pas inclus l'adresse réseau 192.168.122.0/24 dans la règle iptables indiquée dans la réponse au Lab 2, une approche différente est disponible. Vous pouvez utiliser les options disponibles dans le fichier / etc/postfix/access, telles que les suivantes pour rejeter les messages du réseau example.org. Si votre réseau example.org utilise une adresse IP différente, modifiezla en conséquence. 192.168.100 REFUSER
Il devrait être facile de vérifier les connexions au serveur SMTP à partir d'un système distant. À partir de réseaux prohibés, lorsque vous exécutez une commande telle que : telnet 192.168.122.50 25 à partir d'un hôte sur le réseau 192.168.100.0/24, vous devriez voir la sortie suivante : Essayer 192.168.122.50... telnet : connexion à l'adresse 192.168.122.50 : aucune route vers l'hôte
Machine Translated by Google
Autotest 41
Laboratoire 4
Ce laboratoire devrait être simple. Tant que sendmail et sendmailcf sont installés sur le système local, les étapes de base pour passer de Postfix à sendmail sont les suivantes : 1. Arrêtez le service Postfix avec une commande comme / etc/init.d/postfix stop. 2. Exécutez le script alternatif config mta et sélectionnez sendmail.
Laboratoire 5
La mise en réseau IPv6 n'est pas activée sur certains systèmes. Mais quand c'est le cas, ouvrez le fichier sendmail.mc dans le répertoire /etc/mail. Pour configurer sendmail pour qu'il accepte les connexions des adresses IPv4 et IPv6, désactivez d'abord la directive suivante. Le dnl ajouté devant le transforme en commentaire. dnl DAEMON_OPTIONS(`Port=smtp,Adr=127.0.0.1, Nom=MTA')dnl
Ensuite, pour permettre à sendmail d'écouter à la fois le trafic IPv4 et IPv6, activez la directive suivante : DAEMON_OPTIONS(`Nom=MTAv4, Famille=inet, Nom=MTAv6, Famille=inet6')
En cas de succès, vous devriez pouvoir vous connecter au système avec l'une des commandes suivantes : #telnet ::1 25 # telnet 127.0.0.1 25
Le transfert depuis le compte root peut être activé via le fichier /etc/aliases, comme expliqué dans la réponse au Lab 1.
Laboratoire 6
Dans sendmail, pour désactiver l'accès local uniquement dans le fichier /etc/mail/sendmail.mc, commentez la ligne suivante. Contrairement à la plupart des fichiers de configuration Linux, le code de commentaire est un dnl au début de cette ligne : DAEMON_OPTIONS(`Port=smtp,Adr=127.0.0.1, Nom=MTA')dnl
Le dnl à la fin de la ligne n'affecte pas la commande à sa gauche. Ensuite, vous voudrez activer le support via /etc/mail/access. Pour autoriser l'accès au réseau example.com comme indiqué dans ce livre, ajoutez la ligne suivante à ce fichier : 192.168.122
RELAIS
Pour ce laboratoire, supposons que le système sendmail se trouve sur server1.example.com, avec l'adresse IP 192.168.122.50, et que le système physique se trouve sur maui.example.com sur l'adresse IP 192.168.122.1. Revenez au fichier sendmail.mc, puis regardez cette directive : dnl définir(`SMART_HOST', `smtp.votre.fournisseur')dnl
Machine Translated by Google
42 Chapitre 13 : Serveurs de messagerie électronique
Sur la base des conditions données, vous modifieriez cette directive en définir(`SMART_HOST', `maui.example.com')dnl
Laboratoire 7
Ce TP est assez similaire au TP 2. Bien qu'il existe des options dans les fichiers de configuration de sendmail, la manière la plus efficace de limiter l'accès à un réseau spécifique est toujours d'utiliser une règle de parefeu appropriée basée sur iptables. La règle discutée dans la réponse au Lab 2 fonctionnerait également dans ce cas. Alternativement, vous pouvez configurer les limites d'accès dans le fichier /etc/mail/access, comme Connexion : 192.168.122 OK Connexion : 192.168.100 REJETER
Machine Translated by Google
14 Le Web apache Serveur
OBJECTIFS DE LA CERTIFICATION 14.01
Le serveur Web Apache
14.02
Configuration de sécurité Apache standard
14.03
Répertoires Apache spécialisés
14.04
Hôtes virtuels réguliers et sécurisés
14.05
Déployer une application CGI de base
Exercice de deux minutes Autotest Q&R
Machine Translated by Google
2 Chapitre 14 : Le serveur Web Apache
répartis entre un certain nombre de grandes universités au cours de ces années. Quand AT&T a Unix a été développé par A à la des acnnées 1ombre 960 et dae u ddéveloppeurs ébut des années 1970, et oil était librement commencé à T&T facturer Ufin nix, un ertain n universitaires nt essayé de créer des clones de ce système d'exploitation. L'un de ces clones, Linux, a été développé et publié au début des années 1990.
Bon nombre de ces mêmes universités développaient également le réseau qui s'est développé dans Internet. Avec les améliorations actuelles, cela fait de Linux peutêtre le système d'exploitation réseau le plus compatible avec Internet disponible. Les services réseau étendus disponibles avec Linux ne sont pas seulement les meilleurs dans leur domaine, mais ils créent l'une des platesformes prêtes pour Internet les plus puissantes et les plus utiles disponibles aujourd'hui à tout prix.
Actuellement, Apache est le serveur Web le plus populaire sur Internet. Selon l'enquête Netcraft (www.netcraft.com), qui suit les serveurs Web associés à pratiquement tous les sites sur Internet, Apache est actuellement utilisé par plus de sites Web Internet que tous les autres serveurs Web combinés. Apache est inclus avec RHEL 6.
Ce chapitre traite des concepts de base entourant l'utilisation du web Apache serveur à un niveau de configuration de base.
À L'INTÉRIEUR DE L'EXAMEN À L'INTÉRIEUR DE L'EXAMEN
Ce chapitre aborde directement quatre ■ Configurer les répertoires privés Le objectifs RHCE. Alors que les objectifs répertoire privé sur un serveur Web Apache est spécifient les protocoles HTTP (Hypertext en quelque sorte à michemin entre un site Web Transfer Protocol) et HTTPS (HTTP, sécurisé), normal et un site Web sécurisé. C'est un répertoire il s'agit d'une référence implicite au serveur Web Apache. accessible par un seul utilisateur. ■ Configurer le C'est le seul serveur Web actuellement pris en
charge sur RHEL 6. En général, les sites Web réguliers et sécurisés sont configurés dans des fichiers différents. Les objectifs sont de
■ Configurer un hôte virtuel Les hôtes virtuels sont le pain quotidien d'Apache, qui prend en charge la configuration de plusieurs sites Web sur le même serveur.
contenu géré par le groupe Parfois, des groupes d'utilisateurs doivent Contenir le contenu d'un site Web en commun. Comme les répertoires privés peuvent être configurés pour des utilisateurs individuels dans leurs répertoires personnels, les répertoires peuvent être configurés pour des groupes d'utilisateurs dans un répertoire partagé. ■ Déployer une application CGI de base
Machine Translated by Google
Le serveur Web Apache 3
Ne vous inquiétez pas si vous ne connaissez pas
De plus, il y a la norme exige
l'interface de passerelle commune (CGI). Mais le
pour tous les services réseau, abordés aux chapitres
contenu dynamique des pages Web dépend de scripts
10 et 11. Pour passer en revue, vous devez installer
tels que ceux associés à CGI. Bien que vous n'ayez pas
le service, le faire fonctionner avec SELi nux, vous
à écrire un script CGI, vous devrez configurer Apache
assurer qu'il démarre au démarrage, configurer le service
pour prendre en charge son déploiement ment.
pour un fonctionnement de base et configurer l'utilisateur et l'hôte. la sécurité basée.
OBJECTIF DE CERTIFICATION 14.01
Le serveur Web Apache Apache est de loin le serveur Web le plus utilisé aujourd'hui. Basé sur le démon HTTP (httpd), Apache fournit un accès simple et sécurisé à tous les types de contenu en utilisant le protocole HTTP classique ainsi que son cousin sécurisé HTTPS. Apache a été développé à partir du code serveur créé par le National Center for Supercomputing Applications (NCSA). Il comprenait tellement de correctifs qu'il est devenu connu comme un serveur « inégal ». Le serveur Web Apache continue de faire progresser l'art du Web et fournit l'un des serveurs Web les plus stables, sécurisés, robustes et fiables disponibles. Ce serveur est en développement constant par l'Apache Software Foundation (www.apache.org). Pour obtenir une copie complète de la documentation Apache, assurezvous d'inclure le RPM httpd manual lors du processus d'installation. Il fournira une copie HTML complète du manuel Apache dans le répertoire /var/www/manual.
Apache 2.2 Comme il sied à sa fiabilité et sa stabilité, RHEL 6 inclut une version mise à jour d'Apache 2.2. RHEL 5 comprenait également une version légèrement plus ancienne d'Apache 2.2. Mais peu importe, Apache 2.2 inclus avec RHEL 6 dispose de toutes les mises à jour nécessaires pour prendre en charge les dernières pages Web, avec la meilleure sécurité possible contre les risques associés à Internet.
Machine Translated by Google
4 Chapitre 14 : Le serveur Web Apache
La pile LAMP L'un des pouvoirs d'Apache en tant que serveur Web est la façon dont il peut être intégré à d'autres composants logiciels. La version la plus courante de celleci est connue sous le nom de pile LAMP, qui fait référence à ses composants : Linux, Apache, MySQL et l'un des trois langages de script (Perl, Python ou PHP). Les objectifs RHCE ne vous obligent pas à installer un système de base de données Structured Query Language tel que MySQL (My Structured Query Language) ou tout autre langage de script. Cependant, ils expliquent de nombreux modules disponibles dans le cadre des fichiers de configuration d'Apache. Et bien sûr, Apache fonctionne avec d'autres bases de données SQL ainsi qu'avec d'autres langages de script.
Installation Les packages RPM requis par Apache sont inclus dans le groupe de packages Web Server. La manière la plus simple d'installer Apache après l'installation consiste à utiliser la commande suivante :
# miam installer httpd Mais des packages supplémentaires sont nécessaires. Il peut être plus simple d'installer l'obligatoire et les packages par défaut associés au groupe de packages Web Server avec la commande suivante :
# yum groupinstall "Serveur Web" Si vous ne vous souvenez pas des noms des groupes disponibles, exécutez la commande yum grouplist. La méthode standard pour démarrer les services Linux consiste à utiliser un script dans le répertoire /etc/init.d. Il contient un script httpd. Cependant, vous pouvez arrêter et démarrer Apache, ainsi que recharger le fichier de configuration gracieusement avec les commandes suivantes :
# apachectl stop # apachectl start # apachectl gracieux Aucune configuration n'est requise pour le fonctionnement le plus élémentaire. Une fois Apache en cours d'exécution, démarrez un navigateur Web et entrez une URL de http://localhost. Par exemple, la Figure 141 affiche la page d'accueil par défaut d'Apache, basée sur la configuration par défaut, dans le navigateur Web elinks. La page Web est basée sur le contenu du fichier /etc/httpd/conf.d/welcome.conf, qui fait référence au fichier /var/www/error/noindex.html pour plus d'informations.
Machine Translated by Google
Le serveur Web Apache 5
FIGURE 141 Installé par défaut Maison apache page
EXERCICE 141
Installer le serveur Apache Dans cet exercice, vous allez installer tous les packages généralement associés au serveur Apache. Ensuite, vous configurerez le système pour qu'Apache soit actif au prochain démarrage de Linux. La torsion ici est que vous ferez tout à partir de l'interface de ligne de commande. Cela suppose que vous avez déjà suivi les étapes décrites au chapitre 7 pour vous enregistrer auprès de Red Hat Network ou connecter le système au support RHEL 6 (ou reconstruire le DVD) en tant que référentiel. 1. Si vous êtes dans l'interface graphique, ouvrez une console de ligne de commande. Appuyez sur ALTF2 et connectezvous en tant que
l'utilisateur racine. 2. Exécutez la commande suivante pour passer en revue les groupes disponibles. Vous devriez voir "Web Server" vers la fin de la liste. # miam infos de groupe
Machine Translated by Google
6 Chapitre 14 : Le serveur Web Apache
3. Vous pouvez installer tous les packages par défaut dans le groupe de packages "Web Server" avec la commande suivante :
# yum groupinstall "Serveur Web" Si vous installez simplement le package httpd RPM, d'autres packages importants peuvent ne pas être installés, y compris mod_ssl, pour les sites Web sécurisés cités dans les objectifs RHCE.
4. Exécutez la commande suivante pour voir si Apache est déjà configuré pour démarrer dans tous les niveaux d'exécution :
# chkconfig list httpd 5. Utilisez maintenant la commande suivante pour vous assurer qu'Apache démarre aux niveaux d'exécution 2, 3, 4 et 5 au prochain démarrage normal de Linux :
# chkconfig httpd sur 6. Démarrez le service Apache avec la commande suivante :
# début apachectl 7. Si vous ne l'avez pas déjà fait au chapitre 2, installez un navigateur Web textuel. La norme RHEL 6 est elinks, que vous pouvez installer avec la commande suivante :
# yum installer des elinks 8. Démarrez maintenant le navigateur ELinks, pointant vers le système local, avec les commande : # liens électroniques 127.0.0.1
9. Vérifiez le résultat. Voyezvous la page de test Apache ? 10. Quittez le navigateur ELinks. Appuyez sur Q, et lorsque le menu texte Quitter ELinks apparaît, appuyez sur Y pour quitter Elinks. 11. Sauvegardez le fichier de configuration httpd.conf par défaut ; un emplacement logique est votre répertoire personnel. 12. Exécutez la commande rpm q httpdmanual pour confirmer l'installation de la documentation Apache. Étant donné que ce package fait partie par défaut du groupe de packages Web Server, vous ne devriez pas recevoir de message "Paquet non installé".
Machine Translated by Google
Le serveur Web Apache 7
Mais si vous recevez ce message, installez ce package avec la commande yum httpdman ual.
Les fichiers de configuration d'Apache Les deux fichiers de configuration clés pour le serveur Web Apache sont httpd.conf dans le répertoire /etc/httpd/conf et ssl.conf dans le répertoire /etc/httpd/conf.d. Les versions par défaut de ces fichiers créent un service de serveur Web générique. Il existe d'autres fichiers de configuration dans deux répertoires : /etc/httpd/conf et /etc/httpd/conf.d. Ils sont illustrés à la Figure 142. Apache peut fonctionner avec de nombreux autres logiciels, tels que Python, PHP, le serveur Squid Proxy, etc. S'ils sont installés, les fichiers de configuration associés se trouvent généralement dans le répertoire /etc/httpd/conf. Pour configurer un serveur Web standard et un serveur Web sécurisé, vous devez comprendre en détail les fichiers de configuration httpd.conf et ssl.conf.
Analyser la configuration Apache par défaut Apache est livré avec un ensemble bien commenté de fichiers de configuration par défaut. Dans cette section, vous allez examiner certaines directives clés du fichier de configuration httpd.conf. Parcourez ce fichier dans votre éditeur de texte préféré ou à l'aide d'un pager de commande tel que less. Avant de commencer cette analyse, rappelezvous que le fichier de configuration principal d'Apache intègre les fichiers du répertoire /etc/httpd/conf.d avec la directive suivante :
Inclure conf.d/*.conf Il existe quelques constructions de base dans httpd.conf. Tout d'abord, les répertoires, fichiers et modules sont configurés dans des "conteneurs". Le début du conteneur commence par
FIGURE 142 Fichiers de configuration Apache
Machine Translated by Google
8 Chapitre 14 : Le serveur Web Apache
le nom du répertoire, du fichier ou du module à configurer, contenu entre parenthèses directionnelles (). Des exemples de ceci incluent
La fin du conteneur est également une expression entre crochets (), qui commence avec une barre oblique (/). Pour les mêmes exemples, les extrémités des conteneurs ressembleraient à
Ensuite, Apache inclut un nombre substantiel de directives, des commandes qu'Apache peut comprendre et qui ressemblent un peu à l'anglais. Par exemple, la directive ExecCGI prend en charge les scripts CGI exécutables. Bien que cela donne un aperçu, le diable est souvent dans les détails, qui sont analysés (brièvement) dans la section suivante. Si vous avez installé le RPM httpdmanual, démarrez le serveur Apache et accédez à http://localhost/manual.
Le fichier de configuration principal d'Apache Cette section examine le fichier de configuration Apache par défaut, httpd.conf. Je vous recommande de suivre un système de test tel que server1.example.com. Seules les directives actives par défaut de ce fichier sont abordées ici. Lisez les commentaires; ils incluent plus d'informations et d'options. Une fois Apache et les RPM httpdmanual installés conformément à l'exercice 141, reportezvous à http://localhost/manual/mod/quickreference.html. Il fournira des informations détaillées sur chaque directive. Les directives par défaut sont résumées dans les trois tableaux suivants. Le Tableau 141 spécifie les directives associées à la Section 1 : Environnement mondial. Dans les trois tableaux, les directives sont répertoriées dans l'ordre indiqué dans la version par défaut de httpd.conf. Si vous souhaitez expérimenter différentes valeurs pour chaque directive, enregistrez la modification, puis utilisez apachectl restart pour redémarrer le démon Apache ou apachectl graceful pour simplement relire les fichiers de configuration Apache. Le Tableau 142 spécifie les directives associées à la Section 2 : Configuration du serveur principal.
Machine Translated by Google
Le serveur Web Apache 9
TABLEAU 141
Mondial
Directiv Jetons de serveur
Spécifie le code de réponse au bas des pages d'erreur ; les options incluent OS, Prod, Major, Minor, Min et Full.
Environnement Directives
Description
Racine du serveur
Définit le répertoire par défaut ; les autres directives sont des sousrépertoires.
FichierPid
Nomme le fichier avec l'ID de processus (et verrouille le service).
Temps libre
Limite le temps d'accès pour les messages envoyés et reçus.
Rester en vie
Prend en charge les connexions persistantes.
MaxKeepAliveRequestsMaxKeepAliveRequestsMaxKeepAliveRequests
Limite les demandes pendant les connexions persistantes (sauf si défini sur 0, ce qui n'est pas une limite).
KeepAliveTimeout
Définit un délai, en secondes, avant la fermeture d'une connexion.
Démarrer les serveurs
Ajoute des processus Apache enfants ; normalement défini sur 8, ce qui signifie que 9 processus Apache s'exécutent au démarrage.
MinSpareServers
Spécifie un nombre minimum de serveurs enfants inactifs.
MaxSpareServers
Spécifie un nombre maximal de serveurs enfants inactifs ; toujours au moins +1 supérieur à MinSpareServers.
ServerLimit
Définit une limite sur les processus configurables ; ne peut pas dépasser 20000.
Les clients de Max
Limite le nombre de requêtes simultanées ; les autres requêtes au serveur n'ont qu'à attendre.
MaxRequestsPerChild
Limite les requêtes par processus de serveur enfant.
MinSpareThreads
Spécifie le nombre minimum de threads de rechange pour gérer les demandes supplémentaires.
MaxSpareThreads
Spécifie le nombre maximal de threads inactifs disponibles pour gérer les demandes supplémentaires.
ThreadsParEnfant
Écouter
Définit le nombre de threads par processus serveur enfant. Spécifie un port et éventuellement une adresse IP (pour les systèmes multirésidents) pour écouter les requêtes.
ChargerModule
Charge divers composants modulaires, tels que l'authentification, le suivi des utilisateurs, les fichiers exécutables, etc.
Inclure
Ajoute le contenu d'autres fichiers de configuration.
Utilisateur
Spécifie le nom d'utilisateur exécuté par Apache sur le système local.
Groupe
Spécifie le nom du groupe exécuté par Apache sur le système local.
Machine Translated by Google
10 Chapitre 14 : Le serveur Web Apache
TABLEAU 142
Directives de configuration du serveur principal
Directiv Administrateur du serveur
Description Définit l'adresse email administrative ; peuvent être affichés (ou liés à) sur les pages d'erreur par défaut.
UseCanonicalName Prend en charge l'utilisation de ServerName comme URL référencée. DocumentRoot
Attribue le répertoire racine des fichiers du site Web.
Choix
Spécifie les fonctionnalités associées aux répertoires Web, telles que ExecCGI, FollowSymLinks, Include, Indexes, MultiViews et SymLinksIfOwnerMatch.
Autoriser Override
Prend en charge le remplacement des directives précédentes des fichiers .htaccess.
Commande
Définit la séquence d'évaluation des directives Allow et Deny.
Permettre
Configure les ordinateurs hôtes auxquels l'accès est autorisé.
Refuser
Configure les ordinateurs hôtes dont l'accès est refusé.
UserDir
Spécifie l'emplacement des répertoires d'utilisateurs ; peut être configuré pour activer ou désactiver pour tous les utilisateurs ou ceux spécifiés.
DirectoryIndex
Spécifie les fichiers à rechercher lors de la navigation vers un répertoire ; défini sur index.html par défaut.
AccessFileName
Définit un nom de fichier dans un répertoire pour plus de directives ; recherche normalement .htaccess.
Satisfaire
Spécifie le résultat lorsque les restrictions d'utilisateur et d'hôte sont utilisées ; peut être défini sur Tout ou Tout.
TypesConfig
Localise mime.types, qui spécifie les types de fichiers associés aux extensions.
Type par défaut
Définit un type de fichier par défaut s'il n'est pas trouvé dans mime.types.
MIMEMagicFile
Regarde normalement dans /etc/httpd/conf/magic pour rechercher dans un fichier son type MIME.
Recherches de nom d'hôte
Nécessite des recherches d'URL pour les adresses IP ; les résultats sont enregistrés.
Journal des erreurs
Localise le fichier journal des erreurs, par rapport à ServerRoot.
LogLevel
Spécifie le niveau des messages de journal.
LogFormat
Définit les informations incluses dans les fichiers journaux.
Journal personnalisé
Crée un fichier journal personnalisé, dans un format différent, avec un emplacement relatif à ServerRoot.
Signature du serveur
Ajoute une liste avec la version du serveur et éventuellement l'adresse email ServerAdmin aux pages d'erreur et aux listes de fichiers ; peut être activé, désactivé ou email.
Alias DAVLockDB
Configure un emplacement de répertoire ; similaire à un lien symbolique. Spécifie le chemin d'accès au fichier de verrouillage de la base de données WebDAV (Webbased Distributed Authoring and Versioning).
ScriptAlias
Similaire à Alias ; pour les scripts.
IndexOptions
Spécifie comment les fichiers sont répertoriés à partir d'un DirectoryIndex.
Machine Translated by Google
Le serveur Web Apache 11
TABLEAU 142
Directives de configuration du serveur principal (suite)
Directiv
Description
AddIconByEncoding Attribue une icône à un fichier par encodage MIME. AddIconByType Attribue une icône à un fichier par type MIME. Ajouter une icône
Attribue une icône à un fichier par extension.
Icône par défaut
Définit une icône par défaut pour les fichiers non configurés autrement.
NomLisezmoi
Configure un emplacement pour un fichier README à associer à une liste de répertoires.
NomEntête
Configure un emplacement pour qu'un fichier HEADER aille avec une liste de répertoires.
IndexIgnorer
Ajoute des fichiers qui ne sont pas inclus dans une liste de répertoires.
AjouterLangue
Attribue une langue pour les extensions de nom de fichier.
LanguagePriorité
Définit une priorité des langues si elles ne sont pas configurées dans les navigateurs clients.
ForceLanguagePriority Spécifie une action si une page Web dans la langue préférée est introuvable. Ajouter un jeu de caractères par défaut
Définit un jeu de caractères par défaut ; vous devrez peutêtre le changer pour différentes langues.
AjouterType
Associe les extensions de nom de fichier à un type de contenu spécifié.
AddHandler
Associe les extensions de nom de fichier à un gestionnaire spécifié ; couramment utilisé pour les scripts ou plusieurs langues.
Ajouter un filtre de sortie
Associe les extensions de nom de fichier à un filtre spécifié.
NavigateurMatch
Personnalise les réponses aux différents clients du navigateur.
Le Tableau 143 spécifie les directives associées à la Section 3 : Hôtes virtuels. Alors que Les directives d'hôte virtuel sont désactivées par défaut, j'inclus ces directives dans l'exemple commenté vers la fin du fichier httpd.conf par défaut. Bien que ces directives aient déjà été utilisées dans d'autres sections, vous pouvez (et devriez généralement) les personnaliser pour des hôtes virtuels individuels afin de prendre en charge différents sites Web sur le même serveur Apache. Dans de nombreux cas, chaque strophe d'hôte virtuel inclura des directives de la partie principale du fichier de configuration httpd.conf, personnalisées pour cet hôte virtuel.
Configuration Apache de base pour un serveur Web simple Comme décrit précédemment, Apache recherche les pages Web dans le répertoire spécifié par la directive DocumentRoot. Dans le fichier httpd.conf par défaut, cette directive pointe vers le répertoire /var/www/html. En d'autres termes, tout ce dont vous avez besoin pour que votre serveur Web soit opérationnel est de transférer les pages Web vers le répertoire /var/www/html.
Machine Translated by Google
12 Chapitre 14 : Le serveur Web Apache
TABLEAU 143
Hôte virtuel Configuration Directives
Directiv
Description
NameVirtualHost Spécifie une adresse IP et un numéro de port pour plusieurs hôtes virtuels. Administrateur du serveur
Attribue une adresse email pour l'hôte virtuel spécifié.
DocumentRoot
Définit un répertoire racine pour l'hôte virtuel.
Nom du serveur
Nomme l'URL de l'hôte virtuel.
Journal des erreurs
Crée un journal des erreurs ; l'emplacement est basé sur DocumentRoot.
Journal personnalisé
Crée un journal personnalisé ; l'emplacement est basé sur DocumentRoot.
La directive DirectoryIndex par défaut recherche un fichier de page Web index.html dans ce répertoire. Une page index.html RHEL 6 standard est disponible dans le répertoire /usr/ share/doc/HTML/enUS. Copiez ce fichier dans le répertoire /var/www/html et accédez à http:// localhost avec un navigateur tel que ELinks. L'emplacement de base des fichiers de configuration et journaux est déterminé par la directive ServerRoot. La valeur par défaut de httpd.conf est
Racine du serveur "/etc/httpd" La figure 141 confirme que les principaux fichiers de configuration d'Apache sont stockés dans les sousrépertoires conf/ et conf.d/ du ServerRoot. Exécutez la commande ls l /etc/httpd. Notez les répertoires à liens symboliques. Vous devriez voir un lien du répertoire /etc/httpd/logs vers le répertoire contenant les fichiers journaux réels, /var/log/httpd.
Fichiers journaux Apache Comme suggéré précédemment, alors que les fichiers journaux Apache sont configurés dans le répertoire /etc/httpd/logs, ils sont en fait stockés dans le répertoire /var/log/httpd. Les informations de journalisation standard d'Apache sont stockées dans deux fichiers journaux de base. Des fichiers journaux personnalisés peuvent également être configurés. Ces fichiers journaux peuvent avoir des noms différents, selon la configuration des hôtes virtuels, la configuration des sites Web sécurisés et la rotation des journaux. Sur la base des fichiers de configuration Apache standard, les tentatives d'accès sont consignées dans le fichier access_log et les erreurs sont enregistrées dans le fichier error_log. Les fichiers journaux sécurisés standard incluent ssl_access_log, ssl_error_log et ssl_request_log.
Machine Translated by Google
Le serveur Web Apache 13
En général, il est utile de configurer différents ensembles de fichiers journaux pour différents sites Web. Pour À cette fin, vous devez configurer différents fichiers journaux pour les versions sécurisées d'un site Web. Le trafic sur un site web est important lors du choix d'une fréquence de rotation des logs. Il existe des formats de fichier journal Apache standard. Pour plus d'informations, consultez la directive LogFormat de la figure 143. Quatre formats différents sont affichés : combiné, commun, le référent (la page Web avec le lien utilisé pour accéder à votre site) et l'agent (le navigateur Web de l'utilisateur). Les deux premières lignes LogFormat incluent un certain nombre de signes de pourcentage suivis de lettres minuscules. Ces directives déterminent ce qui entre dans le journal.
Vous pouvez ensuite utiliser la directive CustomLog pour sélectionner un emplacement pour le fichier journal, tel que logs/special_access_log, et le format de fichier journal souhaité, tel que common. Pour plus d'informations sur les fichiers journaux et les formats, reportezvous à http://localhost/manual/logs.html. Certains analyseurs de journaux Web ont des exigences spécifiques pour les formats de fichiers journaux. Par exemple, l'outil open source populaire awstats (statistiques Web avancées) nécessite le format de journal combiné. Il ne fonctionnera pas si vous laissez le format commun par défaut. Awstats est un excellent outil pour afficher graphiquement l'activité du site. Vous pouvez le télécharger à partir d'un site tel que www.sourceforge.net.
FIGURE 143 Formats de journaux spécifiques
Machine Translated by Google
14 Chapitre 14 : Le serveur Web Apache
OBJECTIF DE CERTIFICATION 14.02
Configuration de sécurité Apache standard Vous pouvez configurer plusieurs couches de sécurité pour le serveur Web Apache. Les parefeu basés sur la commande iptables peuvent limiter l'accès à des hôtes spécifiques. Les options de sécurité basées sur les règles des fichiers de configuration Apache peuvent également être utilisées pour limiter l'accès à des utilisateurs, groupes et hôtes spécifiques. Bien entendu, les sites Web Apache sécurisés peuvent crypter les communications. En cas de problème, SELinux peut limiter les risques.
Ports et parefeu Avec les directives Listen et NameVirtualHost, le serveur Web Apache spécifie les ports de communication standard associés aux protocoles HTTP et HTTPS, 80 et 443. Pour autoriser la communication externe via les ports indiqués, vous pouvez configurer les deux ports en tant que services de confiance dans le parefeu. Outil de paramétrage.
Bien sûr, pour les systèmes où HTTP et HTTPS sont configurés sur des ports non standard, vous devrez ajuster les règles iptables associées en conséquence. Si vous ouvrez simplement ces ports sans discernement, cela autorise le trafic de tous les systèmes. Il peut être approprié de mettre en place une règle personnalisée pour limiter l'accès à un ou plusieurs systèmes ou réseaux. Par exemple, les règles personnalisées suivantes autorisent l'accès à tous les systèmes du réseau 192.168.122.0, à l'exception de celui dont l'adresse IP est 192.168.122.150, sur le port 80. Pour rappel, ces règles sont appliquées à la commande iptables, dans l'ordre.
A ENTRÉE m état état NOUVEAU m tcp p tcp s 192.168.122.150 dport 80 j REJETER A ENTRÉE m état état NOUVEAU m tcp p tcp s 192.168.122.0/ 24 dport 80 j ACCEPTER
Des règles similaires peuvent être requises pour le port 443. Bien sûr, cela dépend des exigences du poste et éventuellement de l'examen RHCE.
Apache et SELinux Jetez un œil aux paramètres SELinux associés à Apache. Pour passer en revue, les paramètres SELinux, en ce qui concerne un service, appartiennent principalement à deux catégories : les paramètres booléens et les étiquettes de fichier. Commencez par les étiquettes de fichier.
Machine Translated by Google
Configuration de sécurité Apache standard 15
Étiquettes de fichier Apache et SELinux Les étiquettes de fichier par défaut pour les fichiers de configuration Apache sont cohérentes, comme indiqué dans la sortie des commandes ls Z /etc/httpd et ls Z /var/www. Les fichiers individuels utilisent les mêmes contextes que leur répertoire. Les différences dans les contextes de fichier sont présentées dans le Tableau 144. Les cinq premiers ne sont que les contextes SELinux par défaut pour les répertoires standard. Pour les sites Web où les scripts lisent et/ou ajoutent des données aux formulaires Web, vous devez considérer les deux derniers contextes, qui prennent en charge l'accès en lecture/écriture (rw) et en lecture/ajout (ra).
Créer un répertoire Web spécial Dans de nombreux cas, vous créerez des répertoires dédiés pour chaque site Web virtuel. Il est préférable de séparer les fichiers de chaque site Web dans sa propre arborescence de répertoires. Mais avec SELinux, vous ne pouvez pas simplement créer un répertoire Web spécial. Vous voudrez vous assurer que le nouveau répertoire correspond au moins aux contextes SELinux du répertoire /var/www par défaut. Exécutez la commande ls Z /var/www. Notez les contextes SELinux. Pour la plupart des répertoires, le contexte utilisateur est system_u et le type est http_sys_content_t. Pour un répertoire /www nouvellement créé, vous pouvez simplement modifier les contextes SELinux avec les commandes suivantes. Le R applique les modifications de manière récursive, de sorte que les nouveaux contextes sont appliqués aux fichiers et sousrépertoires.
# chcon R u system_u /www/ # chcon R t httpd_sys_content_t /www/ Bien sûr, si des scripts sont requis pour le site Web associé, vous souhaiterez exécuter le commande suivante pour s'assurer que les modifications SELinux survivent à un changement d'étiquette :
# semanage fcontext a s system_u t httpd_sys_content_t /www/ TABLEAU 144
Annuaire
Type de contexte SELinux
Fichier SELinux
/etc/httpd, /etc/httpd/conf, /etc/httpd/conf.d, /var/run/httpd httpd_config_t /usr/lib64/
Contextes
httpd/modules /var/log/httpd
httpd_modules_t httpd_log_t
/var/www, /var/www/error, /var/www/html, /var/www/icons, / var/www/manual, /var/www/usage /var/www/cgibin n/a
httpd_sys_content_t httpd_sys_script_exec_t httpd_sys_content_rw_t
n / A
httpd_sys_content_ra_t
Machine Translated by Google
16 Chapitre 14 : Le serveur Web Apache
Cette commande crée un fichier file_contexts.local dans le répertoire /etc/selinux/ targeted/contexts/files. S'il existe également un sousrépertoire cgibin/, vous souhaiterez également configurer les contextes appropriés pour ce sousrépertoire avec la commande suivante :
# semanage fcontext a s system_u t httpd_sys_script_exec_t \ /www/cgibin/
Paramètres booléens Apache et SELinux Les paramètres booléens sont plus étendus. À des fins d'affichage, je les ai isolés dans l'outil d'administration SELinux, comme illustré à la figure 144. Seuls quelques paramètres booléens SELinux sont activés par défaut, et ils sont décrits dans le Tableau 145.
FIGURE 144
Paramètres booléens SELinux liés à Apache
Machine Translated by Google
Configuration de sécurité Apache standard 17
TABLEAU 145
Booléen actif
Description
Actif par défaut
httpd_builtin_scripting
Lié à Apache Booléen SELinux
Fournit des autorisations aux scripts dans les répertoires étiquetés httpd_t ; parfois utilisé pour le contenu PHP.
httpd_dbus_avahi
Prend en charge l'accès des services HTTP à la configuration automatisée des adresses IP.
httpd_enable_cgi
Permet aux services HTTP d'exécuter des scripts GCI, étiquetés avec le type httpd_sys_script_exec_t.
httpd_tty_comm
Permet la communication avec les terminaux de contrôle ; utile pour les certificats SSL.
httpd_unified
Prend en charge l'accès complet en lecture/écriture/exécution par tous les fichiers httpd_t.
Paramètres
xguest_connect_network Autorise l'accès à partir d'invités sécurisés.
Parmi les nombreuses autres options SELinux, celle qui intéresse particulièrement ce chapitre est httpd_enable_homedirs, qui prend en charge l'accès aux fichiers à partir des répertoires personnels des utilisateurs. D'autres scripts potentiellement intéressants concernent les interactions avec d'autres services, en particulier httpd_enable_ftp_server, httpd_use_cifs et httpd_use_nfs. Ces options permettent à Apache d'agir comme un serveur FTP, ainsi que de lire les répertoires Samba/NFS partagés. Les utilisations de ces options et des autres options liées à Apache SELinux non activées de la Figure 144 sont résumées dans le Tableau 146. Toutes les descriptions sont basées sur la perspective "que se passeraitil si le booléen était activé ?" Pour varier, les termes HTTP et Apache sont utilisés de manière interchangeable ; à proprement parler, Apache est une option pour les services HTTP et HTTPS.
Gestion des modules Le serveur Web Apache comprend de nombreuses fonctionnalités modulaires. Par exemple, il n'est pas possible de configurer des sites Web sécurisés par SSL sans le package mod_ssl, qui inclut le module mod_ssl.so avec le fichier de configuration ssl.conf. Un certain nombre d'autres systèmes similaires sont organisés en modules. Les modules chargés sont inclus dans les fichiers de configuration standard d'Apache avec la directive LoadModule. Une liste complète des modules disponibles se trouve dans le répertoire /usr/lib64/httpd/modules (pour les systèmes 32 bits, le répertoire est /usr/lib/httpd/modules). Mais les modules disponibles ne sont pas utilisés à moins qu'ils ne soient chargés avec la directive LoadModule dans les fichiers de configuration Apache appropriés.
Machine Translated by Google
18 Chapitre 14 : Le serveur Web Apache
TABLEAU 146
Paramètres booléens SELinux liés à Apache inactifs par défaut
Booléen inactif allow_httpd_anon_write
Description Permet au serveur Web d'écrire dans des fichiers étiquetés avec le type de fichier public_content_rw_t.
allow_httpd_mod_auth_ntlm_winbind Prend en charge l'accès aux bases de données d'authentification Microsoft, si le Le module mod_auth_ntlm_winbind est chargé. allow_httpd_mod_auth_pam
Active l'accès aux modules d'authentification PAM, si le module mod_auth_pam est chargé.
allow_httpd_sys_script_anon_write
Configure l'accès en écriture par des scripts aux fichiers étiquetés avec le type de fichier public_content_rw_t.
httpd_can_check_spam httpd_can_network_connect
Fonctionne avec les applications de messagerie Web pour rechercher les spams. Prend en charge l'accès Apache aux connexions sur les ports distants ; normalement désactivé pour minimiser les risques d'attaques sur d'autres systèmes.
httpd_can_network_connect_cobbler Permet à Apache de se connecter au serveur d'installation Cobbler ; ne doit pas être activé simultanément avec httpd_cannetwork_connect. httpd_can_network_connect_db
Permet à Apache de se connecter à un serveur de base de données.
httpd_can_network_memcache
Active l'accès à la mise en cache de la mémoire HTTP ; configuré à l'origine pour un serveur de traduction.
httpd_can_network_relay
Prend en charge l'utilisation du service HTTP en tant que proxy.
httpd_can_sendmail
Autorise l'utilisation de services de messagerie basés sur HTTP ; ne nécessite pas l'utilisation du serveur SMTP sendmail décrit au chapitre 13.
httpd_enable_homedirs
Configure l'accès via HTTP aux fichiers dans les répertoires d'accueil des utilisateurs.
httpd_execmem
Prend en charge le fonctionnement des programmes exécutables qui nécessitent des adresses de mémoire exécutables et inscriptibles ; normalement désactivé pour minimiser le risque de débordement de tampon.
httpd_read_user_content
Permet d'accéder aux scripts à partir des répertoires d'accueil des utilisateurs.
httpd_setrlimit httpd_ssi_exec
Permet à Apache de modifier le nombre maximum de descripteurs de fichiers. Permet à Apache d'accéder aux scripts Server Side Include (SSI) ; similaire à httpd_enable_cgi.
httpd_tmp_exec
Prend en charge les scripts basés sur Apache qui nécessitent un accès au répertoire / tmp.
httpd_use_cifs
Active l'accès Apache aux répertoires Samba partagés, lorsqu'ils sont étiquetés avec le type de fichier cifs_t.
httpd_use_gpg httpd_use_nfs
Autorise l'accès aux systèmes nécessitant un cryptage GPG. Active l'accès Apache aux répertoires Samba partagés, lorsqu'ils sont étiquetés avec le type de fichier nfs_t.
Machine Translated by Google
Configuration de sécurité Apache standard 19
Sécurité dans Apache Vous avez lu (et, espéronsle, testé) les options de sécurité Apache liées aux parefeu basés sur iptables ainsi qu'à SELinux. Vous allez maintenant examiner les options de sécurité disponibles dans le fichier de configuration principal d'Apache, httpd.conf. Ce fichier peut être modifié pour sécuriser l'ensemble du serveur ou pour configurer la sécurité répertoire par répertoire. L'annuaire contrôle l'accès sécurisé par le serveur, ainsi que les utilisateurs qui se connectent aux sites Web sur le serveur. Pour explorer les bases de la sécurité Apache, commencez par la première ligne active par défaut dans httpd.conf : Système d'exploitation ServerTokens
Cette ligne semble trompeusement simple; il limite les informations affichées sur un site Web serveur vous naviguez vers une page inexistante au message suivant :
Serveur Apache/2.2.15 (Red Hat) sur le port 80 de l'hôte local Comparez cette sortie avec ce qui se passe avec une ligne ServerTokens Full :
Apache/2.2.15 (Red Hat) DAV/2 mod_ssl/2.2.15 OpenSSL/1.0.0fips mod_wsgi/3.2 Python/2.6.5 mod_perl/2.0.4 Perl/v5.10.1 Serveur sur l'hôte local Port 80 En d'autres termes, avec une option, les personnes extérieures peuvent voir si des modules tels que Perl, Python et PHP ont été chargés, ainsi que leurs numéros de version. Comme tout le monde ne met pas à jour son logiciel en temps opportun, que se passetil lorsqu'un cracker voit une version qui a été compromise, vos serveurs seront confrontés à des risques supplémentaires. Ensuite, vous pouvez restreindre l'accès au répertoire défini par la directive ServerRoot comme indiqué ici :
Options Suivre les liens symboliques
AllowOverride Aucun
Cela configure un ensemble très restrictif d'autorisations. La ligne Options FollowSymLinks prend en charge l'utilisation de liens symboliques pour les pages Web. La ligne AllowOverride None désactive tous les fichiers .htaccess. La directive ServerRoot pointe vers /etc/httpd, qui contient les fichiers de configuration Apache. Sans la ligne AllowOverride None, un pirate qui insère un fichier .htaccess malveillant peut configurer des autorisations permettant à tout utilisateur de modifier ces fichiers de configuration. Cependant, il existe une utilisation appropriée pour les fichiers .htaccess. Par exemple, lorsqu'il est placé dans un sousrépertoire tel que /www/html/project, il peut être utilisé pour autoriser l'accès à un groupe, et de telles modifications ne s'appliqueront qu'à ce répertoire.
Machine Translated by Google
20 Chapitre 14 : Le serveur Web Apache
Vous pouvez améliorer cela en limitant l'accès à tous les utilisateurs sauf explicitement autorisés, en en ajoutant les commandes suivantes au conteneur souhaité : Commande refusée, autoriser
Refuser de tout L'exemple de conteneur suivant limite l'accès à /var/www/html, qui correspond à la directive DocumentRoot par défaut (bien que ces directives soient divisées par de nombreux commentaires, elles sont toutes dans la même strophe) :
Index des options FollowSymLinks AllowOverride Aucun Commander autoriser, refuser
Autoriser de tous
La directive Options est différente ; le paramètre Index permet aux lecteurs de voir une liste de fichiers sur le serveur Web si aucun fichier index.html n'est présent dans le répertoire spécifié. Les lignes Commander et Autoriser permettent à tous les utilisateurs d'accéder aux pages Web de ce serveur. Mais attendez une seconde ! Par défaut, il n'y a pas de fichiers dans le répertoire /var/www/html. Sur la base de la description, vous devez naviguer vers le système en question et voir l'écran illustré à la Figure 145. Comme il n'y a pas de fichiers dans le répertoire /var/www/html, aucun fichier n'est affiché dans la sortie.
Cependant, lorsque vous accédez au site Web par défaut associé à Apache serveur, la page illustrée à la Figure 146 s'affiche. Pour plus d'informations sur la manière dont cela a fonctionné, reportezvous à l'exercice 142.
FIGURE 145
Accédez à un index des fichiers
Machine Translated by Google
Configuration de sécurité Apache standard 21
FIGURE 146 Naviguez jusqu'au page de test Apache par défaut
Enfin, la directive Listen définit l'adresse IP et le port TCP/IP de ce serveur. Par exemple, la valeur par défaut cidessous signifie que ce serveur fonctionnera avec chaque ordinateur qui demande une page Web à partir de l'une des adresses IP de votre ordinateur sur le port TCP/IP standard, 80 : Écoutez 80
Si plusieurs adresses IP sont disponibles sur le système local, la directive Listen peut être utilisée pour limiter l'accès à une adresse IP spécifique. Par exemple, si un système possède deux cartes réseau avec les adresses IP 192.168.0.200 et 192.168.122.1, la directive suivante peut aider à limiter l'accès aux systèmes sur le réseau 192.168.122.0 : Écoutez 192.168.122.1:80
Les objectifs RHCE
Pour les sites Web sécurisés, il existe une seconde directive Listen dans le fichier ssl.conf du
suggèrent que vous devez être prêt à confi
répertoire /etc/httpd/conf.d. Les données de ce
gurer des sites Web HTTP standard et HTTPS sécurisés.
fichier sont automatiquement incorporées dans la configuration globale d'Apache, grâce à une directive décrite dans l'exercice 142. Il comprend
Machine Translated by Google
22 Chapitre 14 : Le serveur Web Apache
la directive suivante, qui pointe vers le port HTTP sécurisé par défaut (HTTPS) pour TCP/IP, 443 : Écoutez 443
EXERCICE 142 L'accueil d'Apache et l'histoire de noindex.html Dans cet exercice, vous tracerez l'histoire de la page de test standard associée au serveur Web Apache, comme celle illustrée à la figure 146. Cet exercice suppose que le package httpd est déjà installé et que le service Apache est en cours d'exécution. Vous verrez également ce qui se passe lorsque le chemin d'accès à cette page Web est cassé, avec un index d'un tas de fichiers de test dans le répertoire /var/www/html. 1. Ouvrez le fichier httpd.conf dans le répertoire /etc/httpd/conf. Trouvez la ligne suivante :
Inclure conf.d/*.conf 2. Recherchez la directive ServerRoot dans le même fichier. Il doit se lire comme suit :
Racine du serveur /etc/httpd De plus, notez la ligne Alias /error/ « /var/www/error/ ». Vous aurez besoin de ces informations sous peu. 3. Mettez l'effet des deux directives ensemble. En d'autres termes, le La directive Include conf.d/*.conf inclut le contenu des fichiers *.conf du répertoire / etc/httpd/conf.d dans la configuration Apache. Quittez le fichier httpd.conf. 4. Accédez au répertoire /etc/httpd/conf.d. Ouvrez le fichier welcome.conf. 5. Notez la page ErrorDocument. Bien qu'il pointe vers le fichier /error/noindex.html, il est basé sur la directive Alias susmentionnée. En d'autres termes, vous devriez pouvoir trouver le fichier noindex.html dans le répertoire /var/www/error. 6. Jetez un œil au fichier /var/www/error/noindex.html. Pour l'ouvrir dans le Navigateur ELinks, exécutez la commande elinks /var/www/error/noindex.html. La page Web qui apparaît devrait maintenant être familière. 7. Quittez le navigateur. Déplacez le fichier welcome.conf du répertoire /etc/httpd/conf vers un emplacement de sauvegarde. 8. Redémarrez le service Apache avec la commande apachectl restart.
Machine Translated by Google
Configuration de sécurité Apache standard 23
9. Accédez au système localhost avec la commande elinks http://127.0.0.1. Que voistu? 10. Ouvrez un deuxième terminal, accédez au répertoire /var/www/html et exécutez la commande tactile test1 test2 test3 test4. 11. Rechargez le navigateur dans le terminal d'origine. Que voistu? 12. Quittez le navigateur. Restaurez le fichier welcome.conf dans /etc/httpd/conf.d annuaire.
EXERCICE 143 Créer une liste de fichiers Dans cet exercice, vous allez configurer une liste de fichiers à partager avec d'autres personnes qui accèdent à votre serveur Web. Le processus est assez simple; vous allez configurer un parefeu approprié, créer un sousrépertoire de DocumentRoot, le remplir avec plusieurs fichiers, configurer les contextes de sécurité appropriés et activer Apache. 1. Assurezvous que le parefeu ne bloque pas l'accès au port 80. Une façon de le faire est d'utiliser l'outil de configuration du parefeu Red Hat, que vous pouvez démarrer avec la commande systemconfigfirewall. Dans la section Services de confiance, assurezvous d'autoriser les connexions WWW (HTTP) entrantes. Vous pouvez également utiliser les instructions spécifiées précédemment pour un parefeu personnalisé. 2. Créez un sousrépertoire de DocumentRoot. Dans le /etc/httpd/conf par défaut /httpd.conf, c'est /var/www/html. Pour cet exercice, j'ai créé le répertoire /var /www/html/ help. 3. Copiez les fichiers du répertoire /var/www/manual :
# cp ar /var/www/manual/* /var/www/html/help/ 4. Redémarrez le service Apache avec la commande suivante :
# redémarrage apachectl 5. Assurezvous qu'Apache démarre au prochain démarrage :
# chkconfig httpd sur 6. Utilisez les commandes ls Z /var/www/html et ls Z /var/www/html/help pour examiner les contextes de sécurité du répertoire /var/www/html/sharing et
Machine Translated by Google
24 Chapitre 14 : Le serveur Web Apache
fichiers copiés. S'il ne correspond pas déjà aux contextes présentés ici, configurezles avec les commandes suivantes :
# chcon R u system_u /var/www/html/sharing/ # chcon R t httpd_sys_content_t /var/www/html/sharing/ 7. Démarrez le navigateur ELinks sur le serveur local, dirigé vers le sousrépertoire help/ :
# liens électroniques http://127.0.0.1/help 8. Accédez à un système distant et essayez d'accéder au même répertoire Web. Pour Par exemple, si l'adresse IP du système local est 192.168.122.50, accédez à http://192.168.122.50/ help. Si possible, essayez ceci une deuxième fois à partir d'un navigateur GUI conventionnel.
Sécurité basée sur l'hôte Vous pouvez ajouter les directives Order, allow et deny pour réguler l'accès en fonction des noms d'hôte ou des adresses IP. Cette séquence de commandes standard suivante permet l'accès par défaut. Il lit d'abord la directive de refus : Commande refusée, autoriser
Vous pouvez refuser ou autoriser différentes formes de noms d'hôte ou d'adresses IP. Par exemple, la Si vous définissez Order allow, deny, l'accès est refusé par défaut. Seuls les noms d'hôtes ou adresses IP associés à la directive allow sont
directive suivante refuse l'accès depuis tous les ordinateurs du domaine osborne.com :
Refuser de osborne.com Si le service DNS n'est pas fiable, vous pouvez préférer
accès autorisé.
pour utiliser les adresses IP. Les exemples de directives suivants utilisent une seule adresse IP ; vous pouvez également configurer le sousréseau 192.168.122.0 en notation partielle, masque de réseau ou CIDR (Classless InterDomain Routing), comme illustré ici :
Refuser à partir de 192.168.122.66 Autoriser à partir de 192.168.122 Refuser à partir de 192.168.122.0/255.255.255.0 Autoriser à partir de 192.168.122.0/24
Machine Translated by Google
Configuration de sécurité Apache standard 25
Sécurité basée sur l'utilisateur Vous pouvez limiter l'accès aux sites Web configurés sur le serveur Apache aux utilisateurs autorisés avec des mots de passe. Comme décrit brièvement, ces mots de passe peuvent être différents de la base de données d'authentification habituelle. Par exemple, pour configurer la sécurité basée sur l'utilisateur pour le site Web décrit dans l'exercice 143, vous devrez configurer un conteneur dans le répertoire /var/www/html/help. Vous aurez besoin de plusieurs commandes dans le conteneur : ■ Pour configurer l'authentification de base, vous aurez besoin d'une directive AuthType Basic. ■ Pour décrire le site aux utilisateurs demandeurs, vous pouvez inclure un
Directive AuthName « un commentaire » . ■ Pour faire référence à une base de données de mots de passe de serveur Web nommée /etc/httpd/testpass, vous
besoin d'une directive AuthUserFile /etc/httpd/testpass. ■ Pour limiter le site à un seul utilisateur nommé ingénieur1, vous pouvez ajouter un Nécessite la directive user engineer1. ■ Sinon, pour limiter le site à un groupe tel que défini dans /etc/httpd/webgroups, vous devez ajouter la directive AuthGroupFile /etc/httpd/webgroups. Vous auriez également besoin d'une directive telle que Require group Design, où Design est le nom du groupe spécifié dans les groupes Web.
Voici un exemple de code que j'ai ajouté après le conteneur :
Type d'authentification de base
AuthName "Test protégé par mot de passe"
AuthUserFile /etc/httpd/testpass Nécessite un ingénieur utilisateur1
Lorsqu'il est correctement configuré, la prochaine fois que vous essayez d'accéder au répertoire du site Web http://server1.example .com/help dans le navigateur Firefox, vous êtes invité à entrer un nom d'utilisateur et un mot de passe, comme illustré à la Figure 147.
Machine Translated by Google
26 Chapitre 14 : Le serveur Web Apache
FIGURE 147
Protection par mot de passe pour un site Web
OBJECTIF DE CERTIFICATION 14.03
Répertoires Apache spécialisés Dans cette section, vous explorerez plusieurs options pour les répertoires Apache spécialisés. Il peut être approprié de mettre en place une sécurité spécialisée pour certains de ces répertoires avec le fichier .htaccess. Comme suggéré précédemment, vous pouvez mettre en place une protection par mot de passe en fonction des utilisateurs et des groupes, ce qui correspond aux « répertoires privés » cités dans les objectifs RHCE. Un exemple approprié pour un répertoire privé est l'exemple de répertoire personnel inclus dans le fichier httpd.conf. Avec les bonnes options, ces répertoires peuvent également être gérés par les membres d'un groupe. Une fois les modifications apportées aux fichiers de configuration d'Apache, vous pouvez tester le résultat. Pour ce faire, vous pouvez exécuter la commande apachectl restart. Alternativement, à
Machine Translated by Google
Annuaires Apache spécialisés 27
faites en sorte qu'Apache recharge le fichier de configuration sans lancer aucun utilisateur actuellement connecté, exécutez la commande apachectl graceful. Une commande alternative fonctionnellement équivalente est / etc/init.d/httpd reload.
Contrôle via le fichier .htaccess Avec toute la complexité associée au fichier httpd.conf, vous pourriez regarder le fichier .htaccess et penser "génial, une complication de plus". Mais utilisé correctement, le . htaccess peut simplifier la liste des directives appliquées à un répertoire ou à un hôte virtuel, car il peut être utilisé pour remplacer les autorisations héritées. Pour ce faire, vous devrez inclure la commande suivante dans les conteneurs ciblés :
Options d'autorisation de remplacement
Ensuite, vous pouvez configurer les fichiers .htaccess pour remplacer les autorisations précédemment définies. Le fichier .htaccess peut être stocké dans n'importe quel répertoire Web, étiqueté avec le contexte SELinux httpd_config_t.
Accès protégé par mot de passe Pour configurer les mots de passe d'un site Web, vous devez créer une base de données distincte de noms d'utilisateur et de mots de passe. Tout comme les commandes useradd et passwd sont utilisées pour les utilisateurs réguliers, la commande htpasswd est utilisée pour configurer les noms d'utilisateur et les mots de passe pour Apache.
Par exemple, pour créer un fichier de base de données nommé webpass dans le répertoire /etc/httpd, commencez par la commande suivante :
# htpasswd c /etc/httpd/webpass ingénieur1 Le commutateur c crée le fichier spécifié et le premier utilisateur est ingénieur1. Vous êtes invité à entrer un mot de passe pour l'ingénieur1. Les utilisateurs de la base de données webpass n'ont pas besoin d'avoir un compte Linux régulier. Notez l'utilisation du répertoire ServerRoot (/etc/httpd). Il est également utile lors de la configuration des hôtes virtuels. Si vous souhaitez ajouter plus d'utilisateurs à cette base de données d'authentification, omettez le c changer. Par exemple, la commande suivante configure un deuxième compte pour l'utilisateur drafter1 :
# htpasswd /etc/httpd/webpass drafter1
Machine Translated by Google
28 Chapitre 14 : Le serveur Web Apache
Pour configurer l'accès de plusieurs utilisateurs, vous aurez également besoin d'un fichier de groupe. Par exemple, pour configurer les utilisateurs engineering1 et drafter1 en tant que groupe nommé design, vous pouvez ajouter la ligne suivante au fichier /etc/httpd/grouppass :
conception : ingénieur1 dessinateur1 Dans ce cas, la directive AuthUserFile serait associée à la base de données d'authentification /etc/ httpd/webpass et la directive AuthGroupFile serait associée à la base de données de groupe.
Accès au répertoire personnel Le fichier httpd.conf par défaut inclut des suggestions commentées qui peuvent permettre l'accès aux répertoires personnels des utilisateurs. Une option utile via Apache est l'accès au répertoire personnel d'un utilisateur. Vous pouvez commencer à configurer l'accès aux répertoires personnels des utilisateurs en modifiant les directives suivantes à partir de
UserDir désactivé #UserDir public_html pour
#UserDir désactivé UserDir public_html N'importe qui aura alors accès aux pages Web qu'un utilisateur place dans son répertoire ~/public_html. Par exemple, un utilisateur nommé michael peut créer un répertoire /home/michael/public_html et y ajouter les pages web de son choix. Cependant, cela nécessite un peu de compromis de sécurité; vous devez rendre le répertoire personnel de michael exécutable pour tous les utilisateurs. Ceci est également connu sous le nom d'autorisations 701, qui peuvent être configurées avec la commande suivante :
# chmod 701 /home/michael Vous devrez également rendre le sousrépertoire public_html exécutable par tous les utilisateurs de la même manière avec la commande suivante :
# chmod 701 /home/michael/public_html Mais cela comporte des risques de sécurité. Même si un cracker ne peut pas lire directement le contenu des répertoires notés, s'il voit un script via le site Web résultant, il pourra exécuter ce script en tant qu'utilisateur connecté.
Machine Translated by Google
Annuaires Apache spécialisés 29
Il existe une alternative, si le système de fichiers avec le répertoire /home a été monté avec les listes de contrôle d'accès décrites au chapitre 4. Vous pouvez créer des ACL sur les répertoires notés spécifiquement pour l'utilisateur nommé apache. Pour l'utilisateur michael et son répertoire personnel, cela fonctionnerait avec les commandes suivantes :
# setfacl mu:apache:x /home/michael # setfacl mu:apache:x /home/michael/public_html Que les autorisations soient définies directement ou via des ACL, la prochaine étape logique en tant que serveur Web consiste à ajouter un fichier index.html à ce répertoire. Pour nos besoins, il peut s'agir d'un fichier texte. La strophe commentée qui suit est un excellent moyen d'aider à sécuriser un peu plus les répertoires personnels ainsi partagés. De plus, SELinux doit être configuré pour "Autoriser HTTPD à lire les répertoires personnels", associé au booléen httpd_enable_homedirs. Vous pouvez activer cette option soit avec l'outil d'administration SELinux, soit avec la commande setsebool P htttpd_enable_homedirs 1. À ce stade, un serveur Web dirigé vers le répertoire de l'utilisateur Michael peut lire un index.html dans le sousrépertoire public.html. La figure 148 illustre le résultat, où le texte noté est le seul contenu de index.html. Bien sûr, des modifications supplémentaires sont suggérées dans le fichier httpd.conf. Si vous activez la strophe qui commence par le conteneur , elle prend en charge des niveaux d'accès supplémentaires au sousrépertoire public_html des répertoires personnels de tous les utilisateurs.
#
FIGURE 148 Voir l'index. fichier html pour l'utilisateur michael
Machine Translated by Google
30 Chapitre 14 : Le serveur Web Apache
La directive AllowOverride prend en charge l'accès aux informations par type de document (FileInfo), l'accès associé aux directives d'autorisation (AuthConfig) et l'accès sécurisé par des directives telles que Allow, Deny et Order.
#
AllowOverride FileInfo AuthConfig Limit
La directive Options configure ce qui peut être vu dans un répertoire spécifique, en fonction sur la négociation de contenu (MultiViews), une liste de fichiers dans le répertoire courant (Indexes), une option qui active les liens symboliques associés au même propriétaire (SymLinksIfOwnerMatch), et active également une option qui n'autorise pas les scripts (IncludesNoExec). Bien qu'autoriser un script dans un répertoire utilisateur puisse être une mauvaise pratique de sécurité, cela peut être approprié pour les utilisateurs qui sont développeurs sur des systèmes de test, et éventuellement lors d'un examen Red Hat. Dans ce cas, vous supprimeriez l'option IncludeNoExec.
#
Options MultiViews Indexes SymLinksIfOwnerMatch IncludeNoExec Le conteneur limite les options d'accès et d'écriture comme indiqué ; Cependant, le la valeur par défaut est d'autoriser tous les utilisateurs.
# # # #
Commander autoriser, refuser
Autoriser de tous
En revanche, le conteneur présenté ici ne refuse rien.
# # #
Commande refusée, autoriser
Refuser de tout # # Vous pouvez combiner ces directives avec une protection par mot de passe. Une possibilité simple consiste à exiger le nom d'utilisateur et le mot de passe de l'utilisateur dont le répertoire personnel est partagé. Mais comme indiqué précédemment, la base de données d'authentification pour un répertoire Apache partagé n'est pas liée à la suite de mots de passe shadow.
Répertoires gérés par le groupe Vous pouvez combiner les fonctionnalités des répertoires de groupe discutées au chapitre 8 avec le sous répertoire public_html/ que nous venons de décrire. Cependant, les étapes requises pour configurer un groupe afin de gérer le contenu Web partagé sont quelque peu différentes. Concrètement, mettre en place
Machine Translated by Google
Annuaires Apache spécialisés 31
un répertoire géré par un groupe, il est préférable de démarrer ce groupe en tant qu'utilisateur. Les directives de configuration standard d'Apache pour un utilisateur privé peuvent s'appliquer aux groupes privés. Conceptuellement, vous devez suivre les étapes suivantes : 1. Créez un utilisateur régulier. 2. Configurez cet utilisateur avec un numéro UID et GID supérieur, audelà de ceux associés aux utilisateurs locaux et réseau existants. 3. Configurez le répertoire personnel de cet utilisateur avec l'utilisateur nobody comme propriétaire. Configurez le shell de connexion de cet utilisateur en tant que /sbin/nologin.
4. Créez le sousrépertoire public_html. 5. Modifiez les autorisations pour le répertoire d'accueil du groupe, avec les sousrépertoires associés pour être cohérent avec les exigences du groupe décrites au chapitre 8, ainsi qu'avec les exigences du serveur Web Apache. Par exemple, si le nouveau répertoire de groupe est /home/design, vous exécuterez la commande suivante :
# chmod R 2771 /accueil/conception Bien entendu, comme indiqué au chapitre 8, vous pouvez substituer une ACL exécutable pour l'utilisateur nommé apache au bit d'exécution pour tous les utilisateurs. Cela suppose que le système de fichiers avec le répertoire /home a été monté avec des ACL. Dans ce cas, vous exécuteriez les commandes suivantes :
# chmod R 2770 /home/design # setfacl mu:apache:x /home/design # setfacl mu:apache:x /home/design/public_html 6. Connectezvous en tant qu'utilisateur membre du nouveau groupe. Créez un nouveau fichier dans le sous répertoire public_html. Vérifiez la propriété de ce fichier ; avec le bit Super Group ID (SGID) inclus dans la commande chmod, le propriétaire du groupe doit être le propriétaire de tous les fichiers créés dans le sousrépertoire public_html. 7. Effectuez les modifications décrites précédemment dans ce chapitre dans le fichier httpd.conf associé à la directive UserDir. 8. Faites relire le fichier par le serveur Web Apache. Vous aurez l'occasion de mettre cela en place dans l'un des laboratoires du chapitre, et peutêtre plus (indice, indice !).
Machine Translated by Google
32 Chapitre 14 : Le serveur Web Apache
EXERCICE 144 Protection par mot de passe pour un répertoire Web Dans cet exercice, vous allez configurer la protection par mot de passe pour votre compte d'utilisateur habituel dans un sousrépertoire de DocumentRoot. Cela implique l'utilisation des directives AuthType Basic, AuthName et AuthUserFile. Cela se fera avec le site Web standard d'Apache ; les hôtes virtuels sont traités dans la prochaine section principale. 1. Sauvegardez le fichier de configuration principal, httpd.conf depuis le répertoire /etc/httpd/ conf. Ouvrez ensuite ce fichier dans un éditeur de texte. 2. Naviguez sous la strophe . Créez un nouveau strophe pour un sousrépertoire DocumentRoot. Une option est le répertoire /var/www/html/ chapitre. Dans la version par défaut de httpd.conf, c'est juste avant les options commentées pour la directive UserDir. Les première et dernière directives de la strophe ressembleraient à
3. Ajoutez les directives suivantes : AuthType Basic pour configurer l'authentification de base, la directive AuthName « Password Protected Test » pour configurer un commentaire que vous devriez voir sous peu et la directive AuthUserFile /etc/httpd/testpass pour pointer vers un fichier de mot de passe. . Remplacez votre nom d'utilisateur habituel par testuser dans Require user testuser.
Type d'authentification de base
AuthName "Test protégé par mot de passe"
AuthUserFile /etc/httpd/testpass Exiger l'utilisateur testuser
4. Vérifiez la syntaxe de vos modifications avec l'une des commandes suivantes.
# httpd t # httpd S 5. En supposant que la syntaxe soit vérifiée, demandez à Apache de relire les fichiers de configuration :
# redémarrage apachectl Si vous êtes préoccupé par les utilisateurs actuellement connectés, demandez à Apache de relire le fichier de configuration, sans déconnexion, avec la commande service httpd reload.
Machine Translated by Google
Hôtes virtuels réguliers et sécurisés 33
6. Ajoutez un fichier index.html approprié au répertoire /var/www/html/chapter. Vous pouvez utiliser un éditeur de texte pour saisir une ligne simple telle que « le test a réussi ». Aucun codage HTML n'est requis. 7. Créez le fichier /etc/httpd/testpass avec un mot de passe approprié. Sur mon système, j'ai créé un mot de passe Web pour l'utilisateur michael dans le fichier noté avec la commande suivante :
# htpasswd c /etc/httpd/testpass michel Des utilisateurs supplémentaires peuvent être ajoutés sans le commutateur c.
8. Testez le résultat, de préférence à partir d'un autre système. (En d'autres termes, assurez vous que le parefeu autorise l'accès depuis au moins un système distant.) 9. Vous devriez maintenant voir une demande de nom d'utilisateur et de mot de passe, avec le commentaire associé à la directive AuthName. Entrez le nom d'utilisateur et le mot de passe que vous venez d'ajouter à /etc/httpd/testpass et observez le résultat. 10. Fermez le navigateur et restaurez toute configuration antérieure.
OBJECTIF DE CERTIFICATION 14.04
Hôtes virtuels réguliers et sécurisés La fonctionnalité la plus utile d'Apache est peutêtre sa capacité à gérer plusieurs sites Web sur une seule adresse IP. Dans un monde où il n'y a plus de nouvelles adresses IPv4 disponibles, cela peut être utile. Pour ce faire, vous pouvez configurer des hôtes virtuels pour des sites Web normaux dans le fichier de configuration principal d'Apache, /etc/httpd/conf/httpd.conf. De cette façon, vous pouvez configurer plusieurs noms de domaine tels que www.example.com et www.mheducation.com sur la même adresse IP sur le même serveur Apache. Les noms de domaine example.com, example.org et example.net ne peuvent pas être enregistrés et sont officiellement réservés par l'Internet Engineering Task Force (IETF) pour la documentation. De nombreux autres domaines example.* sont également réservés par les autorités compétentes.
Machine Translated by Google
34 Chapitre 14 : Le serveur Web Apache
De la même manière, vous pouvez également créer plusieurs sites Web sécurisés accessibles via le protocole HTTPS dans le fichier de configuration /etc/httpd/conf.d/ssl.conf. Bien que les détails varient, les directives de base associées aux hôtes virtuels réguliers et sécurisés sont les mêmes. Si vous utilisez le navigateur textuel ELinks pour tester la connexion aux sites Web virtuels réguliers et sécurisés créés dans ce chapitre, il y a plusieurs choses à garder à l'esprit.
■ Assurezvous que le fichier /etc/hosts du système client inclut l'adresse IP avec les noms de domaine complets (FQDN) spécifiés. Les adresses IP en double avec différents FQDN sont normales. ■ Ouvrez le fichier de configuration /etc/elinks.conf et commentez les deux directives standard de ce fichier. ■ Pour accéder à un site Web standard, assurezvous d'inclure le protocole devant le FQDN, tel que http://vhost1.example.com ou https://vhost2.example.com. La beauté des conteneurs VirtualHost est que vous pouvez copier pratiquement la même strophe pour créer autant de sites Web sur un serveur Apache, limités uniquement par les capacités Soyez prêt à créer plusieurs
du matériel. Tout ce qui est requis est une adresse IP. Le prochain
sites Web sur un serveur Web Apache à l'aide d'hôtes
hôte virtuel peut être configuré avec une copie du conteneur
virtuels. Il est préférable de créer des conteneurs
VirtualHost d'origine. Tout ce que vous devez absolument changer
VirtualHost séparés à cet effet.
est le ServerName.
La plupart des administrateurs modifieront également le DocumentRoot, mais même cela n'est pas absolument nécessaire. Vous verrez comment cela fonctionne pour les hôtes virtuels réguliers et sécurisés dans les sections suivantes.
L'hôte virtuel standard Comme décrit précédemment, la section 3 du fichier httpd.conf par défaut inclut des exemples de commandes pouvant être utilisées pour créer un ou plusieurs hôtes virtuels. Pour activer la fonctionnalité d'hôte virtuel, la première étape consiste à activer cette directive :
#NameVirtualHost *:80 Pour utiliser un hôte basé sur le nom, laissez l'astérisque après cette directive. Sinon, définissez l'adresse IP de l'interface réseau locale. Il est souvent plus fiable de remplacer l'adresse IP, car cela évite les retards parfois associés à la résolution de noms
Machine Translated by Google
Hôtes virtuels réguliers et sécurisés 35
via un serveur DNS. Cependant, vous devrez peutêtre également créer plusieurs hôtes virtuels basés sur le nom. Normalement, je laisse l'astérisque en place.
Pour créer un hôte virtuel pour un site Web sécurisé, vous aurez besoin d'une deuxième
répertoire, qui est incorporé dans la configuration d'Apache via la directive Include conf.d/*.conf . Les
directive NameVirtualHost pour le port HTTPS, 443.
options de création d'un hôte virtuel sécurisé sont décrites
J'ajoute normalement cette directive au fichier ssl.conf
plus loin dans ce chapitre.
dans le fichier /etc/httpd/conf.d
Vous devez déjà savoir que le port TCP/IP 80 est le port par défaut pour servir les pages Web. Pour diriger toutes les requêtes sur ce serveur via l'adresse IP 192.168.122.50 sur le port 80, vous pouvez remplacer par la première ligne. Mais dans la plupart des cas, vous devez laisser cette directive telle quelle, afin de préserver l'utilisation de la même adresse IP pour différents sites Web. (Cela permet également au DHCP de fonctionner sur ce serveur Web, mais c'est un problème plus complexe.) # # ServerAdmin webmaster@dummyhost.example.com DocumentRoot / # www/docs/dummyhost.example.com ServerName dummy # host.example.com ErrorLog logs/dummyhost.example.comerror_log # CustomLog logs/dummyhost. exemple.comaccess_log commun # #
Si vous avez lu les descriptions des deux premières sections de la partie principale du fichier httpd.conf, vous devriez reconnaître toutes ces directives. Cependant, chaque directive pointe vers des fichiers et des répertoires non standard. Réviser,
■ Les messages d'erreur sont envoyés à l'adresse email définie par ServerAdmin. ■ Les pages Web peuvent être stockées dans le répertoire DocumentRoot. Assurezvous que les contextes de sécurité SELinux de tout répertoire DocumentRoot que vous créez sont cohérents avec les contextes du répertoire /var/www par défaut (et des sousrépertoires). Appliquez les commandes chcon et semanage fcontext a selon les besoins pour faire correspondre les contextes de sécurité. ■ Les clients peuvent appeler ce site Web via le ServerName.
Machine Translated by Google
36 Chapitre 14 : Le serveur Web Apache
■ Les directives ErrorLog et CustomLog spécifient un répertoire de journaux relatif , relatif à ServerRoot. À moins que vous n'ayez créé une racine de serveur différente pour cet hôte virtuel, ces fichiers se trouvent dans le répertoire /etc/httpd/logs. Normalement, ce répertoire est lié à /var/logs/httpd. Vous pouvez ajouter d'autres directives à chaque strophe d'hôte virtuel afin de personnaliser les paramètres de l'hôte virtuel par rapport au fichier de configuration principal. Vous configurerez un script CGI dans un hôte virtuel plus loin dans ce chapitre, avec quelques directives personnalisées. Il est facile de configurer un site Web d'hôte virtuel. Remplacez les noms de domaine IP, les répertoires, les fichiers et les adresses email de votre choix. Créez le répertoire DocumentRoot s'il n'existe pas déjà. À cette fin, j'ai configuré deux hôtes virtuels avec les strophes suivantes :
ServerAdmin [email protected] DocumentRoot / www/docs/vhost1.example.com ServerName vhost1.example.com ErrorLog logs/vhost1.example.comerror_log CustomLog logs/ vhost1.example.comaccess_log common
ServerAdmin [email protected] DocumentRoot / www/docs/vhost2.example.com ServerName vhost2.example.com ErrorLog logs/vhost2.example.comerror_log CustomLog logs/ vhost2.example.comaccess_log common
Assurezvous que les contextes SELinux sont appropriés. Vous pouvez tester la syntaxe de n'importe quel la configuration change avec la commande suivante :
# httpd t Apache vérifiera votre configuration ou identifiera des problèmes spécifiques. Lorsque vous exécutez cette commande sur la configuration par défaut, vous obtenez le message suivant :
Syntaxe OK Si vous avez créé plusieurs hôtes virtuels, vous pouvez également les vérifier avec l'un des les commandes suivantes :
# httpd S # httpd D DUMP_VHOSTS
Machine Translated by Google
Hôtes virtuels réguliers et sécurisés 37
La sortie doit répertorier les hôtes virtuels par défaut et individuels. Par exemple, je vois la sortie suivante de l'un de mes systèmes RHEL 6 server1.example.com : Configuration VirtualHost : caractères génériques NameVirtualHosts et _default_ serveurs : *:80 est un serveur par défaut NameVirtualHost vhost1.example.com (/etc/httpd/conf/httpd.conf:1010) etc/httpd/ conf/httpd.conf:1010) port 80 np amevhost ort 80 namevhost vhost1.example.com(/ vhost2.example.com(/etc/httpd/conf/httpd.conf:1017) *:443 serveur par défaut vhost1.example.com (/etc/httpd/conf.d/ ssl.conf:75) port 80 namevhost vhost1.example.com(/etc/httpd/conf.d/ssl.conf:75) port 80 namevhost vhost2.example.com(/etc/httpd/conf.d/ssl. conf:105) est un NameVirtualHost
Syntaxe OK
Si une erreur « using 127.0.0.1 for ServerName » s'affiche, vous n'avez pas attribué de valeur à la directive ServerName. En outre, vous souhaiterez peutêtre configurer le fichier /etc/hosts ou un serveur DNS pour le réseau local, avec les adresses IP pour les noms de domaine tels que vhost1.example.com et vhost2.example.com.
Hôtes virtuels sécurisés Si vous configurez un serveur Web sécurisé conforme au protocole HTTPS, Red Hat fournit un fichier de configuration différent à cet effet : ssl.conf dans le répertoire /etc/httpd/conf.d. Si ce fichier n'est pas disponible, vous devez installer le RPM mod_ssl. Avant de modifier ce fichier, sauvegardezle. La première directive active charge le module SSL :
LoadModule ssl_module modules/mod_ssl.so
Assurezvous que la directive Listen suivante est active : Écoutez 443
Comme le suggère le titre, ce fichier de configuration comprend un certain nombre de mots de passe dialogues. En règle générale, aucune modification n'est nécessaire à ces directives : SSLPassPhraseDialog intégré SSLSessionCache
shmcb:/var/cache/mod_ssl/scache(512000)
SSLSessionCacheTimeout 300 SSLMutex par défaut
Fichier de démarrage SSLRandomSeed :/dev/urandom 256 Connexion SSLRandomSeed intégrée SSLCryptoDevice intégré
Machine Translated by Google
38 Chapitre 14 : Le serveur Web Apache
Avant les conteneurs d'hôtes virtuels, vous devrez inclure une directive NameVirtualHost pour le port 443 avant de pouvoir configurer plusieurs hôtes virtuels dans ce fichier. C'est la même directive utilisée dans le fichier de configuration principal d'Apache, pointant simplement vers le port HTTPS standard : NomVirtualHost *:443
Vous pouvez maintenant configurer des hôtes virtuels avec les directives qui suivent. Le fichier ssl.conf par défaut a également un modèle de conteneur d'hôte virtuel. Mais il est incomplet et un peu difficile à lire avec tous les commentaires. Ainsi, un exemple du fichier de configuration ssl.conf révisé, axé sur le conteneur d'hôte virtuel pour le système vhost1.example.com, est illustré à la Figure 149. Dans la version par défaut du fichier ssl.conf, examinez le récipient. Comparezle au conteneur dans httpd.conf. Certaines modifications sont nécessaires. Tout d'abord, vous devez remplacer _default_ dans le conteneur VirtualHost par un astérisque (*) :
FIGURE 149 Virtuel sécurisé conteneur hôte pour vhost1.exemple. com
Machine Translated by Google
Hôtes virtuels réguliers et sécurisés 39
Vous devez également inclure les directives ServerAdmin, DocumentRoot et ServerName. Des exemples de directives qui seraient cohérents avec les hôtes virtuels créés dans la section précédente incluent
ServerAdmin [email protected] DocumentRoot / www/securedocs/vhost1.example.com ServerName vhost1.example.com Bien que la directive DocumentRoot puisse être définie sur n'importe quel répertoire, il convient, ne seraitce que pour des raisons d'organisation, de conserver les fichiers associés à chaque hôte virtuel dans un répertoire dédié.
Les directives standard du journal des erreurs peuvent être modifiées. En fait, si vous voulez des informations de journal pour chaque site Web sécurisé à configurer dans des fichiers différents, ils doivent être modifiés. Mais pour nos besoins, vous pouvez vous en tenir aux options par défaut présentées ici. Basés sur la directive ServerRoot du fichier httpd.conf, ces fichiers journaux se trouvent dans le répertoire /var/log/httpd.
Journaux ErrorLog/ssl_error_log Journaux TransferLog/ssl_access_log Avertissement de niveau de journalisation
Journaux CustomLog/ssl_request_log \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" Les directives SSL du fichier sont basées sur les certificats par défaut du système localhost. Dans quelques instants, vous verrez comment configurer un nouveau certificat SSL. Les cinq directives suivantes, dans l'ordre, activent SSL, utilisent la version 2 SSL plus sécurisée, prennent en charge une variété de chiffrements de chiffrement, pointent vers le certificat SSL par défaut, ainsi que le fichier de clé SSL.
Moteur SSL activé Protocole SSL tous SSLv2 SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW SSLCertificateFile / etc/pki/tls/certs/localhost.crt SSLCertificateKeyFile /etc/pki/tls/private/localhost.key La strophe qui suit concerne les fichiers avec des extensions associées au contenu dynamique. Pour ces fichiers, ainsi que tous les fichiers du répertoire CGI standard, des variables d'environnement SSL standard sont utilisées :
SSLOptions +StdEnvVars
SSLOptions +StdEnvVars
Machine Translated by Google
40 Chapitre 14 : Le serveur Web Apache
La strophe suivante traite des situations associées à Microsoft Internet Explorer en tant que client de navigateur :
SetEnvIf UserAgent ".*MSIE.*" \ nokeepalive ssluncleanshutdown \ downgrade1.0 forceresponse1.0 Bien entendu, le conteneur d'hôte virtuel se termine par la directive suivante :
Lorsqu'Apache est configuré avec un site sécurisé, les clients réguliers de l'interface graphique qui accèdent à ce site reçoivent un avertissement concernant l'hôte Web sécurisé comme celui observé pour de nombreux sites Web sur Internet, comme illustré à la Figure 1410.
Créer un nouveau certificat SSL Bien que le certificat SSL par défaut répertorié dans le fichier de configuration ssl.conf puisse fonctionner pour la configuration de base, vous pouvez créer un certificat local spécialisé ou utiliser un certificat réel acheté auprès d'une autorité de certification (CA) telle que VeriSign et Thawte.
FIGURE 1410 Un avertissement sur les hôtes sécurisés
Machine Translated by Google
Hôtes virtuels réguliers et sécurisés 41
Accédez au répertoire /etc/pki/tls/certs. Notez le fichier nommé Makefile dans ce répertoire. Le code de ce fichier peut être utilisé par la commande make pour créer un nouveau certificat pour chaque hôte virtuel. À moins que vous n'achetiez un certificat réel auprès d'une autorité de certification, les clients verront toujours des écrans tels que celui illustré à la Figure 1410. Mais vous devrez peutêtre savoir comment configurer un "certificat autosigné". À cette fin, la commande suivante, lorsqu'elle est exécutée à partir du répertoire /etc/pki/tls/certs, génère automatiquement une clé privée et un certificat pour le FQDN cité, comme illustré à la Figure 1411. # genkey vhost2.example.com
La commande genkey est pratique, car lorsque le processus est terminé, il écrit automatiquement la clé dans le répertoire /etc/pki/tls/private et écrit le certificat dans le répertoire /etc/pki/tls/certs.
Le plan publié pour le cours de préparation Red Hat pour le RHCE (RH254) spécifie
processus. Si vous êtes invité à créer un certificat lors d'un examen, limitez la taille de la clé
le déploiement d'un « service Web encapsulé SSL ».
au minimum autorisé. Le processus de génération
Les certificats SSL font partie de ce déploiement
de clés, même de 512 bits, peut prendre plusieurs minutes.
FIGURE 1411
Demande un certificat autosigné
Machine Translated by Google
42 Chapitre 14 : Le serveur Web Apache
Pour les besoins de cette section, sélectionnez Suivant pour continuer. Dans l'étape illustrée à la figure 1412, vous devez sélectionner une taille de clé. Ce que vous sélectionnez dépend du temps disponible et du besoin de sécurité. Le générateur de nombres aléatoires Linux peut nécessiter une activité supplémentaire ; cela peut être un excellent moment pour mettre le processus de côté et faire autre chose. Si vous n'avez rien d'autre à faire et avez besoin d'accélérer le processus, exécutez certains des scripts dans le répertoire /etc/cron.daily. Exécutez certaines des commandes de recherche décrites au chapitre 3. Cliquez plusieurs fois dans un terminal ouvert. Une fois qu'une clé est générée, une question vous est posée, à savoir si vous souhaitez générer une clé Demande de certificat (CSR) à envoyer à une autorité de certification. À moins que vous ne vous prépariez réellement à acheter un certificat valide, sélectionnez Non pour continuer. Vous êtes invité à chiffrer la clé avec une phrase de passe, comme illustré à la Figure 1413. Si la sécurité est la plus importante, vous devez sélectionner l'option Chiffrer la clé privée. Si la vitesse est importante, évitez l'option. Faites un choix et sélectionnez Suivant pour continuer. Si vous n'avez pas sélectionné l'option Chiffrer la clé privée, vous serez immédiatement redirigé vers les détails du certificat illustrés à la Figure 1414. Apportez les modifications appropriées et sélectionnez Suivant pour continuer. En cas de succès, vous verrez une sortie similaire à celle illustrée à la Figure 1415.
FIGURE 1412 Sélectionnez une taille de clé pour un SSL
certificat
Machine Translated by Google
Hôtes virtuels réguliers et sécurisés 43
FIGURE 1413 Option de protection avec une phrase de passe
Pages d'essai Vous devrez peutêtre créer des fichiers index.html pour tester des hôtes virtuels dans diverses situations, pour tester diverses configurations de préproduction ou même lors d'un examen. Heureusement, les examens Red Hat ne testent pas les connaissances en HTML. Vous pourriez utiliser
FIGURE 1414 Certificat SSL détails
Machine Translated by Google
44 Chapitre 14 : Le serveur Web Apache
FIGURE 1415 Certificat SSL sortie de commande
La page Web par défaut d'Apache. Vous pouvez modifier cette page Web ou toute autre page Web avec un éditeur de texte ou HTML spécifique. Vous pouvez même enregistrer un simple fichier texte sous le nom index.html. Aux fins de ce chapitre, tout ce que j'ai mis dans le fichier index.html pour le site Web normal vhost1.example.com est le texte suivant :
Page Web de test pour l'hôte virtuel 1
Une fois les modifications appropriées apportées aux fichiers de configuration d'Apache, j'ai redémarré le service. Lorsque j'ai ensuite exécuté la commande elinks http://vhost1.example.com, l'écran illustré à la Figure 1416 est apparu.
Vérificateurs de syntaxe Dans de nombreux cas, le redémarrage apachectl et les commandes de redémarrage /etc/init.d/httpd révéleront des problèmes de syntaxe. Mais c'est juste dans de nombreux cas. Dans certains cas, vous pouvez essayer de redémarrer Apache, tester le résultat avec un navigateur client et être frustré,
Machine Translated by Google
Hôtes virtuels réguliers et sécurisés 45
FIGURE 1416
Une page de test
pour constater qu'Apache n'a pas démarré à cause d'une erreur de syntaxe. Pour minimiser le risque de ce problème, la commande suivante vérifie le travail que vous avez effectué pour modifier les fichiers de configuration Apache :
# httpdS Si aucun problème n'est détecté, vous devriez pouvoir démarrer le serveur Web local et vous connecter à partir d'un client avec une demande de navigateur.
Dépannage Apache Lorsque les bons packages Apache sont installés, la configuration par défaut crée normalement un système en cours d'exécution. La syntaxe de base peut être vérifiée avec la commande httpd t. Mais si vous créez un vrai site Web, vous voulez probablement plus qu'une simple page de test. Avant d'apporter des modifications, sauvegardez le fichier de configuration Apache httpd.conf. Si quelque chose ne va pas, vous pouvez toujours recommencer. Certaines erreurs Apache appartiennent aux catégories suivantes :
■ Message d'erreur sur l'impossibilité de se lier à une adresse Un autre processus réseau utilise peutêtre déjà le port http par défaut (80). Alternativement, votre ordinateur exécute httpd en tant qu'utilisateur normal (pas l'utilisateur apache) avec un port inférieur à 1024. ■ Erreurs d'adressage réseau ou de routage Vérifiez à nouveau les paramètres réseau. Pour plus d'informations sur la configuration du réseau, reportezvous à la section du chapitre 3 sur la configuration et le dépannage du réseau.
■ Apache n'est pas en cours d'exécution Vérifiez le error_log dans le répertoire /var/log/httpd.
Machine Translated by Google
46 Chapitre 14 : Le serveur Web Apache
■ Apache ne s'exécute pas après un redémarrage Exécutez chkconfig list httpd. Assurezvous qu'Apache (httpd) est configuré pour démarrer aux niveaux d'exécution appropriés pendant le processus de démarrage avec la commande
# chkconfig httpd sur ■ Vous devez arrêter Apache Envoyer au processus parent un signal TERM, basé sur son PID. Par défaut, il se trouve dans /var/run/httpd.pid. Vous tuez Apache avec une commande telle que
#kill TERM `cat /var/run/httpd.pid` ■ Vous pouvez également utiliser la commande apachectl stop.
L'administration d'Apache est une compétence nécessaire pour tout administrateur système Linux. Vous devez développer la capacité d'installer, de configurer et de dépanner rapidement Apache. Vous devez également être en mesure de configurer et de personnaliser des sites Web virtuels.
EXERCICE 145 Configurer un serveur Web virtuel Dans cet exercice, vous allez configurer un serveur Web avec un site Web virtuel. Vous pouvez utiliser cette technique avec différents répertoires pour configurer des sites Web virtuels supplémentaires sur le même serveur Apache.
1. Sauvegardez le fichier httpd.conf à partir du répertoire /etc/httpd/conf. 2. Ajoutez un site Web virtuel pour la société fictive LuvLinex, avec l'URL www.example.com. N'oubliez pas de modifier la directive NameVirtualHost. Utilisez les exemples de commentaires à la fin du fichier httpd.conf pour obtenir des conseils si nécessaire. 3. Affectez la directive DocumentRoot au répertoire /luvlinex. (N'oubliez pas pour créer également ce répertoire sur votre système.) 4. Ouvrez le fichier /luvlinex/index.html dans un éditeur de texte. Ajouter une ligne simple dans le texte format tel que
Ceci est l'espace réservé pour le site Web LuvLinex. 5. Enregistrez ce fichier.
Machine Translated by Google
Déployer une application CGI de base 47
6. Si vous avez activé SELinux sur ce système, vous devrez appliquer le chcon commande dans ce répertoire :
# chcon R u system_u /luvlinex/ # chcon R t httpd_sys_content_t /luvlinex/ 7. Pour vous assurer que les modifications survivent à une nouvelle étiquette SELinux, la commande suivante doit documenter la modification dans le fichier file_contexts.local dans le répertoire /etc/ selinux/cible/contexts/files.
# semanage fcontext a s system_u t httpd_sys_content_t /luvlinux/ 8. Si vous avez créé un service DNS, comme indiqué au chapitre 11, mettez à jour l'asso base de données citée. Sinon, mettez à jour /etc/hosts avec www.example.com et l'adresse IP appropriée. 9. Si vous souhaitez vérifier la syntaxe, exécutez les commandes httpd t et httpd D DUMP_ VHOSTS. 10. N'oubliez pas de redémarrer le service Apache ; la bonne façon est avec l'apachectl commande de redémarrage.
11. Accédez à un système distant. Mettez à jour le /etc/hosts distant si nécessaire. Ouvrez le navigateur de votre choix. Testez l'accès au site Web configuré (www.example.com).
12. Fermez le navigateur sur le système distant. Restaurer le httpd.conf d'origine fichier de configuration.
OBJECTIF DE CERTIFICATION 14.05
Déployer une application CGI de base Aucune expérience en programmation n'est requise. Lorsque vous voyez l'objectif RHCE de "Déployer une application CGI de base", l'exigence est plus simple qu'il n'y paraît. En fait, les instructions sont accessibles depuis la documentation d'Apache, disponible depuis le paquet httpdmanual. Une fois installé, accédez à la page http://localhost/manual. La documentation Apache devrait apparaître. Sélectionnez CGI : contenu dynamique pour obtenir des instructions détaillées, expliquées dans les sections suivantes.
Machine Translated by Google
48 Chapitre 14 : Le serveur Web Apache
Modifications de la configuration d'Apache pour les fichiers CGI Pour permettre à Apache de lire les fichiers CGI, le fichier httpd.conf inclut la directive LoadModule cgi_module. Pour permettre aux clients de trouver plus facilement des fichiers CGI via leurs navigateurs, Apache inclut la directive ScriptAlias. Par exemple, la directive ScriptAlias suivante lie le sousrépertoire cgi bin au répertoire par défaut /var/www/cgibin : ScriptAlias /cgibin/ "/var/www/cgibin"
Avec cette directive ScriptAlias, si le site Web est server1.example.com, les scripts peuvent être trouvés dans l'URL http://server1.example.com/cgibin/. Vous pouvez également configurer des scripts CGI dans un répertoire autre que /var/www/cgibin et modifier la référence en conséquence. Cependant, le conteneur associé n'autorise pas les scripts exécutables :
AllowOverride Aucun Options Aucune Commander autoriser, refuser
Autoriser de tous
Comme suggéré dans la documentation du serveur Web Apache disponible sur httpd manuel, vous devrez apporter des modifications pour permettre aux scripts CGI d'être réellement exécutables par le serveur Apache :
AllowOverride Aucun Options ExecCGI AddHandler cgiscript .pl Order allow,deny Allow from all
La commande AllowOverride None empêche les utilisateurs réguliers de modifier les autorisations/paramètres dans ce répertoire. Sinon, les utilisateurs plus intelligents pourraient lire les fichiers CGI dans le répertoire /var/www/cgibin, un risque de sécurité. La ligne Options ExecCGI prend en charge les scripts exécutables dans le répertoire indiqué. La directive AddHandler associe les scripts CGI aux fichiers avec l'extension .pl. La commande Order allow,deny configure les vérifications d'autorisation ; Autoriser de tous permet à tous les utilisateurs d'exécuter des scripts dans ce répertoire.
Machine Translated by Google
Déployer une application CGI de base 49
Si des scripts CGI sont requis pour l'un des hôtes virtuels précédemment configurés, vous devez configurer un ScriptAlias différent et un conteneur correspondant. Pour le site vhost1.example.com décrit précédemment, j'ajoute la directive suivante :
ScriptAlias /cgibin/ /www/docs/vhost1.example.com/cgibin/ La documentation Apache continue avec des instructions sur la façon dont vous pouvez écrire un script CGI simple.
Configurer un script CGI simple La documentation Apache comprend des instructions sur la façon de configurer un script CGI simple, dans le langage de programmation Perl. Assurezvous que le package httpdmanual est installé et que le service httpd local est actif. Dans un navigateur, accédez à http://localhost/manual. Dans la section HowTo / Tutorials, cliquez sur CGI: Dynamic Content. Faites défiler jusqu'à la section "Écriture d'un programme CGI". Dans cette section, la documentation Apache propose un script Perl simple, appelé hello.pl, basé sur le code suivant :
#!/usr/bin/perl print "Type de contenu : text/html\n\n" ; print "Hello, World!";
La première ligne est similaire au #!/bin/bash que l'on trouve dans de nombreux scripts ; dans ce cas, perl est l'interpréteur de commandes. Le type de contenu est déclaré, suivi de deux retours chariot (symbolisés par le \n). La dernière ligne imprime l'expression couramment utilisée pour les scripts de programme d'introduction. Ces scripts doivent être exécutables, avec 755 autorisations. En d'autres termes, une fois le fichier hello.pl enregistré, vous appliquerez les autorisations notées avec la commande suivante :
# chmod 755 bonjour.pl Exécutez la commande ls Z sur le script. Dans le répertoire /var/www/cgibin, il doit hériter du type de fichier SELinux httpd_sys_script_exec_t associé au répertoire. Si nécessaire, vous pouvez appliquer le type de fichier au fichier et au répertoire avec la commande chcon, puis vous assurer que le type de fichier reste appliqué après un changement d'étiquette SELinux avec la commande semanage fcontext a. Les deux commandes ont été décrites précédemment dans ce chapitre et au chapitre 11.
Machine Translated by Google
50 Chapitre 14 : Le serveur Web Apache
Mais dans la plupart des cas, vous configurerez plusieurs sites Web en tant qu'hôtes virtuels dans les fichiers de configuration Apache. Si vous n'avez pas déjà ajouté les directives Options ExecCGI et AddHandler cgiscript .pl décrites précédemment, elles doivent être ajoutées au conteneur de l'hôte virtuel, avec une directive ScriptAlias appropriée :
Options ExecCGI AddHandler cgiscript .pl ScriptAlias /cgi bin/ /www/docs/vhost1.example.com/cgibin/ Ensuite, vous copierez le script hello.pl dans le répertoire noté et le rendrez exécutable par tous les utilisateurs. N'oubliez pas de vous assurer que le script et le répertoire ont les mêmes contextes SELinux (httpd_sys_script_exec_t) que les scripts du répertoire /var/www/html/cgibin. Pour vous assurer que la modification survit à un changement d'étiquette, vous devez également appliquer la commande suivante à ce répertoire :
# semanage fcontext a s system_u t httpd_sys_script_exec_t /www/docs/vhost1.example.com/cgi bin/
Connexions à un site Web Une fois qu'un script CGI est configuré, vous devriez pouvoir accéder à ce script à partir d'un navigateur client. Pour les besoins de cet exercice, supposons que le script Perl hello.pl a été configuré sur le système server1.example.com. Vous devriez alors pouvoir consulter le résultat à partir d'un système distant avec la commande elinks http://vhost1.example.com/cgibin/hello.pl. En cas de succès, les mots suivants doivent apparaître dans le corps du navigateur :
Bonjour le monde! À l'occasion, vous pouvez voir un message d'erreur tel que "Erreur de serveur interne". La cause la plus probable est un script Perl qui ne dispose pas d'autorisations exécutables pour l'utilisateur nommé apache. Pour répéter, cela est normalement résolu en donnant à ce script Perl 755 autorisations.
Machine Translated by Google
Déployer une application CGI de base 51
SCÉNARIO & SOLUTION Vous devez configurer un site Web
Installez Apache, configurez les fichiers appropriés dans le répertoire /var/www/html.
Vous devez configurer plusieurs sites Web
Avec Apache, utilisez les conteneurs à la fin du fichier httpd.conf comme modèle pour autant de sites Web que nécessaire.
Vous devez configurer un site Web sécurisé
Configurez un hôte virtuel dans le fichier ssl.conf du répertoire /
Vous avez besoin d'un certificat SSL dédié pour le www. site
Depuis le répertoire /etc/pki/tls/certs, exécutez la commande
web example.org Le service Apache ne s'exécute pas après
genkey www.example.org.
etc/httpd/conf.d.
un redémarrage
Assurezvous que le service httpd démarre dans les niveaux d'exécution appropriés avec la commande chkconfig list httpd. Si cela vous convient, vérifiez le contenu du error_log dans le répertoire /var/log/httpd.
Les scripts CGI dans Apache ne s'exécutent pas
Dans le fichier de configuration d'Apache, assurezvous que l'option ExecCGI est active ; la directive AddHandler spécifie cgiscript .pl, le ScriptAlias pointe vers le répertoire approprié ; le script est exécutable par tous les utilisateurs et correspond aux contextes SELinux dans le répertoire /var/ www/cgibin.
RÉSUMÉ DES CERTIFICATIONS Apache est le serveur Web le plus utilisé aujourd'hui. Les packages de clés peuvent être installés à partir du groupe de packages "Web Server". Le package httpdmanual comprend un manuel navigable localement qui peut vous aider dans d'autres tâches de configuration d'Apache, même pendant un examen. Les fichiers de configuration clés incluent httpd.conf dans le répertoire /etc/ httpd/conf et ssl.conf dans le répertoire /etc/httpd/conf.d. Les fichiers httpd.conf et ssl.conf sont organisés dans des conteneurs . À l'aide d'exemples de strophes dans les deux fichiers de configuration notés, vous pouvez créer des hôtes virtuels réguliers et sécurisés pour plusieurs sites Web sur un système, même si une seule adresse IP est disponible. Les fichiers journaux associés sont stockés dans le répertoire /var/log/httpd.
Machine Translated by Google
52 Chapitre 14 : Le serveur Web Apache
Vous pouvez autoriser l'accès à Apache via les ports 80 et 443, à certains ou à tous les systèmes dotés de parefeu basés sur des commandes iptables. Les fichiers et répertoires Apache sont associés à plusieurs contextes SELinux différents. Différentes fonctions Apache peuvent être régulées par une variété de paramètres booléens SELinux différents. Les directives Listen et NameVirtualHost dirigent le trafic vers le serveur Web Apache vers des ports tels que 80 et 443, ainsi que des hôtes virtuels spécifiés. La sécurité basée sur l'hôte et l'utilisateur peut également être configurée dans les fichiers de configuration Apache avec des commandes telles que htpasswd et des directives telles que Allow et Deny. Avec les bonnes options de sécurité, les répertoires gérés par les utilisateurs et les groupes sont possibles. En fait, il existe une strophe commentée qui peut activer les répertoires dans les répertoires de base des utilisateurs. Les répertoires gérés par le groupe sont un peu plus complexes, combinant des aspects des répertoires d'utilisateurs basés sur Apache et des répertoires de groupe partagés abordés au chapitre 8. Toujours en matière de sécurité, de nouveaux certificats peuvent être créés pour un hôte spécifique comme www.example.org à partir du /etc/ répertoire pki/tls/certs avec une commande telle que genkey www.example.org. La configuration du contenu CGI sur un site Web Apache est plus simple qu'il n'y paraît. En fait, des informations détaillées sur le processus sont incluses dans la documentation Apache, y compris un script Perl que vous pouvez utiliser pour confirmer que la configuration résultante fonctionne.
Machine Translated by Google
Exercice de deux minutes 53
EXERCICE DE DEUX MINUTES Voici quelquesuns des points clés des objectifs de certification du chapitre 14.
Le serveur Web Apache Red Hat Enterprise Linux inclut le serveur Web Apache, qui est actuellement utilisé par plus de deux fois plus de sites Web Internet que tous les autres serveurs Web combinés.
Vous pouvez installer Apache et les packages associés dans le cadre du groupe de packages « Web Server ». Les fichiers de configuration Apache incluent httpd.conf dans le répertoire /etc/httpd/conf et ssl.conf dans le répertoire /etc/httpd/conf.d. Les informations de journalisation d'Apache sont disponibles dans le répertoire /var/log/httpd.
Configuration de sécurité Apache standard Apache peut être sécurisé via des règles iptables et divers booléens SELinux et les contextes.
Apache prend en charge la sécurité en spécifiant les ports actifs via les directives Listen et NameVirtualHost. Apache prend en charge la sécurité basée sur l'hôte par adresse IP ou nom de domaine. Apache prend en charge la sécurité basée sur l'utilisateur par mot de passe, à l'aide de la commande htpasswd.
Répertoires Apache spécialisés Apache facilite la configuration de l'accès aux répertoires personnels des utilisateurs, dans leurs sousrépertoires public_html/. Les répertoires gérés par le groupe peuvent être configurés de la même manière que répertoires personnels.
Machine Translated by Google
54 Chapitre 14 : Le serveur Web Apache
Hôtes virtuels réguliers et sécurisés Vous pouvez configurer plusieurs sites Web sur votre serveur, même avec une seule adresse IP. Ceci est possible grâce à l'utilisation d'hôtes virtuels. La configuration RHEL prend en charge la configuration des hôtes virtuels pour les sites Web normaux à la fin du fichier /etc/httpd/conf/httpd.conf. La configuration RHEL prend en charge la configuration des hôtes virtuels sécurisés pour les sites Web ordinaires à la fin du fichier /etc/ httpd/conf.d/ssl.conf. Les certificats SSL peuvent être créés avec la commande genkey, lorsqu'ils sont exécutés à partir du répertoire /etc/pki/tls/certs.
Déployer une application CGI de base L'utilisation du contenu CGI dépend des options de configuration comme ScriptAlias,
ExecCGI et AddHandler cgiscript. Les scripts CGI standard nécessitent 755 autorisations. Si nécessaire, des exemples d'instructions sont disponibles dans le manuel Apache disponible dans le package httpd manual.
Machine Translated by Google
Autotest 55
AUTOTEST Les questions suivantes vous aideront à mesurer votre compréhension du matériel présenté dans ce chapitre. Comme aucune question à choix multiples n'apparaît dans les examens Red Hat, aucune question à choix multiples n'apparaît dans ce livre. Ces questions testent exclusivement votre compréhension du chapitre. Ce n'est pas grave si vous avez une autre façon d'effectuer une tâche. Obtenir des résultats, et non mémoriser des anecdotes, est ce qui compte pour les examens Red Hat. Il peut y avoir plus d'une réponse à plusieurs de ces questions.
Le serveur Web Apache 1. Quelle est la directive Apache qui spécifie le répertoire de base pour la configuration et les fichiers journaux ? ________________________________________________________ 2. Une fois que vous avez modifié httpd.conf, quelle commande obligerait Apache à relire ce fichier, sans lancer les utilisateurs actuellement connectés ? ________________________________________________________ 3. Quelle directive spécifie le port TCP/IP associé à Apache ? ________________________________________________________
Configuration de sécurité Apache standard 4. Quelle commande crée le fichier /etc/httpd/passwords et configure un mot de passe pour l'utilisateur Élisabeth ? ________________________________________________________ 5. Si vous voyez les directives suivantes limitant l'accès dans la strophe pour un hôte virtuel, les ordinateurs sont autorisés à accéder ?
Autoriser la commande, refuser l'autorisation à partir de 192.168.0.0/24
________________________________________________________ 6. Quels ports standard devezvous ouvrir dans un parefeu pour permettre l'accès à un site Web normal et un sécurisé ? ________________________________________________________
Machine Translated by Google
56 Chapitre 14 : Le serveur Web Apache
Répertoires Apache spécialisés 7. Quelles autorisations normales fonctionneraient avec un répertoire personnel partagé via Apache ? _________________________________________________________ 8. Quelles autorisations normales fonctionneraient avec un répertoire de groupe partagé également partagé via Apache ? ________________________________________________________
Hôtes virtuels réguliers et sécurisés 9. Quel fichier fournit RHEL pour aider à configurer un hôte virtuel en tant que serveur sécurisé ? ________________________________________________________ 10. Si vous créez un hôte virtuel basé sur le nom, combien d'adresses IP seraient nécessaires pour trois Serveurs virtuels? ________________________________________________________ 11. Pour vérifier la configuration d'un ou plusieurs hôtes virtuels, quel commutateur pouvezvous utiliser avec le httpd commande? ________________________________________________________
Déployer une application CGI de base 12. Quelle option avec la directive Options prend en charge le contenu CGI dynamique dans un fichier de configuration Apache ? ________________________________________________________
QUESTIONS DE LABORATOIRE Plusieurs de ces laboratoires impliquent des exercices de configuration. Vous ne devez faire ces exercices que sur des machines de test. Il est supposé que vous exécutez ces exercices sur des machines virtuelles telles que KVM. Pour ce chapitre, il est également supposé que vous modifiez la configuration d'un système hôte physique pour de telles machines virtuelles. Red Hat présente ses examens par voie électronique. Pour cette raison, les travaux pratiques de ce chapitre et des chapitres suivants sont disponibles sur le CD qui accompagne le livre, dans le sousrépertoire Chapter14/. Si vous n'avez pas encore configuré RHEL 6 sur un système, reportezvous au chapitre 1 pour les instructions d'installation. Les réponses pour chaque laboratoire suivent les réponses de l'autotest pour les questions à compléter.
Machine Translated by Google
Réponses à l'autotest 57
RÉPONSES À L'AUTOTEST Le serveur Web Apache 1. La directive ServerRoot définit le répertoire par défaut du serveur Apache. Tous les fichiers et les répertoires non configurés autrement, ou configurés en tant que répertoire relatif, sont définis par rapport à ServerRoot.
2. Il existe deux méthodes de base pour qu'Apache relise le fichier de configuration sans redémarrer le service. Vous pouvez garder Apache en cours d'exécution et lui faire relire le fichier avec une commande telle que apachectl graceful ou la commande /etc/init.d/httpd reload. La commande service httpd reload est également une réponse acceptable.
3. La directive Listen spécifie le port TCP associé à Apache.
Configuration de sécurité Apache standard 4. La commande qui crée le fichier /etc/httpd/passwords et configure un mot de passe pour l'utilisateur elizabeth est htpasswd c /etc/httpd/passwords elizabeth. Si /etc/httpd/passwords existe déjà, tout ce qui est requis est htpasswd elizabeth. 5. Comme décrit dans le chapitre, la directive Order Allow,Deny refuse l'accès à tous les systèmes par défaut, à l'exception de ceux dont l'accès est explicitement autorisé. L'accès est donc limité aux ordinateurs du réseau 192.168.0.0/24. 6. Les ports standard que vous devez ouvrir dans un parefeu pour permettre l'accès à des sites Web réguliers et sécurisés sont 80 et 443.
Répertoires Apache spécialisés 7. Les autorisations associées sont 701, autorisations exécutables pour les autres utilisateurs. En tant qu'"autorisations régulières" sont spécifiés, les ACL ne sont pas une option. 8. Les autorisations associées sont 2771, qui combinent les autorisations SGID, les autorisations standard pour un répertoire de groupe partagé et les autorisations exécutables pour les autres utilisateurs. Comme les "autorisations régulières" sont spécifiées, les ACL ne sont pas une option.
Machine Translated by Google
58 Chapitre 14 : Le serveur Web Apache
Hôtes virtuels réguliers et sécurisés 9. Le fichier associé aux serveurs sécurisés pour les hôtes virtuels est ssl.conf dans /etc/httpd/conf.d annuaire. 10. Une adresse IP est requise pour un serveur virtuel basé sur le nom, quel que soit le nombre de sites virtuels configuré. 11. Pour vérifier votre configuration d'hôtes virtuels, vous pouvez utiliser l'un des deux commutateurs avec le httpd commande : httpd S vérifie le fichier de configuration, y compris les paramètres de l'hôte virtuel. Alternativement, httpd D DUMP_VHOSTS se concentre sur la configuration de l'hôte virtuel et constitue donc également une réponse acceptable.
Déployer une application CGI de base 12. La directive Options ExecCGI est couramment utilisée dans les répertoires configurés par Apache qui contiennent des scripts CGI tels que les programmes Perl.
RÉPONSES DE LABORATOIRE
Laboratoire 1
Tout d'abord, assurezvous que le serveur Web Apache est installé. Si une commande rpm q httpd vous indique qu'il est manquant, le groupe de packages Web Server n'a pas encore été installé. Le moyen le plus efficace de le faire est d'utiliser la commande yum groupinstall "Web Server". (Pour trouver les noms de groupe de packages appropriés, exécutez la commande yum grouplist.) Cela suppose une connexion correcte à un référentiel, comme indiqué au chapitre 7. Pour configurer le démarrage d'Apache, exécutez la commande apachectl start. Pour vous assurer qu'il démarre au prochain démarrage du système, exécutez la commande chkconfig httpd on. Une fois Apache installé, vous devriez pouvoir y accéder depuis un navigateur via http://localhost. À partir du fichier de configuration Apache par défaut, vous pouvez vérifier que DocumentRoot se trouve dans /var/www/html. Vous pouvez copier le fichier index.html du répertoire /usr/share/doc/HTML/enUS vers le répertoire /var/www/html. Ensuite, vous pouvez tester le résultat en naviguant à nouveau sur http://localhost. Si vous n'avez pas copié les autres fichiers associés à la page d'accueil par défaut, il manquera certaines icônes à l'écran, mais ce n'est pas un problème pour cet atelier.
Machine Translated by Google
Autotest 59
Laboratoire 2
Ceci est un laboratoire d'information. Une fois terminé, vous devriez pouvoir vous référer à ces conseils de configuration Apache dans les situations où ce livre et Internet ne sont pas disponibles, comme lors d'un examen Red Hat. Bien sûr, vous devriez étudier ces conseils à l'avance. Si vous oubliez la syntaxe d'une ou deux commandes, ces fichiers peuvent vous sauver la vie.
Laboratoire 3
Cet atelier nécessite que vous créiez deux hôtes virtuels dans le fichier de configuration principal d'Apache, / etc/httpd/conf/httpd.conf. Bien qu'il existe certainement d'autres méthodes pour configurer différents hôtes virtuels, la description de cette réponse de laboratoire est une méthode. Et il est important que vous connaissiez au moins une méthode pour créer un hôte virtuel. Une façon d'y parvenir consiste à suivre les étapes suivantes : 1. La directive ServerRoot du système définit le répertoire par défaut du serveur Apache. Tous les fichiers et répertoires non autrement configurés (ou configurés en tant que répertoire relatif) sont définis par rapport à ServerRoot. Ne modifiez pas cela à moins que vous ne soyez prêt à ajuster les contextes SELinux du nouveau répertoire en conséquence. 2. Définissez la directive NameVirtualHost sur le port (80) desservant votre audience réseau prévue. N'attribuez aucune adresse IP. 3. Ajoutez des conteneurs VirtualHost séparés avec des paramètres appropriés pour les systèmes big.example.com et small.example.com. 4. Affectez le ServerAdmin à l'adresse email de l'administrateur de ce site Web. 5. Configurez un répertoire DocumentRoot unique pour chaque hôte virtuel. 6. Définissez le premier ServerName sur big.example.com. 7. Ajoutez les directives ErrorLog et CustomLog et définissezles sur des noms de fichiers uniques dans le répertoire / etc/httpd/logs (qui est lié au répertoire /var/logs/httpd). Avec le ServerRoot par défaut, vous pouvez utiliser un répertoire de journaux relatif, tel que le suivant :
ErrorLog logs/big.example.comerror_log 8. Assurezvous de fermer le conteneur VirtualHost (avec une directive à la fin de la strophe). 9. Répétez le processus pour le deuxième site Web, en veillant à définir le deuxième ServerName sur small.example.com. 10. Fermez et enregistrez le fichier httpd.conf avec vos modifications. 11. Créez tous les nouveaux répertoires que vous avez configurés avec les directives DocumentRoot.
Machine Translated by Google
60 Chapitre 14 : Le serveur Web Apache
12. Créez des fichiers texte index.html dans chaque répertoire défini par les nouvelles directives DocumentRoot associées. Ne vous inquiétez pas du code HTML ; un fichier texte est suffisant pour les besoins de cet atelier. 13. Assurezvous que ces noms de domaine sont configurés dans le serveur DNS faisant autorité ou dans le fichier /etc/ hosts. Par exemple, si le serveur Apache se trouve sur un système avec l'adresse IP 192.168.122.150 (comme tester1.example.com), vous pouvez ajouter les lignes suivantes à /etc/hosts :
192.168.122.150 grand.exemple.com 192.168.122.150 petit.exemple.com Les mêmes données doivent être incluses dans le fichier /etc/hosts d'un système client distant. 14. Utilisez l'outil de configuration du niveau de sécurité (systemconfigsecuritylevel) pour autoriser HTTP données via le parefeu, comme indiqué au chapitre 10. 15. Vous devrez configurer les types de fichiers SELinux appropriés dans le répertoire associé au DocumentRoot. Par exemple, si ce répertoire est /virt1, une façon de le faire est d'utiliser les commandes suivantes :
# chcon R u system_u /virt1/ # chcon R t httpd_sys_content_t /virt1 De plus, vous devrez configurer le fichier file_contexts.local dans le répertoire /etc/selinux/targeted/contexts/ files avec une commande telle que
# semanage fcontext a s system_u t httpd_sys_script_exec_t /virt1 16. Assurezvous d'exécuter la commande apachectl graceful (ou quelque chose de similaire) pour qu'Apache relise le fichier de configuration httpd.conf, avec les modifications que vous avez apportées. 17. Vous pouvez maintenant tester les résultats. Accédez à un système distant et essayez d'accéder au nouveau sites Web dans le navigateur de votre choix. Si cela fonctionne, les noms de domaine big.example.com et small.example.com doivent afficher les fichiers index.html créés pour chaque site Web.
Laboratoire 4
Ce laboratoire doit être simple ; une fois terminé, vous devriez trouver les deux fichiers suivants, qui peuvent être utilisés pour prendre en charge un hôte virtuel pour une version sécurisée du site Web big.example.com :
/etc/pki/tls/certs/big.example.com.crt /etc/pki/tls/private/ big.example.com.key Les fichiers correspondants pour le système small.example.com devraient également exister dans ces répertoires. Le processus est basé sur des réponses standard aux questions générées par les commandes genkey big.example.com et genkey small.example.com.
Machine Translated by Google
Autotest 61
Laboratoire 5
Les bases de ce laboratoire sont simples. Vous devrez répéter les mêmes étapes de base que celles effectuées dans le laboratoire 3 et utiliser le certificat et les fichiers de clé créés dans le laboratoire 4. Une différence est que les sites Web sécurisés sont généralement configurés dans /etc/httpd/conf.d/ssl. fichier conf. De plus, vous devriez vous préoccuper des points suivants : 1. Bien que cela ne soit pas absolument nécessaire, il est recommandé de configurer DocumentRoot dans un répertoire différent de celui d'un serveur Web ordinaire. Sinon, la même page Web apparaîtra pour les versions normale et sécurisée d'un site Web.
2. C'est une bonne pratique de configurer ErrorLog et CustomLog avec des noms de fichiers appropriés, pour aider à identifier que les informations proviennent de la version sécurisée d'un site Web donné. 3. Il est utile de copier les directives SSL du modèle d'hôte virtuel SSL dans le fichier ssl.conf. Toutes les directives peuvent s'appliquer aux versions sécurisées des sites Web big.example.com et small.example.com. La seule différence réside dans les directives SSLCertificateFile et SSLCertificateKeyFile :
SSLCertificateFile /etc/pki/tls/certs/big.example.com.crt SSLCertificateKeyFile /etc/pki/tls/private/big.example.com.key Bien sûr, vous remplacerez petit.exemple.com par gros.exemple.big pour les directives notées dans la strophe de l'hôte virtuel sécurisé pour ce site Web.
Laboratoire 6
Dans le fichier httpd.conf par défaut, la configuration des répertoires personnels des utilisateurs nécessite que vous activiez la directive UserDir. Vous pouvez ensuite personnaliser la strophe commentée associée aux répertoires d'accueil des utilisateurs. En cas de succès, un seul utilisateur est autorisé à accéder à son répertoire personnel via le serveur Web Apache à partir d'un navigateur client. Il est entendu que le fichier de base de données d'authentification pour ce répertoire peut conduire à un mot de passe différent pour cet utilisateur. En général, vous pouvez voir des directives telles que les suivantes dans le conteneur pour la page d'accueil donnée : Type d'authentification de base
AuthName "Juste pour un utilisateur"
AuthUserFile /etc/httpd/oneuser Exiger l'utilisateur michael Comme suggéré dans le chapitre, le répertoire personnel doit avoir des autorisations exécutables régulières pour les autres utilisateurs, ou au moins pour l'utilisateur nommé apache via les ACL. De plus, l'accès ne sera autorisé que si vous avez défini le booléen SELinux httpd_enable_homedirs.
Machine Translated by Google
62 Chapitre 14 : Le serveur Web Apache
Laboratoire 7
Le processus requis pour configurer un annuaire géré par un groupe est un hybride. Les étapes de base générales sont les suivantes.
■ Créez un utilisateur et un groupe réguliers nommés techsupport. Bien que cela ne soit pas obligatoire, il peut être utile de configurer cet utilisateur avec un UID et un GID plus élevés, pour éviter d'interférer avec d'autres utilisateurs et groupes futurs. ■ Faites des autres utilisateurs un membre de ce groupe nommé techsupport. ■ Configurez les autorisations appropriées pour prendre en charge l'accès des membres du groupe de support technique, ni généralement 2770 autorisations. Il doit également inclure soit des autorisations exécutables régulières par d'autres utilisateurs, soit des autorisations exécutables par l'utilisateur nommé apache. ■ Créez un sousrépertoire public_html/ du répertoire personnel du nouvel utilisateur. ■ Configurez un fichier index.html dans ce sousrépertoire. Il doit déjà être défini avec la propriété du groupe de support technique.
Laboratoire 8
Le script hello.pl spécifié doit inclure quelque chose comme les entrées suivantes :
#!/usr/bin/perl print "Type de contenu : text/html\n\n" ; imprimer "Hello World" ; Ce script doit être situé dans le répertoire spécifié par une directive ScriptAlias /cgibin/, dans le conteneur d'hôte virtuel big.example.com. Ce conteneur doit également inclure les directives Options ExecCGI et AddHandler cgiscript .pl. Bien qu'il soit normalement préférable d'avoir des scripts dans la même racine de répertoire que celle configurée pour un hôte virtuel, ce n'est pas obligatoire. De plus, les autorisations sur le fichier hello.pl doivent être définies sur 755 et les contextes SELinux sur le fichier (et le répertoire) doivent être du type de fichier httpd_sys_script_exec_t. Bien sûr, vous aurez exécuté une commande semanage fcontext a appropriée pour rendre le changement permanent, avec le type de fichier SELinux documenté dans le fichier file_contexts.local du répertoire /etc/selinux/targeted/contexts/files. Dans tous les cas, un résultat réussi est celui suggéré dans la question de laboratoire.
Machine Translated by Google
15 Le fichier Samba Serveur
OBJECTIFS DE LA CERTIFICATION 15.01
Services de samba
15.02 Samba en tant que client 15.03
Dépannage Samba
Exercice de deux minutes Autotest Q&R
Machine Translated by Google
2 Chapitre 15 : Le serveur de fichiers Samba
S amba est l'implémentation Linux des protocoles réseau utilisés pour connecter Microsoft systèmes d'exploitation. La mise en réseau Microsoft est basée sur le Common Internet File System (CIFS), qui
a été développé à partir du protocole Server Message Block (SMB). Samba a été développé en tant que serveur SMB librement disponible pour tous les systèmes d'exploitation liés à Unix, y compris Linux, et a été mis à niveau pour prendre en charge CIFS.
Samba interagit avec CIFS de manière si transparente que les clients Microsoft ne peuvent pas distinguer votre serveur Linux d'un véritable serveur Windows, et avec Samba sur Linux, il n'y a pas de licence de serveur, de client ou d'accès client à acheter. Si vous pouvez apprendre à modifier le fichier de configuration principal de Samba à partir de l'interface de ligne de commande, vous pouvez configurer Samba rapidement. Dans son référentiel facultatif, RHEL 6 inclut un outil de configuration graphique, l'outil d'administration Web Samba. Apprenez à tester les services réseau tels que Samba. Il s'agit de services que vous pouvez configurer et/ou dépanner lors des examens Red Hat. Prenez le temps de comprendre les fichiers de configuration associés à chacun de ces services et entraînezvous à les faire fonctionner sur différents systèmes Linux. Dans certains cas, deux systèmes ou plus exécutant Linux seront utiles pour mettre en pratique ce que vous apprenez dans ce chapitre.
À L'INTÉRIEUR DE L'EXAMEN À L'INTÉRIEUR DE L'EXAMEN
Ce chapitre traite directement de deux objectifs RHCE
ents. Les partages peuvent être limités à des clients
liés aux services du système de fichiers Samba.
spécifiques avec Samba et d'autres options de sécurité.
Lorsque vous aurez terminé ce chapitre, vous saurez comment
■ Fournir des partages réseau à des clients spécifiques ■ Fournir des partages réseau adaptés à la collaboration de groupe Avec Samba, les communications sont fluides avec les clients Microsoft. Mais comme vous n'aurez pas accès à Microsoft Windows pendant les examens Red Hat, vous verrez comment les communications Samba sont également transparentes avec d'autres cli Linux.
Samba prend également en charge la collaboration de groupe, tout comme Apache au chapitre 14. Les principes sont les mêmes que la façon dont les répertoires de groupe ont été configurés sous Linux au chapitre 8. Bien sûr, vous ne pouvez pas oublier les exigences standard pour tous les services réseau, discutées dans les chapitres 10 et 11. Pour passer en revue, vous devez installer le service, le faire fonctionner avec SELinux, vous assurer qu'il démarre au démarrage, configurer le service pour le fonctionnement de base et configurez la sécurité basée sur l'utilisateur et l'hôte.
Machine Translated by Google
Service Samba 3
OBJECTIF DE CERTIFICATION 15.01
Services de samba Le CIFS de Microsoft a été construit sur le protocole SMB (Server Message Block). SMB a été développé dans les années 1980 par IBM, Microsoft et Intel comme moyen de partager des fichiers et des imprimantes sur un réseau. Au fur et à mesure que Microsoft développait SMB en CIFS, les développeurs de Samba ont mis à niveau Samba en conséquence. Les services Samba fournissent un service de partage de fichiers et d'impression stable, fiable, rapide et hautement compatible qui permet à votre ordinateur d'agir en tant que client, serveur membre, contrôleur de domaine principal (PDC) ou membre d'un Active Directory (AD) service sur les réseaux basés sur Microsoft. Bien que Samba n'inclue pas toutes les fonctionnalités intégrées aux derniers réseaux Microsoft, je suis convaincu qu'il le fera dans un proche avenir.
J'attends avec impatience la version finale de Samba 4.0, qui permettra à Linux d'agir en tant que contrôleur AD sur un réseau basé sur Microsoft. RHEL 6 inclut une version préliminaire de Samba 4.0 et peut l'inclure dans la durée de vie de RHEL 6.
La communication réseau SMB sur un réseau basé sur Microsoft est également appelée le système d'entrée/sortie de base du réseau (NetBIOS) sur TCP/IP. Grâce aux travaux collectifs d'Andrew Tridgell et de l'équipe Samba, les systèmes Linux fournissent une prise en charge SMB transparente et fiable sur TCP/IP via un package appelé Samba. Samba émule de nombreuses fonctionnalités et fonctions réseau avancées associées avec divers systèmes d'exploitation Microsoft via le protocole SMB. Des informations complètes sont disponibles sur le site Web officiel de Samba à l'adresse www.samba.org. Il est facile de configurer Samba pour faire un certain nombre de choses sur un réseau basé sur Microsoft. Voici quelques exemples:
■ Participez à un groupe de travail Microsoft Windows ou à un domaine en tant que client, serveur membre ou même PDC. ■ Partager les répertoires d'accueil des utilisateurs.
■ Agir en tant que client ou serveur WINS (Windows Internet Name Service). ■ Associez ou gérez un service de navigation de groupe de travail. ■ Agir en tant que maître explorateur.
Machine Translated by Google
4 Chapitre 15 : Le serveur de fichiers Samba
■ Fournissez un utilisateur/mot de passe et partagez les bases de données de sécurité localement, à partir d'un autre serveur Samba ou d'un PDC Microsoft NT 4. ■ Configurez les répertoires locaux en tant que systèmes de fichiers SMB partagés. ■ Synchroniser les mots de passe entre les systèmes Windows et Linux. ■ Prise en charge des listes de contrôle d'accès Microsoft.
Samba peut faire plus, mais vous voyez l'idée. Les fonctionnalités de Samba sont configurées via un très gros fichier, smb.conf, dans le répertoire /etc/samba. Comme ce fichier peut intimider certains utilisateurs, l'outil d'administration Web Samba (SWAT) fournit une interface graphique.
Étudiez le fichier /etc/samba/smb. fichier de configuration de conf. Il comprend de
Si vous utilisez SWAT, sauvegardez d'abord le fichier de configuration Samba, car il écrase les
nombreux commentaires utiles et suggestions de directives. commentaires et les directives par défaut.
Installer les services Samba L'installation des services et packages Samba est quelque peu différente des autres serveurs. Les packages Samba ne sont pas organisés en un seul groupe de packages. Bien qu'il existe un groupe de packages "serveur de fichiers CIFS", ce groupe comprend uniquement le package RPM samba. Bien que ce soit le seul package requis pour configurer un serveur Samba, vous pouvez trouver d'autres packages Samba utiles. Les packages Samba importants sont décrits dans le Tableau 151.
Quelques arrièreplans de samba Les services Samba assurent l'interopérabilité entre les ordinateurs Microsoft Windows et Linux/ Unix. Avant de configurer Samba, vous devez avoir une compréhension de base du fonctionnement de la mise en réseau Microsoft Windows avec TCP/IP. Les réseaux Microsoft Windows d'origine étaient configurés avec un ordinateur hôte noms, appelés noms NetBIOS, limités à 15 caractères. Ces noms d'hôte uniques fournissaient un système de nom d'hôte simple et plat pour les ordinateurs d'un réseau local. Toutes les demandes d'identification par ordinateur ont été faites par diffusion. Ce système de transport réseau global est connu sous le nom d'interface utilisateur étendue NetBIOS (NetBEUI), qui n'est pas « routable ». En d'autres termes, il ne permet pas la communication entre deux réseaux locaux différents. En conséquence, les réseaux PC originaux basés sur Microsoft étaient limités en taille à 255 nœuds.
Machine Translated by Google
Service Samba 5
TABLEAU 151
Forfaits Samba
Forfait RPM
Description
samba
Inclut le logiciel serveur SMB de base pour le partage de fichiers et d'imprimantes.
client samba
Fournit les utilitaires nécessaires pour se connecter aux partages à partir des serveurs Samba et Microsoft.
sambacommun
Contient les commandes Samba courantes utilisées à la fois par le client et le serveur.
sambadoc
Inclut la documentation Samba aux formats HTML et PDF.
sambadomainjoingui Prend en charge les connexions aux groupes de travail et domaines du réseau. sambaswat
Fournit l'interface Web pour la configuration de Samba.
sambawinbind
Prend en charge Samba en tant que serveur membre sur les domaines Microsoft et prend en charge les utilisateurs Windows sur les serveurs Linux.
sambawinbindnss
Fournit des connexions client à Winbind via PAM et le service de commutation réseau (NSS).
Alors que les réseaux Microsoft auraient pu utiliser la pile de protocoles Novell IPX/SPX pour acheminer les messages entre les réseaux, cela ne suffisait pas. Au fur et à mesure qu'Internet se développait, la domination de TCP/IP augmentait également. Microsoft a adapté son système NetBIOS à TCP/IP avec SMB. Depuis que Microsoft a publié SMB en tant que norme à l'échelle de l'industrie, n'importe qui pouvait configurer son propre service pour travailler avec SMB. Au fur et à mesure que Microsoft a évolué vers CIFS, les développeurs Samba se sont bien adaptés. Mais certaines modifications assez récentes ont affecté le fichier de configuration ainsi que la commande principale de montage du client en ligne de commande. L'une des fonctionnalités intéressantes des réseaux Windows est le service de navigation. Tous les ordinateurs enregistrent leurs noms NetBIOS auprès d'un navigateur principal «élu», le gardien de la base de données des services à l'échelle du réseau. En fait, une base de données de navigation est maintenue par un hôte élu pour chaque protocole exécuté sur le réseau. Par exemple, si les protocoles NetBEUI, IPX/SPX et TCP/IP étaient installés sur un hôte, trois bases de données de navigation en double étaient nécessaires, une par protocole, car les services disponibles peuvent différer d'un protocole à l'autre.
Ports, parefeu et Samba Samba en tant que service et client nécessite un accès via plusieurs protocoles réseau. Lorsque les communications avec les clients et les serveurs Samba sont activées via le
Machine Translated by Google
6 Chapitre 15 : Le serveur de fichiers Samba
Outil de configuration du parefeu Red Hat, il ajoute les règles suivantes au fichier de configuration /etc/ sysconfig/iptables : A ENTRÉE m état état NOUVEAU m udp p udp dport 137 j ACCEPTER A ENTRÉE m état état NOUVEAU m udp p udp dport 138 j ACCEPTER A ENTRÉE m état état NOUVEAU m tcp p tcp dport 139 j ACCEPTER A ENTRÉE m état état NOUVEAU m tcp p tcp dport 445 j ACCEPTER
En d'autres termes, plusieurs services sont impliqués, comme décrit dans le Tableau 152. Vous remarquerez que trois des services utilisent le protocole UDP (User Datagram Protocol), un protocole sans connexion. Collectivement, les trois ports associés spécifient la communication NetBIOS sur TCP/IP (NBT). Pour les systèmes clients Samba, seuls les ports 137 et 138 doivent être ouverts.
Configurer les booléens SELinux pour Samba Plusieurs directives sont associées pour faire fonctionner un serveur Samba avec SELinux en mode ciblé, comme décrit dans le Tableau 153. Un seul de ces booléens (qemu_use_cifs) est activé par défaut. Cependant, vous devrez peutêtre activer un certain nombre de ces booléens pour prendre en charge différentes fonctions Samba. Pour certains lecteurs, cela peut devenir répétitif. Cependant, SELinux n'est pas bien compris, même par de nombreux experts Linux. Ainsi, par exemple, si vous souhaitez autoriser Samba à partager des répertoires personnels locaux avec d'autres sur le réseau, exécutez la commande suivante :
# setsebool P samba_enable_home_dirs 1
Le P s'assure que le changement survit à un redémarrage. Il y a des cas où il est approprié d'activer les booléens samba_export_all_ro ou samba_ export_all_rw, comme sur les répertoires qui sont partagés par d'autres serveurs. Par exemple, les fichiers partagés via un serveur Web Apache doivent être étiquetés avec le type de fichier httpd_sys_content_t. TABLEAU 152
Samba Communication
Port/Protocole
Description
137/UDP
Service de noms NetBIOS
138/UDP
Service de datagramme NetBIOS
139/UDP
Service de session NetBIOS
445/TCP
Services d'annuaire Microsoft, également connus sous le nom de Samba sur IP
Prestations de service
Machine Translated by Google
Service Samba 7
TABLEAU 153
Samba
booléen allow_smb_anon_write
Communication Prestations de service
Description Prend en charge l'écriture de fichiers dans des répertoires configurés avec le paramètre public_content_rw_t SELinux.
cdrecord_read_content
Permet à la commande cdrecord de lire les répertoires Samba partagés (et d'autres réseaux).
qemu_use_cifs
Fonctionne avec l'accès aux systèmes de fichiers CIFS ; activé par défaut.
samba_create_home_dirs
Prend en charge la création de répertoires personnels, normalement configurés pour les utilisateurs externes.
samba_domain_controller Permet à Samba d'agir en tant que contrôleur de domaine pour la gestion de l'authentification. samba_enable_home_dirs Active le partage des répertoires personnels. samba_export_all_ro Configure l'accès en lecture seule à n'importe quel répertoire, même ceux sans l'étiquette de type de fichier samba_share_t. samba_export_all_rw
Configure l'accès en lecture/écriture à n'importe quel répertoire, même ceux sans l'étiquette de type de fichier samba_share_t.
samba_run_unconfined
Prend en charge l'exécution de scripts non confinés à partir du répertoire / var/lib/samba/scripts.
samba_share_fusefs
Permet à Samba de partager des systèmes de fichiers montés sur fusefs, un montage courant pour le système de fichiers Microsoft NTFS.
samba_share_nfs
Permet le partage des systèmes de fichiers NFS.
use_samba_home_dirs
Prend en charge l'utilisation d'un serveur distant pour les répertoires personnels de Samba.
virt_use_samba
Permet à une machine virtuelle d'accéder aux fichiers montés sur le système de fichiers CIFS.
Configurer les types de fichiers SELinux pour Samba Normalement, Samba ne peut partager que les fichiers et répertoires étiquetés avec le type de fichier samba_share_t. Il est vrai que le type de fichier samba_share_t n'est pas requis si les booléens samba_export_all_ro ou samba_export_all_rw sont activés. Cependant, ce serait un risque pour la sécurité. Ainsi, dans la plupart des cas, vous souhaiterez activer les répertoires (et les fichiers qu'ils contiennent) avec le type de fichier indiqué avec une commande comme celleci :
# chcon R t samba_share_t /share De plus, pour vous assurer que les modifications survivent à un changement d'étiquette de SELinux, vous souhaiterez configurer le fichier file_contexts.local dans le répertoire /etc/selinux/targeted/contexts/files avec une commande telle que la suivante :
# semanage fcontext a t samba_share_t /share
Machine Translated by Google
8 Chapitre 15 : Le serveur de fichiers Samba
Démons Samba Le partage de répertoires et d'imprimantes sur un réseau de type Microsoft nécessite plusieurs démons et un certain nombre de commandes associées. En travaillant ensemble, les commandes peuvent aider à configurer Samba, et les démons l'aident à communiquer via les différents ports de communication décrits précédemment dans ce chapitre. Samba inclut un nombre substantiel de commandes qui exécutent le service, ainsi qu'une aide à la configuration. Les commandes les plus importantes sont les fichiers binaires du répertoire /usr/sbin qui démarrent les différents services Samba. Vous avez besoin de deux démons pour exécuter Samba : le service Samba principal (smbd) et le service de noms NetBIOS (nmbd). De plus, la plupart des administrateurs souhaiteront exécuter le service Winbind (winbindd) pour la résolution des noms d'utilisateur et d'hôte. Tous les trois sont configurés via le fichier de configuration /etc/samba/smb.conf. Si vous voulez vous assurer que les services s'exécutent au prochain démarrage de Linux, les scripts associés dans le répertoire /etc/init.d sont smb, nmb et winbind. Ils démarrent les démons smbd, nmbd et winbindd associés avec les options suivantes dans le fichier /etc/sysconfig/samba :
SMBDOPTIONS="D" NMBDOPTIONS="D" WINBINDOPTIONS=""
Oui, bien qu'aucune option ne soit incluse pour le démon winbind, elles peuvent être incluses entre guillemets dans le fichier indiqué. Pour confirmer le fonctionnement d'un démon, la commande ps peut aider. Par exemple, la sortie suivante vers ps aux | La commande grep smb confirme que le service Samba est en cours d'exécution avec le commutateur D : racine 12836 0.0 0.2 203612 1648 ? S Mar08 0:00 smbd D
Configuration globale du serveur Samba Vous pouvez configurer un serveur Samba via le fichier de configuration principal de Samba, / etc/samba/smb.conf. Ce fichier est long et comprend un certain nombre de commandes qui nécessitent une certaine compréhension des concepts associés à la mise en réseau Microsoft Windows. Heureusement, la version par défaut de ce fichier comprend également une documentation utile avec des suggestions et des options utiles. Contrairement à certains autres services, le fichier de configuration Samba par défaut inclut un certain nombre de directives commentées autres que celles par défaut. La valeur par défaut de ces directives peut être trouvée dans la page de manuel du fichier smb.conf.
Machine Translated by Google
Service Samba 9
Vous pouvez modifier ce fichier directement ou créer des partages de répertoires à l'aide de SWAT. Avant d'utiliser n'importe quel outil graphique, soyez courageux. Étudiez le fichier original /etc/samba/smb.conf. Une fois que vous voyez comment le fichier est structuré, sauvegardezle. Essayez de modifier le fichier directement. Essayez de modifier le fichier avec l'outil SWAT, décrit plus loin dans ce chapitre. Testez le résultat en redémarrant le serveur Samba avec la commande suivante :
# redémarrage du service smb Pour vous aider dans ce processus, je vais analyser la version RHEL 6 par défaut de ce fichier. Le code cidessous est essentiellement une vue complète de ce fichier. Dans certains cas, j'ai remplacé les commentaires dans le fichier par mes propres explications. Vous pouvez également parcourir votre propre fichier / etc/samba/smb.conf. Le fichier smb.conf comprend deux types de lignes de commentaires. Le symbole dièse (#) est utilisé pour un commentaire de texte général. Il s'agit généralement de verbiage décrivant une fonctionnalité. Le deuxième symbole de commentaire est le pointvirgule (;), utilisé pour commenter les directives Samba (que vous souhaiterez peutêtre ultérieurement décommenter pour activer la fonctionnalité désactivée). (Notez que les dimensions physiques de ce livre limitent la longueur des lignes de code. Dans quelques cas, j'ai légèrement modifié les lignes de code pour répondre à cette limitation, sans changer l'intention d'aucune commande dans ce fichier de configuration. )
# Ceci est le fichier de configuration principal de Samba. Vous devriez lire la page de manuel # smb.conf(5) afin de comprendre les options répertoriées # ici. Samba a un grand nombre d'options configurables (peutêtre # trop !) dont la plupart ne sont pas montrées dans cet exemple.
# REMARQUE : Chaque fois que vous modifiez ce fichier, vous devez exécuter la commande # "testparm" pour vérifier que vous n'avez pas commis d'erreur # syntaxique de base.
Comme indiqué dans le Red Hat
pour le fonctionnement de base. Certains des détails de la
Guide de préparation aux examens, les RHCE doivent être en
version par défaut de la configuration principale de Samba vont
mesure de confi gurer divers services, y compris Samba,
audelà du fonctionnement de base.
Bien que vous ayez besoin de savoir ce qui peut être fait avec différents paramètres globaux, vous devrait changer le moins possible. Moins vous changez, moins vous risquez de vous tromper. Des fichiers de configuration parfaits ne sont pas nécessaires. Les fichiers de configuration qui répondent aux exigences spécifiques d'un examen ou d'un travail sont.
Machine Translated by Google
10 Chapitre 15 : Le serveur de fichiers Samba
Dans smb.conf, les paramètres globaux, qui définissent les attributs généraux d'un serveur, suivez la première série de commentaires, y compris les commentaires liés à SELinux abordés précédemment. La section [global] commence par les deux lignes suivantes :
#======================= Paramètres généraux======================== == [mondial]
Examinez maintenant les paramètres globaux qui suivent. Tout d'abord, si vous voyez la ligne
#authconfigstartline cela signifie que le fichier de configuration a été modifié par l'outil authconfig ou systemconfigauthentication.
Options liées au réseau Faites défiler jusqu'à la soussection intitulée
# Options liées au réseau (Dans les premières versions de RHEL 6, le mot "Network" est en fait mal orthographié comme "Netwrok".) Dans cet esprit, examinez chacune des directives de cette partie de la section Paramètres globaux. Malgré le nom, la variable de groupe de travail spécifie le nom d'un groupe de travail ou plus communément, un domaine. Mais comme les groupes de travail peertopeer ont été développés en premier, le groupe de travail Samba par défaut est WORKGROUP, qui se trouve être l'ancien nom du groupe de travail peertopeer par défaut. Il est maintenant défini sur le groupe de travail par défaut pour Microsoft Windows 7 :
groupe de travail = MONGROUPE
La directive de chaîne de serveur qui suit devient le commentaire affiché avec le Nom NetBIOS du système dans la liste de navigation visible, où Samba remplace le numéro de version par la variable %v :
chaîne de serveur = version du serveur Samba %v C'est une bonne idée d'ajouter un nom NetBIOS pour le système local à ce fichier. Alors que limité à 15 caractères, il peut s'agir du même nom d'hôte que celui utilisé pour le système. Cela devient ce que les autres clients voient dans les listes de navigation réseau telles que celles affichées à partir d'une commande Microsoft net view ou d'une commande Linux smbclient standard.
; nom netbios = MONSERVEUR
Machine Translated by Google
Service Samba 11
Si le système local est connecté à plusieurs réseaux, vous pouvez les spécifier avec la directive interfaces, comme illustré ici. Bien entendu, les appareils et les adresses réseau doivent être modifiés en conséquence.
; interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24 Si vous activez la directive hosts allow, cette action peut limiter l'accès au(x) réseau(x) spécifié(s). La valeur par défaut suivante limiterait l'accès aux réseaux avec les adresses IP réseau 192.168.12.0 et 192.168.13.0, ainsi qu'à l'ordinateur local (127.) :
; les hôtes autorisent = 127. 192.168.12. 192.168.13. Il est possible de configurer une directive hosts deny de la même manière. Avec de telles directives, vous pouvez configurer la sécurité basée sur l'hôte pour Samba. Dans la section globale, une telle sécurité s'appliquerait à l'ensemble du serveur. Vous pouvez également utiliser les directives hosts allow et hosts deny dans les définitions des répertoires partagés individuels, comme décrit plus loin dans ce chapitre.
Options de journalisation La section suivante configure les options de journalisation, comme indiqué par l'étiquette suivante :
# Options de journalisation La directive de fichier journal, comme illustré, configure des fichiers journaux distincts pour chaque machine qui se connecte à ce serveur Samba, en fonction de son nom de machine (%m). Par défaut, le fichier journal est limité à 50 Ko. Comme suggéré par le commentaire, les fichiers journaux qui dépassent la taille donnée font l'objet d'une rotation. Si les journaux dépassent cette taille, vous les verrez toujours dans le répertoire /var/log/samba avec l'extension .old.
# journaux divisés par fichier journal de la machine = /var/log/samba/%m.log # max 50 Ko par fichier journal, puis faire pivoter la taille maximale du journal = 50
Options de serveur autonome La section suivante configure les options de sécurité, basées sur la configuration en tant que serveur autonome :
# Options de serveur autonome
Machine Translated by Google
12 Chapitre 15 : Le serveur de fichiers Samba
La directive de sécurité peut être un peu déroutante. La valeur standard de la directive, comme indiqué ici, signifie que les connexions vérifient la base de données locale des mots de passe. Il est approprié lors de la configuration de cet ordinateur en tant que contrôleur de domaine (DC), en particulier un contrôleur de domaine principal (PDC).
sécurité = utilisateur Sinon, pour configurer cet ordinateur en tant que serveur membre sur un domaine, utilisez une base de données de mots de passe à partir d'un DC. Curieusement, dans ce cas, vous remplaceriez la commande suivante :
sécurité = domaine Pour configurer un système Linux en tant que poste de travail partageant des répertoires sur un domaine Microsoft, vous devez configurer l'ordinateur en tant que serveur membre sur ce domaine.
Pour configurer un système en tant que serveur membre sur un réseau Active Directory, remplacer la commande suivante :
sécurité = publicités Alternativement, pour utiliser une base de données à partir d'un autre ordinateur qui n'est pas un contrôleur de domaine, vous
remplacer la commande suivante :
sécurité = serveur Enfin, pour configurer un système sur un groupe de travail peertopeer qui ne nécessite pas de noms d'utilisateur, remplacez la commande suivante :
sécurité = partager Pour résumer, il existe cinq options d'authentification de base : partage, utilisateur, serveur, domaine et annonces. Maintenant, recentrez cette directive sur la base de données d'authentification. La valeur par défaut est security = user ; dans ce cas, assurezvous que les noms d'utilisateur et mots de passe Samba que vous créez correspondent à ceux des systèmes Windows NT/2000/XP/Vista individuels sur le réseau. Si la base de données est locale, elle peut être soit
passdb backend = smbpasswd ou
passdb backend = tdbsam
Machine Translated by Google
Service Samba 13
La base de données smbpasswd est locale, stockée dans le répertoire local /etc/samba. L'option tdbsam, abréviation de Trivial Database Security Accounts Manager, configure une base de données de comptes locaux dans le répertoire /var/lib/samba. Alternativement, pour une base de données distante telle que LDAP, vous pouvez activer la directive suivante. Si le serveur LDAP se trouve sur un système distant, cette adresse URI (Uniform Resource Identifier) peut être incluse ici.
passdb backend = ldapsam Si vous avez configuré security = server ou security = domain, vous souhaiterez également activer la directive suivante avec le nom ou l'adresse IP du serveur de mots de passe. * Vous pouvez également remplacer par a pour le serveur faire rechercher par Samba de mot de passe.
; serveur de mot de passe = Si vous avez configuré security = ads, vous souhaiterez également activer la directive suivante pour spécifier le domaine Active Directory (AD), en remplaçant le domaine AD réel par MON_DOMAINE :
; domaine = MON_DOMAINE
Options du contrôleur de domaine La section suivante prend en charge la configuration d'un système en tant que contrôleur de domaine, en commençant par le commentaire suivant :
# Options du contrôleur de domaine Une configuration supplémentaire est requise pour un serveur Samba configuré en tant que contrôleur de domaine. En bref, ces options spécifient le rôle du système en tant que maître de domaine, en tant que système qui reçoit les demandes de connexion au domaine :
; maître de domaine = oui ; logins de domaine = oui La commande suivante configure les fichiers batch de ligne de commande Microsoft par ordinateur et utilisateur. La commande stocke ensuite les profils utilisateur Microsoft sur le serveur Samba local. Cela signifie que ces commandes ne peuvent pas être testées lors des examens Red Hat, sauf si vous avez accès à un ordinateur Microsoft Windows. Comme je ne peux pas vous dire ce qu'il y a dans les examens Red Hat, je ne peux que suggérer que Red Hat pourrait ne pas vouloir d'ordinateurs Microsoft Windows distincts disponibles pendant leurs examens. Bien sûr, Microsoft
Machine Translated by Google
14 Chapitre 15 : Le serveur de fichiers Samba
Les machines virtuelles invitées Windows sont incluses dans la description du cours Red Hat Enterprise Virtualization.
# le nom du script de login dépend du nom de la machine ; logon script = %m.bat # le nom du script de connexion dépend de l'utilisateur unix utilisé ; script de connexion = %U.bat ; chemin de connexion = \\%L\Profiles\%U
Les commandes restantes sont assez explicites, car les scripts qui ajoutent et suppriment utilisateurs, groupes et comptes d'ordinateur.
; add user script = /usr/sbin/useradd %u n g utilisateurs ; ajouter un script de groupe = /usr/sbin/groupadd %g ; ajouter un script machine = /usr/sbin/adduser n c \ "Poste de travail (%u)" M d /nohome s /bin/false %u ; supprimer le script utilisateur = /usr/sbin/userdel %u ; supprimer l'utilisateur du groupe script = /usr/sbin/userdel %u %g ; script de suppression de groupe = /usr/sbin/groupdel %g
Options de contrôle de navigation La section suivante contrôle si et comment un système peut être configuré en tant que maître de navigation, qui maintient une liste de ressources sur le réseau. Les directives associées commencent par le commentaire suivant :
# Options de contrôle du navigateur Sauf si un serveur Samba est spécifiquement désigné comme maître de navigation local,
; maître local = non Samba participe aux élections du navigateur comme n'importe quel autre ordinateur Microsoft Windows, en utilisant le niveau de système d'exploitation spécifié. ; niveau d'exploitation = 33
Alternativement, si un contrôleur de domaine n'est pas déjà élu comme maître de navigation, vous peut permettre à l'ordinateur local de gagner plus facilement l'élection du navigateur, avec la commande master préférée :
; maître préféré = oui
Machine Translated by Google
Service Samba 15
Résolution de nom La section suivante vous permet de configurer un serveur Samba avec une base de données de Noms et adresses IP NetBIOS, commençant par le commentaire suivant :
# Résolution de nom Le service de noms Internet Windows (WINS) est fonctionnellement équivalent au DNS sur les réseaux basés sur Microsoft tels que Samba. Si vous activez la commande suivante, Samba active un serveur WINS sur l'ordinateur local :
; gagne le support = oui Vous pouvez également faire pointer l'ordinateur local vers un serveur WINS distant sur le réseau; bien sûr, vous devrez remplacer l'adresse IP par wxyz. N'activez pas à la fois