Doknet

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

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.

Configurer un serveur PHP sur Centos SELinux

SElinux est réputé pour être parfois un peu capricieux, et pour cause : cette distribution se veut être l’une des plus sécurisées au monde.

Voyons comment installer un serveur NGINX avec PHP 8 sur cette distribution qui semble énerver plus d’un admin système !

(Configuration de départ : l’OS d’origine est un CENTos « minimal »)

Installation de SELinux

1. Mettre à jour le système :

yum update -y

2. Installer les paquets nécessaires pour SELinux :

yum install -y selinux-policy selinux-policy-targeted policycoreutils setools setroubleshoot

3. Configurer SELinux :

nano /etc/selinux/config

Modifiez les lignes suivantes pour activer SELinux en mode « enforcing » (je reviendrai dans un autre article sur les spécificités de ce mode):

SELINUX=enforcing
SELINUXTYPE=targeted

4. Redémarrer la machine

reboot

5. Vérifier l’état de SELinux :

sestatus

Vous devriez voir quelque chose de ce genre :

SELinux status:                 enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   enforcing
Mode from config file:          enforcing
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Max kernel policy version:      31

6. (Optionnel) Configurer les règles de SELinux

Vous pouvez personnaliser les règles SELinux en fonction de vos besoins spécifiques. Utilisez les outils comme semanage et setsebool pour ajuster les politiques SELinux.

Exemple d’ajustement des règles pour un service spécifique (par exemple, HTTPD) :

setsebool -P httpd_can_network_connect on

7. (optionnel) configurer les règles de SELinux :

Si vous rencontrez des problèmes avec SELinux, utilisez audit2allow pour analyser et générer des règles permettant de corriger les problèmes.

Par exemple, pour analyser les erreurs et générer une politique d’autorisation :

grep AVC /var/log/audit/audit.log | audit2allow -M mypol
semodule -i mypol.pp

Avec ces étapes, votre Centos devrait être équipée de SELinux pour une sécurité renforcée. Passons maintenant à la mise en place d’un serveur NGINX

Installer et configurer NGINX sur SELinux

1. Installer NGINX

yum install -y epel-release
yum install -y nginx

2. Démarrer et activer NGinx :

systemctl start nginx
systemctl enable nginx

3. Configurer le firewall (si nécessaire) :

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

4. Vérifier l’état de SELinux

sestatus

5. Configurer les contextes SELinux pour Nginx :

SELinux utilise des contextes pour contrôler l’accès aux fichiers et aux répertoires. Nginx nécessite des contextes spécifiques pour fonctionner correctement.

Vérifier les contextes actuels des fichiers de Nginx :

ls -Z /etc/nginx
ls -Z /usr/share/nginx/html

Appliquer les contextes SELinux nécessaires

Appliquer le contexte correct aux répertoires et fichiers Nginx :

semanage fcontext -a -t httpd_sys_content_t "/usr/share/nginx/html(/.*)?"
restorecon -Rv /usr/share/nginx/html

semanage fcontext -a -t httpd_sys_content_t "/etc/nginx(/.*)?"
restorecon -Rv /etc/nginx

Permettre à Nginx d’écouter sur le réseau :

setsebool -P httpd_can_network_connect 1

6. Vérifier le bon fonctionnement de Nginx :

Accédez à l’adresse IP de votre serveur depuis un navigateur web pour vérifier que Nginx fonctionne correctement. Vous devriez voir la page d’accueil par défaut de CENTOS :

7. Dépannage et gestion des erreurs

Si vous rencontrez des erreurs, vous pouvez utiliser audit2allow pour créer des règles SELinux qui permettent les opérations nécessaires à Nginx.

Exemple d’utilisation d’audit2allow :

1. Reproduisez l’erreur.

2. Vérifiez les logs SELinux pour trouver les erreurs associées à Nginx :

    grep nginx /var/log/audit/audit.log

    3. Utilisez audit2allow pour générer et appliquer une nouvelle politique :

    grep nginx /var/log/audit/audit.log | audit2allow -M nginx_local
    semodule -i nginx_local.pp

    En suivant ces étapes, vous pouvez installer et configurer Nginx sur une machine avec SELinux en mode enforcing. La clé est de s’assurer que les contextes SELinux sont correctement définis pour permettre à Nginx de fonctionner sans restriction.

    On va pouvoir maintenant passer à l’ajout de PHP.

    3. Installer PHP sur Centos avec NGinx et SELinux

    Pour installer PHP sur une machine CentOS avec Nginx, suivez ces étapes :

    1. Installer EPEL et Remi Repository

    Les paquets PHP les plus récents sont souvent disponibles dans le dépôt Remi. Commencez par installer EPEL (Extra Packages for Enterprise Linux) et le dépôt Remi.

    sudo yum install -y epel-release
    sudo yum install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm

    2. Activer le dépôt Remi

    Activez le dépôt Remi pour PHP. Par exemple, pour PHP 8.0, utilisez la commande suivante :

    sudo yum install -y yum-utils
    sudo yum-config-manager --enable remi-php80

    3. Installer PHP et les modules nécessaires

    Installez PHP et quelques modules couramment utilisés :

    sudo yum install -y php php-fpm php-mysqlnd php-opcache php-gd php-xml php-mbstring php-mcrypt php-json

    4. Configurer PHP-FPM

    Ouvrez le fichier de configuration de PHP-FPM pour effectuer quelques ajustements nécessaires :

    sudo nano /etc/php-fpm.d/www.conf

    Assurez-vous que les lignes suivantes sont définies pour que PHP-FPM fonctionne avec Nginx :

    user = nginx
    group = nginx
    
    listen = /var/run/php-fpm/php-fpm.sock
    
    listen.owner = nginx
    listen.group = nginx
    listen.mode = 0660

    Ensuite, assurez-vous que le répertoire /var/run/php-fpm existe et que les permissions sont correctes :

    sudo mkdir -p /var/run/php-fpm
    sudo chown -R nginx:nginx /var/run/php-fpm
    sudo chmod -R 755 /var/run/php-fpm

    5. Démarrer et activer PHP-FPM

    Démarrez PHP-FPM et configurez-le pour qu’il démarre automatiquement au démarrage :

    sudo systemctl start php-fpm
    sudo systemctl enable php-fpm

    Vérifiez ensuite que le fichier de socket php-fpm a bien été créé :

    ls -l /var/run/php-fpm/php-fpm.sock

    Vous devriez voir quelque chose comme ceci :

    srw-rw---- 1 nginx nginx 0 Jun  3 23:30 /var/run/php-fpm/php-fpm.sock

    6. Configurer Nginx pour utiliser PHP

    Ouvrez le fichier de configuration du site Nginx. Par exemple, si vous utilisez la configuration par défaut :

    sudo nano /etc/nginx/conf.d/default.conf

    Modifiez le fichier de configuration pour traiter les fichiers PHP. Ajoutez ou modifiez les lignes suivantes dans le bloc server :

    server {
        listen       80;
        server_name  localhost;
    
        root   /usr/share/nginx/html;
        index  index.php index.html index.htm;
    
        location / {
            try_files $uri $uri/ /index.php?$query_string;
        }
    
        location ~ \.php$ {
            include fastcgi_params;
            fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        }
    
        error_page  404 /404.html;
        location = /40x.html {
        }
    
        error_page   500 502 503 504 /50x.html;
        location = /50x.html {
        }
    }

    7. Redémarrer Nginx

    Redémarrez Nginx pour appliquer les modifications :

    sudo systemctl restart nginx

    8. Tester l’installation de PHP

    Créez un fichier PHP de test pour vous assurer que PHP fonctionne correctement avec Nginx. Par exemple :

    sudo nano /usr/share/nginx/html/info.php

    Ajoutez le contenu suivant :

    <?php
    phpinfo();
    ?>

    Accédez à ce fichier via votre navigateur web en visitant http://your_server_ip/info.php. Vous devriez voir la page d’information PHP, indiquant que PHP fonctionne correctement avec Nginx.

    Le mot de la fin

    Et voilà, cette procédure vous permet à priori d’avoir un serveur PHP tournant sous SELinux prêt à l’emploi ! Je ne suis pas entré volontairement dans les détails sur certains points qui paraissent un peu obscurs mais je ne manquerai pas d’y revenir un peu plus tard 😉

    Qu’est-ce que le protocole DNS ?

    Le protocole DNS (Domain Name System) est un système de nommage hiérarchique et décentralisé utilisé pour traduire les noms de domaine lisibles par les humains en adresses IP compréhensibles par les machines. Par exemple, il convertit un nom de domaine comme www.example.com en une adresse IP comme 192.0.2.1, permettant ainsi aux utilisateurs d’accéder facilement aux sites web sans avoir à mémoriser des adresses IP complexes.

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

    Le protocole DNS a été créé pour résoudre le problème de la complexité croissante des adresses IP au fur et à mesure que l’Internet se développait. Avant le DNS, un fichier centralisé appelé HOSTS.TXT, maintenu par l’ARPANET, était utilisé pour la résolution des noms de domaine. Cependant, avec l’explosion du nombre de dispositifs connectés, cette approche est devenue impraticable. Le DNS a été conçu pour permettre une gestion plus flexible et évolutive de la résolution des noms de domaine.

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

    Le protocole DNS a été créé en 1983 par Paul Mockapetris, un informaticien américain, sous la forme des RFC 882 et 883, remplacées plus tard par les RFC 1034 et 1035. Ce développement a été soutenu par l’Internet Engineering Task Force (IETF) pour répondre aux besoins croissants du réseau ARPANET, précurseur de l’Internet.

    3. Comment fonctionne le protocole DNS ?

    Le DNS fonctionne grâce à une structure en arborescence de serveurs de noms distribués. Lorsqu’un utilisateur saisit un nom de domaine dans son navigateur, une requête DNS est envoyée à un serveur DNS local, qui vérifie s’il possède la réponse en cache. Si ce n’est pas le cas, le serveur DNS local interroge d’autres serveurs DNS, en commençant par les serveurs racine, puis les serveurs TLD (Top-Level Domain), et enfin les serveurs faisant autorité pour le domaine recherché. Le processus se termine lorsque l’adresse IP associée au nom de domaine est trouvée et renvoyée à l’utilisateur.

    4. Port utilisé par le protocole

    Le DNS utilise principalement le port UDP 53 pour les requêtes de résolution rapide. Cependant, pour des transactions plus complexes ou sécurisées, il peut utiliser le port TCP 53.

    5. Niveau dans le modèle OSI

    Le protocole DNS opère principalement au niveau de la couche Application (couche 7) du modèle OSI. Il facilite la communication entre les applications en traduisant les noms de domaine en adresses IP, ce qui est essentiel pour l’acheminement des données à travers le réseau.

    6. Évolution sécuritaire du protocole DNS

    Au fil des ans, plusieurs améliorations de sécurité ont été apportées au DNS, notamment avec l’introduction de DNSSEC (DNS Security Extensions). DNSSEC ajoute des signatures cryptographiques aux enregistrements DNS pour vérifier leur authenticité et intégrité, empêchant ainsi des attaques telles que le spoofing DNS.

    7. Fait historique amusant

    Elizabeth J. Feinler, qui a dû avoir un sacré boulot de saisie à un moment de sa vie… !

    Un fait intéressant est que les premiers serveurs DNS étaient configurés manuellement à partir d’un fichier texte, le fichier HOSTS.TXT, qui contenait toutes les correspondances entre noms de domaine et adresses IP. Ce fichier était distribué par FTP à tous les ordinateurs connectés à ARPANET. La première personne responsable de la mise à jour et de la distribution de ce fichier était Elizabeth (Jake) Feinler, qui travaillait au Stanford Research Institute (SRI). Son travail était crucial pour le fonctionnement des premiers réseaux, illustrant à quel point les débuts d’Internet étaient rudimentaires comparés à aujourd’hui.

    8. Cas de détournement

    Un exemple célèbre de détournement du DNS est l’attaque de type « DNS Spoofing » ou « Cache Poisoning ». En 2008, une vulnérabilité critique, découverte par Dan Kaminsky, a montré comment des attaquants pouvaient empoisonner le cache DNS des serveurs pour rediriger le trafic vers des sites malveillants, entraînant des risques de vol de données et de phishing.

    9. Commandes utiles et logiciels

    Pour utiliser le protocole DNS, voici quelques commandes pratiques avec les logiciels ou applications associés :

    Commande nslookup

    • Usage : Utilisée pour interroger les serveurs DNS et obtenir des informations sur un nom de domaine.
    • Logiciel/Appli : Disponible en ligne de commande sur Windows, macOS et Linux.
    • Exemple :
    nslookup www.example.com

    Commande dig

    • Usage : Fournit des informations détaillées sur les requêtes DNS, idéale pour le dépannage avancé.
    • Logiciel/Appli : Disponible en ligne de commande sur macOS et Linux. Peut être installé sur Windows via Cygwin ou BIND.
    • Exemple :
    dig www.example.com

    Commande host :

    • Usage : Simple utilitaire de recherche DNS, similaire à nslookup mais avec une sortie plus concise.
    • Logiciel/Appli : Disponible sur Linux et macOS.
    • Exemple :
    host www.example.com

    Outil Wireshark

    • Usage : Permet d’analyser le trafic réseau en temps réel, y compris les requêtes et réponses DNS.
    • Logiciel/Appli : Application graphique disponible sur Windows, macOS et Linux.
    • Exemple : Filtrer le trafic DNS dans Wireshark avec le filtre :
    dns

    Le mot de la fin…

    Le protocole DNS est une composante fondamentale de l’Internet moderne, facilitant la navigation en traduisant les noms de domaine en adresses IP. Malgré les défis de sécurité auxquels il a été confronté, des améliorations comme DNSSEC ont renforcé sa robustesse.

    Le protocole TCP/IP en synthèse

    1. Qu’est-ce que le protocole TCP/IP ?

    Le protocole TCP/IP (Transmission Control Protocol/Internet Protocol) est un ensemble de protocoles de communication utilisés pour interconnecter des dispositifs sur des réseaux informatiques, y compris l’Internet. TCP/IP fournit les règles et les normes permettant la transmission des données entre les ordinateurs. Le protocole IP s’occupe de l’adressage et du routage des paquets de données, tandis que le protocole TCP assure la fiabilité de la transmission en vérifiant l’intégrité des données et en gérant les connexions entre les dispositifs.

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

    TCP/IP a été créé pour permettre une communication fiable et interopérable entre différents types de réseaux. Avant TCP/IP, les réseaux étaient souvent isolés et utilisaient des protocoles propriétaires.

    TCP/IP a été conçu pour fournir un standard ouvert qui permettrait à tous les réseaux de communiquer entre eux, facilitant ainsi le développement de l’Internet et l’interconnexion globale des réseaux.

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

    TCP/IP a été développé dans les années 1970 par Vint Cerf et Robert Kahn. Le protocole a été défini pour la première fois en 1974 dans le cadre du projet ARPANET, financé par l’Agence pour les projets de recherche avancée de défense (DARPA) des États-Unis.

    Le modèle TCP/IP a été adopté comme standard par le Département de la Défense des États-Unis en 1982 et est devenu le fondement de l’Internet moderne.

    4. Comment fonctionne le protocole TCP/IP ?

    TCP/IP fonctionne en séparant les données en petits paquets qui sont ensuite envoyés indépendamment sur le réseau. Le protocole IP s’occupe de l’adressage et du routage de ces paquets, tandis que le protocole TCP assure la fiabilité de la transmission en vérifiant que les paquets arrivent bien à destination, dans le bon ordre, et sans erreurs.

    Si un paquet est perdu ou endommagé, TCP le retransmet. Cette architecture permet une transmission de données fiable et efficace sur des réseaux hétérogènes.

    5. Port utilisé par le protocole

    TCP/IP n’utilise pas de port spécifique car il s’agit d’une suite de protocoles. Cependant, différents services et applications utilisant TCP/IP emploient des ports bien définis. Par exemple, HTTP utilise le port TCP 80, HTTPS utilise le port TCP 443, et FTP utilise les ports TCP 20 et 21.

    6. Niveau dans le modèle OSI

    TCP/IP correspond à plusieurs niveaux du modèle OSI :

    • IP (Internet Protocol) fonctionne à la couche Réseau (couche 3).
    • TCP (Transmission Control Protocol) fonctionne à la couche Transport (couche 4).
    • Les applications utilisant TCP/IP, comme HTTP ou FTP, opèrent à la couche Application (couche 7).

    7. Évolution sécuritaire du protocole TCP/IP

    Au fil des ans, plusieurs améliorations de sécurité ont été apportées à TCP/IP. Par exemple, le protocole IPSec (Internet Protocol Security) a été développé pour sécuriser les communications au niveau IP en fournissant des services de cryptage et d’authentification.

    De plus, des extensions comme TLS (Transport Layer Security) ont été introduites pour sécuriser les connexions au niveau TCP, notamment pour les transactions en ligne et les communications sensibles.

    8. Fait historique amusant

    Un fait intéressant est que le premier message transmis via le protocole TCP/IP entre deux réseaux a été « LO ». Le message complet devait être « LOGIN », mais le système s’est écrasé après les deux premières lettres, marquant ainsi un début modeste pour ce qui deviendra l’Internet moderne.

    9. Cas de détournement

    Un exemple de détournement du protocole TCP/IP est l’attaque par usurpation de session (Session Hijacking).

    Dans cette attaque, un pirate intercepte une session TCP en cours entre deux hôtes pour en prendre le contrôle. Cela peut permettre à l’attaquant de voler des données sensibles ou d’injecter des commandes malveillantes dans la session.

    10. Commandes utiles et logiciels

    Pour utiliser et diagnostiquer les protocoles TCP/IP, voici quelques commandes pratiques avec les logiciels ou applications associés :

    1. Commande ping

    • Usage : Vérifie la connectivité réseau entre deux hôtes en envoyant des paquets ICMP Echo Request.
    • Logiciel/Appli : Disponible en ligne de commande sur Windows, macOS et Linux.
    • Exemple :
    ping www.example.com

    2. Commande traceroute / tracert

    • Usage : Affiche le chemin emprunté par les paquets pour atteindre une destination.
    • Logiciel/Appli : traceroute sur Linux et macOS, tracert sur Windows.
    • Exemple :
    traceroute www.example.com

    ou

    tracert www.example.com

    3. Commande netstat

    • Usage : Affiche les connexions réseau et les statistiques du protocole TCP/IP.
    • Logiciel/Appli : Disponible en ligne de commande sur Windows, macOS et Linux.
    • Exemple :
    netstat -an

    En bref

    Le protocole TCP/IP est la pierre angulaire de l’Internet, permettant une communication fiable et interopérable entre différents réseaux.

    Grâce à ses nombreuses évolutions et extensions, il reste sécurisé et adaptable aux besoins modernes.

    Nouvelle série d’article « 1 jour 1 protocole »

    Pour peaufiner mes compétences et mon savoir sur les protocoles, j’ai décidé de me lancer dans la création d’une série d’articles « 1 jour 1 protocole ».

    Pourquoi cette série ?

    Les protocoles réseaux sont essentiels pour permettre à nos dispositifs de communiquer entre eux de manière fluide et efficace. Pourtant, leur importance est souvent sous-estimée, et leur complexité peut décourager plus d’un.

    Mon objectif avec « 1 jour 1 protocole » est de rendre ces concepts plus accessibles à tous. Chaque jour, je vais vous proposer une fiche synthétique sur un protocole réseau différent, couvrant son histoire, sa conception et quelques astuces pratiques pour l’utiliser au quotidien.

    Structure des Articles

    Chaque jour, vous découvrirez un nouvel article consacré à un protocole spécifique. Voici ce que vous pouvez attendre de chaque fiche :

    1. Introduction et Historique :
      • Une petite présentation du protocole.
      • Un peu d’histoire pour comprendre d’où il vient et pourquoi il a été créé.
      • Les défis qu’il a permis de relever.
    2. Fonctionnement et Conception :
      • Comment le protocole fonctionne, expliqué de manière simple et claire.
      • Les concepts clés et les mécanismes qui le composent.
      • Les normes et standards associés.
    3. Utilisation Pratique :
      • Où et comment le protocole est utilisé dans le monde réel.
      • Des exemples concrets d’applications.
      • Ses avantages et ses limites.

    J’espère que vous prendrez autant de plaisir à les lire que j’en ai eu à les écrire.

    Rendez-vous dans le prochain article pour le premier sujet : le protocole TCP/IP !

    En quoi un algorithme de hashage permet d’assurer l’intégrité des données ?

    On voit souvent l’affirmation selon laquelle une fonction ou un algorithme de hashage permte d’assurer l’intégrité des données. Concrètement, pourquoi et comment ça marche ? C’est ce qu’on va tenter de comprendre simplement ici.

    Qu’est-ce qu’un algorithme de hashage ?

    Un algorithme de hashage prend une entrée (ou message) et produit une sortie de taille fixe appelée « haché » ou « digest ». Cette sortie est généralement une séquence de bits ou de caractères. Les algorithmes de hashage couramment utilisés incluent MD5, SHA-1, et les membres de la famille SHA-2 (comme SHA-256).

    Caractéristiques des fonctions de hachage cryptographiques

    1. Déterminisme :
      • Une fonction de hachage est déterministe, ce qui signifie que le même message d’entrée produira toujours le même haché. Cela permet de vérifier la consistance des données.
    2. Rapidité :
      • Les fonctions de hachage sont conçues pour être rapides à calculer, ce qui les rend pratiques pour une utilisation fréquente.
    3. Préimage résistante :
      • Il est computationnellement difficile de retrouver le message original à partir de son haché, ce qui protège les données contre certaines formes d’attaques.
    4. Résistance aux collisions :
      • Il est difficile de trouver deux messages distincts qui produisent le même haché. Cela assure que chaque message a un haché unique, renforçant ainsi l’intégrité des données.
    5. Avalanche effect :
      • Une petite modification de l’entrée (même un seul bit) entraîne un changement radical et imprévisible du haché. Cela permet de détecter même les plus petites altérations dans les données.

    Assurance de l’intégrité des données

    L’intégrité des données signifie que les données n’ont pas été altérées ou corrompues. Voici comment les fonctions de hachage contribuent à cette assurance :

    1. Vérification de l’intégrité :
      • Lorsque des données sont envoyées ou stockées, leur haché est souvent calculé et transmis ou stocké avec elles. Plus tard, pour vérifier que les données n’ont pas été modifiées, le haché des données reçues ou récupérées est recalculé et comparé au haché original. Si les deux hachés correspondent, les données sont considérées comme intactes.
    2. Détection de la corruption :
      • Si les données sont altérées de quelque manière que ce soit, même légèrement, le haché recalculé sera différent du haché original, signalant que l’intégrité des données a été compromise.

    Exemple pratique

    Prenons un exemple concret pour illustrer :

    Calcul initial du haché :

    • Supposons que vous avez un fichier appelé document.txt. Vous calculez son haché en utilisant un algorithme de hachage comme SHA-256 :
    sha256sum document.txt
    • Le résultat pourrait être quelque chose comme 3a7bd3e2360a3e756b81d7ba7e65a7ff.

    Transmission et stockage :

    Vous envoyez document.txt à un collègue et incluez le haché 3a7bd3e2360a3e756b81d7ba7e65a7ff.

    Vérification de l’intégrité :

    Votre collègue reçoit document.txt et recalcule son haché en utilisant la même commande :

    sha256sum document.txt

    Si le haché recalculé correspond à 3a7bd3e2360a3e756b81d7ba7e65a7ff, cela signifie que le fichier n’a pas été modifié pendant la transmission.

    En bref

    Les algorithmes de hachage assurent l’intégrité des données en fournissant un moyen simple et efficace de vérifier que les données n’ont pas été altérées. Grâce aux caractéristiques uniques des fonctions de hachage, telles que la résistance aux collisions et l’effet avalanche, même les plus petites modifications des données peuvent être détectées, garantissant ainsi que les données restent intactes et fiables.

    Page 1 of 8

    Fièrement propulsé par WordPress & Thème par Anders Norén