1 Merged [PDF]

  • Author / Uploaded
  • ibou
  • 0 0 0
  • Gefällt Ihnen dieses papier und der download? Sie können Ihre eigene PDF-Datei in wenigen Minuten kostenlos online veröffentlichen! Anmelden
Datei wird geladen, bitte warten...
Zitiervorschau

Machine Translated by Google

Machine Translated by Google

1 Préparez­vous  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  (McGraw­Hill, 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  HP­UX,  préparez­vous  à  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  sous­ensemble  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   "bare­metal".  (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  au­dessus  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  pare­feux,  à  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  au­delà  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  plate­forme  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  plates­formes. 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,  assurez­vous  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'arrache­pied  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  plate­forme  Les  applications  telles  que  VMware  Player  et  Virtualbox   sont  des  exemples  d'édition  open  source  de  machines  virtuelles  au  niveau  de  la  plate­forme  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   plate­forme,  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  rhel­server­6.0­x86_64­dvd.iso  #  sha256sum   rhel­server­6.0­x86_64­dvd.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,  assurez­vous  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  "bare­metal"  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  1­1. 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   post­installation  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  1­1

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  lui­mê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  1­2  listes les  rôles  appropriés  pour  chacun  des  trois  systèmes  décrits  dans  le  Lab  1. TABLEAU  1­2

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  1­1  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  ignorez­le  et  passez  à  l'étape  4.

Machine Translated by Google

Possibilités  d'installation  25

FIGURE  1­1 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  1­2.

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  1­2 Sélectionnez  un

Installation Méthode.

6.  Dans  l'écran  Configurer  TCP/IP,  illustré  à  la  Figure  1­3,  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  1­2.  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  sous­ré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  1­3

Configurez  le   type  d'adressage   réseau.

8.  Dirigez  votre  ordinateur  vers  le  serveur  FTP  distant.  Comme  illustré  à  la  Figure  1­4,   vous  pouvez  entrer  le  nom  d'hôte  ou  l'adresse  IP  du  serveur  FTP,  ainsi  que  le   répertoire  partagé.

FIGURE  1­4

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   1­5.  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  ALT­F3,  ALT­F4  ou  ALT­F5.  Une  ligne  de  commande  est  disponible  en  appuyant  sur   ALT­F2.  Pour  revenir  à  l'écran  GUI,  appuyez  sur  CTRL­ALT­F6.  Si  vous  êtes  dans  une  installation  en  mode   texte,  vous  pouvez  revenir  à  cet  écran  en  appuyant  sur  ALT­F1.

FIGURE  1­5

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électionnez­le.  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. Faites­le  et  cliquez  sur  Suivant  pour  continuer. 18.  L'étape  suivante,  illustrée  à  la  Figure  1­6,  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  1­7.  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  1­6 Options  de  disposition   des  partitions

Machine Translated by Google

Possibilités  d'installation  31

FIGURE  1­7 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  1­8,  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  1­8

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,  assurez­vous  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,  reportez­vous  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  sauvegarderait­il  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.  Au­dessus  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étendez­vous  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  1­8. 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  1­1.  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  1­9.  Sélectionnez  Partition  standard  et  cliquez  sur  Créer  pour  continuer.

FIGURE  1­9 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  1­10.  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  1­1. 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  1­10 Ajoutez  une  partition.

Machine Translated by Google

Possibilités  d'installation  37

EXERCICE  1­1 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  1­8  et  se  poursuit  avec  les  fenêtres  illustrées  aux  Figures  1­9  et  1­10.   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  1­10.  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,  assurez­vous  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  ci­dessus.  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,  assurez­vous  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,   assurez­vous  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.  Faites­le  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.  Assurez­vous  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  1­1.  Une  version  est  illustrée  à  la  Figure  1­11.  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  1­11 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  1­12  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  1­12 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  1­13,  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  1­13

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  1­3.  Selon  la  distribution  de   reconstruction,  les  options  peuvent  varier  considérablement. TABLEAU  1­3

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   1­13  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).   Assurez­vous  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  1­14,  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é  *­comps­rhel6­Server.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  1­15. 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  1­14 chapeau  rouge Groupes  de  packages   Enterprise  Linux

Machine Translated by Google

44  Chapitre  1 :  Préparation  aux  certifi  cations  pratiques  Red  Hat

FIGURE  1­15 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  double­cliquez  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  1­16,  cliquez  sur  Options  de  démarrage.

Machine Translated by Google

46  Chapitre  1 :  Préparation  aux  certifi  cations  pratiques  Red  Hat

FIGURE  1­16 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  devrais­je  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  1­17.  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  1­17 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  pare­feux  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é,  reportez­vous  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,   reportez­vous  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  pare­feu  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  ­­physdev­is­bridged  ­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  assurez­vous  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 :

#  sysctl­p 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.

■  Assurez­vous  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  rhel­server­6.0­x86_64­dvd.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  sous­ré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  pare­feu  existant. Les  étapes  requises  pour  configurer  Apache  en  tant  que  serveur  d'installation  RHEL  sont  similaires   à  celles  requises  pour  configurer  vsFTP.  Dans  l'exercice  1­2,  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  rappelez­vous,  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  1­18.

Machine Translated by Google

54  Chapitre  1 :  Préparation  aux  certifi  cations  pratiques  Red  Hat

FIGURE  1­18 Preuve  d'un   défaut  de  fonctionnement

Serveur  Apache

Si  le  port  80  est  ouvert  dans  un  pare­feu  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,  reportez­vous  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  1­2 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  pare­feu  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  rhel­server­6.0­x86_64­dvd.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   sous­ré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.  Assurez­vous  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  system­config­firewall. 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  pare­feu  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.  Assurez­vous  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  sous­ré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.  Assurez­vous   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  1­19.  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  au­dessus  du

FIGURE  1­19 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  pare­feu  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  quelques­uns  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,   concentrez­vous  sur  les  chapitres  1  à  9.  Si  vous  étudiez

Pour  la  RHCE,  alors  que  vous  êtes  responsable  des  informations  contenues  dans  l'ensemble  du   manuel,  concentrez­vous  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  post­installation  est  le  processus  de  premier   démarrage.     Les  pare­feu  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

AUTO­TEST 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  comporte­t­il ?  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  pouvez­vous  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  pare­feu  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,  faites­le   avec  une  commande  telle  que  mount /dev/cdrom /media.  (Si  vous  n'avez  que  les  fichiers  ISO,  par  exemple   dans  le  sous­ré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.  Assurez­vous  que  rien  ne  bloque  l'accès  à  votre  serveur  vsFTP.  Utilisez  un  outil  tel  que  l'outil  de   configuration  du  pare­feu  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  sous­ré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'AUTO­TEST 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  pare­feu  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  pare­feux  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,  reportez­vous  à  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  au­delà  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'auto­apprentissage  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  faites­vous ?

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é,  au­delà  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.  Connectez­vous  à  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  2­1. La  liste  est  peut­être  un  peu  trop  complète ;  dans  la  Figure  2­1,  vous  remarquerez  peut­être  deux   versions  différentes  du  paquet  qemu­kvm.  Généralement,  seule  la  dernière  version  du

Machine Translated by Google

Configurer  KVM  pour  Red  Hat  5

FIGURE  2­1

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  2­1,  installez  simplement   la  dernière  version  de  tous  les  packages  de  virtualisation.

TABLEAU  2­1

Paquets Associé  à Virtualisation

Emballer

Description

qemu­kvm  

Le  package  KVM  principal

python­virtinst

Outils  de  ligne  de  commande  et  bibliothèques  pour  créer  des  machines  virtuelles

virt­manager

Outil  d'administration  de  machine  virtuelle  graphique

virt­top

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

libvirt­client

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  virt­v2v  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,  assurez­vous  d'abord  que  le  matériel  est  adapté.  Et  comme   suggéré  au  chapitre  1,  assurez­vous  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  virt­manager.  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  2­2. 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  virt­manager.

FIGURE  2­2

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  2­3. Comme  indiqué,  l'onglet  Présentation  répertorie  les  bases  de  la  configuration  de  la  machine  virtuelle,  comme  indiqué   dans  le  Tableau  2­2.

FIGURE  2­3 Détails  de  l'hôte  VM.

Machine Translated by Google

Configurer  KVM  pour  Red  Hat  9

TABLEAU  2­2

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  quad­core 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  2­4  illustre  le  réseau   standard  pour  les  machines  virtuelles  créées  avec  cet  hyperviseur.

FIGURE  2­4

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  2­1,   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  2­1 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  1­2,  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  serait­ce  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  2­5  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  2­5

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  2­6  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  pare­feu   et  du  transfert  IP  décrites  au  chapitre  1.  Cependant,  la  figure  2­6  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  2­6 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  virt­manager.  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  2­7. 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  CD­ROM)  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  2­7 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  celui­ci  sera   sélectionnable,  comme  illustré  à  la  Figure  2­8.  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  2­9,  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  2­10.  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  2­8

Machine  virtuelle Installation  multimédia

Choix

Machine Translated by Google

Configurer  une  machine  virtuelle  sur  KVM  17

FIGURE  2­9 Machine  virtuelle RAM  et  CPU Sélection.

FIGURE  2­10 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.  Assurez­vous  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  2­11. Vous  pouvez  avoir  des  options  à  sélectionner  parmi  les  réseaux  virtuels  disponibles.  Si  vous   avez  effectué  l'exercice  2­1,  l'option  d'adresse  réseau  192.168.100.0/24  devrait  être  disponible.

FIGURE  2­11 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  2­2.  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   CD­ROM  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  2­12 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  2­2 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  virt­manager. 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  2­13  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  virt­install,  virsh  et  virt  clone.  La  commande   virsh  est  un  moyen  particulièrement  utile  pour  répondre  à  deux  objectifs  RHCSA  différents.

La  commande  virt­install 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  virt­install  ­­prompt.  La  commande  demande  automatiquement  les   informations  requises  décrites  précédemment.  Examinez  la  commande  et  les  invites  illustrées  à  la  Figure  2­14.

Machine Translated by Google

Configurer  une  machine  virtuelle  sur  KVM  23

FIGURE  2­13

Le Fichier  de  configuration   pour  un  KVM  virtuel

Machine.

FIGURE  2­14

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  2­14  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  CTRL­C.  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   virt­install  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  2­14,  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  virt­install  avec  le  même nom  de  la  machine  virtuelle.

La  commande  virt­install  et  Kickstart  Pour  les  installations  Kickstart   décrites  plus  loin  dans  ce  chapitre,  la  commande  virt­install  ­­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  virt­install,  comme  indiqué  dans  le  Tableau  2­3. Par  exemple,  la  commande  virt­install  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  2­3

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  (­­extra­args=)

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.

#  virt­install  ­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  virt­install  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  virt­install   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  virt­install. L'exception  est  le  ­x,  un  autre  nom  pour  le  commutateur  ­­extra­args=.  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é.  Rappelez­vous  donc  le  format  des   arguments  supplémentaires,  avec  les  guillemets,  qui  peuvent  également  être  exprimés  comme  suit :

­­extra­args=”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  2­4.  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  2­4

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  virt­clone  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  2­15.

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  2­15

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  post­installation,  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  anaconda­ks.cfg  du  répertoire  personnel  de  l'utilisateur   root, /root.  ■  Utilisez  le  configurateur  graphique  Kickstart,  accessible  via  la  commande   system­config  kickstart. La  première  option  vous  permet  d'utiliser  le  Kickstart fichier  modèle  créé  pour  le  système  local  par   Anaconda,  anaconda­ks.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  anaconda­ks.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  anaconda­ks.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.  Assurez­vous  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  anaconda­ks.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,  assurez­vous  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/en­US. 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  anaconda­ks.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.UTF­8  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  anaconda­ks.  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  pare­feu  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  pare­feu,  en  fonction  de  la  manière   dont  il  est  défini  dans  le  fichier /etc/services. pare­feu  ­­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  sous­ré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  ­­only­use=vda

Si  vous  prévoyez  d'utiliser  ce  fichier  Kickstart  avec  la  commande  virt­install  décrite   précédemment,  vous  devrez  remplacer  le  périphérique  sda  par  vda,  car  la  commande  virt­install   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  anaconda­ks.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  *­comps­rhel6­Server.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 @console­internet

... nss­pam­ldapd  perl­ DBD­SQLite  %end

Une  fois  les  groupes  de  packages  installés,  vous  pouvez  spécifier  des  commandes  de  post­installation 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  2­3 Créer  et  utiliser  un  exemple  de  fichier  Kickstart Dans  cet  exercice,  vous  utiliserez  le  fichier  anaconda­ks.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  anaconda­ks.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/anaconda­ks.cfg.  Copiez­le  dans  ks.cfg. 2.  S'il  existe  une  directive  réseau  dans  le  fichier,  modifiez­la  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.  Assurez­vous  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/anaconda­ks.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  sous­répertoire  pub/inst/.  S'il  s'agit  d'une  adresse  IP  et  d'un  répertoire   différents,  remplacez­les  en  conséquence. 5.  Assurez­vous  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.  Assurez­vous  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.  Assurez­vous  qu'aucun  pare­feu  existant  ne  bloque  le  port  de  communication  associé  au  serveur   d'installation.  Pour  plus  d'informations,  reportez­vous  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,  remplacez­le   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  system­config­kickstart 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  system­config  kickstart.  Pour  le   démarrer  avec  la  configuration  par  défaut  du  système  local,  citez  le  fichier  anaconda­ks.cfg  comme  suit :

#  system­config­kickstart /root/anaconda­ks.cfg Il  devrait  ouvrir  le  configurateur  Kickstart  illustré  à  la  Figure  2­16.  (Bien  sûr,  c'est  probablement   une  bonne  idée  de  sauvegarder  d'abord  le  fichier  anaconda­ks.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  2­16 Le  coup  d'envoi Configurateur.

L'écran  illustré  à  la  Figure  2­16  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  pare­feu  La  section   Configuration  du  pare­feu  vous  permet  de  configurer  un  pare­feu  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  pare­feu. 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  post­installation  au  fichier  Kickstart. Les  scripts  de  post­installation  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  pare­feu  sont  activés  par  défaut,  le  pare­feu  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. Voulez­vous  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  F02­20.  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  F02­20.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  F02­20.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   2­17  pour  administrer  les  utilisateurs  sur  le  système  distant.

FIGURE  2­17 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  pare­feu,  vous  obtiendrez  le  même  résultat  à  partir  d'un  système  distant.  Si  un  pare­feu   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  pare­feu,  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  2­18  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  pare­feu  sur  le  serveur.

Démarrage  de  Nmap  5.21  ( http://nmap.org )  au  2010­11­29  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  2­18 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  CTRL­D ,  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  e­mail  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  passe­t­il  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  

signifie­t­elle  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  Bourne­Again  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  Bourne­Again  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  start­ttys.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  ALT­F2  se  déplace  vers  la  deuxième  console.   Cependant,  dans  l'interface  graphique  RHEL,  la  combinaison  de  touches  ALT­F2  est  utilisée  pour  démarrer   l'outil  Exécuter  l'application ;  par  conséquent,  vous  devrez  appuyer  sur  CTRL­ALT­F2  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.32­71.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  3­1.

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  copier­coller  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  3­1

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  celui­ci  avec  une  

l'objectif  de  « redirection  des  entrées/sorties »  dans  

commande  comme  celle­ci :

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.  Essayez­les!

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  sous­ré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 :

anaconda­ks.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  anaconda­ks.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  system­config­keyboard  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'elle­mê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  3­2.  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  3­2

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  sous­ré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/kernel­2.6.32­71.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/kernel­2.6.32­71.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/kernel­2.6.32­71.1.el6 supprimerait  d'abord  tous  les  fichiers  en  commençant  par  le  répertoire  racine  de  niveau  supérieur,   avant  de  rechercher  le  sous­répertoire  root/rpmbuild/BUILD/kernel­2.6.32­71.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  sous­ré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  sous­ré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  ­­tty­only  ­­read­alias  ­­show­dot  ­­show­tilde' 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  3­1.

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  sous­ré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  3­1

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  sous­ré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  3­3.

Machine Translated by Google

20  Chapitre  3 :  Compétences  fondamentales  en  ligne  de  commande

FIGURE  3­3 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  ifcfg­eth0   dans  le  répertoire /etc/sysconfig/network­scripts. Si  vous  avez  sauvegardé  ce  fichier  ifcfg­eth0,  la  commande  diff  peut  identifier  les  différences   entre  les  deux  fichiers.  Par  exemple,  la  commande  suivante  identifie  les  différences  entre  le  fichier  ifcfg­eth0   dans  les  répertoires  de  scripts /root  et /etc/sysconfig/network :

#  diff /root/ifcfg­eth0 /etc/sysconfig/network­scripts/ifcfg­eth0 Ainsi,  si  vous  avez  sauvegardé  le  fichier  ifcfg­eth0  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  mot­clé  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.  Ci­aprè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  3­4. 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  3­4

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  3­1 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.  Connectez­vous  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.  Assurez­vous  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,  reportez­vous   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  3­5,  les  instructions  ne  seront  pas être  fournis  dans  ce  livre.  Le  manuel  complet  est  disponible  sur  www.nano­editor.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  3­5

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  sous­ré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  3­6

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   3­6  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  voulez­vous ? 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  3­7.  Si  vous  avez  déjà  exécuté  la  commande  lvexpand,   cette  section  peut  vous  aider  à  vous  rafraîchir  la  mémoire.

FIGURE  3­7 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'est­ce  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é  man­pages  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  system­config­users­doc  qui  inclut  une  documentation  basée  sur  l'interface  graphique  pour  l'outil  de   configuration  User  Manager.  Il  existe  un  package  httpd­manual  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  3­8,  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  sous­répertoires  incluent  le  nom  et  le  numéro   de  version  du  package  installé.  Certains  de  ces  sous­ré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  system­config­*  incluent  une   copie  de  la  GNU  GPL  dans  le  fichier  COPYING  du  répertoire /usr/share/doc  associé.

FIGURE  3­8 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  sous­ré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  sous­ré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 ;  celles­ci  sont  appelées  adresses  statiques .   D'autres  sont  loués  à  partir  d'un  serveur  DHCP  pour  une  durée  limitée ;  celles­ci  sont  également  appelées   adresses  IP  dynamiques . Les  adresses  IPv4  sont  organisées  en  cinq  classes  différentes,  comme  indiqué  dans  le  Tableau  3­2. 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  sous­réseau  16  bits

TABLEAU  3­2

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  lien­local  incluent  un  préfixe  de  10  bits,  54  zéros  et  le   même  identifiant  d'interface  de  64  bits.  Les  adresses  de  monodiffusion  lien­local  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  3­3.  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  sous­ré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  sous­ré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  3­3

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  lien­local ;  pas  de  routage  entre  les  réseaux

fec0 ::

Adresses  site­local,  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  sous­ré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  sous­ré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  Inter­Domain  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  sous­ré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  sous­ré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  CTRL­C  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  lui­mê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  3­4.

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  3­4

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  sous­ré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/network­scripts,  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  ifcfg­eth0  et  le  script  ifcfg­eth  dans  le  répertoire /etc/sysconfig/ network­scripts.  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/network­scripts  peut   ressembler  à  ifcfg­System_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  3­5.

Machine Translated by Google

42  Chapitre  3 :  Compétences  fondamentales  en  ligne  de  commande

TABLEAU  3­5

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  celle­ci  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/network­scripts.

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,  reportez­vous  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/network­scripts/ifcfg­lo  En  parlant  du   répertoire /etc/sysconfig/network­scripts,  peut­être  que  la  base  du  réseau  est  l'adresse  de   bouclage.  Ces  informations  sont  configurées  dans  le  fichier  ifcfg­lo  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/network­scripts/ifcfg­eth0  Ce  que  vous  voyez  dans   le  fichier  ifcfg­eth0  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  ifcfg­eth0  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  3­9  fournit  un  guide.

Machine Translated by Google

46  Chapitre  3 :  Compétences  fondamentales  en  ligne  de  commande

FIGURE  3­9 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  3­10,  qui  illustre  la  configuration  d'une  carte  réseau  sans  fil  sur  mon   système  d'ordinateur  portable  RHEL  6.

FIGURE  3­10

Un  sans  fil réseau configuration

Machine Translated by Google

Configuration  réseau  et  dépannage  47

Autres  fichiers /etc/sysconfig/network­scripts/  La  plupart  des   fichiers  du  répertoire /etc/sysconfig/network­scripts  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  route­eth0.  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  system­config­network.  Le  second  est  l'outil   Connexions  réseau  que  vous  pouvez  démarrer  à  partir  d'une  ligne  de  commande  GUI  avec  la   commande  nm­connection­editor. 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  system­config­network.  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  3­2  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  ifcfg­eth0  à  partir  du  répertoire /etc/sysconfig/network­ scripts.  Basée  sur  la  commande  diff,  la  Figure  3­11  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  system­config­network. Les  directives  illustrées  à  la  Figure  3­11  sont  décrites  dans  le  Tableau  3­6.

Machine Translated by Google

48  Chapitre  3 :  Compétences  fondamentales  en  ligne  de  commande

FIGURE  3­11

Les  différences entre  statique et  réseau   dynamique configuration

TABLEAU  3­6

Directif

Directives  de  configuration  réseau  dans  le  répertoire /etc/sysconfig/network­scripts

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  3­6

Directives  de  configuration  réseau  dans  le  répertoire /etc/sysconfig/network­scripts  (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  3­3 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  ifcfg­eth0  dans  le  répertoire /etc/sysconfig/network­scripts.  Pour  les  autres  cartes,   telles  que  eth1,  remplacez­les  en  conséquence.  (Astuce :  utilisez  la  commande  cp  et  non  la   commande  mv.) 2.  Exécutez  la  commande  system­config­network. 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,  mettez­le  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.  Assurez­vous  que  Save  est  élevé allumé  et  appuyez  sur  ENTER. 8.  Vous  êtes  ramené  à  l'écran  Sélectionner  une  action.  Assurez­vous  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  ifcfg­eth0  dans  le  répertoire /etc/sy   sconfig/network­scripts  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  nm­connection,  soit  cliquer  sur  Système  |  Préférences  |  Les  connexions  de   réseau.  Il  ouvre  l'outil  Connexions  réseau  illustré  à  la  Figure  3­12. 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  3­12

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  3­13.  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  3­13

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  3­13.  Pour  cette  configuration,  les  paramètres  sont  enregistrés  dans  le  fichier  ifcfg­ System_eth0  dans  le  répertoire /etc/sysconfig/network­scripts.

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  celle­ci : 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  3­14.   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  3­14  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  3­14

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/network­scripts.  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/network­scripts.  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/ network­scripts.  Les  périphériques  réseau  peuvent  également  être  configurés  avec  la  commande  system­ config­network  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  quelques­uns  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,  essayez­le  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

AUTO­TEST 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  sous­répertoire  Chapter3/.  Si  vous  n'avez   pas  encore  configuré  RHEL  6  sur  un  système,  reportez­vous  au  chapitre  1  pour  les  instructions  d'installation. Les  réponses  pour  chaque  laboratoire  suivent  les  réponses  de  l'auto­test  pour  les  questions  à  compléter.

Machine Translated by Google

Réponses  à  l'autotest  63

RÉPONSES  À  L'AUTO­TEST Coquilles 1.  Le  shell  Linux  par  défaut  est  bash,  également  connu  sous  le  nom  de  shell  Bourne­Again. 2.  À  partir  de  l'interface  graphique,  la  combinaison  de  touches  vers  la  console  virtuelle  3  est  CTRL­ALT­F3.

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/network­scripts/ifcfg­eth0.  Si  vous  avez  l'habitude  de  configurer  des  cartes  réseau  avec  l'outil   Connexions  réseau,  ifcfg­System_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/network­scripts  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  ifcfg­System_eth0  à  la  place  du  fichier  ifcfg­eth0.   L'outil  system­config­network  peut  toujours  gérer  ce  fichier.  Assurez­vous  simplement  de  remplacer  en  conséquence.   Assurez­vous  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  pare­feu

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  pare­feu  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  pare­feu  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  Security­Enhanced  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  appliquez­lui  la  commande  yum  install.  Par  exemple,  pour  examiner  l'outil  de   configuration  de  pare­feu  basé  sur  l'interface  graphique,  vous  devrez  l'installer  avec  la  commande  suivante :

#  yum  install  system­config­firewall 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  pare­feu Tel  qu'il  est  configuré  sous  Linux,  un  pare­feu  peut  bloquer   le  trafic  sur  tous  les  ports  réseau  sauf  quelques­uns.  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  pare­feu  à  l'aide  de  system­config­firewall   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.  Ceux­ci  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 : ­rwxr­xr­x.  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  4­1.

TABLEAU  4­1

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 :

­rwsr­xr­x.  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  ssh­agent,  é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 :

­rwxr­sr­x.  1  racine  personne  112000  12  août  07:04 /usr/bin/ssh­agent 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  4­1.

FIGURE  4­1 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  sous­sections  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   sous­répertoires.  La  récursivité  signifie  que  les  modifications  sont  également  appliquées  aux  fichiers  de  chaque   sous­ré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  go­w 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 :

­rw­r­­r­­.  1  michael  examprep  855502  Oct  25  14:07  F04­01.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  F04­01.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  F04­01.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  F04­01.tif  noté  par  le  groupe  nommé  projet  (en  supposant  qu'il   existe) :

#  projet  chgrp  F04­01.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  4­2.  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  4­2

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  anaconda­ks.cfg  dans  le  répertoire /root :

#  fichier :  anaconda­ks.cfg  #  propriétaire :   root  #  groupe :  root utilisateur ::  rw

groupe ::­­­   autre ::­­­

Exécutez  la  commande  ls  ­l /root/anaconda­ks.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  moi­mê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  4­2. 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  4­2 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   4­3 :  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  o­rwx /home/examprep/TheAnswers

TABLEAU  4­3

Changer

Description

Description  de

­b  (­­remove­all)  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é,  avez­vous  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  sous­ré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  sous­ré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  4­2   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  4­2 :

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  4­3 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  ifcfg­lo  dans  le  répertoire /etc/sysconfig/network­scripts.  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   ifcfg­lo  dans  le  répertoire /etc/sysconfig/network­scripts.  (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/network­scripts/ifcfg­lo 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/network­scripts  et  backup.  Quelles  sont  les  différences?

4.  Connectez­vous  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/network­scripts/ifcfg­lo  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  passe­t­il des  stylos?

7.  Exécutez  maintenant  la  commande  cp  à  partir  de  la  sauvegarde  du  fichier  ifcfg­lo  et  écrasez  la   version  dans  le  fichier /etc/sysconfig/network­scripts.  (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/network­scripts/ifcfg­lo.  Sont tu  es  surpris  du  résultat? 9.  Il  existe  deux  manières  de  restaurer  la  configuration  ACL  d'origine  pour  le  fichier  ifcfg­lo.  Appliquez   d'abord  la  commande  setfacl  ­b  sur  le  fichier.  Cela  a­t­il  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/network­scripts,   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/network­scripts/ 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  4­3  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  deux­points.  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  4­3,  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  4­4,  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  4­3

NFS  version  4 ACL

Machine Translated by Google

Contrôle  de  base  du  pare­feu  21

TABLEAU  4­4

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  sous­répertoire

X

Exécuter  un  script  ou  changer  de  répertoire

d

Supprimer  le  fichier  ou  le  répertoire

D

Supprimer  le  sous­ré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  pare­feu Traditionnellement,  les  pare­feu  é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  pare­feu  sur  chaque  système.  RHEL  6  inclut  des  pare­feu  dans  chaque  configuration  par  défaut. Les  meilleurs  pare­feu  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  pare­feux  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  pare­feu  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  pare­feu  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  pare­feu  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  4­5.  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  pare­feu  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  pare­feu  23

TABLEAU  4­5

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.  Connectez­vous  à  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  o­rwx /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.  Pensez­vous  que   d'autres  utilisateurs  du  groupe  tg1  peuvent  accéder  à  ce  fichier ?  En  cas  de  doute,  connectez­vous  en   tant  qu'utilisateur  test2  et  voyez  par  vous­mê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éé.  Pensez­vous  que  l'utilisateur   test2  peut  désormais  accéder  à  ce  fichier ?  (Pour  voir  par  vous­même,  essayez­le  depuis  le  compte   test2.)

$  date  >\>  testb.txt  $  chmod  o­ rwx /home/testshared/testb.txt  $  ls  ­l

13.  Connectez­vous  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  quelques­uns  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

AUTO­TEST 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  devez­vous  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  sous­ré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,  reportez­vous  au  premier  laboratoire  du  chapitre  2  pour  obtenir  des   instructions  d'installation.  Les  réponses  pour  chaque  laboratoire  suivent  les  réponses  de  l'auto­test  pour  les  questions  à   compléter.

Machine Translated by Google

46  Chapitre  8 :  Administration  des  utilisateurs

RÉPONSES  À  L'AUTO­TEST 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 system­config­users.

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  au­delà  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  CTRL­ALT­F1  et  essayez   de  vous  connecter  en  tant  qu'utilisateur  root.  Appuyez  sur  CTRL­ALT­F2  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,  connectez­vous  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  system­config­firewall À  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  pare­feu.

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  sous­répertoire  info­*/.  De  plus,  le  répertoire /etc/skel  doit   également  inclure  un  sous­répertoire  info­*/.  Ce  sous­ré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  sous­ré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.  Donnez­lui  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  au­dessus)  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,  au­delà  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   tigervnc­server.  Mais  vous  n'avez  pas  besoin  de  tigervnc  pour  vous  connecter  à  tigervnc­server.  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  tigervnc­server.  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  contre­intuitive.  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  sous­répertoire .vnc/,  dont  nous  parlerons  bientôt.  Le  nombre  inclus  après  les  deux­points  (:)  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  vino­preferences  à  partir  du  compte  souhaité  pour  ouvrir  la   fenêtre  Préférences  Bureau  à  distance  illustrée  à  la  Figure  9­1.

FIGURE  9­1

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  sous­ré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  9­2. FIGURE  9­2

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  9­3.

FIGURE  9­3 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  pare­feu,  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  pare­feu Les  ports  à  ouvrir  dans  un  pare­feu  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  pare­feu  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  pare­feu.

1.  Exécutez  la  commande  system­config­firewall­tui. 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  9­4.  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  pare­feu,  sélectionnez  OK  et  appuyez  sur  ENTREE. 7.  Lorsque  l'avertissement  s'affiche  concernant  le  remplacement  de  la  configuration  de  pare­feu  existante, sélectionnez  Oui  et  appuyez  sur  ENTER.

8.  Pour  confirmer  le  nouveau  pare­feu,  exécutez  la  commande  iptables  ­L.  Ce  qui  suit La  ligne  de  la  sortie  confirme  que  les  ports  associés  à  vnc­server  dans  le  fichier /etc/services,  5900  à  5905,  sont   ouverts  dans  le  pare­feu.

ACCEPTER  tcp  ­­  n'importe  où  n'importe  où  état  NOUVEAU  tcp  dpts:vnc­server: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  9­4 Ports  de  pare­feu  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  2011­01­26  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  vnc­1  5902/tcp  ouvert   vnc­2

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  pare­feu   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.  Connectez­vous  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  sous­ré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  sous­ré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  lui­mê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  celle­ci : $  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  9­5.  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   9­5  sont  décrites  dans  le  Tableau  9­1.

Machine Translated by Google

Commandes  élémentaires  d'administration  système  15

FIGURE  9­5

Sortie  de  la   commande  ps  aux

TABLEAU  9­1

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  9­6. 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:s0­s0:c0.c1023  2059 ?  Ss /etc/vsftpd/vsftpd.conf

FIGURE  9­6

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.

­rwxr­xr­x.  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  9­7.  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   9­6,  comme  détaillé  dans  le  Tableau  9­1.  Les  colonnes  supplémentaires  sont  décrites  dans  le  Tableau  9­2.

FIGURE  9­7 Sortie  de  la   commande  supérieure

Machine Translated by Google

18  Chapitre  9 :  Tâches  d'administration  système  au  niveau  RHCSA

TABLEAU  9­2

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  9­8  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  9­8

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  9­9  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  9­9

Statistiques  du  processeur  et   du  périphérique  de  stockage

Les  priorités  de  processus  sous  Linux  spécifient  des  nombres  qui  semblent  contre­intuitifs.  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  celle­ci :

$  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  9­10,  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  9­10 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  ci­dessus  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  elle­mê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  Lempel­Ziv,  présent  dans   certains  algorithmes  de  compression  Microsoft.  La  commande  bzip2  utilise  l'algorithme  de  tri  des  blocs  de   Burrows­Wheeler.  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  en­tê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ère­plan.  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  lui­mê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.UTF­8  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  e­mail.  Ajoutez  simplement  une  ligne  telle  que   [email protected]  pour  acheminer  tous  les  messages  cron  associés  à  ce  fichier  vers  cette   adresse  e­mail. Le  format  d'une  ligne  dans /etc/crontab  est  maintenant  détaillé  dans  les  commentaires,  comme  indiqué  dans Image  9­11.  Chacune  de  ces  colonnes  est  expliquée  plus  en  détail  dans  le  Tableau  9­3. 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  9­11

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  9­3

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%Puis­je  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  run­parts /etc/cron.hourly Compte  tenu  des  informations  fournies  dans  la  section  précédente,  vous  devriez  pouvoir  lire  cette  ligne.   La  commande  run­parts  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=3­22

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  job­identifier

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  9­1 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.  Connectez­vous  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 Assurez­vous  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 !"  Assurez­vous  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  run­parts /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  9­4.

Vous  pouvez  utiliser  l'un  des  exemples  de  commandes  présentés  dans  le  Tableau  9­4  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  à>  Ctrl­D

La  commande  CTRL­D  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 2012­12­21  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  9­4

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  9­5

/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  9­5. 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  9­6. 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  9­6

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   9­12,  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  9­12 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  9­13,  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  9­13 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  9­7.  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  9­7 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  sous­systè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  9­7

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  9­2 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.  Connectez­vous  en  tant  qu'utilisateur  root.  Utilisez  le  mauvais  mot  de  passe  une  fois.

Machine Translated by Google

Analyse  du  fichier  journal  local  39

2.  Connectez­vous  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  9­7  pour  vous  guider.  Recherchez   les  messages  associés  au  matériel.  Dans  quels  fichiers  journaux  se  trouvent­ils ?  Cela  a­t­il  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.  Êtes­vous   en  train  de  lire  le  contenu  du  fichier /var/log/lastlog ?  Pouvez­vous  le  confirmer  à  partir  de  la  page  de  manuel   associée ?

SCÉNARIO  &  SOLUTION Impossible  de  se  connecter  à  un  serveur  VNC  local

Assurez­vous  que  le  serveur  VNC  est  en  cours  d'exécution  avec  la   commande /etc/init.d/vncserver  restart  ou  vino­preferences.

Impossible  de  se  connecter  à  un  serveur  VNC  distant

Assurez­vous  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,  assurez­vous   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.  Concentrez­vous  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  quelques­uns  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  pare­feu  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

AUTO­TEST 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  utiliseriez­vous  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   ajouteriez­vous  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  run­parts /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  sous­répertoire  Chapter9/.  Il  est  disponible  aux  formats .doc, .html   et .txt,  dans  le  nom  de  fichier  commençant  par  56509­labs.  Si  vous  n'avez  pas  encore  configuré  RHEL  6  sur  un  système,   reportez­vous  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'auto­test  pour  les  questions  à  compléter.

Machine Translated by Google

Réponses  à  l'autotest  45

RÉPONSES  À  L'AUTO­TEST 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  elle­mê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  contre­intuitifs. 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.  Activez­le   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.  Connectez­vous  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  devriez­vous   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  sous­ré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,  run­parts /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 :

EXT4­FS  (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

EXT4­FS  (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

Pare­feu  et  adresse  réseau

10.06

Sécurisez  vos  fichiers  et  bien  plus  encore  avec  GPG

Traduction 10.03

Le  super­serveur  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é  open­source  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  États­Unis,  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  pare­feux  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é. Ceux­ci  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  pare­feu,  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  pare­feu,  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  pare­feux  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  pare­feux   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  super­serveur  

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é. Au­delà  du  pare­feu  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ésinstallez­le.  ■  Si   vous  avez  besoin  du  logiciel  mais  que  vous  ne  l'utilisez  pas,  assurez­vous  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  pare­feux  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   gpk­update­viewer.  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  gpk­prefs. 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  bind­chroot,  qui  configure  les  fichiers,  périphériques  et  bibliothèques  nécessaires   dans  un  sous­répertoire  isolé.  Ce  sous­ré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  sous­ré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  e­mail  via  le  protocole  SMTP  (Simple   Mail  Transport  Protocol) :  Postfix  et  sendmail.  Les  deux  sont  publiés  sous  des  licences  open­source.   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,  reportez­vous  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  États­Unis 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  "super­secrète"  a  publié  le  code  SELinux   sous  des  licences  open­source  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  pare­feux  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  10­1. Alternativement,  vous  pouvez  voir  une  fenêtre  légèrement  différente  similaire  à  celle  montrée  dans Illustration  10­2.  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  10­1 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   config­firewall. 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/polkit­1/actions.  Les  fichiers  de  configuration  de  stratégie   sont  stockés  dans  ce  répertoire ;  le  fichier  correspondant  pour  l'outil  system­config­firewall  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  10­2 Accès  à Administratif Les  outils   peuvent  être   limités  par  le  PolicyKit.

Machine Translated by Google

Pare­feu  et  traduction  d'adresses  réseau  11

OBJECTIF  DE  CERTIFICATION  10.02

Pare­feu  et  traduction  d'adresses  réseau En  règle  générale,  les  pare­feu  résident  entre  les  réseaux  locaux  internes  et  les  réseaux  extérieurs  non   sécurisés  tels  qu'Internet.  Un  pare­feu  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  pare­feu  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  pare­feu  basés  sur  la  commande  iptables  fonctionnent  en  lisant  les  en­têtes  de  chaque  paquet  de   données  réseau.  Sur  la  base  des  informations  contenues  dans  les  en­tê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'en­tête  de  chaque  paquet. Les  paquets  sont  réassemblés  lorsqu'ils  atteignent  l'ordinateur  de  destination.  Un  pare­feu  examine  les   champs  de  chaque  en­tête.  Selon  les  règles  existantes,  le  pare­feu  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  pare­feu, 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  pare­feu.  Cette  adresse  source  interne  est  mise  en  cache  sur  la  passerelle,  elle  sait  donc  quel  ordinateur  a  fait  la   demande. Lorsque  le  pare­feu  reçoit  des  données  telles  qu'une  page  Web,  le  processus  est  inversé.  Lorsque  les  paquets   traversent  le  pare­feu,  l'ordinateur  d'origine  est  identifié  dans  le  cache.  L'en­tê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  pare­feu  est  basée  sur  des  « chaînes ».  Une  chaîne   de  règles  de  pare­feu  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

Pare­feu  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   pare­feu  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  pare­feu  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  pare­feu.   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  sous­ré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  sous­ré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  SYN­ACK,  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

Pare­feu  et  traduction  d'adresses  réseau  15

Le  pare­feu  par  défaut Maintenant  que  vous  avez  vu  l'effet  de  diverses  règles  de  pare­feu,  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  pare­feu  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  pare­feu  correspondant  est /etc/sysconfig/ip6tables.)   La  signification  de  chacune  de  ces  lignes  est  décrite  au  Chapitre  4.

Recommandations  de  la  NSA Les  pare­feux  simples  sont  souvent  les  plus  sûrs.  Lors  d'un  examen,  il  est  préférable  de  tout  garder,   y  compris  les  pare­feu,  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  au­delà  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  pare­feu,  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  pare­feu  sur  plusieurs  systèmes  avec  des   scripts,  assurez­vous  de  sauvegarder  ce  fichier /etc/sysconfig/iptables. Néanmoins,  l'option  Règles  personnalisées  de  l'outil  de  configuration  du  pare­feu  est  un  excellent   choix  si  vous  modifiez  simplement  le  pare­feu  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  Royaume­Uni  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  pare­feu  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

Pare­feu  et  traduction  d'adresses  réseau  17

­A  INPUT  ­p  icmp  ­­icmp­type  echo­reply  ­j  ACCEPTER ­A  INPUT  ­p  icmp  ­­icmp­type  destination­unreachable  ­j  ACCEPTER ­A  INPUT  ­p  icmp  ­­icmp­type  time­exceeded  ­j  ACCEPT La  règle  suivante  limite  la  vitesse  à  laquelle  une  commande  ping  peut  être  appliquée  à  un système:

­A  INPUT  ­p  icmp  ­­icmp­type  echo­request  ­m  limit  ­­limit  1/s  ­j  ACCEPTER Alors  que  l'outil  de  configuration  du  pare­feu  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  pare­feu  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é

Assurez­vous  que  le  pare­feu  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  pare­feu  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  sous­ré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

Pare­feu  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  pare­feu 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  pare­feu.  Le  pare­feu  remplace  l'adresse  IP  source  de  chaque  paquet  par  l'adresse  IP  publique   du  pare­feu.  Il  attribue  ensuite  un  nouveau  numéro  de  port  au  paquet.  Le  pare­feu  met  en  cache   l'adresse  IP  source  et  le  numéro  de  port  d'origine. Lorsqu'un  paquet  arrive  d'Internet  vers  le  pare­feu,  il  doit  inclure  un  numéro  de  port.  Si  le  pare­feu   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  pare­feu  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  pare­feu  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  ci­aprè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.  Jusque­là,  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  pare­feu  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

Pare­feu  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  pare­feu  Red  Hat La  fonctionnalité  de  base  de  l'outil  de  configuration  du  pare­feu  Red  Hat  a  été  abordée  au  chapitre   4,  en  ce  qui  concerne  les  objectifs  RHCSA.  L'outil  de  configuration  du  pare­feu  peut  faire  plus.   Démarrez­le  avec  la  commande  system­config­firewall  ou  en  cliquant  sur  System  |  Administratif  |   Pare­feu.  Il  s'agit  d'un  outil  avec  un  certain  nombre  de  fonctionnalités,  comme  le  montre  la  Figure   10­3.  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  pare­feu.

FIGURE  10­3 Le  pare­feu 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  system­config­firewall­tui.  Sélectionnez  Personnaliser  pour  accéder  aux  mêmes  options   illustrées  à  la  Figure  10­3.  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  pare­feu,  cliquez  sur  Interfaces  approuvées  pour  afficher  la  fenêtre  illustrée  à  la   Figure  10­4.  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  10­4  s'appliqueraient  à  toutes  les  interfaces  de  chaque  type,  comme   indiqué  dans  le  Tableau  10­1.  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  10­5.  Entrez  ensuite  le  nom  de   périphérique  de  l'interface,  dans  ce  cas,  eth1.

TABLEAU  10­1

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

Pare­feu  et  traduction  d'adresses  réseau  23

FIGURE  10­4 Interfaces  de  confiance

FIGURE  10­5 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   10­5. ­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  pare­feu,  cliquez  sur  Masquage  pour  afficher  la  fenêtre  illustrée  à  la  Figure  10­6.  Les   routeurs  et  les  passerelles  ont  deux  périphériques  réseau  ou  plus.  Dans  la  plupart

FIGURE  10­6 Masquage  avec   le  pare­feu

Outil  de   configuration

Machine Translated by Google

Pare­feu  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  pare­feu. :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  pare­feu,  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  pare­feu,  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  10­7. 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  10­7 Redirection  de   port  avec  le  pare­feu Outil  de   configuration

Machine Translated by Google

Pare­feu  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  pare­feu. ­A  PREROUTING  ­i  eth1  ­p  tcp  ­­dport  22  ­j  DNAT  ­­to­destination  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  pare­feu,  cliquez  sur  Filtre  ICMP  pour  ouvrir  l'écran  illustré  à  la   Figure  10­8.  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  10­2. Si  un  filtre  de  cette  table  est  activé,  les  paquets  du  filtre  indiqué  sont  bloqués. Comme  le  montre  la  Figure  10­8,  si  vous  placez  le  curseur  sur  une  option,  l'outil  de   configuration  du  pare­feu  fournit  plus  d'informations.

FIGURE  10­8 Filtres  ICMP avec  le  pare­feu

Outil  de   configuration

Machine Translated by Google

28  Chapitre  10 :  Introduction  à  la  sécurité

TABLEAU  10­3

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  pare­feu.  Un  gourou  Linux  qui  souhaite  créer  un  pare­feu  personnalisé  peut  désinstaller  les   deux  outils  de  pare­feu  en  désinstallant  les  packages  system­config­firewall  et  system­config­firewall­tui.  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  pare­feu.  Cependant,  quelqu'un  qui  n'administre  que  quelques   systèmes  peut  utiliser  l'outil  de  configuration  du  pare­feu  Red  Hat  pour  configurer  un  fichier  avec  des  règles   personnalisées.  Pour  les  besoins  de  cette  section,  j'ai  créé  un  fichier, /root/iptables­custom,  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  pare­feu,  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  10­9. 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  10­9  montre  en  fait  le  résultat  après   avoir  cliqué  sur  le  bouton  Fichier  et  sélectionné  le  fichier /root/iptables­custom  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  super­serveur  Internet  étendu  29

FIGURE  10­9 Profitez  des  règles   personnalisées.

OBJECTIF  DE  CERTIFICATION  10.03

Le  super­serveur  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  telnet­server  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. Celle­ci  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. Celle­ci  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  super­serveur  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  10­3.  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  10­3

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  super­serveur  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  10­1 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ésactivez­le   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.  Connectez­vous  à  un  autre  terminal.  Que  voyez­vous  lorsque  vous  exécutez   utmpdump /var/log/wtmp ? 6.  Connectez­vous  maintenant  avec  un  nom  d'utilisateur  et  un  mot  de  passe  corrects.

7.  Que  voyez­vous  dans /var/log/messages ? 8.  Déconnectez­vous  de  la  session  Telnet.  Que  voyez­vous  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.  Devez­vous  redémarrer  ou  recharger   xinetd ? 10.  Que  se  passe­t­il  lorsque  vous  utilisez  chkconfig  pour  désactiver  Telnet ?  Est­ce  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  super­serveur  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  est­il  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  au­delà  de  tous  les  paramètres  inclus  dans  les  pare­feu  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  pare­feu  basés  sur  iptables  le  permettent.  Vous  pouvez   spécifier  des  clients  de  différentes  manières,  comme  indiqué  dans  le  Tableau  10­4. Comme  vous  pouvez  le  voir  dans  le  tableau  10­4,  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  10­4

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  sous­ré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  10­2 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  telnet­server. B.  Activez  le  service  avec  la  commande  chkconfig  telnet  on. C.  Autoriser  Telnet  via  n'importe  quel  pare­feu  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  passe­t­il  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  passe­t­il  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  telnet­server.

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  10­10.   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  sous­ré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  Linux­PAM  disponible  dans  le   répertoire /usr/share/doc/pam­versionnumber/html,  en  commençant  par  le  fichier  Linux­PAM_SAG.html.

Machine Translated by Google

40  Chapitre  10 :  Introduction  à  la  sécurité

FIGURE  10­10

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  10­11  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  10­11

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  10­5.

TABLEAU  10­5

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  system­auth,  cela  inclut  toutes  les  directives   de  mot  de  passe  du  fichier  PAM  system­auth.

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/pam­versionnumber/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  system­auth,  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  10­12.  De  plus,  comme  le  fichier  inclut  des  références  au  fichier  de  configuration /etc/pam.d/ system­auth,  vous  devrez  faire  des  allers­retours  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  10­12  Le  fichier  de  configuration  PAM /etc/pam.d/system­auth

La  ligne  suivante  inclut  les  commandes  auth  du  fichier  de  configuration  PAM  system­ auth : l'authentification  inclut

authentification  système

Le  fichier  de  configuration  system­auth  illustré  à  la  Figure  10­12  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/system­auth : compte  comprend

authentification  système

Voici  les  lignes  de  type  de  module  de  compte  de /etc/pam.d/system­auth :

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  sous­sections  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  12­1. 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  12­1

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  12­1.

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  12­3 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.  Copiez­le  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 changez­le  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  changeriez­vous  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 : #  sysctl­p

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  sous­ré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  soi­disant  "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.bridge­nf­call­ip6tables  =  0  net.bridge.bridge­nf­ call­iptables  =  0  net.bridge.bridge­nf­call­arptables  =  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  12­2 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  CTRL­C  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   connectez­vous  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  sous­ré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  sous­ré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  vsftpd­2.2.2­6.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  sous­ré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  sous­ré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  sous­répertoires  rpmbuild/SPECS  et  rpmbuild/SOURCES.  Comme  suggéré  par  les  noms,  le   code  source  se  trouve  dans  le  sous­répertoire  SOURCES.  La  figure  12­1  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  12­1 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  sous­ré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  rpm­build.  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  rpm­build  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  12­2.

TABLEAU  12­2

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 :

pam­devel  est  requis  par  vsftpd­2.2.2­6.el6.x86_64  libcap­devel  est   requis  par  vsftpd­2.2.2­6.el6.x86_64  openssl­devel  est  requis  par   vsftpd­2.2.2­6.el6.  x86_64  tcp_wrappers­devel  est  requis  par   vsftpd­2.2.2­6.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  pam­devel  libcap­devel  openssl­devel  tcp_wrappers­devel 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  sous­ré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/CorPor­1.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/CorPor­1.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  CorPor­1.0.tar.gz  CorPor­1.0 4.  J'ai  ensuite  copié  l'archive  dans  le  sous­ré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/en­US/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  sous­ré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  sous­ré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  rpmdev­setuptree  crée  le  sous­répertoire  rpmbuild/,  avec  les  sous­répertoires  appropriés.   La  commande  rpmdev­newspec  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   rpmdev­setuptree  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  rpmdev­newspec.  À  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  12­2  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  sous­ré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  12­2

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 :  McGraw­Hill

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

sous­ré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 :  CorPor­1.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  abyssinica­fonts.  fichier  de  spécifications.  L'extrait  clé  est  illustré  à  la   Figure  12­3. Les  directives  de  la  Figure  12­3  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  sous­répertoire /opt/CorPor­1.0.

FIGURE  12­3

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/CorPor­1.0  install  ­m  0644   corporate_policies.pdf  $RPM_BUILD_ROOT/opt/CorPor­1.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/CorPor­1.0   %defattr(­,root,root,­) /opt/ CorPor­1.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/CorPor­1.0­1.el6.x86_64/ opt/CorPor­1.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/rpm­tmp.tF080m  (%build) L'extension  du  fichier  rpm­tmp  varie.  Pour  plus  d'informations,  examinez  le  contenu  du  dernier   fichier  rpm­tmp.*  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  sous­ré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  sous­répertoire  rpmbuild/SRPMS ;  les  RPM  binaires   peuvent  être  trouvés  dans  un  sous­ré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/CorPor­1.0­1.el6.noarch.rpm  rpmbuild/RPMS/ x86_64/CorPor­1.0­1.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/CorPor­1.0.  Et  une   commande  rpm  ­qi  appliquée  à  ce  package  a  conduit  à  la  sortie  illustrée  à  la  figure  12­4. 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  12­4 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/network­scripts,  avec  des  noms  comme  ifcfg­eth0.

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  12­5  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  12­5 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  nm­connection­editor.  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  12­6. 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  12­6 Une  route  spéciale   pour  un  périphérique   réseau  spécifique

Lorsqu'il  est  appliqué,  il  écrit  un  fichier  route­eth0  dans  le  répertoire /etc/sysconfig/ network­scripts.  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,  assurez­vous  que  le  port  88  est  ouvert  dans  les  pare­feux  concernés.

Qu'est­ce  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  authconfig­gtk.  Cela  devrait  ouvrir  l'outil  de   configuration  d'authentification  avec  les  deux  onglets  illustrés  à  la  figure  12­7.  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  12­7 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  12­7.  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  12­8,  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  12­9.  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  12­7.

Vous  devrez  peut­être  également  configurer  les  modifications  des  fichiers  de  configuration,  décrites  ci­aprè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  12­8 Configurez  un Basé  sur  Kerberos client  avec la  console Authentification Outil  de   paramétrage.

FIGURE  12­9

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  12­10  et  expliquées  au  Tableau   12­3.  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  iscsi­initiator­utils,  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  12­10

Configuration   Kerberos  dans /etc/sssd/sssd.conf

Machine Translated by Google

Options  réseau  spéciales  33

TABLEAU  12­3

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.2011­02.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  12­11.

Machine Translated by Google

34  Chapitre  12 :  Tâches  administratives  RHCE

FIGURE  12­11

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   activez­le  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  configurez­le  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  sous­ré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  iscsi­initiator­utils,  utilisez  la  commande   iscsiadm  pour  découvrir  les  cibles  iSCSI  disponibles  et  assurez­vous   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  rpm­build  peuvent  vous  aider.  La   commande  d'arborescence  rpmdev­setup  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/network­scripts.  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  quelques­uns  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  sous­répertoire  rpmbuild/,  comme  configuré  avec  la  commande  rpmdev­setuptree.     Le  code   source  réel  se  trouve  dans  le  sous­répertoire  rpmbuild/SOURCES.     Les  RPM  sont  construits  avec  la   commande  rpmbuild,  basée  sur  un  fichier .spec  dans  le

Sous­répertoire  rpmbuild/SPECS.  Vous  pouvez  créer  un  modèle .spec  standard  avec  la   commande  rpmdev­newspec.     Les  RPM  construits  se  trouvent  dans  les  sous­ré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  iscsi­initiator­utils,  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

AUTO­TEST 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'est­ce  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  sous­ré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  est­il  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  sous­répertoire  Chapter12/.  Si  vous  n'avez   pas  encore  configuré  RHEL  6  sur  un  système,  reportez­vous  au  chapitre  1  pour  les  instructions  d'installation. Les  réponses  pour  les  laboratoires  suivent  les  réponses  de  l'auto­test  pour  les  questions  à  compléter.

Machine Translated by Google

Réponses  à  l'autotest  41

RÉPONSES  À  L'AUTO­TEST 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 rpmdev­newspec. 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  sous­ré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  rpm­build,  rpmdevtools  et  gcc,  ainsi  que  les  dépendances  affichées exécutant  la  commande  rpmbuild  ­ba. 3.  Utilisez  la  commande  rpmdev­setuptree  pour  configurer  une  arborescence  de  répertoires  afin  de  créer  le  nouveau  RPM. 4.  Utilisez  la  commande  rpmdev­newspec  pour  configurer  un  fichier  newpackage.spec  afin  de  traiter  la  source  RPM code. 5.  Dans  le  fichier .spec,  assurez­vous  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.  Assurez­vous  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.  Assurez­vous  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/rpm­tmp.*  fichier. 10.  Utilisez  la  commande  rpm  pour  installer  le  RPM  nouvellement  configuré  à  partir  d'un  sous­ré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/network­scripts.  Si  la  carte  réseau  spécifiée  est  eth0,  ce  fichier  spécial  serait  route­eth0.  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  e­mails  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  e­mails  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  e­mails  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  pare­feu  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  13­1.   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  13­1

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  anti­spam  et  plus  encore,   il  est  important  de  s'assurer  que  le  système  qui  a  l'intention  d'envoyer  un  e­mail  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  e­mails.  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  e­mails. 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  e­mail  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  "E­mail   server".  Les  packages  de  clés  sont  répertoriés  dans  le  Tableau  13­2.  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  13­2

Serveur  de  courrier

Forfait  RPM cyrus­imapd*

Description Installe  le  système  de  messagerie  d'entreprise  Cyrus  IMAP   (plusieurs  packages);  peut  nécessiter  perl­Cyrus.

Paquets cyrus­sasl

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.

pigeonnier­mysql,  pigeonnier­pgsql,   pigeonnier­pigeonnier

Inclut  les  back­ends  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.

sendmail­cf

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  anti­spam  du  même  nom.

Si  vous  choisissez  de  travailler   avec  sendmail,  vous  devez  également  installer  le

package  sendmail­cf  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  elle­mê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  cyrus­sasl,  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  e­mails

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 ■  E­mails  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  pare­feu,  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  pare­feux  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  pare­feu,  vous  devez  utiliser  l'option   Règles  personnalisées.  Comme  le  montre  la  Figure  13­1,  vous  pouvez  voir  les  fichiers  personnalisés  ajoutés  à  la   configuration  du  pare­feu,  à  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  pare­feu  illustrée  à  la  figure  13­2  fait  référence  à  un  filtre,  cohérent  avec  les  règles  de  pare­ feu  standard  basées  sur  iptables.

FIGURE  13­1 Règles  personnalisées

Machine Translated by Google

Une  variété  d'agents  de  messagerie  électronique  9

FIGURE  13­2 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  pare­feu  é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  e­mail  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  13­1 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. Assurez­vous  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  e­mails  que  du  système  local.  Les  changements  de   configuration  nécessaires  pour  configurer  Postfix  pour  accepter  les  e­mails  entrants  et  pour  transférer  les  e­mails  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  e­mails  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'e­mails.  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  

pare­feux  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  e­mails  entrants  provenant  d'autres  systèmes,  le  fichier  générique  s'applique   aux  e­mails  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  e­mails  envoyés  à  un  utilisateur  local à  une  adresse  e­mail  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  e­mails   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  e­mail  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  e­mails   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  e­mails  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  e­mail  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  ouvrez­le  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  e­mails  qui  n'ont  pas  encore  été  envoyés  ou  les   e­mails  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  e­mails 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  13­3. 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  13­3 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  e­mails  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  au­delà  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  à  ceux­ci : 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 250­maui.exemple.com 250­TUYAUTAGE 250­TAILLE  10240000 250­VRFY 250­ETRN 250 CODES  D'ÉTAT  AMÉLIORÉS

250­8BITMIME 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 : 250­AUTH  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  sous­répertoire  postfix­2.6.6/. Les  directives  que  vous  devez  ajouter  au  fichier  main.cf  pour  configurer  l'authentification  sont   affichées  dans  le  fichier  README­Postfix­SASL­RedHat.txt  de  ce  répertoire.  L'extrait  clé  est  illustré  à  la   Figure  13­4. 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  13­4 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  e­mails  entrants Les  directives  requises  pour  configurer  Postfix  afin  qu'il  accepte  les  e­mails  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  e­mails  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é  ci­dessus.  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  13­3 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  sendmail­cf  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  e­mails  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  e­mails  entrants  d'un  réseau  et  de  transférer  les  e­mails   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  e­mails  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  e­mail,  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  e­mail,  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  sm­client :  [ 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'e­mail.  C'est  une  façon  de  configurer  la  sécurité  basée   sur  l'hôte  et  même  sur  l'utilisateur. ■  aliasesdb­stamp  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  mcgraw­hill.com,  les  utilisateurs   peuvent  toujours  envoyer  des  e­mails  à  des  adresses  telles  que  [email protected].  La   ligne  suivante  transmettra  cet  e­mail  à  michael@mcgraw­hill.com.

mheducation.com  mcgraw­hill.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  e­mails  reçus   localement :

INCLUDERC=/etc/mail/spamassassin/spamassassin­default.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.  ■   trusted­users  Répertorie  les  utilisateurs  spéciaux  qui  peuvent  envoyer  des  e­mails  sans   avertissement.  ■  virtusertable  Prend  en  charge  le  transfert  d'e­mails ;  si  certains  utilisateurs  de   réseaux  locaux  extérieurs  utilisent  le  serveur  sendmail  local,  ce  fichier  prend  en  charge  le  transfert   d'e­mails  à  partir  de  ces  domaines.

Certains  de  ces  fichiers  nécessitent  l'autre  package  sendmail,  sendmail­cf.  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  sendmail­cf  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  sendmail­cf : inclure(`/usr/share/sendmail­cf/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  en­tê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  ci­après,  prennent  en  charge  l'utilisation  de  Procmail   pour  le  filtrage,  activent /etc/aliases  pour  les  adresses  e­mail  de  substitution  et  nécessitent  une   authentification  pour  recevoir  des  e­mails : 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  DIGEST­MD5  CRAM­MD5  LOGIN  PLAIN')dnl  dnl   define(`confAUTH_MECHANISMS',  `EXTERNAL  GSSAPI  DIGEST­MD5  CRAM­MD5  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/ ca­bundle.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  e­mail  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'e­mail :

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  e­mails  via  ce  serveur  SMTP,  l'option  suivante  requiert  l'adresse   e­mail  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=MTA­v6,  Family=inet6')dnl Alternativement,  la  directive  suivante  écoute  à  la  fois  le  trafic  IPv4  et  IPv6 :

dnl  DAEMON_OPTIONS(`Nom=MTA­v4,  Famille=inet,  Nom=MTA­v6,  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  e­mails  des   utilisateurs  locaux :

LOCAL_DOMAIN(`localhost.localdomain')dnl Si  vous  souhaitez  substituer  un  autre  domaine  aux  adresses  e­mail,  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  e­mails  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  e­mail  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  e­mails  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  e­mails  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  au­delà   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=MTA­v4,  Famille=inet,  Nom=MTA­v6,  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  non­cf  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,  reportez­vous  aux  directives  supplémentaires  dans  le  répertoire /usr/ share/doc/postfix­2.6.6,  dans  le  fichier  README­Postfix­SASL­RedHat.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  quelques­uns  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  e­mail.

  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'e­mails  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/postfix­2.6.6  contient  des  informations  sur  les  options   d'authentification  des  utilisateurs  dans  le  fichier  README­Postfix­SASL­RedHat.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

AUTO­TEST 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  modifieriez­vous  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  e­mails,  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  peut­on  trouver  la  documentation  associée  au  serveur  Postfix ? _______________________________________________________________

L'autre  service  SMTP :  sendmail 9.  Dans  quel  fichier  stockeriez­vous  les  adresses  e­mail  de  transfert ? _______________________________________________________________ 10.  Pourquoi  voudriez­vous  commenter  la  directive  suivante  dans  sendmail.mc ?

DAEMON_OPTIONS(`Port=smtp,Adr=127.0.0.1,  Nom=MTA')dnl _______________________________________________________________ 11.  De  quoi  avez­vous  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  sous­répertoire  Chapter13/.  Si  vous  n'avez   pas  encore  configuré  RHEL  6  sur  un  système,  reportez­vous  au  chapitre  1  pour  les  instructions  d'installation. Les  réponses  pour  chaque  laboratoire  suivent  les  réponses  de  l'auto­test  pour  les  questions  à  compléter.

Machine Translated by Google

Réponses  à  l'autotest  37

RÉPONSES  À  L'AUTO­TEST 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  e­mail  de  transfert  pour  sendmail  et  Postfix  sont  normalement  stockées  dans /etc/aliases. Assurez­vous  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/postfix­2.6.6 annuaire.

L'autre  service  SMTP :  sendmail 9.  Les  adresses  e­mail  de  transfert  pour  sendmail  et  Postfix  sont  normalement  stockées  dans /etc/aliases. Si  vous  transférez  des  e­mails  pour  des  domaines  entiers,  le  fichier  approprié  est /etc/mail/domaintable. Assurez­vous  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  e­mail   à  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  13­5. 13.  À  partir  de  l'écran  illustré  à  la  Figure  13­5,  appuyez  sur  y  pour  envoyer  le  message  noté. De  plus,  vous  pouvez  vérifier  la  réception  des  e­mails  dans  des  fichiers  un  fichier  de  nom  d'utilisateur  dans  le  répertoire / var/spool/mail.  Normalement,  ces  e­mails  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  13­5

L'e­mail  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 Assurez­vous  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,  connectez­vous  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 : 250­AUTH  CONNEXION  PLAIN 250­AUTH=CONNEXION  PLAIN

Pour  vérifier  la  réception  du  courrier  électronique  dans  un  compte  d'utilisateur,  connectez­vous  à  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  e­mails  adressés  à  l'utilisateur  root   sont  redirigés  vers  un  compte  d'utilisateur  normal,  vous  devez  ajouter  une  ligne  comme  celle­ci  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  e­mail  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  e­mails  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  pare­feu  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  celle­ci :

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  e­mails  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,  modifiez­la  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  sendmail­cf  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=MTA­v4,  Famille=inet,  Nom=MTA­v6,  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  pare­feu  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  plates­formes  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  à  mi­chemin  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,  assurez­vous  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  celle­ci  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  14­1  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  14­1 Installé  par  défaut Maison  apache page

EXERCICE  14­1

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  ALT­F2  et  connectez­vous  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.  Voyez­vous  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  httpd­manual  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  httpd­man   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  14­2. 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,  rappelez­vous  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  14­2 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  httpd­manual,  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  httpd­manual  installés  conformément  à  l'exercice  14­1,  reportez­vous  à   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  14­1  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  14­2  spécifie  les  directives  associées  à  la  Section  2 :  Configuration  du   serveur  principal.

Machine Translated by Google

Le  serveur  Web  Apache  9

TABLEAU  14­1

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  sous­ré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  14­2

Directives  de  configuration  du  serveur  principal

Directiv Administrateur  du  serveur

Description Définit  l'adresse  e­mail  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  e­mail  ServerAdmin  aux  pages  d'erreur  et  aux   listes  de  fichiers ;  peut  être  activé,  désactivé  ou  e­mail.

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  (Web­based  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  14­2

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  14­3  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  14­3

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  e­mail  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/en­US.  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  14­1  confirme  que  les  principaux  fichiers  de  configuration  d'Apache  sont  stockés  dans  les   sous­ré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  14­3.  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,  reportez­vous  à  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  14­3 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  pare­feu  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  pare­feu 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  pare­feu.  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  14­4. 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  sous­ré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  14­4

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/cgi­bin  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  sous­répertoire  cgi­bin/,  vous  souhaiterez   également  configurer  les  contextes  appropriés  pour  ce  sous­répertoire  avec  la  commande  suivante :

#  semanage  fcontext  ­a  ­s  system_u  ­t  httpd_sys_script_exec_t  \ /www/cgi­bin/

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  14­4.  Seuls  quelques  paramètres  booléens  SELinux  sont   activés  par  défaut,  et  ils  sont  décrits  dans  le  Tableau  14­5.

FIGURE  14­4

Paramètres  booléens  SELinux  liés  à  Apache

Machine Translated by Google

Configuration  de  sécurité  Apache  standard  17

TABLEAU  14­5

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  14­4  sont  résumées  dans  le  Tableau  14­6.  Toutes  les  descriptions  sont  basées  sur  la   perspective  "que  se  passerait­il  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  14­6

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_can­network_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érons­le,  testé)  les  options  de  sécurité  Apache  liées  aux  pare­feu  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.0­fips  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  passe­t­il  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  sous­ré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   14­5.  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  14­6  s'affiche.  Pour  plus  d'informations  sur  la  manière  dont  cela  a   fonctionné,  reportez­vous  à  l'exercice  14­2.

FIGURE  14­5

Accédez  à  un index  des  fichiers

Machine Translated by Google

Configuration  de  sécurité  Apache  standard  21

FIGURE  14­6 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  ci­dessous  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  14­2.  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  14­2 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  14­6.  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  vois­tu? 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  vois­tu? 12.  Quittez  le  navigateur.  Restaurez  le  fichier  welcome.conf  dans /etc/httpd/conf.d annuaire.

EXERCICE  14­3 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  pare­feu   approprié,  créer  un  sous­répertoire  de  DocumentRoot,  le  remplir  avec  plusieurs  fichiers,  configurer  les   contextes  de  sécurité  appropriés  et  activer  Apache. 1.  Assurez­vous  que  le  pare­feu  ne  bloque  pas  l'accès  au  port  80.  Une  façon  de  le  faire  est   d'utiliser  l'outil  de  configuration  du  pare­feu  Red  Hat,  que  vous  pouvez  démarrer  avec  la   commande  system­config­firewall.  Dans  la  section  Services  de  confiance,  assurez­vous   d'autoriser  les  connexions  WWW  (HTTP)  entrantes.  Vous  pouvez  également  utiliser  les   instructions  spécifiées  précédemment  pour  un  pare­feu  personnalisé. 2.  Créez  un  sous­ré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.  Assurez­vous  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,  configurez­les  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  sous­ré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  sous­ré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 14­3,  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  14­7.

Machine Translated by Google

26  Chapitre  14 :  Le  serveur  Web  Apache

FIGURE  14­7

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  sous­ré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  sous­répertoire  public.html.  La  figure  14­8  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  sous­répertoire  public_html  des  répertoires  personnels  de  tous   les  utilisateurs.

#

FIGURE  14­8 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,  au­delà  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  sous­répertoire  public_html. 5.  Modifiez  les  autorisations  pour  le  répertoire  d'accueil  du  groupe,  avec  les  sous­ré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.  Connectez­vous  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   sous­ré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  14­4 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  sous­ré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  sous­ré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  pare­feu  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.

■  Assurez­vous  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,  assurez­vous  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@dummy­host.example.com  DocumentRoot / # www/docs/dummy­host.example.com  ServerName  dummy­ # host.example.com  ErrorLog  logs/dummy­host.example.com­error_log   # CustomLog  logs/dummy­host.  exemple.com­access_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  e­mail  définie  par  ServerAdmin.  ■   Les  pages  Web  peuvent  être  stockées  dans  le  répertoire  DocumentRoot.  Assurez­vous   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   sous­ré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  e­mail  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.com­error_log  CustomLog  logs/ vhost1.example.com­access_log  common    

ServerAdmin  [email protected]  DocumentRoot / www/docs/vhost2.example.com  ServerName  vhost2.example.com   ErrorLog  logs/vhost2.example.com­error_log  CustomLog  logs/ vhost2.example.com­access_log  common  

Assurez­vous  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,  sauvegardez­le.  La  première   directive  active  charge  le  module  SSL :

LoadModule  ssl_module  modules/mod_ssl.so

Assurez­vous  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  14­9. Dans  la  version  par  défaut  du  fichier  ssl.conf,  examinez  le   récipient.  Comparez­le  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  14­9 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  serait­ce  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  User­Agent  ".*MSIE.*"  \ nokeepalive  ssl­unclean­shutdown  \   downgrade­1.0  force­response­1.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  14­10.

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  14­10 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  14­10. Mais  vous  devrez  peut­être  savoir  comment  configurer  un  "certificat  auto­signé".  À  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  14­11. #  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  14­11

Demande   un  certificat   auto­signé

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  14­12,  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  14­13. 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  14­14.  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  14­15.

FIGURE  14­12 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  14­13 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  14­14 Certificat  SSL détails

Machine Translated by Google

44  Chapitre  14 :  Le  serveur  Web  Apache

FIGURE  14­15 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   14­16  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  14­16

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 :

#  httpd­S 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,  reportez­vous  à  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.  Assurez­vous  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  14­5 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  httpd­manual.  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  sous­répertoire  cgi­ bin  au  répertoire  par  défaut /var/www/cgi­bin : ScriptAlias /cgi­bin/  "/var/www/cgi­bin"

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/cgi­bin/. Vous  pouvez  également  configurer  des  scripts  CGI  dans  un  répertoire  autre  que /var/www/cgi­bin   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  cgi­script .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/cgi­bin,  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 /cgi­bin/ /www/docs/vhost1.example.com/cgi­bin/ 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.  Assurez­vous  que  le  package  httpd­manual  est   installé  et  que  le  service  httpd  local  est  actif.  Dans  un  navigateur,  accédez  à  http://localhost/manual.   Dans  la  section  How­To /  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/cgi­bin,  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   cgi­script .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  cgi­script .pl  ScriptAlias /cgi­ bin/ /www/docs/vhost1.example.com/cgi­bin/ 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/cgi­bin. 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/cgi­bin/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

Assurez­vous  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,  assurez­vous   que  l'option  ExecCGI  est  active ;  la  directive  AddHandler  spécifie   cgi­script .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/cgi­bin.

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  httpd­manual  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  pare­feu  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  quelques­uns  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  sous­ré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  cgi­script.   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

AUTO­TEST 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  devez­vous  ouvrir  dans  un  pare­feu  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  pouvez­vous  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  sous­répertoire  Chapter14/.  Si  vous  n'avez   pas  encore  configuré  RHEL  6  sur  un  système,  reportez­vous  au  chapitre  1  pour  les  instructions  d'installation. Les  réponses  pour  chaque  laboratoire  suivent  les  réponses  de  l'auto­test  pour  les  questions  à  compléter.

Machine Translated by Google

Réponses  à  l'autotest  57

RÉPONSES  À  L'AUTO­TEST 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  pare­feu  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,  assurez­vous  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/en­US  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  e­mail  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éfinissez­les  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.com­error_log 8.  Assurez­vous  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.  Assurez­vous  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é  (system­config­securitylevel)  pour  autoriser  HTTP données  via  le  pare­feu,  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.  Assurez­vous  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  sous­répertoire  public_html/   du  répertoire  personnel  du  nouvel  utilisateur.  ■  Configurez  un  fichier  index.html  dans  ce  sous­ré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 /cgi­bin/,  dans  le  conteneur  d'hôte  virtuel   big.example.com.  Ce  conteneur  doit  également  inclure  les  directives  Options  ExecCGI  et  AddHandler  cgi­script .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înez­vous  à  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  15­1.

Quelques  arrière­plans  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  15­1

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.

samba­commun

Contient  les  commandes  Samba  courantes  utilisées  à  la  fois  par  le  client  et  le   serveur.

samba­doc

Inclut  la  documentation  Samba  aux  formats  HTML  et  PDF.

samba­domainjoin­gui  Prend  en  charge  les  connexions  aux  groupes  de  travail  et  domaines  du  réseau. samba­swat

Fournit  l'interface  Web  pour  la  configuration  de  Samba.

samba­winbind

Prend  en  charge  Samba  en  tant  que  serveur  membre  sur  les  domaines  Microsoft  et   prend  en  charge  les  utilisateurs  Windows  sur  les  serveurs  Linux.

samba­winbind­nss

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,  pare­feu  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  pare­feu  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  15­2. 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  15­3.  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  15­2

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  15­3

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  celle­ci :

#  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é,  sauvegardez­le.  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  ci­dessous  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  point­virgule  (;),  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,

au­delà  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

#­­authconfig­­start­line­­ cela  signifie  que  le  fichier  de  configuration  a  été  modifié  par  l'outil  authconfig  ou  system­config­authentication.

Options  liées  au  réseau Faites  défiler  jusqu'à  la  sous­section  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  peer­to­peer  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  peer­to­peer  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  peer­to­peer  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,  assurez­vous  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