Vous êtes sur la page 1sur 141

Versionoriginaleetplusjour:http://troumad.org/Linux/Linux.odtouhttp://troumad.info/Linux/Linux.

odt

Table des matires


I)INTRODUCTION ............................................... 5 A)Moncours .................................................. .. 5 B)Unix ............................................................. 5 C)GNU:GNU'sNotUnix ................................ 5 D)Linux ........................................................... 5 E)Lesinterfacesgraphiques ............................ 5 F)Lesdistributions .......................................... 6 G)Leslistesdediscussionsaidesenligne 7 .... II)Disquesetpartitionsetsystmedefichiers 8 ..... A)Structurededisquesdur ............................. 8 B)Disquesetpartitions ................................... 8 C)Systmedefichiers ...................................... 8 D)L'arborescenceLinux ................................... 8 E)Remarques ................................................... 9 III)Fichiers,RpertoiresetLiens ....................... 10 A)Rpertoires/Fichiers .................................. 10 B)Lesliens ................................................. .... 10
1)prsentation........................................................10 2)Lesdroits.................................................. ...........10

E)Configuration ............................................ 20 V)Manipulation ................................................ 21 A)Crationdecomptesetdegroupes ........... 21


1)Prsentation........................................................21 2)lignedecommande.............................................21 3)interfacegraphique.............................................22 1)Propritaire,groupepropritaireetautres..........22 2)Lesdroitssurlesfichiers.....................................23 3)Aveclesrpertoires.............................................23 1)ps,top,killetkillall.............................................23 2)excutiond'unecommande.................................24 1)C'estquoiundmon?..........................................26 2)Enlignedecommande........................................26 3)Avecuneinterfacegraphique..............................26 1)Aveclesrpmoudeb............................................26 2)Sanslesrpm........................................................28

B)Systmededroitssurlesfichiers .............. 22

C)Grerlesprocessus ................................... 23 D)Arrtetlancementdesdmons ................ 25

E)Ajouter/Enleverunprogramme ................ 26 F)Configurationdesserveurs ........................ 28 G)Mettreleserveurl'heure ........................ 29 H)Plantages? ................................................. 29


1)Ensortir.............................................................. .29 2)Pourquoi?...........................................................29

C)Premiersoutilspourmanipulerlesfichiers .................................................... .................... 10


1)Lignedecommande............................................10 2)Lesscripts.................................................. ..........13 3)Interfacegraphique.............................................17

I)Exercices ................................................. .... 29 VI)Lerseau ..................................................... 30 A)Lesadressesrseau. .................................. 30 B)Attribueruneadresselacarteethernet. . 30 C)Lesfichiers ............................................... 30
1)SousMandriva.................................................... .30 2)Sousdebian............................................. ............31

D)Rsumdescommandesdushell(BASH) 17 IV)InstallationdeMandrivaLINUX .................. 19 A)Prsentation .............................................. 19 B)Prparationdel'installation ...................... 19 C)Cahierdeschargesdel'installation ........... 19 D)Installation ................................................ 19
22287750.odt Page1sur141

D)Unnomdhte ......................................... 31
1)SousMandriva.................................................... .31 20/09/09

2)Sousdebian.........................................................32

E)LesadressesdesPCdurseau .................. 32 F)Changerlamacadresse ............................. 33 VII)ftp ............................................................... 34 A)Laconfigurationduserveur ...................... 34 B)CertificatSSL ............................................. 35 C)gproftpd .................................................... 35 . D)Manipulation ............................................. 35 VIII)ssh ............................................................. 36 A)Prsentation .............................................. 36 B)Installation ................................................ 36 C)Utilisation .................................................. 36 D)Ouverturedesessionsgraphiques ............ 37 E ) Gnration des paires de clef prive/pu blique .............................................................. 37 F)Utilisationdescp ....................................... 38 G ) Se loguer par SSH sans taper de mot de passe ............................................................... 38
1)Leprincipe......................................................... ..38 2)Lapratique..........................................................38 3)Automatisationenmodegraphique.....................38 4)Automatisationenmodetexte.............................38

D)HTTPS ....................................................... 46 E)Exercice ..................................................... 47 XI)MySQL ......................................................... 48 A)Installation ................................................ 48


1)Lespaquetages....................................................48 2)Rpertoiredesdonnes.......................................48 3)Plusdescurit...................................................48

B)Crationd'unebasepourunutilisateur 48 .... C)phpMyAdmin ............................................. 49 D)Bonus ........................................................ 49 E)Accessibilitdel'extrieur ......................... 49 F)ODBC ......................................................... 50 G)Exercice ..................................................... 50 XII)Partagededonnes/nfs ............................ 51 A)Prsentation .............................................. 51 B)Serveurnfs ................................................ 51
1)Installation..........................................................51 2)Avecunfirewall.................................................51 3)Protectionavechosts.denyethosts.allow............52 4)derrireunrouteur..............................................52

C)Clientnfs ................................................... 52
1)Logicielsinstaller..............................................52 2)/etc/fstab............................................................53 3)rcuprerlepartage............................................53 4)Fermerlepartage................................................54

H)Quelquescommutateurs .......................... 39 I)LeTunneling(redirectiondeports) ........... 39 J)IntgrationdeKDE .................................... 40


1)kdessh.................................................................40 2)Konqueror...........................................................40

D)NFSv4 ........................................................ 54
1)PrsencedeNFSv4..............................................54 2)Configurationdekerberos...................................54

K)sftp ............................................................ 40 L)Astuces .................................................. ..... 40 M)Exercice .................................................... 40 IX)samba .......................................................... 41 A)Exempledeserveur ................................... 41 B)ClientSamba ............................................. 42 C)Exercice ..................................................... 42 D)essayer ................................................... 42 X)httpd ............................................................. 43 A)Prsentation .............................................. 43
1)Petiteprotectionenlecture..................................43 2)Rpertoirepersonnel...........................................43 3)Virtualhost.................................................... .......43 4)RpertoiresdessiteswebsurvotrePC................44 5)Ajusterlacharge................................................ ..44 6)Protectionintranetextranet................................44 7)Leslog................................................. ................45

E)shfs ............................................................ 54 F)LUFS ....................................................... .... 55 G)SSHFS ........................................................ 55 H)Autres(regarder) ................................... 55 I)Exercice ...................................................... 55 XIII)Firewall .................................................... 57 A)Shorewall .................................................. 57
1)Prsentations.......................................................57 2)Configurerlefichier"zones"...............................57 3)Configurerlefichier"interfaces"..........................57 4)Configurerlefichier"masq"................................58 5)Configurerlefichier"policy"...............................58 6)Configurerlefichier"rules"................................59 7)Configurerlefichier"tunnels"............................61 8)Configurerlefichier"hosts"................................61 9)Prendreencomptelaconfiguration....................61 1)Onvrifiequ'iptablesestdisponible....................61 2)Iptables............................................................ ....62 3)Fichierdeconfiguration......................................62 4)Miseenplace................................................... ....65

B)NotionsIptables ........................................ 61

B)php ............................................................ 45
1)Mandriva................................................ .............45 2)debian.................................................................45 3)Gnral........................................................... .....45

C)Tests ......................................................... .. 66 XIV)ServeurDNS .............................................. 67 A)Prsentation .............................................. 67 B)Liens .......................................................... 67


20/09/09

C)WebDAV ..................................................... 45
1)Prsentation........................................................45 2)Installation/configuration...................................45 22287750.odt Page2sur141

C)Exemple ..................................................... 67
1)named.conf......................................................... .67 2)Fichiernamed.local.............................................69

E)Exercice ..................................................... 84 XX)Configurerunserveurd'impression ............ 85 A)Uneimprimante/plusieursordinateurs . 85 . B)Cups ........................................................ ... 85


1)Serveur...................................................... ..........85 2)Client.............................................................. .....85

D)MyDNSAdmin ........................................... 70 E)Tests ..................................................... ...... 70 F)resolv.conf .................................................. 71 XV)Proxy .......................................................... 72 A)Prsentation .............................................. 72 B)Fichierdeconfiguration ............................ 72 C)Francisation ............................................... 72 D)Squidnetrouveplusvotresiteprfr 73 ..... XVI)ServeurDHCP ............................................ 74 A)Prsentation .............................................. 74 B)Exemple ..................................................... 74 C)remarques ................................................. 74
1)Interdireunepersonne........................................74 2)Plusieurscartesrseaux.......................................74 3)RcuprerlesmacadressesdesPCdurseau.....75

XXI)Partagedescanner .................................... 86 A)serveur ...................................................... 86 B)Client ......................................................... 86 XXII)Configurerunserveurdetempsavecntp 87 . A)Introduction .............................................. 87 B)Leprincipedanssesgrandeslignes .......... 87 C)L'installationconcrte ............................... 88
1)Configurationdentp...........................................88 2)SynchroniserunposteLINUXsurvotreserveurde tempslocal......................................................... .....90 3)Synchroniserunpostewindows.........................91 4)SynchroniserunposteMACINTOSHSYSTEME8 OU9............................................... ........................91 5)SystmeMacOSX............................................. ....91

D)Exercice ..................................................... 75 XVII)TerminalserveurX ................................... 76 XVIII)Gestiond'unserveurdeCourriel(Mail) . 77 . A)Installation ................................................ 77 B)Lesaliases ................................................. 77


1)Utilisationnormale..............................................77 2)Crationd'adressedegroupe(nomrevoir)......77

XXIII)LDAP ....................................................... 92 A)Prsentation .............................................. 92 B)Installation ................................................ 92


1)Lesrpm................................................................ 92 2)Lefichierdeconfiguration...................................92 3)Premiersessais....................................................93 4)Structuredesdonnes.........................................94

C)Premiertest:messagerielocale. .............. 77 D)Secondtest:versl'extrieur ..................... 78


1)Sansnomdedomainevalide...............................78 2)Avecunnomdedomainevalide..........................79

C)Unpeudevocabulaire ............................... 96
1)Leschma........................................................ ....96 2)Lesattributs..................................................... ....96 3)Lesclassesd'objets..............................................96 4)LeDistinguishName............................................97 5)LDIF..................................................................... 97

E)Troisimetest:lirelecourrieldel'extrieur .................................................... .................... 79 F)Quatrimetest:recevoirlecourrieldel'ex trieur ............................................................. 80 G)Cinquimetest:envoyerlecourrieldepuis l'extrieur ........................................................ 80 H)Exempledefichiersdeconfiguration ....... 80
1)/etc/postfix/main.cf............................................80 2)/etc/postfix/access..............................................82

D)phpldapadmin ........................................... 97 E)UtiliserOpenLDAPpourl'authentification 97


1)Manipulationsurleserveur.................................97 2)Installationduclient............................................98

F)UtiliserOpenLDappourSamba ................. 99 XXIV)Sauvegardesystme ............................... 102 XXV)Configureretcompilerlenoyau ............. 104 A)Premiertest ............................................. 104 B)Testssuivants .......................................... 104 C)Fairelemnage ....................................... 105 XXVI)Scurit ................................................. 106 A)Lesutilisateurs ........................................ 106 B)l'utilisateurroot ....................................... 106 C)Configurerlilo ......................................... 106 D)Configurerlenoyau ................................ 106 E)Lesdmonsetversionsdelogiciels ........ 106 F)Unbonfirewall ....................................... 107 G)Visualiservosportsouverts .................... 107
20/09/09

I)Petitplus .................................................... 82 J)Test openrelais ..................................... 82 K)SpamAssassin ............................................ 82 L)Amliorationspossibles ............................. 82 M)Exercices ................................................... 82 XIX)ServeurNIS ............................................... 83 A)Prsentation .............................................. 83 B)Leserveur .................................................. 83 C)Lesclients .................................................. 84 D)Changementdemotdepasse/ajoutd'utili sateurs .......................................................... ... 84
22287750.odt Page3sur141

H)votrescuritrseau .............................. 107 I)Consultezrgulirementvosfichiersdelog .................................................. .................... 108


1)log................................................... ..................108 2)ulog.................................................. .................108 3)fail2ban.............................................................108

1)Prsentation......................................................111 2)Installation........................................................111 3)menu.lst............................................................112

J)Lasauvegardedesdonnes ..................... 108


1)Lescript....................................................... ......108 2)Lesbesoins........................................................109 3)Versionplussimple............................................109 4)Encoreplussimple............................................109

B)Quota ................................................. ...... 113 C)forkbomb ................................................. 113 D)PasserelleLinuxavecduWifi .................. 114 E)MisejourMandriva .............................. 115 F)Onduleurs(UPSenanglais) .................... 115 I)Annexes ....................................................... 117 A)Remerciementsetbibliographie ............. 117 IndexLexical ................................................. 118 Petitlexique .................................................. 119 Petitlexique .................................................. 120

K)Lesversetautres .................................... 110 XXVII)Aranger! ............................................. 111 A)InstallationdeGrub ................................ 111

22287750.odt

Page4sur141

20/09/09

I) INTRODUCTION

A) Moncours
LebutdececoursestdemontrerqueLINUXexisteetqu'onpeutmonterpleinsdeserveursdiffrents partirdes CDd'installation.Lepublicvisestuneclassedelicenceprofessionnelle,letempsd'enseignementestde4heuresdeTD et9deTP .Cecoursdbordedonclargementdupeudetempsdisponible. Danscedocumentjenefaisquerelatermonexprienceetjemesersaussidececourspourmontermespropres serveurs.Cecimepermetdelemodifierchaqueutilisation.Jen'abordepasl'installationdetouslesserveurs,chaqueser veurabord mriterait luiseulunbouquinentieretjenepeuxluiconsacrerquequelquespagesquisontdoncincom pltes. Jeseraisheureuxderecevoirdesremarquesconstructives monadresse:troumad@libertysurf.frafind'amliorer cedocumentquiacommemissionaussibiend'aiderlesutilisateursdeLINUXmonterleursserveurssurleurPCquede fairedcouvrirLINUXdespersonnesquis'intressentl'installationdeserveurs.Jepeuxaussirajouterdeschapitressur d'autresserveurssivousmelespassez. Je viens d'avoir l'impression que mon cours est fait dans le mme esprit que le site http://www.linuxpourles nuls.org/.

B) Unixi
Informationsdisponiblessur: http://www.linuxfrance.org/article/jdanield/V2.0/ http://fr.wikipedia.org/wiki/UNIX#.C3.80_l.27heure_actuelle Unixestunsystmed'exploitationmultiutilisateuretmultitchenen1969.Depuis1973,UnixestcritenC. Unedesforcesd'UNIXestd'tredisponiblesurplusieursarchitecturesavecdesnormessuffisammentstrictesqui permettentd'avoirseulementrecompilerunprogrammepourpasserd'unearchitecturel'autre. Depuis1987,UNIXestmmedisponiblesurPC,lenomdecettepremireversionestMinix. L'interfaceutilisateurd'Unixestconstitue: D'unensembledeprogrammesexcutables:lescommandes Dushell,interprteurdecommandemaisaussi,plusquedansn'importequelautresystmed'exploitation,lan gagedecommandepermettantd'criredesprogrammes,scripts,d'unegrandecomplexit.Travaillerenlignedecom mande,c'estutiliserlapuissancedushellsuruneconsoletextesansinterfacegraphique.

C) GNU:GNU'sNotUnix
(http://www.gnu.org/) Le27septembre1983,leprojetGNUiinatdanslattedeRichardStallman: AdaterdeceThanksgiving,jevais crireunsystmed'exploitationcompletcompatibleUnixappel GNU(pour GnuN'est_pasUnix)etledonnergratuitement toutepersonnequipeutl'utiliser.Descontributionsentemps,argent, programmessontgrandementncessaires. PourquoiJeDoiscrireGNU Jeconsidrequelargled'orexigequesij'aimeunprogrammejedoislepartageraveclesautrespersonnesqui l'aiment.Jenepeuxpas,enbonneconsciencesignerunaccorddenondivulgationoudelicencesurunlogiciel. GNUest l'originedeslicencesGPL(GeneralPubliclicence)etdoncdeslogicielslibres.Parmileslogicielslibres, ontrouve,entreautre,LinuxetunegrandepartiedeslogicielstournantsousLinux.

D) Linux
Aucoursdel'anne1991,un tudiantfinlandais,LinusTorvalds,trouvantMinixtroplimit,dcided'crireun noyauUnixpourPC.Ilralisequelquesmodules(justedequoifairefonctionnerunlecteurdedisquettes)etposteletout surlesiteInternetdesonuniversit.DepuisLinusTorvaldsestrestpropritairedunoyauetenassurelamaintenance. Soninitiativeallaitdchanerl'enthousiasmedemilliersdeprogrammeurs,etlenomdunoyau,Linuxdevait bientt,dansl'espritdupublic,supplanterceluideGNUoudeFSF.Pourtant,ennombred'octets,lacontributiondeGNU estbienplusimportantequecelledeLinux. Attention,Linuxestlenoyau.IlnefautpasleconfondreaveclesinterfacesgraphiquesquisontdisponiblessousLi nux(voirchapitresuivant). Voirlesite:http://cern91.tuxfamily.org/linux/menu.php4?page=gnulinux LinuxestdoncunUnixparmid'autres.

E) Lesinterfacesgraphiques
Uneinterfacegraphiquen'estqu'uneinterfacepermettantd'accder descommandesquisontsouventsipuis santes,quel'onnepeutvraimentlesexploiterfondseulementenlignedecommande.Prenezl'exempledeslogicielsgra veurs:4ou5(etplus)interfacesetaufond,2,3commandesderrirequisontlesmmes(c'estunpeuraccourci,mais c'estquandmmel'ide). 22287750.odt Page5sur141 20/09/09

Linux dispose de plusieurs interfaces graphiques (windows manager ou WM) connues comme KDE, Gnome, ICEwm...Certainessontpluspuissante(KDE)qued'autresquidemandentmoinsderessource(ICEwm).Cecipermetde pouvoirinstallerlaversionsouhaiteenfonctiondumatrieldisponibleetdesbesoins.SurunpetitPCquipeutservirde serveur(http,ftp,samba...),nouspouvonsmettrelesderniresversions(aveclesdernirescorrectionsdesderniersbug trouvs)duserveuravecunWMpeugourmand.OnpeutmmesepasserdeWMcarlalignedecommandesuffitconfi gurernotreordinateur. Lorsquequ'ontravailleavecunWM,nousavonslapossibilit d'ouvrirdesshellouconsolepourtravaillerenligne decommandeoulancerdesprogrammesgraphiques.Certainsprogrammesgraphiques,commeceuxdeconfigurations, nesontquedesinterfaces(GUI:GraphicalUserInterface)convivialespourfairedesmanipulationsfaisablesenlignede commande.Personnellement,jetrouvelalignedecommandepluspuissante,certeselledemandeuninvestissementau dpart,maisilestviterentabilis! LesinterfacesgraphiquessontgresparunserveurX, iii,programmequifournitdesservicesgraphiques.Ilprend enchargelagestiondespriphriquesd'entreetdesortieclavier,souris,cran).Ceserveurad'normespossibilitsque nousnetraiteronspasici.Parexemple,leserveurpeuttournersurunordinateuretl'affichagesefairesurunautre. Unepetiteforcedesinterfacesgraphiques, testeravecmodration(risquedesaturationdeRAMouduproces seur)aveclexdelafinsuprieur0:
startx /etc/X11/xdm/Xsession Gnome -- :X startx /etc/X11/xdm/Xsession WindowMaker -- :X startx /etc/X11/xdm/Xsession Enlightenment -- :X startx /etc/X11/xdm/Xsession BlackBox -- :X startx /etc/X11/xdm/Xsession IceWM -- :X startx /etc/X11/xdm/Xsession Sawfish -- :X startx /etc/X11/xdm/Xsession XFce -- :X startx /etc/X11/xdm/Xsession KDE -- :X

Vousouvrezainsiunterminal,le7+Xavecl'interfacechoisie(F(7+X)pouryaccder).
startx /etc/X11/xdm/Xsession fluxbox -- :1 & xrandr -s 640x480 -d :1

Cettedernireligneimposeenpluslarsolution.
X -query adresse-IP-de-la-machine :1

VoustesenCtrlAltF8avecunesessionXouvertesurunPCdistantindiquparadresse-IP-de-la-machine. Remarque:ilestFORTDCONSEILLd'ouvriruneinterfacegraphiqueentantqu'administrateur.Ilfautlefaireen tantqu'utilisateurnormaletaprsprendrelecontrleentantqu'administrateurdansunshellenfaisantsuousu -.

F) Lesdistributions
Linuxettouslesprogrammesquivontavecsontavanttoutlivrssousformedesourcecompiler.Ilesttoutfait faisabledercuprerlessources(voirdelesmodifier)puisdelescompiler.Ceciestparticulirementfastidieuxcarilya souventunefouledeparamtresrgler(ilfautconnatreparfaitementsonsystme!)etc'estvraimentlong:plusieurs journes(semaines?)justepourlacompilation.Pour vitercela,Linuxestbienplussouventdiffus sousformed'une distribution.Unedistributionestunensembledeprogrammes(noyaux,commandes,applications...)quiassureuneinstal lationd'unsystmecomplet. Voiciunelistededistributions: Knoppix (http://knoppixfr.tuxfamily.org/)ladistributionLinuxbootablesurunCD.ElleestinstallesurunCD pourtouslesordinateurs!Onappelledetellesdistributionsdesdistributionslives. Mandriva/Mandrake(http://www.mandrivalinux.com/fr/):c'estladistributionfranaisequis'estsurtoutorien tegrandpublicavecuneffortsurlesoutilsd'installationetdeconfiguration.Mandriva(anciennementMandrake)distri buegratuitementuneversioncomplteetdveloppeaussiunesolutionserveurpayante.Nousutiliseronslaversiongra tuitedeMandriva. Redhat(http://www.fr.redhat.com/),commeMandriva,RedHatestuneentreprise. Fedora:laredhatgratuitepourtest. Debian(http://www.fr.debian.org/)estlaseuledistributionrelevantd'unprojetGNU,elleestsurtoutprvupour lesserveursoulesprof. Ubuntu(http://www.ubuntulinux.org/),unversiondmocratisedeladebian. Slackware(http://www.slackware.org/)soitdisantlaplusUnixdesdistributions. SuSE(http://www.suse.de/fr/)estunedistributionqu'onpeuttrouvergratuitementdepuis2004(rachatdeSuSE parnovell). OpenSuse:(http://www.opensuse.org/Welcome_to_openSUSE.org),laSusegratuite. Gentoo (http://www.gentoo.org/)fournitunsystmedepaquetagesourcesquisontrecompilsaumomentde l'installation. SME(autrefoisappeleesmithServerandGateway):(http://smeserver.fr/index.php)orientserveur. 22287750.odt Page6sur141 20/09/09

LFS(http://www.fr.linuxfromscratch.org/):unsystmeo ondoittoutinstaller lamain partirdelacompila tiondunoyau. Rescuecd (http://rescuecd.sourceforge.net)quipermetencasdegrossoucisderparersonsystme(Linuxou Windows),elleestbasesurDebian.Ellesn'ontpasd'interfacesgraphique,maiselleesttrsefficace,etenpluselleest personnalisabletrsfacilementetavecn'importedistribution. Systemrescue(http://www.sysresccd.org/index.fr.php)estuneautredistributionquipermetrparerunsystme. Lapage http://www.linuxfrance.org/article/choixdistri/choixdistri.html vousfaitunmeilleurdescriptif.Lesite http://ikarios.com/vouspermetd'acqurirlesdistributionsgratuitesprixrduitssivousn'avezpasdeconnexionrapide internet. nb:lesdistributionslivesdeviennentdeplusenplusfrquentes,Ellesservlenttrspratiquespourintervenirsur desPCquiontdesproblmesdedisquesdurafindepouvoiresprersauverdesdonnesavantlarinstallationd'unnou veausystme,

G) Leslistesdediscussionsaidesenligne
Souventlesdistributionsoffrentaussideslistes/forumsdediscussionsgratuiteso onpeutsoumettrenosprob lmesetessayerdersoudreceuxdesautres.Ceslistessontparfoisplusractivesqueleshotlineetaidentpourrsoudre lesproblmes.Ellesontsouventagrablesfrquentercarl'espritdulibreestlepartageetlesutilisateursdeLINUXsont souventdesamoureuxdeleurOsprfr.Acepropos,oncomprendlattesympathiquedeleur(notre)mascotteTUX (http://dmoz.org/Computers/Software/Operating_Systems/Linux/Tux/). Profitonsenpourdonnerladfinitiondetuxd'aprshttp://www.linuxfrance.org/prj/jargonf/: TUX=Petitnomdumanchot,souventconfonduavecunpingouin,quiestlamascottedeLinux.Rien voiravec Tuxedo,mmesionpeutsedouterqueTuxestuneabrviationdusmokingqueportentcertainsvolatiles...Lapetite histoireditquelenomatchoisilorsduconcoursLet'sNameThePenguinWhileLinusIsAwayContest(Donnons unnomaupingouinpendantqueLinusaledostourn). Parmiceslistes,voicil'adressed'inscriptiondecellesdeMandriva:http://www.mandrivalinux.com/fr/flists.php3. IlexistedeslistesdediscutionspourdeslogicielslibrescommeOpenOffice.org(http://fr.openoffice.org/contactfo rums.html)lelogicielaveclequeljefaismescours. Ilexisteaussidesforumsd'aidecomme http://www.developpez.net/forums/viewforum.php?f=5 quifournissent des aides compltes (avec une introduction spciale dbutant) comme : http://nepomiachty.developpez.com/config linux/index.php. Etsurtout,ontrouve normmentd'aidesurinternet.Toutaulongdecedocument,jem'eninspireensitantmes source. Voici par exemple un tutoriel fait par un dbutant pendant son apprentissage : http://numarrou.free.fr/in dex.html.

22287750.odt

Page7sur141

20/09/09

II) Disquesetpartitionsetsystmedefichiers

A) Structurededisquesdur
Undisquedurestcompos decylindres(pistes)etsecteurs,ttes, plateaux.Onparledecylindrequandilyaplusieursplateaux.Doncs'ily aqu'unseulplateaualorsuncylindre=unepiste.Voilaquoiressemble undisquedurunefoisformat.

Secte ur Pistes / cylindres

Dessin1:plateaudedisquedur Undisquedurpeut tredivis enplusieurspartitions,donclediviserenplusieurspartiescommesionavaitplu sieursdisquesdurindpendants. Avantl'installationdetoutOS,ilfautprparerledisquedur,c'estdirecrerdespartitionsetensuitecrerunsys tmedefichiers.Engnralsouswindowsvousavezunepartition,avecunsystmedefichiers(fat16, fat32,NTFS, suivantlesversions).Undisquebienprpar devraitpossderaumoinsdeuxpartitions,unepourlesystmeetl'autre pourlesdonnes.PourinstallerLinuxilfautauminimum2partitions,maisjeconseilleminimum3.Lapartitiondeswap, lapartitionsystme,etlapartitiondesdonnes. Lapartitionswap,sertdemmoirevirtuelle,lammoirevirtuellepermetd'augmenterlammoire,maiselleesttrs lentecarelleestsurledisqueetqueledisqueadestempsd'accspluslent Lapartitionsystmes'appelle/etellepeuttredivisenplusieurspartitions. Lapartitioncontenantlesdonness'appelle/home,etellecontientlesdonnesdetouslesutilisateurs. Ilexisteplusieurstypesdedisquesdur,ilyaletypeIDEetletypeSCSI,jedtaillecesdeuxtypescarLinuxles nommentdiffremment.Aveclenoyau2.4,lenomdupriphriquecontient3lettres+unnombre.Les2premires lettresnousdonneletypepriphrique,ladeuximelendudisquedur,etlechiffrelendepartition. /dev/fd0reprsentelepremier(0)lecteurdedisquette(fd) /dev/hda1reprsentelapremire(1)partitiondupremier(a)disquedurIDE(hd) /dev/sdb3reprsentelatroisime(3)partitiondudeuxime(b)disquedurSCSI(sd) Avecl'apparitiondunoyau2.6,legrandmnagedurpertoire/dev faitchangersesnomsencrantdessousr pertoires: /dev/floppy/0pourlepremierlecteurdedisquette(lesecondsera/dev/floppy/1 /dev/pourlesdisquesdurs

B) Disquesetpartitions

C) Systmedefichiers
Aprsavoirpartitionn ledisqueilfautformaterlapartition,leformatagecrelesystmedefichiersquivarece voirlesdonnesetlesystmed'exploitation.Linuxreconnatbeaucoupdesystmedefichiers.CeluiutilisparLinuxest ext2ouext3pourlestandard,lepremierestnonjournalis tandisqueledeuximeestjournalis.Mais ilenexiste d'autresquel'onpeututiliscommereiserfsouxfs.Lesnouvellesdistributionsutilisentunsystmedefichiersjournalis, quial'avantagedepouvoirdeserparerplusfacilement.

D) L'arborescenceLinux
Lerpertoireracineest/,ilestcrpardfaut,ilcontienttouslesautressousrpertoires.Chaquerpertoirea unesignificationbienprcise,aumoinspourlesrpertoiressystme.Doncc'estunsystmebienorganiscommevousal lezlevoir. /usr:Cerpertoirecontienttouteslesressourcesdusystme,sonnomsignifieUnixSystemRessources. /usr/bin:Contientlesutilitairesinstallssurlesystme /usr/lib:Contientlesbibliothquesassocisauxexcutablesde/usr/bin. /usr/include:Contientlesfichiersd'entte,quisontprsentquesioninstallelesversionsdedveloppement.Ne sertquesionveutinstalllesversionssourcesdesprogrammes. /usr/X11R6:ConcernetouscequiconcerneXfree86ouxorg(l'interfacegraphique). /usr/share:Contientlesressourcespartagespartousleslogicielsprsentsdans/usr/bin /usr/local:Ilreproduitl'arborescencede/usr,etilcontientlesprogrammesinstallspartirdesources. /usr/src:contientlessourcesdesprogrammes. /boot:IlcontientlenoyauettouscequipermetLinuxdebooter,Ilestprfrabledemettrecettepartitionsurles 1024 premiers cylindres, surtout pour les anciennes distributions, car sinon le bootloader ne pourra pas trouv ces fichiers.Ilcontientaussilefichierdeconfigurationdelilo(gestiondedmarragemultiboot) /boot/grub:fichiersdeconfigurationsdegrub(concurentdelilo) /root:C'estlerpertoiredusuperutilisateur. /lib:Contientleslibrairiesetlesmodulesdunoyau. /etc:Contientlesfichiersdeconfiguration. /home:Contientlesdonnesdesutilisateurs.Chaqueutilisateurasonproprerpertoire.

22287750.odt

Page8sur141

20/09/09

/var:Ilcontientlescourriers(sivousavezunserveurdemail),lesfilesd'impressionsetlesjournaux(logs),ces dernierscetrouvedans/var/logs.Parexemplesiquelquechosenevapas,onpourratrouverlaraisondanscesfichiers. L'originedevarestvariable. /dev:contienttouslesfichiersgrantlespriphriques,soncontenuestsurtoutgnrlorsduboot. /proc:contientl'tatdusystme, ladiffrencedesautresrpertoires,/proceststockenmemoireetnonsur ledisquedur. /mnt:sertmonterparexempledesdisquesamoviblesoudisquesrseaux...mntvientdemount. /media:remplaceparfois/mntpourmonterdesmdiascommeleslecteursdeCDROM,DVD,disquettes... /tmp:c'estunrpertoiretemporaire. /opt:sertmettredesexcutablesenphasedetest.

E) Remarques
1)Ilexisteunvisualiseurgraphiquepouranalyserl'encombrementdesdiffrentsrpertoiresdevotrearborescence :filelight.Vouspouvezl'installeravecurpmifilelightouaptgetinstallfilelightpourMandrivaouDebian. 2)IlfautsavoirquesurLinuxtoutestfichiers.Pourvousconvaincre:less/homeparexemple.

22287750.odt

Page9sur141

20/09/09

III) Fichiers,RpertoiresetLiens
Avantderentrerdanslesystme,ilfautsavoircommentsontrangeslesinformations.

A) Rpertoires/Fichiers
Lesdonnessontstockesdemanirehirarchisearborescentesurlesdisquettes,disquesdurs,CDROM....Les informationssontdansdescasesnommesrpertoires,danscesrpertoiresontrouvesoitdesfichiers(quicontiennentles donnes)soitd'autresrpertoires.L'ensembledesrpertoiresformentl'arborescencedevotresystmededonnes. SurUnix(Linuxdoncaussi),larpartitionphysiquedesdonnesn'estpasvisibledel'utilisateurfinalsil'admi nistrateurfaitbiensontravail.OnneparlepasdedisqueC,duD...(commedansDOS/Windows)toutestcommesiona unseuldisque,mmepourlesdonnespartagesquiviennentd'unautreordinateur( voirIX)B)1)/etc/fstab).Cecipermet l'utilisateurfinaldepasserd'unordinateur l'autresurunrseausanschangerd'environnement,lesdonnesdetravail tanttoujoursstockesdanslemmerpertoireaummeendroitdansl'arborescence.Direquelastructurematrielleest compltementtransparente,c'estunpeuexagr carilfautbiensavoiro estleCD,ladisquetteoulesautrespriph riquesamovibles!Rgulirement,c'estdanslerpertoire/mnt.Lepremieresthabituellementdans/mnt/floppyetlese conddansmnt/cdrom.C'estaussidanscerpertoirequeLinuxinstalle(monte)automatiquementlespartitionsautres commelespartitionswindows.MaisLinuxtantentirementlibre,onpeutfairecequ'onveut.Cecipeuttremodifilors del'installation.

B) Lesliens
liens)!

Cecin'estpastoujours vident,vousaurezparlasuiteunesried'essaispourmieuxcomprendre( voirIII)C)1)f) Onpeut,aulieudedupliquerunfichier,mettreunlienverscefichier.Sionmodifielefichier partirdulien,on modifielefichier,enrevanche,sionl'effaceunefoisilrestepourl'autre.Onpeutaussimettreunmmefichierdansplu sieursrpertoiresafinquediffrentespersonnespuissentyaccderavecdiffrentsdroits. Ladiffrenceentreunlienphysiqueetsymboliquesevoitbienquandoneffacelefichieroriginal(voirplusloin). Unliensymboliquepeutpermettreparexempled'avoirunlienversuneapplicationquipourra trechangelors d'unemisejouretnotrelienlui,inchang,indiqueralanouvelleversion. Unlienphysiquesurunfichiernepeutsefairequesilefichierestsurlemmesystmedefichiers(mmeparti tion).Ilpeuttreuneprotectionencasd'effacementintempestifcarpoureffacerrellementunfichier,ilfauteffacertous lesliensphysiquesquipointentverslui. Onpeutaussimettreunliensymboliqueversunrpertoirepourfaciliterlanavigationdansl'arborescence. EnfaittoutestliensousLinux.Dansunrpertoire,onadesliensversd'autresrpertoires,d'autresfichiers:une informationpoursavoiroilssontstocks. L'importantpourpouvoirsupprimerleliensymboliqueestlepropritaireetlegroupedulien.chown -hpermet dechangerlesdroitsduliensymboliqueetnondel'objetpoint.Unchmodchangelesdroitsdufichiercible. Ilfautsavoirquechangerlesdroitsd'unliensymboliquenesert rien,etcepourlasimpleraisonqu'ilsnesont jamaisprisencompte. Lacration/suppressiond'unfichierdansunrpertoire,dpenduniquementdesdroitsdel'utilisateurdanscer pertoire. Concernantlalecture/crituredufichierenquestion,seulcomptelesdroitsdufichierpoint. Uncasparticuliertoutdemme:lorsquequelestickybitestactivsurlerpertoirequicontientlelien,lepropri tairedulienestprisencompte.Maisc'estmaconnaissanceleseulcas.

1) prsentation

2) Lesdroits

C) Premiersoutilspourmanipulerlesfichiers
PourceuxquiontconnuleDOS,c'estfortsemblable.Lalignedecommandeesttrspuissante,trsrapideetimpor tanteconnatrecarparfois,distanceparexemple,c'estlaseulemthodedisponible.Cettemthodesemblecertesfasti dieuse,maiselleservlerapidementbienplusefficaceetplusprcisequelesmthodesgraphiques. Dsquevousvousposezunequestionquant unecommandeayezlebonrflexe: man la_commande ,ilya aussilapossibilitdefaire la_commande --help maisl'explicationestplusrestreinte.Pourplusd'explicationsurla commandeman,fates man man :).Lorsquelemandevientlong,dansuneinterfacegraphiqueavecKonquerorpar exemple,vouspouvezfairemettrelecheminman:/la_commandecommeman:/man.

1) Lignedecommande

22287750.odt

Page10sur141

20/09/09

a) Affichageducontenud'unrpertoire

Illustration1:Arborescencevisualiseavecuneinterfacegraphique(KonquerorsousKDE) Lacommandedebasepourafficherlecontenud'unrpertoireest ls pourLiSt.Cettecommandepossdedes optionsqu'onpeutvoirenfaisant man ls .Lesplusutilisessont ls -l et ls -a quiontrgulirementdes raccourcis: ll et la (onpeutenfaired'autresoulesenlever:voirplustardlesalias). ls nedonnequelalistedesfichiers,rpertoires,liensetautrescontenudanslerpertoire.Souvent,ildot d'unaffichagecolorpourinformersurlanaturedufichier/rpertoire:bleufonc:unrpertoire,bleuclairunlien,blanc :unfichierquelconque,vertunexcutable...Mmesanscouleurs,cesinformationssontvisibles:un/ lafindunom pourunrpertoire,un@pourunlienetun*pourunexcutable. ll luiaffichedansl'ordre,lespermissions(oudroits:voirplusloin IV)B)Systmededroits),lenombredeliens physiques,lepropritairedufichieretlegroupepropritaire,latailleenoctets,l'horodatage(pardfautl'horodatage prsentestceluideladerniremodificationdufichier),etfinalementlenomdurpertoire/fichier/... la affichetouslesfichiersdesrpertoires,ycomprislesfichierscommenantparun . . Uneautreinformationimportanteestdesavoiro onestsurl'arborescence.Cetteinformationestdonneparla commande pwd . Vous remarquerez que l'arborescence est indique de la manire suivante : /premier_rpertoire/second/... .LesparateurentrerpertoireestlesparateurUnix / (normal,LINUXest unUNIX),paslesparateurmicrosoft \ . b) bougerdansl'arboscence Lacommandedebaseest cd (ChangeworkingDirectory). Pouraller laracineonfait cd / .Unefoissurlaracinepouralleraurpertoirehomeonfait cd home . Ensuite,pourallerdanslerpertoirehome/root(rpertoirededpartdelaflchevertedul'illustration1),onfait cd root .Apartirdelaracine,onauraitpufaire cd home/root ,enrevanchesionestn'importeo,leplussimpleest defaire cd /home/root . Pourfaireleparcoursdelaflchevertesanspasserparlaracine,onfait: cd ../mclaires/projets ,c'estun dplacementenmoderelatif.Onauraitpufairecedplacementenserfrant laracine cd /home/mclaires/projets ,cettefois,onafaitundplacementenmodeabsolu:onserfrelaracine. Latouchetabulationtanttrsutile:ellefaitlacompltion,nousallonslatesterdesuite:taper cd /ho +ta bulationvousaurezalors cd /home/ quivas'afficher.Eneffet,ellecompltel'affichagejusqu'oellepeut.Siaubout d'uncertainavancementilyaplusieurschoix,elleafficheleschoixpossibles(oudemandes'ilestutiledelesaffichers'ily enatrop!). Remarque1:un cd seulrenvoiel'utilisateursursonrpertoirepersonnelet cd ~/un_chemin donneun cheminabsolupartirdurpertoirepersonneldel'utilisateur. Remarque2:lerpertoirepersonnelderoot(administrateursystme)est /root.Commelesnouvellesversionsde Mandrivanepermettentpasdelemettredansunepartitionsparedelaracine,jecopiedoncdesdonnesimportantes derootdansunrpertoirequej'attribue rootdanslapartition /homeafindesauvegarderdesdonnesimportantesde rootencasdeformatagedelaracinesionveuxchangerdeversiondeLinux.Lepassaged'uneversionlasuivanted'une mmedistributionsefaitsansreformatage,maissionfaitunchangementdedistribution,rienn'estassur! 22287750.odt Page11sur141 20/09/09

c) Crereteffacerdesrpertoires LacommandepourcrerunrpertoireestmkdirpourMaKeDIRectory(unraccourcialiasexistesouvent: md).Pourcrerunrpertoirebidondans/home,onpeutfairemd /home/bidon(onpeutlefaireaussibienenrelatif qu'enabsolu).md bidoncreraunrpertoirebidon l'endroito noussommesencemoment,cettecommandefera cequ'onsouhaitesiontaitdans/home. Maintenant,onveutcrerunrpertoirevidedanslerpertorebidon,onpeutfairemd /home/bidon/vide. Cettecommandetapesansavoirauparavantcrerlerpertoire /home/bidon auraitdonn uneerreur:mkdir: Ne peut crer le rpertoire `/home/bidon/vide': No such file or directory. La commande pour effacer un rpertoire est rmdir pour ReMove DRIectory (un alias existe souvent : rd). Maintenant,onveuteffacerlerpertoire/home/bidonetcequ'ilcontient.Pourpouvoireffaceravecrdunrpertoire, ilfautqu'ilsoitvide,c'estdirequesionfaitrd/home/bidon,onobtientlemessagesuivant:rmdir: `/home/bidon': Directory not empty.Ilnousfaudradoncfaireavantrd /home/bidon/vide.Ilyaunemthoderisque pourviteraqu'onverraplustard. Encorelatouchetabulation:taperrmd+tabulation.Vousallezavoirrmdirquis'affichecarc'estlaseule commandequicommenceparrmd. d) copieretbougerlesfichiers Pourcopier(dupliquer)unfichierlacommandedebaseestcppourCoPy.cpfichier_originefichier_arrive. Revenonsdanslerpertoire/home/root.Sinousvoulonscopierlefichierbashrcdanslefichier .bashrc(cach carilaunpointdevant)onfaitcp bashrc .bashrc.Sionavaitvoulucopierdirectementcefichierdanslerpertoire /home/mclaires, on aurait pu faire directement cp bashrc ../mclaires/.bashrc en relatif ou cp bashrc /home/mclaires/.bashrcenabsolu.Onpeutfairelammechosesansmettredenom,maisjusteuncheminversun autrerpertoire.Cecidupliquelefichierdanslerpertoireciblesanschangerlenom:cp bashrc ../bscopiele fichierdanslerpertoire/home/bssanschangersonnom. Cettefois,allonsdanslerpertoire /home/mclaires/projets cd ../mclaires/projets.D'icirapatrionsle fichier XF86Config4.s_travail qui se trouve dans le rpertoire /home/root. Nous pouvons faire soit cp ../../root/XF86Config-4.s_travail .oucp /home/root/XF86Config-4.s_travail .Vousavezremarqu, j'esprelaprsencedu.lafindescommandes,celuiciindiquelerpertoirecourant. Unixdisposed'unecommande quivalentepourdplacerunfichier(MoVe),c'estmv.Ellemarchecommecp, maisl'originalseraeffaceretiln'existeraplusquelacopie.Cettefois,onpeutaussibougerunearborescencecomplte: mv /home/bs1 /home/rootcreralerpertoirebs1dans /home/root etymettratouteslesdonnesdurpertoire /home/bs1. Jepeuxprofiterdecescommandepourvousparlerde *:Caractresgnriquequiest quivalent n'importequellechanedecaractre(ycomprislespoint(".")et aucuncaractre. ?luiestquivalentan'importequelcaractre(unique) [ ]signifien'importequelcaractrecomprisentrelescrochets([aeiouy]seravalablepourtoutmotcompor tantaumoinsunevoyelle) Parexemple,cp * destinationcopietouslesfichiersversladestinationetcp deb* destinationcopie touslesfichiersquicommencepardebverslerpertoiredestination.Uneastuce:pourvrifiercequiseracopi,vousau riezputapertabulationavantdetaperle*,cecivousafficheratouslesfichiersquiserontbouger.*estcomprispar presquetouteslescommandes. e) diter,modifiereteffacerlesfichier i) Effacer Poureffacerunfichier,lacommandeestrm.Oneffaceunfichieravecrm nom_du_fichier.Cettecom mandeestsouventmodifi parunaliasquiobligelademandedeconfirmationpourchaqueeffacement( alias rm='rm -i').Pourvitercela,onpeututiliserrm -f,maisc'estdangereux. Encoreplusdangereux,ilyarm -f -r *quieffacetout partirdel'emplacementactuelenparcourantles sousrpertoires.Ceciauraitpunous treutilepoureffacerlerpertoirebidonquandilavaitencorelerpertoirevide: rm -r -f /home/bidon.Ceciestd'autantplusdangereuxquesionfaitrm -f -r *surlaracineaveclesdroits administrateur,oneffacetouteslesdonnes!Peuttrepascellequisontsurd'autresordinateurssuivantcommentontt dfinilespartagescarl'administrateurdenotreordinateurn'estpasadministrateursurlesautresordinateurspriori! ii) Lire Revenonsdansnotrerpertoire/home/root.Sinousvoulonsvisualiserlefichierbashrc,nouspouvonsfairecat bashrc.Maissicefichieresttroplong,ilestutiled'utiliserlacommandeless bashrc.Danscederniercas,onpar courslefichieraveclestouchesflcheverslehaut/verslebas(commelestouchesjetk)et/oupagesuivante/pagepr cdente.Ondisposedelatouchehpourfaireafficheruneaideetonsortaveclatoucheq. 22287750.odt Page12sur141 20/09/09

iii) Modifier Parfoisilestaussiutiledemodifierenlignedecommandeunfichier.Lesdeuxditeursprincipauxenlignedecom mandesontvietemacs.Lesfrusd'Unixquiontappris utiliserces diteursavantl'existencedesmodesgra phiquesvousdirontqu'ilssontpluspuissantsquen'importequelditeurgraphique.Jepensequ'ilsontraison,maisjene lesmatrisepasassezpourenprofiter!Jevousindiqueraisdonclescommandeutilesdevi(leseulquejesuisarrivuti liser).Enmodegraphique,vousavezparexemplekwrite. Nousallonsdoncchercher modifierlefichierbashrc:vi bashrc.Poursedplacerdanslefichier,vousavez soitlestouchesh,j,ketl(trsutileavantl'apparitiondesclavieraveclestouches droitedeslettres:lesflchesetles chiffres),soitlesflches.Pouravoiruneaidetapez:hpourensortir:q.Pourinsrerdutexte,allezovousvoulez insrerletexte,puis,tapezi(ouapouralleraprs),aprstapezchappe(toucheescape,ESCouEchapen haut gauche).Poureffacerletexte,enmodeinsertionaveclesnouvellesversions,vouspouvezutiliserlestouchessup primeetbackupdevotreclavier.Enrevanchesivousn'tespasenmodeinsertion,vouspouvezcommencer goutterla forcedevi:10 xeffacera10caractrespartirducurseurets'arrteralafindelaligne.5 ddeffacera5lignes. xseuleffaceraunelettreetdduneligne.uannuleralesprcdentescommandes.Poursauvertaper:w.vire fuseradesefermeravec:qsilesderniresmodificationsn'ontpas t sauves::q!poursortirsanssauveret :wqpoursauvegarderetquitter.Ceciestune'sousutilisation'devi,maissuffisantepourdepetitesutilisations. f) fairedesliens Leslienssefontaveclacommandeln. Allonsencoreunefoissurnotrerpertoire/home/rootetcronsunrpertoireliens. Nous allons pouvoir tester les diffrents liens avec les trois fichiers dont nous disposons dans ce rpertoire : bashrc,.bashrcetXF86Config-4.s_travail. Commenonsparcrerunlienmatriel:ln .bashrc surprise.Sionregardelerpertoire,ll,onvoitnos 4fichierssansdistinctionentreles4,sicen'estquelechiffredelasecondecolonneest2pour .bashrc surprise,alors quepourlesautresiln'estquede1:lenombredeliensphysiques.Modifionsavecvilefichiersurprise.Onrajouteune premireligneparexemple.Regardonsensuitelefichier.bashrcless .bashrc:nousyvoyonsnotremodification. Ensuite,onefface .bashrc rm .bashrcetonregardelecontenudurpertoirels.Nousavonsquatrefichiers bashrc,surprise,surprise~etXF86Config-4.s_travail.surprise~estlasauvegardefateparvidenotrefichier avantladerniresauvegarde,onl'effacerm surprise~Ilestpossibledevrifiernotrefichiersurprise.Pourfiniravec lesliensphysiques,essayons partirdurpertoire /home/root defaireunlienphysiqueversunfichiersetrouvant /root. ln /root/.bashrc baba et le systme rpond : ln: cration d'un lien direct `baba' vers `/root/.bashrc': Invalid cross-device link.Ceciestnormalcar/rootestdansuneautrepartition! Continuonsparunlienphysiqueln -s surprise .bashrcetregardonslecontenudenotrerpertoirels. Nousvoyonsque.bashrcs'affichediffremment:ilaaumoinsun@dernirelenom.Sionmodifie.bashrcavecvila modificationapparataussisurlefichiersurprise.Maintenantoneffacesurpriseetonlistelerpertoirell.L'affic hagede.bashrcachang :maintenantilclignotecarilestreli unfichierinexistant!Essayonsdersoudreleprob lmeenfaisantcp bashrc surpriseetll:toutestrevenudansl'ordre.Pourallerplusloinvouspouveztester unlien(les2sortes)surunliensymboliqueetcomprendrecequisepasse. Ilestmmepossibledecrerunlienversunrpertoire,maisuniquementunliensymbolique. g) Conclusion Jeconcluraisquecescommandessonttrspratiquesetrapide.Lalignedecommandeestunpeuaustremaistrs rapide. Vous pouvez regarder par exemple la page http://www.tuxbihan.org/article.php3?id_article=6. Un expert de scriptbashm'aditquetouttaitdansman bash... jeconseilleraisaussid'viterlesnomsavecdesespacestrsfacilementfaisableenmodegraphiquecarenlignede commandel'espacedevient'\'+espace.Aulieudemettreunespacedansunnomessayerdemettreun_(soulign). http://www.accreteil.fr/reseaux/systemes/linux/shellscripts/shellprogrammation.html http://abs.traduc.org/index.html a) Votrepremierscript Voiciunexempletrssimpledescriptbashplacerdansunfichier:
#!/bin/bash echo -n "password: " read pass echo "Votre pass est $pass" Lapremireligne#!/bin/bashsertindiquerletypedeshellutiliseraveclescript.

2) Lesscripts

22287750.odt

Page13sur141

20/09/09

Ladeuximeligneechon"password:"sertafficherl'ecranletexteentreguillemet.L'option-nviteunre tourlaligneautomatique. Latroisimelignereadpassvalirecequel'utilisateurtapeauclavieretlesauverdanslavariable$pass.Dufait del'optionn,cequetapel'utilisateurapparaitralasuitedumotpassword. Ladernireligneaffichel'cranlaphrase Votre pass est ainsiquelecontenudelavariable$pass. Unfoisceslignessauvegardesdansunfichier monscript.sh parexemple,vouspouvezlerendreexcutableentapant: chmod a+x monscript.sh puisentapantuniquementlenomdevotrefichierdansleshellprcd de./: ./mons cript.sh Le./permetd'indiquerquelefichiermonscript.shsetrouvedanslerpertoirecourant. Voirmanchmodetmanchownpourapprendreplusdecesdeuxfonctionstrsutiles. Ilestgalementpossibledetapercescriptenlignedecommandeensparantchaquefonctionparunpointvirgule:
echo -n "password: " ; read pass ; echo "Votre pass est $pass"

b) Lescalculs Ilestpossibled'utiliserlebashcommeunecalculatrice.Enlignedecommande,voilcequeceladonne:
echo $[ 4 * 2 ] 8 echo $[ 10 + 5 ] 15

ouparfois
echo $(( 10 + 5 )) 15

c) lestestsetcomparaisons Voiciunexempledecomparaisonutilisantlestestsconditionnelsif
#!/bin/bash echo -n "entrez un nom: " read var1 echo -n "entrez un autre nom: " read var2 if [ "$var1" = "$var2" ]; then echo "Les noms sont les mmes" else echo "Les noms sont diffrents" fi exit 0

"fi"estlafermeturedeif,toutcomme"}"estlafermeturede"{",exit0terminelescriptproprementetvousramneau prompt. Alaplacede'='vouspouvezutiliser'eq'pourtestersideuxexpressionssont quivalentes,ou'eg'pourvrifiersideux entierssontgaux. Anoterqu'unevariable'$var'peuttrecrite${var}.


if test -f $1 then file $1 else echo "Le fichier \"$1\" n'existe pas" fi

Danslescriptsuivant,$1renvoielepremierargumententr aprsleprogrammeoulafonction l'excution.fren voievraisilefichier(stockdans$1)existe. Voiciquelquesfonctionsdetestutiles: 22287750.odt Page14sur141 20/09/09

Expression r w x f d s c1=c2 c1!=c2 c1 e1eqe2 e1nee2 e1gte2 e1lte2 !expr expr1aexpr2 expr1oexpr2

Signification fichiervraisilefichierexisteetestaccessibleenlecture(r) fichiervraisilefichierexisteetestaccessibleencriture(w) fichiervraisilefichierexisteetestexcutable(x) fichiervraisilefichierexisteetestunfichier"rgulier"(file) fichiervraisile"fichier"existeetestunrpertoire(directory) fichiervraisilefichierexisteetaunetaillenonnulle(size) vraisilesdeuxexpressionssontgales(deschanes,ensh) vraisilesdeuxexpressionssontdiffrentes(deschanes,ensh) vraisic1n'estpaslachanenulle(vide) vraisilesdeuxentierse1ete2sontalgbriquementgaux(equal) vraisilesdeuxentierse1ete2sontalgbriquementdiffrents(notequal) vraisil'entiere1estplusgrandquel'entiere2(greaterthan) vraisil'entiere1estpluspetitquee2(lowerthan) ngationdel'expressionboolenneexpr etlogiqueentrelesdeuxexpressionsboolennesexpr1etexpr2(and) oulogiqueentrelesdeuxexpressionsboolennesexpr1etexpr2(or)

Sparateurs/contrlesenshell: | || |= && ! != !$ !! = ; ;; $ $! $$ $0 $1 $2 $# $? $ $_ $* $@ # { } [ ] @ * ? " ' pipeprendralapremirecommandeenargumentdelaseconde. ORsilapremirecommandeestfausse,ilprendralaseconde. ORIS(surtoututilisedanslestestsconditionnels"if"). ANDsilapremirecommandeestvraie,ilexcuteralaseconde. NOT(surtoututilisedanslestestsettestsconditionnels"if"),mais utilisencommandeshell,ilouvreunshellpourlancerunecommande (ex.`!echofoo`). NOTIS(surtoututilisepourlestestsconditionnels). dernirescommandes,dernierargument. rpteladernirecommande. IS(surtoututilispourlestestsconditionnels). sparera2commandescommesiellestaientcritessur2lignes. find'unefonction`case`(voir`case`plusloin). prfixed'unevariablecomme"$myvar". PIDdudernierprocessusenfant. PIDduprocesscourant(PID==ProcessID). Montrelesprogrammespossesseursduprocessuscourant. Premierargumententraprsleprogrammeoulafonctionl'excution. Secondagumententraprsleprogrammeoulafonction($3etc.). Affichelenombred'arguments. N'importequelargument(bonutiliserdanslestestsconditionnels). flagsdel'optioncourante(Jen'aijamaiseum'enservir). Dernier(re)argument(commande). Touslesarguments. Touslesarguments. lignedecommentaire,toutcequisuitsurlalignen'estpasinterprt. accoladeouvrante(dbutdefonction). accoladefermante(findefonction). crochetouvrant(pourdesargumentsmultiples). crochetfermant(pourdesargumentsmultiples). $@estquivalent"$1""$2"etc.(touslesarguments). wildcard(*remplaceunnombreindtermindecaractres). wildcard(?remplaceununiquecaractre). quote quoteprcis(inclurammedes"danslequote). Page15sur141 20/09/09

22287750.odt

` . & 0< 1> 2> % >> << > \ >&

quotedecommande(variable=`lsla`afficheralecontenudurpertoire enutilisant$variable). lepointliraetexcuteradescommandespartirdefichiers(..bashrc). and.utilisensuffixe,ilexcuteunetcheenbackground(./program&). stdinstreamdirector(Jenel'aivudansaucunscript). stdoutstreamdirector(standardoutput) stderrstreamdirector(standarderroroutput) caractredestches,%1=fgjob1,%2=fgjob2,etc. streamdirector(inclusiondansunfichier). stdinstreamdirector.(cat>file<<EOF;anything;EOF) streamdirectorquicommenceraautoutdbutdufichier(danslestests conditionnels"if"<et>serontutilissencomparateursmathmatiques parexemple:if["$1">="2"]) backslash,retirelemetacaractreden'importequellechane.Ainsi, \$varneserapastraitcommeunevariable. (etunenouvelleligneneserapastraitecommeunenouvelleligne) Deplus,un\avantunecommande,retiretouslesaliasesappliqus cettecommande:\rm streamdirectortostreamdirector,ie.echo"a"1>/dev/null2>&1dirigera2>aummeendroitque1>

d) fonction case Case,toutcommeif,setermineparlacommandeinverseesac.


#!/bin/bash case "$1" in --help) echo"Aide..." ;; --version) echo"Version1.0" ;;

esac Danscetexemple,sil'argument$1est'help',Aide...estaffich,si$1estgale'version'etc... Chaqueconditionseterminepar;; e) fonction sed Sedestutilispourformater/modifierdutexte. Parexemple,sivouspossdezunfichiertmpcontenantdesurlsetquevousdsiriezchangertousleswwwparftp,ta pez:


sed 's/www/ftp/g' tmp etsed's/www/ftp/g'tmp>tmp2sivousdsirezenregistrerlesmodificationsdansunfichiertmp2. sed -n 3 p tmp2 permetd'afficherla3melignedufichiertmp2.

f) LesInitetsystemscripts Le'systemVinit',quiestl'initleplusutilis pourLinux.Lesstartupscriptspermettentdelancer/stopperlesservices telsqueserveurhttp,ftp,basededonnespostgresqletc...etsontcritsenbash!Ilssontstocksdans:


/etc/rc.d/rc0.d/ /etc/rc.d/rc1.d/ /etc/rc.d/rc2.d/ /etc/rc.d/rc3.d/ /etc/rc.d/rc4.d/ /etc/rc.d/rc5.d/ /etc/rc.d/rc6.d/ /etc/rc.d/init.d/

Voiciunscriptpermettantdedmarrerundmonnommdaemon:
#!/bin/sh

22287750.odt

Page16sur141

20/09/09

# example # # Version: # # Author: #

Exemple de script qui lancerait 'daemon' @(#) /etc/rc.d/inet.d/example 0.01 19-Feb-2001 Billy (Alien), <alien@ktv.koping.se>

. /etc/rc.d/init.d/functions function status() { psaux|grepdaemon&& echo"Daemonisrunning."|| echo"Daemonisnotrunning." } case "$1" in start) #Vrifiesidaemonestdansnotrepath. if`whichdaemon`>/dev/null;thensuccess||failure;fi echon"StartingDaemon" daemon echo ;; stop) #Vrifieencoresidaemonestdansnotrepath. if`whichdaemon`>/dev/null;thensuccess||failure;fi echo"StoppingDaemon" killall15daemon ;; status) echo"StatusofDaemon:" status ;; reload) echo"RestartingDaemon." killall1daemon ;; restart) if`whichecho`>/dev/null;thensuccess||failure;fi $0stop $0start ;; *) echo"Usage:$0start|stop|restart|status" exit0 esac

alorsvousdelirelesscriptsdevotresystmeetd'essayezdelescomprendre;)

Ceciestdpendantdel'environnementgraphiquechoisi(WM).Pourtrouvervotrebonheur,parcourezlesmenus! SouventilexisteunraccourcidunomdeDossierpersonnel,ilvousouvriraungestionnairedefichiersdragand drop.Encliquantsurunfichierouunrpertoire,l'actionautomatiquementconfigursepasse.Pourfaireplusdechose, essayezdecliqueravecleboutondroitetdeparcourirlesmenus...Toutdoit trefaisable,maispasaussifacilement. Certeslesmanipulationscourantescommecopiercollersonttrssimplifies. 22287750.odt Page17sur141 20/09/09

3) Interfacegraphique

D) Rsumdescommandesdushell(BASH)
http://www.lealinux.org/admin/shell.php3 voicilescommandesdebasesousLinux: Commandes quivalen quoiasert linux tMsDos Exemples: cd .. vadanslerpertoireparentdurpertoirecourant cd /home/user/.nsmail vadanslerpertoiredsign ls affichelecontenudurpertoirecourant ls -l affichelecontenudurpertoirecourantdemanire dtaille ls -a /home/user affichelecontenudurpertoiredsign(ainsiqueles fichierscachs) cp toto /tmp copielefichiertotodanslerpertoire/tmp cp toto titi copielefichiertotosurlefichiertiti cp -R /home/user /tmp/bak copie le rpertoire /home/user ainsi que tout ce qu'ilcontientdans/tmp/bak rm toto titi effacelesfichierstotoettiti rm -f toto titi efface les fichiers toto et titi sans demander confirmation rm -rf /tmp/* efface (sans demander de confirmation) tous les fichiersetrpertoirede/tmp mkdir /home/user/mes documents crelerpertoire "mes documents" danslesous rpertoire/home/user rmdir /home/user/.nsmail effacelerpertoire.nsmailde/home/usersice luiciestvide

cd

cd

changelerpertoirecourant.

ls

dir

affichelecontenud'unrpertoire

cp

copy xcopy

copieunouplusieursfichiers

rm

del

effaceunouplusieursfichiers

rmrf

deltree effaceunrpertoireetsoncontenu

mkdir

md

creunrpertoire

rmdir

rm

effaceunrpertoires'ilestvide

mv

ren move

mv tata titi renommetataentiti mv * *.bak dplace ou renomme un ou des nefonctionnepas!!!! fichiers mv * /tmp/bak dplacetouslesfichiersdurpertoirecourantversle rpertoire/tmp/bak find /home -name "*bash*" trouveun fichierrpondant cer trouvetouslesfichierscontenantlemot bash dans tainscritres leurnomsetrouvantdanslerpertoire/home locate bash trouvetouslesfichierscontenantlemot bash dans leurnomcomplet(aveclerpertoire):ladiffrencede find,locatetrouvesesinformationsdansunebasede donnecreparupdatedb 20/09/09

find

dirs

locate

dir -s

trouveunfichierd'aprssonnom

22287750.odt

Page18sur141

man

help

man ls affichel'aideconcernantunecom affichel'aide(pagedemanuel)delacommnadels. mandeparticulire Onquittemanenappuyantsurlatouche'q' chmod o+r /home/user autoriselesautres(o=other)(ie:ceuxquinesont nilepropritaire,nimembredugroupepropritaire) modifielespermissionsd'unfichier lire(r=read)lerpertoire/home/user chmod a+rw /home/user/unfichier autorise tout le monde (a=all) lire et crire (w=write)danslefichier/home/user/unfichier modifielepropritaired'unfichier chown user unfichier renduserpropritairedeunfichier.

chmod

attrib

chown

pas d'qui valent pas d'qui valent

chgrp

chgrp -R nobody /home/httpd rendlegroupe: nobody (ungroupeayanttrspeu modifielegroupeproprtaired'un de droit sur un systme linux) propritaire de fichier /home/httpd ainsi que tout les fichiers qu'il contient (-R) ln -s /dev/fd0 /dev/disquette creunlienvers /dev/fd0 (lelecteurdedisquette) nomm /dev/disquette. La manipulation de /dev/fd0et/dev/disquette(saufl'effacement).

ln -s

pas d'quivale creunlienversunfichier nt pas d'qui valent pas d'qui valent type

grep

recherche une chaine dans un grep chaine *.txt fichier (en fait recherche une ex recherchelachaine'chaine'danstouslesfichierse pression rgulire dans plusieurs terminantpar.txt. fichiers) which emacs trouvelerpertoiredanslequelse retournelenomdurpertoiredanslequelsetrouve trouveunecommande lacommandeemacs. afficheunfichierl'cran cat ~/.bashrc affichelecontenudufichier~/.bashrc

which

cat

Remarque: Pourensavoirplussurtoutescescommandes,jevousconseilledeconsulterleurpagedeman! Voiraussi: http://www.accreteil.fr/reseaux/systemes/linux/shellscripts/shellbash.html http://abs.traduc.org/index.html http://www.shelldorado.com/

22287750.odt

Page19sur141

20/09/09

IV) InstallationdeMandrivaLINUX

A) Prsentation
Ilexisteplusieursmaniresd'installerladistributionMandriva.Lapluscouranteestl'installationpartirdesCDou DVDdebase.Vousallezdireque3 7CDc'estbeaucoupalorsqu'iln'enfautqu'unpourwindows,c'estexact3>1.Ce pendantsurles3CDdelaversiontlchargeablegratuitementdeMandriva,onalesystmed'exploitationavecplusieurs WMdisponibles(leCDdewindowsavecunchoixenplus),plusieurssuitesoffice(lesCDdeMSOffice),deslogicielsde dessins,deslogicielsdegravages,desjeux...Etlessourcesdetouta(demoinsenmoinscarilfaudraitunquatrimeCD maintenant)! Ilexisted'autresmthodesd'installation:parrseau/internet, partirdudisquedur(laplusrapideetlaplusin tressanteparlasuitesiledisquedurestassezgrand).Toutescesautresmthodesdemandentunedisquettededmar rage. Pour la liste complte avec explication, voir la page : ftp://fr2.rpmfind.net/linux/Mandrake/current/i586/doc/install/fr/install.htm. Nousallonsutiliserunemthodelarapided'autantplusqu'ellenouspermettrad'conomiserlegravagedeCD ROM. Enpratiquepourpouvoirutiliserlamthodepartirdudisquedur,ilfautdj avoirunsystmeinstallsurunPC aveclequelonpourraformaterunepartitionde2Goaumoinssurlaquelleaupourratransfrerlesdonnes. Nousallonsaussiutiliserunemthodepartird'unserveurdistant:touteslesdonnesd'installation(lesCDoule DVD)sontsurunserveurnfslocalrapided'accs.Attention,prendreunserveurLOCALsinon,touslespostesferontsi multanmentdesrequtessurdesserveursexternesetlerseausetrouverarapidementsatur!Ceciarriveradj assez souventlorsdesmisesjours... Attention,parlasuite,ilfaudralaisserintacteslesdonnesd'installation.Sionveutmodifierlesystme,c'est indispensable.C'est cemomentqu'onverral'intrtparrapport uneinstallation partirdeCDROM:onn'apasbe soind'allercherchernosCDetd'attendrelesmessagespoursavoirquandilfautmettrequelCD!

B) Prparationdel'installation
Nousavonsbesoind'unedisquetteetd'unPCdontledisquedurcontientdjlesCDdeMandriva.J'aicopicesCD dansunrpertoired'unepartitionquipeuxtreauformatLinux,WindowsouReiserFS. LepremierCDestdanslaracinedurpertoire,pourlessuivants,j'aicopilecontenudurpertoireMandrivadans le rpertoire Mandriva cr lors de la copie du premier. Ces donnes sont sur le rpertoire mdk de la partition | ______________|.Cetteinformationestimportantecarlaquestionseraposelorsdel'installation.

C) Cahierdeschargesdel'installation
Pourlepartitionnement,ilfautobligatoirementavoirunepartition/(racinedusystme),unepartitionswap(que lesystmeutilisepourstockerdesdonnesutilesquiencombrentlaRAM).Ilestconseill d'avoirlapartition/homeo sont stockes les donnes personnelles (rpertoire personnels) des utilisateurs, (que rien n'empche de nommer /maison!)afinqu'elleschappentd'ventuelsreformatagedusystme(rpertoire/).Vousallezlaisserintacteslesven tuellespartitionswindows(ouautres?)dj prsentes.Sivousavezunwindowsd'install ilseraintressantdeprvoir unepartitionFAT32poursimplifierleschangesdedonnesd'unsystmel'autre. Nouschoisironsl'installationenmodeexpert.Nousallonsinstaller: Lesenvironnementgraphiques(touspourtester). lesserveurssuivants:ftp,ssh,httpd,nfs. Lesoutilsdeconfiguration. mozillaoufirefox(butineurinternet). OpenOffice.orgpourlirel'originaldecedocument. Pouravoirunetelleprcision,ilfaudraslectionnerlespaquetslamain. Ilfaudraconfigurerl'amorage(liloougrub)pourbienbootersurlabonnepartition. Lesfentresdedialoguessontengnralbienfates.

D) Installation
NousallonscommencerparbootersurunedisquettequiestprvuepourinstallerMandrivapartirdedonnessur ledisquedur.Voicilestapessuivreaprsleboot. Toutd'abordVousavezunmenuquivousdemandesivousvoulezplusd'optionsavec<F1>oucommencerdirec tementavec<Enter>.Nousn'avonspasbesoindeplusd'options.Vouspouveztoujoursregarderlesoptionsproposes... Dans le menu suivant vous choisirez du disque dur contenant la copie des CD d'install (Il vous propose les disques durs prsents). Puis vous devrez choisir la partition sur le disque dur choisi prcdemment. Et en dernier, avant de commencer l'installation graphique, reste le choix du rpertoire. NB :en fait vous devez indiqu le chemin complet du rpertoire contenant la copie des CD d'install En cas d'erreur, il est possible de revenir en arrire. 22287750.odt Page20sur141 20/09/09

Pour la suite, voir http://doc.mandrivalinux.com/MandrakeLinux/91/fr/Quick_Startup.html/. C'est le document officieldonnparMandriva.

E) Configuration
SurchaquePC,vousallezcrerunseulcompte:lecompteroot(obligatoire)aveccommemotdepasselinux.Pour lecomptesuivant,nepasrentrerdedonnes,etfairedirectement[Accepter]afind'tresurdenepaslecrer. Ilvousfaudraaussilerseau:vousvousmettezenDHCPetsurtoutlorsdelaconfigurationrseau,choisissezle modeexpertetcocherlorsdelaconfigurationdelacarterseaunepasafecterlenomd'htepartirel'adresseDHCP , maisdonnervousmmelenomduPC. Ilfaudraaussiconfigurerl'affichage. Pourlemoment,surtout,onnemetpasdefirewall. Aprsceci,vousrebooterlamachine.Laisseztomberlamise jour,ellepeut tretrslongue(onn'aurapasle tempscemoment),elleestpourtanttrsimportantepourlascurit!

22287750.odt

Page21sur141

20/09/09

V) Manipulation
AvecMandriva,onpeutlancerunexcutable:mcc(centredecontrleMandriva)quifaitbeaucoupdechoses.Il estmmedisponibleendehorsdetoutenvironnementgraphique,maissaversiongraphiqueestbienplusavantageuse.Il peutconfigurerpresquetout,maispouravoirplusdeprcision,riennevautletravailmanueldesfichiersdeconfigura tion.Nousallonsaussibientravaillerenlignedecommandequ'avecdesinterfacesgraphiques,chaquemodeayantson avantageenfonctiondutravaileffectueretdenotreconnaissancedel'OS.

A) Crationdecomptesetdegroupes
1) Prsentation
a) l'utilisateur Pourpermettredenombreuxutilisateursdetravaillersurlammemachine,Unixmetenoeuvredesmcanismes d'identificationdesutilisateurs,deprotectionetdeconfidentialitdel'information,toutenpermettantlepartagecontrl ncessaireautravailengroupe.Toututilisateurestidentifiparsonnom(login)etnepeututiliserlesystmequesison nom(login)apralablement t dfiniparl'administrateurdusystme(rootousuperutilisateur)quiluidonneraen mmetempsdesdroits.Ladfinitiond'unnouvelutilisateurs'appelleaussicreruncompte. rootatouslesdroitsetaucunerestrictionneluiestapplicable.Travaillerentantqu'administrateur(selogersous root)estdoncdangereux,maisutilepourparamtrerlesystme. b) Lecompte Lapremirequestionseposerc'estquedoitavoirchaquecompte? Uncomptedoitavoirdesdonnespersonnellesetunendroitproprepourleslaisser.Oncredoncunrpertoire personnel chaqueutilisateur.Cerpertoireestrgulirementplac dans /home : /home/repertoire_personnel.Sa crationestnormalementautomatique. Lesfichiersspcifiquessont(source:man useradd): /etc/passwdinformationsurlescomptesutilisateurs /etc/shadowinformationscurisesurlescomptesutilisateurs /etc/groupinformationdegroupes /etc/default/useraddinformationpardfautmodifieavecuseradd -D /etc/login.defsrglagesglobauxdusystme /etc/skelrpertoirecontenantlesfichiersquiserontmispardfautdanslescomptespersonnelslorsdeleur cration. Cerperoirecontientplusieursfichierscachs,afindevoirtoutsoncontenu,fairell -a /etc/skel.Undes fichierscachest.bashrcquicontientlaconfigurationdubash(lignedecommande)del'utilisateur. nb:Ilsepeutquevotre.bashrcneselancepasenvousloggantsuruneconsoletexte.Danscecas,ilfautrajouter dans~/.bash_profileleslignessuivantes:
if [ -f ~/.bashrc ]; then . ~/.bashrc fi BASH_ENV=~./bashrc export BASH_ENV

Lepremiertestetlancementpermetlorsdulogind'excuterle.bashrcs'ilexiste,eneffetlebashnetienspas comptedelavariableBASH_ENVoumomentduloginsousX(environnementgraphique)(contretouteattented'ailleurs). LavariableBASH_ENVindiqueabashdereexcuter.bashrcchaquenouveaushell.

2) lignedecommande
a) lesterminaux Normalementiv,vousnepouvezpasvouslogersurunWindowsManagercarvousn'avezquerootcommeutilisa teuretquepourdesraisonsdescuritvidenteMandrivainterditl'utilisationd'unWMsousrootcartouteslesapplica tionspourraientalorscriren'importeocequiouvriraitlaportetouslesvirus(ilestfaisabledelancerdesapplications windowssousLINUX...) Vousallezdoncutiliserunshell,ceciesttoujoursfaisableetfortutile.Ondisposeeneffetde7terminaux,onpasse d'unl'autreenfaisantCtrlAltFX(les3touchesappuyessimultanment)oXestentre1et7.CtrlAltF7estletermi nalduwindowsmanager,vousallezdoncfaireundes6autres,CtrlAltF2parexemple.CtrlAltF1estparfoisdcor parMandrivacequidiminuelatailledelafentre. b) useradd Vousallezutiliserlacommandeuseradd(ouadduser).Pouravoirplusd'information,fatesman adduser.Nousn'allonspasutilisertouteslesoptionsdisponibles!Sinousfaisonsuseradd nom_de_l_utilisateurtout sefaitcorrectementcarlefichier/etc/login.defsestconfigurpour.Enplus,cetteinstructioncreraautomatiquement 22287750.odt Page22sur141 20/09/09

unrpertoirepersonneldontlecontenuseralacopiedurpertoire /etc/skelcommec'estnormalementdfinidansle fichier/etc/default/useradd. Crezvousvotrecomptepersonnelaveccommeid500+n_de_votre_pc(ilfaudraajouteruneoptionlaligneque jevousaiindiquauchapitreprcdent).Lesautrescomptesquevouscrerezsurvotreordinateuraurontuniddustyle X00+n_de_votre_pc.avecX>5. Les utilisateurs sont stocks dans le fichier /etc/passwd. Ce fichier a une ligne par utilisateur. Chaque ligne contientdeschampssparspardes:(doublespoints). Lepremierchampcontientlenom, lesecondunx(activerprotg),une*(dsactiv)ourien(comptesansmotdepasse:unefailledescurit), letroisimel'identificateurdel'utilisateur(sonid:unnumrosuprieur500pourunutilisateurnomsystme), lesuivantl'iddesongroupeprincipal, l'antpnultimeuncommentairesurl'utilisateur,l'avantdernierl'emplacementdesonrpertoirepersonnel(quipeut donctrevraimentquelconque) ledernierleshellqu'onluiattribue(ilexisteparexempledesshellsquiempchentl'utilisateurdeseloger,cecipeut permettreuncomptedenepouvoirfairequeduftp). Pourenleverunutilisateur,fatesuserdel utilisateur. Pourchangerlesparamtresd'unutilisateur,utilisezusermod.Aprsavoirluman usermod,dfinissezvous unmotdepassecarlacommandeuseraddnel'apasfaitpuisquevousneluiavezpasdemand! c) groupadd addgroup Ajoutezungroupeessaiaveclacommandegroupadd essai. Lesgroupessontstocksdanslefichier/etc/group quialammestructurequelefichier /etc/password.Les informationssurchaquelignesontdansl'ordre:lenomdugroupe,unsecondchampquipeutcontenirsoitunx,un*ou rien,untroisimed'identificationdugroupe(sonid),ledernierchampestlalistedesutilisateurs(nomcomplet)qui appartiennent cegroupesansquecesoitleurgroupeprincipal,l'informationdugroupeprincipal tantdanslefichier password. Ajoutezmanuellement,avecvi,danslegroupeessaivotrecomptepersonnel. Aprsavoircr uncompte,fatesCtrlAltF7.Logervousaveclecomptejustecr avecunenvironnementgra phiqueprisauhasard(dbrouillezvouspournepasavoirlemmequevosvoisins). Pourenleverungroupe,utilisergroupdel. Pourunutilisateurdansungroup:addgroup <utilisateur> <group> L appartenanceaugroupenapparraitpourlasessioncompltequeaprsstredlogguerpuirelogguer.Onpeut utiliser"newgrp"ou"sg"pourviterdesedlogueretrcuprerl'appartenanceaubongroupedansunsousshell. d) addgroup

3) interfacegraphique CommenoussommessousMandrivaautantutiliserlesoutilsMandrivaquisontfortsagrableseten franais! Nousavonsleprogrammeuserdrakeauquelnouspouvonsaccdersoitparmcc,soitdirectement. Jeprofitedececipourvousfairelancercesprogrammes partird'unefentreshellouvertedans votreenvironnementgraphique,souventsonicne,c'estun crand'ordinateuravecparfoisunecoquille


(shell)devant . Danscettefentretaperlacommandesu.suestlacommandequipermetdedonnerlamain danslafentreshell unautreutilisateurqu'onmetenparamtre,s'iln'yapasdeparamtre,ceserale superutilisateur(administrateurouroot).Lepromptvousdemandealorsunmotdepasse,donnezle motdepasserootetvousavezunshellenadministrateur.su -faitlammechose,maisenpluson rcuprelesparamtresdunouvelutilisateur.Ceciestvitsionfaitcettemanipulationpourrcuprer unenvironnementplant. Apartirdeceshell,vouspouvezfaireexcuterdesapplicationsgraphiquessousroot.Tapezpar Illustration2: exemple kwrite,vousouvrezalorsunditeurdetextegraphique,maisvousn'avezpluslamaindans menusmcc leshell.Pourretrouverlamainsimplement,vousdevezarrterkwrite,soit partirdel'interfacegra phique,soitenfaisantCtrlCsurleshell( voirplusloinauIV)C)2)a)).Pourgarderlamain,ilfallaitfairekwrite &afin delancerkwriteenmodearrireplan. Vousallezdonctapermcc &.Parcourezlesmenus(image gauche)etchoisissezUserDrake(icne droite)

Danscetteinterfacevousdevezvoirquevousappartenezaussiaugroupeessai.Vouspouvezcrer,supprimeret diter des comptes. Cette dernire option est bien intressante car elle permet entre autre de modifier les groupes 22287750.odt Page23sur141 20/09/09

d'appartenancedesutilisateurs.Vouspouvezaussichoisirdansoptionvoirlesgroupesetfairedesmodificationssurles groupes.

B) Systmededroitssurlesfichiers
Lesdroitssurunfichier/rpertoiresont(dansl'ordre)lecture(r)criture(w)excution(x).Sesdroits,sontattri busdansl'ordrel'utilisateurpropritairedufichier,augroupepropritairedufichierettous.Cecifait9casesrem plir,sionpermettout:rwxrwxrwx.Sionpermettousl'utilisateur,lalectureetl'excutionaugroupeetl'excution tous,cecidonne:rwxr-x--x,le''(moins)signifiequeledroitn'estpasaccord!Onfaitcorrespondredesvaleurs cesdroits:lervaut4=22,lewvaut2=21etlexvaut1=20.Cecidonnecommevaleurpourlepremier777(critureen Octalbase8),lesecond751.640correspondrw-r-----. Lesdroitsdpendant tantli aupropritaireetaugroupepropritaire,ilfautdonc parfoismodifiercespara mtres.Pourmodifierlegroupe,onfaitchgrp groupe f1of1estunfichierouunrpertoire.Pourmodifierlepro pritaire,ilfautfairechown user f1.Sionveutmodifierlesdeux,ilfautfairechown user:groupe f1.Ces manipulationssefontsansproblmesionestroot.Enrevanche,quandonestsimpleutilisateur,ilfautquelefichiernous appartienne,onnepeutpaschangerlepropritaireetonnepeutdonnerunnouveaugroupequesionfaitpartiedece nouveaugroupe.

1) Propritaire,groupepropritaireetautres

2) Lesdroitssurlesfichiers Cesdroitssechangentaveclafonctionchmod:chmod valeur_du_mode fichier.Pourdonnerlesdroits rwrwraufichierbashrcdurpertoire /home/root,ilfautfairechmod 664 /home/root/basrc.Cecipermettraau propritaireetsongroupe(root)delelireetdelemodifieretauxautresdelelire. Ilyaaussilapossibilit d'enleverouderajouterdesdroits desfichiersavecchmod [who]op[permission]. whoestunecombinaisondeu(useroupropritaire),g(groupe)ouo(otherouautre).opestsoit+pourajouterledroit, pourl'enleveret=pournedonnerqueceluil (lesautresserontmis 0=non).chmod go-w fichiersupprimele droitd'critureaugroupeetauxautres.chmod u+x fichierrajouteaupropritaireledroitd'excution(transforme lefichierenexcutable!).chmod ug=rdonneunaccsen critureuniquementuniquement sonpropritaireetau groupe. Attention:poureffacerunfichier,ilsuffitd'avoirledroitsurlerpertoireetledroitdelecturesurlefichier... Lapossibilitintressantedechmod,maisquipeutouvrirdesfaillesestchmod +s fichierquifaitutiliserl'ID dupropritaireoudugroupepropritairedufichierlorsdel'excution.Lafaillearrivequandlepropritairedufichierest rootcarlorsdel'excutiondufichier,onrcuprelesdroitsderoot! Enplusdeces9donnes,Unixdfinittroisautresdonnesdepermission:SUID*,SGID*ett(voirchapitresuivant). Cesdonnestanttoutesbinaires:nonououi,0ou1,peuventchacunetrestockessurunbit.Cecifaitdonc12bitsde permission.Onlesobtientenfaisantchmod 01XXXpourlestickybitenoctale,chmod 02XXXpourpourSGIDet chmod 04XXXpourSUID.Le0indiqueausystmequ'onestenoctale. *:tropcompliquspourenparlerdanscedocument! 3) Aveclesrpertoires
a) Prsentation Lesdroitssontlesmmesaveclesrpertoiresmaisleseffetssontunpeudiffrents. Pourrentrerdansunrpertoire,ilfautavoirledroitd'excutiondessus.Pourlirelesdonnesd'unrpertoire,ilfaut avoirledroitdelectureetpouravoirledroitd'criredessus,ilfautavoirledroitd'critureetdelecture.Encombinant cesdroitssurunrpertoire,onpeutavoirdesconfigurationsassezintressantesetsurprenantes.Parexemple,uneper sonnequin'aqueledroitd'excutionpeutallerdanslerpertoirecd rpertoiremaisnepeutpasyfairegrand chose,.mmepaslirelecontenudurpertoirels,ellepeutvisualiserunfichiercatsiellesaitqu'ilyest.Uneper sonnequin'aqueledroitdelecturenepeutserendresurlerpertoirecd rpertoire,maispeutlirelecontenuls rpertoire.Unepersonnequin'aqueledroitd'criturenepeuxrienfairepriori.Afinqueledroitd'crituresoitutili sable,ilfautaumoinsavoirlesdroitsdelecture.Unepersonnequialedroitdelectureetd'crituresurunrpertoirepeut ydposercequ'elleveutetlirelesfichierssurcerpertoirequesielleestinformedesonexistence. Aveclesrpertoire,ondisposedechmod +t repertoire(cetteoptionmodifieaussil'attributpourlesfichiers, maisdenosjoursiln'estplusutilis).Cettemanipulationpermet tousceuxquiontledroitd'criredanscerpertoire denepouvoirmodifierquelesfichiersquileurappartiennent. Jevousconseilledefairequelquestestsafindemieuxsaisirlespossibilitsdusystme! b) miseenpratique Crerdansvotrerpertoirepersonnelunrpertoireolesvisiteursaurontjusteledroitd'crire(poser)desfichiers etunautreoilsaurontjusteledroitdelirelesfichiers. Crerunrpertoirepartageo toutmembredugroupepartageauratouslesdroits.Enrevanche,onnepourra modifierunfichierques'ilnousappartient.Attention,cerpertoirenepourra tredirectementsur/homecarMan 22287750.odt Page24sur141 20/09/09

driva empche se genre de partage sur ce rpertoire pour des questions de scurit. Je propose par exemple /home/tous/partage.

C) Grerlesprocessus
Unprocessusestunprogramme,unetachequitournesurvotreordinateur.Commec'estunsystmemultitache,il peutenavoirbeaucoupenmmetemps.Chaqueprocessusestidentifiparunnumrouniquequis'appellelenumrod'i dentificationduprocessusPID(ProcessIdentifier)etquiluiestattribuparlesystmesacration. Cesontlescommandesprincipalesquipermettentdegrerlesprocessus. a) ps:voirlesprocessus Lacommandepspermetdevisualisertouslesprocessuslancerdepuisunefentre:
# ps PID TTY 6897 pts/5 7584 pts/5 TIME CMD 00:00:00 bash 00:00:00 ps

1) ps,top,killetkillall

Ceciestleminimum.leprocessuspsluimmeetlafentre.Heureusement,ilyad'autresoptions,fatesps -helpouman ps.Pourtoutbienvoir,vouspouvezessayerps uawx -H.Cettecommandemetenvidencelano tiondeprocessuspreetprocessusfilsaveclahirarchisationdel'affichagedroite(l'optionH).Unprocessusfilsestun processusquiatcrparunautreprocessusquiprendlenomdeprocessuspre. Vousallezdirequ'ilyenabeaucoup!Vousvouliezjustesavoirsivousaviezdesbashquitournent,fates:ps uawx | grep bash.Parcettemanipulation,j'aiintroduitdeuxnouvellesnotions:untube(pipe)avec|etlafonc tiongrep.Untubeenvoielasortiedelacommanded'avantverslacommandesuivantequicettefoisestgrep. greprecherchedanslesfichiersd'entreindiqus(icilasortiedups)leslignescorrespondant uncertainmotif(ici bash).Ilnes'afficheradoncqueleslignesquiontbashdedans. b) Top topenlignedecommandeafficheentempsreletenmodetexte,lesprocessusselonl'ordredcroissantde chargeCPU.Onsortdecemodeentappant'q'auclavier. c) killetkillall Lescommandeskilletkillallpermettentdetuerlesprocessus.Ellessonttrsutilesparexemplelorsdes phasesdetestd'unprogramme(avecuneboucleinfinieparexemple). Uneutilisationsimpleestkill -9 PID_du_processuspourtuerunprocessusetkillall nom_d_un_processuspourtuertouslesprocessusdecenom.Biensur,vousnepouveztuerquelesprocessusvousappartenant.Seul rootpeuttuern'importequelprocessus. Ilexiste5modesd'excutions:lemodeinteractif(foreground),lemodeenarrireplan(backgroundouasyn chrone),lemodediffr,lemodebatchetlemodecyclique. a) Lemodeactif C'estlemodehabitueldelalignedecommande:onlancel'excutionduprogrammeetonattendqu'ilsefinisse. Ceciesttrsintressantsileprogrammeinteragitennousposantdesquestionsurlignedecommande. OnpeutstopperunprogrammeenfaisantCtrlc(letuer)oulesuspendreenfaisantCtrlz.bgpoursuitson excutionenarrireplan(background).fgpoursuitsonexcutionaupremierplan(foreground).Sionlanceplusieurs programmes,onpeututiliser'fg'et'bg'avecunparamtrequiestlenumrodu"job"listparlacommandejobs. b) Lemodeenarrireplan C'estlemodequirendaussittlecontrle l'utilisateur.Cettefonctionnalit estintressantepourdestchesne ncessitantpasd'interactionentrel'utilisateuretlatche,commeparexemplekwrite.Lacommandeestlancesuiviedu caractre&:kwrite&. Poursurveillerl'excutiondecescommandes,ondisposedepsoujobs. Cependant,lestchesdefondsontarrtesdsquel'utilisateurfermeleshell.Pourassurerlaprennitdelacom mande,ilfautlafairesuccderparnohup:nohup kwrite &.Cecomportementpeut tredonn tousprogrammes tournantenarrireplansionfaitdisown PID_du_programme,lePIDtantdonnparlacommandeps. Lacommandewaitestlpoursynchroniserdesprocessusasynchrones.Ellefaitattendre(bloquelamain)que lesprocessuslancsentchedefonddanscettefentresoientarrts. c) Lemodecyclique i) cron L'excutioncycliqued'unetcheestralisel'aidedelacommandecrontab.C'estestunecommandequivous permetd'excuterdescommandes desintervallesdetempsrguliers,avecl'avantagesupplmentairequevousn'avez 22287750.odt Page25sur141 20/09/09

2) excutiond'unecommande

pas treconnectsausystmeetquelasortiedecescommandesvousestenvoyeparcourrier lectronique.crontabagiradiffremmentenfonctiondesoptions: l:affichevotrefichiercrontabcourant e:ditevotrefichiercrontab(utilisationcommevi) r:liminevotrefichiercrontab u<utilisateur>:appliquelesoptionscidessusl'utilisateur<utilisateur>.Seulrootestautorisfairecela. Chaquelignedufichiercrontabestconstitude6champssparsparunespaceouunetabulation.Lasignification deschampsestrespectivementlaminute(059),l'heure(023),lejourdumois(131),lemoisdel'anne(112),lejour delasemaine(06,dimanche=0)etlatcheexcuter. C'estledmon(voirV)D) )cronquiscrutelesfichiersdanslesquelssontdfinieslescommandes excuter.Ces fichierssontdans /var/spool/cron pour tous les utilisateurs mme le super-utilisateur. Mais il existe le fichier /etc/crontab :
SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ # run-parts 01 * * * * root nice -n 19 run-parts /etc/cron.hourly 02 4 * * * root nice -n 19 run-parts /etc/cron.daily 22 4 * * 0 root nice -n 19 run-parts /etc/cron.weekly 42 4 1 * * root nice -n 19 run-parts /etc/cron.monthly */10 * * * * script # excute toutes les heures + 1 min le # contenu du rperoire /etc/cron.hourly # tous les jours 4h02 /etc/cron.daily # tous les dimanche 4h22 # les premiers du mois 4h42 # script excut toutes les 10 min

root peut donc mettre un fichier dans un de ces rpertoires pour excuter priodiquement une tache. On peut mme rajouter un ligne qui commence par 5 astrix afin d'excuter une tache toutes les minutes. Voici la structure d'un de ces fichiers :
#!/bin/sh => pour dire que c'est du bash nice -n 19 ntpdate -u ntp1.tuxfamily.net gence # voir man ntpdate et nice # excute ntpdate (mise l'heure du PC) sans ur-

Les fichiers /etc/cron.allow et /etc/cron.deny sont utiliss pour limiter l'accs cron. Le format de ces deux fichiers de contrle d'accs requiert un nom d'utilisateur sur chaque ligne. Les espaces blancs ne sont pas accepts. Le dmon cron ( crond) n'a pas tre redmarr si les fichiers de contrle d'accs sont modifis. Ces derniers sont lus chaque fois qu'un utilisateur essaie d'ajouter ou de supprimer une tche cron. Silefichiercron.allowexiste,seulslesutilisateursquiysontrpertorispeuventutilisercronetlefichier cron.denyn'estpasprisencompte.Enrevanche,silefichier cron.allown'existepas,lesutilisateursrpertorisdanscron.denynesontpasautorissutilisercron. ii) anacron Ilexisteaussianacron(utilisablequeparroot?)quiestunplanificateurdetchessimilairecron,saufqu'ilnere quiertpasl'excutiondusystmeencontinu.Ilpeuttreutilispourl'excutionquotidienne,hebdomadaireetmensuelle detchesgnralementexcutesparcron. LestchesAnacronsontrpertoriesdanslefichierdeconfiguration /etc/anacrontab.Chaquelignedecefichier correspondunetche.Ellesseprsententsousleformatsuivant:
period delay job-identifier command periodfrquence(enjours)d'excutiondelacommande delaytempsd'attenteenminutes job-identifier descriptiondelatche;utilis danslesmessagesAnacronetcommenomdufichierder frencetemporelledelatche;peutcontenirtoutcaractreautrequ'unblanc(l'exceptiondesbarresobliques). commandcommandeexcuter Pourchaquetche,Anacrondterminesilatchea t excuteaucoursdelapriodespcifiedanslechamp perioddufichierdeconfiguration.Sicen'estpaslecas,Anacronexcutelacommandespcifiedanslechampcommand aprsavoirrespectledlaid'attentespcifidanslechampdelay. iii) exercice Pourlefichier/home/tous/partage,enlevezleplussouventpossiblelessurlegroupeetlesautresutilisateurssur chaquefichierettoutel'arborescencelesdroitsd'critureetdelecture(fairechmod --help).

d) Lemodebatch 22287750.odt Page26sur141 20/09/09

Tandisquecronetanacronservent programmerdestchesrcurrentes,lacommande at estutilisepourpro grammerunetcheuniqueunmomentdonn.Lacommandebatchsertprogrammerunetchequidoittreexcute uneseulefoislorsquelamoyennedechargementdusystmedescendendessousde0,8=80%(lorsquelesystmepasse aumoins20%detempsattendrequ'onluidisedefairequelquechose). Pourexcuteruneseulefoisunetchespcifiquelorsquelamoyennedechargementestinfrieure0.8,utilisezla commandebatch. Unefoislacommandebatchsaisie,l'inviteat>s'affiche.Entrezlacommandeexcuter,appuyezsurlatoucheet tapezCtrlD.Vouspouvezspcifierplusieurscommandesenentrantchacuned'ellessuiviede.Aprsavoirtaptoutesles commandes,appuyezsurlatoucheafind'afficherunelignevide,puistapezCtrlD.Unscriptshellpeut galement tre saisienappuyantsurlatoucheaprschaqueligneduscriptetentapantCtrlDsurunelignevidepourquitter.Siunscript estsaisi,leshellutilis estceluidfinidansl'environnement SHELL (configurationdelalignedecommande,onpeut connatrelanotreenfaisant:echo $SHELL)del'utilisateur,leshelldeconnexiondel'utilisateurou/bin/sh(celui quiesttrouvenpremier).L'ensembledecommandesoudescriptsestexcutdsquelamoyennedechargementsesi tueendessousde0.8. Sil'ensembledecommandesoudescriptsessaied'afficherdesinformationsdanslasortiestandard,cesinforma tionssontenvoyesparcourrierlectroniquel'utilisateur. Utilisezlacommande atq pourafficherlestchesenattente.L'utilisationdelacommande batch peut treres treinte.Lesfichiers /etc/at.allow et /etc/at.deny (commepour /etc/cron.allow et /etc/cron.deny) peuvent servir limiterl'accsauxcommandesatetbatch.Leformatdecesdeuxfichiersdecontrled'accsrequiertunnom d'utilisateursurchaqueligne.Lesespacesblancsn'ysontpasaccepts.Ledmonat(atd)n'apastreredmarrsiles fichiersdecontrled'accssontmodifis.Cesfichierssontluschaquefoisqu'unutilisateuressaied'excuterlescom mandesatoubatch. L'utilisateurrootpeuttoujoursexcuterlescommandesatetbatchindpendammentdesfichiersdecontrled'ac cs.

D) Arrtetlancementdesdmons
http://lealinux.org/admin/daemons.php3 Undmon(daemon)estunprocessussystmequiappartientsoit root,soit uncompted'administration(dae mon,mysql,apacheparexemple).Lesdmonsactiventdesservices. Lesdmonsassurentdestchesd'ordregnral(gestiondesserveursinstallsparexemple),ilssontparfoisdispo niblestouslesutilisateursdusystme.Ilsnesontstoppsquepourarrterunservice,qu'l'arrtdusystmed'exploita tionouprendreencomptedenouveauxparamtres.Danscederniercas,ilfautaussittlesremettreenmarche.Cette derniremthodepermetdemodifierlesparamtressansavoirarrterlesystmeetleredmarrerjusteaprs(rebooter lesystme).

1) C'estquoiundmon?

2) Enlignedecommande Onarrteundmonavecnom_de_dmon stopetonlerelanceavecnom_de_demon start,onl'arrteeton lerelancedirectementavecnom_de_demon restart.Souvent,ilfautrajouterlechemindevantlenomdudmon: /etc/init.d/ ou rajouter la commande service devant. En fait on peut faire : service nom_service {start|stop| restart|reload|status} ou /etc/init.d/nom_service {start|stop|restart|reload|status} . Lalistedesdmonsquitournentsetrouvedans/etc/rcX.d/avecXle'runlevelv':5eninterfacegraphiqueet3en lignedecommande.Ilyaaussi.etc/xinetd.d/o chaquedmoncorrespond unfichierconfigurable.Pourvoirune listeilfautfairels /etc/rc5.d/parexemple.Avantdelancerundmon,ilfautvrifierqu'ilnetournepasdj!Ou toutsimplementletuer,s'iltaitdjinactif,onauraunmessaged'erreursansgravit,justepournousprvenirqu'iltait djinactif.Cemessagepeuttreparfoisimportantcarparfois,suiteuneerreurdanslesfichiersdeconfiguration,ilar rivequ'undmonlancavecsucss'arrteimmdiatement. Pourajouterundmon lalistedesdmon lanceraudmarrage,ilfautfaire:chkconfig --add le_service . Le dmon devra avant obligatoirement se trouver dans /etc/rc.d/init.d ou /etc/init.d. chkconfig est un programme pour grer les dmons, regardez man chkconfig . Une option intressante est chkconfig --list qui liste les tats des dmons dans tous les 'run level'. update-rc.d est le penchant debian de chkconfig.
AvecleCentredecontrleMandriva(mcc),oncomprendmieuxcequisepassecarilyaenplusdesexplications. Dansmcc,choisissezlemenusystmepuis,Drakxservices.L,vouspouvezarrter,dmarrerlesdmonsainsiquechoisir ceuxquiserontlancsaudmarrage.Enplusvousavezunboutoninformationpardmon.

3) Avecuneinterfacegraphique

E) Ajouter/Enleverunprogramme
Onpeuttrouverl'emplacementexactd'unprogrammeavecwhich le_programme. 22287750.odt Page27sur141 20/09/09

1) Aveclesrpmoudeb
a) rpm RPMsignifieRedhatPaquageManager.C'estlesystmedegestiondelogicielinventparRedHatqu'utiliseMan driva. http://c.laloy.free.fr/howtos/linux/index_rpm.html b) deb c) Automatiquement i) AvecMandriva Toujoursavecmcc,cettefoissurlemenugestionnairedelogiciels.Vouspouvezsoitenleverdeslogiciels,soiten mettre,soitenrajouterdessourcesdelogicielsoujustefairelamisejourdevoslogiciels. InstallonsleserveurSambaquenousavonsvolontairementoublilorsdel'installation.OncliquesurRpmDrake: installationdepaquetageslogicielsetontapesambadanslacasederecherche.Ondisposealorsd'unchoiximpression nantdelogicielscontenantlemotsamba!Onvacochersambaserveur.Cetteactionouvriraunefentrepournoussigna lerqu'ondoitinstallerun(des)autre(s)rpmpourqueleserveurpuissefonctionner:onacceptecetteobligation.On cliquesurinstallerettoutdoitbiensepasser!Aprs,onfermeRpmDrake.Laprocdureestsemblablepourenleverdes rpm.Cecisefaitautomatiquementcarlesystme unebasededonnesquicontienttouslesprogrammes(rpm)dispo niblessurlesmdiasd'installation. Onpeutrajouterdessources(denouveauxmdiaavecd'autresprogrammes).Pourfairececi,allonsvoirlesite: http://easyurpmi.zarb.org/?language=fr.Rajoutonsdessourcesdisponibles,commelessourcespfl,(onpourraenligne decommanderegarderlerpertoire/var/lib/urpmi/etlerpertoire/etc/urpmi).Dansmcc,toujoursmenugestion nairedelogiciels,oncliqueGestionnairedesdptsdelogiciels:choisird'o sonttlchargsleslogiciels.L,on peuttravaillersurlessourcesaveclesboutonsdegauche.RegardonsleboutonAjouter....Casecomplique!Queditle sitequenousregardons?Ildonnesimplementunelignedecommande!Profitonsen,passonslalignedecommande! ii) Avecdebian d) Enlignedecommande i) AvecMandriva Pourtravaillersurlesrpm,ilfautavoirunshellaveclesdroitsadministrateur. Onrentreleslignesdecommandeproposesparhttp://easyurpmi.zarb.org/?language=fr.Unlongtlchargement commence:lesinformationssurlesdonnesdisponibles.Onouvredoncunautreshellencliquantsurlapageblanche dessineenbas gauchedelafentredeshell.Onselogesousrootdessusetoncontinuedetravailler.Alafindutl chargement,vouspouveztoujoursretournersousRPMDraketvoirleslogicielsdisponiblesautomatiquement:tapezpar exempleDVDdanslarecherche... EnlignedecommandeoninstalleLinNeighborhood:urpmi --auto-select LinNeighborhood.L'optionauto-selectapermislaslectiondetouslesrpmdontdpendLinNeighborhood.Ilexisted'autresprogrammespour grerlesrpm:fatesrpm + tabainsiqueurpm +tabetregardez.Pourplusd'information,fatesman le_programme_qui_vous_intresse.Parexempleavecrpm -q proftpd,vouspouvezsavoirsiproftpdatinstallavec unrpmetquelestsaversion. Aprscettemanipulation,onpeutfaireunemisejour.Onpourraitpasserparlemodegraphique,maisonvares terenlignedecommande.Nousallonscommencerparcrerunalias(raccourci)sousroot:alias maj='urpmi.update -a;urpmi auto-select auto --keep' .Attention,parfois,ilpeut treutiledevrifierlesmis jourpropo ses,danscecas,le--autoestentrop.Nousavonsdfiniunnouveauraccourci.Pourvoirtousceuxquisontdjdfi ni,onpeutfairesimplementalias.Onpeutdfinirautantd'aliasqu'onlesouhaite,onpeutlefaireavecceluil caril serautileparlasuitepourgrerlePCetindispensablepourunegestion distance.Onrajoutedonclalignealias maj='urpmi.update -a;urpmi auto-select auto --keep '(sanslesguillemets)danslefichier.bashrcdela racinedurpertoirepersonnel(derootici).Pourfairelamise jouronattendquetouteslesautresinstallationssoient achevesetontapemaj,notrealias(comparercettemise jour unemise jourd'unsystmeconcurrentpayant :)). Pourenleverunrpm,onutiliselacommandeurpme. Voiraussi:http://www.urpmi.org/fr/index.php ii) Avecdebian Pourcompltementnettoyeretrefaireuneinstallationneufcommes'iln'yavaitrieneuavant:
apt-get clean apt-get --purge remove ulogd apt-get check apt-get install ulogd

22287750.odt

Page28sur141

20/09/09

e) Rparationdelabasededonnesdesprogrammesinstalls Lagestiondesrpmsefaitavecunebasededonnesquicontient lafoislesrpmdisponibles(enfonctiondes sourceschoisies)etlesrpminstalls.Ilssepeutqu'ilyaitunplantagelorsdelamanipulationdecesbasesdedonnes (alimentation,crashdisquesdur...).Labasededonnesestdoncd triore. Lacommandeutiliserest:


# rpm --rebuilddb

Parfoiscecinesuffitpas,l'exprienceditqu'onpeutalorsfaireavantunedesdeux(voirlesdeux?)instructions suivantes:
updatedb rm -fr /var/lib/rpm/__*

voir:http://c.laloy.free.fr/howtos/linux/index_rpm.html Parfois,ilsepeut(sionutiliselaversionletestedeMandriva,commemoi:lacooker),queurpmisoitmort...Heu reusement,ilexisteaussisousMandrivasmart(quivientdeconnectiva)qu'ilfaudraitavoirinstallavantqueurpmisoit casspourl'utiliseraprs:


smart update smart upgrade

Onpeutaussiavoirl'informationsurl'ordredesrpminstalls:
rpm -qa --qf '%{installtime} %{installtime:date} %{name}-%{version}-%{release}\n' | sort -n

f) Comparaisondesystmes:correspondancedescommandesURPMI/APT/emerge NousespronsquecepetittableauvouspermettradepasserfacilementdeMandrivaDebianouinversement. SurGentoo,leparametrenomdupackagepeuttre: unnomsimple(xfree) unnomaveccategorie(x11base/xfree) unfichierebuild(/usr/portage/x11base/xfree/xfree4.3.0r3.ebuild) unpackagebinaireprecompile(/usr/portage/packages/x11base/xfree4.3.0r3.tbz2) unmasque(<x11base/xfree4) Description Installerunpackage Installerunpackagemanuellement, sansgrerlesdpendances Debian aptgetinstallnompa ckage dpkginompackage.deb Mandriva urpminomdupackage rpmivh Gentoo emergenomdupackage

emergenodepsnomdupa ckage aptcachesearchmotcl1 urpmqmotcl1[|grep emergesearchexpressionre Rechercherdespackagesparmotcls [motcl2...] motcl2...] guliere Afficherdesinformationsdtaillessur aptcacheshownompa urpmqinomdupa emergesearchexpressionre unpackage(pasforcmentinstall) ckage ckage guliere aptgetremove[purge] emergeunmergenomdupa Supprimerunpackage urpmenomdupackage nompackage ckage Afficherlalistedespackagesinstalls dpkgl[masque] rpmqa equerylisti\* dpkgLnompackage Afficherlesfichierscontenusdansun equeryfilesnomdupackage dpkgcontentsnompa rpmqlnompackage package ckage dpkgSfichiersiinstall aptfilesearchfichiersi rpmqffichier Rechercherdequelpackageprovientun non siinstall equerybelongsfichier fichier aptfilen'estpasinstaller urpmffichiersinon pardfaut Mettrejourlabasededonnesdespa aptgetupdate urpmi.updatea emergesync ckages Pourmettrejourlespackagesinstalls aptgetupgrade urpmiautoselect Pourmettrejourladistributionvers uneplusrcente,oupourdesmodifica aptgetdistupgrade tionsplusprofondes(Parexemple, XFreeseraremplacparXorg) Mettrejourtouslespackagesdusys aptgetdistupgrade urpmiautoselect emergeuDworld tme fichiercontenantlalistedessources /etc/apt/sources.list /etc/urpmi/urpmi.cfg /etc/make.conf pourmettrejourlabasededonnes modifieravec 22287750.odt Page29sur141 20/09/09

despackages

urpmi.addmedia urpmi.removemedia urpmi.setup(gra phique) lireavec urpmqlisturl Onl'ajoutea /etc/portage/packages.mask avecsaversionprcise (exemple:sionveutavoir Apache1.xetnonpas2.x,on peutmettre>net www/apache2.0dansle fichier).

marquerunpackagepournepasqu'il echonompackagehold| soitmisjour dpkgsetselections

echonomdupaquet >> /etc/urpmi/skip.list

InterfaceGUI synaptic rpmdrake Sources:http://linux.ensimag.fr/urpmiapt.html Misejourd'unedebianautomatiquementaveccronaptouaptcron Ilestbiensurpossibled'installerdesprogrammessansrpm.Certainssontlivrsautoextractablesavecunexcu tablequiposedeuxtroisquestionsavantdes'installer.Souvent,lorsdel'extractionilyadesfichiersdustyleREADME lireavant. Parfois,onnercuprequelessources(c'estdeplusenplusrare),ilfautalorscompilersoitmmeleprogramme. Danscecas,ilfautavoirinstalllesbonslogiciels(uncompilateurC/C++laplupartdutemps)etlesbonneslibrairies.

2) Sanslesrpm

F) Configurationdesserveurs
Quelquesoitlamanipulationquenoussouhaitonsfaireici,ilestINDISPENSABLEd'avoirlesdroitsadministrateurs pourlesfaire. Ilyabiensurdansmccoud'autreslogicielsparfoistrsbienfaitlapossibilitd'avoirdesGUI(interfacegraphique utilisateur)pourconfigurerlesserveurs,maisjepensequ'ilestpluspuissantdelefairelamain.Bienqu'audbutcesoit unpeurbarbatif,finalement,ontrouverapidementquec'estplusrapideetpluspuissant lamain.Unautreintrtest lapossibilitdefairelesmodificationsdistancesansGUI.Nousallonsvoirparlasuiteplusieursexemples. Dsqu'onmodifielesfichiersdeconfigurationlamain,ilnefautpasoublierd'arrteretrelancerledmonasso ci pourquelanouvelleconfigurationsoiteffective/etc/init,d/nom_de_demon restart.AvecLinux,iln'yapas besoind'arrterlamachineetderedmarrerlamachine! Lesserveursderseauetlesservicessontdesprogrammesquipermettentunutilisateurdistantdedevenirutilisa teurdevotremachine.Lesprogrammesserveurssont l'coutedesportsrseau.Lesportsrseaupermettentdedeman der un service particulier un hte particulier et de faire la diffrence entre une connexion telnet entrante et une connexionftpentrante.L'utilisateurdistant tablituneconnexionrseauavecvotremachinepuisleprogrammeserveur, oudmonderseau,l'couteduport,acceptelaconnexionets'excute. Pratiquementchaqueserveurunport,quiluiestattribu.Lorsd'uneconnexionunordinateurhte,ilestnces sairedespcifierl'adressedecethtemaisaussisonport.Lenumrodeportvaspcifierquelservicedecethtevous voulezutiliser.Parexemple,leportpourunecommunicationTelnetest23,cellepourunecommunicationHTTPest80... Maisrassurezvous,lechoixduportestaujourd'huidanslaplupartdescasautomatique. Afindesavoirquelserviceestassociquelportpourvotreordinateur,regarderlefichier/etc/services.

G) Mettreleserveurl'heure
Lanotiond'heurepourdes quipementsinformatiques(serveurs,stationsdetravail,PCs,MACs...)estimportante, neseraitcequepourledatagedesfichiers.Bienqu'utilisantdesoscillateursquartzilfautlesremettrel'heurerguli rementsinonilsdriventcommetoutemontreordinaire.Ceproblmes'accentuedanslecasd'quipementsenrseauqui seretrouventrapidementavoirtousdesheuresdiffrentesbienquepartageantdeplusenplussouventlesmmessys tmesdefichiers... Pourceci,ilexisteleprotocoleNTP(NetworkTimeProtocole)quipermetunordinateurdesynchronisersonhor loge sur un ordinateur de prcision plus lev. Vous pouvez trouver la liste des serveurs franais sur : http://www.cru.fr/NTP/serveurs_francais.html.Attention,vousnepouvezvoussynchroniserquesurdesserveurssecon daires(strate2)carlesserveursprimaires(strate1)sontdestins synchroniseressentiellementlesserveursdestrate2 publics,larigueurdesserveursdesitesimportants(plusieurscentainesdeclientslocaux)maispasdes"petits"serveurs voiredesclientsterminaux... Vousdevezinstallerlerpmntp:urpmi ntpou apt-get install ntpdate puisfaireunemisel'heure: ntpdate ntp.univ-lyon1.fr.Cettemthode,bienqu'efficace,n'estpassatisfaisantecarelledoittreeffectuela main.Nouspouvonsmettrecettecommandedansundesrpertoire/etc/cron.*enfonctiondelapriodederaffraichis sementquenousvoulonsavoir. 22287750.odt Page30sur141 20/09/09

VoirauXVII)laconfigurationd'unserveurntpetplusd'informationssurlesujet. http://alexandre.alapetite.net/iupgmi/ntp/

H) Plantages?
http://petitjournal.org/index.php?page=5035ethttp://www.linuxfrance.org/article/cesar/index.php?page=5035 Poursortirdesplantages(souventdusauserveurXouauxapplicationsgraphiques)nousdisposonsdeplusieurs possibilits: RevenirdansunefentretexteavecCtrlAltFX(Xentre1et6) sileplantageduserveurXplantemmeleclavier:unsshpartird'unPCvoisin Ilresteaussiunesolution...pourviterleRESETsauvage,lesMagicSysReq (optionCONFIG_MAGIC_SYSRQ=ydanslaconfigdunoyau) ALT+ToucheSysteme(Impr.cran)+R() ALT+ToucheSysteme(Impr.cran)+S(synchrodesdisques) ALT+ToucheSysteme(Impr.cran)+E ALT+ToucheSysteme(Impr.cran)+I ALT+ToucheSysteme(Impr.cran)+U(dmontage) ALT+ToucheSysteme(Impr.cran)+B(reboot) Pourrsumer,encasdeplantagegravedevotremachine,ilsuffitdefaire [Alt][Syst][s] pourrefermerles fichiersouverts(onentendledisquedurtravailleruncourtinstant),suivid'un [Alt][Syst][u]pourdmonterlespar titions,puis [Alt][Syst][b]pourredmarrer... (descriptionpluscompltesur/usr/src/linux/Documentation/sysrq.txtsilessourcesdunoyausontinstalles). UnedesraisonsdeplantagesrguliersavecerreursurlespartitionsdesdisquesdurspeuttreunebarrettedeRAM dfectueuse.Pourtestercela,vouspouvezinstallermemtest86:urpmi memtest86quis'excutelorsduboot(choix proposparLILOouGrub).Ilestaussipossiblequeledisquedursoitmort,avantdelejeteressayeztoutdemmeunfor matagebasniveaududisqueduraveclformatparexempleouunultilitairedugenreultimatbootcd:http://www.ulti matebootcd.com/.

1) Ensortir

2) Pourquoi?

I) Exercices
1)Configurervotresystmeafinqu' lacrationdechaqueutilisateur,ilaitunrpertoire~/public_htmlquise credanssonrpertoirepersonnel. 2)Vrifierl'installationdeGimp2.L'installers'iln'estpasdjl. 3)Mettrevotreordinateurl'heureetautomatisercettemisel'heureunefoisparjour.

22287750.odt

Page31sur141

20/09/09

VI) Lerseau
http://www.cryptos.ch/spip.php?article38 ifupeth1:lancerl'interfaceeth1 ifdowneth1:arrterl'interfaceeth1

A) Lesadressesrseau.
Ilvafalloirattribuerune"adresse"unique unecarterseauafindepermettreauxordinateursdecommuniquer. Cetteadressecorrespondunenorme(IPv4)dfiniedanslesprotocolesdecommunicationTCP/IP .Elleestconstituede 4sriesdaumaximum3chiffressparsparunsimplepointetallantde0255,commececi: xxx.xxx.xxx.xxx Enfaitonnutilisepas255quisertdemasqueet0nonplusdailleurs,donconvade1254. Dansunrseau,unordinateurestdoncdsignparladresseattribuesacarteethernet. Certainesadressessontrservescertainsusages.Parexemple"127.0.0.1":ilsagitdeladressede"bouclage"ou "rebouclage"etreprsentelordinateurluimme.Lesadressessontrpartiesen"classes".Uneclassedadressesestrser veauxrseauxlocauxcestdiredesadressesnedevantpastrediffusessurInternet. Lesclassespeuventtre10.0.0.010.255.255.255(10/8prefix),172.16.0.0172.31.255.255(172.16/12prefix) et192.168.0.0 192.168.255.255(192.168/16prefix).Cest192.168.0.0dontonseservira.Elleestrpertoriecomme "classeC".Onnutilisepasuneadressequiseterminepar0pouradresserunemachinecarcetteadressedsignelerseau luimme.Ainsidanslerseau192.168.0.0lapremireadresseutilisableest192.168.0.1etladernire192.168.0.254 Attentiondautresadressesouclassessontrserves: Lesdtailsparici,parletparlaussi Revenonsnotrepetitrseau.

B) Attribueruneadresselacarteethernet.
Lapremireinterfacerseaudel'ordinateurseraappelesousLinux"eth0",ladeuxime"eth1"etc...Nousallons doncattribueruneadresselocale(parexemple192.168.0.1)eth0,notrecarteethernet. Ouvrirunterminal,passersousroot:
$ su Passwd:xxxxxxxx # ifconfig eth0 192.168.0.1 netmask 255.255.255.0

Cestfait,siontape(sousroot)"ifconfig"onpeutvoirsesdiffrentesinterfacesrseauetleursconfigurations.Pour quellessoientconservesauredmarragedelamachineilfaudraquecelasoitinscritdfinitivementdansunfichierde configuration:voirleparagraphe"5.Lesfichiers" OnpeutfairelammechosesousMandrivaenpassantparleCentredeContrle>RseauetInternet>Re configureruneinterfacerseau.Dans"priphriqueslectionn"choisireth0,danslonglet"TCP/IP","protocole"choisir statique,remplirlechampadresseavec192.168.0.1 (dans notreexemplemaisonpeutenprendreuneautre),dans "masquedesousrseau"ondoitavoir255.255.255.0 etdans"passerelle"rien,pourlinstantnousnavonspaspartag notreconnexioninternet.Onpeutallerdanslonglet"options"pourchoisirlesoptionsquinousconviennent;danslon gletinformationonpeutlirelesrenseignementssursacarteetplusparticulirementsonadressematrielleouadresse MACquiestuniquepourchaquecarte(ifconfigdonnecerenseignementsous"HWaddr").Ok.Lefichierdeconfiguration estalorscrit.

C) Lesfichiers
Onpeutvrifierqueceparamtrageserabienprisencompte(etconserv lorsduredmarrage)danslefichier /etc/sysconfig/networkscripts/ifcfgeth0(pourlacarteeth0,ifcfgeth1pourlacarteeth1etc...).Ildoitressemblercela (onpeutvidemmentleremplirlamainsionnutilisepaslecentredecontrledeMandriva,leslignesmarquesdun #sontdescommentaires):
networkDEVICE=eth0 BOOTPROTO=static #protocole statique par opposition DHCP qui ngocie seul l'attribution des adresses IPADDR=192.168.0.1 #adresse ip choisie

1) SousMandriva

22287750.odt

Page32sur141

20/09/09

NETMASK=255.255.255.0 # c'est le masque de sous-rseau, il comporte les 254 adresses de cette classe. NETWORK=192.168.0.0 # c'est le rseau lui-mme d'ou le 0 la fin. BROADCAST=192.168.0.255 #diffusion en franais. Indique en liaison avec le masque de sous-rseau que la plage de diffusion se fait pour les machines 192.168.0.1 192.168.0.254 ONBOOT=yes # on lance l'interface au dmarrage HWADDR=xx:xx:xx:xx:xx:xx # adresse MAC METRIC=10 # etc... selon les options choisies

http://linux.developpez.com/faq/?page=configdebian#debnetconf http://www.debian.org/doc/manuals/reference/chgateway.fr.html Pourtoutemachinesituedansunrseaulocalouderrireunrouteur,laconfigurationpasseprincipalementparle fichier/etc/network/interfacesdontvoiciunexemple:


auto eth0 iface eth0 inet dhcp pre-up ifconfig eth0 hw ether 00:60:08:11:51:D7 up /etc/init.d/firewall start auto eth1 iface eth1 inet static address 192.168.2.1 netmask 255.255.255.0 broadcast 192.168.2.255

2) Sousdebian

Chaqueinterfacerseaudoit treactiveparlaligne"autoethX".Cefichierestpourunepasserelle,internet tant sureth0etlerseauinternesureth1.Les2exemplesprsentsmontrentuneconfigurationenIPstatiquepoureth1,les paramtresparlentd'euxmmes,eteth0estquantelleconfigureenDHCPpouracqurirsesparamtresautomatique ment.L'interfacelocalequant ellealaconfigurationparticulire"loopback".Laligne"up"suiviedunomd'unscriptip tablespermetdedmarrerautomatiquementlefirewalldsquel'interfacerseauestconfigure,cequipermetd'avoir uneprotectionimmdiateetdenepaslaisserlerseauuneseulefractiondesecondesansdfense.C'estlemeilleuren droitpourplacervotrescriptiptables.Pluttqued'diterlefichierlamain,vouspouvezlancerl'assistantdeconfigura tionenmodeconsoleparlacommandedpkg-reconfigure etherconf. Ilyaaussiaveclescommandesethtools(apt-get install ethtool)miitool(apt-get install nettools) nettools)etmiidiag(apt-get install mii-diag). Sionreoitinternetparuneinterfaceconfigureenstatic,alorsilestimportantdemettreenparamettreuneautre lignequidfinilerouteurpourallerverslenet(ici192.168.1.1):
gateway 192.168.1.1

Unefoislefichierinterfacesmodifi,vousdevezrinitialiserlerseauparlacommande /etc/init.d/networking restartpourquelanouvelleconfigurationsoitpriseencompte.

PouruneconfigurationenIPstatique,n'oubliezpasd'indiquerlesserveursdersolutiondenomdanslefichier /etc/resolv.conf(cf.Q/Rsurlaconfigurationgnraledurseau). Danslecasd'uneconnexion PPPoE (parexemplesivotrecarterseauestdirectementconnecte unmodem ADSL),utilisezlescriptpppoeconfquicriralesbonnesoptionsdanslesfichiersdeconfigurationadquats.

D) Unnomdhte
Pourchangerlenomdelamachinejusqu'auprochainallumage:
hostname ton_nouveau_nom

22287750.odt

Page33sur141

20/09/09

Seulement anestpastout,sionveutconservernotrenomdhtedansnotrepromptetnepasseretrouveravec un"localhost"auprochainredmarrageilfautaffecterlamachinelavariableHOSTNAME. onvadonclefaire(sousrootaveclditeurdevotrechoix)danslefichier/etc/sysconfig/networkcommececi (#indiquedescommentaires)


HOSTNAME=serveur.chezmoi.fr #voici la ligne ajouter NETWORKING=yes #a y tait dj

1) SousMandriva

Onenregistre(attentionilestprudentavantdemodifierunfichierdenfaireunecopieavecuneextension*.bakou *.old:encasderreurilserafacilederevenirenarrire). DanslesnouvellesversionsdeMandriva(2007etplusrcent),onpeutmodifierlefichier/etc/rc.d/rc.sysinit:


#HOSTNAME=`/bin/hostname` HOSTNAME=portable /etc/sysconfig/networkestprioritaire.

On commente la premire ligne pour la remplacer par la seconde. Cependant, une modification dans Onrelancelesservicesrseaux(toujourssousrootbiensr):
# service network restart

Vouspouvezconstaterquenouvrantuneconsolelinviteachangetcontientdsormaisvotrenomdemachine.Si vousredmarrezvousconservezcenom.Lacommande"hostname"permetaussidafficherlenomdhtedfinidansla variableHOSTNAME. tester: Bon je fais un copier-coller de la console de ma machine, sans relance de session, sous root pour avoir tout (c'est rigolo) : *********************************** [root@gaia andre]# /bin/hostname gaia.terre [root@gaia andre]# /bin/hostname essai.bete [root@gaia andre]# /bin/hostname essai.bete [root@gaia andre]# cat /etc/HOSTNAME gaia.terre **************************** mais c'est pas tout : ***************************** [root@gaia andre]# env | grep -i hostname HOSTNAME=gaia.terre [root@gaia andre]# hostname essai.bete ********************** retour au point de dpart : ********************** [root@gaia andre]# /bin/hostname gaia.terre [root@gaia andre]# hostname gaia.terre [root@gaia andre]# cat /etc/HOSTNAME gaia.terre *****************

Pourdebian,voir:/etc/hostnamequinecontientqu'unmot,lemonduPC!

2) Sousdebian

E) LesadressesdesPCdurseau
EnpratiqueetpourlasuiteilseraitutiledeconfigureraussiunnomdemachineounomdhtepourlesPCdur seau.Celuicisetrouvedanslefichier/etc/hostsetseprsenteen3zonesainsi:
127.0.0.1 'nom' 'alias'

"nom"correspond"nom_de_machine.nom_de_rseau.nom_de_domaine";"alias"estgnralementlenomseulde lamachine.Lenomderseaupeuttrecequonveutdanslamesureosonutilisationnestquelocale. 22287750.odt Page34sur141 20/09/09

On peut modifier ceci directement sous root en ditant le fichier /etc/hosts (chaque zone est spare par un espace) ou avec le centre de contrle > Rseau et Internet > grer les dfinitions dhtes. OnslectionneladresseIPpuisonmodifielenomdhteetlesalias(interfaceavecplusieurschampspourfaciliterles choses),parexemple
127.0.0.1 localhost.localdomain localhost # cas d'une machine non connecte en rseau

Ilpeutyavoirplusieurshtes:127.0.0.1(labouclelocale)seraappelelocalhost.localdomainaveccommealias localhost;192.168.0.1(ladressedenotreinterfacerseaueth0seraappeleparlenomdenotremachinedansnotre rseauetdomaine.Uneseuleinterfaceparligne.Parexemple:


127.0.0.1 localhost.localdomain localhost #notre carte rseau(eth0) qui sera aussi le nom de notre serveur sur le rseau. 192.168.0.1 serveur.chezmoi.fr serveur #etc... pour les autres machines du rseau en utilisant l'adresse IP attribue leur carte rseau et leur nom d'hte complet.

Onfaitlammechosepourlesdiffrentesmachinesdenotrerseauen vitantbiensrdeleuraffecterlamme adresse et le mme nom de machine ( part localhost qui correspond la bouclelocale: unemachineest toujours 127.0.0.1localhostpourellemme).Ilseraitenrevanchelogiquedansnotrecasdeleuraffecterlesmmesrseauetdo maine.Parexemplepourlapremiremachine:
#La boucle locale 127.0.0.1 localhost.localdomain localhost #Carte rseau et donc nom de cette machine sur notre rseau priv 192.168.0.10 client1.chezmoi.fr client1 #Le serveur 192.168.0.1 serveur.chezmoi.fr serveur # etc... pour toutes les machines du rseau.

anestbiensrpasindispensablemaisavatrepratiquepournommerlesmachines"humainement"dansunr seau,parcequefranchement192.168.0.1,192.168.0.10etc...onpeutconstaterquelesprithumainnestpastrsfort mmorisercegenredetruc.Cest celaquesertlefichier/etc/hosts,cefichierdevra tredupliqu surtouslesordina teursdurseau.Cesticiquonlisteralesautresmachinesfaisantpartiedenotrerseaudoncautorises.Unelignepar machineencommenantparladresseetcecisurchaquemachinedurseau.Nous(leshumains)pourronsainsi,grce cettecorrespondance,dsignerlesmachinesparleursnomsetpasuniquementparleursadressesIP . Onpeut galementvoirdesfichiershosts.denyethosts.allowquipermettentdaffinerrespectivementlesinterdic tionsetautorisationsdeconnexions,nousaurontloccasiondenreparlerparlasuite. Unedernirechose:sinousconsidronsquenotremachine192.168.0.1estcellequivacontenirlesfichierspar tageretquenousutilisonsdonccommeserveur,lesautres tantclientes,ilestprfrabledaffecter cettetchelama chinelapluspuissante. Pourvrifiersilerseauestfonctionnelonutiliselacommandepingdansunterminalpourvoirsilesmachinesr pondent:
$ ping 192.168.0.1

Etainsidesuitepourlesautresmachines.Pourarrterleprocessus[Ctrlc]. Voilunefoiscelafaitondevraittreprtpourchoisirunprotocoledecommunicationetlemettreenplace. IlestaussipossiblededfinirunserveurDNSpourlerseaulocal.Cettemanipulation,bienquepluslourde mettreenoeuvre,simplifieralamaintenancedurseau.


$ nmap -sP 192.168.0.*

CettecommandevousinformeradetouslesPCprsentssurvotrerseau,

F) Changerlamacadresse
http://newbie.opentech.be/forum/viewtopic.php?t=44 Pourcertainesraisonstoutfaitlouable,ilpeutparfoistrencessairededevoirchangerlamacadressedesacarte rseaux. Avecdebian,voilacommentchangercelaaudmarrageetdoncfaire"commesi"lechangement taitdfinitifen utilisantladirectivepreupde/etc/network/interfaces:

22287750.odt

Page35sur141

20/09/09

# le fichier /etc/network/interfaces auto eth0 iface eth0 inet static pre-up ifconfig eth0 hw ether 0A:0B:AA:89:68:34 address 192.168.0.10 netmask 255.255.255.0 gateway 192.168.0.1

22287750.odt

Page36sur141

20/09/09

VII) ftp

A) Laconfigurationduserveur
ftpestunprotocoledetransfertdefichiers(FileTransfertProtocole)quipermetd'changerdesfichiersentreordi nateurs. Leserveurftpseconfigureaveclefichier /etc/proftpd.confcarnousavonschoisileserveurftpproftpd.Ilexiste aussiwuftpquiavaitplusdefaillesdescurits.Lerpmtantdjinstall(encasdebesoin:urpmi proftpd,onn'a plus qu' configurer le systme. puis relancer le dmon : /etc/init.d/proftpd restart( Utilisation: /etc/init.d/proftpd{start|stop|status|restart|reload|resume|suspend}). Parfois,lespersonnesauxquellesondonneunaccsftpn'ontpeuttrepasbesoind'accder d'autresservicessur lePC.Parexemple,ellesn'ontpeuttrepasbesoindeseloger,d'avoiraccslalignedecommande.Parscurit,onpeut doncleurenlevercedroit.Cecisefaitenchoisissantunshellspcial: /bin/false.Etpourquecetteoptionpuissese paramtrerenlignedecommande(sansrentrermanuellementdanslefichier/etc/password),ilfautrajouterlaligne /bin/falsedans/etc/shellsiellen'yestpas. Pour plus de renseignements sur , voir /etc/proftpd.conf :http://linux.tnc.edu.tw/techdoc/proftpduserguide/user guide.htmlouhttp://matthieu.bouthors.org/wiki/doku.php?id=linux:proftpd Voiciunexemplecommentdefichier:
# Cette ligne, comme toutes celles qui commencent par un dise (#), est un commentaire # Les commentaires seront placs devant les paramtres # Le nom du serveur. C'est le nom qui s'affiche lors de la connexion d'un client. ServerName "Troumad" # Le dmon ftpd sera toujours actif et c'est lui qui rpondra aux sollicitations des clients FTP. # Un autre rglage pourrait tre xinetd pour que ce soit xinet qui, # la demande du client ne rveille le dmon. ServerType DefaultServer AllowStoreRestart Port Umask MaxInstances User Group <Limit LOGIN> DenyAll </Limit> <Directory /*> AllowOverwrite </Directory> #Pour permettre aux "anomymes" de se connecter descommenter les lignes suivantes #<Anonymous ~ftp> # configuration de base, permettant le tlchargement partir du rp. /var/ftp # User ftp # Group ftp # UserAlias anonymous ftp # MaxClients 10 # RequireValidShell off # 10 connexions maxi en anonymous on # personne # c'est juste une protection... standalone on on 21 022 30 nobody nogroup # Qui peut faire du ftp? # c'est pour des htes virtuels je/nous n'en sommes pas l. # C'est pour autoriser les clients reprendre un tlchargement vers le serveur. # on pourrait changer le port, mais bon..., c'est le port 21 qui normalement sert au ftp # Umask 022 est un bon standard : On enlve les droits d'criture au groupe et aux autres # Nombre limiter pour la scurit # L'utilisateur normal est nobody, son group est nogroup. nobody est fait pour a.

AllowGroup ftp # sauf les membres du groupe ftp # les clients authentifis ont le droit de mettre jour leurs fichiers

22287750.odt

Page37sur141

20/09/09

# AnonRequirePassword off # pas de mots de passe valide # <Limit WRITE> # DenyAll # sans droits d'criture. # rpertoire de dpot # on ne peut pas lire # </Limit> # <Directory depot/*> # # # # # # <Limit READ> DenyAll </Limit> <Limit STOR> AllowAll </Limit> # mais crire

# </Directory> #</Anonymous> # Needed for NIS. PersistentPasswd AccessGrantMsg DeferWelcome ServerIdent AllowForeignAddress off "Bienvenue %u chez Troumad" off on on "Serveur FTP Troumad prt" # Message de bien-venue lors de l'identification (%u donne le nom de l'utilisateur)

# Message qui s'affiche en ligne de commande au dbut de la communication

# Chemin par dfaut pour tous (personne de dsign) sauf moi (il y a un '!' devant mon nom) # on peut mettre aussi bien des groupes que des utilisateurs. # Tous, sauf moi, auront donc un chemin par dfaut le rpertoire public_html dans le rpertoire # personnel, et ne pourront voir ce qu'il y a plus vers la racine. DefaultRoot ~/public_html !troumad DefaultRoot / troumad

Nepasoublierderelancerledmonaprschaquemodificationdufichierdeconfigurationafinqu'ellessoientprises encompte.

B) CertificatSSL
http://www.modssl.org/docs/2.8/ssl_faq.html#ToC27 http://lealinux.org/reseau/proftpd.html enpremierlieuiltefautcrerunCA: 1)mkdir/var/myca cd/var/myca 2)crerunnouveauCA: /usr/share/ssl/misc/CA.shnewca celavacrerdemoCA/cacert.pemetdemoCA/private/cakey.pem(certificatCAandclefprive) 3)FaireleCSRduserveur: opensslreqnewkeyrsa:1024nodeskeyoutnewreq.pemoutnewreq.pem 4)signeraveclecertificatCA: /usr/share/ssl/misc/CA.shsign 5)Puisdeplacerlescertificatsdanslesrepertoirevoulus: cpdemoCA/cacert.pem/usr/var/proftpdata/cacert.pem %mvnewcert.pem/usr/var/proftpdata/servercrt.pem %mvnewreq.pem/usr/var/proftpdata/serverkey.pem %chmod400/usr/var/proftpdata/serverkey.pem Rpterlestapes3),4)et5)pourleclientetletourestjou 22287750.odt Page38sur141 20/09/09

C) gproftpd
Il existe une interface graphique pour proftpd : gproftpd. Elle s'installe avec urpmi gproftpd et se lance pargproftpd.Sonutilisationsemblesimplequandonsaitcequ'onsouhaite.

D) Manipulation
Montervotreserveurftp.Donnerledroitd'accsauserveurqu'unseulgrouped'utilisateurs.Fatesquecegroupe aitaumoins2utilisateurs:vousetunautre.Donnezvousl'accsftpsurtoutl'ordinateuretauxautres,uniquementau rpertoirepublic_htmldeleurrpertoirepersonnel(enconfigurantcorrectementleserviceftp).

22287750.odt

Page39sur141

20/09/09

VIII) ssh

A) Prsentation
Toutd'abord,qu'estcequessh.Principalementcesontdeuxexcutables,unserveur(sshd)etunclient(ssh),qui permettentd'ouvriruneconsoledistante(lamaniredetelnet),demanirescurise.DautrepartIlpermetgalement lacopiedefichierd'unemachineuneautre(sanspartagededisque!)l'aidedescp,letunellingscurisdeportTCP, etpeuxmmecompresserlesdonnesainsitransmisent(utilesurdeslignes faibledbit)ouredirigerlesrequtesX, permettantparlmmeaffichaged'uneapplicationsurunemachinedistante. SSHsignifieSecureSHell.C'estunprotocolequipermetdefairedesconnexionsscurises(i.e.cryptes)entreun serveuretunclientSSH.NousallonsutiliserleprogrammeOpenSSH,quiestlaversionlibreduclientetduserveurSSH. Unserveursshesttrsimportantcarilpermetdeprendrelecontrledelamachinedistance:d'avoirlamainen lignedecommande.Ilyaaussileprotocoletelnetquimarchetrsbienmaispourdesraisonsdescurit,ilestdevenu obsolte.sshestchoisicarlestransfertsdedonnessontcods:lesmotsdepasseainsiquelesinformationsnecirculent pasenclairsurlerseau. Commeonl'avucidessus,sshpermetdeseconnecterunemachinedistante.Celancessitedoncuneidentifica tionetuneauthentification(uncomptevalidedoitdoncexistersurlamachinedistante).

B) Installation
Pourl'installer,ilfautfaireurpmi openssh-serverouurpmi ssh-server. Lefichierdeconfigurationduserveurest/etc/ssh/sshd_config,celuiduclientest/etc/ssh/ssh_config.Le dmonest /etc/init.d/sshd (Utilisation: /etc/init.d/sshd{start|stop|restart|reload|condrestart|sta tus}).Voiciunexemplecomment:
#Port 22 # port par dfaut Protocol 2,1 # choix entre les protocoles 1 et 2 PermitRootLogin no # surtout interdire root de pouvoir faire directement un accs en ssh # On peut tout de mme prendre le contrle administrateur en faisant su # ceci est plus scurisant car le su laisse plus de trace dans les log X11Forwarding yes # on peut renvoyer l'affichage UsePrivilegeSeparation yes #Compression yes # en plus d'tre cod, le ssh est comprim. # ssh offre en plus la possibilit de faire du sftp, un protocole semblable ftp, # mais cette fois, c'est cod et compress Subsystem sftp /usr/lib/ssh/sftp-server # Une protection pour ne permettre l'accs qu' certaines personnes en ssh. #DenyGroups * # interdire tous les groupes cits #AllowGroups * # permettre tous les groupes cits, ceci interdit laccs aux autres #DenyUsers * # interdire tous les utilisateurs cits, les autres sont autoriss AllowUsers troumad cjm # cette ligne ne permet qu'aux deux comptes cits de pouvoir se loger # et du mme coup elle interdit aux autres laccs au serveur ssh # donc le DenyUsers devient inutile (comme avec les groupes)

Nepasoublierderelancerledmonaprschaquemodificationdufichierdeconfigurationafinqu'ellessoientprises encompte. Pourutiliserssh,ilfautenlignedecommandefairessh login@serveur.Aprsavoirtaplemotdepasseona unelignedecommandesurleserveur.

C) Utilisation
Pourl'identification,l'identitducompte(nomd'utilisateur)utilisersurlamachinedistanteestenvoyauserveur distant(nomd'utilisateur).Pardfaut,l'identit delamachineclienteestutilis,sinonpourenstipulerun,ilyadeux maniredel'crire(quisont quivalentes),soitparl'optionl,soitdansl'URL(adresse)duserveuravecun@( la maniredescourriels).Lesdeuxexemplescidessoussontdoncidentiques:
ssh -l jean monserveur.com ssh jean@monserveur.com

Pourl'authentification,ilya(aumoins)deuxmthodes.

22287750.odt

Page40sur141

20/09/09

Lapremire,classique,etquecertainsd'entrevousutilisentdj,consistedonnerlemotdepasse.Leserveursshd vautilisercemotdepasse(quitransitedemanirecrypte,bien videmment)pours'identifiersurlesystmedistant. Celasignifiedoncquevouspouvezavoirdesidentitsetdesmotsdepassesdiffrentssurlesdeuxsystmes.L'avantage, c'estquemispartlepostitcollsurvotrecran,personnenedevraitarriverdcouvrirlemotdepasse,mmeencas decompromissionduposteclient(leposteserveuroudistant,c'estuneautreaffaire).Ledsavantage,c'estquecelade mandedesesouvenird'unnimemotdepasseetbienvidemmentuneinteraction(quiddesscriptsetc...?).Pourpalier ceproblme,ilyauneautremthoded'identification. Nb : comme je travaille sur plusieus PC, afin d'indentifier facilement sur lequel je suis, j'ai modifi le fichier /etc/bashrcafinqu'ilmetteencouleurlenomduPC:http://troumad.free.fr/Linux/prompt.zip.Cefichierestauto matiquementprisencompteparvotrefichier.bashrcgrceauxlignessuivantes:
# Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi

D) Ouverturedesessionsgraphiques
SidansunefentretextelogeparsshsurunautrePC,onlanceuneapplicationgraphique,cettedernirevas'af fichersurnotrecranetseraexcutersurl'autrePC.Cecipeuttrepratiquepourexcutermccafinderparergraphi quementunPCdontl'interfacegraphiqueestinactive(windowmanagerplant,serveursanscran...).Lerseauinterne doittreprotgsiontravaillesoustelnetcartoutpasseenclair.Defaongnral,ilestconseill,mmepourunrseau internedetravaillersousssh. Pouryarrivondoitconfigurerleserveurenactivantcettelignedans/etc/ssh/sshd_config:
X11Forwarding yes # on peut renvoyer l'affichage

Leclient,luidoitavoirlalignesuivantedans/etc/ssh/ssh_config:
ForwardX11 yes

Cecipeutsefairemmeendehorsd'unrseaulocal,maislavitessedeconnexionlimitelestransfertsdemanire radicale!

E) Gnrationdespairesdeclefprive/publique
http://www.linuxfrance.org/prj/edu/archinet/systeme/x2500.html Lamthodeparclefpublique(laserrure),etclefprive(laclef).Danscemode,laclefpubliqueestrellementl'i maged'uneserrure,ilfautlacopier(oul'installer)surleserveurdistant.Laclefpriveseraensuiteutilise(commeune clefsuruneserrure)pours'identifierauprsdeceserveur.Ilestdoncimportantdeprotgersaclefprive.Pourgnrer unepairedeclefprive/publique,ilfaututiliserl'utilitairesshkeygen.Lacommandesuivantedevraitcrerunepairede clefpublique/priversade1024bits(pardfaut):
ssh-keygen -t rsa

Dscemoment,deuxfichierssontcrsdanslerpertoire(cach)$HOME/.ssh: id_rsa,quicontientlaclefprive id_rsa.pubquicontientlaclefpublique IlestdoncIMPORTANTquecerpertoire(.ssh)soitaccessibleenlecture/critureUNIQUEMENTparl'utilisateurde cerpertoire,etinterditauxgroupes(group)etauxautres(others)!Sansquoiilestfaciledevolerlaclefprive. Bon,petiteprcisionici.Lorsdelagnrationdelaclef,sshvavousdemanderune"passphrase".Cettepassphrase vastreutilisepourCRYPTERlaclefprivAinsi,mmeencasdecompromissionduclient,oudevoldelaclefpublique, cettederniren'estpasutilisablesanslapassphrase.Sionentrepasdepassphrase,alorslaclefpriven'estpascrypteet estdonclisiblepartoutunchacun,sicechacunaccs,dunemanireouduneautre,aurpertoire $HOME/.ssh.Enre vancheunefoiscrypte,cetteclefestdifficilementutilisablesanslapassphrase.Contrepartieducryptage,sshvaavoir besoindelapassphrasepourdcripterlaclefprive.Nousavonsdoncperdulavantagedelanonutilisationdumotde passepourlidentification?Non,sshagentestvotreamis(man ssh-agentpourplusd'info),ilvagarderlapassphraseen mmoireetl'utiliserpourexpdierlaclefpubliqueauserveur.Voirchapitresuivant:G)SelogguerparSSHsanstaperde motdepasse NormalementchaqueutilisateursouhaitantemployerSSHavecl'authentificationRSAouDSAdevracrerunefois pourcrerlaclefd'authentificationdans$HOME/.ssh/identity,$HOME/.ssh/id_dsaou$$HOME/.ssh/id_rsa: rsa1 crparsshkeygentrsa crelefichier:identity rsa2 crparsshkeygentrsa crelefichier:id_rsa dsa crparsshkeygentdsa crelefichier:id_dsa

22287750.odt

Page41sur141

20/09/09

Jeconseilledecrerles3,aveclammepassphrase,dedonnerlaprioritlaplusfaiblelarsa1,maisd'enavoir unequandmme:ilyaencoredesmachinesunpeuvieillesquinesupportentquea. Pourmodifiervotre"passphrase"suruneclpriveDSA,utilisezlacommande:


ssh-keygen -p -f ~/.ssh/id_dsa

Enrsum,l'ordinateursurlequelonestphysiquementauneclefprive~/.ssh/id_rsaetceluisurlequelonse connecteparsshalaclefpublique~/.ssh/id_rsa.pubqu'onrenomme~/.ssh/authorized_keys. authorized_keys.Cefichierpeuxcontenirplusieursclef,doncsicestcequevousdsirez,ilvoussuffitalorsdy ajouteruneligneaveclecontenudufichierid_rsa.pubaumoyendenimportequelditeurdetexte.Jedonneen exemplel'utilisationdescp,pourlacopiedufichierid_rsa.pud


Pourrcupreruneclefprive: scp jean@nomserveur:/home/jean/.ssh/id_rsa /home/jean/.ssh/ cat /home/jean/.ssh/id_rsa >> /home/jean/.ssh/authorized_keys Il faut aussi renommer id_rsa : mv ~/.ssh/id_rsa ~/.ssh/identity

F) Utilisationdescp
Lacommandescpcopieunfichierversoupartird'unemachinedistanted'unefaonscuris.
# scp user@example.com:/COPYRIGHT COPYRIGHT user@example.com's password: ******* COPYRIGHT 00:00 # 100% |*****************************| 4735

Lesargumentspasss scpsontsimilaires ceuxdecp,avecleoulesfichiersenpremierargument,etladestina tionensecond.Puisquequelefichierestcopi vialerseau,parl'intermdiairedeSSH,unouplusieursdesarguments prennentlaformeutilisateur@machine_distante:<chemin_du_fichier>. L'exempledonnestfaitavecchangedeclef(chapitreprcdent)activpasssh_agent(voischapitresuivant).

G) SeloguerparSSHsanstaperdemotdepasse
Cettesections'adresse ceuxquiutilisentuncoupledeclspubliques/prives,etquiontcrypt leurclefprive avecunepassphrase(c'estlaconfigurationlaplussre).Parconsquent,leclientSSHdemandelapassphrase chaque utilisationdesclspours'authentifier. Pour viterd'avoir tapersystmatiquementsapassphrase,ilfaututiliserssh-agent :ceprogrammetourneen tchedefondetgardelaclefenmmoire.Lacommande ssh-addpermetdedonnersacl ssh-agent.Ensuite,quand vousutilisezleclientSSH,ilcontactessh-agentpourqu'illuidonnelacl. http://www.linuxfrance.org/prj/lfoyer/doc/html/ssh.fr7.htmlouhttp://cert.in2p3.fr/openssh.html Dansuneconsole,ouvrezunscreenavecsshagententchedefond:
% ssh-agent screen

1) Leprincipe

2) Lapratique

Puisdonnezvotrecll'agent:
% ssh-add

Ilvousdemandealorsvotre passphrase.Maintenantquevotreclefa t transmise l'agent,vouspouvezvous connectersansentrerdemotdepasse touteslesmachinespourlesquellesvousavezmisvotrecl publiquedansle fichier~/.ssh/authorized_keys. Attention:cettemanipulationn'affecteraquecetteconsole,paslesautres! Ilfaut aussi configurer correctement le serveurssh. Dans lefichier/etc/ssh/sshd_config, il faut queles lignes suivantessoitdactives:
RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile %h/.ssh/authorized_keys

Ilestpossibledemmoriserlaclefpubliquepourtoutelasession: 22287750.odt Page42sur141 20/09/09

Dans~/.xsessionlancerlewindowmanageravecsshagent(ceciestmisautomatiquementparMandriva!): ssh-agent twm

3) Automatisationenmodegraphique Ilestpossiblequesshagentsoitlancautomatiquementetquevousayezunefentrequis'ouvreaudbutdevotre sessiongraphiquepourdemandervotrepassphrase.Commea,toutvotreenvironnementdetravailconnatvotreclef. Cecirendinutilelasuitedesmanipulationsdecechapitreensimplifiantbienlavie. Audbutdechaquesessionentrerssh-add quienregistrela'passphrase'etdonnel'accslaclefprivepour toutelasession. Ilestgalementpossibled'utiliserlepackagesshaskpass(disponibledansunpackagesparparurpmi ssh-askpass)quioffreuneinviteX11pourdemanderla'passphrase'.Pourcela,dans~/.xsessionlancerlewindowsmanager avecsshagent(startxoubien~/.xinitrcoubien~/.xsession*):
exec ssh-agent sh ~/xsession-twm // le window manager qui sera lanc par le script // xsession-twm sera un fils de ssh-agent

Dans~/xsessiontwm:
ssh-add < /dev/null twm // ssh-add dont l'entre est redirige sur /dev/null // utilise ssh-askpass pour demander la pass phrase pour fournir la clef ssh-agent // lance le window manager

*:Cesfichierssontoptionnels,ilsservent outrepasserlaconfiguration pardfaut(dans/etc/X11/xinit/xinitrc /etc/X11/Xsession)pourunutilisateurparticulier.

4) Automatisationenmodetexte Ilsuffitdemettreleslignessuivantedans~/.bash_profile:
if [ -r $HOME/.ssh/identity -o -r $HOME/.ssh/id_dsa -o -r $HOME/.ssh/id_rsa ]; then if [ ! -d $HOME/.keychain ]; then keychain fi fi

Aprs,ilfautinstallerkeychain:urpmi keychain

H) Quelquescommutateurs
Cette listeesttrs loin dtreexhaustive. Un man ssh ou la lecturede la documentation vous donnerons bien dautrescommutateurscommunssshetscp. Cpermetdecompresserlesdonnes,niveaupardfautmoyen(utilepourbandepassantefaible) o CompressionLevel=X en conjonction avec C permet d'adapter la compression utiliser (0=faible ou nul, 9=forte,pardfaut,ceniveauest5) XpermetderedirigerlesrequtesXduneapplicationsexcutantsurlamachinedistanteverslamachinecliente (connecte) Lpermetderedirigerunport,enconnexionlocale(127.0.0.1)versunautreportdunemachinesetrouvantdans lemmesousrseaudelamachinedistante(voirchapitresuivant).

I) LeTunneling(redirectiondeports)
Leclientdoit treconfigurerpouraccepterletuneling.Ceci se configure dans /etc/ssh/ssh_config en activant la ligne suivante:
ForwardAgent yes

http://slwww.epfl.ch/SIC/SL/Securite/outils/ssh install.html#portforwarding Unautreintrtdusshestdepouvoirfairedutunnelingou portforwarding.Ceciconsisteredirigerunappeltraverslecanal ssh. Pour ceci, partir de HOST1, 'instruction est : ssh -L p1:HOST3:p2 mon_login@HOST2.Cettemanipulationpermeten appelantleportp1'duPCclient(HOST1)d'avoirleportp2deHOST3cequiestintressantsileportp2decePCestpro tgparunfirewall. CecipeutaussitrefaitpartirdeHOST2:sshRp1:HOST3:p2root@HOST1. Biensur,ilfautavoiruncontrleadministrateursurlePCHOST1,donclamanipulation partirdeHOST2est viterpuisqu'ellerequiertdepermettreleSSHentantqueroot. Admettonslecasdefiguresuivant: 22287750.odt Page43sur141 20/09/09

J'aiunemachineserveur(192.168.0.1)surunrseaulocal,tournantPostGreSQLsurleport5432(pardfautpour PostGreSQL).Unepasserellebranchesurl'Internetl'adresseexterne64.32.74.12(l'adresseestinvente!jenesaispas quielleappartient),faittournersshd(leserveur)surleport22(standard).Avecunclientsshilestdslorspossiblede communiquer avec une application cliente PostGreSQL sur le serveur distant d'adresse interne, de manire scurise (ventuellementdecompresserlesdonnes)autraversd'internet.Voicicommentprocder:
ssh -L 5432:192.168.0.1:5432 un_compte_ssh_sur_passerelle@64.32.74.12

Maintenantenconnectantl'applicationclientedePostGreSQLsurlocalhost(ou127.0.0.1),elleseraencommunica tion,transparantepourelle,avecleserveur192.168.0.1setrouvantsurl'Internet64.32.74.12.Enfaitsshvacouterle port5432localement(surl'adresselocalhostou127.0.0.1),toutcequiyparvientestalorscryptetexpdiendirection duport22vers64.32.74.12.Surcettemachine,cesmessagessontdcryptsetexpdi endirectionduport5432vers 192.168.0.1.Lesrponsessuiventlechemininverse. Unautreexemple,soitunemachineNTl'adresse192.168.0.1,alors


ssh -L 135:192.168.0.1:135 nom@64.32.74.12 ssh -L 137:192.168.0.1:137 nom@64.32.74.12 ssh -L 138:192.168.0.1:138 nom@64.32.74.12 ssh -L 139:192.168.0.1:139 nom@64.32.74.12

Uncoupdevoisinagerseaudelamachinedistante,devraisfaireapparaitrelocalhost(127.0.0.1)danslafentre, reprsentantenfaitleserveurNTdistant.

J) IntgrationdeKDE
kdesshpermetdefaireunedemandegraphiquedumotdepassel'utilisateur.Celapermetdecreruneicnepour unutilisateur,etlemotdepasseluiestdemand graphiquement,pluttqueparlouverturedunterminal(ssh tantun outilsenlignedecommande).Lescommutateurssontdiffrentetmoinsnombreux,veuillezvousrfrerladocumenta tion(mankdessh) Konquerorpermetd'avoiruneinterfacedefichiergraphiquepourlamanipulationdesfichier(renommage,copie, suppression,dplacementetc..),surunemachinedistante,enutilisantssh.Pourcefaire,taperdanslaligned'URL(en lieuetplacede file:/qqchose ou http://quqchose)fish://nom_utilisateur_ssh@nom_serveur_ou_adresse_IP:/repertoire. Konquerors'utilisealorsdemaniretout faitstandard,avecmanipulationdesdroits,drag'ndropetc...).Interfacevrai mentbienpratique.

1) kdessh

2) Konqueror

K) sftp
sftp est du ftp sous ssh (dfinition rapide). Pour le permettre, il faut configurer le serveur, fichier
/etc/ssh/sshd_config: Subsystem sftp /usr/lib/ssh/sftp-server

PouravoirunaccssftpunPC,ilfautavoiraccsunshellcequin'estpaslecasduftp.C'estmonavislegros problmedescuritdusftp.Sionlaissel'accsensftpunepersonne,onluilaisseaussil'accsenssh.Letransfertdes donnesestdoncscuris,maislapersonneenface,onnelaconnatpeuttrepas! J'aitrouv uneastuceconsistant empcherlalignedecommande unepersonnedsqu'elleveutafficherson prompt,enfaisantdusshparexemple.Voicile.bashrcdecettepersonne(iln'empchepasd'ouvrirunWM,maisdans ceWM,ilnepeutouvrirdeshell):


if [ "$PS1" ]; then exit fi

Ilexisteunshellscurisnepermettantpasdefairedussh:scponlyqu'ilfautinstalleretdonnepardfautl'u tilisateurdans/etc/passwdenmettantcommeshell:/usr/bin/scponly J'aiaussientenduparld'undummy_ssh_shell,quiseraitunshellnedonnantaccsqu'ausftp,maisjenel'aijamais trouv! Ou en lui crant un shell chroot avec http://www.fuschlberger.net/programs/ssh-scp-chroot-jail/make_chroot_jail.sh et les infos disponibles ici: http://www.fuschlberger.net/programs/ssh-scp-chroot-jail/ 22287750.odt Page44sur141 20/09/09

Il ne pourra pas remonter plus haut que son chroot-jail, en gnral, son home-directory sur le serveur...

L) Astuces
tumodifieslefichier/etc/passwordquicontientlaligne: toto::::/bin/bash en toto::::/bin/su Commecela,ilfautconnatrelesdeuxmotsdepasses(totoetroot)pourseconnecter.

M) Exercice
Faireunserveursshscuris :pasd'accs root,maisuniquement vous.Ouvrezetparamtrezuncomptepour qu'ilnepuissefairedusftpsansfairedessh. Prvoyezettestezlapossibilitd'ouvrirdesprogrammaesgraphiquesdistance. http://sawadka.org/article.php3?id_article=112&var_recherche=ssh

22287750.odt

Page45sur141

20/09/09

IX) samba

A) Exempledeserveur
Sambaestunesuitelogicielslibresquifournitlesmmesservicesdegestionsdedossieretd'impressionqueles clients de SMB/CIFS (clients microsoft). Ceci veut dire que samba permet de partager des ressources sur un rseau commes'iltaitunemachinesouswindows. Ledmonestlesmb.Cettefois,contrairementftp,ssh,ilfautcreruncomptesambaparutilisateur.Onutiliseen lignedecommandesmbpasswd -a username password(jedconseilledemettreicilemotdepasse,autantnepas lemettre,ilserademandensuitesanstreaffichclairementetn'apparatrapasdansl'historiquedescommandes).Pour d'autresoptions,voirman smbpasswordousmbpassword --help. Laconfigurationestdanslefichier/etc/samba/smb.conf. LefichierpardfautdeMandriva9.2estexcellent, maisbeaucouptroplong.Uneexplicationsatisfaisantesetrouveenfaisantman smb.confousurlapagehttp://www. linuxfocus.org/Francais/March2002/article177.shtml.Unlivrecompletenlignesursamba:http://www.oreilly.com/cata log/samba/chapter/book/index.html(jenepeuxtoutdireici!). Voiciunexemple:
[global] workgroup = Maison # netbios name = troumad # inutile, c'est dj le nom du pc! server string = Samba Server %v interfaces = 192.168.1.1 # c'est la carte rseau qui a cette adresse uniquement qui va servir hosts allow = 192.168.1. # uniquement pour les ordinateurs d'adresse Ip 192.168.1.XXX # on peut exclure des machines de l'accs au rseau avec EXCEPT #d'autres possibilits existent : voir le manuel man smb #bind interfaces only = Yes encrypt passwords = Yes log file = /var/log/samba/log.%m max log size = 50 socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 dns proxy = no # guest account = no printcap name = cups printing = cups #local master = yes preferred master = yes domain master = yes domain logons = yes #logon script = logon.bat # ne dcommenter que si un script est vraiment l! # Activer un serveur Wins pour la rsolution des noms NetBios name resolve order = wins lmhosts bcast #wins support = no # si oui, ne pas dclarer l'adresse IP d'une autre machine comme tant serveur Wins # wins server = xxx.xxx.xxx.xxx# accs multi utilisateur # share modes = yes # choisir le mode de scurit : user ou share security = user os level = 60 # assez haut pour tre suprieur aux autres #map to guest = bad user #smb passwd file = /etc/samba/smbpasswd client code page = 850 # pour nos petits caractres franais character set = ISO8859-1 #printer admin = @adm #load printers = yes

22287750.odt

Page46sur141

20/09/09

[homes] # cache les fichiers cachs au sens Linux, commenant par un point hide dot files = yes comment = Repertoire personnel # comentaire read only = No browseable = No create mode = 0700 [partage] # Ce rpertoire aura donc pour nom de partage Partage comment =Partage # Le rpertoire partager est /maison/ftp_fdd path = /maison/ftp_fdd # il pourra tre accessible par tous les utilisateurs public = yes # liste des utilisateurs autoriss (avec ou sans virgule) #valid users = # tout le monde si cette ligne n'est pas mise # A moins de dclarer des utilisateurs interditsd'accs #invalid users = # on pourra y crire (bien sr par ceux qui peuvent y accder..) writeable = yes # les permissions par dfaut des fichiers crs (le mot mode peut tre remplac par mask create mode = 0740 # create mask=770 : droits par dfaut d'un fichier cr sur le partage # directory mask =770 : pareil pour les rpertoires (x est obligatoire pour le propritaire) [printers] comment = All Printers path = /var/spool/samba create mask = 0700 printable = Yes print command = lpr-cups -P %p -o raw %s -r # using client side printer drivers. browseable = No [print$] path = /var/lib/samba/printers write list = @adm root [pdf-generator] # pour avoir une imprimante pdf gratuite... path = /var/tmp guest ok = No printable = Yes comment = PDF Generator (only valid users) #print command = /usr/share/samba/scripts/print-pdf file path win_path recipient IP doc_name & print command = /usr/share/samba/scripts/print-pdf %s ~%u //%L/%u %m %I "%J" &

Pourdespartages,ilestpossibledeserfrerdesgroupesNIS(voirXVIII)serveurNIS)odesgroupesUNIXdfi nissurleserveurssamba.Pourcela,ilfautmettre@(NISou dfautUNIX),&(NISuniquement)ou+(UNIXunique ment)devantlenomdugroupe.Voirman smb.confpourplusdeprcisions. Aprs avoir redmarer le dmon smb : /etc/init.d/smb restart, regardez votre configuration avec : testparm.

22287750.odt

Page47sur141

20/09/09

B) ClientSamba
Ilestentirementpossible unPCsousLINUXdercuprerunpartagewindowscommetoutautrePCwindows. CeciestfaitparleclientSamba.VousavezunexempleauX.B)1)

C) Exercice
Installez un serveur Samba qui ouvre ~/public_html tous les utilisateurs et /home/tous/partage tous les membresd'ungroupe.Cepartagedevraaussiouvriruneimprimanterseaupdf.

D) essayer
Deplus,pourintragiravecundomaine,unsystmeWinNT/2000/XPdoitentremembre.Cetteappartenancese raliseparl'intermdiaired'uncomptedemachine,similaireuncompteutilisateur. Ilfautdonccreruncompte,pourchaquemachinecliente.ExemplepourlamachineclientesousWinXPayant pournomnetbiosposteclient:
useradd posteclient$ -d /dev/null -g machines -c Machine -s /bin/false

Legroupemachinesdoitavoirtpralablementcr(lenomdecegroupeapeud'importance...) Le$quisuitlenomnetbiosesttrsimportant:ilsymboliseuncomptemachine. Cequiaurapoureffetdecrerunelignedanslesfichiers/etc/passwd:


posteclient$:x:510:150::/dev/null:/bin/false /etc/shadow : posteclient$:!!:12352:0:99999:7:::

Heureusement,onpeutralisercettedernireoprationautomatiquementpartirduparamtre; add user script = /usr/sbin/useradd %m$ -g machines -c Machine -d /dev/null -s /bin/false %mtantunevariablercuprantlenomnetbiosdelamachinequiseconnecte...danssmbpasswd Attention,dernirechose,ilyaunemanipulationauniveaudelabasederegistrefairesousWindowsXPafinque cedernierpuisseseconnecteruncontrleurdedomaine: Dmarrer/Excuter/regedit Mettrelaclsuivante1:
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Netlogon/Parameters/requiresignorseal

22287750.odt

Page48sur141

20/09/09

X) httpd
http://tice.edres74.acgrenoble.fr/rubrique.php3?id_rubrique=135

A) Prsentation
UnserveurhttpestunserveurdepagesWEB(html,htm...).OnpeutaussimettreunserveurphpetunautreMyS QLtrsfacilementafindebnficierducoupleapache(php)/MySQL(basededonne).AvecMandriva,lerpminstaller estapache:urpmi apacheouurpmi apache2sicedernierexiste.Sousdebian,ilfautfaireapt-get install apache2 Ledmonduserveurapachesousmandrivaesthttpd:Usage: /etc/init.d/httpd {start|stop|restart|reload|graceful|condreload|closelogs|update|condrestart|status|extendedstatus|configtest|configtest_vhosts|semcleanrestart|debug|show_defines}.SousDebian,c'est/etc/init.d/apache2

Normalement,sansmodificationdevotrepart,lorsdulancementduserveurapache,vousaurezunsiteinternetsur votrePC.L'emplacementdesdonnesdusiteest /var/www/html sousMandrivaet /var/www/apache2default sous Debian. Sur une Mandriva, les fichiers de configurations se trouvent sur /etc/httpd/conf/ et avec debian /etc/apache2 .Cesfichiersparlenttoujoursderpertoiresparrapportlaracinedel'ordinateur. Si vous avez un rpertoire sans fichiers d'entre du type index.php ( indiqus par le champ IfModule mod_dir.cdufichier /etc/httpd/conf/commonhttpd.conf surMandrakeou /etc/apache2/sites-available/defaultsurdebian,ilestalorspossiblequ'unappelcerpertoirelistetouslesfichierscontenusdanscerpertoire.Ceci peut tregnant.Vouspouvezalorsintervenirsurcecomportementenmodifiantlefichierdeconfigurationprcdem mentsitsoitlaconfigurationdelaracinedevotresite,lechamp<Directory /chemin du site>,soitlaracinede l'ordinateur<Directory />leparamtre option surlequelilfautintervenir:Options -Indexes autres_optionsoledclarequel'optionestdsactiveetIndexespermetl'affichage(listing)ducontenudurpertoire siiln'existepasdefichierd'entre. L'optionIndexesestactivepardfautparapache,maislefichierdeconfigurationlivr avecvotreconfigura tionledactivepourMandriva. Jeconseilleaussideredfinirvospaged'erreurafind'enfairedepersonnellespourquevotresystmesoitlemoins facilement identifiable. Un message du genre : Apache/2.2.3 (Debian) DAV/2 PHP/5.2.08+etch7 Server at 192.168.2.1Port80,indiqueraimmdiatementunhackerpotentielquevotresystmeestuneDebianEtchaveclever sionduphpetduserveurDAV .Ilneluiresteraplusqu'faireunerecherchesurd'ventuellefailledescuritsivotresys tme n'est pas jour. Cette modification se fait dans le fichier /etc/apache2/apache2.conf sous Debian et /etc/httpd/conf/httpd.confsousMandrivaauxlignessuivantes:
#ErrorDocument 500 "The server made a boo boo." #ErrorDocument 404 /missing.html #ErrorDocument 404 "/cgi-bin/missing_handler.pl" #ErrorDocument 402 http://www.example.com/subscription_info.html ErrorDocument 404 /index.php ErrorDocument 403 /index.php

1) Petiteprotectionenlecture

CettemodificationpeutaussitreprotgeenannulantousimplifiantlemessageaveclesdirectivesServerSigna tureOffouserveurtokenprod.Voir:http://httpd.apache.org/docs/2.0/mod/core.html#serversignature.

Vouspouvezaussiavoirunsiteparcompte,pourcela,ilsuffitdemettredanslerpertoirepersonneldechaque compte un rpertoire ~/public_html. Le site gnral sera http://adresse, celui de l'utilisateur 'lambda' sur http://adresse/~lambda.L'adressepeuttrel'adressereconnueparleserveurDNS(lenomdelamachine),l'adresseIp etmmelocalhostenlocal. Apartirdelaversion2006: Installation:urpmi apache-mod_userdir Modificationsdanslerpertoire/etc/httpd/modules.d(commelesmodulesengnral)lefichier67_mod_user dir.conf. Sousdebian:
# cd /etc/apache2/mods-enabled # ln -s ../mods-available/userdir.* . # /etc/init.d/apache2 restart

2) Rpertoirepersonnel

22287750.odt

Page49sur141

20/09/09

3) Virtualhost Ilestpossiblequ'unserveurapacherpondeplusieursnomsetdonneunerponsediffrenteenfonctiondunom parlequelilestappel : http://www.lycee.org ou http://www.geii.org.Laredirectionpeutsefaireassezfacilementsi vouspossdezunnomdedomaine(VoirlechapitresurleDNS).Pourdiffrencierlesdiffrentsnoms,leserveurhttpdseconfi gureassezsimplementsousMandrivaalorsquesoussousdebian,cettemanipulationsemblepluscompliquecarlaconfi gurationparatpluspousse,j'enparleraiplusloin.AvecMandriva,danslefichier /etc/httpd/conf/httpd2.conf,il faut enlever les lignes NameVirtualHost, DocumentRoot et ServerName et mettre les lignes suivantes dans /etc/httpd/conf/vhosts/Vhosts.conf(attentionlaligneIncludeconf/vhosts/Vhosts.confdehttpd2.confdoit tredcommente):
NameVirtualHost * # * parce que j'ai une adresse ip qui n'est pas fixe <VirtualHost *> # Premier dfinit : rpond l'appel par mon adresse ip : http://xxx.xxx.xxx.xxx # ainsi qu'a tout autre appel sur le PC non dfini par un virtual host DocumentRoot /maison/bs/Troumad ServerName www.lycee.org </VirtualHost> <VirtualHost *> # lors d'un appel par http://www.geii.org DocumentRoot /maison/geii/public_html ServerName www.geii.org </VirtualHost> NameVirtualHost 192.168.1.1 <VirtualHost 192.168.1.1> # un autre juste pour le rseau local! DocumentRoot /maison/ftp_fdd/public_html </VirtualHost> NameVirtualHost 127.0.0.1 <VirtualHost 127.0.0.1> # pour le localhost : mon site principal, pour le travail DocumentRoot /maison/bs/Troumad ServerName localhost </VirtualHost> <Directory "/repertoire_du_site"> # voir le paragraphe Protection intranet-extranet allow from all order allow,deny AuthType Basic </Directory> # rpond aussi http://www.lycee.org

Avantderelancerledmonapache,onpeutessayerlacommande' httpd2t'quipermetdevrifierlasyntaxedes fichiersdeconfigurationd'apache. Sousdebian,c'estlefichier/etc/apache2/sitesavailable/defaultquicontientunegrossesectionpourlerpertoire /var/www/apache2defaultl'endroitoeststoqupardfautlesiteweb. Comme en plus, j'ai modifi l'emplacement habituel des rpertoires, j'ai du aussi intervenir dans le fichier /etc/httpd/conf/commonhttpd.conf. Le'localhost'achangdeplaceetn'estplus/var/www/html(c'estunconseilpourdesraisonsdescurit),jedois remplacerlesoccurrencesdeDocumentRootquitaient/var/www/htmlpar/maison/bs/Troumad :
# This should be changed to whatever you set DocumentRoot to. # <Directory /maison/bs/Troumad>

4) RpertoiresdessiteswebsurvotrePC

Le rpertoire personnel a aussi chang, je dois changer /home/*/public_html par /maison/*/public_html. Enrevanchepourpouvoirutiliserlephpavecsesdroitsd'crituressur/maison/bs/Troumad,j'aiduattribuerl'ar borescencetouteentire apache:chgrp -R apache /maison/bs/Troumad/*.Cettemanipulation,j'aidulafaire sousroot. 22287750.odt Page50sur141 20/09/09

Documentationsurlephp:http://www.dwam.net/docs/php_fr/ Sivousavezunserveurhttpavecunechargeinhabituelle(faibleougrosse),vouspouvezagirsurlesparamtres suivants(icipouruntroppetitserveur):


<IfModule prefork.c> StartServers MinSpareServers MaxSpareServers 2 1 3

5) Ajusterlacharge

Lesnombressontinitialement5,5et10.Pourunegrossecharge,vouspouvezlesaugmenter.Attention,cesprocess utilisentbeaucoupdemmoire! Sivousavezunintranetetquevoussouhaitezqu'ilsoitvisibledel'extrieuruniquementparmotdepasse,vous pouvezleconfigurercommea:


<Directory /maison/*> Options -Indexes FollowSymLinks MultiViews AllowOverride All Order deny,allow deny from all allow from 192.168.1.1/255.255.255.0 #rseau interne en 192.168.1.X AuthType Basic AuthUserFile /etc/httpd/conf/htpasswd.users # emplaceemnt du fichier de mot de passe AuthName "Demander l'autorisation" require valid-user satisfy any </Directory>

6) Protectionintranetextranet

Pourrentrerlesmotsdepasse:htpasswd -c /usr/local/apache/conf/htpasswd.users troumad .Aprs vousdevrezrentrerlemotdepasse.Ceciestduauparamtresatisfy any. Aprscettedclaration,vouspouveztoujoursfaireunesectionpourunsiteparticulierpouryattribuerdesdroits spcifiques,mmes'ilsetrouvedans/maison/*.

7) Leslog
Le rpertoires des logs de httpd est /var/log/httpd. Vous pouvez regarder les sorties existantes ou en crer d'autrescommejel'indiquesidessous. Danslefichierdeconfiguration commonhttpd.conf avantMandriva2006etdans httpd.conf pourmandriva 2006,reprezleslignesavecLogFormat commeLogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined.Lederniermotcombinedestlenomdelaformedesortie,pouractivercette ligne,rajoutezaprs:CustomLog logs/combined_log combinedetcrezlefichier combined_logdanslerper toiredelogdehttpd.FatescecipourlesdiffrenteslignesavecLogFormat,reprezetslectionnezlesoptionsquivous conviennentpourfairevotrefichierdelog.

B) php
1) Mandriva Pourpouvoirfairedespagesenphp,ilfautinstallermod_php:urpmi apache2-mod_phpouurpmi apachemod_phppartirde2006quiinstalleraaussiphp5alorsqueavant,onavaitphp4.Saconfigurationestdanslefichier: /etc/php.ini.
Pourdebian:http://www.destinationlinux.org/article30.html Installonslespaquetsrequis(attention,laversiondephp,le4peuttreremplacerpar3,5...):
apt-get install apache2 php4 mysql-server apt-get install libapache2-mod-php4

2) debian

ActivonslesupportdePHP4dansApache2:
ln -s /etc/apache2/mods-available/php4.load /etc/apache2/mods-enabled/php4.load ln -s /etc/apache2/mods-available/php4.conf /etc/apache2/mods-enabled/php4.conf

Relancezapache: 22287750.odt Page51sur141 20/09/09

/etc/init.d/apache2 restart

Laconfigurationdephpsefaitparlefichier/etc/php4/apache2/php.ini. Voiciunpetitfichierd'uneligneenphpvousfourniratouteslesinformationsutilessurvotreserveur:
<? echo phpinfo(); ?>

3) Gnral

Vousverrezqu'ilyapleindemodulesqu'onpeutrajouter phpcommelagestiond'imagesavecphpgdoula gestiond'unebasededonnesMySQLsequenousverronsaprsleserveurhttpd. Pourvoirl'affichagedeserreursphp(programmationouautre),ilfautmodifierlephp.inietmettre"display_errors"On. Remarque : php peut aussi sexcuter en ligne de commande http://www.manuelphp.com/php/features.command line.php Ilestaussipossibledeconfigurervotreserveurafinquilafficheounonleserreursdurantlexcutiondescodesphpavec lefichierphp.iniavecleslignessuivantes: error_reporting=E_STRICT|E_ALL display_errors=on Lepremireconfigurantleserreursafficheretlasecondeactivelaffichagederserreurs.

C) WebDAV
WebDAV(WebbasedDistributedAuthoringandVersioning)estunensembled'extensionsHTTPpermettantauxuti lisateursd'diteretdegrerdesfichierssurdesserveursWebdistants.WebDAV(gnralementappel DAV)prenden chargel'utilisationetlamanipulationdedocumentsparplusieursutilisateursvialeWeb.Pourplusd'informationssur DAV ,reportezvousausiteWebWebDAVResourcesl'adressehttp://www.webdav.org/. Lemodulemod_davoffredescapacitsDAVpourunserveurWebApache.Pourplusd'informationssurlemodule mod_dav et les options de configuration, reportezvous au site Web mod_dav l'adresse http://www.webdav.org/mod_dav/. http://www.ibiblio.org/pub/Linux/docs/HOWTO/translations/fr/html1page/ApacheWebDAVLDAPHOW TO.html#N102A1, Pour l'installer : urpmi apache2-mod_dav. ou [root@serveur][/etc/apache2/mods-enabled]# ln -s /etc/apache2/mods-available/dav* .. Le fichier DAVLockDB, la base de donnes de verrouillage pour WebDAV , est stocke sous Mandriva sur /var/lib/dav/lockdb.LaconfigurationdeWebDAVsefaitdanslefichier/etc/httpd/conf.d/45_mod_dav.conf.sur Mandrivaou/etc/apache2/dav_fs.conf sousdebian.
<IfModule mod_dav_fs.c> # ligne inutile pour debian DavLockDB /var/lib/dav/lockdb <Directory "/maison/dav"> DAV On </Directory>

1) Prsentation

2) Installation/configuration

Vousdevezaussirajouterlesoptionsdecontrled'accs,maispourmapart,ellessontdfiniespourtouslessites hbergsparmonPCdans/etc/httpd/conf/commonhttpd.conf:
<Directory /maison/*> AllowOverride All Order deny,allow deny from all allow from 192.168.1.1/255.255.0.0 # Je laisse l'accs mon rseau interne considr comme sur allow from 127.0.0.1 AuthType Basic AuthUserFile /etc/httpd/conf/htpasswd.users # sous debian, cette ligne demande l'activation de authn_file.load AuthName "Demander l'autorisation" require valid-user satisfy any </Directory>

J'aicrunvirtualhostjustepourleserveurWebDAVdans/etc/httpd/conf/vhosts/Vhosts.conf:
NameVirtualHost *

22287750.odt

Page52sur141

20/09/09

<VirtualHost *> DocumentRoot /maison/dav ServerName dav.lycee.org </VirtualHost>

D) HTTPS
Ilestpossibledecrerun serveurscuris parSSL(Secure Socket Layer). Un tel serveur possdera un url commenant parhttps://(spourscuris !). SSLestunprocd descurisa tion des transactions effectue parInternet.Ilatmisaupoint par Netscape, Mastercard, Bank of america, MCI et Silicon Gra phics. Tout comme SSH, il re posesurunprocd decryptage parcl publique.Sonutilisation esttotalementtransparentepour l'utilisateur. Ce dernier ne s'en rendra compte que lorsque le navigateurl'avertiraqu'ilpntre dansunezonescurisetluide mandera de valider le certificat dusitevisit(imagecicontre. De mme, le navigateur indiqueraparuncadenas qu'ilestconnectunsitescurisparSSL. Lascurisationsefaitparchangedeclsentreleclientetleserveur.Leclientseconnecteauserveurscurisqui luirenvoieuncertificatcontenantsacl publique.Leclient,aprsvalidationducertificat,creuneclsecrtealatoire. Cetteclestchiffrel'aidedelacl publiqueduserveuretluiaienvoye.Leserveurestleseulpouvoirladcrypter grcesaclprive.Cettecl,communeauclientetauserveur,peutalorsservirpourlerestedestransactions. Si,lorsdel'installationdeMandriva,vousslectionnezl'installationd'Apache,OpenSSL,mod_ssletPHP ,unserveur scuris seraautomatiquementinstall etaccessiblevial'url:https://localhost.Lefichierdeconfigurationsetrouvera danslerpertoire/etc/httpd/conf.d/41_mod_ssl.defaultvhost.conf. Sinon,vousallezdevoirinstallerlemoduleapachemod_sslurpmimod_ssletopensslurpmiopenssl.En suite,vousdevezmodifierlefichierdeconfigurationd'Apache/usr/local/httpd/conf/http2.confcommesuit:
Listen 443 <IfDefine HAVE_SSL> <IfModule !mod_ssl.c> LoadModule ssl_module </IfModule> </IfDefine> <IfModule mod_ssl.c> <VirtualHost *:443> port443=portscuris DocumentRoot "/maison/Troumad/sitesecurise" ServerName www.lycee.org:443 ServerAdmin root@localhost ErrorLog logs/ssl_error_log SSLEngine on otrouverlefichierdelog activationdeSSL listedesdiffrentsmodesdecryptagesautoriss silemoduleatcharg,excutercequisuis..(facultatif) extramodules/mod_ssl.so permetdechargerlemodulemod_sslsicen'estdjfait.

SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL SSLCertificateFile /etc/ssl/apache/server.crt SSLCertificateKeyFile /etc/ssl/apache/server.key 22287750.odt Page53sur141


otrouverlefichiercontenantlecertificatduserveur otrouverlefichiercontenantlaclpubliqueduserveur

20/09/09

</VirtualHost> </IfModule> Sivousdsirezfairecohabiterunserveurcryptavecunserveurnoncrypt,ilpeutservlerutiled'ajouterlaligne SSLEngine offdanslevirtualhostduserveurnoncrypt. Iln'estpaspossibled'installerplusieursserveursscurissHTTPSsuruneseuleadresseIP .Ilexistecependantune solution:ApacheSSL(http://www.apachessl.org)quiseprsentecommeunpatchpourApache.

E) Exercice
FatesqueleserveurdevotrePCrenvoiesur/home/mon_siteetqu'ilaittoujoursenlocal(localhost),uneredirec tionvers/var/www/html.Assurezvousquelesserveurswebpersonnelssoientaussiactives(sur~/public_html).

22287750.odt

Page54sur141

20/09/09

XI) MySQL

A) Installation
Undesintrtsduphpestdepouvoirinteragiravecplusieursbasesdedonnesdontentreautremysql(libreet multisystme)etaccess(propritaireetnetournequesouswindows).NousallonsparlerdeMySQL. PourinstallerMySQLurpmi mysqlsousMandrivaouapt-get install mysql-serversousdebianet pourlelienentrephpetMySQL:urpmi php-mysqlou.apt-get install phpX-mysql(X tantlaversionde php).Aprsilfautrelancerledmonapachepourqu'ilprenneencompteMySQLetlancerledmonmysql,onpeut mme demander MySQL de se lancer automatiquement chaque dmarage : /etc/init.d/httpd restart;/etc/init.d/mysql start;chkconfig mysql DocumentationssurMySQL: http://dev.nexen.net/docs/mysql/annotee/manuel_tocd.php http://www.linuxpourlesnuls.com/adminmysql.php http://www.accreteil.fr/reseaux/systemes/linux/lamp/tpmysql.htm ... unebaseMySQLestundocumentdetravailimportant,ilfautdoncsavoiro elleeststocke.Normalement,c'est dans/var/lib/mysql,sinonunlocatesurdesfichierstype func.MYD, host.MYD, tables_priv.MYD, user.MYD, columns_priv.MYI, db.MYI, func.MYI permettrontdetrouverlestables coupsur.Attention,lorsqu'oncopie lesbasesd'unserveurversunautre,nepasoublieraussidelesattribuerl'utilisateurmysql. Lesfichiersdeconfigurationsont:/etc/my.cnfet/etc/sysconfig/mysqld. Pourvoirlesvariablesd'environnement: SHOW VARIABLES; commeinstructionquandonestdanslabasededon nes. Attention,lorsdunecopiesdesesrpertoire: ilfautmodifierlutilisateuretlegroupepropritairedesfichierspourqueleserviceMySQLpuisseyaccderavec cettenouvelleconfiguration. sousdebianilyaunutilisateurparticulierquiestrenseigndans/etc/mysql/debian.cnf. ilvautmieuxpourlascurit: accsgnral:
mysql>GRANTALLPRIVILEGESON*.* TO'nouvel_adm'@'%' IDENTIFIEDBY'mot_de_passe'WITHGRANTOPTION;

1) Lespaquetages

2) Rpertoiredesdonnes

3) Plusdescurit

Nota:nepasmodifierleparamtre'%'. accssurunebase:

mysql>GRANTSELECT,UPDATE,INSERT,DELETEONbase_de_donnes.* TO'nouvel_utilisateur'@'localhost' IDENTIFIEDBY'mot_de_passe';

Nota:nepasmodifierleparamtre'localhost'.
mysql>FLUSHPRIVILEGES; mysql>QUIT;

B) Crationd'unebasepourunutilisateur
VoiciunexempledecrationdebasededonnesMySQLenlignedecommande,;sonbutestd'avoirlocalementla mmeconfigurationquecellequevousoffrefree. On commencepar entrerdansla base MySQLaveclacommandemysql(voirman mysqlpourplusd' informations).
SET PASSWORD = PASSWORD( '**********' );

Ajoutdumotdepasserootsurlocalhost(IMPORTANT)
SHOW DATABASES;

Onregardetouteslesbasesexistantes.
DROP DATABASE `test`;

Effacerlatabletest.
use mysql;

Onvadanslabasedegestiondemysql.
SHOW TABLES;

22287750.odt

Page55sur141

20/09/09

Visiondestablesexistantesdanslalabaseslectionnes(icimysql)
INSERT INTO `user` ( `Host` , `User` , `Password` , `Select_priv` , `Insert_priv` , `Update_priv` , `Delete_priv` , `Create_priv` , `Drop_priv` , `Reload_priv` , `Shutdown_priv` , `Process_priv` , `File_priv` , `Grant_priv` , `References_priv` , `Index_priv` , `Alter_priv` , `Show_db_priv` , `Super_priv` , `Create_tmp_table_priv` , `Lock_tables_priv` , `Execute_priv` , `Repl_slave_priv` , `Repl_client_priv` , `Create_view_priv` , `Show_view_priv` , `Create_routine_priv` , `Alter_routine_priv` , `Create_user_priv` , `ssl_type` , `ssl_cipher` , `x509_issuer` , `x509_subject` , `max_questions` , `max_updates` , `max_connections` , `max_user_connections` ) VALUES ('localhost', 'troumad', PASSWORD( 'MOT_DE_PASSE' ) , 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', '', '', '', '', '0', '0', '0', '0')

Crationdel'utilisateur'nom_de_compte'aveclemotdepasse'mot_de_passe'
CREATE DATABASE `mon_de_compte`;

Pourcrerunebaseaveclemmenomquel'utilisateur
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON mon_de_compte.* TO mon_de_compte;

Pourdonnertouslesdroitsl'utilisateursursabase:informationmisedanslatablemysql.db lepremierestlenomdelabasededonnes.
FLUSH PRIVILEGES;

Pourdemanderauserveurderechargerlestablesdedroits
use mon_de_compte; CREATE TABLE `test` ( ` id` MEDIUMINT(8) UNSIGNED NOT NULL AUTO_INCREMENT, `date` DATE, `heure` TIME, `systeme` VARCHAR(255), `adresse` VARCHAR(15), `vient_de` VARCHAR(255), `visiteur` MEDIUMINT(8) UNSIGNED DEFAULT '0' NOT NULL, `fait_sa_visite` SMALLINT(5) UNSIGNED, INDEX (` id`) );

Pourfaireuncompteurdevisite(Unexemple,mais,c'estl'utilisateurdefairecequ'ilsouhaite!).
DROP TABLE `test`;

Poureffacerlatabletest(c'taitunexempleinutile).
Exit;

ArrterMySQL. Onpeutsauver(respectivementremplir)unebasededonnedelamaniresuivante:
mysql -h localhost -u root -pmot_de_passe troumad > sauvegarde mysql -h localhost -u root -pmot_de_passe troumad < sauvegarde

C) phpMyAdmin
MySQLpeuttregrparuneinterfacegraphiquephpMyAdmindontlesiteofficielest:http://phpwizard.net/pro jects/phpMyAdmin/.L'intrtdecetteinterfaceestqu'ellenousinformedesrequettesMySQLqu'ellefait.SousMandriva, nous pouvons l'installer en faisant tout simplement : urpmi phpmyadmin. Le logiciel, s'installe sur /var/www/html/admin/phpMyAdmin, donc accssible en configuration initiale de http par http://localhost/admin/phpMyAdmin.Jeconseillecependantlelemettreouvousvoulezdansvotrearborescence etlemettreuneentredessusdansvotrefichier /etc/httpd/conf/httpd2.conf :
<VirtualHost 127.0.0.1> # Une adresse vers mon php... DocumentRoot /maison/bs/mes_sites/phpMyAdmin ServerName phpMyAdmin.monphp.org </VirtualHost>

Ilfautinformerdanslefichierlechamp$cfg['blowfish_secret']enymettantlachanedecaractresdesonchoix 'maximum46caractres. Maintenant,l'utilisateurtroumadpeutlireetmodifierlabasededonnestroumad,leservicefourniparwww.free. fr.Pourl'accsparphpMyAdmincettebasededonnessoiteffectif,ilfautconfigurerlefichierconfig.inc.php: 22287750.odt Page56sur141 20/09/09

$cfg['Servers'][$i]['auth_type'] okie based)?

= 'cookie';

// Authentication method (config, http or co-

Sousdebian:PhpMyAdminestfourniavecunscriptd'assistancelaconfiguration.Cescriptpeuttreaccdl'a dressehttp://localhost/phpmyadmin/scripts/setup.php.L'utilisationdecescriptimposeuneauthentification.

D) Bonus
UnefoisMySQLetlephpinstalls,vouspouvezinstallersansfraisunwikiouunforum,regardezparexemple http://www.phpbbfr.com/ouhttp://www.wikini.net/.

E) Accessibilitdel'extrieur
Ilfautditerlefichier/etc/sysconfig/mysqldetcommenterlaligne
# MYSQL_OPTIONS="--skip-networking".

Etdans /etc/my.cnf ,section[mysqld],lalignesuivanterestreintleportd'coute(encasdeprsencedeplu sieursIp):


bind-address=ip_du_serveur

Enrevanchececiouvretouslesports(pardfautchezmoi):
bind-address=0.0.0.0

Ensuite,ilfautdonnerlesdroitsd'accspartirdel'extrieurunutilisateur:
use mysql; GRANT ALL ON *.* to 'userdbt'@'192.168.0.1' IDENTIFIED BY 'tititoto';

Modificationdelatablemysql.user. L'utilisateuruserdbtaumotdepassetititotopeutaccdertouteslesbasespartirduPC192.168.0.1 Vouspouvezrestreindrelesbasesdedonnes(recommand),enremplaantle*.*parla_base_permise.* Vouspouvezpermettrel'accsdetouslesordinateursenremplaantle'192.168.0.1'par'%'. Aprs,lechangementdesfichiersdeconfiguration,ilfautrelancerleservicesMySQL:


/etc/init.d/mysqld restart

Finalement,ilfautouvrirleport3306dumurdefeupourlesinterfacesquipourrontaccderlabasededonnes. Onpeuttesterlepartageenlignedecommandepar:
mysql -h Ip_du_serveur -u nom_de_l'utilisateur -p

F) ODBCvi
C'estunmodulepourconsulterpartirdeprogrammesextrieurs,diffrentsmodlesdebasesdedonnesmmes distantsdontMySQL.Ilexisteuneversionwindowsquipermetl'accsauxbasesdedonnesquisontsurdesserveursLi nuxouautre partird'ordinateurssouswindows.ParmilesprogrammesextrieursquiutilisentODBC,ilyaOpenOf fice.org(voirhttp://fr.openoffice.org/Documentation/Howto/indexht.htmlsectionbasededonnes). PourinstallerODBC,urpmi myodbcsousMandrivaousudo apt-get install libmyodbc unixodbc-bin sousubuntu,maisparfois,ilestintressantd'allerchercherledernierdriversurlesiteofficiel(commeaujourd'hui,caril marchemieux):http://www.unixodbc.org/. Lesfichiersdeconfigurationsont odbcinst.ini quidfinitlesdriverspourlesdiffrentesbasesdedonneset odbc.ini qui dfinit les diffrents accs aux bases de donnes (sous ubuntu, une version de ce fichier est /usr/share/libmyodbc/odbcinst.ini, il suffit alors de faire : sudo cp /usr/share/libmyodbc/odbcinst.ini /etc/)
[root@portable][/etc]# cat /etc/odbc.ini [local] Description = Base locale Driver = MySQL Server = localhost Database = troumad Port = 3306 Socket = Option = Stmt = [troumad] Description = Base troumad

22287750.odt

Page57sur141

20/09/09

Driver = MySQL Server = 192.168.2.1 Database = troumad Port = 3306 Socket = Option = Stmt = [root@portable][/etc]# cat /etc/odbcinst.ini [MySQL] Description = ODBC Driver for MySQL Driver = /usr/lib/libmyodbc3.so.1 Setup = /usr/lib/libodbcmyS.so.1 FileUsage = 1 CPTimeout = CPReuse =

PourtesteruneconnexionODBC:
isql nom_de_base(trouv dans odbc.ini) mon_utilisateur mot_de_passe

G) Exercice
Crervotrebasededonnesetuncompteaveclesmmesdroitsquefree.Fatesdesessaisdemanipulationavec phpMyAdmin.

22287750.odt

Page58sur141

20/09/09

XII) Partagededonnes/nfs

A) Prsentation
nfsestunsystmepermettantd'effectuerunpartagedecertainsdossiersparunrseau.C'estunprotocoleUnixqui n'estpasreconnuparlesPCsousWindows,c'estpourcelaqueSambaatdvelopp. Lesqualitsdenfsgnrentsespropresdfauts:sasimplicits.Sesdfautsdeviennentgnantactuellementavecla dmocratisationduwifietautresmoyensd'entrerdansunrseau.Eneffet,ilsuffitdepouvoirseconnectersurunr seau,dechoisirunbonneadresseIpetd'accderunpartagenfssurunPCsurlequelonatouslesdroitspourpouvoir toutlire/crire/modifier.Laseuleprotectiondenfstantbasesurlesuidetgid,onpeutdonccrerlesutilisateursayant l'uidapproprietappartenantaubongroupepourpouvoiraccderoonveut. Jedcrisdonclafindecechapitredesmthodesplusscurisesdepartages.Ellesmesemblentd'autantplusin tressantesqu'ellesoffrentbeaucoupplusdepossibilits.Auseind'unrseauLinuxilestpossibleaussid'utiliserSamba pourlepartagedefichiers. Maintenant,aveclesnoyaux2.6,ilexisteNFSv4.J'enparlelafindenfs.

B) Serveurnfs
Leserveurestceluiquiproposeunpartage. Sionn'apasinstalllerpm,ilfautcommencerparl'installer:c'estnfsutilspourMandrivaetpourDebian,onaun choix2deuxpaquetsdiffrents:
aptitude search nfs.*server i v p nfs-kernel-server - support for NFS kernel server nfs-server nfs-user-server - User space NFS server

1) Installation

nfskernelserverc'estleserveurenespacenoyau.Ilestplusrapidemaispeutprsenterdesrisquescarenespace noyau. nfsuserserverc'estleserveurenespaceutilisateur.Ilestpluslentmaisplussrcarenespaceutilisateur. Chacundecesdeuxpaquetsfournitlepaquetvirtuelnfsserver. PourparamtrerunserveurNFS,c'esttrssimple.Vousdevez diterlefichier/etc/exportsquilistelesdossiers partags.Imaginonsquevousvoulezpartagerdesdocumentstextesquisetrouventdans/usr/local/texte,insrezalors ceci:


/usr/local/texte *.toto.fr(rw,no_root_squash,insecure)

Cettelignepartagelerpertoire /usr/local/texte pourtoutlerseautoto.frenlecture/criture(rw),avecla possibilit donne rootd'avoirdesdroitsetaussienmodeinsecure.Ilest videntquevousnedevezpasdonnerces permissionssurunserveuraccessibleinternetmaiscelapeuttrebonpourl'intranetpetitechelle.Pourappliquerles changements,siNFStournedj (vrifiableparps -aux |grep nfsd),fatessimplement:exportfs -a.Vous pouvezvrifiertouslesmontagespar:exportfs.SiledmonNFSquigrecepartagen'estpasdmarr,lancezalors :/etc/rc.d/init.d/nfs start. Surl'exemplesuivant,onpartagelerpertoire /home deuxordinateursenlectureet criture(voirman exportsetlerpertoire/opt cesdeuxmmesPC.Lepartagede /optn'estpaslemme:rootconservecesdroitsroot sur/opts'ilestsurlePC192.168.1.1etpersonnenepeut criresur /opt partirduPC192.168.1.100,onnepeutque lire. Voicil'exemplede/etc/exports:
/home 192.168.1.1(rw) 192.168.1.100(rw) /opt 192.168.1.1(rw,no_root_squash) 192.168.1.100(r)

Attention,lesiddesgroupesetdesutilisateurspropritairesrestentlesmmesdansunpartage.Onvoitalorsl'int rtd'unserveurNISquimetlesutilisateursetlesgroupes(entreautre)encommunpourtoutunrseau. C'estpourcela,queaudbut,j'aidonn desiddiffrentsenfonctiondesordinateursdelasalle. Remarque:PourtreutilisdansdessitesolesUIDsvarientsuivantlesmachines,nfsdfournitunemthodede conversion dynamique des UIDs u serveur en UIDs du client et inversement. Ceciestmisenserviceavecl'optionmap_daemonetutiliseleprotocoleRPCUGID.Ilfautqueledmondeconversion ugidd(8)soitactifsurleclient http://www.lowth.com/LinWiz/nfs_help.html http://wiki.mandriva.com/fr/Rseau_Linux_avec_NFS

2) Avecunfirewall

22287750.odt

Page59sur141

20/09/09

PourpermettrepourconfigurerunfirewallquicommandeleNFS,estilutiledepouvoirfixerlesportsemploys parcesservices,carplusieurssontchoisispardfautalatoirement.Heureusementc'estpossible,bienquelesmthodes pourimposercesnombressoientdiffrentespourchacundesdmons.LetableausuivantprsentelesdmonsdeNFSet donnel'informationappropriepourchacund'eux. Dmon portmap rpc.statd rpc.nfsd rpc.lockd rpc.mountd rpc.rquotad RPM portmap nfsutils nfsutils nfsutils&kernel nfsutils quota Portstandard 111 Alatoire 2049 Alatoire Alatoire Alatoire Portsuggr 111 4000 2049 4001 4002 4003 Quechanger Rien diter/etc/init.d/nfslock ou
/etc/sysconfig/nfs-commun

Rien diter/etc/modprobe.confou
/etc/modules.conf

Crerouditer/etc/sysconfig/nfs(server)

Installer"quota"version3.08oupluset diter/etc/rpcet/etc/services

Pour/etc/sysconfig/nfs-commun:
STATD_OPTIONS="--port 4000"

Sicefichiern'existepas(ancienneversion),c'est/etc/init.d/nfslockoilfautvrifierleslignessuivantes:
start) # Start daemons. gprintf "Starting NFS lockd: " daemon rpc.lockd echo gprintf "Starting NFS statd: " daemon rpc.statd -p 4000 echo touch /var/lock/subsys/nfslock ;;

Pour/etc/modprobe.confrajouterlaligne:
options lockd nlm_udpport=4001 nlm_tcpport=4001

oupourlesversionsplusancienne/etc/modules.conf,ajouterlaligne:
options lockd nlm_udpport=4001 nlm_tcpport=4001

Pour/etc/sysconfig/nfs-server,complterlaligne:
RPCMOUNTD_OPTIONS="--port 4002"

Sicefichiern'existepas(ancienneversionavantmdv2008.0),c'estlefichier/etc/sysconfig/nfsouilfautd commenteretinformerlaligne:
MOUNTD_PORT=4002

Pour/etc/rpc:urpmi quotaetvrifierquelalignesuivanteestprsente:
rquotad rquotad rquotad 100011 4003/tcp 4003/udp rquotaprog quota rquota # nfs

Pour/etc/services,informerleport4003:

Aprscecirelancerlesdmonsportmapet/ounfs:/etc/init.d/nfs restart.Aveclesnouvellesversions,il fautrechargerlemoduleetrelancerleservicenfsserver.Commelemoduleestenservice,vousnepouvezpasledchar gerpuisrecharger.Vousdevezdoncredmarrerdel'ordinateur,cequiestrarissimesousLinux. Pourvrifiersilesportssontbienlesbons,onpeutfaire:rpcinfo -p. Lesfichiers/etc/hosts.allowet/etc/hosts.denysontdesfichierspourautoriserourefuserl'accs certains"servicesr seaux"(commenfsouportmap)pourdesmachinesspcifiques.Lapartiesuivanteestcopiesur:http://lealinux.org/ca ched/index/Reseaupartficnfs.html 22287750.odt Page60sur141 20/09/09

3) Protectionavechosts.denyethosts.allow

a) /etc/hosts.deny Onvainterdiretouteslesmachinesquinesontpasautorisesexplicitementdansle/etc/hosts.deny. Unbonvieux"ALL: ALL"interdiral'accs touslesservices partirdetouteslesmachines.Onpeutcependant treplusprcisencrivant:


portmap:ALL lockd:ALL mountd:ALL rquotad:ALL statd:ALL

b) /etc/hosts.allow Danslemmeespritquepourle/etc/hosts.allow,cefichieral'architecturesuivante:
[service]: [IP de la machine client] [service]: [Nom de la machine client]

Doncpourautoriser192.168.1.34seconnecterunpartageNFS,oncrira:
portmap:192.168.1.34 lockd:192.168.1.34 mountd:192.168.1.34 rquotad:192.168.1.34 statd:192.168.1.34 /home 192.168.1.1(rw,insecure)

4) derrireunrouteur

L'optioninsecurepermetNFSd'couterlesrequtessurdesportsaudessusde1024.Icilerouteurtransmetles requtesduclientsurunportsuprieur1024,cequerefuseleserveurNFS,l'optioninsecurelvecetterestriction. Pourscuriserunpeul'affaire,ilfautdj filtrerleport111enudpettcpauniveaudurouteurenn'autorisant justel'accsauxstationsclientesautorises.

C) Clientnfs
Leclientestceluiquiaccdeaupartage.CeciditunPCpeuttresimultanmentclientetserveur. Uneastucedesonct pourinstallerunpartagemalgr unfirewallconsiste couperlefirewallletempsdela miseenroutedupartageetdeleremettreensuite.Sinon,ilfautregarderlepointprcdentsurleserveur. SousMandriva,toutestlpardfaut. Sousubuntu:sudoaptgetinstallnfscommon Cefichiercontientlesinformationsdemontagedespartitions.Poursavoircequiestmont,vouspouveztapez df.Cetteinstructionindiqueraenpluslestaillesdeschaquepartitionmonteetlaplaceutilise.Pourmonter(ac cder)entemporaire,despartagesnfs,ousamba,onpeutlefaireaveclacommande mountetpleindeparamtres.Le nombre de paramtres est rduit si le partage est dj dfini dans /etc/fstab : il suffit juste de faire mount /point_de_montage.Lepointdemontageestlerpertoiredansl'arborescenceo ontrouveranotrepartage.Cepar tageseravucommeunrpertoire,donccompltementtransparentpourl'utilisateur. Voiciunexempledefstabsousunnoyau2.4(et2.6pouruneMandrivaquimaintientlacompatibilit):
/dev/hda1 / ext3 noatime 1 1 none /dev/pts devpts mode=0620 0 0 /dev/hda5 /home ext3 noatime 1 2 none /mnt/cdrom supermount dev=/dev/hdd,fs=auto,ro,--,iocharset=iso8859-15,codepage=850,umask=0 0 0 none /mnt/floppy supermount dev=/dev/fd0,fs=auto,--,iocharset=iso8859-15, sync,codepage=850,umask=0 0 0 /dev/hdb1 /mnt/windows vfat iocharset=iso8859-15,codepage=850,umask=0 0 0 none /proc proc defaults 0 0 //serveur/share /mnt/point_de_montage smbfs uid=toto,username=toto,password=xxx 0 0 /dev/hdb5 swap swap defaults 0 0 192.168.1.1:/opt /opt nfs retry=1000,defaults 0 0 //serveur/homes /maison/bs smbfs noauto,user,uid=troumad,username=bernard 0 0

1) Logicielsinstaller

2) /etc/fstab

22287750.odt

Page61sur141

20/09/09

Apartirdunoyau2.6,onaeffectuungrandmnagedanslerpertoire /devencrantdessousrpertoires,Man drivalesaaussicr,maisamisdeslienssymboliquesafindeconserverlacompatibilit.Cenettoyagesefaitdsquele noyau2.6estinstall etrestemmequandonrepasseaunoyau2.4surlemmesystmegrce unmultiboot.Ceci donnedoncaveclenouveaunoyau:


proc /proc / /home /mnt/mdk10.1 /mnt/mdk10.0 /media/cdrom0 none auto proc /mnt/hda1 defaults ext3 ext3 ext3 ext3 ext3 defaults defaults defaults defaults swap sw 0 0 0 0 0 0 0 0 0 0 0 0 0 1 2 2 2 0 0 /dev/discs/disc0/part1 /dev/discs/disc0/part6 /dev/discs/disc0/part5 /dev/discs/disc0/part8 /dev/discs/disc0/part9 /dev/cdroms/cdrom0 /dev/discs/disc0/part7 /dev/hdd /dev/fd0 /media/cdrom0 /media/floppy0

defaults,errors=remount-ro 0

iso9660 ro,user,noauto

iso9660 ro,user,noauto rw,user,noauto

Quandonmonteuneunit logiquesurlesystme,onindiqueunrpertoirequidoitdj exister.S'ilyadj des chosesdanscerpertoiresellesdeviendrontinaccessible.C'estpourcelaquelaracineestmonteaveclereste. Leslignes1et3sontdespartitionsinternessurlepremierdisquedur(hda).Lapremireseramonte laracine :/,etlasecondeestl'ensembledesrpertoirespersonnels(/home). Leslignes4et5prennentencomptedesmontagedepriphriquesamoviblesquisonthabituellementmont en /mnt.Ici,vouspouvezlesmettreailleurs,cecignerabienleshabitusdusystme. L'antpnultimeligneestlefichierswap:partitiono lesystmestockelesdonnesquidevraient tredansla RAMetquineserventmomentanmentplus. L'avantdernireestunmontagedefichierpartag avecnfs.C'estlerpertoire /opt duPCdontl'adresseIPet 192.168.1.1qu'onmetnousaussien/opt. Vouspouveznoterlesdeuxmontagessamba(dernireligneetligne8):lepremierpeutsefaireautomatiquement carilyalemotdepassecrit.Maispaslesecond!Voicilesspcificitsdusecond: iln'estpasmontautomatiquementcarildemandel'entredumotdepasse,maisilpeut tremontpartoussienplus /maison/bsappartienttroumad. ilcorrespondaumontagedupartages[homes]del'utilisateurbernard ilappartiendral'utilisateurtroumad Lapremirechose faireestderenseignerlepartagedanslefichier/etc/fstab.Ensuite,onmontetoutsimple mentlepartage:mount /rpertoire_de_montagesansavoirdonnerd'autresparamtresmount. Pourdmonteruneunitlogique,cequ'onnepeutlefairequesipersonnenes'ensert,ilfautfaireumount /rpertoire_de_montage.Siunepersonnes'ensert,onauralarponsesuivante:umount : /home : priphrique occup. Pour savoir par qui ou par qui est occup le partage en question, faire : /sbin/fuser -vm /repertoire_partagoulsofquiestpratiquepoura,carillistelesfichiersouvertsetsignalequelprocessusl'a ouvert.Onauracommeinformationlesutilisateursquisontdessus(dloger)etlesPIDdesprogrammesquil'utilisent( tuerendernierrecours).Lerecoursultimepourratre:umount -fl /repertoire_partagquiforceledmontage oupireencorepourcouperetremettrelespartagenfsetsamba:/etc/init.d/netfs restart Remarque:Sivousavez
$ mount /opt mount: RPC: Program not registered

3) rcuprerlepartage

alorsquetoutsembletrecorrect,relancezledmonnfssurleserveur.Puisrecommencez...outentez:
mount 192.168.1.1:/opt /opt

Ilestconseill defermerlepartage26/10surleclientavantd'teindreleserveur.Eneffetunpartageencoreactif surunesourcequin'existeplusposedesproblmes.Parexemple,ellebloquelacommandedfquidonnel'tatdesdif frentsmontages. Encasd'oubli,ilyaunscriptdisponiblesousdebian:/etc/init.d/umountnfs.sh. remarque:Essaieavecumountrfl.Pourmoiaatoujoursmarch.

4) Fermerlepartage

D) NFSv4
unptittoposurlewikideClubic:http://www.clubic.com/wiki/NFS. desinformationssurlamiseenplaceduproto:http://developer.osdl.org/dev/nfsv4/wiki/index.php/Main_Page lesdocsutilessurNFSv4:http://developer.osdl.org/dev/nfsv4/site/documentation/ 22287750.odt Page62sur141 20/09/09

http://wiki.linux-nfs.org/index.php/NFSv4_Introduction etunetraductionfranaise:http://wiki.linux-nfs.org/index.php/Nfsv4_configuration_fr http://www.cert.fr/francais/deri/siron/fabre/KERBEROS/MainKerb.html Onpeutfaireun:grep 'nfs4' /proc/kallsyms Sidessymbolessontretourns,leserviceNFSv4estprsent.

1) PrsencedeNFSv4

2) Configurationdekerberosvii http://www.supinfoprojects.com/en/2004/environnement_kerberos_linux/ http://www.startcom.org/docs/fr/Guide%20de%20reference%20StartCom%20Enterprise%20Linux%203.0.x/s1 kerberosserver.html Cecin'estncessairequesivousvoulezutiliserKerberos5(krb5)avecNFSv4.(Cequiestunebonneide.) Kerberosestunprotocoled'authentificationrseaucr parl'MITquiutiliselacryptographiedesclsaulieudes motsdepasseentexteclair.Kerberosrenforcelascuritdusystmeetempchequedespersonnesnonautorissinter ceptentlesmotsdepassedesutilisateurs.


a) ctserveur urpmikrb5server urpmignome-kerberospourdisposerd'unutilitairegraphiquepermettantd'administrerKerberos. fichiersdeconfiguration/etc/krb5.confet/etc/kerberos/krb5kdc/kdc.conf(var/kerberos/krb5kdc/kdc.conf surd'autres:regardez,c'estindiqudans /etc/krb5.conf) NotessurKerberos lesheuresdevosmachinesdoiventtrecorrectes,etindiquerlammeheure.Utiliserntppourtresrquec'estle cas. Lefichier/etc/hostsdoitlistertousdomainescompletsavectouslesattributs,c'estdirequelefichierdoitavoir uneIP ,puislenomachine.nom.de.domaine.fr.Lenomdelamachinenedoitpasapparatredanslalignelocalhost Nepasmlangerlesminusculesaveclesmajusculesdanslesnomsdemachine(DNS)dansleKDC. mamachine@ domaine.orgestcorrect,maisMaMachine@domaine.orgprovoquerauneerreur.

E) shfs
http://www.labolinux.com/index.php?page=lumieres&id=278&p=#s Leserveurdoitjusteavoirsshdd'actif.PourinstallersurleclientsousMandriva:urpmi shfs-utilsetsous ubuntusudoaptgetinstallshfssourceshfsutilsgcc3.4linuxheaders`unamer` sudomoduleassistantbuildshfs sudomoduleassistantinstallshfs(puismanshfsmount).Pourmettreenoeuvrelepartage:
shfsmount -o uid=XXX,gid=XXX utilisateur@serveur

Vouspouvezpermettre touslesutilisateursd'utilisershfsmountenplaantlebitsetuidsurlebinaire(attention auxdroitssurlerpertoiredemontage):


# chmod u+s $(which shfsmount)

Ilestpossibledemettrel'infodans/etc/fstab:
user@serveur /rpertoire_de_montage shfs noauto,user,retry=1000 0 0

Onpeutaussirajouteruid=XXX,gid=XXXcommeoption,maisc'estincompatibleavecuser!Jeconseillecette optionusercar a vitedepasserparrootpourrentrerlemotdepasse(oulapassphrase).L'optionP ,pourchangerle portdeconnection,estutilisableenrajoutantP1221,devantnoauto,user,retry=1000pourdirequesshestsur leport1221aulieude22:


bernard@linux.iutb.fr:/home /home_iut shfs P1221,noauto,user,retry=1000 0 0

Enutilisantlesclefpubliques/privecoupleavecsshagent/sshadd,ilestpossibledesepasserdemotsdepasse (voirlechapitresurssh).Cetteutilisationestmmeconseillepourmaintenirlesconnexionsactives. Unesurprisedetaille,touslesfichierssontsenssvousappartenir,maisnevousinquitezpas,vousnepourrezpas surpasservosdroitssurleserveur! Ungrandavantagedecettemthodeestsonportagesurunportable.Eneffet,nfsnepassepas traversunpare feubienfaitalorsquelaisserpasserdusshesttoutfaitadmissible,doncunmontageparshfspeusefairen'importeo delammefaon.

22287750.odt

Page63sur141

20/09/09

F) LUFS
http://lufs.sourceforge.net/lufs/ Montaged'unpartageftp:
lufsmount ftpfs://troumad:mot de passe@ftpperso.free.fr free

Monessaiesttrspeuprobant:dconnectionsfrquentesetcritureimpossible. Montaged'unrpertoirepersonneldistantparuneconnecxtionssh:
lufsmount sshfs://geiibsiaud@134.214.12.34 bo4

Pourcederniermontage,ilestprfrabledelefaireavecclefpublique/priv etsshagent/sshaddafindenepas avoir rentrerlemotdepasse chaquedemande.Aveccettemthode,touscequinevousappartientpasest demon, lesdroitssontconservs. Pourlemoment,jeconseilledoncshfs.Surtoutcausedelaconfigurationdans/etc/fstabquejesuisarrivfaire correctement.Lufsl'airnonmaintenudepuisfin2003.

G) SSHFS
http://fuse.sourceforge.net/sshfs.html
chmod a+rw /dev/fuse chmod u+s $(which sshfs) (pourquoi ?)

smart Utilisation:
sshfs <user>@<serveur>:/<rep-distant> <point_montage>

Installation: SousMandriva:urpmi sshfs-fuse. Sousubuntu,ilsuffitquel'utilisateurappartienneaugroupefusepourqu'ilpuisseyaccdersansfaireleschange mentsdedroitsdcritssidessus. Sousdebian:apt-get install sshfs ,enplus:chgrp fuse /dev/fuse Ilfautparfoisdiredelancerlemodulefuseaudmarrage:dans /etc/modprobe.preload pourMandrivaou /etc/modulespourDebianrajouterlaligne: fuse Lesymptmeestlerefusdemonterlerpertoirecar/dev/fusen'existepasetceciserpareavec:
sudo modprobe fuse

umount s<point_montage>implementpourdmonter,maisavecl'utilisateurquiafaitlemontage. Remarque:Voirlesoptionsallow_otheretallow_rootdesshfspour tresurquel'utilisateurquiseconnectepar sambapuissevoirlerpertoire. Pardfautseull'utilisateurquimontelerpertoirepeutlevoir(pourdesraisonsdescurit).Maistupeuxchanger ceciaveclesoptionsallow_otheretallow_rootcommementionnprcdemment.


# echo user_allow_other > /etc/fuse.conf $ sshfs -o allow_other PC-distant:. ~/mnt/disk

Plusd'erreuretlerpertoireestvudansWindowsviasamba.Inutilederedmarrerleservicefuse:lefichier /etc/fuse.confestapparemmentlulorsquelacommandesshfsestlance.

H) Autres(regarder)
http://www.citi.umich.edu/projects/nfsv4/,http://www.citi.umich.edu/projects/nfsv4/linux/,ethttp://www.nfsv4.org/ http://publib.boulder.ibm.com/infocenter/pseries/index.jsp?topic=/com.ibm.aix.doc/aixbman/security/secure_nfs.htm http://www.fs.net/sfswww/ SFSestunsystmedefichiersrseau(bas surnfs)scuris etglobalavecunsystmedecontrlecompltement dcentralis.Ondoitcrerunclefpubliqueetuneprivepourseconnecterunserveursfs.

I) Exercice
Survotreordinateur,crezunrpertoireauquelvotrevoisinaccdera,ilenserapropritaire. Rendezlerpertoiredepartagecr poursambaaccessible toutelasalle(accessibleenlectureauxmembresdu groupesamba). 22287750.odt Page64sur141 20/09/09

RcuprerunpartagenfssurunPCvoisinainsiqu'unpartageshfs.(Pourquoipartageshfsavecdesguille mets?)

22287750.odt

Page65sur141

20/09/09

XIII) Firewall
Unfirewallestuneprotectiondevotresystmecontrelesintrusionsdel'ex trieur.Ilbloquecertainsportsetlaisselesautresouverts.Ilgrentaussilesredi rectionsdeportetd'adresse,grcea,ilpeutpermettrelepartagedeconnexions internet(votrePC,pourraalorsservirdepasserelleinternet).Aujourd'hui(depuis laversion2.4dunoyau),sousLinux,leFirewallestgrpariptable.Iptable,lui peuttregrpard'autresprogrammescommeshorewall.

A) Shorewall
Pourl'installer,passezparRpmDrake:installationdepaquetageslogiciels. CherchezlesprogrammescontenantShorewalletinstallezles.Vouspouvezaussi passer par la ligne de commande: urpmi shorewall. Shorewallutilise IP TABLES,ilfautdoncquevousl'ayezinstall pralablemento soninstallationce feraaussiautomatiquement.. L'installationsousdebiancefaitavecapt-get install shorewallet contrairement Mandriva,lesfichiersdeconfigurationsnesontpasprsentsdans lerpertoire/etc/shorewall.Lesfichiersdeconfigurationpeuvent tretrouvs surlesystmedanslerpertoire/usr/share/doc/shorewall/default-config. Dcompressezles(gunzip)etcopiezsimplementlesdossiersdontvousavezbe Dessin2:Firewall soindans/etc/shorewalletmodifiezles. Guidecomplet:http://france.shorewall.net/shorewall_quickstart_guide.htm Documentinspirdehttp://www.iglooduhack.com/linux_shorewall.php Pouruneutilisationdomestiquevoir:http://docs.cafephilo.net/procedures/shorewall.html

1) Prsentations
Shorewallvoitlerseauoiltourne,commeunensembledezones. Shorewallreconnataussilesystmedefirewallcommesaproprezonepardfaut,lefirewallestconnucommefw. Lesrglesproposdequeltraficautoriser,etdequeltraficinterdiresontexprimesentermedezones. Vous exprimez votre politique par dfaut pour les connexions d'une zone vers une autre zone dans le fichier /etc/shorewall/policy. Vousdfinissezlesexceptionscespolitiquespasdfautdanslefichier/etc/shorewall/rules. Pourchaqueconnexiondemandantentrerdanslefirewall,larequteestenpremierlieucompareparrapportau fichier/etc/shorewall/rules.Siaucunergledanscefichiernecorrespond lademandedeconnexionalorslapre mirepolitiquedanslefichier/etc/shorewall/policyquiycorrespondseraapplique.SicettepolitiqueestREJECTou DROPlarequteestdansunpremiertempscompareparrapportauxrglescontenuesdans/etc/shorewall/common. TouslesfichiersdeconfigurationpourShorewallsontsitusdanslerpertoire/etc/shorewall. Lefichierzonesestutilispourdfinirleszonesdurseau.Ilyauneligneparzone. Onvacommencerparcrerunezonequiserale"rseaulocal"etuneautrequisera"Internet".
#ZONE loc net DISPLAY Local Net COMMENTS Reseau Local Internet

2) Configurerlefichier"zones"

Colonne ZONE

Description Lenomdoit trecompos de5caractresminuscules(chiffresetlettres)oumoins.Ildoit commencerparunelettre.Lenomassign aufirewallet"multi"sontrservspourShorewall. Notezquelasortieproduitepariptablesestbienplusfacileliresivousutilisezdesnomsde moinsde3caractres. LenomdelazoneaffichependantledmarragedeShorewall Commentairessurlazone.Shorewallignorecescommentaires.

DISPLAY COMMENTS

Lefichierinterfacesestutilis pourindiqueraufirewallquelleinterfacerseaudevotrefirewallestconnecte quellezone.Ilyauneentredansinterfacespourchacunedevosinterfaces. Sieth0estlacarterseauquiinterfacelerseaulocal.(gnralementc'esteth1pourlesconnexionsinternetavec modemparthernet,remplaceralorsppp0(pourlesmodemsusb)pareth1.)


#ZONE loc net INTERFACE eth0 ppp0 BROADCAST detect noping OPTIONS

3) Configurerlefichier"interfaces"

22287750.odt

Page66sur141

20/09/09

Colonne ZONE INTERFACE BROADCAST

Description Unezonedfiniedanslefichierzonesou"".Sivousspcifiez"",vousdevezutiliserle fichierhostspourdfinirleszonesaccdesviacetteinterface. Lenomd'uneinterface(exemples:eth0,ppp0,ipsec+,etc.) L'adressebroadcastdusousrseauattach l'interface.Ilfautlalaisservidepourles interfacesPTP(ppp*,ippp*);sivousavezbesoindespcifierdesoptionspourdetellesinter faces,entrez""danscechamps.Sivousspcifiezlavaleurspciale"detect",lefirewalld termineraautomatiquementl'adressebroadcast.Notezquepourutiliserceci,vousdevezavoir iprouteinstalletl'interfacedoittremonteavantledmarragedufirewall.

Unelisted'optionssparespardesvirgules.Lesoptionspossiblessont:blacklist,dhcp, noping,routestopped,norfc1918,routefilter,multi,dropunclean. routestopped":cequisignifiequelorsquelefirewallestarrt,letrafficdeetverscethteseraaccept etle routageseferaentrecethteetlesautresinterfacesethtesquiontl'attribut"routestopped".Cetattributn'estplus valabledanslesnouvellesversions.Ilfaututiliserlefichierroutestopped. "noping":Signifiequ'ilseraimpossibledepinguerlefirewalldepuisInternet. Lefichiermasqestutilis pourdfinirlemasquageIPclassique.Apartirdelaversion1.2.5deShorewall,ilpeut aussiservir dfinirdesNATSource(SNAT).Ilyauneentredanslefichierpourchaquesousrseauquevousvoulez masquer. LesadressesrservesparlaRFC1918viiisontparfoisdsignescommenonroutablescarlesrouteursInternet (backbone)nefontpascirculerlespaquetsquiontuneadressededestinationappartenantlaRFC1918.Lorsqu'unde vossystmesenlocal,l'ordinateur1(l'adresse192.168.1.2dur seaulocal)demandeuneconnexionunserveurpar Internet,lefirewalldoitappliquerunNAT(NetworkAddressTranslation).Lefirewallrcritl'adressesourcedanslepa quet,etl'aremplaceparl'adressedel'interfaceexternedufirewall;end'autresmots,lefirewallfaitcroirequec'estlui mmequiinitielaconnexion.Ceciestncessaireafinquel'htededestinationsoitcapablederenvoyerlespaquetsaufi rewall(souvenezvousquelespaquetsquiontpouradressededestination,uneadresserserveparlaRFC1918nepour rontpastreroutstraversInternet,doncl'hteInternetnepourraadressersarponsel'ordinateur1).Lorsquelefire wallreoitlepaquetderponse,ilremetl'adressededestination192.168.1.2etfaitpasserlepaquetversl'ordinateur1. SurlessystmesLinux,ceprocdestsouventappeldel'IPMasqueradingmaisvousverrezaussiletermede SourceNetworkAddressTranslation(SNAT)utilis.ShorewallsuitlaconventionutiliseavecNetfilter: Masqueradedsignelecasouvouslaissezvotrefirewalldtecterautomatiquementl'adressedel'interfaceexterne. SNATdsignelecasovousspcifiezexplicitementl'adressesourcedespaquetssortantdevotrerseaulocal. SousShorewall,autantleMasqueradingqueleSNATsontconfigursavecdesentresdanslefichier/etc/shore wall/masq.VousutilisereznormalementleMasqueradingsivotreadresseIPexterneestdynamique,etSNATsielleest statique. Pourprofiterdecetteoutil,vousdevezavoirNATactiv.Leschampsdecefichiersont: Sieth0estlacarterseauquiinterfacelerseaulocal.
#INTERFACE ppp0 SUBNET eth0 ADDRESS

OPTIONS

4) Configurerlefichier"masq"

Colonne INTERFACE

Description L'interfacequimasqueralesousrseau;c'estnormalementvotreinterfaceinternet.Cenom peutoptionnellementtrequalifienajoutant":"etunsousrseauouunhteIP .Quandcette qualificationestajoute,seulementlespaquetsadressscethteoucesousrseauseront masqus. Lesousrseauquevousvoulezvoirmasquparl'interface.Ilpeuttreexprimsommeune simpleadresseIP ,unsousrseauouunnomd'interface.Danslederniercas,l'interfacedoit treconfigureetdmarreavantShorewall,etShorewalldtermineralesousrseauenfonc tiondesinformationsfourniesparl'utilitaire'ip'. L'adressesourceutiliserpourdespaquetssortants.Cettecolonneestoptionnelleetsivide, l'adresseIPcourantedel'interfacedelapremirecolonneestutilise.

SUBNET

ADDRESS

Lefichierpolicyestutilispourdcrirelapolitiquedufirewallconcernantl'tablissementdesconnexions.L'tablis sementdesconnexionsestdcritentermedeclientsquiinitientdesconnexionsetdesserveursquireoiventcesrequtes deconnexion.Lespolitiquesdfinissentquelleszonessontautorisestablirdesconnexionsavecquellesautreszones. LefichierpolicyestludehautenbasetShorewallutiliselapremirepolitiqueapplicablequ'iltrouve.Faitesatten tionl'ordredecespolitiques. Sieth0estlacarterseauquiinterfacelerseaulocal.


#SOURCE DEST POLICY LOG LEVEL LIMIT:BURST

5) Configurerlefichier"policy"

22287750.odt

Page67sur141

20/09/09

loc net fw net all

net fw net all all

ACCEPT ACCEPT ACCEPT DROP DROP info info info

???Onacceptepardfauttoutcequivadurseaulocalverslefirewall. Lapremireaqqcvoiraveclefirewall?Jepensaisquec'taitentrelerseaulocaletlenet! Onacceptepardfauttoutcequivientd'Internetverslefirewall OnacceptepardfauttoutcequivadufirewallversInternetenloguant Caveutdirequoienloguant? Decettemanirevousalleravoirlapolitiquesuivante.ToutcequivientdurseaulocaletquiveutsortirversInternetle pourraycomprisdeschosescommeChevauxdeTroie(Trojan),Spyware....Enrevanchetoutcequiessayerad'tablirune connexiondepuisInternetverslerseaulocalnelepourrapas. C'estlapremirepolitiquedescurit,lamoinscontraignantemaispaslaplusperformante. Unefoisquevousaurezdfinitouteslesrglesdedroitsdesortieauniveaudufichierrulesvouspourrezalorspassez cettergleDROPainsitoutcequiessayeradesortirparunautreportqueceuxquevousavezdfininelepourrapas.Sachez quesivousutilisezparexempleunnouveaulogicielquelconquequitravaillesurunportdonn etquiabesoinsdesortirsur Internet,ilfaudratoutd'abordouvrirle(s)port(s)dulogiciel. Ex:Sivousvoulezrecevoirvosmailetquevousn'avezpasouvertleport110(portpop),alorslefirewallsupprimera touslespaquetsqu'ilrecoitenloguanttoutcecidans/var/log/messages Onsupprimepardfauttoutcequivientd'Internetverspartout(dansnotrerseaulocal)enloguant Onsupprimepardfauttoutcequivientdepartoutverspartoutenloguant Colonne Description SOURCE DEST POLICY Lenomd'unezonecliente(unezonedfiniedanslefichierzone,lenomdelazonedufirewall "fw",ou"all") Lenomd'unezonededestination(unezonedfiniedanslefichierzone,lenomdelazonedu firewall"fw",ou"all") LapolitiquepardfautpourlesrequtesdeconnexionsdelazoneCLIENTlazoneSERVEUR. ACCEPT:laconnexionestautorise DROP:larequtedeconnexionestignore(commelePCn'existaitpas) REJECT:larequtedeconnexionestrejeteavecunpaquetRST(TCP)ouICMPdestina tioninaccessibleretournauclient CONTINUE:laconnexionn'estniaccepte,niignore,nirejete.CONTINUEpeuttreutili squanduneoulesdeuxzonesnommesdanslalignesontdessouszonesoucroisentune autrezone. Optionnel.Siomis,aucunmessagen'estgnrquandlapolitiqueestapplique.Sinon,cette colonnedevraitcontenirunchiffreounomindiquantunniveaudelogsyslog.

LOGLEVEL

Lefichierrulesdfinitlesexceptionsauxpolitiquesdfiniesdanslefichierpolicy.Ilyaunelignedanslefichier rulespourchaquergle.Leschampsdufichierrulessont:
#ACTION ACCEPT ACCEPT SOURCE net:IP_INTERNET/27 net:IP_INTERNET/27 DEST fw fw PROTO tcp udp DEST PORT SOURCE PORT(S) ORIGINAL DEST # Internet Vers le Firewall

6) Configurerlefichier"rules"

# Atteindre le Firewall par le reseau local # SSH (Telnet Securis...) et Telnet non securis ACCEPT loc fw tcp 22,23 # Firewall Vers Internet # DNS , HTTP, POP, SMTP, NNTP, SSL (=HTTPS) ACCEPT ACCEPT # ACCEPT ACCEPT net fw fw net icmp icmp # accepter les ping vers l'extrieur fw fw net net tcp udp 53,80,110,25,119,443 53 pour tre reconnu par les routeurs

# accepter les ping de l'extrieur : important pour les serveurs DNS

22287750.odt

Page68sur141

20/09/09

# accepter les ping du rseau local ACCEPT ACCEPT masq fw fw masq icmp icmp # accepter les ping vers le rseau local # permettre notre PC d'accder un serveur X distant identifi par son IP ou sa MAC adresse. ACCEPT net:ip_serveur fw udp 6000:6015 ACCEPT net:ip_serveur fw tcp 6000:6015

ACCEPT net:~MAC-ADDR-SEPARER-PAR-DES-SYMBOLES-MOINS fw udp 6000:6015 ACCEPT net:~MAC-ADDR-SEPARER-PAR-DES-SYMBOLES-MOINS fw tcp 6000:6015

Colonne ACTION

Description ACCEPT,DROPouREJECT.Cesvaleursontlammesignificationiciquedanslefichierpolicy. DNAT:FaitsuivrelesappelssurunportdurouteurversunautrePCdurseaulocal Apartirdelaversion1.0.4,cecipeutventuellemenntsuivipar":"etunniveaudelogsyslog (exemple:REJECT:info).Cecifaitquelepaquetestlogguauniveauspcifiavantd'tre accept,ignorourejet. CONTINUE,DNAT,REDIRECTetLOG Dcritleclient.Ceclientdoitcommencerparlenomd'unezone,maispeuttrequalifien ajoutant":"etunqualificatif.Lesqualificatifssontsoit:lenomd'uneinterface(exemple: loc:eth4),soituneadresseIP(exemple:net:155.186.235.151),soituneadresseMACdansle formatutilisparShorewall,soitenfinunsousrseau(exemple:net:155.186.235.0/24). Dcritleserveur.Cechampspeutprendren'importequelleformedcritepourleCLIENT,plus deuxformessupplmentaires:unadresseIPsuiviepar":"etlenumrodeportsurlequel couteleserveur(exemple:loc:192.168.1.3:80),etdeux":"suivisparunnumrodeport (exemple:fw::8080cetteformen'estautorisequepourlazonedufirewall"fw"etserfre unserveurfonctionnantsurlefirewallluimmeetcoutantsurleportspcifi). Doittrelenomd'unprotocoledfinidans/etc/protocols,unnombre,"all"ou"related". Spcifieleprotocoledelarequtedeconnexion."related"doittrespcifiseulementsivous avezdfiniALLOWRELATED="no"danslefichiershorewall.confetquevousvoulezcraserce paramtrepourlesconnexionsdesclientsauxserveursdfinisdanscettergle.Quand"rela ted"estspcifi,lerestedescolonnesdevraittrelaissvide. Leportoulaplagedeportsconnects.Nepeuttrespcifiquesileprotocolesttcp,udpou icmp.Pouricmp,cechampsestinterprtcommeuntypeicmp.Sivousnevoulezpasspcifier deport(s)maisquevousavezbesoind'incluredesinformationsdansundeschampsdroite, entrez""danscettecolonne.Apartirdelaversion1.1.12,vouspouvezdonnerunelistede portset/ouuneplagedeportssparespardesvirgules.Uneplagedeportsalaforme: Peuttreutilispourrestreindrelargleunportouuneplagedeportsclientsparticuliers.Si vousnevoulezpasrestreindrelesportsclientsmaisvoulezspcifieruneADRESSEdanslaco lonnesuivante,entrez""danscettecolonne.Apartirdelaversion1.1.12,vouspouvezdonner unelistedeportset/ouuneplagedeportssparespardesvirgules. SilechampACTIONestDNATouREDIRECTetlacolonneORIGINALDESTestlaissevide, n'importequelledemandederaccordementarrivantaufirewalldelaSOURCEquiconvient largleseraexpdieouroriente.Cecifonctionnetrsbienpourdesdemandesderaccorde mentarrivantdel'InternetolefirewallaseulementuneadresseIPexternesimple.Quandle firewalladesadressesexternesd'IPmultiplesouquandlaSOURCEestautrequel'Internet,ily aurahabituellementundsirpourquelargles'appliqueseulementcesdemandesderaccor dementdirigesversdesadressesparticuliresd'IP(voirl'exemple2cidessouspouruneautre utilisation).Cesadressesd'IPsontindiquesdanslacolonneORIGINALDESTcommeuneliste virgulespare.

SOURCE

DEST

PROTO

DESTPORT

SOURCEPORT

ORIGINALDEST

Onpeutfairetournerunouplusieursserveurssurnosordinateurslocaux.Parcequecesordinateursontune adresseRFC1918,iln'estpaspossiblepourlesclientssurInternetdeseconnecterdirectementeux.Ilestncessaire cesclientsd'adresserleursdemandesdeconnexionaufirewallquircritl'adressededestinationdevotreserveur,etfait passerlepaquetceluici.Lorsquevotreserveurrpond,lefirewallappliqueautomatiquementunSNATpourrcrirel'a dressesourcedanslarponse. CeprocdestappelPortForwardingouDestinationNetworkAddressTranslation(DNAT).Vousconfigurezleport forwardingenutilisantlesrglesDNATdanslefichier/etc/shorewall/rules. Laformegnraled'unesimplergledeportforwardingdans/etc/shorewall/rulesest: 22287750.odt Page69sur141 20/09/09

Action DNAT

Source Destination net

Protocole

Port

Sourceport

Original ad dress

loc:<server local ip address> [:<server <protocol <port> port>] > Voicideuxexemples,cesontdeuxlignesd'unfichierrules.Lepremierexemplemontrelaredirectionduport80du firewallversleport80(mmeport)duPCd'adresse192.168.1.2etlasecondelaredirectionduport5000versleport80 duPC192.168.1.3.CettederniremthodepermetdedtournerlesFAIquibloquentlesrequtesentrantesdeconnexion surleport80.pouraccderauport80(serveurhttp)duPC192.1.68.1.3,ilfaudraappelerleport5000dufirewall.
DNAT DNAT net net loc:192.168.1.2 tcp 80 5000 loc:192.168.1.3:80 tcp

Pourobligerlesrequettesvenantdusousrseauallantversinternet passerparsquid( voirXIII)Proxi)quiestsurle port3128:


REDIRECT masq 3128 tcp www

LestunnelssontutilisspourlaconfigurationdesVPN(RseauxPrivsVirtuels).
# TYPE ZONE GATEWAY GATEWAY ZONE

7) Configurerlefichier"tunnels"

Colonne TYPE ZONE GATEWAY GATEWAYZONE

Description Letypedetunnelconfigurer.Letypepardfaut,"ipsec". Lazonesurlaquelleletunnelseraconfigur. Lapasserelledutunnel. Lazonedelapasserelledutunnel.

Pourlaplupartdesapplications,spcifierleszonesentiremententermesd'interfacesrseauxestsuffisant.Cepen dant,parfoisonabesoindedfinirunezonecommeunensembled'htes.C'estlebutdufichierhosts. Attention!90%desutilisateursdeShorewalln'ontpasbesoind'utilisercefichier,et80%deceuxquiessaientd'a jouterdesentresdanscefichierlefontmal.AmoinsquevousnesoyezABSOLUMENTSURd'avoirbesoind'ajouterdes entrescefichier,nelefaitespas.


#ZONE loc HOST(S) eth0:192.168.1.0/24 OPTIONS routestopped

8) Configurerlefichier"hosts"

Voicil'expliquationdecettesyntaxe:192.168.1.0/24 192.168.1.0:dsignel'adressededpartdurseau /24:dsignelemasquedesousrseauetestquivalent255.255.255.0(192.168.1.0/255.255.255.0)./navecn entre1et31indiqueunnombredontl'critureenbinaire32chiffresaveclesnpremiers1etlereste0.Cecidonne parexemplepourdescasbienprcis: FormeCourte FormeComplte MaximumdeMachine Commentaire /8 /16 /24 Colonne ZONE HOST /255.0.0.0 /255.255.0.0 /255.255.255.0 16777215 65535 255 Description Lazonespcifiedoittredfiniedanslefichierzone. Lenomd'uneinterfacesuivipar:puissuivisoitpar: l'adresseIP:eth0:192.168.1.3 lesousrseau:eth0:192.168.1.0/24 Soit"routestopped",soitvide.Quandlefirewallestarrt,letrafficdeetverscethtesera acceptetleroutageseferaentrecethteetlesautresinterfacesethtesquiontl'attribut "routestopped". Sivousnedfinissezpasd'htespourunezone,leshtesdelazoneprendrontpardfautla valeuri0:0.0.0.0/0,i1:0.0.0.0/0,...oi0,i1,...sontlesinterfacesdecettezone. RseaudeclasseA RseaudeclasseB RseaudeclasseC

OPTIONS

C'esttrssimple,ilnevousresteplusqu' redmarrershorewallentapant:/etc/init.d/shorewallrestart.Etl,at tention,uneerreurpeut,parprotectionbloquertouslesports!

9) Prendreencomptelaconfiguration

22287750.odt

Page70sur141

20/09/09

B) NotionsIptables
Voiraussi:http://linux.developpez.com/guide/x7875.html#AEN8027
# iptables -L target

1) Onvrifiequ'iptablesestdisponible

Chain INPUT (policy ACCEPT) prot opt source destination

Chain FORWARD (policy ACCEPT) target prot opt source destination

Chain OUTPUT (policy ACCEPT) target prot opt source destination

Sinononaquelquechosedugenre:
# iptables -L iptables v1.2.3: can't initialize iptables table `filter': ... Perhaps iptables or your kernel needs to be upgraded.

Iptablesestuneinstructiondisponiblepartird'unterminal,onpeutmanuellementrentrerlescommendesunepar unepourmettreenplaceunfirewall,maisilestpluttrecommandd'enfaireunfichierqu'onexcuteauchaquedmar rageouchangementdeconfiguration(voirparagraphesuivant).Enrevanche,ilestpossibledetesteruneunelescom mandes/modificationsqu'oncomptemettredanscefichierdeconfigurationsurunterminal. Un man iptables vous informera sur les possibilits de cette fonction. Le fichier de configuration suivant commentdevraitdjvousenmontreruncertainnombre. Vousdevezmettreunfichieraveclesdroitsrwxrrcontenantleslignessuivantesdans/etc/init.d.Cefichier,je vaisl'appelerfirewall ,envoiciunexemplecomment,ilestlong,maisilfautlemettrecompltementpourpouvoir lerecopier:
#!/bin/sh # ATTENTION la ligne du dessus # n'est pas un commentaire # variable (ipt) pour l'appel l'excutable de iptables # => tester le mme script avec plusieurs version de iptables ipt=/sbin/iptables # Pour simplifier une modification ventuelle des cartes rseaux LOCAL="eth0" # connexion vers le rseau local pour une passerelle NET="eth1" # connexion vers internet RESEAU='192.168.0.0/16' # rseau local pour une passerelle PPP="ppp0" case "$1" in start) echo "Mise en place du mur de feu" # /etc/network/if-pre-up.d/$ipt-start # Script qui dmarre les rgles de filtrage "$ipt" # MISE ZERO des rgles de filtrage $ipt -F $ipt -t nat -F $ipt -t nat -X # Je veux que les connexions entrantes soient bloques par dfaut $ipt -P INPUT DROP # Je veux accepter les connexions qui entrent par

2) Iptables

3) Fichierdeconfiguration

22287750.odt

Page71sur141

20/09/09

# une interface et sortent par l'autre (ex. de eth1 vers ppp0) # appel aussi Forwarding $ipt -P FORWARD ACCEPT # Je veux que les connexions sortantes soient acceptes par dfaut $ipt -P OUTPUT ACCEPT # Pas de filtrage sur l'interface de "loopback" # Je dconseille de retirer cette rgle car # a peut poser pas mal de problme et faire perdre # la main sur la machine $ipt -A OUTPUT -o lo -j ACCEPT $ipt -A INPUT -i lo -j ACCEPT # Je veux permettre tous les paquets sortants provenant de mon ordinateur # redondant avec $ipt -P OUTPUT ACCEPT # $ipt -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT # Si je veux avoir une politique plus contraignante, je peux filtrer # les demandes locales vers l'extrieur. Voici un listing rcupr sur # http://lea-linux.org/reseau/murdefeu.html # en tcp : # domain (obligatoire), # ftp, # ftp-data, # sftp # www, # https, # pop-3, # imap2, # imap3, # smtp, # ircd, # cvspserver, # rsync, # 7070 (realaudio), # 11371 (keyserver), # ssh, # 1441 (flux ogg de radio france) # en udp : # domain (obligatoire), # 123 pour ntp # iptables -A OUTPUT -o $NET -p udp --dport 123 -j ACCEPT # 6970 et 7170 (realaudio) # Dcommentez la ligne suivante pour # accepter le protocole ICMP (ex.ping) $ipt -A INPUT -p icmp -j ACCEPT #protection contre le ping de la mort # iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT # Dcommentez la ligne suivante pour # accepter le protocole IGMP (multicast) # $ipt -A INPUT -p igmp -j ACCEPT # J'accepte les packets entrants relatifs des connexions dj tablies $ipt -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT # Dcommentez la ligne suivante pour que le serveur FTP ventuel # soit joignable de l'extrieur # $ipt -A INPUT -p tcp --dport 21 -j ACCEPT

22287750.odt

Page72sur141

20/09/09

# La rgle pour le port 20 est inutile quand on utilise le suivi de connexion. # Le port 20 est utilis uniquement comme port source par un serveur FTP en # mode actif pour tablir une connexion ftp-data _sortante_ vers le client. # $ipt -A INPUT -p tcp --dport 20 -j ACCEPT # Dcommentez la ligne suivante pour que le serveur SSH ventuel # soit joignable de l'extrieur $ipt -A INPUT -p tcp --dport 22 -j ACCEPT # Dcommentez la ligne suivante pour que le serveur de mail ventuel # soit joignable de l'extrieur # $ipt -A INPUT -p tcp --dport 25 -j ACCEPT # Dcommentez les deux lignes suivantes pour que le serveur de DNS ventuel # soit joignable de l'extrieur $ipt -A INPUT -p tcp --dport 53 -j ACCEPT $ipt -A INPUT -p udp --dport 53 -j ACCEPT # Dcommentez la ligne suivante pour que le serveur Web ventuel # soit joignable de l'extrieur (tcp uniquement) $ipt -A INPUT -p tcp --dport 80 -j ACCEPT # Dcommentez la ligne suivante pour que Imap soit # accssible sur le rseau interne # 110 c'est le port pour POP3, et le port IMAP est plutt le 143 : revoir # $ipt -A INPUT -i $LOCAL -p tcp --dport 110 -j ACCEPT # Dcommentez la ligne suivante pour que le serveur sftp ventuel # soit joignable de l'extrieur # $ipt -A INPUT -p tcp --dport 115 -j ACCEPT # Dcommentez la ligne suivante pour que le serveur ntpd ventuel # soit joignable de l'extrieur # $ipt -A INPUT -p udp --dport 123 -j ACCEPT # Ou uniquement de votre rseau interne $ipt -A INPUT -i $LOCAL -p udp --dport 123 -j ACCEPT # Dcommentez la ligne suivante pour que le serveur CUPS ventuel # soit joignable de l'extrieur # $ipt -A INPUT -p tcp --dport 631 -j ACCEPT # CUPS uniquement pour le rseau interne # $ipt -A INPUT -i $LOCAL -p tcp --dport 631 -j ACCEPT # Dcommentez les lignes suivantes pour que le serveur NFS ventuel # configurer selon mon cours http://troumad.org/Linux/Linux.odt # soit joignable du rseau interne # /!\ dans les nouvelles versions mport a t remplac par multiport #$ipt -A INPUT -i $LOCAL -p tcp -m mport --dport 111,2049,4000:4003 -j ACCEPT #$ipt -A INPUT -i $LOCAL -p udp -m mport --dport 111,2049,4000:4003 -j ACCEPT # Ceci remplace les lignes suivantes : # $ipt -A INPUT -i $LOCAL -p tcp --dport 111 -j ACCEPT # $ipt -A INPUT -i $LOCAL -p tcp --dport 2049 -j ACCEPT # $ipt -A INPUT -i $LOCAL -p tcp --dport 4000 -j ACCEPT # $ipt -A INPUT -i $LOCAL -p tcp --dport 4001 -j ACCEPT # $ipt -A INPUT -i $LOCAL -p tcp --dport 4002 -j ACCEPT # $ipt -A INPUT -i $LOCAL -p tcp --dport 4003 -j ACCEPT # $ipt -A INPUT -i $LOCAL -p udp --dport 111 -j ACCEPT # $ipt -A INPUT -i $LOCAL -p udp --dport 2049 -j ACCEPT # $ipt -A INPUT -i $LOCAL -p udp --dport 4000 -j ACCEPT # $ipt -A INPUT -i $LOCAL -p udp --dport 4001 -j ACCEPT # $ipt -A INPUT -i $LOCAL -p udp --dport 4002 -j ACCEPT # $ipt -A INPUT -i $LOCAL -p udp --dport 4003 -j ACCEPT # Dcommentez les lignes suivantes pour que le serveur Samba soit actif

22287750.odt

Page73sur141

20/09/09

# uniquement vers le rseau local #$ipt -A INPUT -i $LOCAL -p tcp -m mport --dport 137,139,445 -j ACCEPT #$ipt -A INPUT -i $LOCAL -p udp -m mport --dport 137,139,445 -j ACCEPT # Dcommentez les lignes suivantes pour que le serveur Gnweb # ventuel soit accessible # $ipt -A INPUT -p tcp --dport 2317 -j ACCEPT # Pour que l'administration du serveur Geneweb soit accessible de l'extrieur # $ipt -A INPUT -p tcp --dport 2316 -j ACCEPT # Pour laisser l'accs MySQL # $ipt -A INPUT -p tcp --dport 3306 -j ACCEPT # $ipt -A INPUT -i $LOCAL -p tcp -m mport --dport 3306 -j ACCEPT # Pour laiser l'accs postgresql en local avec un filtre sur les Ip appelantes # i$pt -A INPUT -i $LOCAL -s Ip/masque -m state --state NEW -p tcp --dport 5432 -j ACCEPT # Pour laisser passer le protocole nut : vision de l'tat de l'onduleur $ipt -A INPUT -i $LOCAL -p tcp --dport 3493 -j ACCEPT # Pour faire fonctionner correctement bittorent $ipt -A INPUT -p tcp -m multiport --dport 6969,6881:6889 -j ACCEPT # Mme chose avec une version plus ancienne de Iptables #$ipt -A INPUT -p udp --dport 6881 -j ACCEPT #$ipt -A INPUT -i $LOCAL -p tcp -m mport --dport 6969,6881:6889 -j ACCEPT # Pour VPN : http://pptpclient.sourceforge.net/howto-mandrake-101.phtml # $ipt -A INPUT -i $LOCAL -p gre # ACCEPT net fw gre # $ipt -A INPUT -i $LOCAL -p tcp --dport 1723 # ACCEPT net fw tcp 1723 # Pour les log $ipt -A INPUT -j ULOG # voir http://olivieraj.free.fr/fr/linux/information/firewall/fw-03-09.html # + complment dans la partie sur les log de mon cours # La rgle par dfaut pour la chaine INPUT devient DROP # pour des raisons de scurit $ipt -A INPUT -j DROP # FIN des rgles de filtrage # DEBUT des rgles pour le partage de connexion (i.e. le NAT) # Dcommentez la ligne suivante pour que le systme fasse office de # "serveur NAT" et ainsi cacher les machines forwardes par le firewall # $ipt -s $RESEAU -t nat -A POSTROUTING -o $NET -j MASQUERADE $ipt -t nat -A POSTROUTING -o $NET -j MASQUERADE # option -s pour limiter un sous rseau echo 1 > /proc/sys/net/ipv4/ip_forward # transfrer l'appel ssh vers le PC 192.168.1.15 $ipt -t nat -A PREROUTING -j DNAT -i $NET -p TCP --dport 22 --to-destination 192.168.1.10 # redirige un appel sur le port 2121 vers le port 21 (ftp) du PC 192.168.1.10 #$ipt -A INPUT -p tcp --dport 2121 -j ACCEPT #$ipt -t nat -A PREROUTING -j DNAT -i $NET -p TCP --dport 2121 --to-destination 192.168.1.10:21 # $ipt -A FORWARD -i $NET -m state --state ESTABLISHED,RELATED -j ACCEPT vrifier # avec uniquement cette ligne : paser le dtp en mode passif # module charger pour faciliter les choses (ip_nat_ftp et # modprobe ip_conntrack_ftp ports=21,2211 ip_conntrack_ftp) :

22287750.odt

Page74sur141

20/09/09

# modprobe ip_nat_ftp ports=21,2211 # redirige l'appel du port 22222 vers le port 22 du PC 192.168.2.1 # (c'est dire celui-l, mais sur sa carte orient vers le rseau priv $ipt -A INPUT -p tcp --dport 22222 -j ACCEPT $ipt -t nat -A PREROUTING -j DNAT -i $NET -p TCP --dport 22222 --to-destination 192.168.2.1:22 # Si la connexion que vous partagez est une connexion ADSL, vous # serez probablement confront au fameux problme du MTU. En rsum, # le problme vient du fait que le MTU de la liaison entre votre # fournisseur d'accs et le serveur NAT est un petit peu infrieur au # MTU de la liaison Ethernet qui relie le serveur NAT aux machines qui # sont derrire le NAT. Pour rsoudre ce problme, dcommentez la ligne # suivante et remplaez "eth0" par le nom de l'interface connecte # Internet. # $ipt -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS -o eth0 --clamp-mss-to-pmtu # se protger d'une attaque Denial of Service, dont le but est de saturer la passerelle par # de nombreuses connexions non abouties, et ainsi de la faire tomber sous la charge echo 1 > /pros/sys/net/ipv4/tcp_syncookies # FIN des rgles pour le partage de connexion (i.e. le NAT) # DEBUT des rgles de port forwarding # Dcommentez la ligne suivante pour que les requtes TCP reues sur # le port 80 de l'interface eth0 soient forwardes la machine dont # l'IP est 192.168.2.15 sur son port 80 (la rponse la requte sera # forwarde au client) # $ipt -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 192.168.2.15:80 # FIN ;; ouvert) echo "Arret du mur de feu" # deux possibilits : firewall ouvert ou ferm # Dbut rgles ouvert" # On vide (flush) toutes les regle existantes #$ipt -F #$ipt -X # On remet la police par defaut # $ipt -P INPUT ACCEPT # $ipt -P FORWARD ACCEPT # $ipt -P OUTPUT ACCEPT ## fin des options firewall ouvert ;; stop) echo "Isolement complet" # dbut rgles fermes $ipt -F des rgles de port forwarding # FIN du script de dmarrage

22287750.odt

Page75sur141

20/09/09

$ipt -t nat -F $ipt -t mangle -F $ipt -X $ipt -t nat -X $ipt -t mangle -X $ipt -P INPUT DROP $ipt -P OUTPUT DROP $ipt -P FORWARD DROP $ipt -t nat -P PREROUTING ACCEPT $ipt -t nat -P POSTROUTING ACCEPT $ipt -t nat -P OUTPUT ACCEPT $ipt -A OUTPUT -o lo -j ACCEPT $ipt -A INPUT -i lo -j ACCEPT

$ipt -A INPUT -i $LOCAL -d $RESEAU -p tcp --dport 22 -j ACCEPT $ipt -I OUTPUT -p tcp --sport 22 -j ACCEPT # Un bon firewall arrt est un firewall *ferm*, # je suis laxiste, je laisse le loopback ouvert. # En plus je permet toujours du ssh du lan : le serveur est sans clavier ni cran ! # fin rgles fermes ;; restart) # Le stop est inutile car le start vide aussi les chanes et redfinit les politiques par dfaut # $0 stop # /bin/sleep 1 # /usr/bin/sleep 1 ;;

*) echo "Usage: $0 {start|stop|ouvert|restart}" exit 1 ;; esac

Unautreexemple:http://www.canonne.net/linux/iptables/firewall.sh.php?print=1

Pourautomatiserlamiseenmarcheetl'arrtdeceprogrammeilfautlesflcherdansles/etc/rcX.d.Avecunpeu dechancedans/etc/inittab,vousaurezuncommentairepoursavoir quoicorrespondquel/etc/rcX.d,sinon,ilfaudra dcortiquercequ'lscontiennent. SurMandriva:


# Default runlevel. The runlevels used by Mandrivalinux are: # # # # 0 - halt (Do NOT set initdefault to this) 1 - Single user mode 2 - Multiuser, without NFS (The same as 3, if you do not have networking) 3 - Full multiuser mode

4) Miseenplace

22287750.odt

Page76sur141

20/09/09

# # # #

4 - unused 5 - X11 6 - reboot (Do NOT set initdefault to this)

id:5:initdefault:

SurDebian:
# The default runlevel. id:2:initdefault: # [...] # /etc/init.d executes the S and K scripts upon change # of runlevel. # # Runlevel 0 is halt. # Runlevel 1 is single-user. # Runlevels 2-5 are multi-user. # Runlevel 6 is reboot.

Donc,jelesmetsendmarragesurrc1.d,rc2.d,rc3.d,rc4.detrc5.d,l'arrtsurrc0.detrc6.denlieuetplacede shorewalloud'unautrefirewallquiseraitdjinstall.Pourles5dud marrage:


cd /etc/rc5.d ln -s ../init.d/firewall S10firewall

Pourles2autres:
cd /etc/rc0.d ln -s ../init.d/firewall K90firewall

C) Tests
Ilexistedessitespartirdesquelsonpeuttesternotreconfiguration: Envoici: un:https://grc.com/x/ne.dll?bh0bkyd2 Puisuneliste:http://www.linuxsec.net/Audit/nmap.test.gwif.html http://check.sdv.fr/

Unautretestpourfairepeur:http://leader.ru/secure/who.html

22287750.odt

Page77sur141

20/09/09

XIV) ServeurDNS

A) Prsentation
UnserveurDNSestunserveurquisertconvertirdesadressesnoms(FQDNix)enadressesIP .Parexemple,quand voustapezdansvotrenavigateurprfr l'adresse: http://lealinux.org,celuicivatoutd'abordfaireunerequte un serveurDNS(gnralementleserveurDNSquevousavezconfigurpourvotreconnexion l'Internet,donclesserveurs DNSdevotrefournisseurd'accs)enluidemandant: C'estquoil'adresseIPdelealinux.org?LeserveurDNSluidonnel'adresseIPetlenavigateurvaalorsseconnecter cetteadresseIP(80.245.32.131)etafficherlesite.Ceciestvalablepourtouteautreapplicationquimanipuledesnoms DNS(ftp,telnet,mail,....). SousLINUX,leserveurDNSleplusrpandus'appelle BIND urpmi bind.Cesfichiersdeconfigurationsont /etc/named.conf (contient les paramtres gnraux), /var/named/named.ca (indique les serveurs dns racines) et /var/named/named.local(rsolutionlocaledesadressesloopback).Parfois,vousallezenrajouterd'autresenfonction devosbesoins.Ilestbiendelesplacerdans/var/named/. Ilfaut savoir quesi on achte son nom de domaine, nos coordonnes sontpubliques donc accessible tous: http://www.whois.sc/msn.net.

B) Liens
http://lealinux.org/reseau/dns1.php3 http://www.freenix.org/unix/linux/HOWTO/DNSHOWTO.html

C) Exemple
PourfaireacceptervotreserveurDNSilfautparfois(voiraucasparcas)pouvoirlepinguer...Pourmaconfigura tion,j'aidurajouterdans/etc/shorewall/ruleslaligne:ACCEPT net fw icmp .Enrevanche,ilfauttoujours laisserouvertleport53.

1) named.conf
Voiciunficher named.conf:fichierd'amorageduserveurprimairepourmon_lycee.fr
# Dans la partie options, il faut considrer les point suivants: # #- Les requtes les plus nombreuses sont les requtes locales #- Il faut viter de transfrer l'extrieur les informations du rseau interne. # # De fait, il ne faut donc pas forwarder en premier. Le DNS local doit d'abord rsoudre et # s'il n'y arrive pas il forwarde. Sinon, on donne la structure de notre rseau l'extrieur # tant donn qu'on fait d'abord un forward. En plus les temps de rponse du DNS local sont # toujours plus rapide que ceux des DNS externes. # # De plus, je conseille de conserver le contrle sur le fichier de process (named.pid), # les adresses sur lesquelles on coute, le niveau d'autorit et la capacit de transfert. # # Le fichier de process c'est /var/run/named/named.pid (c'est la valeur par dfaut, mais mieux # vaut l'avoir explicitement), les adresses d'coute c'est listen-on et listen-on-v6 # (none si on n'a pas d'IPv6), et par dfaut mettre le serveur en mode de transfert non autoris # par allow-transfer { none; }; afin d'avoir le contrle total sur quelle zone peut tre # transfere ou non # options { pid-file "/var/run/named/named.pid directory "/var/named" ; le rpertoire o se trouve les fichiers # forward first ; redirige les requtes puis tentera de rpondre si pas de rponse forwarders { ; serveurs vers lesquelles les requtes sont envoyes 195.98.246.50 ; serveur DNS suprieur }; # listen-on { <liste d'adresses>; # genre 192.168.1.41, il peut y en avoir plusieurs si le serveur

22287750.odt

Page78sur141

20/09/09

# dispose de plusieurs interface. De plus si c'est le cas on peut accepter les requtes # de l'interne mais pas celle de l'externe. Car par dfaut le serveur coute sur toute # les interfaces. }; listen-on-v6 { none; }; allow-transfer { none; }; # par dfaut, les autorisations de transfert tant faites zone par zone auth-nxdomain yes; # sujet discussion mais moi je le met pour tre tranquille };

# la zone hint n'est pas le domaine interne, c'est le domaine racine (root), il est mis en cache # localement afin d'viter une trop grande surcharge des serveurs en question. Le fichier # named.ca est tlcharger sur le site qui va bien (regarder dans named.ca en gnral le nom # du site y est inscrit). C'est un fichier qui ne change pas trs souvent mais qu'il est bon de # mettre jour l'occasion (moi je le fais tous les 6 mois). # zone "." { ; domaine interne type hint; cette entre n'est qu'un endroit o dbuter les recherches file "named.ca"; nom du fichier avec les infos : ne pas le toucher };

zone "0.0.127.in-addr.arpa" { ; zone pour le rseau loopback. type master; file }; "named.local";

zone "1.168.192.in-addr.arpa" in { ; le sous rseau local en 192.168.1.XXX notify no; ne pas prvenir les autres serveurs DNS de modifications ce niveau type master; ce serveur est matre de ce sous rseau file "db.192.168.1"; nom du fichier avec les infos allow-transfer { # liste des ips des serveurs secondaires; # uniquement si on transfert la zone inverse # sur un serveur secondaire local }; }; # La zone directe: # premire remarque, on vite toujours de faire une zone prive identique la zone publique # L'externe dispose ainsi des informations sur la structure interne du rseau et c'est mauvais # pour la scurit. # allow-transfert # 1) si on ne met rien, aucun ne pourra tre secondaire. # 2) si on en met un, il faudra aussi l'ajouter en champ NS et A dans la dfinition de la zone du # domaine concern. Sinon, il aura beau avoir les droit de rcuprer la zone, personne ne le # connatra et ne l'utilisera. zone "lycee.org" { type master; file "named.lycee"; allow-transfer { 213.245.103.18; }; }

22287750.odt

Page79sur141

20/09/09

# Donc si lycee.org est un domaine publique accessible de l'internet, on devrait utiliser un # autre domaine (genre net.lycee.org) pour ton rseau interne et grer ainsi les deux zones. # #La zone prive transfre uniquement sur les secondaires interne, la zone publique transfre # sur les serveurs externes. # # De plus, pour ajouter de la scurit, du fait des deux vues possible # (une interne et une externe) on utilise la fonction view qui permet d'avoir: views "internal" { match-clients { 192.168.1.0/24; uniquement les htes internes; }; dclaration de la zone hint; dclaration de la zone loopback dclaration de la zone reverse interne; dclaration de la zone prive net.lycee.org; }; views "external" { match-clients { any; # tout le monde }; recursion no; # sur celui-l pas besoin d'autoriser les recursions declaration de la zone publique lycee.org; }; # Petit ajout, comme le serveur est accessible de l'extrieur, il est bon de cacher les # information de version et d'hte du serveur en ajoutant dans options: version none; hostname none; server-id none; # plus dans la vue external ajouter une zone de type chaos : zone "bind" chaos { type master; file "bind"; allow-query { localhost; }; };

aveclefichierbindsuivant:
$TTL 1D $ORIGIN bind. @ 1D CHAOS 1 3H 1H 1W 1D ) CHAOS NS localhost. SOA localhost. root.localhost. (

22287750.odt

Page80sur141

20/09/09

etletourestjou,aajoutedelascuritpourviterquelespersonnesexternesnepuissentavoiraccsauxinformation debaseduserveur. Sinon,d'unefaongnrale,danstesfichiersdezone,spcifieendbutdefichierl'originedelazonetraiteparlafonc tion:


$ORIGIN lycee.org. ou $ORIGIN net.lycee.org.

ATTENTIONnepasoublielepointalafin(cepointsignifielazonerootdfiniedansnamed.ca). Parailleurs,surunezoneaccessibledel'extrieuronvitelesenregistrementHINFO,ilsdonnentdesinfosutilepourun hackermaisinutilepourunuserinternet.Jesaisafaitunpeuparano,maislesDNSsontlespremirescibled'unetenta tived'intrusionoud'unDoS Enfin,lefichierhostsn'estutilisenpremierqu'enfonctiondecequiestmislalignehostsdufichier/etc/nsswitch.conf:


hosts: files dns

aveutdire/etc/hostsenpremier,dnsendernier.Leclientdnsinterrogelesserveursdnsdefinisdans/etc/resolv.conf ques'iln'apaseuderponseaveclefichier/etc/hosts avechosts:dnsfiles c'estl'inverse.

2) Fichiernamed.local
@ IN SOA mon_serveur.mon_lycee.fr. postmaster.mon_serveur.monlycee.fr.( 2003091700 ; numro de srie (date 2003-sept-17 et version 00) 28800 ; rafrachissement toutes les 8 heures 14400 ; nouvel essai toutes les 4 heures 604800 ; expiration dans 7 jours 86400 ) ; temps de vie minimal 24 heures NS 1 @ IN PTR mon_serveur.mon_lycee.fr. localhost. SOA mon_serveur.mon_lycee.fr. postmaster.mon_serveur.monlycee.fr.( 2000101500 ; numro de srie 28800 ; rafrachissement toutes les 8 heures 14400 ; nouvel essai toutes les 4 heures 604800 ; expiration dans 7 jours 86400 ) ; temps de vie minimal 24 heures ; serveur de nom IN NS mon_serveur.mon_lycee.fr.

fichier db.192.168.1

; adresses IP inverses 1 2 3 IN PTR IN PTR IN PTR mon_serveur.mon_lycee.fr. ; adresse 192.168.1.1 mon_serveur_web.mon_lycee.fr.; adresse 192.168.1.2 mon_serveur_smtp.mon_lycee.fr.; adresse 192.168.1.3

Fichiernamed.lycee:cefichiermesertredirigerledomainelycee.orgquejeviensd'acheter. Il faut distinguer deux chose: Les htes du domaines et le domaine luimme. Le domaine c'est mon_domaine.fr (format domain.tld). L'hte,enl'occurenceleserveurwebc'estwww,leDNSc'estns1. 22287750.odt Page81sur141 20/09/09

Les noms pleinement qualifis de ces htes (nom FQDN Fully Qualified Domain Name) sont: www.mon_domaine.fr ns1.mon_domaine.fr Jeredirigetoutsurunseulordinateurcarjenedisposequed'uneseuladresseinternetpublique.Pourceci,mon serveurDNSnedoitpas treprotg d'internetcarildoitfournirlesadressesinternetsdemesredirections l'extrieur. L'intrtestdemettreplusieursadressesdesiteinternetsurlePC.Achaquemodificationdecefichier,onsedoitdemo difierlenumrodesriepourquelamodificationsoitpriseencompteparlesautresserveurs.Cenumroseconstituer gulirementdeladate(20031018)etdunumrodelamodificationdecejour(iciversion2)
$TTL 86400 # SOA -> declaration de la zone @ IN SOA ns1.lycee.org. root.lycee.org. 86400 14400 3600000 86400 ) # NS -> dclaration du ou des serveurs de domaine lycee.org. lycee.org IN NS ns1 IN NS ns.serveurdns.org. # serveur d'Ip 213.245.103.18; ; serveur primaire puis secondaire ;notez le '.' la fin de ns.serveurdns.org. ; ce '.' signifie que ns.serveurdns.org est le nom complet. ; l'absence de '.' la fin de troumad signifie ;qu'on doit ajouter lycee.org la fin du nom # MX -> dclaration du serveur de mail IN MX 10 troumad IN HINFO 1 IN PTR PVI_4,5GHz localhost. LINUX ( 2003101802 ; Serial ; Refresh ; Retry ; Expire ; Minimum

;les adresses # A -> dclaration d'htes (les serveurs de domaine sont souvent les premier) ns1 IN A 214.225.113.1 troumad IN A 214.225.113.188 ; les redirections geii IN CNAME troumad bernard IN CNAME troumad marie-claire IN CNAME troumad aline elian IN CNAME troumad IN CNAME troumad

christian IN CNAME troumad sylvie IN CNAME troumad thomas IN CNAME troumad lucas IN CNAME troumad andre IN CNAME troumad jeanine IN CNAME troumad * 300 IN CNAME troumad ;renvoie tous les noms inconnus sur troumad! ;Les noms ne peuvent pas contenir de _

Attention,nepasdfiniraussicesnomsdans /etc/hostssurlesadressesdurseaulocal,sinonsurlePC,onaura d'abordlaredirectionlocal.

22287750.odt

Page82sur141

20/09/09

D) MyDNSAdmin
ParPascalLeneant Oncommencel'installer:urpmi mydns-admin. Ilfaut diterlephpquisetrouvedanslerpertoiredespagesd'apache.Tutrouveras,endbutdefichierdesva riablesdeconnexion labasededonnesMySQL.Danscesvariables(demmoire),ilfautindiquerlamachineo se trouvelabasededonneMySQLddie MyDNS,puislenomdelabasededonnesdeMyDNS(pardfautmydns)et enfinl'utilisateurayantlesdroitsd'administrationdelabaseainsiquesonmotdepasse. Apartirdel,tudoispouvoiraccderlabasededonnesdemydns. Maisilfautquecettebaseexiste.Labasededonnesdoittrecremanuellement.Lorsdel'installationdemydns, danslereadme,tuaslaprocdured'initialisationdelabasededonnes.Iltefautlasuivreetdonnerlesdroitsd'admin l'utilisateurdemydnsetdemydnsadmin.Pourmydnstoutestexpliqu.Demmoireadoitsetrouverdanslerpertoire desdocumentationsmandrivasurtamachineetdanslesousrpertoire"mydns".

E) Tests
Vrifiezquevousn'avezpasfaitd'erreurdesyntaxedanslefichiernamed.conf:
% named-checkconf

Silacommanden'afficherien,c'estquelefichierestvalide.Vouspouvezalorsdire Binddereliresonfichierde configuration:


# /etc/init.d/named reload

VotreserveurDNSferaalorsrgulirementdestransfertsdezonedepuisleserveurprimaire(etnotamment chaquefoisqueleserveurprimaireluinotifierad'unchangementdanslazone). L'utilitairedigpermetdefairedesrequtesDNS voluesetfournitunmaximumd'informationssurlarequte.Il esttrsutilepourvrifierlabonneconfigurationd'unserveurDNS. Exemplesd'utilisationdedig: Requtesurlechamp"A"dunom www.lycee.orgauprsduserveurDNS198.41.0.4(trouvdans/etc/named/named.ca):


% dig @198.41.0.4 www.lycee.org A

Requtesurlachamp"MX"dunomlycee.orgauprsduserveurDNS198.41.0.4 :
% dig @198.41.0.4 lycee.org MX

Requtesurtousleschampsdunomlycee.orgauprsduserveurDNS198.41.0.4 :
% dig @198.41.0.4 lycee.org ANY

RequteAXFRsurledomainemondomaine.orgauprsduserveurDNS198.41.0.4 :
% dig @198.41.0.4 lycee.org AXFR

Requteinverse(i.e.reverseDNS)surl'IP12.42.111.422 auprsduserveurDNS198.41.0.4 :
dig @198.41.0.4 -x 12.42.111.422

Lasortiedelacommandedigesttrsdtaille;larponselarequte(lapartiequivousintresseraleplus!)se trouveendessousdelalignesuivante:
;; ANSWER SECTION:

F) resolv.conf
LalistedesserveursDNSauxquelss'adressevotrePCestdanslefichier/etc/resolv.conf:
$ cat /etc/resolv.conf search linuxmafia.com mon_domaine.fr nameserver 192.168.1.1 nameserver 212.186.224.9 nameserver 212.83.64.138 # ppp temp entry [root@pc_bernard][/etc]$ man resolv.conf

Maispourlerseaulocal,ilyalefichier/etc/hostsquidfinidesraccourcis.Afindedonnerunordredeprsance entrecesfichiers,ilya/etc/hosts.conf: Ilfautregarderdans/etc/hosts.confsionabienl'ordresuivantafindefavorisernotrepropreserveur:


order hosts,bind multi on

22287750.odt

Page83sur141

20/09/09

Lapremirelignesignifiesiquelqu'uncherche accder unemachinesansdonnersonnomcomplet,essayer d'ajouteraunomfournilesuffixe'linuxmafia.com'pardfaut,ouencore'mon_domaine.fr'avantd'abandonner.Lestrois dernireslignesdonnentlesadressesIPdestroisserveursDNSauxquelslersolveur(client)transmettralesdemandes. Unequatrimeadresseneserapaspriseencompte.

22287750.odt

Page84sur141

20/09/09

XV) Proxy

A) Prsentation
Unproxypermetd'acclrervosconnexionsl'internetenplaantencachelessiteslesplusvisits.Ainsidansdes tablissementsscolairescelapermetd'amliorerlesconnexions. LeserveurproxyleplusconnusousLinux,c'estsquid.Onl'installeavecurpmi squid.Sonseulfichierdeconfi gurationdesquidest:/etc/squid/squid.conf. chkconfig squid:dmarrageautomatiquedesquid squid -z:Crationducachesurledisquedur squid -k reconfigure :Relecturedefichiersquid.conf.Celapermetdeprendreencomptedesmodifications danslefichierdeconfigurationsansavoirrelancersquid.Ou/etc/init.d/squid restartavecperteducache.Si Squid ne dmarre pas (ou si lorsque vous voulez l'arrter, il donne une erreur) regardez le fichier /var/log/squid/cache.logilpourravousinformer.Lefichier/var/log/squid/access.logpourraluivousmontrer quelesdernirespagessontpassesparlecache. Maintenant,pourobligerlepassageparleproxi,regarderlechapitresurlefirewall.

B) Fichierdeconfiguration
Voicimon/etc/squid/squid.conf(justeleslignesdcommentes):
hierarchy_stoplist cgi-bin ? acl QUERY urlpath_regex cgi-bin \? no_cache deny QUERY cache_mem 64 MB maximum_object_size 8192 KB cache_dir ufs /opt/squid 1024 16 256 # je choisi la place d'un gros DD presque inutilis dns_nameservers 127.0.0.1 # pour faire appel au DNS local auth_param basic children 5 auth_param basic realm Squid proxy-caching web server auth_param basic credentialsttl 2 hours refresh_pattern ^ftp: refresh_pattern ^gopher: refresh_pattern . acl chez_moi src acl all src 0.0.0.0/0.0.0.0 acl manager proto cache_object acl localhost src 127.0.0.1/255.255.255.255 acl to_localhost dst 127.0.0.0/8 acl SSL_ports port 443 563 acl Safe_ports port 80 acl Safe_ports port 21 acl Safe_ports port 443 563 acl Safe_ports port 70 acl Safe_ports port 210 acl Safe_ports port 1025-65535 acl Safe_ports port 280 acl Safe_ports port 488 acl Safe_ports port 591 acl Safe_ports port 777 acl Safe_ports port 22 acl Safe_ports port 115 acl CONNECT method CONNECT http_access allow chez_moi # Je me donne l'accs au rseau http_access allow manager localhost # suite des permissions http_access deny !Safe_ports http_access deny CONNECT !SSL_ports # http # ftp # https, snews # gopher # wais # unregistered ports # http-mgmt # gss-http # filemaker # multiling http # ssh # sftp 1 1440 0 20% 0% 20% 10080 1440 4320 # j'ai beaucoup de mmoire sur mon serveur.

192.168.1.0/255.255.255.0 # Je dfinis mon rseau local

22287750.odt

Page85sur141

20/09/09

http_access allow localhost http_reply_access allow all icp_access allow all visible_hostname troumad httpd_accel_host virtual httpd_accel_port 80 httpd_accel_with_proxy on httpd_accel_single_host off error_directory /usr/lib/squid/errors/French coredump_dir /var/spool/squid # aucun contrle sur les icp 3130 no-query default # PROXI cache de mon FAI # Nom de mon serveur # Les 4 lignes qui suivent servent configurer un proxi # transparent grce une redirection sur le firewall du routeur # HTTP-accelerateur depuis la version 2 cache_peer proxy04.chello.fr:8080 sibling 8080

httpd_accel_uses_host_header on # HTTP-accelerateur depuis la version 2

C) Francisation
Dans/etc/squid,vouspouvezaussimodifierlelienvers ../../usr/lib/squid/errors/English/pourmettre parexemple../../usr/lib/squid/errors/French/.

D) Squidnetrouveplusvotresiteprfr
C'estuneerreurquipeutarriver:modifierlesserveursDNSde/etc/resolv.conf.

http://www.linuxfrance.org/article/web/egraffin/squid.phphttp://christian.caleca.free.fr/squid/ http://www.accreteil.fr/reseaux/systemes/linux/outilstcpip/squid.html http://stargate.acnancymetz.fr/linux/cache/configuration/configuration.htm

22287750.odt

Page86sur141

20/09/09

XVI) ServeurDHCP

A) Prsentation
http://www.accreteil.fr/reseaux/systemes/linux/outilstcpip/Linuxdhcp.html LeDHCP(DynamiqueHostConfigurationControl)estunservice,quisert configurerlesparamtresrseauxdes machinesclientes distance.Cecipermet l'ordinateurclient(celuiquireoitl'information)d'avoirlesbonsparamtres pouraccderaurseau.Lesinformationsfourniessont: AdresseIP MasqueRseau(NetMask) Passerelle(Gateway) AdressesdesserveursdeNoms(DNS) Ilpeutreconnatrelesordinateursgrceleurmacadresse(donneuniquexinscriteendursurlacarterseau,voir plusloinunscriptpourlestrouver)et partirdel,endonnanttoujourslammeadresseaummePC,permettredif frentsaccsaurseauenfonctionduPC. LaconfigurationduserveurDHCPconsistetudier2fichiers: /etc/dhcpd.conf:cefichiersertlaconfigurationmmeduserveur(plaged'adresses,paramtresdistribus) /var/lib/dhcp/dhcpd.leases :cefichiervaservir l'inscriptionautomatiquedesclients.Ilpeutnepassetrouver danscerpertoire,celadpenddelaversioninstalle,onpeutaussiletrouverdans /var/dhcpdoudans/etc.Chaque client DHCP , gnre l'criture d'un enregistrement dans ce fichier. Cela permet le suivi de l'activit du serveur (sta tistiques...) et aussi de reprer les mac adresses des PC qui se sont connects afin de peaufiner la configuration de /etc/dhcpd.conf.

B) Exemple
Voiciunfichier/etc/dhcpd.conf:
ddns-update-style none; # ici il s'agit du rseau 192.168.1.0 subnet 192.168.1.0 netmask 255.255.255.0 { #La plage d'adresses disponibles pour les clients range 192.168.1.50 192.168.1.150; # Les clients auront cette adresse comme passerelle par dfaut option routers 192.168.1.1; # Ici c'est le serveur de nom, le serveur priv, # il faut aussi mettre le DNS donn par votre provider. option domain-name-servers 192.168.1.1; option domain-name-servers 212.186.224.9; option domain-name-servers 212.186.224.10; # On donne le nom du domaine option domain-name "lycee.org"; # Et l'adresse utilise pour la diffusion option broadcast-address 192.168.1.255; #Le bail a une dure de 86400 s par dfaut, soit 24 h # On peut configurer les clients pour qu'ils puissent demander une dure de bail spcifique default-lease-time 86400; #On le laisse avec un maximum de 7 jours max-lease-time 604800; } host s_travail { hardware ethernet 00:30:f1:82:35:0f; fixed-address 192.168.2.10; # deny booting; } # donner une adresse fixe au PC identifi par hardware ethernet # ne pas donner d'adresse au PC identifi par hardware ethernet

22287750.odt

Page87sur141

20/09/09

C) remarques
deny bootingempchededonneruneadresse,maisunPCdanscecass'ilestconfigurenDHCPprendraune adressequelconque.Jeproposeuneautremthodelalignesuivante. Onpeutdfinirlaplaged'adressesdisponiblespourlesclientsurunplagenonredirigeversinternetparlefire wall.CecipermetauxutilisateursnonconnudercupreruneadresseIpsansaccs internet.Onpeutmmebloquer touslesportsdecesadressesversleserveur.Cependant,riennelesempchedeprendreuneIpdanslaplagenonbloque parlefirewall! Maintenant,commentfairepourinterdirel'accsaurseau unemachineparlesoft,jen'ensaisrien!Jenevois quedesmthodesmatriellesquiempchentl'accsphysiquetouteconnexionsurlerseau. Vouspouvezgreravecdeuxcartesrseauxdiffrentes,deuxrseauxdiffrents(unrseaulocaletunDMZxi)si toutesfois,lesmasquesassocispermettentdebiendiffrencierlesdeuxrseaux.LeserveurDHCPlefaitsansproblme. Lefichier/var/lib/dhcp/dhcpd.leasescontientlesinformationssuivantes:Dbutdubail,Findubail,adresseMAC duclient,lenomd'hteduclient.AttentioncenomestdiffrentdunomNetbiosutilissurlesrseauxMicrosoft. Voiciunscriptfaitparsvilsurhttp://www.developpez.net/forums/viewforum.php?f=5
#!/bin/sh # XXX.XX.XXX ta classe d'adresse

1) Interdireunepersonne

2) Plusieurscartesrseaux

3) RcuprerlesmacadressesdesPCdurseau

ipdeb=150 ipfin=254 #je recherche les machines allumes ! obtention d'un tableau contenant la liste des ip adrip=($(fping -g XXX.XX.XXX.$ipdeb XXX.XX.XXX.$ipfin -C 1 2>/dev/null |awk '{print $1}')) #parcours les ip en demandant la mac correspondante for ((i=0;i<${#adrip[@]};i++)); do adrmac=`arp -a ${adrip[$i]}|tr 'a-z' 'A-Z'|awk '{print $4}'` echo $adrmac #le traitement que tu veux en faire ... done

D) Exercice
SionisolenotresalledeTPdurestedel'IUT,onpeutessayerdemonterunserveurDHCPlocal. Lapremirepersonnearriveici,monteraleserveur(mettreenstatiquel'adresse10.0.0.1),lesautresneseront quedesclients.Ellesdevrontjustearrteretrelancerleurcarterseauparmcc>rseau&internet>Drackconnect> Modeexpert>Configurerlerseaulocal>Dsactivermaintenant(avantbienvrifierquevousavezleprotocoled'a morageDHCP).Ensuiterefairelamanipulationpouractiverleserveur.

22287750.odt

Page88sur141

20/09/09

XVII) TerminalserveurX
http://www.cryptos.ch/article.php3?id_article=44 QuestcequunTerminalGraphique?Surhttp://fr.wikipedia.org:Lesterminauxenmodegraphiquesontcapablesde prsenterlessortiessouslaformeduneinterfacegraphique.Enplusdunclavier,ilsdisposentdundispositifdepointage(sou ris).Pourcela,ilsutilisent,parexemple,leprotocoleXWindowpourceuxconnectsdesserveursUnix. Lesdonnes:unordipuissanttype2,6Ghzet512Moram:IP=192.168.0.1(nom=serveur)Plusieursordistype P166parexemple,64Mommoire;jenaipasessayavecmoins...L IPdupremierest:192.168.0.10(nom=client1) Ilsagitdoncdefairefonctionnerles"petits"ordisavecdesapplicationsrcentes,avecuneinterfacegraphique volue... Surlesordisclients::installerunemandrivaenmodetexteavecX,typeIceWMouWindowMakerouautre interfacegraphiquelgre; Surleserveur: nepasoublierdedclarerlesutilisateurs. diter/etc/kde/kdm/kdmrcetdanslasectionxdmcp,changer: [Xdmcp]Enable=falseWilling=/etc/X11/xdm/XwillingXaccess=/etc/X11/xdm/Xaccess par: [Xdmcp]Enable=trueWilling=/etc/X11/xdm/XwillingXaccess=/etc/X11/xdm/Xaccess Dporterlaffichageduserveursurleclient...Deuxprocdures: (Surtoutnepasoublierdenleverleparefeupourlesbesoinsdelessaietensuiteouvrirleport177ncessaire xdmcpetlesports60006015pourXwindows) 1lancerleclientetouvrirunesessionxavecunnomdutilisateurquiexistesurleclientetsurleserveur...en consoletaper:$Xqueryadresse_du_serveur:1parexemple:$Xquery192.168.0.1:1le:1esttoujourslamachinesur laquelle on se trouve, cestdire la vieille machine; 2KDEpermetnativementlaconnexiondistantelancerleclientetaulogincliquersurmenu>Connexiondistantepuis taperlenomdhte(=IPduserveur)dansnotrecas:192.168.0.1etcliquersurconnexionoutaperentre.Et nousnousretrouvonsaveclepanneaudelogindeserveur:taperlenomdelutilisateuretlemotdepasse...(L utilisa teurbiensr,serainscritparmilesutilisateursduserveur...)Etlasessionkdeouautresouvre... Levieilordibnficiedelaffichageetdelapuissanceduserveuretdesesapplis...Cestassezbluffantdevoir cesvieuxordistourneraveclarapiditdunordineuf...!!!Touteslesapplisdebureautiqueinternet,photopeuventfonc tionnerainsi...Enrevanche,jeux,vidoetson,nefonctionnerontpas;lesonfonctionnerapartirduclientsurleserveur sisurleserveurestouverteunesessionparlemmeutilisateurquesurleclient...Notonsaussiqueleserveuraccepte ralouverturedeplusieurssessionslafois...sansproblme...

PostScriptum:Voilunesolutionquipermetderecyclerdevieuxordinateurs...Dautressolutionspluslaboresexistent quipermettentenparticulierlesonsurlesclientsquisontclasssenclientslgersetclientslourds:LTSP ,freenx,drak TermServsurlaMandrivaetsrementdautres...Cellequiestprsenteiciestsrementlaplusfacilemaiselleobligeinstal ler un systme et X sur le client, ce qui nest pas forcment facile sur de vieilles machines...

22287750.odt

Page89sur141

20/09/09

XVIII) Gestiond'unserveurdeCourriel(Mail)
Mercihttp://christian.caleca.free.frethttp://www.securitylabs.org/index.php3?page=413 http://www.postfix.org/nonenglish.html#french

A) Installation
NousallonsinstallerunMTA:Message(ouMail)TransfertAgent.Agentdetransfertdemessage(oudecourrier), quis'occupedel'acheminementdesmessages.Ledmonestpostix.Pourinstaller:urpmipostfix(nepasoublierimap ouuw-imapdpourlasuite...voirlepointE).Puisdmarezle:
[root@troumad][~]$ postfix reload postfix: warning: My hostname troumad is not a fully qualified name - set myhostname or mydomain in /etc/postfix/main.cf postfix/postfix-script: warning: My hostname troumad is not a fully qualified name - set myhostname or mydomain in /etc/postfix/main.cf postfix/postfix-script: refreshing the Postfix mail system postsuper: warning: My hostname troumad is not a fully qualified name - set myhostname or mydomain in /etc/postfix/main.cf [root@troumad][~]$ postsuper: warning: My hostname troumad is not a fully qualified name - set myhostname or mydomain in /etc/postfix/main.cf vi /etc/postfix/aliases

Sivousvoulezmodifierlenomdudomaineoudel'htesur /etc/postfix/main.cfenmodifiantlesparamtres myhostnameoumydomain.CeciestobligatoiresilecouplePC/domaineesttroppeuqualificommeici.

B) Lesaliases
Les aliases servent rediriger les messages entrants pour un utilisateur vers un autre utilisateur. Le fichier /etc/postfix/aliasesestl pourdfinirdessortesderedirections.Enl'observant,vousconstaterezqu'ilexistebeau coupd'utilisateurs"fantmes",tousrenvoysvers"root"(fautillesannuler?).IlfautsavoirquePostfixn'aenprincipe pasledroitd'envoyerdesmessagesroot.Vousavez,biensr,survotremachineLinux,uncompted'utilisateur"normal" (pasroot).C'estlemomentdemodifierlefichierdes"aliases"pourrediriger"root"verscetutilisateur.Ilfautlefaire,c'est impratif.Surmaconfiguration,ilexisteuncompte"chris"etladernirelignede/etc/postfix/aliasesestdelaforme :
root: courrier

1) Utilisationnormale

Faiteslamodificationadaptevotreutilisateuretvrifiezdans/etc/postfix/main.cflaprsencede:
alias_maps = hash:/etc/postfix/aliases (sans le # devant)

Puisexcutez:
postalias /etc/postfix/aliases postfix reload

Ilexisted'autressortesd'alias(voirhttp://www.toolinux.com/linutile/reseau/mail/postfix/index.htm).Leplusin tressantconsisteredirigerlemailversuneautreboteaulettre,avec/etc/postfix/canonical:
troumad@lycee.org troumad@free.fr # adresse gre par postfix vers une autre adresse

Cette ligne fait suivre le courrier vers l'adresse troumad@free.fr d'un autre serveur de mail. Faire postmap
/etc/postfix/canonical ,mettre canonical_maps = hash:/etc/postfix/canonical dans main.cf etrelancer

postfix:/etc/init.d/postfix reload . Dans/etc/postfix/aliasesvouspouvezredirigerversplusieursadresseslammeadresse:


groupe: toto titi@free.fr toutou@libertysurf.fr tata tonton@chello.fr

2) Crationd'adressedegroupe(nomrevoir)

C) Premiertest:messagerielocale.
Ilexisteunfichierdelogstrsutilepournous:/var/log/mail/info.Nousallonsl'utiliserenpermanencedansla suite. Ouvrezuneconsolesousrootetfaites:
tail -f /var/log/mail/info

Cecivouspermettradesuivrecequ'ilsepasseplusfacilement.

22287750.odt

Page90sur141

20/09/09

Nousallons,enrestantcompltementenlocal,envoyerunmessage root,en tantl'utilisateurnormal,celuique nousavonschoisicommealiasderoot,etquenousavonsconvenud'appeler"user". Ouvrezunedeuximeconsoleaveclecomptecourrier. Nousallonsenvoyerunmessage "root"avecl'outil,spartiate,certes,maisinstall pardfautdansMandriva: maililsinstalleavecapt-get install mailxsousdebian,
mail root Subject: rien rien Cc:

Alafindutextefaire[Entre]+CtrlDpourfinirlazonedetexte.Oumettreuneligneavecuniquementunpoint. Observonslejournaldanslaconsoleroot:
Oct 11 22:31:32 troumad postfix/pickup[17603]: 5091C1201F9: uid=0 from=<root> Oct 11 22:31:32 troumad postfix/cleanup[17608]: 5091C1201F9: messageid=<20031011203132.5091C1201F9@lycee.org> Oct 11 22:31:32 troumad postfix/nqmgr[17604]: 5091C1201F9: from=<root@lycee.org>, size=308, nrcpt=1 (queue active) Oct 11 22:31:32 troumad postfix/local[17611]: 5091C1201F9: to=<courrier@lycee.org>, orig_to=<root>, relay=local, delay=0, status=sent ("|/usr/bin/procmail -Y -a $DOMAIN")

Toutsemblebiens'trepass.Notezqueledestinatairen'estpasrootmaiscourrier,lesystmed'aliasafonctionn correctement.Nousdevonsdoncretrouvercemessagedansnotreboteauxlettre(celledecourrier): Lacommande"mail"touteseulepermetdeconsultersesmessages.Lapartiesurligneindiqueunnouveaumes sage.Noustapons:


[courrier@troumad][~]$ mail Mail version 8.1.1 6/6/93. >N 1 root@troumad.no-ip.o Type ? for help. Sat Oct 11 22:31 14/449 "rien" "/var/spool/mail/courrier": 1 message 1 new & t 1 Message 1: From root@lycee.org X-Original-To: root Delivered-To: root@lycee.org To: root@lycee.org Subject: rien Date: Sat, 11 Oct 2003 22:31:32 +0200 (CEST) From: root@lycee.org (root) rien & ? Mail n e <message list> f <message list> d <message list> s <message list> file u <message list> R <message list> r <message list> pre <message list> m <user list> q x h ! Commands type messages goto and type next message edit messages give head lines of messages delete messages append messages to file undelete messages reply to message senders reply to message senders and all recipients make messages go back to /usr/spool/mail mail to specific users quit, saving unresolved messages in mbox quit, do not remove system mailbox print out active message headers shell escape t <message list> Sat Oct 11 22:31:32 2003

22287750.odt

Page91sur141

20/09/09

cd [directory] & x

chdir to directory or home if none given

x.

Quandmailnouslaisselamain,onauneligneavecun&.Ontapealorslescommandes.Icit1puis,et

D) Secondtest:versl'extrieur
Aprscetessai,vouspouvezrecommencerversuneadresseextrieure.mail troumad@free.fr.Ilestpossible queceluicirevienne,regardonslejournal:
Oct 12 07:29:58 troumad postfix/pickup[24570]: ED7801201F9: uid=501 from=<troumad> Oct 12 07:29:58 troumad postfix/cleanup[24630]: ED7801201F9: messageid=<20031012052958.ED7801201F9@lycee.org> Oct 12 07:29:58 troumad postfix/nqmgr[24571]: ED7801201F9: from=<troumad@lycee.org>, size=287, nrcpt=1 (queue active) Oct 12 07:29:59 troumad postfix/smtp[24632]: ED7801201F9: to=<troumad@free.fr>, relay=mx.free.fr[213.228.0.166], delay=1, status=bounced (host mx.free.fr[213.228.0.166] said: 553 sorry, your envelope sender domain must exist (#5.7.1) (in reply to MAIL FROM command)) Oct 12 07:30:00 troumad postfix/cleanup[24630]: 02B841201FC: messageid=<20031012053000.02B841201FC@lycee.org> Oct 12 07:30:00 troumad postfix/nqmgr[24571]: 02B841201FC: from=<>, size=2020, nrcpt=1 (queue active) Oct 12 07:30:00 troumad postfix/local[24634]: 02B841201FC: to=<troumad@lycee.org>, relay=local, delay=0, status=sent ("|/usr/bin/procmail -Y -a $DOMAIN")

1) Sansnomdedomainevalide

SelonlamachinequihbergeleMTA,l'expditeuruneadressequin'existepas:lycee.orgn'existepas,lecourrier adonctrefus!Ilfautdoncdfinirunnomd'envoicorrect!Onvachangerl'adressedel'expditeurenrcrivantlare directiondanslefichier/etc/postfix/sender_canonical:courrier troumad@free.fr Puis aprs, on fait postmap /etc/postfix/sender_canonical et on rajoute la ligne sender_canonical_maps = hash:/etc/postfix/sender_canonical /etc/postfix/main.cf au paragraphe ADDRESS REWRITING. Parfois,danslejournal,ontrouve:
Nov 10 14:59:43 troumad postfix/nqmgr[32697]: 7B3B9502D3: to=<______.______@francetelecom.com>, relay=none, delay=0, status=deferred (deferred transport) Nov 10 14:59:43 troumad postfix/nqmgr[32697]: 7B3B9502D3: to=<troumad@free.fr>, relay=none, delay=0, status=deferred (deferred transport)

Cecipeuttremomentanmentrparpar:
/etc/init.d/postfix flush

Quidonnedanslejournal:
Nov 10 14:59:56 troumad postfix/smtp[5953]: 7B3B9502D3: to=<______.______@francetelecom.com>, relay=relais-inet.francetelecom.com[212.234.67.6], delay=13, status=sent (250 Message received and queued) Nov 10 14:59:56 troumad postfix/smtp[5955]: 7B3B9502D3: to=<troumad@free.fr>, relay=mx.free.fr[213.228.0.49], delay=13, status=sent (250 ok 1068472817 qp 2927)

Ilfautdonc reconfigurer /etc/postfix/main.cf, c'est le paramtre defer_transports = smtp qu'il fallait commenter car il sert envoyer le courrier que sur demande : postfix flush ou sendmail -q avec par exemple un petit script PPP dialout, donc lorsqu'on est pas toujours connect. DanslesdistributionsMandriva,/etc/ppp/if-upcontientdj unecommandesendmail -qsi/usr/sbin/sendmailexiste.Doncpaslapeinedelefaire lamain: chaque connexion, sendmail -qdevraittrelancautomatiquement. Aprschaquemodificationde/etc/postfix/main.cf,ilfautcompltementrelancerleservice,unsimplereload estinsuffisant.Ondoitdoncfaire:
/etc/init.d/postfix restart

Mmevalide,sic'estVOTREnomdedomaine,iln'estsrementpasreconnu,listerdanslalistedesserveursde mailssur.Eneffet,ilyatellementdepetitsdomainesqueseullesgrandsserveurspeuventtrereconnus,commefree.fr, 22287750.odt Page92sur141 20/09/09

2) Avecunnomdedomainevalide

aol.com...Sij'achtelycee.orgetquejegremoimmecedomaineilapeudechanced'trereconnu!Enrevanche,s'il estpiratetsertdebased'envoidesspams,ilseravitemisdanslalistenoiresdesnomsdedomaineviter! Voiciunemthodepourquevosmailsarriventmmesurlesserveursquimnentunepolitiquefortedetriscuris (http://www.linuxorable.net/article.php3?id_article=47): Largletransport_mapspermetdedfinirquelmodedetransportserautilispourcertainsdomainesouadresses. Exemple:AOLrefusetouslesmailsquineproviennentpasdeserveursSMTPconnus. Donc,jevaismettredansmatabletransportdeslignescommececi:


mon-ami1@aol.com smtp:smtp.free.fr mon-amie@aol.com smtp:smtp.free.fr

ou,sijesouhaiteunerglegnrale:
aol.com smtp:smtp.free.fr

ainsi,toutmail destinationdeAOLserarelayparlesetveursmtpddeFreeaprsavoirfaitlesdeuxcommandes suivantes:


# postmap /etc/postfix/transport # postfix reload

E) Troisimetest:lirelecourrieldel'extrieur
Ilfautouvrirleport110verslesordi nateursquivontlireleurcourriersurvotre serveur.Attention,dsqu'onparledel'ex trieur,ilfautsemfierdesspameursqui seraientbienheureuxdeprendrelecont rledenotreMTA! Ensuite,sousmandriva,ondoitinstal ler imap : urpmi imap, sinon le ser veurmailmarcherasaufqu'onnepourra pasliresesmailsavecunlecteursdecou riel... Sous debian : apt-get install qpopper. Ilfautfaireunemodificationminimale de la configuration. Dans /etc/postfix/main.cf, le paramtre inet_interfaces doit indiquer d'o on accdeauserveuretaussiilpeuttreutile derelanceroumettreenrouteledmon xinetd:/etc/init.d/xinetd restart Illustration3:Paramtraged'uncomptesousmozilla/thunderbird Finalement, on doit paramtrer notre lecteurdecourrielconvenablement: Pourlirelecourrielsurceserveur:donnerlenomduserveur,lenomd'utilisateur(lenomdeloginducompteque vousavez) Sousmozilla,cecisefaitavecl'entreParamtresserveur.Leportestbienle110:attention,prvoirlefirewall pourqueceportsoitouvertendirectiondesordinateursquidoiventlirelecourriel. Pourenvoyerlecourrierpartirdemozilla,donnerl'adressedenotreserveurpourlecourriersortant:troumad.ly cee.org(d'aprslaconfigurationduDNS) Avecmozilla,Ilfauttoutd'abordsignalersonexistenceencliquantsurserveursortant(SMTP)etendonnant sonnom. Ensuite,ilfautsignalerquelecomptequ'onestentraindetesterdoitutiliserceserveursortant:aveclebouton [Avanc...]enbasdroitelorsquec'estl'entreducomptequiestslectionne. Remarque:Ilfautconfigurerlenomduserveurdeuxfoiscaronpeutliresoncourriersurtouslesserveursdetous lesFAId'o qu'onsoit,maisparmesuredescurit,lesserveursnerelaientquelesmailsquiviennentdeleurdomaine. Parexemple,vousnepouvezpasutiliserleserveurdel'IUTpourenvoyervosmailsdechezvousalorsquedechezvous, vouspouvezlirelecourrierquivousestadressl'IUT.

F) Quatrimetest:recevoirlecourrieldel'extrieur
Votreserveurestenmarche?Alorsouvrezleport25versl'extrieur,c'esttout! Attention,ilfautconfigurerlalignesuivantedans/etc/postfix/main.cf:
mydestination = $myhostname,$mydomain

22287750.odt

Page93sur141

20/09/09

Elleinterditlerelais partirdel'extrieurdemailversd'autresadressesquecellesdudomainelocal.Vouspouvez vousdemanderAlors,maiscommentmonserveurreprelesPCdurseauinterne?.C'estaveclalignede/etc/postfix/main.cf:


mynetworks = 127.0.0.0/8,192.168.0.0/16

Cettelignepermet touslesPCdusousrseau 192.168.XXX.XXXetaussiauserveurluimme(127.0.0.0/8) d'accderauserveurdemailpourluifaireenvoyerdescourriersn'importequelleadresse.

G) Cinquimetest:envoyerlecourrieldepuisl'extrieur
Ilfautquelefirewallouvreleport25(commeprcdemment)versl'endroitd'o onenvoielecouriel.Ensuite,la configurationdulecteurdecourrierestexpliquedanslarubrique:Troisimetest:lirelecourrierdel'extrieur.Ilest importantdebienmatriserl'extrieurchoisit.Jevousconseilledelerestreindrevotrerseaulocal.Danscecasex trieurserasimplementauxautresPC.C'estcequefontlesFAIafindecontrlerl'originedesmailspour viterde servirderelaisauxspameurs. Sinotreserveursertaussidepasserelle(avecuneinterfaceverslerseaulocaletuneautreversinternet,voircha pitresurlefirewall),onpeutindiquerdanslaconfigurationdepostfix,queseullesmailsdurseaulocalserontprisen compte.

H) Exempledefichiersdeconfiguration
Merci http://www.via.ecp.fr/~alexis/formationlinux/ pour cet exemple et http://cjovet.free.fr/cours/post fix.htm.
# /etc/postfix/main.cf # Fichier de configuration de Postfix # Formation Debian GNU/Linux par Alexis de Lattre # http://www.via.ecp.fr/~alexis/formation-linux/ # Pour plus d'informations, installer le package "postfix-doc" # et lire /usr/share/doc/postfix/html/index.html # ou lire la traduction franaise disponible l'adresse # http://cjovet.free.fr/cours/postfix.htm # Paramtres de fonctionnement de postfix # NE PAS CHANGER command_directory = /usr/sbin daemon_directory = /usr/lib/postfix program_directory = /usr/lib/postfix smtpd_banner = $myhostname $mail_name (Mandriva LINUX) setgid_group = postdrop biff = no # Nom du fichier d'alias alias_maps = hash:/etc/postfix/aliases #alias_database = hash:/etc/mail/aliases # Nom du fichier de correspondance pour les adresses virtuelles #virtual_maps = hash:/etc/postfix/virtual # Nom de domaine # Ce paramtre ne sert pas directement, mais peut tre utilis par la suite. mydomain = lycee.org # Nom d'hte # Ce paramtre ne sert pas directement, mais peut tre utilis par la suite. myhostname = troumad.$mydomain # Extension pour les mails envoys depuis la machine myorigin = lycee.org

1) /etc/postfix/main.cf

22287750.odt

Page94sur141

20/09/09

# Liste des domaines pour lesquels le serveur accepte le mail # ET dlivre le mail en local mydestination = $myhostname, localhost.$mydomain,localhost # le paramtre inet_interfaces doit indiquer d'o on accde au serveur pour l'envoi de courrier inet_interfaces = $myhostname, localhost.$mydomain, localhost,$mydomain # Liste des domaines pour lesquels le serveur accepte le mail # ET le relaie d'autres serveurs de mail #relay_domains = # Dans le cas o on a besoin d'un serveur pour relayer les mails sortants : #relayhost = smtp.free.fr # #defer_transports = smtp peut tre utile si on n'est pas souvent connect internet. # Il Faut alors faire un sendmail -q pour envoyer les mails lors de la connexion. #defer_transports = smtp # Rseaux en lesquels j'ai confiance # i.e. pour lequel mon serveur mail accepte de relayer du mail # ATTENTION : il ne faut pas mettre n'importe quoi pour que le serveur # mail ne devienne pas un relai pour le spam ! mynetworks = 127.0.0.0/8,192.168.1.0/24 # Commande excuter pour dlivrer les mails en local mailbox_command = /usr/bin/procmail -Y -a $DOMAIN -d $LOGNAME # Taille maximale pour les mailbox (0 = pas de limite) mailbox_size_limit = 0 #Les lignes suivantes sont quelque peu paranos... #connexion d'un client sur le serveur de mail : # # # - rejte le client si son adresse IP n'a pas d'enregistrement PTR dans le DNS. - juste pour le rseau internes - accepte ou rejte le client selon les rgles du fichier spcifie hash:/etc/postfix/access

smtpd_client_restrictions = permit_mynetworks,reject_unknown_client,check_client_access hash:/etc/postfix/access # vrifie le champ MAIL FROM du mail # # # - rejte la requte si l'adresse de l'metteur n'a pas d'enregistrement A ou MX dans le DNS. - accepte ou rejte la requte selon les rgles du fichier /etc/postfix/access - la requte est rejete si l'adresse email n'est pas un nom de domaine complet

smtpd_sender_restrictions = reject_unknown_sender_domain, check_sender_access hash:/etc/postfix/access,reject_non_fqdn_sender # Pour /etc/postfix/access : 'man 5 access' et chaque modification 'postmap /etc/postfix/access' #

Afindevrifiervotreconfiguration,vouspouvezfairepostconf , ceci affichera TOUS les paramtres de postfix, mmes ceux choisi par dfaut. Pour afficher les diffrences de votre configuration avec celle par dfaut, entrez postconf -n . Pourvrifierlaconfigurationduserveur,lancezpostfix check.

Le fichier access qui indique partir d'o on peut poster un mail :


192.168 OK 127 OK 10 NO

2) /etc/postfix/access

22287750.odt

Page95sur141

20/09/09

I) Petit plus
Pour faire un petit filtre de pice jointe, dans le fichier main.cf de postfix, il faut ajouter :
header_checks = regexp:/etc/postfix/header_checks

puiscrerlefichier/etc/postfix/header_checksquicontientlalignesuivante(suruneseuleligne):
/^.*name=.*\.(vbe|vbs|shs|vbx|zip|chm|exe|pif|bat|com|scr)/ REJECT "les fichiers : vbe vbs shs vbx chm exe pif bat com scr zip sont interdits comme piece jointe - message refuse"

J) Test open relais


Vous pouvez, par exemple, tester votre serveur http://abuse.net/relay.html .

K) SpamAssassin
http://spamassassin.apache.org/ http://lea-linux.org/cached/index/Reseau-message-postfix.html urpmispamassassinspamdinstallelelogiciel /etc/rc.d/init.d/spamdstartlemetenroute. thunderbirdetmozillamailontcettefonctionnalitdirectementimplmentedansleurcodeavecletridesindsi rables. Ilenexistedesutilitaires,testez:urpmispamassassin.

L) Amliorations possibles
http://mdk.services-virtuavision.com/article.php3?id_article=60 : Fetchmail - postfix - procmail - razor2 - MUA : les Dalton anti-spam.

M) Exercices
Crer votre serveur postfix avec une adresse qui fait suivre le courier une liste d'utilisateur.

22287750.odt

Page96sur141

20/09/09

XIX) ServeurNIS

A) Prsentation
http://www.ac-creteil.fr/reseaux/systemes/linux/nis-linux.html Le service NIS (Network Information System), permet de centraliser les connexions sur un rseau local. L'objectifcentralde toutserveurdefichiersd'unrseaulocalestdepermettreauxutilisateursdurseaudeseconnecterauserveurdefichier sousuncomptecentralis auniveaudurseau,etnonpasdfinimachineparmachineetaussid'accder sesfichiers (rpertoirepersonnel,...). Dans un rseau homogne Linux, la connexion et l'authentification sont du ressort du service NIS, tandis que les accs aux rpertoires personnels et partags sont permis par le service complmentaire NFS, qu'il faut aussi mettre en oeuvre. Pour utiliser des stations M$-Windows dialoguant avec un serveur Linux, l'alternative NIS+NFS est la mise en oeuvre du serveur Samba. NIS maintient une base de donnes (ou annuaire) centralise au niveau d'un groupe de machines appel domaine NIS. Supposons que le nom NIS attribu soit Maison. Ces informations sont alors stockes dans le rpertoire /var/yp/Maison, sous forme d'un ensemble de fichiers binaires appels cartes ou maps. Les types d'informations que les stations "clientes", celles des utilisateurs, viennent chercher sont essentiellement les correspondances entre noms et adresse IP des machines du rseau, les vrifications des noms de login, mots de passe et groupes d'appartenance des comptes utilisateurs existants sur le serveur. Toutes ces informations sont contenues habituellement dans les fichiers /etc/hosts (annuaire des machines connues), /etc/passwd, (annuaires des utilisateurs qui contient les rpertoires la connexion) et /etc/group (annuaire des groupes) et /etc/shadow (mots de passe crypts). Plus concrtement, soit une station Linux, cliente du serveur NIS. Un utilisateur remplit un formulaire de connexion (demande de login). Le client NIS de cette station cherche obtenir une rponse du serveur NIS du mme domaine, une question du genre "me connais-tu comme station autorise, et l'utilisateur que j'accueille possde t-il un compte chez toi, mon serveur?" Les rponses sont contenues dans 6 maps usuels, situs dans /var/yp/Maison, et appels hosts.byname, hosts.byaddr, passwd.byname, passwd.byuid, group.byname et group.bygid. Les applications NIS utilisent les fonctions RPC =Remote Procedure Calls, fonctionnalits supplmentaires (loges dans la couche session au dessus de TCP/IP), gres par un service (ou dmon) appel portmap qu'il faut donc installer. Lerpminstallerestypservsurleserveuretyptollsetypbindsurlesstationsclientes. Unpeudeprcisionsurlevocabulaire:yp(yellowpages)correspondl'annuaire,NISestl'implmentationbase surRPCpourlesmotsdepassespartags,lesgroupes,lesservices,...NIS+estuneimplmentationplusscurise.NYS estlaversiondomainepublicdeNIS.

B) Leserveur
Lesserviceslancersontdansl'ordre/etc/init.d/portmap,/etc/init.d/ypservet/etc/init.d/yppasswd. Lesfichiersdeconfigurationsont: /etc/ypserv.conf (configurationduserveur)etlesfichiersdurpertoire /var/yp comme /var/yp/securenets (machinesautorises accderauserviceNIS), /var/yp/Makefile,maisilyabesoin d'enmodifierd'autrescomme/etc/sysconfig/network. IlfautdclarerledomaineNISdanslefichier/etc/sysconfig/networkenrajoutantlaligneNISDOMAIN=Maison. Ilfautqueceparamettresoitprisencompte,pourlemoment,jen'aitrouvqu'uneseulesolution: domainname Maison. Ensuite,ilfautdclarerlesmachinesquiontaccsaudomaineaveclefichier/var/yp/securenetsetinsrerles lignessuivantes:
# pour permettre l'accs sur le serveur mme 255.0.0.0 127.0.0.0 192.168.1.0 # le rseau comme adresse 192.168.1.1, le rseau est 192.168.1.XXX # pour permettre l'accs de toutes les machines du sous-rseau (masque et adresse rseau) 255.255.255.0

PrciserlesinformationsqueNISdoitgrerenditantlefichierfichier/var/yp/Makefileetenlistantsurlaligne commenantparall:lesdonnes grer:all: passwd group hosts (aumoins).Ilestrecommand denerienmodi fierd'autresauf"sionsaitcequel'onfait...",carpourl'essentielilatcorrectementparamtrlorsdel'installationdela distribution. Ensuite, on doit gnrer les 3 cartes (maps) correspondant aux 3 fichiers /etc/passwd, /etc/ group et /etc/hosts.L'utilitaire/usr/bin/makedoittreexcutparrootdanslerpertoireduMakefile:
# cd /var/yp # make

Ilyacrationd'unsousrpertoire /var/yp/Maison (portantlenomdudomaineNIS,quidoit treprisdj en compte) contenant les 6 fichiers binaires de permissions 600 : hosts.byname, hosts.byaddr, passwd.byname, passwd.byuid, group.byname et group.bygid. LaderniremanipulationfaireestderenseignerlefichierdeconfigurationdeNIS::/etc/ypserv.confetindi querl'adresseIPdurseaucommecidessous: 22287750.odt Page97sur141 20/09/09

# Host # 192.168.1. 192.168.1.

: Domain : Maison : Maison

: Map : passwd.byname : passwd.byuid

: Security : port : port

ypxfrdestutilesionaunserveurNISesclave.

C) Lesclients
Toujours dans /etc/sysconfig/network, il faut mettre NISDOMAIN = "Maison". Attention, il faudra activer ce nom! Dans /etc/yp.conf,etilfautajouterles2lignes:
domain Maison server 192.168.1.1 ypserver troumad #nom du serveur NIS

Dans /etc/nsswitch.conf,veillezlaprsenceactivedeslignes:
passwd: group: hosts: files files files nis nis nis dns

En ligne de commande, (re)lancer le service client. On devrait obtenir 2 messages : recherche d'un domaine NIS, puis tentative de liaison un serveur NIS.
$ /etc/rc.d/init.d/ypbind start Binding to the NIS domain: [OK] fctice.ac-creteil.fr Listening for an NIS domain server:

PourpermettreuncomptequiexisteuniquementparNIS,maispasdanslefichierlocal/etc/passwrddeselogger parssh,danslefichier /etc/ssh/sshd_config,ilfautdcommenterlaligne UseLogin etmettre yes commepara mtre.

D) Changementdemotdepasse/ajoutd'utilisateurs
Onrajoutesurleserveurunnouvelutilisateuravecuseradd.Pourprendreencomptecenouvelutilisateur;il suffitd'allerdanslerpertoire/var/ypetd'excutermake. Lorsquel'onutiliseNYSetlesmotsdepassedistribus,lacommandepasswdsurunclientrisquedenepas avoirlecomportementattendupuisquequ'ellevaditerlefichierlocal/etc/passwd. C'estdoncledmonyppasswdduserveurquidoitsechargerdecela.Enfaitlorsqu'unutilisateurvoudrachanger sonmotdepasse,ilutiliseralacommandeyppasswd,quiiramodifierlefichier/etc/passwdduserveurNYS,etqui galementmettrajourlescartes,enfaisantappelauxfonctionsdenotrebondmon. Pour que l'utilisation de yppasswd soit transparente pour les utilisateurs, vous pouvez renommer le fichier /usr/bin/passwdenlpasswdparexemple,etensuitevousfaitesunlienpasswdversyppasswdaveclacommande: ln -sf yppasswd passwd Lesutilisateurspourrontainsichangerleurmotdepassesansserendrecomptequ'ilsutilisentuncompteNYS.

E) Exercice
Comme pour le serveur DHCP, la premire personne arrive l monte le serveur. Le nom du domaine sera LINUX. Les autres monteront des clients.

22287750.odt

Page98sur141

20/09/09

XX) Configurerunserveurd'impression

A) Uneimprimante/plusieursordinateurs
UneimprimantesurunPCpeut trepartageentreplusieursPCenrseau.Poursavoircommentdfinirsonpar tage,ilfautsavoirsurquellesortederseauelleestpartage.Eneffet,surlePCqui l'imprimante,oninstalledj un serviceCUPS(serveurd'impressionlocal)quipeutservirpourtoutlerseaus'ilestcorrectementdfini.Enrevanche CUPSestfaituniquementpourlesrseauLinux/Unix.SiilyadesiPCsousWindows,leprtagesedfiniavecSamba (voirlechapitresursamba).

B) Cups
http://people.via.ecp.fr/~alexis/formationlinux/imprimante.html#AEN11363 Ilfautinstallerl'imprimante.CeciestautomatiqueavecMandriva,enrevancheavecdebian,ilestrecommander d'installeravantcertainspaquetages:
# apt-get install cupsys cupsys-client cupsys-bsd foomatic-filters printconf

1) Serveur

Cettelignedevraittoutinstaller,maisjeconseilletoutdemmeaprsunpassageparfoomatic-guiafinde parfairelaconfiguration. AvecMandriva,ceserviceestdirectementconfigurerpourlepartage.Enrevanchesousdebian,ilfautouvrirleser vicel'extrieur.C'estlefichier/etc/cups/cupsd.confqu'ilfautmodifierafind'avoir:


<Location /> Order Deny,Allow Deny From All Allow From 127.0.0.1 Allow From 192.168.0.0/255.255.255.0 </Location>

Puisbiensur,aprslamodification,ilfautrelancerleserveur.
/etc/init.d/cupsys restart (ou cups pour Mandriva)

Lalistedestravauxeffectusresteenmmoireavecpossibilitdelesrefaire.Onpeutl'effaceraveclacommande:
# cancel -a

SurMandriva,toutestencoreautomatique.Avecdebian,ilfautinstallerleprogrammeclientdeCups:
# apt-get install cupsys-client

2) Client

Ensuite, ditezlefichier /etc/cups/client.conf etdcommentezlalignecommenantpar ServerName.Sur cetteligne,vousdevezalorsprciserl'adresseIPoulenomDNSduserveurd'impression. Parexemple,sivotreserveurd'impressional'adresseIP 192.168.0.42 ,lefichier/etc/cups/client.confdevra contenir:
ServerName 192.168.0.42

Attention:lechampemplacementsurleserveurdevratrebienconfigurer.Eneffet,ilestpossiblequeleclient s'enservepourappelerleserveur.Doncildevra trerenseigndelammefaondans/etc/hostsouparleserveurDNS, afinquelePCayantl'imprimanterpondebienaunomdfinidanscechamp.

22287750.odt

Page99sur141

20/09/09

XXI) Partagedescanner
Voirmansaned Ilestpossible,commepourlesimprimantesdepartagerunscanner.Voicilamanipulationfaire:

A) serveur
Pourleserveur,mettredanslefichier/etc/sane.d/saned.conf:
192.168.3.0/24 # Pour partager sur toute machine d'adresse 192.168.3.XXX localhost # Pour le PC local aussi

B) Client
Desonct,leclientdoitavoirlefichier/etc/sane.d/net.conf:
nom_du_serveur # ou ip du serveur

22287750.odt

Page100sur141

20/09/09

XXII) Configurerunserveurdetempsavecntp
Demarcguillaume<newatyakatipointorg> AdaptMandrivaparBernardSIAUD Voiraussi:http://www.openbsd.org/cgibin/man.c...penBSD+Current

A) Introduction
Qu'unlaboratoiredemtrologie,desismique,dephysiqueaiebesoind'uneheuretrsprcisesemblevident.Mais pourunparticulierouunepetiteentreprisel'intrtpeutsautermoinsimmdiatementauxyeux.Pourtant,neseraitce quepourenvoyerdesmailsavecunedatecohrente,ilestimportantquevoussurveilliezladatedevotrePC.Sivousavez desserveurs,celadevientindispensable.Imaginezquetousvospostesaientleurrpertoire/homedportsurunserveur central.Sivousmettezenplaceunsystmedemirorringavecrsyncparexemplesurunserveurdesauvegardequevatil sepassersivosmachinesontdesheuresdiffrentes?Vousallezperdrelacohrenceentrelesfichiersetneplussavoirau boutd'unmomentquelleestladernireversiond'unfichier. NTP(NetworkTimeProtocol)rsoutcelaenfournissantunmoyensimpleetefficacedesynchronisertoutcepetit monde.Sivousavezunaccspermanent internet(styleADSLouCble)vousserezdeplus l'heuremondialesansef fort.

B) Leprincipedanssesgrandeslignes
VoustrouverezsurinternetdeladocumentationsurlesprincipesdefonctionnementduprotocoleNetworkTime Protocol(ntp)misaupointparl'quipeduprofesseurDavidMillsdel'universit duDelaware.Cequisuitestfortement inspirdehttp://www.starlinux.net/staticpages/index.php?page=20030924221349147 Engrosils'agitd'unehirarchiedynamiquedeserveurs.Ausommetsontdesserveursditsdestrate0.Ils'agitdes horloges de prcision qui peuvent tre des horloges atomiques au csium ou des satellites GPS (globa positionning system)parexemple.Aucunordinateurnefaitpartiedelastrate0.Lesordinateursditsdestrate1reoiventl'heurede ceshorlogesquicomposentlastrate0. Donccesordinateursdestrate1reoiventl'heuredesordinateursdestrate0.Lastrate1estlaprcisionmaximale quipuissetreatteintesurinternet. Quandunordinateurprendcommerfrenceunserveurdestrate1ildevientunserveurdestrate2.Demanire gnralequandunordinateurprendcommerfrenceunserveurdestratenildevientluimmeunserveurdestrate n+1. Leplusbasniveauestlastrate16quisignifieenfaitquel'ordinateurn'estpasencoresynchronis(cequisepasse lorsquevouslancezpourlapremirefoisntpd,ouquevotreserveurderfrencen'estpasjoignablependantuntemps suffisant). Ilyasurinternetunepetitecentainedeserveursdestrate1quisontpriscommerfrenceparquatremille(peu prs)serveursdestrate2quileurtoursontutilissparunbienplusgrandnombredeserveursdestrate3. Lesystmeestdynamiquedanslamesureounserveurpeuttreunmomentenstrate3ouenstrate2etmme enstrate16quandilperdsasynchronisation.Toutdpendduserveursurlequelilparvientsesynchroniser. Audmarragedudmonntpdlesystmelitsesfichiersdeconfiguration,parmilesquelsiltrouve: LesadressesIPoulesnomsdesserveursderfrence(peers) Lesintervallesmaximauxetminimauxentredeuxconsultationsdeserveurs(maxpolletminpoll) lacorrectiondesonhorlogeinterne,sil'informationestdisponible D'autresparamtrescommedesoptionsdelog,desrestrictionsd'accsetc. Enutilisantlalistedesserveursoupeers,ildemandeuneinformationhoraire tous.Danscetteinformation,en plusdel'heure,sontincluesdesinformationssurletempsprisparlepaquetpendantsatraversedurseau,surlastabili tetlaqualitdesserveurs. Enmmetemps,siledmonatournsuffisammentlongtempsdansunesessionantrieure,illitladernirecorrec tionqu'ilfautappliquer lafrquencedel'horlogeinternepourmaintenirl'heureexactedanslafourchetteadquate. Chaquehorlogedechaqueordinateurcompteletempsencyclesdonnsparlesoscillateursinternes.NTPestcapablede renseignerlenoyau(kernel)surleserreursquepeuventinduirecesoscillateurs(problmesdefrquencesdequartzetc.). Endbutdesessionl'ordinateursupposequ'iln'estpassynchronis.Ilcommencelirel'informationhorairedesses "peers" unrythmerapidedetoutesles16secondes(enfait2^minpoll)puistoutesles32secondespuisencoreplus tardtoutesles64secondesainsijusqu'unrythmede2^maxpollsecondes(pardfautmaxpollestrgl10). Chaquefoisqu'ilreoitunenouvellerfrencedetempsd'undesespeersledmonntpdreclaculelesparamtres decepeer,c'estdiresondphasageparrapportl'horlogelocale,leretardsurlerseauetladispersiondesdonnes.A lasuitedecelail litcommerfrencelemeilleuretseulementlemeilleurdespeersaveclesquelsilestencontact,ds qu'ilsontatteintunminimumdequalit. Quand il estime avoir atteint les conditions minimales de stabilit notre ordinateur se dclare synchronis et acquirelastraten+1silepeerluestenstraten. Plusletempspasse,pluslescorrectionsquefaitntpdsontfiables,lesystmeestplusstableetl'intervalleentre deuxconsultationsdespeersvaenaugmentant.L'erreurmaximaleques'autoriselesystmeestde128millisecondespar 22287750.odt Page101sur141 20/09/09

dfaut.Sicettelimiteestdpasselesystmeseconsidredenouveaucommenonsynchronisettoutrepartcommeau premierlancement.C'esttrsrarequecelaarrive(saufproblmerseau)etunpcstandarddeparticulierpeuttrsfacile mentconserveruneerreurmaxide2millisecondesavecunebonnestabilit (cequipourtouslesusagescourantsest mme"luxueux"). Lescorrectionsd'horlogeinternepeuventallerjusqu'500partieparmillion(ppm).Enpratique12ppmquivaut unedrivede1secondeparjour.Surdumatrielstandardlacorrectionestsouvententre30et150ppm.Maiscelapeut variergrandementsilatempraturedesquartzsubitdesvariationsimportantes.Engrossivousavezunesallemachines climatisevousallerresterplusstablequesivotrepcestderrirelafentreetquelesoleillechauffelajourne.

C) L'installationconcrte
Nousallonsprendreuncasdefigurequidevientcourantavecl'ADSL:vousavezunpcsouslinuxquisertdepasse rellenatetfirewallentreinternetetlespostesclients(levotresousLinux,leMacdevotre pouseetlePCwindowsdu gamin,benouaiscausedejeux...). Vousvoudriezquetoutcepetitmondesoit lammeheureentreeuxetsipossible l'heureaveclerestedu monde. Latechniquelapluslogiqueestdevouscrerunserveurdetempslocalafindediminuerletraficinutilesurinter net.Ilsemblelogiqued'utiliserlamachinepasserellepourfournirceservice.Onavuqueplusledmonntpdtournait longtempsplusildevenaitstableetprcis.Donccettemachinequivousrelie internetetnes'arrtejamaisestlaplace idalepourcetypedeservice. Leschmaquenousavonschoisinouspermetdeprsenterpratiquementtouteslesutilisationsdentppourleparti culieroulaPME/PMI.Ilnousmanquerajustel'ouverturesurinternetafindedevenirnousmmeserveurdetempspour d'autresuilisateurs(maisceseraittrsfacilesivousaviezuneIPfixeetunnomdedomaine). a) Configurationduserveur InstallationMandriva:urpmintp. Installationdebian:apt-get install openntpd Onveutquenotrepasserellesemettel'heuresurdesserveursdetempsdel'internetetquelesmachinesdenotre rseaupuissentl'interrogercommeellesinterrogeraientunserveurdetempsexterne. Sivous tesenFranceMtropolitainevoustrouverez l'adressecidessousunelistedeserveursdetempspublics dontlesprcisionssurlesconditionsd'utilisationsontprcisesaucasparcas. http://www.cru.fr/NTP/serveurs_francais.htmlouhttp://www.pool.ntp.org/zone/europe Unebonnepolitiqueestdechoisir5serveursdiffrentspour trecertainquel'und'euxseratoujoursaccessibleen synchronisation.Vouspourriezn'enmettrequ'un,maissivousperdezlaliaisonaveclui,vousperdezvotresynchro. Les informations ncessaires ntpd figurent dans le fichier /etc/ntp.conf pour Mandriva ou /etc/openntpd/ntpd.confpourdebian. Lefichierprsentedeuxsections,unesectionquifournitlesinformationsncessaires lamise l'heuredelama chineetunesectionservantparamtrerlamachineentantqueserveurpourd'autresmachines.Regardonsunexemple defichierntp.conf
## ## Exemple de fichier de configuration ntp '/etc/ntp.conf' pour un poste franais ## (c) Marc Guillaume - yakati - 2003 ## ## Horloge locale non synchronise. Il s'agit d'une adresse fictive ## quand aucune autre n'est accessible notre serveur non synchronis sur internet ## peut tout de mme servir de serveur pour notre LAN ## server 127.127.1.0 fudge ## ## il est recommand dans la liste des serveurs de mettre au moins trois adresses, ce qui est ## en principe suffisant, mais il est prfrable d'en avoir cinq. ## Pour le choix des serveurs il est prfrable de choisir des serveurs fiables mais qui ne soient ## pas forcement trs hauts dans la hirarchie. Mme si vous vous calez sur une strate 3 ou 4 ## vous conserverez largement mieux que la seconde de prcision. C'est bien assez pour un LAN et ## ainsi vous ne saturez pas les strates 2 dont certains peuvent avoir plus besoin que vous. ## A vous de juger du besoin de prcision qui est le vtre. 127.127.1.0 stratum 10 # horloge locale(LCL) # LCL est dsynchronise nous lui donnons la strate 10

1) Configurationdentp

22287750.odt

Page102sur141

20/09/09

## En pratique vous ne pourrez pas vous connecter aux serveurs de strate 1 sans accrditation et ## mot de passe. Voici un choix de serveur qui devrait convenir beaucoup de monde. ## Les serveurs peuvent tre dsigns par une adresse IP ou par un nom DNS. La plupart des ## serveurs vous encouragent utiliser un nom DNS, certaines IP tant sujettes changement. ## De plus il existe des serveurs de zone gographiques qui sont regroups sur un mme nom et les ## DNS vous dirigent au hasard sur l'un de ces serveurs qui sont tous quivalents, de manire ## rpartir la charge sur ces machines. ## ## maxpoll 12 indique que chaque 2^12=4192 secondes au maximum le dmon consultera le serveur. ## La valeur ## ## par dfaut est 10. server ntp.cpsc.ucalgary.ca maxpoll 12 server fr.pool.ntp.org maxpoll 12 server pool.ntp.org maxpoll 12 server europ.pool.ntp.org maxpoll 12 server ntp.shorty.com maxpoll 12 server ntp.ndsoftwarenet.com maxpoll 12 # zone mondiale server ntp1.tuxfamily.net maxpoll 12 server ntp2.tuxfamily.net maxpoll 12 server ntp.univ-lyon.fr maxpoll 12 server ntp.via.ecp.fr maxpoll 12 # IP 80.67.177.2 # IP 80.67.179.2

## La seconde partie du fichier fournit des informations permettant la machine de devenir ##un serveur local ## ## Divers ## ## Le fichier /etc/ntp/drift sous Mandriva, qui dans d'autre distributions /var/lib/ntp/ntp.drift ## est celui qui contient la correction qu'il faut appliquer notre horloge locale pour qu'elle ## soit le plus exacte possible. ## Le chiffre qu'il contient est exprim en parties par million (ppm). Le maximum par dfaut est ## de 500 ppm. Une correction de 12 ppm quivaut une seconde par jour. ## Vous n'avez pas intervenir sur ce fichier qui est entretenu par ntpd. ## ## On indique ici o il doit se trouver. Ce chemin est celui propos par dfaut sur Mdv. ## driftfile /etc/ntp/drift ## ## On peut en principe faire crire un log ntpd en dcommentant les lignes suivantes, ## mais pour ma part je n'ai jamais russi utiliser cette option. ## ## logfile /var/log/ntp ## logconfig =all # fichier de log # dcommenter pour l'utiliser ## logconfig = syncstatus + sysevents # dcommenter pour l'utiliser

## Il existe aussi la possibilit de faire gnrer des statistiques ntpd mais je n'ai jamais ## non plus utilis cette possibilit aussi n'en parlerai-je pas. En revanche si vous voulez ##ouvrir votre serveur sur internet ce sera indispensable. ## Local users may interrogate the ntp server more closely. restrict 127.0.0.1 nomodify

22287750.odt

Page103sur141

20/09/09

#restrict 127.0.0.1

192.168.0.0

mask

255.255.0.0 nomodify

## Clients from this (example!) subnet have unlimited access, ## but only if cryptographically authenticated #restrict 192.168.0.0 restrict 192.168.0.0 mask mask 255.255.0.0 notrust 255.255.0.0 kod nomodify notrap nopeer ## Il faut tous les paramtres suivants pour que a marche, la ligne prcdente est insuffisante

## If you want to provide time to your local subnet, change the next line. ## (Again, the address is an example only.) ## L'activation de la ligne suivante coupe l'accs mon serveur ntp de on rseau 192.168.X.X #broadcast 192.168.255.255

b) Configurationfinaleactivationduserveur LeportpardfautsurlequelcirculentlespaquetsntpestUDP#123.Sinousvoulonsaccder unserveurouque desmachinesaccdent notreserveurnousdevonsl'ouvrir.Pourlesdistributionennoyau2.4.xquiutilisentiptablesla rgleiptablesappliquerest:


#iptables -I INPUT 1 -m udp -p udp -s 0/0 --sport 123 -d 0/0 --dport 123 -j ACCEPT

Pour ceux qui utilisent encore des noyaux 2.2.x (comme Mandriva 7.2 ou Single Network Firewall (SNF) par exemple)largleipchainsest:
ipchains -I input -p udp -s 192.168.0.0/24 -d 192.168.0.1 123 -j ACCEPT -b -s 192.168.0.0/24estlerseauquel'onveutlaisserentrer -p 192.168.0.1estlamachineserveurellemme

Suivantquevousserezsurunedistributionennoyau2.2ou2.4lefichierdedmarrageseraxntpdountpd.ond marreleservice(enroot)par: /etc/init.d/ntpd startou/etc/init.d/xntpd start Sil'onveutavoirleserviceaudmarrage: chkconfig --level 235 ntpdpouravoirleservicedmarreninit23et5parexemple c) Vrificationdufonctionnement Quelquesutilitairessontlivrsavecntpdquipermettentdecontrlercertainsaspectsdesonfonctionnement. Toutd'abordntptracequidonnelestatutduserveuretduserveursurlequelilsesynchronise.Audmarrageil prsenteunaspectcommeceluici(leserveurs'appelleavicennedansledomaine"enbois"mg.lan):
[marc]$ /usr/sbin/ntptrace localhost: stratum 16, offset 0.000073, synch distance 0.00000 0.0.0.0: *Not Synchronized*

auboutdequelquesminutesilprsenteunaspectcommeceluici:
[marc]$ /usr/sbin/ntptrace avicenne.mg.lan: stratum 3, offset -0.000842, synch distance 0.26396 hora.oxixares.com: stratum 2, offset 0.001512, synch distance 0.07550 ntp2-rz.rrze.uni-erlangen.de: stratum 1, offset -0.010752, synch distance 0.00021, refid 'GPS'

La signification est que avicenne est pass en serveur de strate 3 synchronis sur le serveur de strate 2 ho ra.oxixares.cometquecedernierestsynchronissurlestrate1ntp2rz.rrze.unierlangen.dedontonvoitqu'ilsecalesur unehorlogeGPS. AvicenneestprtservirdeserveurdetempspourmonrseauLAN. Unautreutilitaireestntpq,ilfournitdesinformationssurlesserveursslectionnscommepeersparexemple:
[marc]$ /usr/sbin/ntpq -p remote LOCAL(0) *209.195.3.50 refid LOCAL(0) ntp-s1.cise.ufl st t when poll reach 10 l 2 1 u 2 13 446 64 512 377 377 377 377 delay 0.000 393.690 110.762 283.780 offset 0.000 -2.350 -9.304 0.122 jitter 10.010 1.680 3.525 0.640 ============================================================================== 772 1024 163 1024

-ntp1-rz.rrze.un .DCFp. +fsa.cpsc.ucalga bonehed.lcs.mit

leserveurprcdd'uneastrisque(*)estceluiquiestutilis,celuiprcdd'un+estunserveurdontletempsde rponseestactuellementtroplong.Celuidontlenomestprcdd'unestuncandidatpossiblelasynchronisation. Onobtientgalementdesinformationssurchaquepeer: 22287750.odt Page104sur141 20/09/09

lacolonne(remote)donnelenomduserveur(undesserveursslectionnscommepeers) lacolonne(refid)indiqueleserveurntpquisertdesourceauserveur lacolonne(st)indiquelastrateduserveur, acolonne(t)indiquesiilestactif, lacolonne(when)ditdepuiscombiendetempsiln'apastappelensecondes, acolonne(poll)indiqueladurequidoits'coulerentrechaquerequte, lacolonnereachestlemasquederequterussiesexprimenoctal, lacolonne(delay)exprimeletemps,estimenmillisecondes,quemetlepaquetUDPnousparvenir, lacolonne(offset)estladiffrenceestimeentrel'heuredenotrehorlogeinterneetcellederfrence, lacolonne(jitter)exprimeladispersiondesvaleursderfrenceobtenuesdecepeer,ilexprimelaqualitmoyenne decettesource. Pourestimerlaqualitdevotreconnexionauserveurlacolonnereachestsurveiller.Achaquecontactrussiavec leserveurpeer,cenombreaugmente.Commeilestexprim enoctalilvade0 7puisunsecond chiffresaffiche. Lorsquelaconnexioneststableetdequalitonobtient377.Pourqueleserveurseconsidrecommesynchronisilfaut quilaitaumoinsatteint177.Cenestqupartirdelquedesclientspeuventcommencersesynchroniserdessus. Commeons'endouteilfautinstallerntpdsurnotremachineetconfigurerntp.conf.Cedernierfichierestdans notrecastrssimple:
## ## exemple de fichier de configuration '/etc/ntp.conf' pour un client LAN ## server fudge 127.127.1.0 # local clock 127.127.1.0 stratum 10

2) SynchroniserunposteLINUXsurvotreserveurdetempslocal

## server local (si vous avez un DNS ou des fichiers hosts jour vous pouvez utiliser son nom ## si ce n'est pas le cas vous utilisez son adresse IP. server 192.168.0.1 # passerelle avicenne.mg.lan

## chemin du fichier de correction d'horloge driftfile /etc/ntp/drift ## on indique que le serveur ne demande pas d'identification authenticate no

Etc'esttout.Votreposteclientvasesynchroniseravecvotreserveurdestratenetdevenirunserveurpotentielde straten+1 Auboutdequelquesminutesvousallezavoirparexemple:


[marc@maimonides marc]$ /usr/sbin/ntptrace localhost.localdomain: stratum 4, offset 0.000011, synch distance 0.28328 avicenne.mg.lan: stratum 3, offset -0.000099, synch distance 0.27109 hora.oxixares.com: stratum 2, offset 0.001512, synch distance 0.07550 ntp2-rz.rrze.uni-erlangen.de: stratum 1, offset -0.010752, synch distance 0.00021, refid 'GPS'

et [marc@maimonidesmarc]$/usr/sbin/ntpqp
remote LOCAL(0) refid LOCAL(0) st t when poll reach 10 l 3 u 21 64 377 377 delay 0.000 0.923 offset 0.000 -0.108 jitter 0.008 0.020 ============================================================================== *avicenne.mg.lan 209.195.3.50 582 1024

IlexisteunclientntppourwindowsenGPLdunomdeNetTimequipermetdesesynchroniserfacilementsurun serveurdetemps(localouexterne).Onletrouveentlchargementsur:http://www.nettimeserverclient.netsoftware download.com/ Il figure galement sur la compilation de logiciels libres pour windows qui complte le serveur freeEOS : http://freeeos.org/ PourlespostessousWindowsXP ,ilexisteunesynchronisationintgrentpd.Leserveurpardfautestunserveur microsoft,maisvouspouvezleremplacerparvotreserveurlocal. 22287750.odt Page105sur141 20/09/09

3) Synchroniserunpostewindows

PourlesMacdits"oldworld",ilsuffitd'utiliserlaprocduresuivante: TableaudeBord/DateetHeure Cochez"Utiliserunehorlogerseau" Cliquezsur"Optionsd'horlogerseau" Cliquezsur"Apple,Europe..." etchoisissez"Modifierlaliste" Cliquezsur"Ajouter" Description=lenomdevotreserveur(facultatif) Adresse=l'adresseIPdevotreserveurdetemps Cliquezsur"OK" Supprimeztouslesautresserveursdetemps Cliquezsur"OK" Cochez"Chaque12heures" Cliquezsur"OK" N'ayantpasdepostesousMacOSXjen'aipaspuexprimenter.Apriorilafonctionnalitad treconserve.Tout retourd'informationestlebienvenu.

4) SynchroniserunposteMACINTOSHSYSTEME8OU9

5) SystmeMacOSX

22287750.odt

Page106sur141

20/09/09

XXIII) LDAP
Cechapitreesttrslongcaronpeutrevoirlaconfigurationdebeaucoupdeserveursprcdemmentdcritafinde lesfairemarcheravecLDAP .Malgrcela,ilestincompletetjenecomptepaslefinirdesittcarjenevaisnienseigner LDAP ,niutiliserLDAPdesittsurunrseau. Jelaissetoutdemmecequiadj t faitcarledbutmarche(authentification)maissionn'utiliseLDAPque pour a,lejeun'envautpaslachandelle!Vous teslibredemecompltercechapitrecommelerestedececours.J'at tends:).

A) Prsentation
LDAP(LightweightDirectoryAccessProtocol)estleprotocoled'annuairesurTCP/IP .Lesannuairespermettentde partagerdesbasesd'informationssurlerseauinterneouexterne.Cesbasespeuventcontenirtoutesorted'information quecesoitdescoordonnesdepersonnesoudesdonnessystmes. LDAPestunprotocoled'annuairestandardetextensible.Ilfournit: leprotocolepermettantd'accderl'informationcontenuedansl'annuaire, unmodled'informationdfinissantletypededonnescontenuesdansl'annuaire, unmodledenommagedfinissantcommentl'informationestorganiseetrfrence, unmodlefonctionnelquidfinitcommentonaccdel'information, unmodledescuritquidfinitcommentdonnesetaccssontprotgs, unmodlededuplicationquidfinitcommentlabaseestrpartieentreserveurs, desAPIspourdvelopperdesapplicationsclientes, LDIF,unformatd'changededonnes. LesdonnesLDAPsontstructuresdansunearborescencehirarchique,qu'onpeutconsidr commeunarbre.Si onprendunparalllismeavecunarbrechaquebranchedel'arbrepeut treconsidr commeunobjetdel'annuaire,et chaquefeuilledel'arbreestuneentredansl'annuaire(unepersonne,uneimprimante,unemachine,unergled'au thentificationetc....)

B) Installation
Onvrified'abordqu'Openldapn'estpasdjinstallsurvotresystmeentapant:
rpm -qa | grep -i ldap

1) Lesrpm

IlfautrajouterlesrpmdeLDAP:
libldap2 openldap-server openldap-clients openldap nss_ldap openldap-migration pam_ldap :

utilisspourunserveurldapcommeunsystemeNIS. urpmi php-ldap libltdl3 libunixODBC2 --auto-select Cefichierest:/etc/openldap/slapd.conf.Voiciunexemplecomment:


# inclusion des autres fichiers de configuration # on utilise ce dont on a besoin ... include /usr/share/openldap/schema/core.schema include /usr/share/openldap/schema/cosine.schema include /usr/share/openldap/schema/inetorgperson.schema include /usr/share/openldap/schema/nis.schema include /usr/share/openldap/schema/misc.schema include /usr/share/openldap/schema/kerberosobject.schema #include /usr/share/openldap/schema/rfc822-MailMember.schema # Un include manquant introduira une erreur, il suffit alors de retrouver le fichier # qui dfini la classe manquante et de le rajouter (attention l'ordre!). # Pour les autres, gardez les commentaires afin de conserver l'ordre! # Voir plus loin pour les choix #include /etc/openldap/schema/local.schema # Define global ACLs to disable default read access. include /etc/openldap/slapd.access.conf

2) Lefichierdeconfiguration

# on demande ldap de vrifier si chaque ajout

22287750.odt

Page107sur141

20/09/09

# dans l'annuaire respecte bien la structure schemacheck on

# fichiers qui stockent les arguments et les PID du serveur pidfile argsfile /var/run/ldap/slapd.pid /var/run/ldap/slapd.args

####################################################################### # ldbm database definitions ####################################################################### # Type de l'annuaire LDAP database suffix rootdn # rootpw rootpw ldbm "dc=troumad,c=org" "cn=root,dc=troumad,c=org" secret {MD5}je_ne_vais_pas_vous_le_donner! #dans quelle "branche" de base on se situe

# choisir le mode md5 pour le mot de passe : slappasswd -h {MD5} #Ou sera stocke l'annuaire, dans une partition non efface lors d'un update! # Attention, ce rpertoire devra appartenir ldap : chown -R ldap:ldap /maison/ldap directory /maison/ldap

# Indices to maintain #index index index objectClass objectClass,uid,uidNumber,gidNumber cn,mail,surname,givenname {crypt} "$1$%.8s" eq eq eq,subinitial

password-hash

password-crypt-salt-format # logging loglevel 256 # Basic ACL access to attr=userPassword by self write by anonymous auth

by dn="cn=root,dc=troumad,c=org" write by * none access to * by dn="uid=root,ou=utilisateurs,dc=troumad,c=org" write by * read

Aprsceci,ilfautlancerledmon:/etc/init.d/ldap restartouencasdeproblme,nousavonstoujours lapossibilitdefaire:nohup slapd -d 255 1>/dev/null 2>/dev/null &. Jefaisunfichierdanslequeljerentremesdonnes:justelaracinedemabasededonnes.Cesdonnesdoivent comprendrelechemindesdonnesrentrer(lalignedn).Commec'estlaracine,elledoitcorrespondrelalignesuffix "dc=troumad,c=org"dufichier/etc/openldap/slapd.conf. Voiciunepremiremanipulationcommente.
[root@troumad ldif]# cat racine.ldif

3) Premiersessais

22287750.odt

Page108sur141

20/09/09

dn: dc=troumad, c=org objectclass:top objectclass:organization o:troumad description: Informatique Maison [root@troumad ldif]# ldapadd -x -D "cn=root,dc=troumad,c=org" -W -f racine.ldif

Jerentrelesdonnesaveclacommandeldapadd.Attention,ilestimportantdedirequevousvoulezavoirle comptequiest"cn=root,dc=troumad,c=org"avecl'option-Detdedemanderlemotdepasseavecl'option-W.Ilenest demmeavecldapdelete.


Enter LDAP Password: adding new entry "dc=troumad, c=org" [root@troumad ldif]# slapcat

Jeregardelesdonnesaveclacommandeslapcat.
dn: dc=troumad, c=org objectClass: top objectClass: organization o: troumad description: Informatique Maison creatorsName: cn=root,dc=troumad,c=org createTimestamp: 20031003070930Z modifiersName: cn=root,dc=troumad,c=org modifyTimestamp: 20031003070930Z [root@troumad ldif]# ldapadd -x -f utilisateur.ldif -D "cn=root,dc=troumad,c=org" -W

Jerajouteunedonnedansldap.Cettedonnedoittrenouvelle,sic'estunemodification,ilfaututiliserldapmodify.S'ilyauneentreexistante,mmelesnouvellesentresneserontpasprisesencompte.
Enter LDAP Password: adding new entry "ou=utilisateurs,dc=troumad,c=org" [root@troumad ldif]# ldapsearch -x -b "dc=troumad, c=org" 'ou=utilisateurs'

Jen'affichedansmonarbre,quelesdonnesquivrifient'ou=utilisateurs'.Onpeutmettre*commecondi tion,danscecas,onatoutl'arbre.
version: 2 # # filter: ou=utilisateurs # requesting: ALL # # utilisateurs, troumad, org dn: ou=utilisateurs,dc=troumad,c=org objectClass: organizationalUnit ou: utilisateurs description: Les utilisateurs du reseau # search result search: 2 result: 0 Success # numResponses: 2 # numEntries: 1 [root@troumad ldif]# cat utilisateur-modif dn: ou=utilisateurs,dc=troumad,c=org

22287750.odt

Page109sur141

20/09/09

objectClass:organizationalUnit ou:utilisateurs description:Les utilisateurs du reseau LINUX [root@troumad ldif]# ldapmodify -x -f utilisateur-modif -D "cn=root,dc=troumad,c=org" -W

Jemodifiel'entreutilisateuravecutilisateur-modif,c'estunfichierd'entrenormalauformatldif,puisjev rifie.Onnepeutmodifierqu'uneentredj existante.Sidanslefichier,ilexisteuneentrenouvelle,elleneserapas priseencompte.Aveclaremarquefatesurldapadd,onenconcluquepourrajouterjusteunenouvelleentre,ilfautlui fireunfichierpart.


Enter LDAP Password: modifying entry "ou=utilisateurs,dc=troumad,c=org" [root@troumad ldif]# ldapsearch -x -b "dc=troumad, c=org" 'ou=utilisateurs' version: 2 # # filter: ou=utilisateurs # requesting: ALL # # utilisateurs, troumad, org dn: ou=utilisateurs,dc=troumad,c=org objectClass: organizationalUnit ou: utilisateurs description: Les utilisateurs du reseau LINUX # search result search: 2 result: 0 Success # numResponses: 2 # numEntries: 1 [root@troumad ldif]# ldapdelete -x "ou=utilisateurs,dc=troumad,c=org" -W -D "cn=root,dc=troumad,c=org"

J'enlvel'entreutilisateursquejevenaisdemodifieretjevrifie(commandesuivante).
Enter LDAP Password: [root@troumad ldif]#slapcat dn: dc=troumad, c=org objectClass: top objectClass: organization o: troumad description: Informatique Maison creatorsName: cn=root,dc=troumad,c=org createTimestamp: 20031003070930Z modifiersName: cn=root,dc=troumad,c=org modifyTimestamp: 20031003070930Z [root@troumad ldif]# rm-f *.gdbm

J'effacelesdonnesdeldap.,C'estunemanipulationvitersurunserveurpniblementconfigur!!!!
[root@troumad ldif]# /etc/init.d/ldap restart

Jerelanceledmonafind'tresurdenepasrcuprerdesdonnesd'uncacheetdeplanterleserveur.
Arrt du serveur LDAP : ldaps Lancement du serveur LDAP (ldap + ldaps) : [root@troumad ldif]# slapcat slapcat: could not open database. [ OK ] [ OK ]

Labasededonnesestvide:j'aibienreprotaientlesdonnes. 22287750.odt Page110sur141 20/09/09

LesobjetsetleursattributssontnormalissparleRCC2256(http://www.ietf.org/rfc/rfc2256.txt)desorte assu rerl'interoprabilit entreleslogiciels.IlssontissusduschmadeX500,plusdesajoutsdustandardLDAPoud'autres consortiumindustriels.Ilssonttousrfrencsparun objectidentifier (OID)uniquedontlalisteesttenue jourpar l'InternetAssignedNumbersAuthority(IANA:http://www.iana.org/) Lesformessontprdfiniesdanslesincludedudbutdufichier/etc/openldap/sldap.conf. Vousavezdiffrentsmoyensd'ajouterdesdonnes l'annuaire,pourunemeilleurecomprhensiononvad'abord aborderlamthodemanuelle.PourajouterdesdonnesauserveurLDAP vousdevezvousfournirunfichierauformat LDIF(pourLDAPDirectoryInterchangeFormat),leformatestunformattextefacilementlisibleaucontraireduformat internedel'annuaire.VoiciunexempledefichierLDIF,noterque: chaqueenregistrementdanslefichierestsparduprcdentetdusuivantparunelignevierge, lesespacessontprisencompte.ATTENTION,ilesttrsimportantqu'iln'yaitaucunespaceenfindeligne. Lasyntaxeestlasuivante:
dn: description du distinguished name objetclass: classe d'objet d'origine ... Il faut obligatoirement indiquer la parent de la classe d'objet ... en partant de l'objet top et en passant par chaque anctre de l'objet objetclass: classe d'objet drive type attribut: valeur

4) Structuredesdonnes

Voiciunexemplededfinitiond'unepersonne:
dn: cn=Nom Prenom, ou=agenda, o=xenux, dc=net objectclass: top objectclass: person objectclass: inetOrgPerson mail: nom.prenom@xenux.net displayName: Nom Prenom givenName: Prenom cn: Nom Prenom sn: Prenom mobileTelephoneNumber: 06 00 00 00 00 telephoneNumber: 00-00-00-00-00 homeTelephoneNumber: 11-11-11-11-11 homePostalAddress: XX Xenux Street street: XX Xenux Street pager: 22-22-22-22-22 postalCode: 99999 title: Job preferredLanguage: fr

Explications : pouravoiruneadresseemail,ilfautquel'objetsoitdetypeinetOrgPerson Apartirdel,onpeutchercherquelssontlesfichiersdeconfigurationsdontonabesoin:


[root@monPC][/usr/share/openldap/schema]$ find . -type f -print |xargs grep inetOrgPerson ./inetorgperson.schema:# inetOrgPerson ./inetorgperson.schema:# The inetOrgPerson represents people who are associated with an ./inetorgperson.schema: ./openldap.schema: NAME 'inetOrgPerson' SUP ( pilotPerson $ inetOrgPerson )

JevoisqueinetOrgPersonestdfinidans./inetorgperson.schema.Jedoisdoncinclurelefichierinetorgperson.schemadansmonfichierdeconfigurationsldap.conf.Maintenant,jevaisrechercherladfinitiondansinetOrg

Person.Jevaistapperlescommandesuivante:less inetorgperson.schema[Entre]/[# inetOrgPerson[Entre].


# inetOrgPerson # The inetOrgPerson represents people who are associated with an # organization in some way. objectclass It is a structural class and is derived # from the organizationalPerson which is defined in X.521 [X521]. ( 2.16.840.1.113730.3.2.2

22287750.odt

Page111sur141

20/09/09

NAME 'inetOrgPerson' DESC 'RFC2798: Internet Organizational Person' SUP organizationalPerson STRUCTURAL MAY ( audio $ businessCategory $ carLicense $ departmentNumber $ displayName $ employeeNumber $ employeeType $ givenName $ homePhone $ homePostalAddress $ initials $ jpegPhoto $ labeledURI $ mail $ manager $ mobile $ o $ pager $ photo $ roomNumber $ secretary $ uid $ userCertificate $ x500uniqueIdentifier $ preferredLanguage $ userSMIMECertificate $ userPKCS12 ) )

doncinetOrgPersondrivedel'objetorganizationalPerson:SUP organizationalPerson Toujoursaveclammemthode,nouscherchonsouestdfiniorganizationalPerson:


./core.schema:objectclass ( 2.5.6.7 NAME 'organizationalPerson' SUP person STRUCTURAL

Ilestdoncdfinidanscore.schemaetcettefois,commec'estsurlammeligne,nouspouvonsmmedireque or ganizationalPersondrivequantluideperson person de top toujoursdans core.schema :./core.schema:objectclass ( 2.5.6.6 NAME 'person' SUP
top STRUCTURAL

./core.schema:objectclass ( 2.5.6.0 NAME 'top' ABSTRACT:topestencoredanscore.schema Nousavonsdoncdj besoindedeuxincludes:inetorgperson.schemaetcore.schema. Avectoutaquepeutondonnercommerenseignementssurnotrehomme?Onvaencoreregarderlesincludes. Lefichierscore.schemanenousapporteriendeparticuliersurtop:ilditqu'ildoitconteniruneclasse. Cemmefichiernousdonnedesinformationssur'person':
objectclass ( 2.5.6.6 NAME 'person' SUP top STRUCTURAL MUST ( sn $ cn ) MAY ( userPassword $ telephoneNumber $ seeAlso $ description ) )

Ondoit(MUST)donnerlesinformationssnetcn.Nouspouvonsaussi(MAY)complterleschampsuserPassword, telephoneNumber,seeAlso,description.Bienquecesoitdel'anglais,jepensequec'estcomprhensible! Poursnetcn,ontrouvetoujoursdanscemmefichier:


attributetype ( 2.5.4.3 NAME ( 'cn' 'commonName' ) SUP name ) attributetype ( 2.5.4.4 NAME ( 'sn' 'surname' ) SUP name )

Lepremierestlenomcommunetlesecondlenomdefamille. Maintenant,pourorganizationalPerson:
objectclass ( 2.5.6.7 NAME 'organizationalPerson' SUP person STRUCTURAL MAY ( title $ x121Address $ registeredAddress $ destinationIndicator $ preferredDeliveryMethod $ telexNumber $ teletexTerminalIdentifier $ telephoneNumber $ internationaliSDNNumber $ facsimileTelephoneNumber $ street $ postOfficeBox $ postalCode $ postalAddress $ physicalDeliveryOfficeName $ ou $ st $ l ) )

Ongardelesinformationsdepersonnauxquellesonpeut(MAY)rajoute:untitre(Mr,Mme,Mlle),etd'autres informations. PourinetOrgPerson,onvoitqu'unpeutrajouterpleind'informationcommesonadresse lectroniqueetsalangue prfre.

C) Unpeudevocabulaire
Commenousvenonsdelevoir,onestvitedbordparlesnouveauxtermes.Alorsvoiciunpetitlexique!

1) Leschma L'ensembledesdfinitionsrelativesauxobjetsquesaitgrerunserveurLDAPs'appellele schma.Leschmadcrit lesclassesd'objets,leurstypesd'attributsetleursyntaxe.Ontrouvelesdfinitionsdesobjetsdanslesincludesdufichierde configuration. 2) Lesattributs Uneentredel'annuairecontientunesuitedecouplestypesd'attributsvaleursd'attributs.Lesattributssontcarac trisspar:


22287750.odt Page112sur141 20/09/09

Unnomquil'identifie UnObjectIdentifier(OID)quil'identifiegalement S'ilestmonooumultivalu Unesyntaxeetdesrglesdecomparaison Unindicateurd'usage Unformatouunelimitedetailledevaleurquiluiestassocie Lesattributsdcriventgnralementdescaractristiquesdel'objet,cesontdesattributsdits normaux quisont accessiblesauxutilisateurs.Certainsattributssontditsoprationnelscarilsneserventqu'auserveurpouradministrerles donnes(ex:attributmodifytimestamp). Lasyntaxeindiqueletypededonnesassocies l'attributetlamaniredontl'annuairedoitcomparerlesvaleurs lorsd'unerecherche. CertainsserveursLDAPrespectentlesstandardsX500dehirarchisationdesattributs,quipermettentdedcrireun attributcomme tantunsoustyped'unattributsupertypeetd'hriterainsidesescaractristiques.Parexemple,lesattri buts cn, sn, givenname sontdes soustypes del'attribut supertypename.Cesattributs supertypes peuvent treutiliss commecritrederecherchegnriquequiportesurtoussessousattributs. Vouspouveztrouverunelistecommentesur:http://ldap.akbkhome.com/ Lesclassesd'objetsmodlisentdesobjetsrelsouabstraitsenlescaractrisantparunelisted'attributsoptionnelsou obligatoires.Uneclassed'objetestdfiniepar: Unnomquil'identifie UnOIDquil'identifiegalement Desattributsobligatoires Desattributsoptionnels Untype(structurel,auxiliaireouabstrait) Letyped'uneclasseestlilanaturedesattributsqu'elleutilise. Uneclassestructurellecorrespondladescriptiond'objetsbasiquesdel'annuaire:les personnes,lesgroupes,lesuni tsorganisationnelles...Uneentreappartienttoujoursaumoinsuneclassed'objetstructurelle. Uneclasseauxiliairedsignedesobjetsquipermettentderajouterdesinformationscomplmentaires desobjets structurels.Parexemplel'objetmailRecipientrajoutelesattributsconcernantlamessagerie lectroniqued'unepersonne. L'objetlabeledURIObjectfaitdemmeconcernantlesinfosWeb. UneclasseabstraitedsignedesobjetsbasiquesdeLDAPcommelesobjetstopoualias. Lesclassesd'objetsformentunehirarchie,ausommetdelaquellesetrouvel'objet top.Chaqueobjethritedes proprits(attributs)del'objetdontilestlefils.Onpeutdoncenrichirunobjetencrantunobjetfilsquiluirajoutedes attributssupplmentaires. Onprciselaclassed'objetd'uneentrel'aidedel'attributobjectClass. ChaqueentreestrfrencedemanireuniquedansleDITparsondistinguishedname(DN).LeDNreprsentele nomdel'entresouslaformeduchemind'accs cellecidepuislesommetdel'arbre.OnpeutcomparerleDNaupath d'unfichierUnix.Parexemple,monDNest:
uid=mirtain,ou=people,dc=inria,dc=fr

3) Lesclassesd'objets

4) LeDistinguishName

LeDNreprsentelecheminabsolud'accsl'entre.CommepourlesystmedefichierUnix,onpeututiliserun re lativedistinguishednames(RDNs)pourdsignerl'entredepuisunepositiondterminedel'arbre. LDAPDataInterchangeFormat(LDIF)permetdereprsenterlesdonnesLDAPsousformattextestandardis,ilest utilispourafficheroumodifierlesdonnesdelabase.Ilavocationdonnerunelisibilitdesdonnespourlecommun desmortels. LDIFestutilisdansdeuxoptiques: fairedesimports/exportsdebase fairedesmodificationssurdesentres. Lasyntaxeestunnomd'attributsuivide:suividelavaleur(uid:mirtain),lepremierattributd'uneentretantle DN(dn:uid=mirtain,ou=people,dc=inria,dc=fr).LeformatutilisestleBERouUTF8,lesdonnesbinaires tantcods enbase64.C'estpourcelaquecertainesvaleursdoiventetreencod enbase64danscecasl'attributestsuivide"::"au lieude":" Laformegnraleest:
dn: <distinguished name objectClass: <object class objectClass: <object class ... <attribute type:<attribute value <attribute type:<attribute value ... c'est la seule ligne avec des signe '=' Comme pour les suivantes, les affectations se font avec un ':'

5) LDIF

22287750.odt

Page113sur141

20/09/09

D) phpldapadmin E) UtiliserOpenLDAPpourl'authentification
Changerlegestionnairedesgroupesetdesutilisateursn'estpasuneminceaffairecarondoitrefairelabasede donnesdesutilisateursetdesgroupes.Cecin'estpassifacilequ'onpourraislepenser.Pourvousdonneruneide,regar dezlenombredegroupesprsentsdans/etc/groupetlenombred'utilisateursdans/etc/passwd. Pour cela, nous avons des utilitaires. Je vais utiliser ceux qui sont fournis avec Mandriva. Ils sont dcrits sur http://www.Mandrivasecure.net/en/docs/ldapauth2.php (cettepageseraunrsum enfranaisdecelien).Maisilen existed'autrescommeceuxdcrits(enfranais)surlapage:http://www.xenux.net/?article=22. Toutd'abord,ilfauttresurd'avoirinstallerlesrpmdsignsaudbutdecechapitresurldap. Oncommencetoutd'abordconfigurercorrectementson /etc/openldap/slapd.confcommeindiqujusteaprs lalistedesrpm.Surtut,n'oubliezpasdecryptervotremotdepasseldapavec slappasswd -h {MD5}etprenezenundif frentdumotdepasseutilisateur.Vouscomprendrezpourquoi! Aprsceci,ilfautredmarerldap: service ldap restart.Pourvoirsivousavezcorrectementdfinivospara mtres,essayez:ldapsearch -x -b '' -s base '(objectclass=*)' namingContexts etregardezlarponse.Si cecivoussemblecorrect,configurezldappourdmarreravecvotreordinateur:chkconfig ldap on. Maintenant,nousallonsutiliserlesoutilsdemigrations,desscriptenPerl,misnotredispositionparMandriva.Ils sontdanslerpertoire/usr/share/openldap/migration.Onvadanscerpertoirecarlesscriptsfontappel d'autres scriptsdecerpertoirequin'estpasdanslePATHxii. Sionveuttoutmigrer,onutiliselescript migrate_all_online.sh.Cependant,vousaurezpeuttredeslignes commenterenplaantundise(#)devantcomme"Migratingprotocols..."ou"Migratingservices..."carvossourcesseront absentes(noninstalles).Onexcutemigrate_all_online.sh:
[root@ldap]# ./migrate_all_online.sh Enter the X.500 naming context you wish to import into: [dc=troumad,o=org] Enter the name of your LDAP server [ldap]: localhost Enter the manager DN: [cn=manager,dc=troumad,o=org]: cn=root,dc=troumad,o=org Enter the credentials to bind with: secret mettre en clair Do you wish to generate a DUAConfigProfile [yes|no]? no

1) Manipulationsurleserveur

Pourmieuxcomprendrecequisefait,onpeutexcuterlesscriptsunparunpourmieuxcomprendre.Personnelle ment,pourdesraisonsdeclaret,jeconseilledevousfaireunrpertoirepersonnelo vousallezstoquerlesfichiersldif gnrsparcesoutilsdemigration.Leurstructureestintressante,ellevouspermettra,parduplication,decrerdenou veauxcomptesodenouveauxgroupes.


[root@ldap]# ./migrate_base.pl >/repertoire_stockage/base.ldif [root@ldap]# ldapadd -x -D "cn=root,dc=troumad,o=org" -W -f /repertoire_stockage/base.ldif

Onpeutvisualiseralorslefichier:cat /repertoire_stockage_perso/base.ldif.Onvoitlastructuredenotre baseldap.Cettelecturepeuttreinstructive.Ensuite,onpasseauxdonnesellesmmes.


[root@ldap]# ./migrate_hosts.pl /etc/hosts /repertoire_stockage/hosts.ldif [root@ldap]# ldapadd -x -D "cn=root,dc=troumad,o=org" -W -f /repertoire_stockage/hosts.ldif [root@ldap]# ldapsearch -LL -H ldap://localhost -b "dc=troumad,o=org " -x "(cn=wrkstation)"

Commececi,vousimportezordinateursdfinisdanshostsdanslabaseetvousvisualisezquel'importationa t correcte.Ensuite,vousexporterezlesgroupesetlescomptesutilisateurs.
[root@ldap]# ./migrate_group.pl /repertoire_stockage/group group.ldif [root@ldap]# ldapadd -x -D "cn=cn=root,dc=troumad,o=org" -W -f /repertoire_stockage/group.ldif
[root@ldap]# ETC_SHADOW=/etc/shadow ./migrate_passwd.pl /etc/passwd /repertoire_stockage/passwd.l-

dif [root@ldap]# ldapadd -x -D "cn=root,dc=troumad,o=org" -W -f /repertoire_stockage/passwd.ldif

Onpeutcomplter lamainlefichierpasswd.ldifpourrajouterdesinformations:cellesquej'aimisenitalique. Cellequiestsoulige,jel'aimodifie.Enrevanche,pourmodifierunmotdepassemanuellementdanscefichier,on trouvelaversioncrypteenfaisant:slappasswd -c cryptouslappasswd -h {crypt}.


dn: uid=troumad,ou=People,dc=troumad,c=org uid: troumad cn: Bernard sn: SIAUD

22287750.odt

Page114sur141

20/09/09

title:Monsieur mail: troumad@libertysurf.fr mailRoutingAddress: troumad@lycee.org mailHost: lycee.org objectClass: mailRecipient objectClass: person objectClass: organizationalPerson objectClass: inetOrgPerson objectClass: account objectClass: posixAccount objectClass: top objectClass: kerberosSecurityObject objectClass: shadowAccount userPassword: {crypt}Je_ne_le_donne_pas! shadowLastChange: 12321 shadowMax: 99999 shadowWarning: 7 krbname: troumad@lycee.org loginShell: /bin/bash uidNumber: 501 gidNumber: 501 homeDirectory: /home/bernard telephoneNumber: xx xx xx xx xx street: ma rue postalCode:69XXX postalAddress:Vers Lyon

Pourvrifierlesinformation,vouspouvezvisualiserunutilisateurenfaisantparexemple:
[root@ldap]# ldapsearch -b "dc=troumad,o=org " -x "(uid=troumad)"

Jeconseillesurcetexempledecrerunnouvelutilisateurquevousallezrentrerdansldap:ilvouspermettrade voirsildapestbienprisencompte. C'estfinipourleserveur.Nouspouvonsmaintenantletesterenapprenantmanipulerlesutilisateurs. Installerchezleclient:nss_ldap. Attention,uneerreurdanscetteconfigurationetvousnepouvezplusvousloggersurvotremachine!Unemthode pourtoutdemmevousrendrelamainconsiste arrterleserveurldap.Donc, viterdemettreuneauthentification ldapsurleserveurmmecarvousnepourrezmmeplusprendrelamainpourrparerleplantage! Ilfautdfinirdanslefichier/etc/hostsleserveurldap:
192.168.1.1 127.0.0.1 192.168.1.10 troumad # c'est lui mon serveur ldap localhost s_travail

2) Installationduclient

Ensuite, on doit configurer le serveur ldap en modifiant le fichier /etc/ldap.conf qui devra avoir les lignes suivantesnoncommentes(laissezlesautres,ellespourronttoujoursvousinformerparlasuite).
host 192.168.1.1 base dc=troumad,o=org rootbinddn cn=root,dc=troumad,o=org scope one pam_filter objectclass=posixaccount pam_login_attribute uid pam_member_attribute gid pam_password md5 nss_base_passwd nss_base_shadow nss_base_group nss_base_hosts # important, initialement, c'est script et a fait planter! ou=People,dc=troumad,o=org?one ou=People,dc=troumad,o=org ?one ou=Group,dc=troumad,o=org?one ou=Hosts,dc=troumad,o=org?one # adresse du serveur # votre serveur ldap # dn du responsable de la base

22287750.odt

Page115sur141

20/09/09

Leclou,c'estlefichier/etc/ldap.secretquidoitjustecontenirenclairlemotdepasse!Mettezluilesdroit600, maisbon,c'estpourcelaquejevousavaisditd'avoirunmotdepasseldapdiffrentdumotdepasseroot!Pourlecreril suffitdefaireecho mot_de_passe_secret >ldap.secret.Sanscefichierl'authentificationldapestimpossible! OnvaaussiconfigurerNSSpourqu'ilutiliseldap.Cecisefaitenconfigurantlefichier /etc/nsswitch.conf:dela faonsuivante(sibesoin,onenlvelesrfrencenisplusetnismisepourleserveurNIS):


passwd: shadow: group: hosts: files ldap files ldap files ldap files ldap dns

Onpeutvrifiersitoutestbienprisencompteenexaminantlessortiesde:
[root@ldap]# getent hosts [root@ldap]# getent group [root@ldap]# getent passwd [root@ldap]# getent shadow

Sildapestbienprisencompte,vousdevezvoirquelefichierhostsdonnedesdoublons.Jevousconseillealorsde lerduireauminimumvital:localhostetleserveurldapcarilfaudrabientrouverceserveur! AprsilfautaussiparamtrerPAMxiiipourqu'ilutiliseLdap.Onrajouteles4lignesengras,cellesquicontiennent ldapdanslefichier/etc/pam.d/system-auth.


#%PAM-1.0 auth auth auth auth account account password password password password session session session #%PAM-1.0 auth auth account account password password password required sufficient sufficient required required sufficient required sufficient sufficient required required required optional /lib/security/pam_env.so /lib/security/pam_unix.so likeauth nullok /lib/security/pam_ldap.so use_first_pass /lib/security/pam_deny.so /lib/security/pam_unix.so /lib/security/pam_ldap.so /lib/security/pam_cracklib.so retry=3 minlen=2 dcredit=0 ucredit=0

/lib/security/pam_unix.so nullok use_authtok md5 shadow /lib/security/pam_ldap.so use_authtok /lib/security/pam_deny.so /lib/security/pam_limits.so /lib/security/pam_unix.so /lib/security/pam_ldap.so

/etc/pam.d/passwdajouterles4lignesengras: sufficient required sufficient required required sufficient required /lib/security/pam_ldap.so pam_stack.so service=system-auth /lib/security/pam_ldap.so pam_stack.so service=system-auth /lib/security/pam_cracklib.so retry=3 minlen=4 dcredit=0 /lib/security/pam_ldap.so use_authtok pam_stack.so service=system-auth ucredit=0

F) UtiliserOpenLDappourSamba
http://www.Mandrivasecure.net/en/docs/sambapdc.php.http://samba.idealx.org/ Commenousdevonsavoirenmainleminimumvitald'instructionenlignedecommande,nouspouvonsmainte nantutiliserunGUIpourvisualiserlesdonnes:GQ.Pourl'installerurpmigq.S'ilnetrouvepasgq,c'estquenousn'a vonspasinstalllasourcederpmcontribcequenouspouvonsfairefacilementgrcelapage:http://plf.zarb.org/~na nardon/. Ilestpossibleavecl'intermdiairedeldapd'avoirlammebasedemotdepasseaussibienpourSambaquepour lesautrespartages.Cecidemandedereconfigurersambaselonlesexplicationsquisuivent.

22287750.odt

Page116sur141

20/09/09

Ilfautinstallerlesrpmsambacompilspourldap.Onpeutdirectementlesrcuprersurunserveurdesamba comme: http://us3.samba.org/samba/ftp/Binary_Packages/Mandriva/RPMS/9.1/.Onlesinstalleurpmi samba-common-ldap-2.2.8a-2mdk.i586.rpmeturpmi samba-server-ldap-2.2.8a-2mdk.i586.rpm. Aprs,onrajoutedanssmb.confleslignessuivantes:


ldap admin dn = cn=root,dc=troumad,c=org ldap server = 192.168.1.1 ldap suffix = dc=troumad,c=org ldap port = 389 ldap ssl = start tl sadd user script = /usr/share/samba/scripts/smbldap-useradd.pl -w -d /dev/null -g machines \ -c 'Machine Account' -s /bin/false %u domain admin group = root Administrator @adm @Administrators @wheel

OnrentrelemotdepasseadministrateurldapsousSamba:smbpasswd -w mot_de_passe_en_clair.Cette manipulationnepeutmarcherquesivousavezinstalllesrpm Ensuiteonmodifieunscript/usr/share/samba/scripts/import_smbpasswd.pl:


$DN="ou=people,dc=mylan,dc=net"; $ROOTDN="cn=root,dc=mylan,dc=net"; # If you use perl special character # rootpw, escape them: # $rootpw = "secr\@t" instead of $rootpw = "secr@t" $rootpw = "n0pass"; $LDAPSERVER="scooby"; in your

Aprs,nousdevonsfaireunemodificationnotrebasededonnesd'OpenLDAP .Nousauronsbesoind'unenouvelle unit d'organisationadditionnelle(ou).Jusqu'icinousgardonsnosutilisateurssousl'oudePeoplesmaisnousavonsbe soind'unendroitpournoscomptesd'ordinateur:windowsgrelesordinateurscommedespersonnes.Nousappellerons cecilesou=Computersd'endroit,dc=troumad,c=orgcommemontr cidessous.Crezundossier destextesavecle contenusuivantappelComputersOU.ldif:


dn: ou=Computers,dc=troumad,c=org ou: Computers objectClass: top objectClass: organizationalUnit objectClass: domainRelatedObject associatedDomain: Maison

installezpam_ldapetmodifiezlefichier /etc/ldap.conf. commedansl'installationduclientpourl'authentification avecunediffrence:


nss_base_passwd nss_base_shadow nss_base_group nss_base_hosts dc=mylan,dc=net?sub ou=People,dc=mylan,dc=net?one ou=Group,dc=mylan,dc=net?one ou=Hosts,dc=mylan,dc=net?one

[root@ldap samba]# smbldap-groupshow adm [root@ldap samba]# smbldap-usershow Administrator

Puisdans/etc/openldap/slap.con
include /usr/share/doc/samba-doc-2.2.3a/examples/LDAP/samba.schema

Nousallonsrajouter,testeretenleverl'utilisateurtest1:
[root@troumad][~]$ smbldap-useradd -m test1

22287750.odt

Page117sur141

20/09/09

[root@troumad][/~]$ smbldap-passwd -m test1 Changing password for test1 New password : Retype new password : all authentication tokens updated successfully [root@troumad][~]$exit

Pourtesteraussilemotdepasse.
[troumad@troumad][~]$ su - test1 Password: su: AVERTISSEMENT: ne peut changer de rpertoire vers /home/test1: No such file or directory -bash-2.05b$ exit logout [troumad@troumad][~]$su [root@troumad][~]$ smbldap-userdel test1 [root@troumad][~]$ su test1 su: L'usager test1 n'existe pas.

Remarques:Nepasmettredelettresaccentuessaufsi cat dcorral.ldif |


dcorral_utf8.ldif

recode ISO-8859-15..UTF-8 >

SurLDAP: http://wwwsop.inria.fr/semir/personnel/Laurent.Mirtain/ldaplivre.html CettedocumentationvousexpliqueralefonctionnementinternedeLDAP . http://www.xenux.net/?article=28 L'objectifdecettedocumentationestd'inclurecompltementlagestionduDHCPdansnotreAnnuaireLDAP http://annuaire.univaix.fr/ldap.doc/ http://www.intevry.fr/mci/user/procacci/ldap/ http://www.toolinux.com/linutile/reseau/intranet/partie4/index3 http://www.linuxfrance.org/article/serveur/ldap/ldap.html#toc4 http://listes.cru.fr/wws/arc/ldapfr/200110/msg00024.html http://www.rycks.com/documentations/ldap/

22287750.odt

Page118sur141

20/09/09

XXIV) Sauvegardesystme
Ceciestunscriptquej'aircuprsurlalisteMandrivadbutant.Ilprendencompteplusieursdistributions:
nfo 0.15 -- gather info from various Linux systems # 6/2003 Christian Perle # # set PATH to include /sbin and friends export PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/local/sbin # english please export LANG="en_EN" # we use internal dirname dirname() { echo ${1%/*} } echo "gathering system info..." # which distro are we running? [ -f /etc/debian_version ] && DISTRO=debian [ -f /etc/SuSE-release ] && DISTRO=suse [ -f /etc/redhat-release ] && DISTRO=redhat [ -f /etc/Mandriva-release ] && DISTRO=Mandriva # use redhat as default [ -z $DISTRO ] && DISTRO=redhat rm -f linf.tgz mkdir linf ( cd linf conflist=" \ /etc/modules /etc/modules.conf /etc/conf.modules /etc/services \ /etc/lilo.conf /etc/fstab /etc/inittab /etc/inetd.conf /etc/hosts \ /var/log/XF*.log /etc/XF86* /etc/X11/XF86* /etc/resolv.conf \ /proc/interrupts /proc/ioports /proc/dma /proc/cmdline \ /proc/devices /proc/partitions /proc/version /proc/cpuinfo " # include debian specific files if [ $DISTRO = debian ] ; then conflist="$conflist /etc/debian_version /etc/network/interfaces " fi # include redhat specific files if [ $DISTRO = redhat -o $DISTRO = Mandriva ] ; then conflist="$conflist /etc/redhat-release /etc/Mandriva-release \ /etc/sysconfig/network /etc/sysconfig/network-scripts/ifcfg-eth? " fi # include suse specific files if [ $DISTRO = suse ] ; then conflist="$conflist /etc/SuSE-release /etc/rc.config /etc/route.conf " fi # copy files for file in $conflist do if [ -r $file ] ; then DESTDIR=`dirname $file` DESTDIR=${DESTDIR#?} mkdir -p $DESTDIR cp $file $DESTDIR

22287750.odt

Page119sur141

20/09/09

fi done lsmod > loaded.modules 2> /dev/null # use /proc/modules as fallback [ $? != 0 ] && cat /proc/modules > loaded.modules lspci -v > pci.devices 2> /dev/null lspci -n >> pci.devices 2> /dev/null # use /proc/pci as fallback [ $? != 0 ] && cat /proc/pci > pci.devices dmesg > dmesg df > df cat /proc/mounts > mounted.filesystems hostname > hostname ifconfig > ifconfig route -n > route uptime > uptime # /proc/config.gz is more reliable than /usr/src/linux/.config if [ -r /proc/config.gz ] ; then gzip -cd /proc/config.gz > kernel.config.proc 2> /dev/null else [ -r /usr/src/linux/.config ] && cp /usr/src/linux/.config kernel.config.usrsrc fi # distro dependent package managers if [ $DISTRO = debian ] ; then COLUMNS=400 dpkg -l | tr -s " " > package.list 2> /dev/null else rpm -qa > package.list 2> /dev/null fi # visit the /usr/local zoo ls /usr/local/bin > usrlocal.list # extract default runlevel from inittab if [ -r /etc/inittab ] ; then DEFLV=`grep "^id:" /etc/inittab` DEFLV=${DEFLV#*:} DEFLV=${DEFLV%%:*} fi # use current runlevel as fallback if [ -z $DEFLV ] ; then DEFLV=`runlevel` DEFLV=${DEFLV#? } fi # distro dependent rc directories case $DISTRO in suse) RCD=/etc/init.d ;; redhat|Mandriva) RCD=/etc/rc.d ;; debian) RCD=/etc ;; *) ;; esac ls $RCD/rc$DEFLV.d > running.services 2> /dev/null pstree > process.tree 2> /dev/null ps auxww > running.processes netstat --inet -nap > connections 2> /dev/null ) tar czf linf.tgz linf

22287750.odt

Page120sur141

20/09/09

rm -rf linf echo "result saved in linf.tgz" echo "done."

22287750.odt

Page121sur141

20/09/09

XXV) Configureretcompilerlenoyau
Gnral:http://lealinux.org/kernel/kernel.html Ubuntu:http://doc.ubuntufr.org/doc/custom_kernel?s=compilation Mandriva : http://doc.Mandrivalinux.com/MandrivaLinux/92/fr/CommandLine.html/compilingkernelchap ter.htmlouhttp://www.Mandrivaclub.com/docs/10.0/fr/CommandLine.html/ch13s02.html

A) Premiertest
Cettemanipulationestsansdangercaronconservelesnoyauxprcdents(enbootautomatique)etqu'ilfautune manipulationvolontairepourutiliserlenouveaunoyau. Leslignessuivantesindiquentlamthodesuivrepourfairevotreproprenoyau: Installerlessourcesdunoyau:urpmi kernel-source avecMandrivaou sudo apt-get install linux-source-2.X.X avecubuntu(trouvavecapt-cache search source 2.6) InstalleraussipourMandrivalecompilateurc++:urpmi gc++ libqt3-devel etpourdebianqt3:aptget install qt3-apps-dev et ubuntu : sudo apt-get install build-essential fakeroot kernel-package,sousubuntu,ilfautdcompresserlessources:tar jxvf linux-source-2.XX.XX.tar.bz2(l'utilisateur apparteniraugroupesrc). Allerdanslerpertoireosontlessources:cd /usr/src/linux surMandrivaousurcd /usr/src/linuxsource-2.6.16 enfonctionsurnoyauinstallet/ouchoisi(ilpeutenavoirplusieursdisponibles)surdebian. Modifierl'enttedufichierMakefile afindereprervotreversion:l'item EXTRAVERSION servira reprer votreversion.Onrepreralaversiondunoyauquitournegrceuname -r. Lancerl'interfacegraphique(c'estlong,nepass'inquiter):make xconfig .(Ou make menuconfig si vousn'avezpasd'interfacegraphique,suruneconsole). Notrepremiertestconsistera choisirvotreprocesseur:entr Processor type and feature.Lereste,onn'ytoucherapas,djcertaindisequecettemanipulationacclrelesys tme. Afindeconservervotrenouvelleconfiguration,sauvegarderlefichier.configdansunendroitpersonnel. Lancerlacompilation: make dep (fait automatiquement avec le noyau 2.6)
make clean bzImage modules make modules_install install

Installationdunouveaunoyau(faitautomatiquementaveclenoyau2.6).
$ cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.3-toto $ cp System.map /boot/System.map-2.6.3-toto

MisejourdegruboudeLILO(nepasoublierd'excuterlilo)enrajoutantleslignessuivantes(faitautomatique mentaveclenoyau2.6):
image=/boot/vmlinuz-2.6.3-toto label=test root=/dev/hda1 read-only

RebootervotrePCenchoisissantlenouveaunoyauaveclilo(ougrub)...Sivousavezchoisilebonprocesseur, a devraitmarcher! Explicationdecestapes: make xconfig :modifierlefichier.config ,ceciconsistesurtoutmettreouenleverdes#endbutdeligne (commenteruneligne). make clean :supprimertouslesfichierstemporairesdecompilation
make bzImage :construitl'imagedekernelcompressparbzip,crlekernelnoncompress"xcutable"vmlinux dans la racine du rpertoire des sources puis il va compresser ce vmlinux en vmlinuz qu'il va placer dans arch/i386/boot/bzImagepourunearchitecturex86.lebzImage,c'estvmlinuzmaisavecunnomdiffrent make modules :construittouslesmodulesdemands make modules_install:installetouslesmodulesdans/lib/modules/kernel.version/ make install:installel'imagedukernel,lesmodulessic'estpasdjfait,leSystem.mapetmetjourlebootloa

der

22287750.odt

Page122sur141

20/09/09

B) Testssuivants
Aveclanouvelleversiondunoyau(2.6),lorsqu'onfaitunnouveaumake xconfig,onrcupreladernirever siondunoyaummorisedanslefichier .config.Ilestd'autantplusimportantdeconserverladernireversionvalidede ce fichier afin de pouvoir reprendre une configuration qui marche: il se fait automatiquement une archive dans /boot/config-<version>.Cettesauvegardeestd'autantplusintressantequelorsd'unemise jourdessources,ler pertoireavecvossourcesprimespeuttreeffac. Endehorsdecettesauvegarde,ladmarcheestlamme.Pensezcependant nettoyerdetemps autrelerper toire /boot devosnoyauxintermdiairesainsiquelefichier /etc/lilo.conf ou /boot/grub/menu.lst quidevient vitetropgrand! NoteconcernantlesnoyauxdeMdk:tantqu' compilersonnoyau,autantenleverlemaximumdemodules(in utilesdanslaplupartdescaspoursonmatrielspcifique)etd'options(sionapasdewifi,paslapeinedelecompiler). Celapermetdediminuerconsidrablementletempsdecompilationdunoyauetdesmodules. Enfin,changerla variable'EXTRAVERSION'dans lefichier Makefileafin decrerunnoyauavecunnombien distinctdeceluideMdk.Celapermetdefairecohabiterlesnoyauxdemanirebeaucoupplustransparente. Attention:sivousutilisezplusieurscartesrseausurvotrePCetquevousincluezlesdriversdanslenoyau,ilne vousseraalorspluspossiblededfinirleurordreaveclesalias.

C) Fairelemnage
Ilestbienbeaudefairelemnagedanslenoyau(cecisevoitaumoinsautempsdecompilation).Maischaquetest laissesesrestes!Ilfautdonclesenlever! Pourcela,ilfautnettoyer,lesentresdurpertoire /boot/,lesentresdeliloougrub.Etaussi /lib/modules. Pourcela,ilestagrabled'avoirunestructurelogiqueetsimplepourdiifrentierlesessais,
[root@localhost][/lib/modules]# ll total 48 drwxr-xr-x drwxr-xr-x drwxr-xr-x drwxr-xr-x drwxr-xr-x drwxr-xr-x drwxr-xr-x drwxr-xr-x drwxr-xr-x drwxr-xr-x drwxr-xr-x 2 root root 4096 fv 3 root root 4096 fv 3 root root 4096 fv 3 root root 4096 fv 3 root root 4096 fv 3 root root 4096 fv 3 root root 4096 fv 3 root root 4096 fv 3 root root 4096 fv 8 12:23 2.6.12-13mdk/ 8 11:33 2.6.14-0.mm.7mdk/ 8 11:33 2.6.14-0.mm.7mdk-i915-1/ 8 14:08 2.6.14i915-1/ 8 16:41 2.6.14-i915-2/ 8 17:47 2.6.14-i915-3/ 8 18:49 2.6.14-i915-4/ 9 11:15 2.6.14-i915-5/ 9 18:54 2.6.14-i915-6/

3 root root 4096 fv 11 10:19 2.6.14-i915-7/ 3 root root 4096 fv 11 15:58 2.6.14-i915-8/

[root@localhost][/lib/modules]# ls -1 | grep i915- | grep -v i915-8 | xargs rm -fr [root@localhost][/lib/modules]# ll total 16 drwxr-xr-x drwxr-xr-x drwxr-xr-x 2 root root 4096 fv 3 root root 4096 fv 8 12:23 2.6.12-13mdk/ 8 11:33 2.6.14-0.mm.7mdk/

3 root root 4096 fv 11 15:58 2.6.14-i915-8/ ls -1 | grep i915- | grep -v i915-8 | xargs rm

[root@localhost][/lib/modules]# cd /boot [root@localhost][/boot]# -fr.

Notezetcherchez comprendremacommande:ls -1 | grep i915- | grep -v i915-8 | xargs rm

22287750.odt

Page123sur141

20/09/09

XXVI) Scurit
Cette partie va vous permettre de scuriser votre machine Linux, dj contre des attaques lorsque vous vous connectezsurInternet(surtoutsivousfaitesdel'IRC,lesattaquessontfrquentes),sivotremachinesertdeserveurWEB, etc... Pourlascurit 1motdepasserootlepluscompliqupossible 2mettreunmotdepasseauBIOSduPC. 3utiliserlecompterootaustrictminimum 4configurerbientonfirewall 5dsactivertouslesservicesdontonn'apasbesoin 6mettrejourlespackagesetlenoyau 7ilfautlirelesfichierslog 8configurerpourunbootuniquementsurdisquedur 9mettreunmotdepasseauBIOS 10protgerl'accsphysiqueauserveur(les2dernierspointssontfacilementdtournablesavecuntournevisetonpeut toujoursprendreledisquedurouPCentierpourletravaillertranquillementchezsoi).Mettredesvisspciauxsurleboi tier(despetitessecondesdepluspeuventdcouragerunagrsseurventuel)...

A) Lesutilisateurs
Toutd'abordlascuritpassepardesmotsdepassesutilisateurs.Ilestimpensabledelaisseruncompteutilisateur sansmotdepasse.Pourunescuritaccruejevousconseillefortementde: Mettredesmotsdepassesde8caractresminimum. Mlangerdescaractresminuscules,majusculesetnumriques(ex:imDe56T4z). Nepasmettredesmotscontenusdansundictionnaire(stylenompropreounomcommun). Onpeuttesterlavaliditdesmotsdepasseavecjohn(urpmijohn)enfaisant:
john --user=aline /etc/shadow

B) l'utilisateurroot
Commejel'aidjdit,Mandriva9.1empchaitl'utilisationfaciledeWMsousroot.Ceciesttoutfaitlgitime. Cecompteestrserv l'administrationdevotremachine,ainsivousdevrieztoujours treconnect entantque simpleutilisateur.C'estgnralementlapremiregrosseerreursouswindows:toutprogrammepeuttreexcutavecles droitscomplets,nefatespasdemmesousLinux. Sivousdevezfairedesmanipulationsaveclesdroitsadministrateurs,fateslessoitsurundes6premierstermi naux,soitenfaisantunsusurunshelldj ouvertdansunWM,soitenexcutantunGUIquivousdemanderalemotde passedusuperutilisateur(commeMandrivacontrleCenter)ouaveclacommandesudo.

C) Configurerlilo
Ilfautenleverl'optionfailsafebienutilepourlestests,maisgnialepourprendreenmainlePClorsdu boot!Pourcela,ilfaut diterlefichier /etc/lilo.conf etenleverl'entredontlelabelestfailsafe.Ensuiteon excutelilo. Onpeutcommencerparmettreleliloactuelsurunedisquette: $ fdformat -u /dev/fd0 :formaterunedisquette $ lilo -b /dev/fd0 :mettrelilosurladisquette Ceciafindepouvoirbootersurladisquetteavecfailsafepourrparerd'ventuelsproblmes.L,lespoints7 etsuivantsdelaconfigurationprennenttouteleurimportance. Remarque1:$ lilo -u :pourenleverlilodudisquedur. Remarque2:VoiraussiGrub.

D) Configurerlenoyau
Unnoyaupermetdefairebienplusdechosesquencessaire(surtoutceluidelaMandriva).Onpeutdoncmodifier sesoptionsetneprendrequelesoptionsncessaires.Eneffet,lenoyau,commetoutautre lmentpeutcontenirdes failles,moinsonprendd'optiondanslenoyau,moinsilestsusceptibled'enavoir(deconnues).

E) Lesdmonsetversionsdelogiciels
Lestrousdescuritsont galementdus desversionsdedmons(SSH,FTP ,WWW,etc...)quinesontpasmis jourdepuislongtempsou temps.Sivousavezunminimumdemthodeetquevouspensezscuriservotremachine commeunserveur,vousfatessansdoutepartiedecespersonnesquivisitentlessitesdescuritsurdesbasesrgulires. C'estunebonnetapepourvoirrapidementsivotredistributionfavoriteestvulnrable. 22287750.odt Page124sur141 20/09/09

Lasecondeoptionestd'allersurlesitedeladistributionquevouspossdezetvrifierqu'aucunemise jourde scuritn'estdisponibledepuisvotreinstallationouderniremisejour.Ainsi,danslalistedesapplicationsleplusmises jour,onnotera:Apache,OpenSSH&OpenSSLetlesdmonsFTP .Voicidoncunelistedesitesdescurit quejevous conseilledevisiterrgulirement:http://www.linuxsecurity.com/,http://www.securiteam.com/,http://www.sans.org, http://www.securite.org,http://www.securityfocus.com/ Aprsavoirmisjour,ilconvientdenelaisserouvertquecequevousutilisez.Ainsi,sivousfatesuneinstallation compltedeMandriva,SuSEouRedhat,vouspouvezvousretrouveraveclesdmonsSSH,Apache,ApacheSSL,CVSet encored'autreschosesquinevoussontpasvraimentncessaires.Assurezvousdedsactivertouslesservicesquevous n'utilisezpasetvrifierbienlesconfigurationsdesautres.UtilisezgalementSSH(etparconsquentscp,quivouspermet defairedescopiesdefichierssurdesmachinesdistantes)etoubliezFTP .FTPtransmetvosmotsdepasseenclairsurle rseau,ilpourraittrercuprrapidementparquelqu'un.DanslecasdeSSH,ilestcrypt.Sivousvoulezunmaximum descurit,vouspouvez galement changerlacl publiqueentrevosmachines,celavouspermettradevousconnecter sanschangerdemotdepasse. PourMandriva,RedHatouautredistributionquiutilisentlesrpm,jeconseilledefaireexcutertouteslesnuitsune misejourautomatiqueenmettantdanslerpertoire/etc/cron.dailylefichiersuivant:
#!/bin/sh urpmi.update -a;urpmi --auto-select --auto rpm -qa --qf '%{name}-%{version}-%{release}.%{arch}.rpm\n' 2>&1 | sort > /var/log/rpmpkgs

Sivousavezunserveurdemail,vousavezunretourquotidiensurcettemisjour.

F) Unbonfirewall
Unfirewallpermetdefiltrerlesentressurvotreordinateur.Ilpeutpermettrecertainesoprationssurlerseau priv etlesempchersurlerseauinternetmondial.Comme a,ilyauramoinsdedmonsouvertssurl'extrieur,donc moinsdefaillespossibles. Pourlaconfigurationdufirewall,voirunchapitreprcdent.

G) Visualiservosportsouverts
Lameilleurefaondevoirlesportssurouvertsestdetaperunedescommandes:
netstat -vtlnp iptables -vL nmap -sS IP

Unnmapsurl'adressedeloopback(nmap -sS 127.0.0.1)nemontreraquelesportsouvertssurl'interfacelo 127.0.0.1..cecireprsentedoncpeud'intrt...Unnmapsursapropreadressedonnerauneinformationsurcequitourne localement.UnnmapsurunautrePCdonneradesinformationssurlesportsouvertsdecetautreordinateur,mmesilny apasdeservicesenface.Enrevancheunnmapneparcourtpastouslesports,pourimposerdesports,ilfautloptionp: <portranges>:nescannequelesportsspcifis Ex:p22;p165535;pU:53,111,137,T:2125,80,139,8080


nmap -sS netjuke -p1-65535

pourscannertouslesports.

H) votrescuritrseau
Aprsvous tredonndumalpourscuriserunminimumvotremachine,ilseraitintressantdeconstaterceque celadonne.Vouspouvezdoncpoursefaireutiliserdeslogicielspourscannervotremachineetvousindiquercequ'ilreste scuriser.Jevousconseilleleslogicielssuivants,danslacatgorietesteurs: http://www.insecure.orgLesiteOfficieldeNMAPquipossdedenombreusesfonctionsavancespourscannervotre machine. http://www.nessus.orgLesiteOfficieldeNessusquibienquefastidieuxinstallerservletrsbonpourvoussensi bilisersurlesproblmesdescuritcourants. Sivousn'tespassatisfaitdursultat,ilvousresteencorequelquesoptionspourrendrevotremachineplusscuri se.Cesprogrammesvouspermettentdefermerlesportesdevotremachineetdescuriser galementunserveurdeses utilisateurslocaux.Voicidoncunepetiteliste: http://www.bastillelinux.org A utiliser avec prcautions, Bastille scurise votre machine compltement (et peux mmevousempcherdevousreloggerdenouveau;). http://www.snort.orgSnortestunsnifferquiscrutevotreinterfacerseau(carte thernetoubienmodem)pourd tecterlesmachinesquitententd'obtenirdesinformationssurlesservicesactivsetletypedemachinequevouspossdez. http://www.preludeids.org/ Prludevouspermet galementdecontrlerlesintervenantsdurseausurvotrema chine. http://www.netfilter.orgNetfilterestunprojetmettant votredisponibilitiptablesquivousservira construireun firewallsouskernel2.4.

22287750.odt

Page125sur141

20/09/09

I) Consultezrgulirementvosfichiersdelog
Lesinformationssetrouventenmajoritsdanslerpertoire /var/log.Onpeutmodifierlaconfigurationenmodi fiantlefichier/etc/syslog.conf.Parfois,lesinformationsn'arriventplusdanslesfichiers,essayezderelancerledmon syslog. Ilestpossiblederajoutersousunnoyau2.4lalignesuivante/etc/syslog.conf :
*.* /etc/syslog.conf : *.* /dev/vc/12 /dev/tty12

1) log

Sous un noyau 2.6 (ou plutt un systme sans /dev/tty12 mais /dev/vc/12) la ligne suivante

Cecinouspermetdefaireafficherentempsrelleslogsurtty12accessibleparunCtrlALTF12.Surunserveur,il peuttreintressantdelaisseraffichercesinformationsenpermanenceafind'avoirjustejeteruncoupd'oeilenpassant pour treinform deson tat.Onactiveracetaffichageenrelanantledmonsysklogd(sousdebian)ousyslog(sous Mandriva): /etc/init.d/sysklogd restart . Logicielsprvuspour:logsentry,swatchparexemple. http://www.ac-creteil.fr/reseaux/systemes/linux/outils-tcp-ip/Linux-syslog.html tailf/var/log/messages Utilisersnot:http://frlinux.net/index.php?section=reseau&article=53 fwlogwatch http://frlinux.net/index.php?section=reseau&article=30 http://jipe.homelinux.org/trucs_en_vrac/antivirus.html http://www.ixus.net/ Pouridentifierunintrus,whois ip_de_l'intrus,whoisn'estpasinstallpardfaut:urpmi whois http://olivieraj.free.fr/fr/linux/information/firewall/fw0309.html Lesrglesnetfilter/iptablesonttendances faireexploserrapidementlesfichiersdelog.Ilexistedoncundmon spcialis pourelles:ulog.Cedmonpermetd'envoyerleslogd'Iptablesdansdesfichiersspciaux.Ceslogsonttrs importantscarc'estenlestudiantsqu'onpeutremarquersionatattaquouscanntoutsimplement. Installationsurmandriva:urpmiulogdetsousdebianaptgetinstallulogd http://www.fail2ban.org/wiki/index.php/FAQ_french http://j2cs2c.com/informatique/linux/fail2ban.php IllitlesfichiersdelogetbannitlesadressesIPquiontobtenuuntropgrandnombred'checslorsdel'authentifica tion.IlmetjourlesrglesduparefeupourrejetercetteadresseIP . Ilestdisponibledanslessourcesdesdistributionsurpmifail2banpourlinstallersousMandriva.Lesfichiersde configurationsontsur/etc/fail2ban/.

2) ulog

3) fail2ban

J) Lasauvegardedesdonnes
http://linuxfocus.org/Francais/March2004/article326.shtml Lasauvegardeestledernierrempartdedfensecontrelespannesmatrielles,desbrchesdescuritetledanger ultime:lesutilisateurs.Jevaisessayerdefairelasauvegardeavecunmoyensimpleetpeuonreux:lacommande rsyncpourplusderenseignementvoirhttp://rsync.samba.org.
rsync -uRavlpg --progress --delete /home/bv --exclude "Desktop/Corbeille" /amoi/svg

Ouplussofistiqu: Pourfaireunesauvegarde,ondemande rsyncdecrerunrpertoireappel 'AAJJMM'quiservira stockerles modificationsincrmentales. Ensuitersyncexamineleschangementsintervenussurlesserveurs sauvegarder.Siun fichierachang,ilcopielaversionanciennedanslerpertoireincrmentalpuiscopielaversionactualisedufichierdans lerpertoireprincipaldesauvegarde.LabasedecescriptvientdusiteWebdersync.Iln'yaenralitqu'uneseulecom mande:
rsync --force --ignore-errors --delete --delete-excluded --exclude-from=exclude_file --backup -backup-dir=`date +%Y-%m-%d` -av

1) Lescript

Lesoptionsclssont: 22287750.odt Page126sur141 20/09/09

--backup:credessauvegardesdesfichiersavantdelescraserenlescrivantsureuxmmes --backup-dir=`date +%Y-%m-%d`:creunrpertoiredebackuppourcessauvegardes,quiressemble apour lasauvegardedu15ao t2003:20030815 -av:modearchiveetmodeverbeux.

Lescriptquisuitpeuttrelancchaquenuitenutilisantlesystmecron Engnral,lesmodificationsquotidiennesnereprsententqu'unpetitpourcentagedusystmedefichierstotal:le pourcentagemoyennedpassepas0,5%1%.Parconsquentvouspouvez,avecunjeudedisquesdesauvegarded'une capacitdoubledecelledesdisquessauvegarder,conserver50100joursdesauvegardesincrmentalessurdisquedur. Losqu'undisqueestplein,onpeut: faireunmnage trouverdelaplaceailleurs changerledisquedesauvegardeetmettrel'ancienl'abri:endehorsdetoutPC Ceciestuneversionplussimplequipermetseulementd'avoirlaconfigurationdeveille.Jecommence pinger unemachinepourvoirsielleestconnecte.Ensuite,jemonte(ouessaiedemonterinutilement)lerpertoirequimesert surleditPCafindefairelestransferts.Commeseuleslesaffichagessontreportesdanslesmailssystmes,jelesrduits austrictminimum:informationdemachinesnonconectes.
#!/bin/sh if then echo 'machine non pinguable 1' else mount /maison_1 2>/dev/null cd /maison_1 rsync rsync fi if then echo 'machine non pinguable 20' else mount /home 2>/dev/null cd /sauvegarde rsync fi -Cvaub /home/bernard . ! ping -c 1 192.168.1.20 > /dev/null 2>&1 -Cvaub /maison/marie-claire . -Cvaub /maison_1/bernard/sites . cd /sauvegarde ! ping -c 1 192.168.1.1 > /dev/null 2>&1

2) Lesbesoins

3) Versionplussimple

J'aicrunscriptdunomdersync.crondans/etc/cron.weekly,puisjel'ai renduexcutableparlacommande:chmod755rsync.cron Voiciledbutdecersync.cron:


#!/bin/bash rsync -uRavlpg --delete /home/joel --exclude "Desktop/Corbeille" /mnt/win_c2/

4) Encoreplussimple

(j'aifaitsurcemodleunelignepourchaquepartitionquejedsire sauvegarder) Ceciapoureffetdesauvegardeunefoisparsemaine(parcequejel'aimis dans/etc/cron.weekly)mapartition/home/joel,l'exclusionducontenude laCorbeille(optionexclude),surmondisque/mnt/win_c2/,touten supprimantdelasauvegardelesfichersde/home/joelquionttffacs depuisladernirefois(optiondelete) Optionsdersync(voirmanrsync): 22287750.odt Page127sur141 20/09/09

rrecursif umisejour,n'crasepaslesfichiersplusrcents Rnomsdecheminsrelatifs amodearchivage vverbose lcopieleslienssymboliques ppreservelespermissions gpreservelegroupe progresspoursuivrelaprogressiondelasauvegardesuruneconsole Celapeuteffrayer,maisjenesuispascaldutout,etpourtantj'ysuis arrivlaseulelecturedemanrsync. Deplus,j'aiamliormonscript:ilcremaintenantdesliensdurs, cequipermet,lorsdessauvegardessuccessives,denepasfairede sauvegardedesfichiersquin'ontpastmodifisdepuislaprcdente sauvegarde,maisdecrerdeslienspointantsurcelleci.Cequiapour rsultatdeprendremoinsdeplacesurleDD. Jenesaispassimesexplicationssontclaires.Jemetsledbutduscript, ceserapluscomprhensible:
#!/bin/bash # se dplacer dans le rpertoire des sauvegardes cd /sauvegarde #1- on supprime tous ce qu'il y a dans backup.3 (En fait tant qu'il #reste un lien sur le contenu du fichier, rien n'est supprim) ; rm -rf backup.3 #2- On dcale tout ; mv backup.2 backup.3 mv backup.1 backup.2 mv backup.0 backup.1 rsync -a --delete --link-dest=../backup.1 source_directory/ #3on fait un rsync de "source_directory" vers "backup.0" en faisant des

#liens durs vers "backup.1" pour les fichiers inchangs. # mise a jour de la sauvegarde d'aujourd'hui rsync -urRav --progress --delete --link-dest=../backup.1 /documents --exclude "recycled" --exclude ".Trash-joel" --exclude "irate" --exclude "streamtuner" --exclude ".Trash-501" --exclude "download" /sauvegarde/backup.0/

K) Lesversetautres
grsecuritysouslinuxoffreunniveaudescuritaumoinsquivalentcequ'onasousfreebsd. http://www.grsecurity.net/papers.php http://dmrproject.free.fr/linux.htm Tupossdes,sansavoirinstallerlasuitekaspersky,denombreuxmoyensdevrifierl'intgritdetonsystme: tripwire,pourexaminerl'intgritdetesfichiers *rkhunterpourdetecterlesrootkit urpmirkhunter rkhunterc **nessus*pourvrifierquelesprogrammessontjour.(c'estrellementunoutilencorepluscomplet) urpminessus /etc/init.d/nessusd 22287750.odt Page128sur141 20/09/09

*nikto*estunprogrammepermettantdedtecterdesfaillesdansdesserviceslancs. urpminikto *clamavpourvrifierd'ventuelfichiersinfects(concernantsurtoutwindows) logcheckpourvrifierencrontableslogsprincipauxdetamachine

22287750.odt

Page129sur141

20/09/09

XXVII) Aranger!

A) InstallationdeGrub
Grubn'estpasutilepourunserveur,maispeuttreutilepourtesterdesserveursdiffrentssurunPCdetest.Ilest eneffetplussoupleetplusfacilementmodifiableque lilo.Eneffet,pourmodifiergrub,ilsuffitdemodifierunfichier. Grubprendautomatiquementencomptelamodificationdunoyaummesilenomestlemme.Danslesdeuxcas,avec lilo,ilfautlancerliloenlignedecommandeafindeprendreencomptesesmodifications.Decefait,grubpeuttre trsintressantpourfairedesdisquette(ouclefUSB)dedmarrage. Mmmesionacompltementratsonmenu.lstaupointdenepluspouvoirdmarrersonsystme,gruboffreune lignedecommandegenre"minibash"aveccompltionautomatique.Onpeutditerchaquelignedumenuoummeap pelergrubet partirduprompttoutgnrer.Ca vitederessortiruneknoppixouunCDdedistribution,delancerlilo dansunchroot,...

1) Prsentation

2) Installation
SousMandriva,oncommenceparinstallerlerpm:urpmi grub Vud'unsystmelinux,uneclusbn'estpasunfloppymaisundisquedur.Ilnefautdoncpasemployerlaproc duredegnrationd'unfloppy. Ilfautbranchertacletlamonter. Ensuite,lancergrubsousroot: [root@tangerine64]~#grub GNUGRUBversion0.95(640Klower/3072Kuppermemory) [MinimalBASHlikelineeditingissupported.Forthefirstword,TAB listspossiblecommandcompletions.AnywhereelseTABliststhepossible completionsofadevice/filename.] grub> taperalors: root(<tab>(l'espaceetlaparenthseaprslerootsontimportants) Ilvatedonnerlalistedesdisquesdisponiblessurlesystmeavecsanotationpropre: grub>root(hd Possibledisksare:hd0hd1hd2 Chezmoihd0esthd1sontdesdisquesSATA(/dev/sdaet/dev/sdb) hd2estmacl:/dev/sdd Onsaitmaintenantqueledisques'appellehd2,ilfaudrarpercuteradanslefichiermenu.lst(hd2,0)pourlapremire partition,etc. compterlacommandepar: root(hd2,0) passeralorslacommande: setup(hd2) Ilfautquel'arborescencegrubsetrouvesurlaclenquestion: device.mapmenu.lstreiserfs_stage1_5stage2 e2fs_stage1_5xfs_stage1_5jfs_stage1_5 minix_stage1_5stage1 soitdans/grub,soitdans/boot/grub Ilvaalorsdire(toujoursavechd2dansmoncas): Checkingif"/boot/grub/stage1"exists...no Checkingif"/grub/stage1"exists...yes Checkingif"/grub/stage2"exists...yes Running"install/grub/stage1d(hd2)/grub/stage2p/grub/menu.lst"... 22287750.odt Page130sur141 20/09/09

succeeded Done. grub> taperquitpourviderlesbufferetsortir. Jepensequelacommandegrubinstall/dev/sdd(toujoursdansmoncasdoitfairelemmeeffet) Ilvousfaudrasurvotreclunfichiermenu.lst,lefichierminiest: titleLinux root(hd2,1) kernel/vmlinuzroot=/dev/sdd1ro Jeterunoeildessusaussi: http://di.alioth.debian.org/manual/fr.i386/ch04s04.html BootersurlacldemandeensuiteallerdansleBIOS.Eneffet,commeils'agitd'un"disquedur"ilneleconnaitque lorsqu'ilestbranch.

3) menu.lst
Unefoisgrubinstallsurlexivdesystmequivabooter,ilsuffitdemodifierjustelefichier/boot/grub/menu.lstpourmodifiersaconfiguration.Voiciunfichierd'exemplequipermet4systmesurunseulPC(debian,Mandriva10.0, Mandriva10.1etwindows):
# menu.lstd /usr/share/doc/grub-doc/. default timeout # Pretty colours color cyan/blue white/blue title root kernel initrd savedefault boot title root kernel initrd savedefault boot title root kernel initrd savedefault boot title root kernel initrd Mandriva 10.0 (hd0,8) /boot/vmlinuz_10.0 root=/dev/hda9 ro /boot/initrd_10.0.img Debian GNU/Linux (hd0,5) /boot/vmlinuz_deb.img root=/dev/hda6 ro /boot/initrd_deb.img Debian GNU/Linux, kernel 2.6.8-1-k7 (recovery mode) (hd0,5) /boot/vmlinuz-2.6.8-1-k7 root=/dev/hda6 ro single /boot/initrd.img-2.6.8-1-k7 Debian GNU/Linux, kernel 2.6.8-1-k7 (hd0,5) /boot/vmlinuz-2.6.8-1-k7 root=/dev/hda6 ro /boot/initrd.img-2.6.8-1-k7 0 5

22287750.odt

Page131sur141

20/09/09

savedefault boot title root kernel initrd savedefault boot ### meme s'il n'y en a pas sur mon PC### title root savedefault makeactive chainloader +1 Micro$oft Window$ (hd0,0) Mandriva 10.1 (hd0,7) /boot/vmlinuz_10.1 root=/dev/hda8 ro /boot/initrd_10.1.img

B) Quota
Silesutilisateursvontdisposerdequotasidentiques,tupeuxdfinirdesmodlesdequotasentebasantsurcer tainsutilisateurs,puisappliquercesmodlessurlesautres. Parexempleauboulotj'aicrlesutilisateursqthesepourlesquotasdesthsardsetqstagepourlesquotasdessta giaires.Ensuite,vialescommandes"edquotaqthese"puis"edquotaqstage",j'aidfinilesquotaspourcesmodles;enfin, pourchaqueutilisateurrel,j'aifait(c'estl'optionpquiestimportante,cf.lapagedemanuel): edquotapqthese<utilisateurenthese> edquotapqstage<utilisateurenstage> c'estsetquotaquel'onpeutaisementscripter.Voilacequecadonntpourinfosdesfoisquecapuisseresservir:) .Pourmapartj'aiunannuaireldapmaiscadoitetretransposablejepense.
-----------#!/bin/bash #Couleurs COLTITRE="\033[1;35m" COLPARTIE="\033[1;34m" COLTXT="\033[0;37m" COLCHOIX="\033[1;33m" COLDEFAUT="\033[0;33m" COLSAISIE="\033[1;32m" COLCMD="\033[1;37m" COLERREUR="\033[1;31m" COLINFO="\033[0;36m" ERREUR() { echo -e "$COLERREUR" echo "ERREUR!" echo -e "$1" echo -e "$COLTXT" exit 1 } if [ $# -ne 4 ]; then echo -e "$0 a besoin d'arguments pour fonctionner" echo "Passer en arguments dans l'ordre :" # Rose # Bleu # Gris # Jaune # Brun-jaune # Vert # Blanc # Rouge # Cyan

22287750.odt

Page132sur141

20/09/09

echo "- le nom du groupe dont vous voulez fixer le quota" echo "- le quota soft a fixer" echo "- le quota hard a fixer" echo "- la partition sur laquelle on aplique le quota" echo "" echo "ex : ./quota.sh Profs 200000 200000 /home" echo "fixera un quota de 200Mo sur home pour chaque prof" exit 1 fi TST_PARAM_OK=$(ldapsearch -xLLL cn="$1" | grep memberUid) if [ -z "$TST_PARAM_OK" ]; then ERREUR "Impossible de trouver le groupe pass en paramtre dans l'annuaire Ldap" fi ldapsearch -x -LLL cn=$1 | grep memberUid | cut -d " " -f2 | while read A do echo "je fixe le quota pour" $A setquota -F xfs $A $2 $3 0 0 $4 done exit 0

C) forkbomb
Je viens de constater que mon systme (une Sarge mise jour aujourd'hui, avec un noyau 2.6.8, dans sa configuration presque par dfaut), est vulnrable l'attaque d'une forkbomb, mme lance par un utilisateur sans privilges. Aprs quelques secondes d'excution du code suivant, il m'est impossible de lancer un nouveau processus, mme en root, et donc en particulier de tuer la forkbomb : > int main() > { > > > > } Le soin de se protger des forkbombs est-il laiss l'administrateur, ou bien devraisje remplir un rapport de bug ? Si c'est le cas, quel est le paquet concern ? Ce bug est-il suffisament grave pour recevoir le tag security ? C'est l'administrateur de grer a en fixant un nombre maxi de processus par utilisateurs. Cela se fait, si ma mmoire est bonne par la commande ulimit (qui semble tre une commande interne de certains shells [bash et zsh notamment]), ou en ditant le fichier /etc/security/limits.conf . while(1) fork(); return 0;

D) PasserelleLinuxavecduWifi
installerhostapdquiferadetonordinateurunvraipointd'accs http://www.lea linux.org/cached/index/Cr%C3%A9er_un_point_d'acc%C3%A8s_s%C3%A9curis%C3%A9_avec_hostAPd.html urpmihostapd Ensuite,onvaallerconfigurerhostAPd.Leplusdurestdeliretouslescommentairesenfait:)Maispourallerun peuplusvite,voicileslignesquiserventdansMONcas(simpleWPAPSK): #La carte Wifi, forcment indispensable :) 22287750.odt Page133sur141 20/09/09

interface=ath0 #Si la carte est bridge et utilise madwifi, il faut prciser le nom du bridge bridge=bridge_local # Le driver ncessit par la carte driver=madwifi #Options de log par dfaut, elles sont trs bien :) logger_syslog=-1 logger_syslog_level=1 logger_stdout=-1 logger_stdout_level=2 debug=2 dump_file=/tmp/hostapd.dump #Contrle du programme, encore une fois, le rglage par dfaut est nickel :) ctrl_interface=/var/run/hostapd ctrl_interface_group=0 #Le nom de votre rseau. C'est important. Choisissez un nom peu prs reconnaissable et pas trop long. ssid=MADOUIFI #Comment grer les adresses MAC (adresse Hardware des cartes rseaux) # C'est une scurit qui peut facilement tre contourne, mais est # nanmoins pratique, car elle est facile mettre en place # En effet, hostAPd va vrifier l'adresse MAC de la carte Wifi qui fait une # demande d'accs et pourra alors, sur cette seule adresse, soit continuer le # processus d'identification, soit s'arrter et refuser la carte. # Les paramtres possibles sont les suivants : # 0 : Tout accepter moins qu'elle ne soit dans la liste noire # 1 : Tout refuser, moins qu'elle ne soit dans la liste blanche # 2 : Vrifier l'adresse auprs d'un serveur RADIUS (honntement, pour son rseau local, a ne sert rien) # Le meilleur paramtre pour commencer est 1. a rduit de beaucoup les risques de piratage. macaddr_acl=1 #Chemin des fichiers pour les listes noire et blanche # Je vous conseille de les crer tout de suite, on verra plus tard pour les remplir correctement accept_mac_file=/etc/hostapd/hostapd.accept deny_mac_file=/etc/hostapd/hostapd.deny # La description anglaise pour les curieux :) auth_algs=1 #Celui l, je sais pas trop... Je crois qu'on peut l'enlever, mais bon je suis pas sr, j'ai pas test :) eap_server=0 #Dis qu'on veut faire du WPA-PSK wpa=1 # Votre cl, le coeur de la scurit du WPA-PSK :) wpa_passphrase=SupReclDelAmor,Avecdetrucch3l0us;) # Pour un petit peu plus de scurit, vous pouvez attribuer une cl WPA par adresse MAC (donc par ordinateur). #C'est quand mme un peu plus embtant maintenir... #wpa_psk_file=/etc/hostapd/wpa_psk 22287750.odt Page134sur141 20/09/09

# On dfinit ce qu'on veut comme WPA wpa_key_mgmt=WPA-PSK # Et l'algo de cryptage wpa_pairwise=TKIP # Quelques options temporelles. Pas forcment ncessaire pour que a marche :) wpa_group_rekey=600 wpa_gmk_rekey=86400 Etlatouchefinale.ditezlefichier/etc/default/hostapdetdcommentezlalignesuivante: RUN_DAEMON=yes Etvoil.C'estfini.Enfin,non,cen'estpastoutfaitexact.Laconfigurationduserveurestfinie.Ilrestelatester etconfigurerdesclients:)Enavanttoute! ..commesousWindows Ilest galementpossibled'utiliserwpasupplicantsousWindows.Seulement,quitte utilisercesystmed'exploita tion,autantlefairefond.Laplupartdutemps,unutilitairedeconnexionWifiestfourniavecvotrematriel.Jenepeux malheureusementpasvousaiderldessusdefaonglobale:( Sinon,jevousrassure,avecWindowsXPSP2,l'utilitairedeconnexionsansfilWindowsmarchetrsbien.Cliquez surlapetiteicnedevotrecarterseauenbas droite ct del'heure(souvent,c'estunpetit crandepuislequel partentdesondesstylises).Ildevraitvousafficherlalistedesrseauxsansfils.Choisissezlevotre,cliquezsur"Connec ter"etrentrezlacl.Bienvenuechezvous:)

E) MisejourMandriva
Pourlalistedesrpm,c'estaumomentdelaconfirmationdespaquets installer,ilyaunmenu'avanc"(dem moire)quipermetdefaireunesauvegardedelalistedesrpm.Maisleplussimple, monavis,estdercuprerlaliste avecun"rpmqaqueryformat'%{NAME}\n'>liste"etdelancerun"carliste|xargsurpmi"parlasuite(autopeuttre unparamettreutile,maisdangereuxdonnerurpmi).

F) Onduleurs(UPSenanglais)
Unarticlepluscompletsetrouvesur:http://linux.developpez.com/cours/upsusb Pourinstallerlegestionnairedistancepuisleserveurpourlesonduleurs:
urpmi nut urpmi nut-server

L onduleurestdfinidans/etc/ups/ups.conf(sousdebian,ubuntu,jailimpressionquelerpertoireest/etc/nut)
[MGE_UPS_with_PnP_INTERFACE] #nom donn londuleur port = /dev/ttyS0 # port o est branch londuleur driver = mge-shut # driver de londuleur

Danslemmerpertoirelefichierupsd.userscontientlesutilisateurs:
[troumad] password = troumad allowfrom = localhost lan upsmon master

Lasurveillanceestgreparlefichier:upsmon.conf
RUN_AS_USER ups # nom de lutilisateur de UPS MONITOR MGE_UPS_with_PnP_INTERFACE@192.168.2.1 1 troumad troumad master # identification de lUPS MINSUPPLIES 1 # valeur par dfaut acceptable SHUTDOWNCMD "/sbin/shutdown -h +0" # commande d'arrt de lordinateur NOTIFYCMD /usr/sbin/upssched # envoie de messages POLLFREQ 5 # appel de upsd toutes les 5 secondes

22287750.odt

Page135sur141

20/09/09

POLLFREQALERT 5 # appel de upsd toutes les 5 secondes quand londuleur est sur batteries HOSTSYNC 15 # temps en s dattente avant de dconnecter les esclaves DEADTIME 15 # 15 secondes sans rponses de londuleur => il est mort POWERDOWNFLAG /etc/killpower # fichier drapeau pour indiquer que londuleur est en mode extinction # envoyer un commentaire + excutable NOTIFYFLAG ONLINE SYSLOG+EXEC # si lUPS est de retour sur le secteur NOTIFYFLAG ONBATT SYSLOG+EXEC # si il est sur batterie NOTIFYFLAG REPLBATT SYSLOG+EXE # si les batteries sont remplacer RBWARNTIME 43200 # temps entre deux alertes de batteries en mauvais tat NOCOMMWARNTIME 300 # temps entre deux alertes de non communication avec un onduleur FINALDELAY 5 # temps entre le signal darret ( NOTIFY_SHUTDOWN ) et larrt effectif du serveur

Lefichierupsd.conf,quantluiconfigureledmon.Ici,jelaisseaccslordinateuretaurseaulocal:
ACL all 0.0.0.0/0 ACL localhost 127.0.0.1/32 ACL lan 192.168.0.0/16 ACCEPT localhost lan #ACCEPT 192.168.0.0/16 REJECT all ACCESS grant monitor localhost ACCESS grant monitor lan ACCESS deny all all

Pourlancerledmon:
/etc/init.d/upsd restart

(Ilmesemblequecest/etc/init.d/nutpourdebian/ubuntu). Pourtesterqueleservicemarche,onpeutfairelacommandesuivante:
upsc MGE_UPS_with_PnP_INTERFACE@localhost

Unpetitcodedemoncruquitesteltatdelonduleuretenvoiedesmessagessuivant2tatsdiffrents:
a=`upsc MGE_UPS_with_PnP_INTERFACE@192.168.2.1 | grep battery.charge: | cut -c17-` if ( test $a -eq 100) then drapeau=0 elif ( test $a -lt 75) then drapeau=1 echo teindre satellites else drapeau=2 echo teindre satellites fi while ( test 1 -eq 1 ) do a=`upsc MGE_UPS_with_PnP_INTERFACE@192.168.2.1 | grep battery.charge: | cut -c17-` echo $drapeau $a case $drapeau in 0) if ( test $a -eq 100) then echo rien ne change elif ( test $a -lt 75) then drapeau=1 echo teindre satellites

22287750.odt

Page136sur141

20/09/09

else drapeau=2 echo "Chute brutale de l'onduleur ! Attention !" echo teindre satellites fi ;; 1) if ( test $a -eq 100) then drapeau=0 echo "remont du serveur" elif ( test $a -lt 75) then echo rien ne change elif ( test $a -le 25) then drapeau=2 echo "Chute brutale de l'onduleur ! Attention !" echo teindre satellites fi ;; 2) if ( test $a -eq 100) then drapeau=0 echo "Attention : remont trop brutale du serveur" elif ( test $a -lt 75) then echo "remont du serveur" drapeau=1 echo rien ne change elif ( test $a -le 25) then echo teindre serveur fi ;; esac sleep 60 done

22287750.odt

Page137sur141

20/09/09

I) Annexes

A) Remerciementsetbibliographie
LalistedediffusiondeMandrivadbutantquiasumedonnerdesidesetrpondremesquestions. "LINUXInitiationetutilisation"pour1eret2ecyclesIUTEcolesd'ingnieursdeJeanPaulArmspach,PierreCo linetFrdriqueOstrWaerzeggerschezDUNOD(attentionerreur:page6Mandrivaestgratuite) Lessitesinternetcitstoutaulongdecedocumentaumomentojem'ensert. http://lealinux.org/admin/ http://www.via.ecp.fr/~alexis/formationlinux/ (C'estsurdbian,maismmepourMandriva,ilyadebonne choses!) AlainTrieurpourcesremarques ChristopheJenauxpourlechapitresurlespartitions MarcGuillaume<new@yakati.org>pourlechapitresurleserveurNTP

Copyright(c)2003,2004,2005,2006BernardSIAUD. Permissionisgrantedtocopy,distributeand/ormodifythisdocumentunderthetermsoftheGNUFreeDo cumentationLicense,Version1.2oranylaterversionpublishedbytheFreeSoftwareFoundation;withnoIn variantSections,noFrontCoverTexts,andnoBackCoverTexts.Acopyofthelicenseisincludedinthesec tionentitled"GNUFreeDocumentationLicense". chapitresurleserveurNTP: (c)GuillermoBallesterValor,2003 Version0.1.224/09/2003 LicenciaGPL adaptationenfranais(c)2003MarcGuillaume version0.0.112/12/2003 licenceGFDL Chapitresurlespartitions: Copyright(c)2003ChristopheJENAUX. Permissionisgrantedtocopy,distributeand/ormodifythisdocumentunderthetermsoftheGNUFreeDo cumentationLicense,Version1.2oranylaterversionpublishedbytheFreeSoftwareFoundation;withnoIn variantSections,noFrontCoverTexts,andnoBackCoverTexts.Acopyofthelicenseisincludedinthesec tionentitled"GNUFreeDocumentationLicense". Chapitresurhttps: Copyright(c)2004EmmuelBETTLER. Permissionisgrantedtocopy,distributeand/ormodifythisdocumentunderthetermsoftheGNUFreeDo cumentationLicense,Version1.2oranylaterversionpublishedbytheFreeSoftwareFoundation;withnoIn variantSections,noFrontCoverTexts,andnoBackCoverTexts.Acopyofthelicenseisincludedinthesec tionentitled"GNUFreeDocumentationLicense". Permissionisgrantedtocopy,distributeand/ormodifythisdocument underthetermsoftheGNUFreeDocumentationLicense,Version1.2 oranylaterversionpublishedbytheFreeSoftwareFoundation; withnoInvariantSections,noFrontCoverTexts,andnoBackCover Texts.Acopyofthelicenseisincludedinthesectionentitled "GNUFreeDocumentationLicense".

22287750.odt

Page138sur141

20/09/09

IndexLexical
addgroup....................22 anacron......................25 anacrontab.................25 apache........................43 aptget........................27 bashrc.........................37 bg...............................24 BIND...........................67 cancel.........................85 case............................15 cat..............................12 cd..............................11 chgrp..........................23 chkconfig....................26 chmod........................23 chown.........................23 compilerlenoyau.......104 cp...............................12 cron............................24 crontab.......................24 Cups...........................85 Debian........................6 DHCP..........................74 distributions...............6 DNS............................67 emacs.........................12 exports.......................51 fail2ban......................108 Fedora........................6 fg................................24 Fichiers.......................10 formaterunedisquette forum.........................49 FQDN.........................67 fstab...........................53 fuser...........................53 Gentoo........................6 GNU...........................5 gproftpd.....................35 group..........................22 groupadd....................22 groupdel.....................22 Grub...........................111 hda.............................8 httpd...........................43 HTTPS........................46 if.................................14 imap...........................80 imprimante.................85 Indexes.......................43 insecure......................52 interfacesgraphiques. 5 jobs.............................24 kerberos.....................54 kill..............................24 killall..........................24 Knoppix......................6 la................................11 LDAP..........................92 ldapadd......................93 ldapdelete...................94 ldapmodify.................94 ldapsearch..................93 less.............................12 LFS.............................6 liens............................10 lilo..............................106,111 Linux..........................5 live.............................6 ll.................................11 ln................................13 localhost.....................43 log..............................108 ls.................................11 LUFS...........................55 macadresse................33,74 man............................10 Mandrake...................6 Mandriva....................6 md..............................12 mdir............................12 menu.lst.....................112 mkdir..........................12 mount.........................53 MTA............................77 mv..............................12 MyDNSAdmin...........70 MySQL........................48 netstat........................107 newgrp.......................22 nfs..............................51 NIS.............................83 nmap..........................33,107 NTP............................29 nut..............................115 Onduleur....................115 Openldap....................92 partitions....................8 passwd.......................22 php.............................43,45 phpinfo.......................45 phpMyAdmin..............49 portforwarding..........39 portmap......................51 postix..........................77 Proxy..........................72 ps................................23 pwd............................11 Redhat........................6 Rpertoires.................10 Rescuecd.....................6 rm...............................12 rmdir..........................12 rpm.............................26 rsync...........................108 runlevel.....................26 rwx.............................23 saned..........................86 scanner.......................86 scp..............................38 sed..............................16 sg................................22 SGID...........................23 shfs.............................54 Slackware...................6 slapcat........................93 smart..........................27 smb.conf.....................99 smbldappasswd.........100 smbldapuseradd........100 smbldapuserdel.........100 SME............................6 squid...........................72 SSHFS........................55 su...............................22 su.............................22 SUID...........................23 SuSE...........................6 syslog.........................108 syslog.conf..................108 Systemrescue.............6 TerminalserveurX.....76 top..............................23 transport_maps..........79 Ubuntu.......................6 ulog............................108 umount.......................53 Unix............................5 UPS............................115 urpme.........................27 urpmi..........................27 useradd......................21 userdel........................22 usermod.....................22 vi................................12 VirtualHost.................44 WebDAV.....................45 wiki............................49 WM.............................6 X.................................6 .bash_profile...............21 .bashrc........................21 &................................24

106

22287750.odt

Page139sur141

20/09/09

Petitlexique
i UNIX:systmed'exploitationmultiutilisateuretmultitche ii GNU : http://www.gnu.org/ iii Xfree86ouxorg:programmequifournitdesservicesgraphiques. iv mmesic'estdangereux,onpeuttrelogenrootsousXsurTTY1selogenrootpuis startx -- :0 (0=TTY7 ;1=TTY8etc...) v Dehttp://www.linuxfrance.org/article/sys/boot.html. Unrunlevelpeut trevucommeuneconfigurationdecontexted'exploitationbienparticulier,c'estdireunen sembledeprocessusquidoiventtreprsentdanscerunlevel,etd'autresprocessusquidoiventimprativementtretus. lafindelasquencedeboot,lekernelvaexcuterlacommande /bin/init,quivasechargerdelancercer tainsservicesncessaires(c'estdiredeplacerlesystmedansunrunlevelparticulier).Lapremirechosequecette commandevafaire,estdescannerlefichier/etc/inittab.Cefichiercontient,entreautres,ladfinitiondurunlevel pardfaut(cherchezlalignequicontientinitdefault) Dansmoncas,c'est:
# The default runlevel. id:2:initdefault:

Ilyadiffrentsrunlevels,quicorrespondentchezmoi(le0,1,6estnormalis): 0halt:touslesprocessussonttus,lessystmesdefichierssontdmonts,etlamachinesebloque,sans rebooter. 1mode"utilisateurunique". 2multiutilisateur,sanslapossibilitdepartagerdesrpertoiresparNFS. 3idemquele2,maisavecleNFScettefois. 4inutilis(onpourraits'enreservirsincessaire). 5idemquele3,maisonlancelesystmedefentrageXWindow. 6reboot:touslesprocessussonttus,lessystmesdefichierssontdmonts,etlamachinereboote. SSingle:mode"utilisateurunique",utilispourlamaintenance. Lafonctionprincipalede /bin/init estdemettrelesystmedansunrunlevelparticulier,avantderendrela mainl'utilisateur.Parexemple,chezmoi,lerunlevel3correspondchezmoiaumodemultiutilisateur,etle5aumme mode,maisavecdmaragedeXWindow. Unconseil:n'allezpasmettre0ou6commerunlevel:dsleboot,votresystmesebloquerait,etvousdevriez alorspasserparlabidouillepourlerestaurer. Enfin,/bin/init peuttreutilispourchangerlerunlevelactuel:unpetit"init6"mettralesystmedanslerun level6(etdonclamachinereboote). vi ODBC(OpenDatabaseConnectivity)estunenormedeprotocolepermettantauxapplicationsd'accder dessys tmesdebasesdedonnes.LelangagederequteutilisestleSQL(StructuredQueryLanguage).

vii kerberos:http://www.linuxfrance.org/prj/jargonf/K/Kerberos.html Systmedescuritetd'authentificationdesutilisateurs,misaupointparleprojetAthenaauMIT.Leprincipeestde s'adresserunserveurd'authentification,quivousremetunticket(onparlepluttdecertificat),aveclequelvous allezpouvoiraccder laressourcequevousdemandez.Enpratique,c'estinfinimentpluscompliqu que a...Ilne semblepasavoirtpiratdepuissamiseenservice,ilyaunedizained'annes. viii L'Autoritd'AffectationdeNumrossurInternet(IANA)arservles3blocssuivantsdansl'espaced'adressagepour desrseauxinternes. 10.0.0.0 10.255.255.255 (10/8 prefix), 172.16.0.0 172.31.255.255 (172.16/12 prefix) et 192.168.0.0 192.168.255.255(192.168/16prefix) Voir:http://www.eisti.fr/res/res/rfc1918/1918.htm Cesadresses,quinesontjamaisvisiblessurinternetmondial,serventdoncpourlesrseauxlocaux. ix FQDN:FullyQualifiedDomainName.Lenomcompletd'unhte,surl'Internet,c'estdireduserveurjusqu'audo maine,enpassantparlessousdomaines,enlangage peuprsclair,ilesteneffetnettementplusfaciledese souvenirdewww.machin.fr.quede194.27.45.254(numrotap aupif).Voirdomaine,DNS.Exemple:www.li nuxfrance.com(paroppositionaudomainelinuxfrance.org). voir:http://www.linuxfrance.org/prj/jargonf/F/FQDN.html

Petitlexique
x Adresseuniqueidentifiantun lmentactifsurunrseau,constituedel'OUIdelasocit l'ayantfabriqu,etd'un nombre24bitsattribuparlasocitenquestion. Ilestpossibledemodifiercetteadresseetc'estundanger prendreencompte: http://www.alobbs.com/mo dules.php?op=modload&name=macc&file=indexouhttp://www.klcconsulting.net/smac/ xi DMZ: ZoneDmilitarise.C'estlebrinderseauphysiquecomprisentrelepointd'entreetleFirewall,o l'on connectedesmachines(bastions)proposantdesservicesinformatiquespublicsoucontrls.L'offrefaiteparcesordi nateursn'estpasconsidrecommesensible.Lesbastionssontnanmoinsinstallsdefaontrsscuriseafind'vi terdesrestaurationsdesystmetropsouvent. xii PATH:Listedescheminsd'accscontenantlescommandes.Chaquechemind'accsestspar parlecaractre : .L'ordre dans la liste correspond l'ordre de recherche des fichiers excutables. Ainsi une valeur du PATH=/usr/bin:/usr/sbin:.indiqueunerecherchedelacommandedanslerpertore /usr/bin,puis/usr/sbin etenfindanslerpertoireconrantindiquparlepoint.Normalement,lerpertoirecourantn'estpaspaslepathpour des raisons de scurit. De ce fait, pour excuter un fichier dans le rpertoire courant, on doit faire ./nom_du_fichier. xiii PAM:Desprogrammesquipermettent desutilisateursd'accderunsystmevrifientpralablementl'identitde l'utilisateuraumoyend'unprocessusd'authentification.Danslepass,chaqueprogrammedecegenreeffectuaitles oprationsd'authentificationd'unemanirequilui taitpropre.Maintenant,ungrandnombredecesprogrammes sontconfigursdetellesortequ'ilsutilisentunprocessusd'authentificationcentralis appel modulesd'authentifica tionenfichables(ouPAMdel'anglais'PluggableAuthenticationModules'). PAMoffreentreautreslesavantagessuivants: ilfournitunsystmed'authentificationcommunquipouvant treutilis avecunvaste ventaild'applica tions; iloffreunhautdegrsdeflexibilitetdecontrleencequiconcernel'authentificationaussibienauniveau del'administrateursystmequ'auniveaududveloppeurd'applications; ilpermetauxdveloppeursd'applicationsdeconcevoirdesprogrammessansavoir crerleurpropresys tmed'authentification. xiv MBR:[amorage]MasterBootRecord.LepremiersecteurabsolusurundisquedurdePC:tte0,piste0,secteur1 (parfois0luiaussi).IlcontientlatabledesPartitionsouunsimpleBoot.Voirbootetsafamille.( VIRUSLFAQ). Autrefois,laplupartdesvirusattaquaientparl.Ilsuffitdeconfigurerla CMOS pour booter systmatiquementen premiersurleHD,etaurevoircesvirus... Articleslisceluici:bootsector,LILO,MBP.(http://www.linuxfrance.org/prj/jargonf/)