Administration système

Transcription

Administration système
Administration système
TP3
L3Pro R&S - L3I
Guillaume RENIER - 16 septembre 2013
http://depinfo.u-cergy.fr/adminsysteme
[email protected]
Gestion du BOOT
˜
1
DualBoot
Il existe de très nombreuses distributions Linux (Redhat, CentOS, Mandriva, Debian, Ubuntu, etc.) qui
bien que toutes basées autour du même noyau Linux ont développé chacune leur propre spécificité au
niveau de l’organisation des logiciels, de la facilité de la prise en main, des logiciels proposés, de systèmes
de mise à jour. Il n’est pas envisageable de tester toutes les distributions Linux (d’autant plus que les
différences sont en général assez réduites). Nous travaillerons tout au long des TP sur une distribution
Mandriva 2009 pour la partie client graphique et sur debian pour la partie serveur.
FreeBSD est un UNIX libre disponible sur PC. La plupart des logiciels disponibles dans les distributions
Linux sont également présents sur FreeBSD, et à quelques petites différence de syntaxe et d’organisation
près, l’administration d’un système FreeBSD est assez similaire à celui d’un Linux. Afin de ne pas sembler
redondant en répétant les exercices sur debian puis FreeBSD, nous allons installer volontairement une
version très minimale (et peu conviviale) de FreeBSD qu’on apprendra à enrichir manuellement au fur
et à mesure des TP.
1.1
Préparation matérielle
Vous aurez besoin de deux fichiers iso : l’un de FreeBSD 8.2, l’autre de Mandriva 2009.
Pensez à vérifier que les câbles réseau sont correctement branchés : les câbles bleus sur la prise réseau
de la carte mère de l’ordinateur, puis sur le switch CISCO ; le câble rouge branché sur le switch CISCO
des deux côtés.
1.2
VirtualBox.
1. Mettez à jour virtualBox à l’aide de la dernière version disponible (fichier d’installation disponible
dans le NAS).
2. Créer une machine virtuelle avec 2 cartes réseaux (mode pont sur les cartes physiques de la machine
hôte différentes), 40Go de disque dur (fichier à enregistrer sur D :).
3. Lorsqu’on vous demande d’utiliser un CD-ROM vous avez le choix de monter l’image ISO correspondante ou d’utiliser un vraie CR-ROM en mappant le lecteur CD de votre hôte physique sur le
CD-ROM de la machine virtuelle.
1.3
1.3.1
Installation Mandriva 2009
Configuration du BIOS
Rentrer dans le BIOS de la machine virtuelle (cela se fait en fonctions des ordinateurs par l’appui rapide
sur [F2] ou Ctrl+ALt+Suppr, [F10]...)
Naviguez dans les différents menus proposés dans le BIOS.
Regardez l’ordre de recherche de périphériques d’amorçage.
Configurez pour un lancement par le réseau puis par CD-ROM puis sur disque dur.
Réglez la date et l’heure le cas échéant.
Dans le cas d’une machine de production il serait utile de mettre un mot de passe d’accès
au BIOS.
1
Ici ne faites rien.
1.3.2
Boot sur Mandriva Live 2009
Insérez votre CD d’installation Mandriva 2009. Si vous avez correctement configuré votre BIOS, la
machine tente de booter sur le CD-ROM puis démarre le système d’exploitation "Live" contenu sur le
CD (une version en mémoire du système Mandriva que vous allez installer).
Répondez aux questions qui vous sont posées.
Lancez le programme d’installation.
Vous aurez en premier lieu à choisir la langue utilisée pour l’installation (français), le type de clavier
(français alternative ou français), le fuseau horaire (Paris) et acceptez la licence. Ne choisissez pas
d’effets bureau 3D couteux en ressource et inutile dans le cadre des TD.
Note : logiciel permettant de créer des distributions live de linux : http://www.linuxliveusb.com/
1.3.3
Partitionnement du disque
Le partitionnement du disque devra être effectué en respectant les indications suivantes (sélectionnez le
mode expert) :
– Première partition : primaire de 5 Go (Linux Ext3, pour installer le / de mandriva)
– Deuxième partition : primaire de 15 Go pour installer FreeBSD (système de fichiers UFS).
– Troisième partition : primaire de 5Go (Linux Ext3 pour installer la zone de swap de mandriva)
– Une quatrième partition : étendue de 5 Go (Linux Ext3 pour installer le /usr de mandriva)
– Une cinquième partition : étendue du reste du disque (Linux Ext2 pour installer le /home de mandriva)
Attention : spécifiez bien que vos 3 premières partitions sont des partitions primaires !
Vous noterez que :
– La première partition (primaire) accueillera le système Linux que vous allez installer.
À ce titre, elle contiendra donc la racine (/) de l’arborescence et sera déclarée comme amorçeable
(active) par défaut dans la table de partition.
Le système de fichier devra être EXT3 (EXT2 + journalisation + effacements non récupérables.)
– La deuxième partition (primaire) devra simplement être réservée pour une utilisation future (l’installation de FreeBSD dans la deuxième partie du TP). Vous déclarerez le système de fichiers comme UFS
(Type FreeBSD). Le programme d’installation ne la formatera pas en UFS, il déclare simplement son
type dans la table des partitions.
– La troisème partition (logique ou étendue) servira de swap.
Lorsque le système n’a plus de place pour charger un programme en mémoire, il déporte sur cette
partition de swap les programmes les plus vieux ou de moindre priorité.
– La quatrième partition (logique) viendra en complément de l’arborescence afin de stocker les logiciels.
Elle sera "montée" sous le répertoire /usr de l’arborescence.
Le système de fichier sera EXT3.
– La cinquième partition (logique) viendra en complément de l’arborescence.
Afin de stocker les données utilisateurs. Elle sera "montée" sous le répertoire /home. Ici, le système
de fichier sera EXT2 (Linux native).
A l’issue de cette opération, la table de partition sera écrite sur le disque. Les partitions 1, 4 et 5 seront
formatées suivant le système de fichiers que vous avez déclaré.
1.3.4
Configuration du MBR
Installez grub en mode texte comme chargeur multi-boot au démarrage.
Installez GRUB en mode texte comme périphérique d’amorçage sur /dev/sda.
1.3.5
Sélection des paquetages
Afin que l’installation ne prenne pas trop de temps en installant des logiciels superflus, acceptez la
proposition de l’installeur de ne pas installer les paquetages inutilisés.
1.3.6
Mot de passe administrateur et utilisateur
Afin de pouvoir unifier vos installations (pour que l’enseignant puisse y accéder sans problème), vous
utiliserez tous le mot de passe setup.
Vous créerez également l’utilisateur Harry Cover de login hcover et de mot de passe setuphc.
2
1.3.7
Configuration réseau
Laissez à plus tard la configuration réseau (annuler) qui sera vu dans un TP ultérieur.
1.4
Quelques question.
1. Justifier le choix des tailles de partition.
2. Justifier le choix des systèmes de fichiers (ext2 ou ext3).
3. Quel est l’utilité de la swap ?
4. Pourquoi certaines partitions sont-elles formatées et pas les autres alors que l’on a spécifié le type
de système de fichier qui sera accueilli ?
1.5
Installation FreeBSD 8
Insérez le CD de boot FreeBSD version 8.2. Un moment de chargement, vous arrivez sur un menu.
Ce menu permet de spécifier les périphériques utilisés. Par défaut, une auto-détection (probe) est faite.
Vous verrez ensuite apparaître un menu d’installation. La première chose à faire est de sélectionner dans Keymap - Select keyboard type, French ISO (accent) - French ISO keymap (accent
keys) afin de pouvoir utiliser un clavier français.
Vous avez le choix entre 3 types d’installation, Novice, Express ou Custom. En fait quelque soit le choix
que vous prendrez, à part la quantité d’information affichée à l’écran et l’ordre imposé mis à part, il
s’agit exactement de la même procédure d’installation.
Vous choisirez pour le TP le mode Custom (expert). Voici le menu que vous voyez apparaître,et l’ordre
dans lequel vous allez procéder.
1. Partition : partitionner le disque dur ;
2. Label : couper les partitions en "tranches" ;
3. Distributions : choisir sa distribution ;
4. Media : le média utilisé pour l’installation ;
5. Commit : lancement de l’install proprement dite ;
6. Package : installation d’utilitaires.
Dans la suite, nous décrirons chacune de ces étapes.
1.5.1
Le partitionnement
Il s’agit :
– De créer des partitions sur votre disque dur ou
– De voir les partitions existantes dans le cas où FreeBSD doive partager le disque avec un autre système
d’exploitation.
Dans notre cas, vérifiez que la troisième partition que nous avons réservée préalablement pour FreeBSD
existe bien et a bien été déclarée comme étant une partition de type FreeBSD (165).
Quittez ensuite avec q.
1.5.2
Procédure de boot.
Il s’agit ensuite de préciser la procédure de boot, il y a le choix :
– BootMgr - Install the FreeBSD Boot Manager :
Permet d’avoir au démarrage un menu donnant le choix du système sur lequel on bootera (utile si
plusieurs systèmes cohabitent) ;
– Standard - Install a standard MBR (no boot manager) :
Au démarrage, le boot se fera sur la partition qui a été choisie dans le menu précédent comme bootable
(par défaut, ça sera la partition FreeBSD que vous venez de sélectionner) ;
– None - Leave the Master Boot Record untouched :
Au démarrage, le boot se fera comme avant l’installation de FreeBSD.
Prenez le choix BootMgr.
3
1.5.3
Les tranches (label edition)
Dans chaque partition que vous venez de créer dans notre cas il n’y en a qu’une, vous pouvez (et il est
conseillé de) créer des tranches (slice). Dans chacune des tranches, un système de fichier sera créé et
monté.
Vous pouvez commencer par appuyer sur la touche A.
Le système vous propose un partitionnement.
Nous allons garder les points de montages proposés et les tranches proposés mais nous allons modifier
les tailles.
Nous allons rajouter une tranche pour /home
Faites en sorte d’obtenir les tranches suivantes :
– / de 1500Mio
C’est la tranche racine, si vous créez les tranches ci-dessous, alors il n’est pas utile de lui donner une
grande taille.
– swap de 2Gio.
Comme la SWAP est une partition du disque, elle est d’accès bien plus lente que la RAM. UNIX
utilise donc la RAM et la SWAP en privilégiant toujours la RAM.
C’est à dire que s’il a quelque chose à placer en mémoire il va se demander s’il reste suffisamment de
place en RAM. Si oui alors il occupe la RAM.
Si non, il va regarder s’il y a des programmes qui ne tournent plus qui sont encore stockés en RAM
en commençant par le plus vieux (lorsqu’un programme se termine, il n’est pas retiré de la RAM au
cas où il serait relancé peu de temps après).
S’il trouve une place mémoire occupée par un programme arrêté, il la vide et met le nouveau à la place.
Si jamais il ne se retrouve qu’avec des programmes en cours d’exécution, il va déplacer les programmes
qui ont le moins de priorité d’exécution vers la SWAP (c’est à ce moment qu’il commence à swaper ).
– /var de 1Gio.
C’est dans cette partition que vont être stockés les logs.
– /tmp de 2Gio.
C’est ici que nous placerons tous les fichiers téléchargés (ou récupérés depuis une clé USB).
– /usr de 4Gio.
Dans cette partition seront installées toutes les applications, sources.
– /home du reste de la partition.
Cette tranche permet de séparer les utilisateurs du système et des logiciels. A adapter suivant les
besoins des utilisateurs qui seront présents sur le système.
Souvent déportée sur un autre système.
1.5.4
Choix de la distribution
Ensuite, vous aurez le choix sur la distribution proprement dite, cela peut aller d’une installation minimale avec que le système et quelques utilitaire, à une installation avec sources complètes en passant par
des variantes intermédiaires avec ou sans X-Window.
Dans le cas des machines virtuelles vous utiliserez une distribution SANS X-Window.
– Developer - Full sources, binaries and doc but no games :
– X-Developer - Same as above + X Window System :
– Kern-Developer - Full binaries and doc, kernel sources only :
– X-Kern-Developer - Same as above + X Window System :
– User - Average user - binaries and doc only :
– X-User - Same as above + X Window System :
– Minimal - The smallest configuration possible :
Choisissez Kern-Developer. Lors de la question sur l’installation de /usr/ports, tout dépend si vous
préférez installer plus tard des logiciels à partir des sources ou non. Comme cette procédure est assez
longue, pour ce TP, vous choisirez de ne pas les installer.
1.5.5
Media
Ensuite vient la question du média supportant la distribution, le choix proposé est vaste (cdrom, ftp,
dos, nfs, système de fichier existant, disquette, bande). Dans notre cas, il s’agit du CD 1 que vous avez
déjà.
1. Image .iso de CD
4
D’autres techniques d’installation existent.
Les méthodes réseau sont pratiques.
Vous pourrez en mettre quelques unes à l’oeuvre s’il vous reste du temps.
Vous pourrez tester l’installation FTP.
1.5.6
Il vous reste à lancer l’installation.
C’est le point 7 : commit.
A la fin de l’installation vous pouvez encore modifier quelques détails :
Comme dans l’installation de Mandriva 2009, on choisira setup pour mot de passe root et vous créerez
un utilisateur Harry Cover de login hcover et de mot de passe setuphc sur le système que vous venez
d’installer.
On pourra aussi faire cela en ligne de commande une fois le système redémarrer sur FreeBSD
1.5.7
Redémarrage.
Redémarrer la machine.
2
2.1
Sécurisation du boot.
Introduction.
La première tâche d’un administrateur système est de sécuriser la machine dont il est responsable.
Sécuriser signifie : donner et contrôler les accès à la machine, que les accès soient matériels ou logiciels.
Dans le cas d’une machine avec un accès PHYSIQUE il convient d’empêcher tous les utilisateurs non
autorisés à démarrer un système d’exploitation en tant que root.
En effet un accès root permet d’accéder à tous les périphériques de la machine y compris le disque dur
et donc les partitions contenant les fichiers systèmes et les fichiers utilisateurs ou de configuration (et
des fichiers de base de données par exemple). Un accès root permet aussi d’accéder aux périphériques
réseau don au réseau de l’entreprise.
De ce fait un accès root à un système d’exploitation sur la machine permet d’obtenir un accès aux
disques en écriture (toujours possibles quand on est root) et permet donc de modifier la configuration d’un autre OS. Puis de redémarrer sur son système principal en tant que root (par exemple
sur des systèmes utilisant sudo, il suffit de rajouter dans le fichier de configuration sudoers la ligne
toto ALL=(ALL:ALL) ALL pour que l’utilisateur toto puisse exécuter n’importe quelle commande depuis
n’importe quelle machine (connexion à distance) en tant que n’importe quel utilisateur faisant partie
de n’importe quel groupe.
Voici les étapes de sécurisation de la machine :qui ont pour objectif : aucun accès root (quelque soit
l’OS) non autorisé.
1. Forcer le boot de la machine sur un périphérique particulier et empêcher le boot depuis d’autres
périphériques tels que :
– Une disquette.
– Un CD-ROM / DVD-ROM.
– Le réseau.
– Une clé USB.
– Un autre disque dur.
Cela se fait généralement en configurant le BIOS pour un démarrage EXCLUSIVEMENT sur
le disque choisi par l’administrateur (si le disque ne répond pas ou pour tout autre raison
inattendue, la machine ne démarre pas) et en protégeant l’accès (et la modification) du BIOS
par un mot de passe.
2. Protéger le démarrage des différents modes de l’OS (normal, nonFB, failsafe...) par mot de passe.
3. Protéger l’accès root des différents modes du système d’exploitation par mot de passe.
Ainsi pour démarrer un OS en tant que root il faut AU MOINS saisir un mot de passe (si possible
compliqué).
5
Cela revient en fait à protéger par mot de passe TOUS les boot sauf celui défini par l’administrateur
(s’il y en a un).
Rappelons qu’il est possible de réinitialiser le BIOS de la machine si on a un accès physique à la carte
mère. Donc il convient de protéger AUSSI l’accès physique à l’intérieur de la machine (par un cadenas
par exemple.)
Merci de ne JAMAIS protéger le BIOS par un mot de passe dans la salle A478 ni le
reconfigurer.
2.2
Sécurisation du boot de Mandriva.
Suite à l’installation de FreeBSD il n’est plus possible de booter sur Mandriva.
Nous allons corriger ce problème.
La méthode utilisée vous permettra de mettre en pratique le changement de configuration d’un OS à
l’aide d’un LiveCD (ici le CD d’installation de Mandriva).
2.2.1
Remise en place du bootLoader de Mandriva : Grub.
1. Booter votre machine sur le CD d’installation de Mandriva.
2. Lancer une console. Passer root.
3. Lancer l’application grub.
4. Taper les commandes suivantes : grub> root (hd0,1) et grub> setup (hd0)
Vous aurez peut-être à modifier le nom du disque car l’environnement est virtualisé.
5. Redémarrer l’ordinateur.
Il est maintenant possible de booter sur mandriva... Mais plus sur FreeBSD.
Nous allons, dans la partie suivante du TP reconfigurer grub pour permettre le multiBoot.
Note : il se peut que vous ayez à modifier le nom du disque dur (hd0) en fonction du nom de votre
configuration.
2.2.2
Configuration du multiBoot.
1. Rebooter l’ordinateur sur mandriva.
2. Lancer un terminal et passer root.
3. # cd /boot/grub puis # gedit menu.lst
4. Rajouter les lignes suivantes à la fin du fichier :
title FreeBSD
root (hd0,2,a)
kernel /boot/loader
boot
Sauvegarder le fichier et redémarrer.
Nous avons récupérer le boot de Mandriva et FreeBSD grâce à un LiveCD (celui de Mandriva) qui nous
a permis de modifier le contenu d’un fichier de configuration de Mandriva installé sur le disque.
2.2.3
Comment casser le mot de passe root.
Ou pourquoi sécuriser le boot de la machine.
Le mot de passe actuel de votre OS mandriva est setup.
Regarder la ligne correspondant à l’utilisateur root dans la fichier /etc/shadow.
Modifier le mot de passe root en setup2.
Regarder la ligne correspondant à l’utilisateur root dans la fichier /etc/shadow.
Modifier à nouveau le mot de passe root en setup.
Regarder la ligne correspondant à l’utilisateur root dans la fichier /etc/shadow.
6
Imaginer une méthode permettant de hacker le mot de passe de l’utilisateur root : en le changeant
en setup3 ou en le laissant vide.
2.2.4
Sécurisation du boot de Mandriva.
Vous trouverez en ligne http://depinfo.u-cergy.fr/adminsysteme le mode d’emploi du grub à l’aide
duquel vous devez configurer grub de telle sorte que :
1. Le démarrage de Mandriva en mode NonFB se fasse avec le mot de passe setup (en md5 dans le
fichier de configuration de grub.)
2. Le démarrage de Mandriva en mode failsafe se fasse avec le mot de passe setup (en clair dans le
fichier de configuration de grub) après avoir appuyé sur la touche [p] du clavier.
Voir exemple au vidéo projecteur.
Faire en, sorte que l’écriture et la lecture du fichier de configuration de grub soient interdits à TOUS
LES UTILISATEURS excepté root.
Rappel : la commande permettant d’attribuer des droits en lecture/écriture/éxécution au fichier titi.exe :
#chmod xyz titi.exe où les valeurs x, y, z sont les droits respectivement du propriétaire du fichier,
groupe propriétaire du fichier, desautres utilisateurs calculés de la manières suivantes :
x = a × 20 + b × 21 + c × 22 = a + 2b + 4c avec a, b, c ∈ {0; 1} avec a correspond au droit en exécution,
b au droit en écriture, c au droit en lecture.
Classiquement, pour les fichier de configurations on doit avoir (par exemple fichier.conf) :
#chmod 660 fichier.conf donnant les pleins pouvoir (sauf exécution) au propriétaire et au groupe
propriétaire (dont fera partie root) et aucun droit aux autres utilisateurs.
Pour les fichiers de configuration de services exécutés par root, #chmod 600 fichier.conf ou #chmod
644 fichier.conf si on veut donner un accès en lecture (ce qui est possible ; mais l’administrateur doit
toujours savoir pour quelles raisons il accorde une autorisation.)
Une règle d’or : il n’y a aucune raison de donner un privilège (par exemple un droit en lecture ou
écriture) s’il n’ y a aucune raison légitime (on évite de donner des privilèges juste pour faire plaisir).
2.3
2.3.1
Sécurisation du boot de FBSD.
Mot de passe Root en mode singleUser.
Le chargeur secondaire de FBSD (le fameux bootLoader) permet de choisir un démarrage en mode
single-User qui donne, par défaut un accès root, sans mot de passe.
Charger FBSD en mode multi-user, passer root, et modifier le fichier /etc/ttys afin d’obliger un
utilisateur à saisir le mot de passe root pour accéder à une console du mode singleUser.
2.3.2
Loggue de root.
Le loggue de root doit se faire (dans le cas d’une machine en production, pas nécessairement lors de
première configuration) par l’intermédiaire d’un compte utilisateur qui doit être membre du groupe
wheel. Il est en effet interdit à tout les utilisateurs qui ne font pas partie du groupe wheel de devenir
root (on rappelle que pour passer root il faut exécuter #su ou #su -.)
Vous avez donc deux possibilités pour votre machine :
1. Créer un nouveau compte (à vous de choisir) que vous ferez appartenir au groupe wheel.
2. Faire en sorte que l’utilisateur hcover appartienne au groupe wheel.
Pour cela vous pouvez utiliser la commande : # pw groupmod [nomGroup] -m [nomUtilisateur]
Note : l’option -M indique de remplacer les utilisateurs du groupe alors que -m rajoute les utilisateur. Dans le cas de plusieurs utilisateurs, séparer les différents utilisateurs par des virgules.
Il reste ensuite à interdit le loggue direct de root : modifier pour cela le fichier /etc/ttys afin d’interdire
la connexion root depuis un terminal de connexion.
7
2.3.3
Administration à distance.
Le mieux pour protéger une machine est l’enfermer dans une salle 2 dans laquelle il est impossible
d’accéder SAUF pour des opérations de maintenance matériel.
L’administration de la machine se fait donc à distance, par exemple par l’intermédiaire de SSH.
En principe, un administrateur système doit savoir ce qu’il fait, comment il le fait (et donc savoir comment fonctionne les systèmes, les logiciels, les utilitaires qu’ils utilise) et pourquoi il le fait.
Dans le cas de SSH, nous ferons une exception : l’administrateur utilisera SSH et SSHD en respectant
les principes énoncés dans le MAN sans savoir comment fonctionne SSH.
On peut en effet considérer SSH comme un standard. Une seule règle : ne pas jouer avec le feu.
Configurer SSHD et SSH pour que :
– Le service (ou deamon) SSHD soit lancé au démarrage de la machine (cela se fait par l’intermédiaire
du fichier /etc/rc.conf.
– Le service SSHD Accepte les connexions par mot de passe.
– Le service SSHD interdise la connexion directe à distance de root.
– Le service SSHD interdise la connexion des utilisateurs donc le mot de passe est vide.
– Le service SSHD autorise les utilisateurs à se connecter sans avoir à saisir son mot de passe.
On utilisera pour cela la connexion par certificats.
On utilisera l’utilitaire ssh-keygen pour générer des clés privées et publics puis on utilisera le fichier
~/.ssh/authorized_keys.
La configuration côté utilisateur et les tests seront faits à partir du compte hcover.
3
Sécurisation de l’environnement virtualBox.
3.1
Sauvegarde de machines virtuelles.
Il suffit de sauvegarder le fichier .vdi
3.2
Snapshot.
Permet de sauvegarder l’état d’une machine virtuelle et d’y revenir (utile avant toute configuration
délicate.
2. Microsoft recommande pour ses serveurs un mot de passe admin local vide mais une machine sous clé.
8