| 1 |
|
|---|
| 2 |
* Formation Administration systeme Debian GNU/Linux, Serveur d'hebergement |
|---|
| 3 |
duree, 3 jours. |
|---|
| 4 |
|
|---|
| 5 |
Plan de formation : |
|---|
| 6 |
|
|---|
| 7 |
Cette formation sur 3 jours propose 2 types d'apprentissages : des parties peu approfondies et des plus techniques. |
|---|
| 8 |
Les periodes de presentation peu approfondies presentent le monde du libre, de GNU/Linux et des services web. Accompagnees des sites francophones de reference, elle permettent d'entrer rapidement dans le monde de Linux. |
|---|
| 9 |
Les parties plus techniques : shell, comprehension du DNS, fonctionnement des services, interface web de gestion etc. permettent de prendre en main rapidement un serveur d'hebergement dedie proposant l'ensemble des services web courants (http, mail, mailing-lists, scripts server-side). |
|---|
| 10 |
|
|---|
| 11 |
Cette formation effectue un certain nombre de CHOIX TECHNIQUES precis, notamment sur les langages server-side, a savoir Apache, Php, Mysql et AlternC. Elle est donc non adaptee a des choix transverses tels que Python/Zope/Plone, ou encore Java/Tomcat. |
|---|
| 12 |
|
|---|
| 13 |
|
|---|
| 14 |
j1: |
|---|
| 15 |
- Introduction a Debian Gnu/Linux, le système d'exploitation. |
|---|
| 16 |
- terminologie (30 min) |
|---|
| 17 |
- rapide historique. |
|---|
| 18 |
- GNU, Linux, Debian. |
|---|
| 19 |
- la communauté du logiciel libre, savoir poser des questions. |
|---|
| 20 |
|
|---|
| 21 |
GNU/Linux est un système d'exploitation, c'est le programme informatique central de l'ordinateur, qui effectue le lien entre le matériel installé dans l'ordinateur (disque dur, processeur, clavier, écran...), les programmes informatiques installés et l'utilisateur. |
|---|
| 22 |
|
|---|
| 23 |
GNU/Linux est en fait constitué d'un logiciel central, appellé le noyau, developpé à l'origine par Linus Torvalds, et d'un ensemble d'outils logiciels parmis lesquels les logiciels du projet GNU. Cet ensemble constitue GNU/Linux. |
|---|
| 24 |
|
|---|
| 25 |
Ces logiciels sont placés le plus souvent sous une licence particulière, la licence GNU/GPL, qui est une licence libre. Elle fournit 4 libertés fondamentales aux utilisateurs du logiciels : |
|---|
| 26 |
- la liberté d'utiliser le logiciel sans limite. |
|---|
| 27 |
- la liberté de copier le logiciel et de le redistribuer gratuitement. |
|---|
| 28 |
- la liberté de disposer des sources du logiciel et de modifier celui-ci. Les sources d'un logiciels sont l'équivalent de la "recette de cuisine" d'un chef restaurateur. |
|---|
| 29 |
- ? |
|---|
| 30 |
|
|---|
| 31 |
Parallèlement, certains logiciels sont sous des licences diverses en dehors de la GPL, mais la plupart sont sous des licences libres qui sont approuvées par l'OSI, organisme de certification des outils et licences du libre. Ces logiciels sont soutenus par d'autres organismes fondateurs internationaux comme la FSF ou locaux comme l'APRIL ou l'AFUL. |
|---|
| 32 |
|
|---|
| 33 |
Il existe donc toute une communauté de personnes, associations, entreprises, qui participent activement au développement de ces logiciels libres, soit pour leurs besoins propres, soit pour ceux de leurs clients, pour apporter des traductions améliorer les fonctionnalités existantes ou en apporter de nouvelles. |
|---|
| 34 |
Cette communauté s'organise entre autre autour de LUG, associations locales d'utilisateurs, mais aussi énormément sur Internet via des communautés d'intérêt autour de grands projets (comme l'Apache Foundation) ou de thèmes précis (communautés d'hébergement de sites ou projets libres telles l'OSDN). |
|---|
| 35 |
Il existe donc de nombreux endroits (sur Internet notamment) ou vous pourrez trouver de l'aide relatifs aux logiciels libres que vous utilisez, aussi bien amateurs que professionnels. |
|---|
| 36 |
|
|---|
| 37 |
A partir de GNU/Linux, des versions différemment packagées de ces logiciels disparates sont apparues, appellées "distribution Linux". Ces distributions, parmi lesquelles on retrouve Debian Mandrake/Mandriva, RedHat, Suse etc., sont généralement fournies soit par Internet, soit sur CD, et contiennent un ensemble cohérent de packages logiciels s'installant facilement, destinés aux utilisateurs de base ou aux administrateurs systèmes, avec des spécificités diverses. Ainsi, il existe des distributions spécialisés dans les systèmes sécurisés, la surveillance de réseau, le montage son/vidéo, ou d'autres plus généralistes. |
|---|
| 38 |
|
|---|
| 39 |
La distribution Debian est assez particulière : elle possède un système de package très puissant, permettant une maintenance à long terme relativement aisée, y compris lors de mises à jour majeures. elle est développée de manière entièrement collaborative et décentralisée, et possède diverses équipes de "mainteneurs debian" qui entretiennent les packages logiciels en collaborant avec les développeurs libres du monde entier. Elle a donc acquis une solide réputation dans le monde du libre. |
|---|
| 40 |
|
|---|
| 41 |
Ainsi, lorsque l'on parle de la distribution Debian, on dit généralement "Debian GNU/Linux" pour rappeler la paternité des outils fondamentaux utilisés. |
|---|
| 42 |
|
|---|
| 43 |
|
|---|
| 44 |
- les differents elements d'un systeme Linux : (1h30) |
|---|
| 45 |
- le systeme de fichiers (introduction) |
|---|
| 46 |
- le noyau |
|---|
| 47 |
- les pilotes de peripheriques |
|---|
| 48 |
- les services (init.d, rc, ps) |
|---|
| 49 |
|
|---|
| 50 |
|
|---|
| 51 |
Dand le cadre de cette formation à l'administration d'un système d'hébergement, nous allons aborder le système GNU/Linux de l'intérieur, nous ne parlerons donc pas de l'environnement graphique X11 (boutons, fenetrage etc.) et nous utiliserons le système uniquement via des "consoles", environnement basé sur des lignes de commandes envoyées au système pour le configurer et le faire interagir avec l'utilisateur. |
|---|
| 52 |
|
|---|
| 53 |
Le système Debian GNU/Linux est basé sur un certain nombre de fondamentaux que nous allons présenter : |
|---|
| 54 |
|
|---|
| 55 |
- Le système de fichiers. Sous Linux, le système est organisé en fichiers et dossiers. Contrairement aux systèmes Windows/Dos, il n'y a pas de lettre de lecteur pour chaque disque disquette etc. Au contraire, il y a une racine, nommée "/", qui contient l'ensemble du système, tous disques, cd, disquettes confondus. |
|---|
| 56 |
Cette racine est organisée selon une norme appellée la FHS, qui définit où doivent se situer les fichiers selon leur rôle. Par exemple, les données des utilisateurs sont situées dans /home/ les historique des connexion dans /var/log etc. La FHS sera vue en détail plus loin. |
|---|
| 57 |
|
|---|
| 58 |
- Le noyau : dans Debian GNU/Linux, il existe un noyau fondamental qui effectue le gros des liaisons entre le matériel et le logiciel. Ce noyau, initialement développé par Linus Torvalds, et maintenant maintenu collaborativement, est un fichier comme un autre, généralement situé dans /boot/, et qui est le premier programme lancé par l'ordinateur. Il charge ensuite le reste des programmes permettant de faire fonctionner ce dernier. Le noyau evolue constamment, et des mises à jours de sécurité sont parfois nécessaires. La version actuelle du noyau est la 2.6. On retrouve souvent des versions 2.4. qui sont encore considérées comme plus stables selon le type de matériel utilisé. |
|---|
| 59 |
|
|---|
| 60 |
- les pilotes de périphériques : Se sont la plupart du temps des modules ajoutés au noyau, qui permettent d'utiliser les différents matériels installés sur l'ordinateur. Par exemple, le clavier, la carte réseau, les disques scsi, les clés usb sont autant de périphériques qui nécessitent un pilote de périphérique pour être reconnus et utilisables par le système GNU/Linux. Ces pilotes, quand ils sont chargés comme module du noyau, sont visible par la commande 'lsmod' qui liste les modules installés. |
|---|
| 61 |
Les disques durs et autres périphériques de stockages de fichiers, quand à eux, peuvent être connectés sur un dossier situé sous la racine /. On dit alors que la partition est "montée" (ou démontée). la commande "mount" permet de savoir quelles partitions sont montées, et sur quel dossier. la commande "df -h" quand à elle, donne l'espace occupé et disponible sur chaque partition ou lecteur monté. le fichier /etc/fstab, lui, contient la liste des partitions, leurs point de montage et les divers paramètres associés. |
|---|
| 62 |
Sous Linux, les disques ont un nom symbolique correspondant à leur emplacement physique dans la machine. Ainsi, pour les disques durs en IDE, ils se nomment /dev/hda, /dev/hdb etc. selon leur emplacement sur la nappe et le bus IDE. Les disques scsi ou en raid sont nommés /dev/sda, /dev/sdb etc. Ensuite, on ajoute une lettre pour spécifier quelle partition du disque est concernée : ainsi, /dev/hdb1 sera la première partition du disque dur esclave de la première nappe ide. /dev est donc un dossier qui contient des références aux périphériques, notamment les périphériques de stockage. (d'où le nom /dev pour DEVice = Periphérique.) |
|---|
| 63 |
|
|---|
| 64 |
- Les services : sous Linux, il existe aussi des logiciels particuliers, nommés Services, qui sont en fait des programmes tournant en permanence sur la machine, souvent dès son allumage, et qui fournissent un service en général sur le réseau, ainsi, apache est un programme qui fournit le service de page web via le protocole HTTP. C'est ce programme qui va répondre aux requêtes sur le réseau lorsque vous taperez dans votre navigateur une adresse du type http://[adresse-du-serveur]/. |
|---|
| 65 |
Ces services sont généralement lancés au démarrage du système par un processus appelé SystemV Init. Cette norme définit comment des programmes situés dans /etc/init.d/ sont lancés au démarrage du serveur et arrêtés lors de son extinction. |
|---|
| 66 |
|
|---|
| 67 |
|
|---|
| 68 |
|
|---|
| 69 |
- La ligne de commande, introduction (2h) |
|---|
| 70 |
- presentation du shell : bash, en console tty, via putty, via ssh. |
|---|
| 71 |
- les commandes de base : MAN, cd ls mkdir rm less ps grep, stdin/stdout/stderr, pipes ... |
|---|
| 72 |
|
|---|
| 73 |
|
|---|
| 74 |
Sous Linux, dans le cadre d'un serveur d'hébergement, nous utilisons principalement la ligne de commande pour piloter les services et administrer le système. Il y a plusieurs manière d'obtenir un accès à la ligne de commande Linux. La première est l'accès via le clavier et l'écran du serveur. Evidemment, ce moyen devient inutile lorsque le serveur se retrouve en salle machine. On utilise alors le service SSH pour se connecter - à distance - au serveur via Internet. SSH est un service qui "écoute" sur le port 22 de l'adresse ip de la machine. Pour se connecter au serveur, il suffit de lancer "ssh username@serveur.org" depuis une mqhine linux, où username est le nom d'utilisateur sous lequel on souhaite se connecter, et serveur.org le nom dns du serveur. Sous Windows, on peut utiliser le logiciel PUTTY, client ssh très connu. |
|---|
| 75 |
|
|---|
| 76 |
Une fois connecté au serveur, nous obtenons un prompt. Ce prompt est l'invite de commande du programme de console lancé sur le serveur, nommé "shell". Il existe différents shells, par exemple, bash, ksh, csh, zsh, qui ont des caractéristiques communes importantes (notemment le gros de la syntaxe de gestion des variables) et quelques spécificités facilitant généralement l'utilisation avancée de la console. |
|---|
| 77 |
|
|---|
| 78 |
Ainsi, on lit quelque chose du genre "monserveur:/home/benjamin$". On peut maintenant taper des commandes dont voici les premières que nous allons apprendre. Elles ne sont pas forcément très utiles à elles seules, mais elles servent très souvent comme commandes de base pour la gestion de serveur linux. |
|---|
| 79 |
|
|---|
| 80 |
"man <programme>" permet d'obtenir l'aide d'un programme unix/linux ! Commande très intéressante s'il en est, elle permet de connaitre la manière d'utiliser un programme et les arguments de celui-ci. Dans man, vous pouvez utiliser les bouton "flèche haut", "flèche bas", "page précédente", "page suivante" pour avancer et reculer dans la documentation, et "q" pour quitter la page de manuel. Vous êtes bien évidemment invité à consulter les pages de manuel est commandes que nous allons voir dans cette formation. |
|---|
| 81 |
|
|---|
| 82 |
"cd" permet de changer le dossier courant. le prompt décrit plus haut montre le dossier courant entre le : et le $. Ainsi, "cd public_html" va vous déplacer dans le dossier public_html. pour remonter d'un dossier, on utilise "cd ..". Le dossier ".." étant en fait un dossier symbolisant le parent du dossier courant. |
|---|
| 83 |
|
|---|
| 84 |
La commande "ls" permet quand à elle d'obtenir la liste des fichiers présents dans le dossier courant. Cette commande comme beaucoup d'autres, peut recevoir des paramètres derrière l'appel à la commande elle-même. Par exemple, "ls -al" demande l'affichage des fichiers cachés (-a pour All) du dossier courant, ainsi que l'affichage long (-l) c'est à dire avec précision de la taille, des droits et des propriétaires de chaque fichier. la commande "man ls" vous donnnera tous les paramètres que ls connaît. |
|---|
| 85 |
|
|---|
| 86 |
|
|---|
| 87 |
TODO : compléter avec mkdir, rm, less, ps, grep. et une partie sur les 3 flux stdin/stdout/stderr. |
|---|
| 88 |
|
|---|
| 89 |
|
|---|
| 90 |
- Debian, l'integration de GNU/Linux, le packaging. (2h) |
|---|
| 91 |
- la FHS (File Hierarchy Standard) details (/etc /var /tmp /home ...) |
|---|
| 92 |
- le packaging debian : apt et dpkg, ainsi que http://packages.debian.org/ |
|---|
| 93 |
- (des)installation, interrogation, maintenance et dependances des packages installes. |
|---|
| 94 |
|
|---|
| 95 |
|
|---|
| 96 |
|
|---|
| 97 |
|
|---|
| 98 |
|
|---|
| 99 |
|
|---|
| 100 |
j2: |
|---|
| 101 |
- La ligne de commande, suite (2h) |
|---|
| 102 |
- edition de fichiers de configuration : vi, emacs, et autres. (a choisir) |
|---|
| 103 |
- commandes supplementaires : cut, halt/reboot, lancement de shells (./), |
|---|
| 104 |
- gestion des droits : chmod, chown, ls evolue ... |
|---|
| 105 |
- cron, logrotate, syslog, outils d'admin. |
|---|
| 106 |
|
|---|
| 107 |
- L'hebergement de services Internet sur Debian GNU/Linux |
|---|
| 108 |
- Les services Internet, presentation (2h) |
|---|
| 109 |
- le DNS : _bind9_ |
|---|
| 110 |
- http, https, awstats, les pages web : _apache_ |
|---|
| 111 |
- pop, imap, relever son courrier : cyrus, _courier_. |
|---|
| 112 |
- smtp, service de reception du courrier : exim, _postfix_. |
|---|
| 113 |
- les applicatifs cote serveur : perl, _php_, python, cgi generique etc. |
|---|
| 114 |
- les systemes de bases de donnees : _mysql_, postgresql. |
|---|
| 115 |
- gestion de mailing-lists : _mailman_, sympa |
|---|
| 116 |
- Les panneaux de controle web de gestion de serveur : (0h30) |
|---|
| 117 |
- Webmin, Ispman, Plesk, vhffs, AlternC |
|---|
| 118 |
comparatif rapide, points forts / faibles, fonctionnalites ... |
|---|
| 119 |
- AlternC, presentation detaillee. (1h30) |
|---|
| 120 |
- Le panneau de controle, presentation des differents services |
|---|
| 121 |
|
|---|
| 122 |
|
|---|
| 123 |
j3: |
|---|
| 124 |
(AlternC suite, 2h30) |
|---|
| 125 |
- administration de serveur via AlternC : specificites des comptes administrateurs. |
|---|
| 126 |
- fonctionnement interne (le bureau, les shells planifies de maintenance) |
|---|
| 127 |
- Administration systeme d'hebergement, les taches courantes : (3h) |
|---|
| 128 |
- recherche dans les logs, etat du systeme, etat des services |
|---|
| 129 |
- logs des visites, quotas d'espace, historique des connexions shell. |
|---|
| 130 |
- outils d'administration : presentation de nagios, logcheck, alternc-admintools. |
|---|
| 131 |
- conclusion : quelques sites de references sur l'administration d'hebergement. |
|---|
| 132 |
|
|---|
| 133 |
|
|---|
| 134 |
------------------------------------------------------------ |
|---|
| 135 |
GLOSSAIRE / LISTE DE SITES : |
|---|
| 136 |
|
|---|
| 137 |
|
|---|
| 138 |
TODO : les regrouper par thèmes. |
|---|
| 139 |
|
|---|
| 140 |
OSI : OpenSource Initiative. |
|---|
| 141 |
|
|---|
| 142 |
AFUL : Association Française des Utilisateurs de Linux. http://www.aful.org/ |
|---|
| 143 |
|
|---|
| 144 |
APRIL : Association pour la Promotion et la Recherche en Informatique Libre. http://www.april.org/ |
|---|
| 145 |
|
|---|
| 146 |
FSF : Free Software Foundation. http://www.fsf.org/ Organisme fondateur du projet GNU constituant l'essentiel des utilitaires disponibles pour Linux. |
|---|
| 147 |
|
|---|
| 148 |
OSDN : OpenSource Developper Network, réseau de sites entretenus et créés par la société VALinux, parmis lesquels SourceForge, Freshmeat, Slashdot, mettant à disposition à la communauté du libre des ressources nombreuses. |
|---|
| 149 |
|
|---|
| 150 |
Noyau Linux : le noyau est le coeur du système, c'est lui qui effectue le lien entre le matériel, le logiciel et l'utilisateur. voir http://www.kernel.org/ |
|---|