Connexion
Connexion

Comment ouvrir des ports et lister les ports ouverts sous Linux

Comment ouvrir des ports et lister les ports ouverts sous Linux
Hostman Team
Rédacteur technique
Système Linux Réseaux
10.10.2025
Reading time: 6 min

Lors du travail avec des réseaux sous Linux, il peut être nécessaire d’ouvrir ou de fermer un port réseau. La gestion des ports est essentielle pour la sécurité — moins il y a de ports ouverts dans un système, moins il y a de vecteurs d’attaque potentiels. De plus, si un port est fermé, un attaquant ne peut pas recueillir d’informations sur le service fonctionnant sur ce port spécifique.

Ce guide explique comment ouvrir ou fermer des ports et comment vérifier les ports ouverts sur des distributions Linux telles que Ubuntu/Debian et CentOS/RHEL à l’aide de pare-feu comme ufw, firewalld et iptables.

Nous allons démontrer ce processus sur deux distributions Linux : Ubuntu 22.04 et CentOS 9, exécutées sur un VPS Hostman. Toutes les commandes présentées ici fonctionnent sur n’importe quelle distribution basée sur Debian ou RHEL.

Qu’est-ce qu’un port réseau ?

Les ports sont utilisés pour accéder à des applications et des protocoles spécifiques. Par exemple, un serveur peut héberger à la fois un serveur web et une base de données — les ports dirigent le trafic vers le service approprié. Techniquement, un port réseau est un entier non négatif allant de 0 à 65535.

  • Ports réservés (0–1023) : utilisés par des protocoles et services réseau populaires comme SSH (port 22), FTP (port 21), HTTP (port 80) et HTTPS (port 443).

  • Ports enregistrés (1024–49151) : peuvent être utilisés par des applications spécifiques pour la communication.

  • Ports dynamiques (49152–65535) : utilisés pour des connexions temporaires et peuvent être attribués dynamiquement à des applications.

Ouvrir des ports sur les distributions Linux basées sur Debian

Sur les systèmes basés sur Debian (Ubuntu, Debian, Linux Mint, etc.), vous pouvez utiliser ufw (Uncomplicated Firewall).

ufw est préinstallé sur la plupart des distributions basées sur APT. Pour vérifier s’il est installé :

ufw version

Si une version s’affiche, ufw est installé. Sinon, installez-le avec :

apt update && apt -y install ufw

Par défaut, ufw est inactif, ce qui signifie que tous les ports sont ouverts. Vous pouvez vérifier son statut avec :

ufw status

Pour l’activer :

ufw enable

Vous devrez confirmer avec y. Notez que l’activation d’ufw peut interrompre les connexions SSH en cours. Par défaut, ufw bloque tout le trafic entrant et autorise tout le trafic sortant.

Pour vérifier la politique par défaut :

cat /etc/default/ufw

Image7

Ouvrir des ports avec ufw

Pour ouvrir un port :

ufw allow <port_number>

Exemple — ouvrir le port 22 pour SSH :

ufw allow 22

Vous pouvez ouvrir plusieurs ports en les séparant par des virgules et en spécifiant le protocole (tcp ou udp) :

ufw allow 80,443,8081,8443/tcp
ufw allow 80,443,8081,8443/udp

Au lieu des numéros de port, vous pouvez utiliser le nom du service (défini dans /etc/services).

Image8

Exemple — ouvrir Telnet (port 23) :

ufw allow telnet

Remarque : Vous ne pouvez pas spécifier plusieurs noms de services à la fois. Sinon, ufw renverra une erreur :

Image1 (1)

Pour ouvrir une plage de ports :

ufw allow <start_port>:<end_port>/<protocol>

Exemple :

ufw allow 8000:8080/tcp

Fermer des ports avec ufw

Pour fermer un port :

ufw deny <port_number>

Exemple — fermer le port 80 :

ufw deny 80

Vous pouvez également utiliser le nom du service. Exemple — fermer FTP (port 21) :

ufw deny ftp

Vérifier les ports ouverts dans ufw

Pour lister tous les ports ouverts et fermés :

ufw status

Image18

Ou pour une vue plus détaillée :

ufw status verbose

Ouvrir un port sur les distributions Linux basées sur RHEL

Les distributions basées sur RHEL (CentOS 7+, RHEL 7+, Fedora 18+, OpenSUSE 15+) utilisent par défaut firewalld.

Ouvrir des ports avec firewalld

Vérifiez si firewalld est installé :

firewall-offline-cmd -V

Si une version s’affiche, firewalld est installé. Sinon, installez-le :

dnf install firewalld

Par défaut, firewalld est désactivé. Vérifiez son statut :

firewall-cmd --state

Pour l’activer :

systemctl start firewalld

Ouvrir le port 8080 pour TCP :

firewall-cmd --zone=public --add-port=8080/tcp --permanent
  • --zone=public: Spécifie la zone pour la règle.
  • --add-port=8080/tcp: Spécifie le port et le protocole.
  • --permanent: Enregistre la règle de façon permanente.

Image12

Vous pouvez aussi ouvrir un service en utilisant son nom, par exemple HTTP (port 80) :

firewall-cmd --zone=public --add-service=http --permanent

Appliquer les changements :

firewall-cmd --reload

Fermer des ports avec firewalld

Pour fermer un port par numéro :

firewall-cmd --zone=public --remove-port=8080/tcp --permanent

Image4

Ou par nom de service :

firewall-cmd --zone=public --remove-service=http --permanent

Toujours recharger après modification :

firewall-cmd --reload

Lister les ports ouverts avec firewalld

Pour lister tous les ports ouverts :

firewall-cmd --list-ports

Gérer les ports avec iptables

Contrairement à ufw et firewalld, iptables est préinstallé sur de nombreuses distributions (Ubuntu, Debian, RHEL, Rocky Linux, AlmaLinux).

Ouvrir des ports avec iptables

Pour ouvrir le port 8182 pour les connexions entrantes :

iptables -A INPUT -p tcp --dport 8182 -j ACCEPT
  • -A INPUT: Ajoute une règle à la chaîne INPUT.
  • -p tcp: Spécifie le protocole.
  • --dport 8182: Spécifie le port à ouvrir.
  • -j ACCEPT: Autorise le trafic sur ce port.

Pour les connexions sortantes :

iptables -A OUTPUT -p tcp --dport 8182 -j ACCEPT

Pour ouvrir une plage de ports :

iptables -A INPUT -p tcp --match multiport --dports 1024:2000 -j ACCEPT

Fermer des ports avec iptables

Pour fermer un port :

iptables -A INPUT -p tcp --dport 8182 -j DROP

Fermer une plage de ports :

iptables -A INPUT -p tcp --match multiport --dports 1024:2000 -j DROP

Sauvegarder les règles iptables

Par défaut, les règles iptables sont perdues après un redémarrage.

Pour les sauvegarder de façon permanente, installez iptables-persistent.

Pour les systèmes basés sur APT :

apt update && apt -y install iptables-persistent

Pour les systèmes basés sur DNF :

dnf -y install iptables-persistent

Sauvegarder les règles actuelles :

iptables-save

Les règles seront automatiquement rechargées au prochain redémarrage.

Afficher les ports ouverts avec iptables

Lister toutes les règles et ports ouverts :

iptables -L -v -n

Lister uniquement les règles IPv4 :

iptables -S

Lister les règles IPv6 :

ip6tables -S

Conclusion

Dans ce guide, nous avons montré comment ouvrir et fermer des ports réseau sous Linux et comment vérifier les ports actuellement ouverts à l’aide de trois outils différents : ufw, firewalld et iptables. Une bonne gestion des ports réduit les risques d’attaques réseau potentielles et aide à dissimuler des informations sur les services utilisant ces ports.

Système Linux Réseaux
10.10.2025
Reading time: 6 min

Similaire

Système Linux

Comment ouvrir un port sous Linux

Ouvrir des ports sous Linux est une tâche essentielle qui permet à certains services ou applications d’échanger des données sur le réseau.  Les ports agissent comme des canaux de communication, autorisant l’accès aux services approuvés tout en bloquant les connexions non autorisées. Une bonne gestion des ports est indispensable pour garantir la sécurité, la stabilité et les performances du système. Comprendre les ports et leur rôle Les ports sont des points de terminaison logiques de communication réseau où les appareils peuvent envoyer et recevoir des informations. Exemples courants : HTTP utilise le port 80 HTTPS utilise le port 443 SSH utilise le port 22 Un port ouvert signifie qu’un service écoute les connexions entrantes sur ce port. Un port fermé bloque la communication. Gérer correctement les ports ouverts sous Linux est essentiel pour maintenir la disponibilité et la sécurité du réseau. Vérifier les ports ouverts sous Linux Avant d’ouvrir un port, il est conseillé de vérifier quels ports sont déjà actifs.Plusieurs outils et commandes Linux permettent de le faire. Avec netstat Pour afficher les ports ouverts : netstat -tuln L’option -tuln limite la sortie aux ports TCP et UDP sans résolution des noms d’hôte. netstat offre une vue en temps réel des connexions réseau actives. Remarque : si netstat n’est pas installé : sudo apt install net-tools Avec ss La commande ss est plus moderne et plus rapide que netstat : ss -tuln Elle affiche les ports utilisés et les informations sur les sockets correspondants. Avec nmap Pour une analyse détaillée des ports ouverts : nmap localhost nmap scanne l’hôte spécifié (ici, localhost) afin d’identifier les ports ouverts. C’est un outil pratique pour déterminer quels services sont exposés à la connexion externe. Remarque : installez nmap avec : sudo apt install nmap Ouvrir un port sous Linux Pour autoriser l’accès via un port spécifique, il faut modifier les règles du pare-feu. Linux propose plusieurs outils pour cela : iptables, ufw et firewalld. Voici comment les utiliser. Méthode 1 : avec iptables iptables est un utilitaire puissant et bas-niveau offrant un contrôle précis sur le trafic réseau. Ajouter une règle pour autoriser un port Exemple : ouvrir le port 8080 (HTTP) : sudo iptables -A INPUT -p tcp --dport 8080 -j ACCEPT Explications : sudo : exécute la commande avec les droits administrateur -A INPUT : ajoute la règle à la chaîne d’entrée (trafic entrant) -p tcp : s’applique au protocole TCP --dport 8080 : définit le port concerné -j ACCEPT : autorise le trafic correspondant à la règle Ces modifications sont temporaires : elles seront perdues après un redémarrage. Rendre la règle permanente. Ces commandes sauvegardent la configuration actuelle pour qu’elle soit appliquée automatiquement au démarrage. sudo apt install iptables iptables-persistent sudo netfilter-persistent save This directive preserves current iptables or nftables rules such that they are preserved during reboots. Recharger les règles sudo netfilter-persistent reload Méthode 2 : avec ufw (Uncomplicated Firewall) ufw est une interface simplifiée d’iptables permettant de gérer facilement les règles du pare-feu. Activer ufw sudo ufw enable Si ufw n’est pas installé : sudo apt install ufw Autoriser le trafic sur un port Exemple : ouvrir le port 22 pour SSH : sudo ufw allow 22/tcp Cela autorise le trafic TCP sur le port 22, utilisé pour les connexions SSH. Vérifier l’état du pare-feu sudo ufw status Affiche toutes les règles actives et les ports ouverts. Méthode 3 : avec firewalld firewalld est un démon de pare-feu dynamique, plus simple à configurer qu’iptables. Ajouter une règle permanente Exemple : autoriser le port 443 (HTTPS) : sudo firewall-cmd --permanent --add-port=443/tcp Installez et activez firewalld : sudo apt install firewalld sudo systemctl enable firewalld sudo systemctl start firewalld Recharger le pare-feu sudo firewall-cmd --reload Vérifier les ports ouverts sudo firewall-cmd --list-all Affiche toutes les zones et les règles actives, y compris les ports ouverts. Tester un port ouvert Après avoir ouvert un port, il est essentiel de vérifier qu’il est bien accessible. Avec telnet telnet localhost port_number Une connexion réussie signifie que le port est ouvert et fonctionne correctement. Avec nmap nmap -p port_number localhost Permet de vérifier si le port spécifié est bien accessible sur la machine locale. Avec curl curl localhost:port_number Une réponse valide confirme que le service fonctionne sur le port ouvert. Résolution des problèmes courants Si l’ouverture d’un port échoue : Vérifiez les règles du pare-feu : iptables -L ufw status Vérifiez l’état du service : systemctl status <nom_du_service> Ouvrir des ports selon le protocole Selon le service, il peut être nécessaire d’utiliser TCP ou UDP. Ouvrir un port TCP Exemple : autoriser le trafic MySQL sur le port 3306 : sudo ufw allow 3306/tcp Ouvrir un port UDP Exemple : autoriser le trafic SNMP sur le port 161 : sudo ufw allow 161/udp Le protocole UDP offre une communication plus rapide et sans connexion, idéale pour les outils de supervision. Gérer l’accès aux ports Restreindre l’accès à une adresse IP spécifique sudo ufw allow from 192.168.1.100 to any port 22 Autorise l’accès SSH au port 22 uniquement depuis l’adresse IP spécifiée, renforçant ainsi la sécurité. Fermer un port sudo ufw deny 80/tcp Bloque le trafic entrant sur le port 80 (HTTP). Choose your server now! Conclusion Vérifier et ouvrir les ports sous Linux est une étape essentielle pour optimiser le fonctionnement réseau et assurer la sécurité des services. Avec des outils comme iptables, ufw et firewalld, il est possible de contrôler le trafic de manière précise et sécurisée. Testez toujours vos configurations avec nmap, curl ou telnet pour confirmer que les ports fonctionnent comme prévu. Une bonne gestion des ports garantit des serveurs stables, des connexions sécurisées et des performances fiables.
29 October 2025 · 6 min to read
Système Linux

Raccourcis clavier Linux: les meilleures combinaisons pour les utilisateurs

Les raccourcis clavier sous Linux sont un excellent moyen de travailler plus efficacement. Plutôt que d’utiliser la souris et de parcourir les menus, vous pouvez souvent appuyer sur quelques touches pour obtenir le même résultat, mais beaucoup plus rapidement. Les systèmes d’exploitation Linux prennent en charge une large gamme de raccourcis clavier (ou hotkeys). Il est important de noter que chaque distribution peut avoir ses propres combinaisons, qui ne fonctionnent pas forcément ailleurs. Cependant, il est possible d’ajouter de nouveaux raccourcis ou de modifier ceux existants dans les paramètres du système. Dans cet article, nous allons passer en revue les combinaisons universelles valables dans la plupart des environnements de bureau. La majorité des raccourcis présentés ici concernent le terminal Linux. Raccourcis de base sous Linux Commençons par les raccourcis les plus courants, utiles pour les tâches quotidiennes répétitives. Beaucoup d’entre eux utilisent la touche Super, qui correspond à la touche Windows sous Windows ou à la touche Cmd sur macOS. Par exemple, Super + Espace pour changer de disposition de clavier sous Linux équivaut à Windows + Espace ou Cmd + Espace. Combinaisons essentielles : Alt + Tab ou Super + Tab : Bascule entre les fenêtres ouvertes (comme sous Windows). Super + Espace : Change la disposition du clavier. Super + A : Ouvre le menu des applications (généralement en bas à gauche). F2 : Renomme un fichier sélectionné. Cliquez une fois sur le fichier, puis appuyez sur F2. Ctrl + Alt + T : Ouvre le terminal, l’un des raccourcis les plus utilisés sous Linux. Alt + F2 : Ouvre une fenêtre de commande au centre de l’écran pour exécuter une application. Super + D : Réduit toutes les fenêtres pour afficher le bureau. Ctrl + Alt + Suppr : Affiche une fenêtre proposant « Annuler » ou « Se déconnecter ». Si aucune option n’est choisie, la session se ferme automatiquement après 60 secondes. Ces combinaisons rendent le travail sous Linux plus fluide. Voyons maintenant les raccourcis les plus utiles pour le terminal. Raccourcis du terminal Linux Le terminal est l’outil principal pour interagir avec le shell Linux. Voici une liste de raccourcis qui facilitent son utilisation et améliorent la productivité. Gestion des fenêtres et onglets du terminal Ces raccourcis permettent d’ouvrir, de fermer ou de basculer entre plusieurs onglets rapidement : Ctrl + Maj + Q : Ferme complètement la fenêtre du terminal. Ctrl + Maj + T : Ouvre un nouvel onglet dans le terminal. Ctrl + Maj + W : Ferme l’onglet actif (ou la fenêtre s’il n’y a qu’un onglet). Ctrl + Maj + D : Détache l’onglet actuel dans une nouvelle fenêtre. Ctrl + Page ↑ / Page ↓ : Passe à l’onglet précédent ou suivant. Déplacement du curseur dans une ligne Comme les utilisateurs Linux utilisent principalement le clavier, ces raccourcis permettent de naviguer dans les commandes sans souris : Ctrl + A (ou Origine) : Va au début de la ligne. Ctrl + E (ou Fin) : Va à la fin de la ligne. Ctrl + X, X : Revient rapidement au début de la ligne, puis à la position d’origine. Ctrl + → / ← ou Alt + F / B : Déplace le curseur d’un mot vers l’avant ou l’arrière. Saisie et édition Outre la navigation, ces raccourcis accélèrent la saisie et la correction des commandes: Tab : L’un des raccourcis les plus importants, il complète automatiquement les commandes et chemins. Une pression complète la commande ; deux pressions affichent les suggestions disponibles. Ctrl + T : Inverse les deux derniers caractères avant le curseur. Alt + T : Inverse les deux derniers mots avant le curseur. Alt + Retour arrière : Supprime le mot avant le curseur. Alt + D : Supprime tous les caractères après le curseur jusqu’au prochain espace. Alt + U / Alt + L : Convertit le texte à droite du curseur en majuscules ou en minuscules. Opérations avec le presse-papiers Ces raccourcis gèrent la copie, la suppression et le collage dans le terminal : Ctrl + W : Supprime le mot avant le curseur. Ctrl + U : Supprime tout le texte entre le curseur et le début de la ligne. Ctrl + K : Supprime tout le texte entre le curseur et la fin de la ligne. Ctrl + Y : Colle le dernier texte supprimé. Navigation dans l’historique des commandes Ces raccourcis facilitent l’accès aux commandes précédemment utilisées. Pour afficher tout l’historique des commandes, tapez : history Autres raccourcis utiles : Ctrl + R : Recherche une commande déjà utilisée.Appuyez sur Entrée pour l’exécuter ou sur Échap pour quitter. Ctrl + O : Exécute la commande trouvée. Alt + < : Reprend la première commande de l’historique. Gestion de l’affichage et des processus Ces raccourcis contrôlent la sortie du terminal et les processus en cours d’exécution : Ctrl + C : Interrompt immédiatement le processus actif (signal SIGINT). Ctrl + D : Ferme le terminal (équivalent de la commande exit). Ctrl + Z : Met le processus actif en pause et l’envoie en arrière-plan.Utilisez fg pour le ramener au premier plan, ou jobs pour afficher la liste. Ctrl + L : Efface l’écran du terminal (équivalent à clear). Ctrl + S / Ctrl + Q : Met la sortie en pause (S) et la reprend (Q).Pratique pour analyser ou copier une sortie en cours. Ajouter et modifier des raccourcis clavier Selon la distribution, certains raccourcis peuvent ne pas fonctionner ou être absents. La plupart des environnements Linux permettent de les personnaliser facilement. Étapes : Appuyez sur Super + A pour ouvrir le menu des applications. Recherchez et ouvrez Paramètres. Accédez à Périphériques → Clavier. À droite, s’affiche la liste des raccourcis par défaut. Cliquez sur une commande pour la modifier ou attribuer une nouvelle combinaison. Pour ajouter un raccourci personnalisé, cliquez sur le symbole “+” en bas. Saisissez le nom, la commande à exécuter et la combinaison de touches souhaitée. Conclusion Cet article a présenté les raccourcis clavier essentiels de Linux qui simplifient et accélèrent le travail quotidien. Il ne s’agit pas d’une liste exhaustive — chaque distribution possède ses propres combinaisons supplémentaires. Maîtriser ces raccourcis rendra votre utilisation de Linux plus fluide, productive et agréable, notamment dans le terminal.
28 October 2025 · 6 min to read
Système Linux

Qu’est-ce qu’un daemon en informatique ?

Le terme daemon vient de la mythologie grecque ancienne, où il désignait un être immatériel influençant le monde des humains. En informatique, notamment dans les systèmes d’exploitation de type UNIX, un daemon est un processus d’arrière-plan qui s’exécute sans interaction directe de l’utilisateur. Il ne dépend pas d’un terminal ou d’une interface utilisateur et démarre généralement avec le système ou dans des conditions spécifiques. Qu’est-ce qu’un daemon La fonction principale d’un daemon est de fournir des services spécifiques à d’autres processus ou utilisateurs. Par exemple, un daemon peut écouter sur des ports réseau en attente de connexions, surveiller les événements du système et réagir lorsque certaines conditions sont remplies, gérer les tâches planifiées (comme cron), envoyer des e-mails (sendmail), et bien plus encore. Sous Windows, l’équivalent le plus proche d’un daemon est un service (Service). La différence réside principalement dans la façon dont ils sont démarrés, enregistrés, gérés et configurés au sein du système d’exploitation. Leur but reste identique : assurer le fonctionnement continu de certaines fonctions ou services en arrière-plan. Caractéristiques clés d’un daemon Fonctionne en arrière-plan : les utilisateurs ne voient généralement pas l’interface du daemon ; il n’écrit pas sur la sortie standard (ou la redirige vers les journaux) et ne demande aucune entrée clavier. Autonome : un daemon démarre soit au démarrage du système, lorsqu’il est déclenché par un système d’initialisation (comme systemd), soit manuellement par un utilisateur (via des scripts, cron, etc.). Longue durée de vie : idéalement, un daemon s’exécute indéfiniment, sauf en cas d’erreur critique ou s’il reçoit un signal d’arrêt explicite. Isolé : s’exécute généralement sous un compte utilisateur ou groupe séparé afin de minimiser les privilèges, ce qui renforce la sécurité et facilite la gestion. Journalisation : au lieu d’utiliser les entrées/sorties standards, les daemons enregistrent les informations dans des fichiers journaux ou via le journal du système (journald, syslog, etc.), utile pour le débogage et le diagnostic. Les daemons sous Linux Historiquement, presque toutes les tâches système d’arrière-plan sous Linux sont implémentées en tant que daemons. Le système d’exploitation en comprend des dizaines, chacun responsable d’une fonction spécifique. Voici quelques exemples : sshd (Secure Shell Daemon) : écoute sur le port 22 (par défaut) et permet aux utilisateurs distants de se connecter via SSH chiffré. Sans sshd, l’accès distant au terminal est pratiquement impossible. cron : un daemon planificateur de tâches. Il vérifie les entrées du crontab et exécute des scripts ou des commandes selon un horaire défini, comme le nettoyage des journaux, l’envoi de rapports, les vérifications système, etc. syslogd / rsyslog / journald : daemons de journalisation système qui collectent les messages du noyau, des utilitaires, d’autres daemons et applications, puis les enregistrent dans des fichiers journaux ou dans le journal du système. NetworkManager or Wicd : daemons qui gèrent la configuration réseau — automatisant les connexions aux réseaux filaires/sans fil, la commutation, la configuration VPN, et plus encore. Ces daemons démarrent au démarrage du système et sont enregistrés dans le gestionnaire de services (par ex. systemd). Ils fonctionnent jusqu’à l’arrêt ou le redémarrage du système. Les utilisateurs interagissent avec eux indirectement — via des fichiers de configuration, des commandes de terminal (service, systemctl) ou des requêtes réseau (si le daemon fournit une interface HTTP/S, SSH ou autre). Comment créer et gérer des daemons Pour implémenter un daemon, suivez ces étapes : Créer un processus (fork) : le processus parent appelle fork() et continue l’exécution du code du daemon dans le processus enfant. Se détacher du terminal de contrôle (setsid) : pour éviter toute interférence de l’utilisateur (fermeture du terminal, par exemple), le daemon appelle setsid() pour démarrer une nouvelle session et en devenir le leader. Fermer les descripteurs d’entrée/sortie standards : comme le daemon ne doit ni écrire à l’écran ni attendre d’entrée, stdin, stdout et stderr sont fermés ou redirigés vers des fichiers journaux. Gérer les signaux et la journalisation : pour permettre un arrêt propre ou un rechargement de configuration, le daemon doit gérer les signaux (SIGTERM, SIGHUP, etc.). La journalisation se fait généralement via syslog ou des fichiers. Boucle principale : après l’initialisation, le daemon entre dans sa boucle principale : attendre les événements, les traiter et recommencer jusqu’à son arrêt. Voyons comment créer un daemon sous Ubuntu 22.04 à l’aide d’un serveur cloud Hostman. 1. Écrire le daemon en C Créez un fichier nommé mydaemon.c et insérez le code suivant : #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <syslog.h> int main() { // Ouvrir syslog     openlog("mydaemon", LOG_PID, LOG_DAEMON); syslog(LOG_NOTICE, "Daemon started"); // Boucle infinie principale     while (1) { // Tâches d’arrière-plan : surveillance, gestion de files, etc. syslog(LOG_NOTICE, "Performing task..."); sleep(60); } // Si la boucle est quittée     syslog(LOG_NOTICE, "Daemon stopped"); closelog(); return 0; } 2. Compiler le programme Mettez d’abord à jour vos paquets : sudo apt update && sudo apt upgrade Installez le compilateur GCC s’il n’est pas déjà présent : sudo apt install gcc Compilez le daemon : gcc mydaemon.c -o mydaemon 3. Déplacer l’exécutable Déplacez le binaire vers /usr/local/bin/, un emplacement standard pour les utilitaires personnalisés : mv mydaemon /usr/local/bin/mydaemon 4. Créer un service systemd Créez un fichier d’unité nommé mydaemon.service : sudo nano /etc/systemd/system/mydaemon.service Insérez le contenu suivant : [Unit] Description=My Daemon After=network.target [Service] Type=simple ExecStart=/usr/local/bin/mydaemon Restart=on-failure [Install] WantedBy=multi-user.target Explication des champs : Description : description affichée dans systemctl status. After=network.target : garantit que le daemon démarre après la mise en réseau. Type=simple : le daemon ne crée pas de sous-processus, il s’exécute comme un seul processus. ExecStart : chemin vers l’exécutable du daemon. Restart=on-failure : redémarre automatiquement si le daemon échoue. WantedBy=multi-user.target : lance le service dans l’environnement multi-utilisateurs standard. 5. Démarrer et surveiller le daemon sudo systemctl daemon-reload # Recharger la configuration systemd sudo systemctl start mydaemon # Démarrer le daemon sudo systemctl status mydaemon # Vérifier son état Si tout fonctionne, l’état affichera active. Pour consulter les journaux : journalctl -u mydaemon.service -e Exemples d’utilisation de daemons Serveurs web Leur rôle est d’écouter sur un port réseau (généralement 80 ou 443), d’accepter les requêtes HTTP/HTTPS, de générer une réponse (page HTML, données JSON, etc.) et de la renvoyer au client. Dans la plupart des cas, un serveur web démarre avec le système et reste actif jusqu’à son arrêt manuel (ex. systemctl stop nginx). Daemons de bases de données MySQL/MariaDB, PostgreSQL, MongoDB — tous sont des daemons. Ils démarrent avec le système et s’exécutent en arrière-plan, acceptant les requêtes d’applications clientes ou de services web. Ces daemons enregistrent leurs activités, acceptent la configuration via des fichiers et sont gérés avec des utilitaires dédiés (ou systemd). Planificateurs de tâches (cron, atd) Le daemon cron vérifie la table de planification (crontab) et exécute des programmes aux moments ou intervalles spécifiés par l’utilisateur. Cela permet d’automatiser les sauvegardes, les mises à jour du système, les vérifications de santé et bien d’autres tâches routinières. atd est un daemon similaire, mais exécute les tâches une seule fois à un moment précis (contrairement à cron, qui les exécute régulièrement). Access and Control Services (sshd, xrdp) sshd (Secure Shell Daemon) offre un accès distant via le protocole SSH. xrdp permet les connexions de bureau à distance via le protocole RDP. Il agit comme un daemon écoutant les connexions réseau sur un port défini. Init System Daemons (systemd, init, Upstart) Dans les systèmes modernes, le rôle du « daemon principal » est rempli par systemd (remplaçant l’ancien système SysV init). systemd est le premier processus lancé après le noyau et gère le démarrage et le contrôle de tous les autres services et processus. Il les lance en parallèle et gère leurs dépendances. En résumé, systemd est lui-même un daemon qui « orchestre » tous les autres dans le système. Avantages et inconvénients des daemons Avantages : Automatisation : les daemons permettent d’automatiser le comportement du système — de la réponse aux requêtes réseau à la planification de tâches — sans intervention humaine. Isolement : s’exécutant sous des comptes utilisateur/groupe séparés et détachés du terminal, ils renforcent la sécurité en limitant les dégâts potentiels en cas de compromission. Fonctionnement continu : un daemon peut continuer à fournir des services (comme un serveur web) sans interruption, même si l’utilisateur se déconnecte ou ferme la console. Gestion centralisée : Linux offre des outils système (ex. systemd, scripts init) pour gérer tous les daemons : démarrage, arrêt, redémarrage et journalisation. Inconvénients : Complexité du débogage : les daemons fonctionnant en arrière-plan et n’affichant rien à la console, le débogage nécessite une journalisation complète et des configurations complexes (options de debug, traçage, etc.). Risques de sécurité : si un daemon s’exécute avec des privilèges élevés (par ex. root), toute vulnérabilité peut compromettre l’ensemble du système. Il est recommandé de les exécuter avec des comptes à privilèges limités. Gestion des dépendances : certains daemons peuvent échouer s’ils ont besoin d’un accès réseau avant que celui-ci ne soit disponible. Les systèmes init modernes corrigent ce problème, mais les anciens scripts SysV init en souffraient fréquemment. Consommation de ressources : tout processus permanent consomme des ressources système (mémoire, CPU). Trop de daemons peuvent affecter les performances, surtout sur des systèmes limités. Conclusion Les daemons sont essentiels à l’architecture des systèmes d’exploitation Linux, offrant de vastes possibilités d’automatisation et de services en arrière-plan. Ils permettent aux administrateurs de configurer de manière flexible les opérations réseau, les tâches planifiées, la journalisation, la sécurité et bien plus encore. Écrire son propre daemon nécessite de comprendre les processus, les signaux, les appels système et d’accorder une attention particulière à la journalisation et à la sécurité. Les systèmes init modernes (notamment systemd) ont simplifié la gestion des daemons et la logique des services, rendant la création de services personnalisés plus structurée et flexible. Toutefois, cela reste un domaine complexe demandant conception soignée, débogage et maintenance continue. Si vous recherchez une solution fiable, performante et économique pour vos flux de travail, Hostman propose des options d’hébergement VPS Linux, notamment Debian VPS, Ubuntu VPS et VPS CentOS.
23 October 2025 · 11 min to read

Avez-vous des questions,
des commentaires ou
des préoccupations ?

Nos professionnels sont disponibles pour vous aider à tout moment,
que vous ayez besoin d'aide ou que vous ne sachiez pas par où commencer.
Envoyez-nous un e-mail
Hostman's Support