0% ont trouvé ce document utile (0 vote)
86 vues36 pages

Comprendre les Daemons sous Linux

Transféré par

m.aitbencheikh
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 PPTX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
86 vues36 pages

Comprendre les Daemons sous Linux

Transféré par

m.aitbencheikh
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 PPTX, PDF, TXT ou lisez en ligne sur Scribd

DAEMONS

Réaliser par: Encadré par:


SAFAE KAAOUCH Mr. MEHDI MOUKHAFI
ISSLAM ALAOUI-SOSSI
1
Plan
I. Demon
II. Système d'initialisation :
III. Service
IV. Unite
V. Journaux
VI. La securite des Demons
VII. Architecture
[Link] Activation d’un demon + TP Creation d’un demon
2
C’est quoi un demon ?

Un démon (daemon) est un type spécifique de programme en arrière-plan


qui fonctionne de manière continue, sans interaction directe avec
l'utilisateur. Les démons sont généralement des services système qui
exécutent des tâches essentielles pour le fonctionnement du système. Les
démons peuvent également être spécifiquement associés à des services,
tels que le démon Apache (http) pour le serveur web Apache,etc.

3
Les débuts de Linux : 1991 :: Linus

Histoire : Torvalds annonce la création du noyau


Linux. Le terme "démon" est utilisé pour
désigner des processus en arrière-plan
fournissant des services au système, sans
connotation maléfique.

Les premiers jours et Tux : 1996 : Le


pingouin Tux devient la mascotte non
officielle de Linux. Bien que l'histoire du
démon ait été mentionnée par Linus
Torvalds, le terme "daemon" reste associé
aux processus en arrière-plan, sans
connotation maléfique.

Développements récents : 2015: le projet systemd


Introduction de systemd et gestion des a créé des discussions au sein de la communauté
Évolution des systèmes d'initialisation : démons :2010 : systemd est introduit Linux en raison de ses méthodes modernes et
Années 1990-2000 : Les systèmes Linux comme un système d'initialisation moderne. parfois contestées pour gérer les services système.
utilisent généralement le système Il prend en charge la gestion des démons
d'initialisation SysV init pour gérer les système, fournissant des fonctionnalités 2016: les débats concernant systemd et d'autres
processus au démarrage du système. avancées pour le contrôle et la supervision aspects du système d'exploitation Linux ont
des services. persisté, mettant en lumière la diversité des
opinions au sein de la communauté open source.
4
Caractéristiques d'un Daemon :
Fonctionnement en arrière-plan

• Contrairement aux programmes classiques qui interagissent avec l'utilisateur via


une interface, les daemons fonctionnent de manière invisible en arrière-plan.

Services système

• Ils fournissent des services essentiels au système, comme la gestion des


connexions réseau, la journalisation des événements, ou la surveillance de
tâches planifiées.

Nomination

• Par convention, les noms de nombreux daemons se terminent par la lettre


"d". Par exemple, sshd est le daemon qui gère les connexions SSH, httpd est le
daemon pour le serveur web Apache, et crond est le daemon qui exécute des
tâches planifiées avec cron.

5
Les types des démons en Linux :
 Démons Système : Gerent le materiel , les processus système , les services essentiels.
Exemple : systemd.
 Démons réseau : Fournissent des services liés au réseau comme serveurs web ou FTP.
Exemples : httpd , sshd .
 Démons de journalisation : Capturent et gèrent les journaux du système.
Exemples : rsyslog , journald
 Démons de surveillance : Surveillent l’état du système ou des applications.
Exemples : monit .
 Démons de gestion de l’énergie : Optimisent la consommation d’énergie et gèrent la batterie.
Exemples : cpufreqd , powerd .
 Démons de bases de données : Gèrent les systèmes de bases de données.
Exemple : mysqld .
 Démons de systèmes de fichiers : Gèrent les sauvegardes ou les partages réseau.
Exemple : nfsd .

6
Système d'initialisation
Système d'initialisation :
Le système d'initialisation est le premier processus qui démarre
lorsqu'un système d'exploitation démarre. Son rôle principal est de
démarrer et d'arrêter les processus et services du système. Il configure
l'environnement initial du système, lance les processus nécessaires au
démarrage et prend en charge la séquence de démarrage.
Exemples de systèmes d'initialisation : SysV init, Upstart, systemd.

7
Qu'est ce que systemd et systemctl dans Linux ?

systemd dans Linux systemctl dans Linux


Systemd est un système systemctl ‘ est une commande utilisée
d'initialisation moderne et puissant pour contrôler le système
utilisé par de nombreuses d'initialisation systemd, qui est
distributions Linux pour gérer les largement utilisé sur de nombreuses
processus, les services et les tâches distributions Linux. ‘ systemctl’
au démarrage du système et tout au permet aux utilisateurs de gérer les
long de son fonctionnement. Il est services, les unités et d'autres aspects
conçu pour remplacer les systèmes du système qui sont sous le contrôle
d'initialisation traditionnels tels que de systemd.
SysVinit et apporte de nombreuses
fonctionnalités avancées.

8
Quelques utilisations courantes de systemctl :
• Demarrer un service.
• Arrreter un service.
• Redemarrer un servive.
Gestion • Verifier le statut d’un service.
• Activer un service au demarrage.
des
• Desactiver un service au demarrage.
Services

• Afficher toutes les unites en cours d’execution.


Gesti • Afficher toutes les unites actives au demarrage.
on • Verifier le statut d’une unite particuliere.
des
Unite
s

Gesti
on Rôle : Faciliter le passage d'un état à un autre, comme le démarrage en mode multi-utilisateur ou avec une interface graphique.
des
Cible
s(Tar
get)

9
Qu'est-ce qu'un Service ?
Définition : Un service est une fonctionnalité ou un programme qui fonctionne en arrière-plan pour
répondre à des requêtes ou exécuter des tâches spécifiques. Dans Linux, un service est souvent géré
par un daemon.
La relation entre un service et un démon dans un système d'exploitation.
Un service est une fonctionnalité ou une application fournie par le système d'exploitation, et un
démon est souvent utilisé pour implémenter ce service. En pratique, un service est un concept
logique pour décrire une fonction ou une application fournie par un démon .

Exemples : Le service SSH est géré par le daemon sshd, et le service web peut être géré
par
le daemon httpd.
Les services sont gérés principalement via un gestionnaire de services comme systemd, init, ou
upstart .

10
Quelques types des services courant en Linux :
Les services système essentiel:
Serveurs SSH (Secure Shell): est un protocole de réseau utilisé pour sécuriser les communications sur un
réseau.
Serveurs NTP (Network Time Protocol) : synchronisent l'horloge des systèmes sur un réseau .
Les services utilisateurs:
Serveurs de Messagerie : Des services comme (SMTP: Simple Mail Transfer Protocol), fournissent des
fonctionnalités de messagerie électronique.
Serveurs VPN(Virtual Private Network) : permettent la création de connexions sécurisées sur un réseau
public.
Serveurs d'Impression : Des services tels que CUPS (Common Unix Printing System) gèrent l'impression sur
le système.
Les services réseaux:
Serveurs DHCP (Dynamic Host Configuration Protocol) : fournissent des configurations réseau
automatiques aux clients.
Serveurs Web : Les services web tels qu'Apache HTTP est utilisé pour héberger des sites web et servir des
pages web.
Serveurs DNS(Domain Name System) : convertissent les noms de domaine en adresses IP.
11
Qu'est-ce qu’une Unite?
Dans le contexte de systemd, une "unit" (unité) fait référence à une unité de configuration
qui représente un objet ou un service géré par le système d'initialisation systemd. Les
unités sont utilisées pour décrire et configurer divers aspects du système et des services.

Les types des unités:

Socket Units (.socket) Device Units (.device) Path Units (.path)

Service Units (.service) Target Units (.target) Mount Units (.mount) Timer Units (.timer)

12
Journaux
•Définition : Les journaux sont un terme plus générique et peuvent inclure tout type
d'enregistrement d'activités ou d'événements, souvent avec un aspect organisationnel ou
métier.

•But principal :
•Historique général des activités ou des événements.
•Conformité, audits, ou reporting.
•Analyse d'activité humaine ou métier (plutôt que purement technique).

•Caractéristiques principales :
•Plus lisibles pour des non-techniciens.
•Conçus pour l'analyse métier ou la documentation.
•Peuvent être générés manuellement ou automatiquement.

13
Logs
•Définition : Les logs sont des fichiers ou des enregistrements générés
automatiquement par un système, une application, ou un serveur. Ils servent
principalement à capturer des événements ou des activités techniques.

•But principal :
• Débogage technique.
• Surveillance de la performance.
• Analyse des erreurs et des incidents.

•Caractéristiques principales :
• Générés automatiquement.
• Techniques et souvent complexes à interpréter sans outils ou expertise.
• Contiennent des détails spécifiques (ex. : timestamp, niveaux de gravité comme
"ERROR", "INFO", "DEBUG").

14
La sécurité des démons
La sécurité des démons (services) sur un système Linux est un aspect cruciale pour maintenir
l’intégrité et la confidentialité des systèmes. Voici quelques points importants concernant la
sécurité des démons sous linux :

Gestion des Gestion des


Securite du reseau
connexions reseau privileges
• Firewall. • Utilisateur specifique. • Chiffrement fort.
• Chiffrement des • Droits d’acces aux
communications. fichiers.

15
Architecture du démon
L'architecture d'un démon (ou daemon en anglais) sur un système Unix-like est
généralement conçue pour qu'il puisse s'exécuter en arrière-plan de manière
continue, sans nécessiter d'interaction directe avec l'utilisateur. Voici une
explication détaillée de l'architecture typique d'un démon :
1. Processus Démon.
2. Création d'un Processus Enfant (Forking).
3. Changement de Session (setsid).
4. Ignorer le Signal SIGHUP.
5. Changement de Répertoire de Travail.
6. Fermeture des Descripteurs de Fichiers Hérités.
7. Exécution du Code du Démon.
8. Boucle Infinie (Optionnelle).
9. Gestion des Signaux.
[Link] Propre.

16
Creation d’un demon

17
Activation d'un démon
Création d'un démon avec un language c :
1_ Ecriture du code: Ouvrez un éditeur de texte (comme nano , vim, gedit,etc) et copier le code c
dans un nouveau fichier . Sauvegarder le fichier avec une extension ‘.c’ .

18
2_ le code en nano:

19
3_ Enregistrer le fichier : dans nano en utilisant la commande ctrl+o , puis entrer. 3-Quitez nano: en utilisant la
commande ctrl+x ,
4_ Compilez le code c: pour compiler le code en utilisant la commande :
gcc –o mon_daemon mon_daemon.c
Pour vérifier si GCC est installé, ouvrez un terminal et exécutez la commande suivante :
gcc –version
Si ce n'est pas installé, vous pouvez l'installer en utilisant la commande suivante dans le terminal :
sudo dnf install gcc
5_Exécutez le programme : avec la commande ./mon_daemon &

20
Installation d’un démon de système:
Pour installer le demon SSH (sshd) comme exemple en fedora , suivez les étapes :
6_Mettre à jour votre système
Avant toute installation, il est recommandé de mettre à jour les paquets de votre système
pour assurer que toutes les dépendances et bibliothèques soient à jour on utilisant la
commande : sudo dnf update -y

21
7_Installer le démon SSHD
Fedora utilise dnf comme gestionnaire de paquets. Pour installer ssh, exécutez la commande
suivante : sudo dnf install openssh-server

22
8_Démarrage et arrêt des services: * Si vous souhaitez démarrer un service systemd en exécutant les
instructions qui se trouvent dans le fichier de l’unité du service, utilisez la commande start systemctl start
* Pour arrêter un service en cours d’exécution, vous pouvez plutôt utiliser la commande stop
systemctl stop

9_Redémarrage et rechargement: *Pour redémarrer un service en cours d’exécution, vous pouvez utiliser la
commande restart systemctl restart
*Si l’application en question est en capacité de recharger ses fichiers de configuration (sans redémarrage),
vous pouvez lancer la commande reload pour initier ce processus systemctl reload
*Si vous ne savez pas si le service intègre la fonctionnalité qui lui permet de recharger sa configuration,
vous pouvez lancer la commande reload-or-restart .Si disponible, vous rechargerez la configuration en
place. Sinon, le service redémarrera pour récupérer la nouvelle configuration systemctl reload-or-restart

23
10_Activation et désactivation des services: Les commandes ci-dessus vous seront utiles pour démarrer ou arrêter des
services pendant la session en cours, Vous devez les activer pour demander à systemd de lancer automatiquement les services
au démarrage. Pour lancer un service au démarrage, utilisez la commande enable systemctl enable
Pour désactiver le démarrage automatique d’un service, vous pouvez saisir la commande disable
systemctl disable

si vous souhaitez vérifier si une unité est actuellement active (en cours d’exécution), vous pouvez utiliser la commande
is-active systemctl is-active
Pour voir si l’unité est activée, vous pouvez utiliser la commande is-enabled systemctl is-enabled

24
11_Vérification de l’état des services: Pour vérifier l’état d’un service sur votre système, vous pouvez utiliser la
commande status systemctl status

25
Pour avoir une liste de toutes les unités actives que systemd reconnaît, nous pouvons utiliser la commande list-units :
systemctl list-units

26
Par exemple, pour consulter toutes les unités que systemd a chargées (ou tente de charger), qu’elles soient
actuellement actives ou pas, vous pouvez utiliser la balise --all comme suit : systemctl list-units --all

27
Vous pouvez filtrer ces résultats en utilisant d’autres balises. Par exemple, nous pouvons utiliser la balise --state= pour
indiquer les états LOAD, ACTIVE ou SUB que nous souhaitons consulter. Nous allons devoir garder la balise --all pour
que systemctl permette l’affichage des unités inactives : systemctl list-units --all --state=inactive

28
Liste de tous les fichiers de l’unité:Pour voir tous les fichiers de l’unité disponibles au sein des chemins de
systemd, notamment ceux que systemd n’a pas tenté de charger, vous pouvez utiliser la commande list-unit-files :
systemctl list-unit-files

29
1_Affichage du fichier de l’unité: Pour afficher le fichier 2_Affichage des dépendances: Pour voir une arborescence des
de l’unité que systemd a chargé sur son système, vous dépendances de l’unité, vous pouvez utiliser la commande list-
pouvez utiliser la commande cat : sudo systemctl cat dependencies
sshd

30
Masquage et affichage des unités: pour masquer une unite on utilise la commande suivante : sudo systemctl mask sshd
Si vous tentez de lancer le service, vous verrez s’afficher le message suivant :
Pour afficher une unité et rendre son utilisation à nouveau possible, utilisez la commande sudo systemctl
unmask sshd

31
Pour afficher tous les journaux système : la commande journalctl affiche l'intégralité du journal système depuis le
démarrage actuel jusqu'au moment présent

32
La commande journalctl -r est utilisée pour afficher les journaux système dans l'ordre inverse
La commande journalctl –b : Afficher les messages du journal depuis le dernier démarrage
La commande journalctl -f: Afficher les messages en temps réel (suivi des nouveaux messages)
La commande Journalctl –x : Afficher les messages avec plus de détails (informations supplémentaires)
Les journaux de démons: Pour afficher les messages d’un demon spécifique en utilisant la commande: journalctl –u sshd

33
Configurer le pare-feu (optionnel) : Pour que le service SSH soit
accessible depuis l'extérieur, vous devez autoriser le trafic SSH à travers le
pare-feu :
sudo firewall-cmd --add-port=22/tcp --permanent
sudo firewall-cmd --reload

34
Conclusion
Sous Linux, certains processus appelés daemons s'exécutent en tâche
de fond, notamment les logiciels serveurs, et sont gérés
historiquement par le système d'initialisation SystemV, désormais
remplacé par systemd sur la plupart des distributions modernes.
En résumé : Les démons sous Linux sont des processus essentiels
gérés par des systèmes d'initialisation comme systemd assurant
services, journalisation, et sécurité. Leur création et activation
illustrent leur importance pour des systèmes performants et sécurisés.

35
Merci Pour Votre Attention.

36

Vous aimerez peut-être aussi