Doknet

Site perso d'un administrateur systèmes & réseaux

Tester la charge de WordPress avec Locust

Introduction

Les tests de charge constituent une étape cruciale dans le cycle de développement et de déploiement d’un site WordPress. L’objectif principal est d’identifier le meilleur compromis en termes de ressources serveur selon les spécificités du projet web. Une infrastructure surdimensionnée entraîne des coûts inutiles, tandis qu’une infrastructure sous-dimensionnée risque de compromettre l’expérience utilisateur lors des pics de trafic. En simulant des centaines, voire des milliers de connexions simultanées, nous pouvons déterminer précisément les limites de notre configuration et l’optimiser en conséquence avant la mise en production.

Environnement de test avec Proxmox et TurnKey WordPress

Une approche efficace pour mettre en place un environnement de test consiste à utiliser Proxmox VE avec un container LXC basé sur le template TurnKey WordPress.

TurnKey Linux : des solutions prêtes à l’emploi

Les templates TurnKey sont des images préconfigurées basées sur Debian qui fournissent des applications prêtes à l’emploi. Ces templates offrent :

  • Une installation complète et optimisée de l’application (dans ce cas, WordPress)
  • Une configuration sécurisée par défaut
  • Des outils d’administration intégrés
  • Une maintenance simplifiée via des mises à jour automatiques

Le template TurnKey WordPress inclut non seulement WordPress mais aussi le serveur web, PHP, MySQL et toutes les dépendances nécessaires correctement configurées.

Déploiement rapide avec Proxmox

Pour créer un environnement de test WordPress :

  1. Dans l’interface Proxmox, créez un nouveau container LXC
  2. Sélectionnez le template TurnKey WordPress dans la liste des templates disponibles
  3. Configurez les ressources (CPU, RAM, stockage) selon vos besoins de test
  4. Définissez les paramètres réseau et démarrez le container
  5. Accédez à l’interface d’administration pour finaliser la configuration

Cette approche permet de déployer rapidement plusieurs instances WordPress isolées avec différentes configurations de ressources, idéal pour comparer les performances sous charge.

Locust : un outil puissant pour les tests de charge

Locust est un outil open-source écrit en Python qui permet de simuler facilement des utilisateurs virtuels visitant un site web. Sa simplicité d’utilisation et sa flexibilité en font un excellent choix pour tester les performances d’une installation WordPress.

Installation et configuration

Pour mettre en place un test de charge avec Locust :

  1. Installez Locust : Sur les systèmes Debian/Ubuntu : sudo apt install python3-locust Ou via pip si vous préférez cette méthode : pip install locust
  2. Créez un fichier de script nommé locustfile.py dans un dossier dédié à vos tests :
from locust import HttpUser, task, between
import logging

# Désactiver les avertissements SSL
import urllib3
urllib3.disable_warnings()

class WordPressUser(HttpUser):
    wait_time = between(1, 3)  # Temps d'attente entre les requêtes
    
    # Désactiver la vérification SSL pour les environnements de test
    connection_timeout = 30.0
    network_timeout = 30.0
    
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.client.verify = False  # Ignorer la vérification des certificats SSL
    
    @task(5)
    def page_index(self):
        # Simuler un accès à la page d'accueil
        with self.client.get("/", catch_response=True) as response:
            if response.status_code != 200:
                logging.error(f"Échec d'accès à la page d'accueil: {response.status_code}")
                response.failure("Échec d'accès à la page d'accueil")
    
    @task(3)
    def page_articles(self):
        # Simuler un accès aux articles/posts
        with self.client.get("/index.php/category/non-classe/", catch_response=True) as response:
            if response.status_code != 200:
                response.failure("Échec d'accès à la page des articles")
    
    @task(2)
    def page_about(self):
        # Simuler un accès à la page À propos
        with self.client.get("/index.php/about/", catch_response=True) as response:
            if response.status_code != 200:
                response.failure("Échec d'accès à la page À propos")
        
    @task(1)
    def recherche(self):
        # Simuler une recherche sur le site
        with self.client.get("/index.php?s=test", catch_response=True) as response:
            if response.status_code != 200:
                response.failure("Échec d'accès à la recherche")
                
    @task(1)
    def wp_admin(self):
        # Tenter d'accéder à l'interface d'administration
        with self.client.get("/wp-admin/", catch_response=True) as response:
            # Code 302 est acceptable car redirection vers la page de login
            if response.status_code not in [200, 302]:
                response.failure("Échec d'accès à wp-admin")
  1. Exécutez Locust depuis le répertoire contenant votre fichier : locust
  2. Accédez à l’interface web de Locust à l’adresse http://localhost:8089 et configurez votre test :
    • Host : L’URL de votre site WordPress (ex : http://192.168.0.21)
    • Number of users : Le nombre d’utilisateurs à simuler
    • Spawn rate : Le taux d’augmentation des utilisateurs par seconde
Il suffit d’entrer le nombre d’utilisateurs fictifs qui enverront des requêtes et d’envoyer la nuée !

Métriques clés à surveiller

Lors de l’exécution des tests de charge sur votre infrastructure WordPress, plusieurs métriques sont particulièrement pertinentes :

RPS (Requests Per Second)

Le RPS est l’indicateur principal de performance, représentant le nombre de requêtes que votre site peut traiter chaque seconde. Cette métrique est essentielle pour évaluer la capacité de votre infrastructure :

  • Un RPS stable indique une bonne gestion de la charge
  • Une chute du RPS lorsque le nombre d’utilisateurs augmente signale que votre infrastructure atteint ses limites
  • Pour un site WordPress standard, un RPS de quelques dizaines à quelques centaines peut être considéré comme acceptable, selon la complexité du site
Un exemple du rendu du tableau de bord de Locust

Temps de réponse

Le temps de réponse moyen, médian et percentile (généralement P95 ou P99) vous indique la rapidité avec laquelle votre serveur répond aux requêtes. Un temps de réponse qui augmente sensiblement avec la charge indique des problèmes potentiels.

Taux d’erreur

Le pourcentage de requêtes ayant échoué est crucial pour identifier les points de défaillance. Un taux d’erreur élevé pendant un test de charge peut révéler des problèmes de configuration du serveur, des timeouts de base de données ou des limitations de ressources.

Le CPU en PLS 😀

Optimisation de l’infrastructure WordPress

Suite aux tests de charge, plusieurs optimisations peuvent être envisagées selon les résultats obtenus :

  1. Mise en cache : Implémentez une solution de cache comme WP Super Cache, W3 Total Cache ou Redis
  2. CDN : Déchargez les assets statiques (images, CSS, JS) vers un CDN
  3. Configuration serveur : Ajustez les paramètres PHP (memory_limit, max_execution_time) et du serveur web
  4. Base de données : Optimisez les requêtes SQL et envisagez la mise en cache des requêtes
  5. Ressources serveur : Augmentez la RAM, le CPU ou migrez vers un serveur plus puissant si nécessaire

Conclusion

Les tests de charge avec Locust vous permettent d’identifier précisément les limites de votre infrastructure WordPress et d’anticiper les problèmes potentiels avant qu’ils n’affectent les utilisateurs réels.

En comprenant comment votre site se comporte sous différents niveaux de trafic, vous pouvez prendre des décisions éclairées concernant les ressources serveur nécessaires et les optimisations à mettre en place.

Cette approche proactive garantit non seulement une meilleure expérience utilisateur, mais permet également d’éviter les coûts inutiles liés à un surdimensionnement de l’infrastructure. Pour tout projet WordPress d’envergure, les tests de charge devraient faire partie intégrante du processus de développement et de déploiement.

Alternative gratuite à Cpanel : aaPanel

La gestion de multiples serveurs clients peut rapidement se transformer en casse-tête pour une agence web. Entre les configurations serveur, l’installation des CMS, la gestion des bases de données et la maintenance régulière, les heures s’accumulent et la complexité technique peut vite devenir écrasante. Si vous vous retrouvez à jongler entre différentes interfaces d’administration ou à taper frénétiquement des commandes SSH pour chaque client, il est peut-être temps de simplifier votre flux de travail. C’est exactement ce que propose aaPanel, une solution qui gagne en popularité auprès des professionnels du web. Dans cet article, nous allons explorer pourquoi cet outil pourrait bien devenir l’allié incontournable de votre agence web.

Qu’est-ce qu’aaPanel ?

aaPanel est un panneau de contrôle open-source conçu spécifiquement pour les serveurs Linux. Né en Chine et initialement développé sous le nom de « BT Panel », il s’est rapidement imposé comme une alternative sérieuse aux solutions commerciales traditionnelles. Sa philosophie est simple : offrir une interface graphique intuitive pour gérer l’ensemble des aspects d’un serveur web, sans nécessiter de compétences avancées en ligne de commande.

Avec son interface claire et minimaliste, aaPanel permet de visualiser et contrôler tous les aspects essentiels de vos serveurs depuis un tableau de bord unifié. La solution a connu une adoption croissante à l’international ces dernières années, notamment grâce à sa traduction en anglais et à sa communauté active. Ce qui distingue particulièrement aaPanel, c’est sa capacité à transformer des tâches qui prendraient normalement des heures en opérations réalisables en quelques clics. Et le meilleur dans tout ça ? C’est entièrement gratuit, même pour un usage professionnel.

Les fonctionnalités qui changent la donne

Ce qui fait la force d’aaPanel, c’est la richesse de ses fonctionnalités, toutes accessibles depuis une interface unifiée. Commençons par la gestion des sites web : créer un nouveau site pour un client devient aussi simple que de remplir un formulaire. Plus besoin de configurer manuellement les fichiers de configuration Apache ou Nginx, aaPanel s’en charge automatiquement. Vous pouvez définir les domaines, sous-domaines, dossiers racines et autres paramètres essentiels en quelques secondes.

L’administration des bases de données est tout aussi simplifiée. Vous pouvez créer, modifier et sauvegarder des bases de données MySQL ou MariaDB directement depuis le panneau. Un outil de gestion similaire à phpMyAdmin est intégré, vous évitant ainsi d’avoir à installer et configurer des outils supplémentaires. Besoin d’installer WordPress, Joomla ou PrestaShop pour un nouveau client ? aaPanel propose une installation en un clic pour la plupart des CMS populaires, pré-configurée avec les optimisations recommandées.

La gestion des certificats SSL, souvent source de maux de tête, devient également un jeu d’enfant. aaPanel s’intègre avec Let’s Encrypt pour offrir des certificats gratuits et automatiquement renouvelables. Un simple clic suffit pour sécuriser un site en HTTPS, sans les manipulations techniques habituellement requises. Et pour les agences soucieuses de la continuité de service, le système de sauvegarde automatisée permet de programmer des backups réguliers des sites et bases de données, avec options de restauration rapide en cas de problème.

Installation et prise en main

L’installation d’aaPanel est étonnamment simple, surtout pour un outil aussi puissant. Avant de commencer, assurez-vous que votre serveur répond aux prérequis minimaux : 512 Mo de mémoire et 10 Go d’espace disque, bien que des configurations plus généreuses soient recommandées pour un usage professionnel. Côté système d’exploitation, bien que plusieurs distributions Linux soient supportées, Ubuntu 22.04 est officiellement recommandé pour des performances et une compatibilité optimales.

Le processus d’installation se déroule en quelques étapes simples. Connectez-vous à votre serveur en SSH avec les droits root, puis exécutez la commande suivante :

URL=https://www.aapanel.com/script/install_7.0_en.sh && if [ -f /usr/bin/curl ];then curl -ksSO "$URL" ;else wget --no-check-certificate -O install_7.0_en.sh "$URL";fi;bash install_7.0_en.sh aapanel

Cette commande télécharge et lance le script d’installation automatiquement. Détendez-vous et prenez un café – le script va s’occuper de tout, depuis la configuration des dépendances jusqu’à l’installation des composants essentiels. Le processus prend généralement entre 5 et 15 minutes selon les performances de votre serveur et la qualité de votre connexion internet.

Une fois l’installation terminée, le terminal affichera les informations de connexion à votre nouveau panneau, sous cette forme :

=============================================================================
aaPanel default info!
=============================================================================
aaPanel Internet Address: https://YourServerIPaddress:port
aaPanel Internet Address: https://YourServerIPaddress:port
username: ********
password: ********
Warning:
If you cannot access the panel,
release the following port (26886|888|80|443|20|21) in the security group
=============================================================================

Notez soigneusement ces informations, particulièrement l’URL d’accès, le nom d’utilisateur et le mot de passe. Si vous perdez ces identifiants, vous devrez exécuter des commandes supplémentaires pour les récupérer. Un conseil, copiez ces informations dans un gestionnaire de mots de passe sécurisé.

Pour accéder à votre panneau, copiez simplement l’URL fournie dans votre navigateur. Lors de votre première connexion, vous serez accueilli par l’écran de login où vous pourrez saisir les identifiants générés automatiquement. N’oubliez pas de vérifier que les ports mentionnés (26886, 888, 80, 443, 20, 21) sont bien ouverts dans votre pare-feu ou groupe de sécurité si vous utilisez un hébergeur cloud. C’est souvent la source numéro un des problèmes d’accès après l’installation.

Une fois connecté, la configuration initiale vous guidera à travers quelques étapes essentielles : changement du mot de passe par défaut (fortement recommandé), choix de la pile web (LAMP ou LNMP), et installation des modules essentiels. Le tout est intuitif et ne prend que quelques minutes. Une bonne pratique de sécurité consiste à modifier également le port d’accès par défaut et à activer l’authentification à deux facteurs si disponible.

Cas d’usage pour une agence web

Pour une agence web, l’atout majeur d’aaPanel réside dans sa capacité à centraliser la gestion des sites clients. Imaginez pouvoir superviser l’ensemble de votre parc de sites depuis une seule interface : vérifier l’état des services, les performances, les certificats SSL, tout cela sans avoir à vous connecter individuellement à chaque serveur. Cette vision d’ensemble permet non seulement de gagner un temps précieux au quotidien, mais aussi d’anticiper les problèmes potentiels avant qu’ils n’affectent vos clients.

L’automatisation des tâches récurrentes constitue un autre avantage déterminant. Les sauvegardes quotidiennes, les mises à jour de sécurité, les vérifications d’intégrité des fichiers… Autant d’opérations essentielles mais chronophages qu’aaPanel peut programmer et exécuter sans intervention humaine. Pour une équipe technique souvent sollicitée sur des projets à plus forte valeur ajoutée, cette automatisation représente un gain de productivité considérable. Sans compter que la régularité des opérations de maintenance améliore la fiabilité globale de votre infrastructure.

La rapidité de déploiement de nouveaux projets est également transformée. Lorsqu’un nouveau client signe avec votre agence, vous pouvez configurer son environnement web complet en quelques minutes au lieu de plusieurs heures : création du site, de la base de données, installation du CMS, configuration des domaines et du SSL… Le tout sans risque d’erreur lié aux manipulations manuelles. Cette efficacité vous permet non seulement d’être plus réactif, mais aussi de standardiser vos déploiements selon les bonnes pratiques que vous aurez définies.

Limites et points d’attention

Malgré ses nombreux avantages, aaPanel n’est pas exempt de quelques limitations qu’il convient de connaître avant de se lancer. Certaines fonctionnalités avancées, particulièrement en matière de gestion des emails, restent moins développées que sur des solutions comme cPanel. Si votre activité implique la gestion intensive de serveurs mail, vous devrez peut-être compléter aaPanel avec des outils dédiés ou opter pour une solution alternative.

La question de la sécurité mérite également une attention particulière. Par défaut, aaPanel installe un ensemble de composants et de services qui, s’ils ne sont pas correctement configurés, peuvent élargir la surface d’attaque de vos serveurs. Il est fortement recommandé de prendre le temps de désactiver les services non utilisés, de configurer le pare-feu et de suivre les bonnes pratiques de sécurisation. Une des premières actions post-installation devrait être de modifier les chemins d’accès par défaut et de mettre en place des restrictions IP pour l’accès au panneau d’administration.

Du côté de la stabilité, la nature open-source du projet signifie que les mises à jour peuvent parfois introduire des changements importants ou des incompatibilités. Une bonne pratique consiste à toujours effectuer une sauvegarde complète avant d’appliquer des mises à jour majeures, et idéalement à tester ces mises à jour sur un environnement de staging avant de les déployer en production. La communauté est généralement réactive pour signaler et corriger les problèmes, mais un minimum de vigilance reste nécessaire

Conseils pour une adoption réussie

Pour les agences envisageant d’adopter aaPanel, une stratégie de migration progressive est souvent la plus sage. Commencez par migrer quelques sites non critiques ou des projets internes pour vous familiariser avec l’outil. Cette approche permet d’identifier les éventuels obstacles spécifiques à votre contexte et de développer des processus adaptés avant de déployer la solution à grande échelle.

La formation de l’équipe constitue un autre facteur clé de succès. Bien que l’interface soit intuitive, prévoyez des sessions de formation dédiées pour vous assurer que tous les membres de l’équipe technique comprennent les fonctionnalités et les bonnes pratiques. Créez une documentation interne reprenant les procédures spécifiques à votre agence : comment configurer un nouveau site client, comment effectuer les sauvegardes, quelles vérifications de sécurité effectuer régulièrement… Ce temps investi initialement sera largement rentabilisé par la suite.

Du côté client, il peut être judicieux de préparer une documentation simplifiée expliquant comment ils peuvent interagir avec leur site hébergé sur votre infrastructure aaPanel. Selon votre modèle commercial, vous pourriez même envisager de leur offrir un accès restreint au panneau pour certaines opérations basiques comme la consultation des statistiques ou la gestion de leurs emails. Cette transparence renforce généralement la confiance et valorise votre expertise technique.

En résumé…

aaPanel représente une option particulièrement intéressante pour les agences web souhaitant rationaliser leur gestion serveur sans investir dans des solutions propriétaires coûteuses. Sa simplicité d’utilisation, ses nombreuses fonctionnalités et son coût inexistant en font un candidat sérieux pour devenir l’épine dorsale de votre infrastructure technique.

Les économies réalisées ne se limitent pas au coût des licences : c’est surtout le gain de temps opérationnel qui constitue le principal avantage. Moins de temps passé à configurer des serveurs signifie plus de temps disponible pour créer de la valeur pour vos clients. Dans un secteur aussi concurrentiel que le web, cette efficacité opérationnelle peut faire toute la différence.

Si vous n’avez pas encore exploré cette solution, nous vous encourageons vivement à la tester sur un environnement de développement. Comme souvent avec les outils techniques, le meilleur moyen de se faire une opinion est d’expérimenter par soi-même. Et vous, utilisez-vous déjà aaPanel ou une solution similaire pour gérer vos serveurs clients ? Partagez votre expérience dans les commentaires – nous serions ravis d’échanger sur vos retours et bonnes pratiques !

Nouvelle rubrique : Exploration d’Umbrel OS

Nouvelle rubrique : Exploration d’Umbrel OS sur Doknet.fr

La souveraineté numérique et l’auto-hébergement sont des thématiques centrales sur Doknet.fr. Aujourd’hui, je suis ravi d’annoncer le lancement d’une nouvelle rubrique dédiée à l’exploration d’Umbrel OS, un système d’exploitation qui simplifie l’auto-hébergement et l’utilisation de services décentralisés.

Pourquoi une rubrique sur Umbrel OS ?

L’auto-hébergement devient de plus en plus accessible, notamment grâce à des solutions comme Umbrel. Ce système permet d’installer et de gérer facilement un nœud Bitcoin Core, mais aussi d’autres applications open source facilitant la reprise en main de ses données et services numériques.

Dans cette rubrique, nous verrons comment tirer pleinement parti d’Umbrel et de ses nombreuses possibilités. L’objectif est d’accompagner les utilisateurs souhaitant renforcer leur indépendance numérique sans se perdre dans une configuration complexe.

Ce que vous trouverez dans cette nouvelle section

Je publierai régulièrement des tutoriels et des articles pour explorer Umbrel OS et ses applications. Voici quelques thématiques à venir :

  • Installation et configuration d’Umbrel sur un appareil compatible
  • Mise en place et gestion d’un nœud Bitcoin Core pour contribuer au réseau en toute autonomie
  • Présentation des applications disponibles sur Umbrel et leurs usages (cloud personnel, messagerie chiffrée, services décentralisés…)
  • Sécurité et confidentialité, pour garantir une utilisation optimale d’Umbrel

Si vous êtes intéressé par l’auto-hébergement et la souveraineté numérique, cette rubrique est faite pour vous ! N’hésitez pas à partager vos retours et vos suggestions dans les commentaires ou sur nos réseaux sociaux.

À très bientôt pour le premier tutoriel sur Umbrel OS !

Résoudre des problèmes de freezing sous Debian

Pour ceux qui comme moi aiment bien bosser sur des vieux coucous retapés, on peut parfois se retrouver, sans l’avoir anticiper, sur une interface qui ralentit – qui rame – à mort. La solution radicale : un reboot.

Oui sauf que moi, le reboot de la machine pendant que je travaille, ça ne me va pas tout le temps ! Je vous propose quelques solutions pour sortir de la galère :

Lorsque votre ordinateur sous Debian gèle à cause d’une saturation mémoire, voici les étapes pour tenter de reprendre la main :

1. Accéder à une console virtuelle

  • Utilisez les touches Ctrl + Alt + F1 (ou F2 à F6) pour accéder à une console virtuelle (TTY). Cela devrait vous permettre de vous connecter avec votre compte utilisateur ou en tant que root.

2. Identifier et tuer les processus gourmands

  • Une fois connecté, utilisez la commande suivante pour voir quels processus consomment le plus de mémoire : top Ou, pour un affichage plus clair : htop (Si htop n’est pas installé, utilisez apt install htop plus tard.)
  • Recherchez les processus qui consomment énormément de mémoire (colonne %MEM). Notez leur PID (identifiant de processus) et utilisez : kill -9 PID Remplacez PID par l’identifiant du processus.

3. Libérer la mémoire cache

  • Si le système est encore réactif, vous pouvez tenter de libérer de la mémoire cache avec cette commande (en root) : echo 3 > /proc/sys/vm/drop_caches

4. Tuer tous les processus utilisateur (si nécessaire)

  • Si vous êtes root, vous pouvez tuer tous les processus utilisateur (sauf root) : pkill -u username Remplacez username par votre nom d’utilisateur.

5. Redémarrer le gestionnaire graphique

  • Si votre système utilise un environnement graphique et que celui-ci est gelé, redémarrez-le avec : systemctl restart gdm3 # Pour GNOME systemctl restart sddm # Pour KDE systemctl restart lightdm # Pour d'autres environnements

6. Dernier recours : redémarrer les processus liés à l’interface graphique

Si aucune de ces solutions ne fonctionne, vous pouvez tenter cette astuce (qui fonctionne souvent du 1er coup)

Maintenez Alt + SysRq (la touche « Print Screen ») + K ; votre session devrait redémarrer en tuant tous les process. Radical mais efficace.

Prévention pour l’avenir

  • Augmenter le swap : Si votre swap est insuffisant, augmentez-le en suivant ces instructions.
  • Surveiller la mémoire : Configurez des outils comme earlyoom ou systemd-oomd pour tuer automatiquement les processus en cas de saturation.

Rust pour admin sys : création d’un (petit) script de monitoring système

Cela fait un moment que j’ai envie d’apprendre un langage autre que le traditionnel Python, et après quelques recherches je me suis tourné vers Rust. Langage réputé pour sa sécurité et sa performance, il n’existe pas encore des masses de ressources à ce sujet, c’est pourquoi l’autoformation est essentielle. Pour faire mes premiers pas, je me suis penché sur la création d’un script utile pour tout sys admin ou devops qui se respecte : un moniteur système.

Comme c’est une première approche, ce script se veut simple et se contente de surveiller l’utilisation du CPU, de la mémoire, de l’espace disque, et de lister les interfaces réseau actives.

NB : ceci n’explique pas comment fonctionne les bases de Rust, je vous invite à lire cet article pour en comprendre les fondamentaux. Néanmoins si vous avez déjà un peu codé vous verrez qu’il y a quelques similitudes avec d’autres langages plus connus (bon, Rust a l’air un peu plus psycho-rigide, mais il a une réputation à tenir !)


Prérequis

Avant de commencer, assurez-vous d’avoir les éléments suivants :

  1. Rust installé : Installez Rust via rustup.
  2. Un éditeur de texte : Comme VS Code ou celui dont vous avez l’habitude
  3. Connaissances de base en Rust : Variables, structures, boucles et fonctions.

1. Initialisation du projet

Créez un nouveau projet Rust :

cargo new system_monitor
cd system_monitor


2. Ajouter les dépendances

Modifiez le fichier Cargo.toml pour inclure les crates (ou modules) suivantes :

[dependencies]
sysinfo = "0.29"
pnet = { version = "0.31.0", features = ["std"] }


Ces crates fournissent des outils pour surveiller les ressources système et lister les interfaces réseau.

Ensuite, mettez à jour les dépendances :

cargo update


3. Fonctionnalité 1 : Surveillance du CPU

Code

Ajoutez le code suivant dans le fichier src/main.rs pour surveiller l’utilisation du CPU :

use sysinfo::{System, SystemExt, CpuExt};
use std::thread::sleep;
use std::time::Duration;

fn main() {
let mut system = System::new_all();

// Rafraîchir les données système
system.refresh_all();

// Ajouter un délai pour permettre la collecte des données CPU
sleep(Duration::from_secs(1));

// Rafraîchir les données CPU après le délai
system.refresh_cpu();

// Afficher l'utilisation du CPU
println!("=== Utilisation du CPU ===");
println!("Nombre total de CPU : {}", system.cpus().len());
for (i, cpu) in system.cpus().iter().enumerate() {
println!("Processeur {}: {}%", i + 1, cpu.cpu_usage());
}
}


Explications

  • System::new_all() : Initialise un objet pour collecter les informations du système.
  • system.refresh_all() : Rafraîchit toutes les données système disponibles.
  • system.refresh_cpu() : Actualise spécifiquement les données CPU.
  • Boucle for : Itère sur tous les processeurs pour afficher leur utilisation.

Compilez et exécutez le script pour tester cette première fonctionnalité :

cargo run


4. Fonctionnalité 2 : Surveillance de la mémoire

Code

Ajoutez ce bloc au script pour afficher l’utilisation de la mémoire :

    // Surveiller la mémoire
println!("\n=== Utilisation de la Mémoire ===");
println!(
"Mémoire utilisée : {} MB / {} MB",
system.used_memory() / 1024,
system.total_memory() / 1024
);


Explication

  • system.used_memory() : Retourne la mémoire utilisée en kilooctets.
  • system.total_memory() : Retourne la mémoire totale en kilooctets.
  • Division par 1024 : Convertit les valeurs en mégaoctets (MB).

Relancez le script pour voir les informations sur la mémoire :

cargo run


5. Fonctionnalité 3 : Surveillance des disques

Code

Ajoutez ce bloc au script pour surveiller l’espace disque :

    // Surveiller l'espace disque
println!("\n=== Espace Disque ===");
for disk in system.disks() {
println!(
"Nom : {} | Espace libre : {} GB | Total : {} GB",
disk.name().to_string_lossy(),
disk.available_space() / 1_073_741_824,
disk.total_space() / 1_073_741_824
);
}


Explication

  • system.disks() : Retourne une liste de tous les disques disponibles.
  • disk.available_space() et disk.total_space() : Affichent l’espace libre et total en octets.
  • Division par 1_073_741_824 : Convertit les octets en gigaoctets (GB).

Testez cette nouvelle fonctionnalité avec :

cargo run


6. Fonctionnalité 4 : Liste des interfaces réseau

Code

Ajoutez ce bloc au script pour afficher les interfaces réseau et leurs adresses IP :

use pnet::datalink;

// Lister les interfaces réseau
println!("\n=== Interfaces Réseau ===");
for iface in datalink::interfaces() {
println!("Interface : {}", iface.name);

for ip in iface.ips {
println!(" Adresse IP : {}", ip);
}
}


Explication

  • datalink::interfaces() : Retourne une liste des interfaces réseau disponibles.
  • iface.ips : Contient les adresses IP associées à chaque interface.

Testez cette fonctionnalité pour vérifier les interfaces réseau :

cargo run


Et voilà ! Vous avez conçu un script de surveillance en Rust en ajoutant une fonctionnalité à la fois. Chaque étape vous a permis d’apprendre à utiliser les crates sysinfo et pnet pour collecter des informations système et réseau.

Si le temps me le permet je proposerai quelques petits projets complets dans la rubrique « projets » du site sur l’utilisation de Rust pour les devops et administrateurs systèmes !

Comment chercher et nettoyer son disque dur sous Linux Debian

Tutoriel : Comment chercher et nettoyer son disque dur sous Linux Debian

Maintenir un disque dur propre et bien organisé est essentiel pour optimiser les performances de votre système. Ce guide présente différentes méthodes pour rechercher et nettoyer les fichiers inutiles ou encombrants sous Linux Debian.


1. Analyser l’utilisation du disque

Avant de nettoyer, il est important d’identifier les fichiers et répertoires qui occupent le plus d’espace.

a) Vérifier l’espace disque global

Utilisez la commande df pour afficher l’espace utilisé et disponible :

df -h
  • -h : Affiche les tailles en format lisible par l’humain (Ko, Mo, Go).

b) Analyser l’espace utilisé par les répertoires

Utilisez du pour analyser les répertoires :

sudo du -h --max-depth=1 /
  • Cela liste la taille des sous-dossiers de la racine.
  • Remplacez / par un répertoire spécifique pour une analyse ciblée, par exemple /home : sudo du -h --max-depth=1 /home

c) Visualiser avec un outil interactif

Installez et utilisez ncdu, un outil interactif pour explorer les répertoires :

sudo apt install ncdu
sudo ncdu /
  • Naviguez facilement pour identifier les dossiers gourmands en espace.

2. Rechercher les fichiers volumineux

Les fichiers volumineux inutilisés peuvent rapidement encombrer votre disque.

a) Trouver les fichiers de plus de 100 Mo :

sudo find / -type f -size +100M
  • -type f : Recherche uniquement des fichiers.
  • -size +100M : Trouve les fichiers supérieurs à 100 Mo.
  • Remplacez / par un répertoire spécifique pour limiter la recherche.

b) Afficher les fichiers récents (créés ou modifiés) :

Pour trouver les fichiers récents modifiés au cours des derniers jours :

find / -type f -mtime -7
  • -mtime -7 : Trouve les fichiers modifiés au cours des 7 derniers jours.

3. Nettoyer les fichiers temporaires

Les fichiers temporaires s’accumulent souvent sans être supprimés.

a) Supprimer les fichiers dans /tmp :

sudo rm -rf /tmp/*

b) Nettoyer le cache utilisateur :

Supprimez les caches inutilisés dans le répertoire utilisateur :

rm -rf ~/.cache/*

c) Nettoyer le cache APT (gestionnaire de paquets) :

sudo apt clean
sudo apt autoclean
  • clean : Supprime tous les fichiers des archives de paquets téléchargés.
  • autoclean : Supprime les fichiers de cache obsolètes.

4. Supprimer les journaux système

Les journaux système peuvent rapidement occuper beaucoup d’espace.

a) Lister la taille des journaux :

sudo du -h /var/log

b) Nettoyer les journaux anciens ou inutiles :

Supprimez les fichiers journaux inutiles :

sudo rm -rf /var/log/*.old

c) Réduire la taille des journaux :

Utilisez journalctl pour limiter leur taille :

sudo journalctl --vacuum-size=100M
  • Cela conserve uniquement 100 Mo de journaux.

5. Désinstaller les paquets inutiles

Des paquets non utilisés peuvent occuper de l’espace.

a) Supprimer les dépendances inutilisées :

sudo apt autoremove

b) Supprimer des paquets spécifiques :

Recherchez les paquets installés avec :

dpkg --list

Désinstallez ceux dont vous n’avez plus besoin :

sudo apt remove nom_du_paquet

6. Supprimer les fichiers orphelins

Les fichiers orphelins peuvent être laissés par des logiciels désinstallés.

a) Trouver les fichiers orphelins avec deborphan :

Installez l’outil :

sudo apt install deborphan

Listez les paquets orphelins :

deborphan

Supprimez-les :

sudo apt remove --purge $(deborphan)

7. Nettoyer les snapshots (si applicable)

Si vous utilisez des systèmes de fichiers comme Btrfs ou LVM, les snapshots peuvent consommer de l’espace.

a) Lister les snapshots Btrfs :

sudo btrfs subvolume list /

Supprimez un snapshot inutile :

sudo btrfs subvolume delete /path/to/snapshot

b) Supprimer les snapshots LVM :

Listez les snapshots :

sudo lvs

Supprimez un snapshot :

sudo lvremove /dev/volume-group/snapshot-name

8. Utiliser un outil graphique (optionnel)

Si vous préférez une interface graphique, installez BleachBit, un outil puissant pour nettoyer le système :

sudo apt install bleachbit
bleachbit
  • Il propose des options pour supprimer les caches, journaux, et autres fichiers inutiles.

9. Vérifier l’espace disque après nettoyage

Une fois les nettoyages effectués, vérifiez l’espace récupéré :

df -h

Ces méthodes vous permettent de localiser et de supprimer efficacement les fichiers inutiles ou volumineux, optimisant ainsi l’utilisation de votre espace disque. Effectuez régulièrement ces vérifications pour garder votre système Debian propre et performant.

Comment consulter des rapports log Rkhunter de façon plus confortable ?

La lecture des rapports de logs peut être parfois fastidieuse et prendre du temps. Voici quelques astuces pour vous faciliter la lecture des rapports de rkhunter :

1. Vérifier l’emplacement du rapport de rkhunter :

Le fichier de log de rkhunter est généralement situé dans /var/log/rkhunter.log. Si vous ne savez pas où se trouve le fichier, vous pouvez utiliser la commande suivante pour le localiser :

sudo rkhunter --propupd

Cela mettra à jour la base de données et vous donnera une indication de l’emplacement du fichier de log.

2. Utiliser less pour parcourir le fichier log :

Pour consulter le fichier de manière confortable dans le terminal, vous pouvez utiliser la commande less, qui permet de naviguer facilement dans le fichier avec des touches de navigation.

sudo less /var/log/rkhunter.log
  • Navigation avec less :
  • Utilisez les touches flèche haut/bas pour défiler ligne par ligne.
  • Appuyez sur Espace pour défiler page par page.
  • Tapez / suivi du mot que vous recherchez pour effectuer une recherche dans le fichier (par exemple : /warning).

3. Filtrer les lignes importantes (par exemple, les avertissements) :

Si vous souhaitez voir uniquement les avertissements ou les erreurs, vous pouvez filtrer le fichier avec grep. Par exemple, pour afficher toutes les lignes contenant le mot warning :

sudo grep 'Warning' /var/log/rkhunter.log

Ou si vous souhaitez voir les erreurs et les avertissements :

sudo egrep 'Warning|Error' /var/log/rkhunter.log

4. Envoyer le rapport vers un fichier texte ou HTML pour une lecture plus facile :

Vous pouvez également rediriger le rapport vers un fichier plus accessible, comme un fichier texte ou HTML, que vous pourrez lire avec un éditeur de texte ou un navigateur web.

  • Pour créer un fichier texte simple :
sudo rkhunter --check --rwo > ~/rapport_rkhunter.txt
  • Pour un fichier HTML :
sudo rkhunter --check --report-warnings-only --append-log > ~/rapport_rkhunter.html

Ensuite, vous pouvez ouvrir ce fichier avec votre éditeur de texte préféré (par exemple, nano, vim ou gedit) ou votre navigateur pour un meilleur confort de lecture.

5. Automatiser les rapports par mail :

Si vous souhaitez recevoir les rapports de rkhunter régulièrement, vous pouvez configurer un envoi automatique par email. Pour cela, modifiez la configuration dans /etc/rkhunter.conf en ajoutant votre email à l’option MAIL-ON-WARNING et activez le cron pour lancer rkhunter automatiquement.

MAIL-ON-WARNING="votreemail@example.com"

Cela vous permettra de recevoir directement les avertissements sans avoir à consulter manuellement le fichier de log.

Avec ces options, vous devriez pouvoir consulter les rapports de rkhunter plus confortablement.

Trouver des processus douteux dans Debian : petit recueil de procédures & outils

Voici quelques solutions disponibles sous Debian pour détecter d’éventuels processus malveillants ou suspects sur le système :

rkhunter (Rootkit Hunter) :

C’est un outil qui analyse le système à la recherche de rootkits, backdoors et autres malwares potentiels. Il peut être installé avec :

sudo apt-get install rkhunter

Pour l’utiliser :

sudo rkhunter --check

chkrootkit :

Un autre outil populaire pour détecter les rootkits. Installation :

sudo apt-get install chkrootkit

Utilisation :

sudo chkrootkit

ClamAV :

Un antivirus open source qui peut scanner les fichiers et processus. Installation :

sudo apt-get install clamav

Pour scanner le système :

sudo clamscan -r /

Lynis :

Un outil d’audit de sécurité qui peut détecter des configurations suspectes. Installation :

sudo apt-get install lynis

Utilisation :

sudo lynis audit system

Les commandes usuelles

ps, top, htop :
Ces commandes standard permettent de lister les processus en cours et d’identifier ceux qui semblent suspects (forte utilisation CPU/mémoire, noms étranges, etc).

netstat ou ss :
Pour lister les connexions réseau actives et identifier d’éventuelles connexions suspectes.

Il est recommandé d’utiliser une combinaison de ces outils régulièrement pour une meilleure détection.

Aucun outil n’est parfait, mais ensemble ils peuvent aider à identifier des activités potentiellement malveillantes sur le système.

Parrot OS : la distribution Linux orientée sécurité et confidentialité

Cela fait bien 3 mois que teste Parrot OS, et j’en suis tellement satisfait que je m’en vais vous faire une petite review.

Introduction à Parrot Security OS

Parrot Security OS est une distribution GNU/Linux basée sur Debian, axée sur la sécurité, le développement et la confidentialité.

Lancée initialement en 2013, elle s’est développée pour devenir un système d’exploitation riche en fonctionnalités, intégrant une large gamme d’outils préinstallés pour les tests d’intrusion, la criminalistique, l’anonymat et la programmation.

Origine et Public Cible

Basée sur Debian Testing, Parrot OS utilise l’environnement de bureau MATE, connu pour sa légèreté. Contrairement à Kali Linux, qui fonctionne par défaut avec des privilèges root, Parrot offre un environnement sandboxé pour une expérience de sécurité améliorée.

Cette distribution s’adresse aux hackers éthiques, testeurs d’intrusion, enquêteurs en criminalistique, développeurs et défenseurs de la vie privée. Elle est livrée avec des centaines d’outils pour la programmation, le hacking, l’anonymat, la cryptographie, et plus encore.

Configuration Système

L’un des avantages majeurs de Parrot OS est sa légèreté, lui permettant de fonctionner même sur du matériel plus ancien :

  • Processeur : 700MHz ou plus rapide pour x86
  • RAM : Au moins 256MB pour i386 ou 320MB pour amd64
  • Stockage : Environ 16GB d’espace disque libre
  • Architecture : Supporte i386, amd64, 486 (x86 ancien), armel, et armhf

Pour une performance optimale, un système avec un processeur de 1GHz, 1GB de RAM et 20GB de stockage est recommandé. Parrot OS fonctionne bien dans une machine virtuelle ou un conteneur Docker avec seulement 1-2 cœurs CPU et 2GB de RAM alloués.

Principales Fonctionnalités et Outils

  • Outils d’Anonymat et de Confidentialité : Parrot met l’accent sur l’anonymat avec des outils comme Tor, I2P, Anonsurf, et TorChat, permettant de sécuriser les communications.
  • Outils de Cryptographie : Des outils comme TrueCrypt, Cryptkeeper, et gpg sont disponibles pour gérer le chiffrement des fichiers et des disques.
  • Langages de Programmation et IDEs : Parrot inclut des interpréteurs et compilateurs pour Python, Ruby, Perl, Lua, C, et C++, ainsi que des outils de développement comme Geany et Arduino IDE.
  • Hacking Matériel : Des outils spécialisés comme GNU Radio et Aircrack-ng permettent d’auditer le matériel pour des vulnérabilités.
  • Mode Forensics : Un mode « Forensics » permet d’analyser un système sans y laisser de trace.
  • Environnement Sandboxed : Parrot utilise un bureau sandboxé par défaut pour limiter les dommages potentiels.

Cas d’Utilisation

  • Tests d’Intrusion et Hacking Éthique : Parrot est équipé d’outils comme Metasploit et Burp Suite pour les évaluations de sécurité.
  • Anonymat et Communication Sécurisée : Les outils intégrés garantissent des communications privées et anonymes.
  • Développement Logiciel : La collection de langages de programmation et d’IDEs en fait un environnement de développement capable.
  • Hacking Matériel : Des outils spécialisés permettent d’auditer les systèmes matériels pour des failles.
  • Criminalistique Numérique : Le mode Forensics permet de recueillir des preuves sans modifier le système cible.
  • … Mais aussi utilisation plus basique : Parrot OS propose également une version « allégée » (appelée « home ») pour les utilisateurs un peu plus classiques. C’est plutôt bien vu, car c’est un OS tellement léger qu’il peut aussi vous permettre, par exemple, de redonner vie à un vieil ordinateur tout en lui donnant un accès rapide à une suite d’outils pour améliorer sa confidentialité et sa robustesse.

Avantages et Inconvénients

Avantages

  • Performance légère et rapide (il existe même une version « IOT » qui peut s’installer sur Raspberry Pi)
  • Outils préconfigurés pour le hacking et la criminalistique
  • Environnement sandboxé pour une sécurité accrue
  • Mode Forensics non intrusif
  • Compatibilité avec la plupart des pilotes matériels
  • … Et, question de goût, mais je trouve l’UI particulièrement agréable

Inconvénients :

  • Moins d’outils que les distributions connues comme Kali
  • Dépendance à Debian Testing pour les mises à jour majeures

Conclusion

Pour les testeurs d’intrusion, développeurs et utilisateurs soucieux de la confidentialité, Parrot Security OS offre un système d’exploitation polyvalent et riche en fonctionnalités. Bien que certains utilisateurs avancés puissent préférer Kali ou BlackArch, Parrot OS reste un excellent choix pour ceux qui privilégient la performance légère, la sécurité robuste et une expérience prête à l’emploi.

Pour télécharger les différentes versions :

https://www.parrotsec.org/download

Tout savoir sur le protocole DHCP

Le protocole DHCP (Dynamic Host Configuration Protocol) est un protocole réseau utilisé pour attribuer dynamiquement des adresses IP et d’autres paramètres de configuration réseau à des dispositifs sur un réseau.

Il simplifie grandement la gestion des adresses IP en automatisant le processus, permettant ainsi aux utilisateurs de se connecter facilement à un réseau sans avoir à configurer manuellement les paramètres IP.

1. Pourquoi a-t-il été créé ?

Le protocole DHCP a été créé pour résoudre les problèmes liés à la configuration manuelle des adresses IP dans les réseaux.

Avant le DHCP, les administrateurs réseau devaient attribuer manuellement une adresse IP unique à chaque dispositif sur le réseau, ce qui était non seulement fastidieux mais aussi sujet à des erreurs, comme les conflits d’adresses IP.

Le DHCP automatise ce processus, réduisant ainsi les erreurs humaines et facilitant la gestion des réseaux, en particulier les grands réseaux.

2. Quand et par qui a-t-il été créé ?

Le protocole DHCP a été développé dans les années 1990 par l’Internet Engineering Task Force (IETF) et est spécifié dans le RFC 2131, publié en mars 1997. Il s’agit d’une évolution du protocole BOOTP (Bootstrap Protocol), qui était utilisé pour effectuer des tâches similaires mais de manière moins automatisée et flexible.

3. Comment fonctionne le protocole DHCP ?

Le fonctionnement du DHCP repose sur un mécanisme de requête-réponse entre les clients DHCP (les dispositifs nécessitant une adresse IP) et les serveurs DHCP (les dispositifs attribuant les adresses IP). Le processus typique inclut les étapes suivantes :

  1. Découverte (DHCP Discover) : Le client DHCP envoie un message de découverte pour localiser les serveurs DHCP disponibles sur le réseau.
  2. Offre (DHCP Offer) : Les serveurs DHCP répondent avec une offre, proposant une adresse IP au client.
  3. Demande (DHCP Request) : Le client sélectionne une offre parmi celles reçues et envoie une requête pour demander l’attribution de l’adresse IP.
  4. Accusé de réception (DHCP Acknowledgment) : Le serveur DHCP confirme l’attribution de l’adresse IP en envoyant un accusé de réception au client.

Ce processus permet une allocation automatique et dynamique des adresses IP, facilitant ainsi la gestion des réseaux.

4. Port utilisé par le protocole

Le DHCP utilise principalement deux ports UDP : le port 67 pour le serveur DHCP et le port 68 pour le client DHCP. Ces ports sont utilisés pour la communication des messages DHCP entre les clients et les serveurs.

5. Niveau dans le modèle OSI

Le protocole DHCP opère principalement au niveau de la couche Application (couche 7) du modèle OSI. Il s’appuie sur le protocole UDP de la couche Transport (couche 4) pour la transmission de ses messages.

6. Évolution sécuritaire du protocole DHCP

Bien que le DHCP simplifie grandement la gestion des adresses IP, il présente également des risques de sécurité, tels que les attaques DHCP spoofing, où un attaquant configure un faux serveur DHCP pour distribuer des adresses IP malveillantes.

Pour contrer ces menaces, plusieurs mesures de sécurité ont été mises en place, comme l’utilisation de l’authentification DHCP et de la surveillance DHCP, qui permettent de sécuriser le processus d’attribution des adresses IP.

7. Anecdotes

Un fait amusant concernant le DHCP est que son prédécesseur, le protocole BOOTP, a été utilisé dans les années 1980 pour permettre aux ordinateurs sans disque de démarrer en téléchargeant leur système d’exploitation via le réseau. Le DHCP a amélioré cette fonctionnalité en automatisant davantage le processus et en ajoutant des capacités dynamiques.

8. Cas de détournement

Un exemple célèbre de détournement DHCP est l’attaque de type « Rogue DHCP Server ».

Dans cette attaque, un attaquant configure un serveur DHCP non autorisé sur le réseau, distribuant des adresses IP et des paramètres réseau malveillants aux clients, ce qui peut entraîner des redirections vers des sites malveillants ou l’interception de données sensibles.

9. Commandes utiles et logiciels

Pour utiliser le protocole DHCP, voici quelques commandes pratiques et logiciels associés :

Commande ipconfig

  • Usage : Affiche la configuration réseau actuelle du client DHCP et permet de libérer ou de renouveler l’adresse IP.
  • Logiciel/Appli : Disponible en ligne de commande sur Windows.
  • Exemple :
ipconfig /release
ipconfig /renew

Commande dhclient

  • Usage : Utilisé pour obtenir ou libérer une adresse IP via DHCP.
  • Logiciel/Appli : Disponible en ligne de commande sur Linux.
  • Exemple :
sudo dhclient -r
sudo dhclient

Le mot de la fin…

Le protocole DHCP est un élément essentiel des réseaux modernes, simplifiant la configuration des adresses IP et d’autres paramètres réseau. Grâce à ses mécanismes automatisés, il permet une gestion efficace et sans erreur des réseaux, tout en évoluant pour répondre aux défis de sécurité contemporains.

Page 1 of 9