100% ont trouvé ce document utile (1 vote)
269 vues27 pages

Admin UNIX - Part2

Transféré par

Dertan Lee
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
100% ont trouvé ce document utile (1 vote)
269 vues27 pages

Admin UNIX - Part2

Transféré par

Dertan Lee
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

4IIR

Administration UNIX
2ème partie

Professeur: IOUNOUSSE Jawad


[email protected]
Plan du cours + TP
Installation et FHS
Arrêt et démarrage
Gestions des utilisateurs
Évaluation 1
Gestion de paquetages
Gestion des disques et Systèmes de fichiers
Sauvegardes & Restaurations
Sécurité sous LINUX (ACL, SE Linux…)
Noyau & Journalisation & nettoyage de logs
Intégration dans les réseaux Évaluation 2
Linux pour la sécurité des réseaux
Linux pour le déploiement des applications
Objectifs
Cette formation apportera aux étudiants les connaissances indispensables
pour installer et administrer Linux au quotidien. permettra notamment:
▪ La gestion des utilisateurs,
▪ La gestion des disques et des périphériques,
▪ Les sauvegardes,
▪ La configuration des principaux services (système et réseaux).

Prérequis
▪ Connaissances de base sur les systèmes d’exploitation surtout UNIX.
▪ Commandes d’un terminal UNIX (Rappels nécessaires)
▪ Connaissances de base sur les réseaux et protocoles.
Démarrage du système
Démarrage du système
1 2 3 4 5
Systemd
BIOS MBR GRUB Kernel
Init
Basic Input Master Boot Grand Unified
or Output Record (512B) Boot loader (Décompression
System (Table de partitions)
(vmlinuz) et chargement
en RAM du kernel)

- Upgrade - Units
- Debug
- POST(Power On Self Test - Services
- Choix Kernel
pour la vérification du
Hardware) - Password root (changement) - Deamons
- nb cores (Détection) - fstab (Le montage des systèmes - Timers
- Boot device (Chargement) de fichiers) - Mounts
- Disk (Chargement)
- Contrôle
- Sécurité du boot
Niveaux d’exécution
Le “run level”, ou niveau de fonctionnement, est un chiffre ou une lettre utilisé par le processus
init des systèmes de type Unix pour déterminer les fonctions activées du système.
les scripts de lancement des applications sont regroupés dans un répertoire commun
/etc/init.d. Ces scripts reçoivent un paramètre qui peut être start, stop, restart, etc.
À chaque niveau correspond un répertoire (typiquement /etc/rc.d/rc2.d pour le niveau 2) de
liens symboliques vers des fichiers de /etc/init.d. Ces liens symboliques portent des noms
commençant par la lettre S (pour Start) ou K (pour Kill), suivi d’un numéro sur deux chiffres.
Avec init, les niveaux d’exécutions servent à ces usages :
▪ Niveau 1. Mode mono-utilisateur ou maintenance
▪ Niveau 2. mode multi-utilisateur sans ressources réseaux (NFS, etc)
▪ Niveau 3. mode multi-utilisateur sans serveur graphique
▪ Niveau 4. mode sans effet
▪ Niveau 5. mode multi-utilisateur avec serveur graphique
▪ Le niveau 0 arrête le système.
▪ Le niveau 6 redémarre le système.
Sous Debian/Ubuntu, le Niveau 2 est le seul niveau fonctionnel avec réseau et serveur
graphique. Les niveaux 3, 4 et 5 ne sont pas utilisés. Pour vérifier le niveau d’exécution courant :
runlevel
GRUB
▪ GNU GRUB (acronyme signifiant en anglais « GRand Unified Bootloader ») est un
programme d’amorçage GNU qui gère la gestion du chargement des systèmes d’exploitation
disponibles sur le système. Il permet à l’utilisateur de choisir quel système démarrer. Il
intervient après allumage de l’ordinateur et avant le chargement du système d’exploitation.
▪ GRUB dans sa version 2 (entièrement réécrite) est un chargeur de démarrage libre au même
titre que Das U-Boot ou Barebox pour du matériel embarqué.

▪ Fichiers GRUB
1) /etc/default/grub - le fichier contenant les paramètres du menu de GRUB ,
2) /etc/grub.d/ - le répertoire contenant les scripts de création du menu GRUB ,
permettant notamment de personnaliser le menu de démarrage,
3) /boot/grub2/grub.cfg - le fichier de configuration final de GRUB 2, non modifiable.
(/boot/grub/grub.cfg sous Debian). Ce dernier fichier est généré automatiquement
par le programme grub-mkconfig à partir des scripts /etc/default/grub et
/etc/grub.d/
GRUB
▪ Dossier /etc/grub.d/
Voici quelques exemples de scripts. Ils ne sont pas forcément présents chez vous, cela
dépend de la distribution Linux :
• 00_header: script permettant la génération de l'en-tête du fichier grub.cfg. Cet
entête est généré principalement à l'aide des informations paramétrées dans le fichier
/etc/default/grub
• 01_users: qui n'est créé que lorsqu'un mot de passe du chargeur de démarrage est
attribué.
• 20_linux_xen: script pour Xen Linux et Xen Hypervisor
• 30_os-prober : script permettant de détecter les autres systèmes installés et générer
les entrées correspondantes.
• 40_custom: script permettant de générer des entrées introduites manuellement dans
ce fichier
• 10_linux: script permettant de générer les entrées correspondant au système
GNU/Linux hôte
GRUB
▪ Fichier /etc/default/grub
Le fichier de configuration par défaut pour GRUB2 est /boot/grub/grub.cfg. Vous ne
devez pas éditer ou modifier ce fichier, sauf si vous êtes bien familiarisé avec GRUB2. C'est le
fichier principal pour démarrer dans le système d'exploitation Linux. Si vous faites une
mauvaise configuration, vous vous retrouverez sûrement avec un système défectueux. Alors,
ne touchez pas à ce fichier !
Le fichier /boot/grub/grub.cfg est automatiquement généré par grub-mkconfig en
utilisant les scripts de /etc/grub.d et les paramètres de /etc/default/grub. Toutes les
modifications que vous avez apportées dans le fichier /etc/default/grub seront
répercutées sur le GRUB2.
Chaque fois que vous avez apporté des modifications à ce fichier, vous devez exécuter la
commande suivante pour appliquer les modifications au GRUB :
root@hostname# grub-mkconfig -o /boot/grub/grub.cfg
NB !!!!!! Noter que si votre système utilise UEFI, l'emplacement de la configuration de GRUB
sera : /boot/efi/EFI/redhat/grub.cfg
root@hostname# grub-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
GRUB
▪ Fichier /etc/default/grub

Clés Description
GRUB_TIMEOUT Le temps en secondes après l'affichage du menu pour démarrer
l'entrée par défaut, sauf si une touche est enfoncée. La valeur par
défaut est 5. Définissez sur 0 pour démarrer immédiatement sans
afficher le menu, ou sur -1 pour attendre indéfiniment
GRUB_DISTRIBUTOR Défini par les distributeurs de GRUB et utilisé pour générer des
titres d'entrée de menu plus informatifs. Par exemple :
GRUB_DISTRIBUTOR=`echo -n TITRE
PERSONNALISÉ `#donne : TITRE PERSONNALISÉ GNU/Linux
GRUB_DEFAULT L'entrée de menu par défaut pour démarrer :
• Une valeur de 0 démarre la première entrée de menu.
• Une valeur de 1 démarre la deuxième entrée de menu.
• Une valeur de saved indique à GRUB de charger le dernier
système d'exploitation chargé avec succès
GRUB_DISABLE_SUBMENU Si on souhaite voir directement une entrée de menu par noyau
linux disponible (On peut supprimer les noyaux les plus anciens)
GRUB
▪ Fichier /etc/default/grub

Clés Description
GRUB_TERMINAL_OUTPUT Sélectionne le périphérique de sortie du terminal. Vous pouvez
sélectionner plusieurs périphériques ici, séparés par des
espaces.
Les noms de terminaux valides peuvent inclure 'console'
(console native de la plate-forme), 'serial' (terminal série),
'serial_<port>' (terminal série avec sélection explicite du port),
'gfxterm' (sortie en mode graphique), etc.
GRUB_CMDLINE_LINUX Paramètres de démarrage du noyau
GRUB_TIMEOUT_STYLE Pour afficher ou non le menu Grub :
• Une valeur "hidden" veut dire que le menu n’apparaît pas
au démarrage
• Une valeur "menu" forcera l’affichage du menu Grub au
démarrage (on peut aussi commenter la ligne
GRUB_TIMEOUT_STYLE=hidden)
Gestion des services
Les services
❖ Introduction:
▪ Un service est un programme qui s'exécute en arrière-plan, plutôt contrôlé par le
système d'exploitation que par l'utilisateur directement.
- Aussi appelé « daemon »
- Souvent avec un nom qui se termine par « d » (ex. sshd, mysqld …)
▪ La plupart des logiciels fonctionnant en mode serveur ont besoin d’installer un
service.
▪ systemd est le logiciel qui initialise le système d'exploitation au démarrage (dont le
fameux processus init fait partie) et qui démarre et pilote les différents services de
la machine (depuis 2010). Essayez: ps –ef | less
▪ Les services sont gérés par systemd, qui les démarre et les arrête en fonction du
besoin.
▪ Dans le cas d'un serveur, il arrive que l'on ajoute des services à la machine (par
exemple un serveur web, ou un SGBD) et qu'il soit nécessaire de les piloter avec la
commande systemctl.
Les services
❖ Affichage des services:
▪ Au cœur de systemd se trouvent les "unités". Une unité est une abstraction qui peut
représenter divers éléments du système, tels que des services, des points de montage, des
périphériques, des sockets, etc. Chaque unité est décrite par un fichier de configuration
spécifique.
▪ Chaque service ou unité géré par systemd est décrit par un fichier de configuration
spécifique. Ces fichiers contiennent des informations essentielles sur le service, telles que
son nom, son exécutable, ses dépendances, etc. Les fichiers de configuration des services
peuvent être situés dans plusieurs emplacements, notamment :
➢ /etc/systemd/system/ : Pour les fichiers de configuration système qui affectent
tous les utilisateurs.
➢ /usr/lib/systemd/system/ : Pour les fichiers de configuration système fournis
par les packages de la distribution.
➢ ~/.config/systemd/user/ : Pour les fichiers de configuration spécifiques à
l'utilisateur.
▪ Pour les lister les services existants on utilise la commande (en tant que root):
systemctl list-units -t service
Ou systemctl list-unit-files --type=service
Les services
❖ États d'un Service:
▪ il est essentiel de comprendre les états d'un service dans systemd. Un service peut
se trouver dans l'un des états suivants :
➢ Actif (active) / Enabled : Le service est en cours d'exécution et fonctionne
correctement.
➢ Inactif (inactive) / Disabled : Le service est arrêté et n'est pas en cours d'exécution.
➢ Échec (failed) : Le service a rencontré un problème et a échoué.
➢ Masqué (masked) : Le service est masqué, ça signifie qu'il ne peut pas être activé
ou démarré.
➢ Alias (alias) : L'unité est un alias vers une autre unité. Elle ne peut pas être
démarrée indépendamment.
➢ Statique (static) : Le service ne sera utilisé qu’au cas où un autre service en aurait
besoin.
➢ Désactivé (disabled) : Le service est désactivé et ne sera pas démarré au
démarrage.
Les services
❖ Gestion d'un Service:

On peut manipuler les services avec les commandes suivantes :


➢ systemctl start [service_name] pour démarrer un service stoppé.
➢ sudo systemctl stop [service_name] pour stopper un service.
➢ systemctl restart [service_name] pour redémarrer un service, cela
revient à faire un stop puis un start.
➢ systemctl reload [service_name] pour demander à un service de
recharger sa configuration sans s'arrêter.
➢ systemctl status [service_name] pour vérifier l’état d’un service.
➢ systemctl enable [service_name] pour que le service soit démarré au
démarrage du système.
➢ systemctl disable [service_name] pour qu’il ne soit pas lancé au
démarrage.
Les services
❖ Configuration d'un Service:
▪ On peut éditer le fichier de configuration d’un service en utilisant la commande suivante :
sudo systemctl edit nomduservice.service
▪ Ce fichier stocke le nom, description, l’emplacement du fichier de config, les commandes à
utiliser pour démarrer ou arrêter le service, et d’autres paramètres du service.
▪ Pour créer un nouveau service, il faut créer son fichier à /lib/systemd/system/ puis
exécuter les commandes suivantes : ➢ systemctl daemon-reload
➢ systemctl enable monservice.service
▪ Exemple: ➢ systemctl start monservice.service

➢ La section [Unit] contient des métadonnées


sur le service, telles que sa description et ses
dépendances.
➢ La section [Service] spécifie comment le
service doit être exécuté, y compris le chemin
vers l'exécutable.
➢ La section [Install] définit comment le
service doit être activé au démarrage.
Les services
❖ Trace d'un Service:

▪ L’exécution des daemons est enregistrée dans les journaux systèmes.


▪ Lorsqu’un service ne s’exécute pas correctement, on peut consulter les journaux
pour obtenir des informations.
▪ La commande journalctl sert à consulter les journaux (logs) systemd.
▪ Pour avoir la fin du journal systemd, il faut utiliser la commande journalctl
suivante :
journalctl -xe
Arrêt du système
Arrêt du système
Sur une machine locale ou virtuelle ou un serveur distant.
❖ Redémarrer le système:
systemctl reboot
shutdown -r now
reboot
init 6
❖ Arrêter le système:
systemctl halt
shutdown -h now
halt
init 0
❖ Eteindre le système:
systemctl poweroff
poweroff
❖ Hibernation:
systemctl hibernate
Atelier 2: Configuration des
paramètres du Boot Loader
GRUB
But :
▪ Comprendre comment fonctionne Grub2, analyser le contenu du fichier de
configuration grub.cfg, et comment il est généré.
▪ Manipuler les commandes les plus utiles de Grub2.
Atelier 2
1. Configuration du chargeur de démarrage Grub
1.1. Se connecter en tant que root
1.2. Sauvegarder le fichier original /etc/default/grub avant d'apporter des
modifications.
1.3. Visualiser le fichier de configuration de grub /etc/default/grub, interpréter le
contenu de ce fichier
1.4. Modifier le fichier de configuration de grub afin de :
a) Sélectionner le système par défaut
Ouvrez le fichier /etc/default/grub à l'aide de n'importe quel éditeur de texte, et
trouvez la ligne "GRUB_DEFAULT". Nous pouvons sélectionner le système
d'exploitation par défaut pour démarrer en utilisant cette option. Si vous définissez la
valeur sur "0", le premier système d'exploitation dans l'entrée du menu de
démarrage GRUB démarrera. Si vous le définissez sur "1", le deuxième système
d'exploitation démarrera, et ainsi de suite.
De plus, si vous avez plusieurs OS dans votre système, vous pouvez démarrer le
dernier système d'exploitation en utilisant la valeur GRUB_DEFAULT = saved. Chaque
fois que vous redémarrez le système, le dernier système d'exploitation démarre.
Veuillez noter que vous devez ajouter une ligne GRUB_SAVEDEFAULT = true pour que
cette astuce fonctionne.
Atelier 2
b) Définir le temps d’attente avant le démarrage du système par défaut
Par défaut, l'entrée sélectionnée dans le menu de démarrage commencera à
démarrer dans 5 secondes. Vous pouvez augmenter ou diminuer ce paramètre de
délai GRUB_TIMEOUT. Si la valeur est "0", le système d'exploitation par défaut
commencera immédiatement à démarrer. Si la valeur est "5", le menu de démarrage
apparaîtra pendant 5 secondes, afin que vous puissiez sélectionner le système
d'exploitation que vous souhaitez charger au démarrage du système. Si la valeur est
"-1" le menu de grub va rester affiché indéfiniment.
✓ Modifiez cette valeur afin de pouvoir attendre 10 secondes avant le démarrage de
l’entrée sélectionnée. Si Grub était sur hidden mettez le sur menu
c) Changer le mode de démarrage par défaut de Linux
Par défaut votre système démarre sur le mode graphique, si vous voulez que votre
système démarre par défaut sur le mode Console, modifiez ou ajoutez la ligne
suivante dans le fichier de configuration de grub:
GRUB_CMDLINE_LINUX_DEFAULT="3"
3: c’est le numéro représentant le mode multi-utilisateurs complet: Tous les services
nécessaires sont démarrés et plusieurs utilisateurs peuvent se connecter en mode
texte.
Atelier 2
d) Ajouter des entrées pour redémarrer et arrêter le système
✓ Vous pouvez ajouter des entrées personnalisées dans le fichier "40_custom" se
trouvant dans /etc/grub.d/ pour inclure des options spécifiques telles que
"Redémarrer" et "Arrêter le système" dans le menu GRUB.
✓ Ouvrez le fichier /etc/grub.d/40_custom à l'aide de n'importe quel éditeur de texte,
Ajoutez les entrées personnalisées pour "Redémarrer" et "Arrêter le système" dans
ce fichier.
menuentry "Redemarrer" {
echo "Redemarrer le systeme..."
reboot
}
menuentry "Arreter le systeme" {
echo "Arret du systeme..."
halt
}
✓ Enregistrez et fermez le fichier.
✓ Exécutez la commande pour recréer le fichier de configuration GRUB
✓ Redémarrez votre machine et vérifiez si les modifications que vous avez apportées
ont été faites.
Atelier 2
2. Réinitialisation du mot de passe root
GRUB peut nous aider également à dépanner les systèmes d'exploitation. Il dispose d’une
interface en ligne de commande, ayant pour invite (prompt) "grub >".
✓ Pour accéder à cette interface, Redémarrer votre système, au niveau du GRUB, sélectionner
le système sur lequel vous souhaitez booter et appuyer sur la touche « e ».
À partir de cette interface, vous pouvez réinitialiser le mot de passe oublié de l'utilisateur
root en vous connectant au système d'exploitation en mode mono-utilisateur.
✓ Chercher la commande linux permettant de charger le noyau, puis passez le paramètre rw
à la place de ro et ajoutez à la fin init=/bin/bash et appuyez sur F10 pour booter.
✓ Une fois le Shell root est lancé, verifier si le système de fichier /sysroot est monté en
lecture/écriture avec mount, sinon mettez: # mount -o remount,rw /
✓ Modifier le mot de passe root par passwd
✓ Quittez le Shell root, puis vérifiez la réinitialisation du mot de passe en ouvrant une session
root.
Atelier 2
3. Protection de l’interface grub par mot de passe
Nous avons vu qu’à partir de l’interface de la ligne de commande de Grub, vous pouvez
réinitialiser le mot de passe oublié de l'utilisateur root en vous connectant au système
d'exploitation en mode mono-utilisateur. Vous pouvez aussi configurer le noyau d’un système
d'exploitation particulier en fonction de vos besoins.
Donc il faut protéger le chargeur de démarrage avec un mot de passe pour les raisons
suivantes :
▪ Prévenir les accès au mode utilisateur Single – Si un attaquant peut démarrer en mode
single user, il devient l’utilisateur root.
▪ Prévenir les accès à la console GRUB – Si un attaquant parvient à utiliser la console.
▪ GRUB, il peut changer sa configuration ou collecter des informations sur le système en
utilisant la commande cat.
▪ Prévenir les accès à des systèmes d’exploitation non sécurisés. S’il y a un double boot sur
le système, un attaquant peut sélectionner au démarrage un système d’exploitation
comme DOS qui ignore les contrôles d’accès et les permissions des fichiers.
✓ La première chose à faire va être de sauvegarder le fichier de configuration
(/boot/grub/grub.cfg). On va en faire une copie au préalable, au cas où...
Atelier 2
3. Protection de l’interface grub par mot de passe
Ensuite, pour mettre un login et un mot de passe, on va éditer le fichier /boot/grub/grub.cfg
pour y ajouter : #Password
set superusers="emsi"
password emsi emsi
✓ Bon, là c'est bien de mettre un mot de passe, mais un mot de passe en clair... c'est plus
que moyen. Alors on doit hasher le mot de passe. Pour cela, il faut entrer dans
une console : grub-mkpasswd-pbkdf2
La commande va alors demander de saisir le mot de passe (deux fois), puis va retourner le
hash de celui-ci (en SHA1 sur 512bits).
✓ Ensuite il convient d'éditer le fichier grub.cfg pour y coller le hash de votre mot de passe :
#Password
set superusers="emsi"
password_pbkdf2 emsi grub.pbkdf2.sha512.10000.XXXXXXXX…

✓ Il ne reste plus qu'à tester. Un petit reboot, et on appuie sur 'e' lorsque l'on est sur le
menu boot

Vous aimerez peut-être aussi