Auteur/autrice : Meszig

  • Proxmox

    Présentation de la solution

    Proxmox Virtual Environnent est une plateforme open source complète pour la virtualisation d’entreprise. Grâce à son interface web intégrée, vous pouvez facilement gérer vos machines virtuelles et conteneurs, votre stockage et votre réseau définis par logiciel, votre clustering haute disponibilité et plusieurs outils prêts à l’emploi depuis une solution unique.

    Pré-requis

    Un CPU 64 bits avec 2 VCPU et le support de VT-x pour les LXC (KVM) et le support de VT-d pour la fonctionnalité de PCI(e) passthrough permettant aux machines virtuelles d’accéder directement à des périphériques physiques comme des cartes graphiques ou réseau. La carte réseau doit supporter à minimum 1 Gbits. Ces dernières doivent être activé dans le bios pour être reconnue par proxmox.

    Installation

    On télécharge l’iso d’installation de proxmox. Avec Rufus ou autres, on prépare la clé USB d’installation.

    Les premières étapes sont simples :

    La suite de la configuration concerne l’interface d’administration de Proxmox.

    1 – Les interfaces réseau « actives » sur votre machine sont affichées, vous permettant de sélectionner celle à configurer et à affecter en tant qu’interface de management.

    2 – Spécifiez le nom FQDN de votre serveur, c’est-à-dire son nom complet : nom d’hôte + nom de domaine.

    3 – Désormais, vous devez configurer l’adresse IP de votre interface d’administration. Si le serveur a récupéré une adresse IP via DHCP, celle-ci est automatiquement inscrite.

    L’installation est prête a se déroulée.

    L’url de connexion s’affiche a la fin de l’installation, cette adresse ne doit pas être exposer sur internet naturellement.

    L’authentification est le login root et mot de passe rentrer précédemment.

    Sur la version communautaire, un pop up s’affiche indiquant que la version n’est pas souscrite. La version est mis à jour comme les autres avec un petit délais mais la seul vrai restriction est le pop up a chaque ouverture de session sur la console administrative.

    Configurer les mises à jours

    • Cliquez sur le nom de votre serveur sur la gauche.
    • Cliquez sur « Repositories » sous « Updates ».
    • Cliquez sur le bouton « Add ».
    • Sélectionnez le dépôt « No-Subscription » dans la liste.
    • Validez avec un clic sur le bouton « Add ».

    On clique sur « Refresh » puis sur « Upgrade ».

    On confirme par « Y » pour lancer les installation de la mise à jour.

    Un reboot pour éviter toute surprise de prise en compte des mise à jours.

  • Architecture d’un home lab

    Architecture d’un home lab

    Les choix de l’architecte

    Pour réaliser ce home lab à peu de frais, je me suis imposé des contrainte pour sa constructions. Tous les systèmes ou logiciel sont open sources ou sous licence ouverte et répondent aux exigences d’une entreprise (sécurité, scalabilité, charge, …) mais tiennent dans un environnement limité en ressources.

    Les contraintes matériels

    Le matériel est un PC de type Barebone Industriel Fanless avec processeur N100 12th Gen (4 VCPU 3.40 GHz, 4 Threads, VT-x, VT-d) avec 16Go de RAM, 1 GPU Intel® UHD Graphics 750 Mhz 24 Threads) 2 ports réseau ,2 ports COM, 2 HDMI, 4 ports USB, Wifi 5 (AC) 2 Antennes ,BT 4.2. Le matériel aura coûté 175€ en 2023.

    Les contraintes réseaux

    Les deux ports réseaux 1Gb sont utilisé pour un pour la connexion à la box et l’autre vers des équipements internes.

    Les contraintes logiciels

    Pour pouvoir simulés plusieurs machines, je me suis tourné vers la solution Proxmox. Cette solution d’entreprise propose une version communautaire pour une utilisation personnel. La solution est basé sur un linux débian. Elle propose des conteneurs LXC (KVM) ou des machines virtuel (qému).

    Les contraintes d’environnements

    En raison du peu de CPU, un seul environnement de développement et de productions cohabitent.

    Consommation / impact environnementale

    Évidemment tout ceci a un coût, la consommation du barbone est de 26w ce qui est peu car peu puissant mais suffisant pour quelque tests.

    Schéma d’architecture du home lab

    Pour la démonstration, on crée deux conteneurs LXC (KVM). Un pour le firewall (pfsense) et un conteneur pour portainer.io (solution basé sur docker). Avec docker un conteneur pour le reverse proxy (ici Ngnix Proxy Manager) pour permettre d’accéder au autre conteneur docker.

    Cette solution est la plus minimalistes et s’adaptera facilement au toute petite configuration matériel.

    Avec un configuration plus importante, on peut remplacer pfsense par une solution Fortinet (licence de démonstration 4 connexion simultanés) et docker par kubernetes/docker.

  • Matrice d’Eisenhower

    Matrice d’Eisenhower

    « Ce qui est important est rarement urgent, et ce qui est urgent rarement important. »
    Dwight D. Eisenhower, 34e président des États-Unis

    De là, une matrice d’Eisenhower a été développée à partir de cette citation, comme moyen d’aider les gens à donner des priorités à leurs tâches.
    En français, on l’appelle plus souvent « la matrice de nécessité », et elle se présente sous cette forme.

    Le principe est simple.

    • On élimine/archive toutes les tâches qui ne sont pas importantes pour le métier / produit et qui mobilisent une équipe. Attention, tout de même a veiller au changement d’importances (I will be back…log).
    • Toutes les tâches non urgentes mais qui apportent de la valeur sont planifiées.
    • On délègue les tâches à faible valeur ajoutée qui doivent être traitées.
    • On traite l’essentiel pour rester concentré sur son métier / produit.

    On peut également définir la priorité de l’éléments d’un backlog comme suit :

  • Les commandes linux avancées

    Les commandes linux avancées

    Recherche / Remplacement

    Remplacer une chaine de caractère dans une arborescence

    # En bash
    find /chemin/du/dossier -type f -exec sed -i 's/ancienne_chaine/nouvelle_chaine/g' {} \;
    

    Recherche rapide de fichier/répertoire à partir d’une portion de nom

    # Install debian => apt install locate
    # pour mettre à jour l'index => upgradedb
    locate monfichier

    Recherche de fichier d’une certaine taille

    # fichier de 10 Giga => G = Giga k = kilo ou sans précision = Octect
    find ./ -type f -size +10G -ls

    Réseaux

    Affichage des routes

    # Debian 
    ip -4 route
    ip -6 route
    #netstat --route
    #route -n
    
    # AIX / redhat
    route print
    netstat -m

    Tracer les paquets réseaux

    # Debian/AIX
    traceroute host

    Afficher les interfaces réseaux

    # Debian
    ip addr
    # ipconfig

    Afficher les ports occupés

    # Debian
    ss -tupln

    Afficher les règles du pare-feu

    iptables --list --line-numbers

    Système d’exploitation

    Afficher les infos de la machine

    ##### Mémoire #####
    free
    # cat /proc/meminfo | grep ʺSwapTotal:ʺ | awk '{print $2}'
    # cat /proc/meminfo | grep ʺMemTotal:ʺ | awk '{print $2}'
    # cat /proc/meminfo | grep ʺSwapFree:ʺ | awk '{print $2}'
    # cat /proc/meminfo | grep ʺMemFree:ʺ | awk '{print $2}'
    
    ##### CPU/VCPU #####
    # Nombre de CPU => cat /proc/cpuinfo | grep processor | wc -l
    mpstat -P ALL
    
    ##### Heure de démarrage #####
    uptime
    
    ##### Version de l'OS #####
    # uniquement la version noyau => uname -or
    uname -a
    
    ##### Point de montage des FS #####
    #  cat /etc/fstab
    mount 
    
    

    Performance de la machine

    Moniteurs de processus

    htop
    #top est bien pour la sortie texte brut pour du post-traitement

    Vision statistique du système

    Dstat est un outils chapeau pour monitorer les performances du système Linux. Toutefois , il n’est pas installé par défaut et donc nécessite les droits sudo pour lancer l’install.

    # Pour l'installer
    # sudo apt-get install dstat
    # lancement en interactif
    dstat -tncms
    # lancement avec sortie dans un fichier csv toute les 10 sec.
    dstat -tncms --output /tmp/file.csv 10

    Vision statistique du système (moins complet)

    # sudo apt install sysstat
    # Activer les traces
    # sed -i 's/ENABLED=\"false\"/ENABLED=\"true\"/g' /etc/default/sysstat
    # Désactiver les traces
    # sed -i 's/ENABLED=\"true\"/ENABLED=\"false\"/g' /etc/default/sysstat
    # sudo systemctl restart sysstat
    sar -B

    Si le nombre de pages mémoire inactives est faible (sar -R)(frmpg/s & Active/Inactive) dans meminfo , il faut rajouter de la mémoire.

    I/O des FS

    !/bin/bash
    
    # Le détail des colonnes => https://www.globo.tech/learning-center/install-use-iostat/
    # exemple de script
    
    echo /dev/null > out.txt
    Nombre=1
    while [ $Nombre -le 5 ] # pour 5 mesures
    do
        # Filtre pour surveiller les fs sur sda1.
        iostat -d -x | grep sda1 >> out.txt
    
        # Attendre 5 secondes
        sleep 5
    
        # decompte des mesures
        ((Nombre++))
    done

    Le fichier de sortie peut être traiter (graphique croiser dynamique) par Excel ou un autre tableur.

    Cas 1) Il y a un fort volume d’accès sur tous les périphériques et que les r/s & w/s sont élevés et/ou rrqm/s & wrqm/s sont élevés alors il y a une incapacité du système à tenir la charge IO.

    Cas 2) Les tailles de la file sont importante sur tous les périphériques, si avgrq-sz et avgqu-sz sont élevés alors le système est dans l’incapacité de tenir la charge des IO.


    Solution à envisager: Il faut augmenter le nombre et/ou la capacité des canaux accédants aux périphériques de stockage.

    Cas 3) Il y a un fort volume d’accès sur N périphériques, si r/s w/s et/ou rrqm/s wrqm/s sont élevés ou si avgrq-sz et avgqu-sz sont élevés alors le Volume en IO est mal équilibré sur les N périphériques.

    Solution à envisager: Il faut répartir les fichiers sur d’autres fs afin d’équilibré la charge.

    Cas 4) Il y a des temps d’attente importants et la taille de la file d’attente des IO est faible si await est elevé et/ou avgrq-sz et avgqu-sz sont faibles.


    Solution à envisager: Il faut vérifier l’utilisation des IO Asynchrones. Il faut vérifier le matériel, cela peut constituer un indicateur de matériel défectueux.

    Statistiques d’utilisation de la mémoire

    !/bin/bash
    
    # Le détail des colonnes => https://access.redhat.com/solutions/1160343
    # exemple de script
    
    echo /dev/null > out.txt
    Nombre=1
    while [ $Nombre -le 5 ] # pour 5 mesures
    do
        # Suppression de l'en-tête 
        vmstat | tail -1 >> out.txt
    
        # Attendre 5 secondes
        sleep 5
    
        # decompte des mesures
        ((Nombre++))
    done
    

    Le fichier de sortie peut être traiter (graphique croiser dynamique) par Excel ou un autre tableur.

    Supervision

  • DNS Dynamique

    DNS Dynamique

    Le DNS dynamique permet d’associer un nom de domaine à une adresse IP qui peut varier dans le temps, contrairement au DNS classique qui lie un domaine à une IP généralement fixe. Typiquement, les fournisseurs d’accès à Internet attribuent des IP dynamiques à leurs abonnés, ce qui complexifie l’accès distant à des serveurs ou équipements hébergés sur ces réseaux. Grâce à un service DDNS, chaque changement d’IP est transmis automatiquement au serveur DNS, ce qui garantit que le nom de domaine pointe toujours vers la bonne ressource.

    DynDNS 💰

    DynDNS est le pionnier historique du secteur. Il offre un service robuste permettant de lier un nom de domaine à une IP dynamique (hébergeant serveurs à domicile, caméras IP, ou applications mobiles) .

    #Script shell
    curl --connect-timeout 10 --max-time 10 --header "Authorization: Token $TOKEN" "https://update.dedyn.io/?hostname=$DOMAIN_NAME&myipv4=$IPV4&myipv6=$IPV6"

    No-IP 🔗

    No-IP est l’un des services les plus populaires proposant aussi un forfait gratuit (lien à cliquer tous les mois). Il met à disposition un client facile à installer et à configurer. No-IP assure la mise à jour en temps réel du DNS chaque fois que l’IP change, facilitant l’accès aux réseaux domestiques pour les applications comme le FTP, la surveillance, ou le partage de fichiers à distance.

    #script shell
    curl --location --user-agent 'no-ip shell script/1.0 mail@mail.com' --header 'Authorization: Basic $(echo "$USER:$PASSWORD" | base64)' --request GET https://dynupdate.no-ip.com/nic/update

    Dynu 🆓

    Dynu propose un service de DNS dynamique gratuit et complet, compatible avec une large gamme de routeurs. Sa solution permet d’obtenir une adresse fixe (de type nom.ddns.net) qui pointe toujours vers l’IP active même en cas de changement, avec support pour IPv4 et IPv6. Dynu propose également des APIs et des guides pour une intégration transparente dans l’écosystème réseau.dynu+1

    #script shell https://www.noip.com/integrate/request
    wget "http://username:password@dynupdate.no-ip.com/nic/update?hostname=mytest.example.com&myip=192.0.2.25,2001:0db8::2e"

  • La boîte à outils Windows/Linux

    Gestion des disques / DVD/ répertoires

    Rufus (ici)

    Charge un fichier ISO sur une clef USB et/ou customise l’ISO copié.

    AnyMP4 DVD (içi)

    Permet de conserver une copie privée de ses dvd pour pouvoir conserver les films au delà du délai de conservation des DVD 📀. Donc ,les fichiers ne doivent pas être mis à la disposition de tiers. Vous devez également conserver le support physique pour prouver que c’est une copie privée pour rester dans la légalité.

    DSYNCHRONIZE / DOUBLE FINDER (içi)

    Deux outils dans le même esprits, l’un synchronise de répertoire avec la possibilité de répondre a des règle prédéfinis. l’autre recherche les fichiers en doublons sur les disques pour les supprimer ou autre.

    DVD Decrypter (içi)

    Il permet de copier le contenu d’un DVD vidéo sur le disque dur d’un ordinateur en une image disque. Le programme peut également graver des images au disque. Il enlève également le système de brouillage de contenu (CSS), codes de région, et prohibition d’opération d’utilisateur.

    SD Memory Card Formatter (içi)

    Effectue un vrai formatage en FAT16/FAT32 en toute simplicité.

    UltraISO (içi)

    Duplique les disques d’un fichier image vers un CD/DVD et inversement. créait des images a partir d’un répertoire local et les rends bootable si besoin.

    WinBin2ISO (içi)

    Conversion de d’image au format bin vers un format iso. Le format ISO est généralement mieux supporter par les outils de virtualisation comme VmWare, Proxmox, Virtualbox,….

    PDF

    Foxit Reader (içi) / Summatra PDF (içi)

    Lecteur de pdf léger, compact et portable. La compatibilité est aussi bonne que sur Acrobat reader.

    PDF Split and merge (içi)

    Application desktop simple java qui gère localement la refactorisation des pdf.

    PC lycée Ile De France

    Unowhy Tools PE (ici)

    Utilitaire de réinitialiser le BIOS et les comptes admins. Ajouter un utilisateur au groupe « Administrateur » local. https://github.com/STY1001/Unowhy-Tools-PE/tree/master

    Développement / Déploiement Windows

    API Monitor (içi)

    Permet de suivre les appel Windows des processus sans passer par le code applicatif. Pratique pour vérifier un package après déploiement ou pour vérifier la compatibilité avec d’autre version de Windows.

    Gogs (içi)

    Serveur git local pour un usage de test de script de déploiement ou tout simplement accompagner Visual Studio Code.

    gVim (içi)

    Editeur Vim sous Windows, ultra pratique pour l’édition de très gros fichiers et pour le style 😁 aussi.

    IcoFx (içi)

    Création d’icone pour les applications. Fait juste le job et c’est tout.

    ImgBurn (içi)

    Fait la gravure d’image de DVD / Blue Ray de façon simple.

    Mobalive CD (içi)

    Cet outil permet de lancer un live cd/dvd bootable dans un vm qému sans installation ni droit d’administration sur la machine hôte. L’outils est très pratique pour réaliser des tests de charge, de vulnérabilité, de compatibilité de navigateur, test sous Android, … .Bref tous ce qui est disponible en live CD.

    Qemu manager (içi)

    Interface GUI pour créer des machines virtuel avec qemu. Le projet est abandonné mais vaut quand même le coût pour 43 Mo tout compris.

    OpenProject Community edition (içi)

    Idéale pour les petits projets ou pour l’élaboration d’un macro chiffrage avec une ihm simple et efficace.

    Photo Filtre (içi)

    Facile de prise en main pour des petites retouche de photo ou de maquette. Il est toute fois plus limité que Gimp.

    GIMP (içi)

    C’est le concurant direct de Photoshop mais il est open source et sous licence GPL. Il est extensible avec des plugins. un plugin permet de réorganiser les menus pour avoir la même organisation de Photoshop.

    Oracle Sql Developper (içi)

    C’est l’outil de rêve pour un dev Oracle, il permet l’écriture de requête avec l’autocomplétions, indique les performances, les ressources utiliser,…. Il y a plein de rapport prédéfinie pour les DBA pour la maintenance des bases.

    SQLite Browser (içi)

    Permet d’explorer les bases sqlite qui sont souvent utiliser pour des petits besoin comme le stockage de configuration (ex: chrome) ou tout simplement pour creer un maquette fonctionnel sans infrastructure.

    Winmerge (içi)

    Comparateur de fichier ou d’arborescence avec un éditeur intégré pour la mise à jour. Cet outil est de nos jours utiles pour les livraisons car la gestion du code est souvent délégué à git.

    Github Desktop (içi)

    Cet outils permet de gérer un dépôt GitHub ou similaire , le dépôt est cloner localement. 👍

    Visual studio code (içi)

    C’est le petit frère de Microsoft Visual Studio dans sa version libre, il intègre nativement la gestion des dépôt, l’édition visuel des fichiers, supporte le Markdown, supporte des extensions, ….

    Debuggeur Andoid

    Aya (ici)

    Donne l’accès au log, aux console JS des webwiew, les processus, un shell, aux applications et au diagnostique de performance. Cerise sur le gâteau, il prend en charge le deport d’écran, de souris et clavier avec une grande fluidité.

    Jadx GUI (içi)

    Décompilation de programme en Java/kotlin avec une interface graphique qui encapsule l’outils en ligne de commande. Pratique pour effectuer des audit de sécurité pour vérifier le niveau d’offuscation du code compilé.

    Administration Windows

    Windows Update MiniTool (içi)

    Permet de se connecter au repository de Windows Update pour les différentes édition de Windows. Il permet de forcer également l’installation des fixs ou pack de mise à jour.

    Mobaxterm (içi)

    Prend en charge diffèrent protocole de prise en main dans un seul outil. Il prend en charge RDP, SSH,X11, SFTP, FTP, HTTP, …

    Outils Configuration Manager (içi)

    Ensemble de petit outils Microsoft pour prendre en charge et dépanner votre infrastructure. Tous outils permettent de debugger ou de vérifier le déploiement à distance d’applicatif ou de stratégie que ce soit coté serveur ou coté client. Une vrai mine d’or.

    Hardware Info (içi)

    Dresse un portrait complet du matériel, de l’état du système. Il permet de détecter certaine erreur. Un bon couteau suisse.

    System Explorer (içi)

    Permet de manager les processus actif, les processus au démarrage, scan avec virus total les programmes, monitore le système dans son ensemble.

    Http File Server (içi)

    HFS permet de partager rapidement des fichiers volumineux de poste à poste via HTTP quand les partage réseaux n’ont pas suffisamment d’espace. Il permet de gérer une authentification locale pour échanger en toute confidentialité.

    HiJackThis (içi)

    Suite d’outils pour faire de l’inspection et de la modification de système. Le projet d’origine a été abandonnée mais un fork existe qui continue de vivre.

    JXplorer (içi)

    Java LDAP Explorer est un outils qui permet de vérifier les droits donner à un projets/user, il permet aussi d’aider dans les phase de développement pour vérifier son jeu de donnée.

    Jonction link Magic (içi)

    Permet de faire des liens symbolique sous Windows. Pratique pour éviter la duplication de dossier ou ne pas révéler l’arboraissance d’un disque sur un serveur.

    NetWork Manager (içi)

    Visualisation complète des interfaces réseaux. Cet outils est le clone bien connu de linux portée sous Windows.

    Network Stuff (içi)

    Boîte à outils pour effectuer des tests réseaux soit en tant que client, soit tant que serveur. 👍

    PE Network Config (içi)

    Le seul intérêt de cet outils est la modification à la volé de l’adresse MAC de l’adaptateur réseaux pour faire des tests de filtrage MAC sur un routeur ou un serveur.

    Process explorer (içi)

    Permet de suivre les processus et les threads attacher a un processus, suivre les dépendance et les performances. Process explorer fait partie de la suite sysinternal qui a été racheter par Microsoft. Les outils sont toutes de licence libre d’utilisation.

    Process Hacker (içi)

    Cet outils a les même fonction que Process explorer mais il est entièrement open source.

    Server manager (içi)

    Permet la gestion des services locaux ou a distance.

    Recover File (içi)

    Récupérer les fichiers éffacer sur un disque même après suppression dans la corbeille. L’application affiche l’état du fichier si la récupération est possible, partiellement possible ou impossible.

    Regshot (içi)

    Permet de comparer de version de la base de registre Windows live avec une version figée dans un fichier de sauvegarde. Pratique pour réaliser des package Windows ou la portabilité d’outils.

    Res Edit / RadASM (içi) && ResHacker (içi)

    Permet de faire de l’inspection d’exécutable sur les composants utiliser et peut modifier certaine propriété après compilation.

    Sock2HTTP (içi)

    Permet d’utiliser certain outils ancien ou certaine application qui pour des question de rétrocompatibilité maintiennent un support Sockv5 Proxy.

    TCExplorer (içi)

    Permet d’explorer, d’extraire, ou d’importer des fichiers dans un fichier TrueCrypt. Même si trueCrypt a été abandonnée ca peut dépanner.

    TestDisk (içi)

    Ce logiciel est mal nommé car il permet la récupération de partition, volume, disque (FAT, FAT32, NTFS, EXT3,EXT4,….). Il récupère également les fichiers effacer accidentellement quel que soit le type de FS ou les clefs usb retirer un peu rapidement.

    TightVNC Client/Serveur (içi)

    Créer rapidement un serveur VNC ou se connecter a un serveur pour quelque Ko.

    TinyTask (içi)

    Ce programme est un enregistreur de macro pour Windows qui fonctionne sous Windows 11.

    Windirstat (içi)

    Outils indispensables pour repérer les fortes volumétrie sur les disques. il effectue un scan complet du volume et le présente sous forme visuel avec la possibilité de supprimer les fichiers directement depuis le mode visuel.

    Windows Error Lookup (içi)

    Permet d’avoir une explication sur les erreurs les plus communes en mode Offline. Très pratique lorsque l’on est sur un site sûr en boucle local.

    WireShark (içi)

    Analyser le trafic réseaux sur sa machine, on peut faire la capture en temps réel avec le pilote pcap ou en mode offline avec l’analyse des fichiers dumps.

    WMI Explorer (içi)

    Permet d’interrogé la base objet de Windows en WQL.

    XBOOT Multiboot ISO USB Creator Windows (içi)

    Permet de créer une clé USB multiboot et multiOS. Attention, certain OS sont lancer dans une VM Qému.

    XN Ressource editor (içi)

    Outil bien pratique pour les audits de sécurité car il permet d’extraire les ressources stocker dans l’exécutable. Il peut également permettre de modifier ses ressources par exemple pour la traduction en français. Attention, le projet a été abandonné mais il est fonctionnel sous Windows 11.

    Personnalisation & Confort

    CareUEyes (içi)

    Permet d’avoir une série de préréglage pour l’écran pour le rendre moins agressifs suivant les heures de la journée.

    Alarm Clock (içi)

    Permet de time boxé des événements, par exemple des cérémonie agile sans ce prendre la tête.

    Esheep-DesktopPet (içi)

    Animal de compagnie sur le bureaux Windows, plusieurs scénario sont disponible. l’activité est paramétrable. Attention, ce programme ne sert à rien mais est addictif.

    Everything (içi)

    L’interface utilisateur est simple et claire. La recherche de fichiers ou de contenue est facilité. L’Indexation des noms de fichiers rend la recherche rapide et en temps réel.

    Explorer++ (içi)

    Permet d’ouvrir un explorateur de fichier avec prise en charge du réseau avec la possibilité d’utiliser un autre utilisateur ( runas ) que l’utilisateur interactif de la session.

    File assassin (içi)

    Déverrouille les fichiers bloqué par un processus et peut procéder à sa suppressions.

    Free Download manager (içi)

    Prends en charge tout type de téléchargements (vidéos à partir de sites Web populaires, HTTP, HTTPS, FTP, BitTorrent)

    Keepass (içi)

    Gestionnaire de mot de passe populaire permet de chiffrer tout les mots de passe pour des site ou des applications. Permet également de généré un mot de passe si l’inspiration ne vient pas.

    Lock Note 2 (içi)

    Bloc note qui permet de chiffrer/déchiffrer un note texte. C’est pratique pour envoyer des mots de passe ou conserver des information sensible sur un profil itinérant.

    Mp3DirectCut (içi)

    Ce logiciel permet de faire du montage son directement au format MP3.

    Notepad ++ (içi)

    Notepad ++ est pratique pour les petits travaux avec ses extensions. Ca ne remplace pas un bon IDE pour du développement mais ca dépanne bien.

    Pouchin TV Mod (içi)

    Cet application prend en charge les tuner TV sur PC pour regarder la TV en déplacement.

    PureText (içi)

    Permet de forcer le presse papier Windows au format texte sans mise en forme.

    Room Arranger (içi)

    Faire un plan pour une maison, une chambre ou un open-space rapidement avec les dimensions des pièces et des meubles.

    Screamer Radio (içi)

    Permet de diffuser un podcast ou de l »enregistrer.

    Stikies (içi)

    Permet de mettre plein de post-it sur son bureau.

    Super (içi)

    Ce freeware effectue des conversions de vidéo dans différents format. 👍

    SyncDocs (içi)

    Permet de monter son disque Google drive sur son pc et de le synchroniser régulièrement.

    Vidéo Downloader (içi)

    Télécharge tout type de vidéos offline pour être vu plus tard ou être retravailler après la mis en ligne d’un prestataire externe.

    VirtualDub (içi)

    Permet de faire du montage vidéo, de la resynchronisation de son, de la conversion de format (long), retouche, …. Le projet est abandonnée mais l’outils fonctionne sous Windows 11.

    Virtual Win (içi)

    Permet de créer des bureaux virtuel sous les version inférieur à Windows 10 au delà la fonctionnalité est reprise avec les powerToys.

    VLC / VLMC (içi)

    Pour lire tout les formats de vidéo sans se poser de questions, la gestion des streaming est pris en charge ainsi que la capture de flux vidéo. Le tout est disponible dans VLC. Si l’on souhaite poursuivre avec du montage vidéo VLMC prend le relais avec plaisir.

    Développement Web

    Win HTTRACK Web Site Copier (içi)

    Comme son nom l’indique il permet de rendre offline un site web. Même si l’intérêt est limité car wget fait la même chose. Cela permet d’avoir visuellement ce que peut voir un indexeur de site et de repérer les erreurs 40x et 50x dans les pages.

    Lynx (içi)

    Avec ce navigateur texte, il est plus facile de voir ce que voit un bot google (par exemple). Très pratique pour mieux comprendre le référencement fait par les moteurs de recherche.

    Outils Java

    IceScrum (içi)

    Outils simple pour créer un tableau kanban, indicateur agile,… et le partager a une équipe via un site http.

  • Intelligence agentique

    Intelligence agentique

    Dans cet article nous allons voir comment un IA peut interagir avec un ensemble d’outils pour donnez vie à des taches qui s’adapterons à un contexte.

    Pour cela nous utiliserons n8n qui est une solution communautaire.

    Installation de n8n

    Le prérequis est la disponibilité du dépôt nodeJS et la version 18 de nodeJS sur votre OS linux.

    Installation du dépôt et de nodeJS

    sudo apt-get update
    sudo apt-get install -y ca-certificates curl gnupg
    sudo mkdir -p /etc/apt/keyrings
    curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
    NODE_MAJOR=18
    echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list

    Pour nodeJS …

    sudo apt-get update
    sudo apt-get install nodejs -y

    Pour n8n …

    sudo npm install n8n -g

    Pour vérifier que le serveur est bien lancer, allez à http://localhost:5678 avec un navigateur local. Sur ssh, le navigateur lynx fait l’affaire.

    Pour changer l’adresse d’écoute du serveur NodeJS, il faut modifier le fichier de script start.sh.

    La variable HOST doit prendre la variable « 0.0.0.0 » pour écouter sur toutes les interfaces.

    Configuration de N8N

    Entrer la clé d’activation gratuite pour la version communautaire reçu par mail.

    Un seul utilisateur peut être créer, en l’occurrence, c’est celui qui est crée lors de la phase d’inscription.

    Les informations reste modifiable après l’installation dans les « settings » […] de l’application.

    Si vous exposer se service sur Internet avec un serveur dédié, il est recommander de configurer l’authentification double facteur et de changer sont mot de passe dans la section « Personal ».

    Il est possible de communiquer avec cette instance N8N via les API (béta).

    Et c’est tout pour la version communautaire, le reste des fonctionnalité comme le SSO, la délégation d’authentification vers LDAP, les multiples instance, le partage de secret, la vision de log en temp réel sont réservées a une version payante avec un plan de financement.

    Les outils

    Pour configurer des outils N8N, il faut créer les « Credential » en cliquant sur le gros plus en haut à gauche.

    Ollama

    Ajout Ollama pour ajouter une intelligence artificielle.

    J’entre l’adresse en http du serveur ollama avec le port par défaut 11434 et je valide. Oui c’est tout.

    Connecteur IMAP

  • Conseil pour sécuriser une application web

    Conseil pour sécuriser une application web

    Pour sécuriser la configuration d’un serveur d’applications web (Apache,…), il est crucial de limiter les failles exploitables et de protéger les données, car Apache est souvent la porte d’entrée principale d’un système web. Voici les étapes essentielles (et pourquoi chacune importe) pour renforcer la sécurité de ton serveur Apache :

    1. Garde ton serveur à jour

    • Pourquoi ? Les mises à jour corrigent rapidement les vulnérabilités découvertes dans Apache ou dans ses dépendances. Un serveur obsolète est une cible facile pour les attaquants.
    • Comment ? Utilise la commande adaptée à ton système, par exemple
    sudo apt update && sudo apt upgrade apache2

    2. Cache les informations sur le serveur

    • Pourquoi ? Moins l’attaquant en sait, plus il aura de mal à cibler les failles spécifiques. Masquez la version et limite les informations divulguées dans les en-têtes HTTP et pages d’erreur.
    • Comment ? Dans la configuration (/etc/apache2/conf-enabled/security.conf ou apache2.conf), ajoute/modifie
    ServerTokens Prod
    ServerSignature Off

    3. Désactive l’indexation des répertoires

    • Pourquoi ? Empêche un pirate de lister les fichiers via le navigateur, ce qui pourrait l’aider à préparer une attaque.
    • Comment ? Ajoute à la configuration Apache
    <Directory /var/www> Options -Indexes </Directory>

    4. Réduit et contrôle les modules activés

    • Pourquoi ? Chaque module supplémentaire peut être une faille potentielle. Moins il y en a, mieux c’est.
    • Comment ? Désactive les modules inutiles, par exemple:
    sudo a2dismod status

    5. Limiter les méthodes HTTP autorisées

    • Pourquoi ? Un pirate ne doit pas pouvoir modifier ou lire les fichiers coté serveur.
    • Comment ? Désactivez toutes les méthodes HTTP inutiles qui pourraient être exploitées (ex : PUT, DELETE).
    <Directory /var/www/votre_site/html>
      <LimitExcept GET POST HEAD>
        Deny from all
      </LimitExcept>
    </Directory>

    6. Renforce les permissions des fichiers

    • Pourquoi ? Un pirate ne doit pas pouvoir modifier ou lire les fichiers critiques ou de configuration.
    • Comment ? Vérifie que seuls les utilisateurs nécessaires ont accès.
    sudo chown -R www-data:www-data /var/www
    sudo chmod -R 750 /var/www

    7. Active le chiffrement HTTPS

    • Pourquoi ? Le chiffrement protège les communications contre l’écoute (sniffing) et l’usurpation (man-in-the-middle).
    • Comment ? Installe un certificat SSL/TLS (Let’s Encrypt propose des certificats gratuits), puis configure les VirtualHosts pour forcer l’accès HTTPS.

    A titre d’exemple, voici comment générer des certificat avec certbot avec apache.

    sudo apt install certbot python3-certbot-apache -y
    sudo certbot --apache
    

    Pour un certificat sans configuration automatique (autonome ou autre serveur)

    sudo certbot certonly --standalone -d votredomaine.com -d www.votredomaine.com

    Note importante : le serveur doit avoir accès à internet et les routes doivent être ouverte vers le port 80 (vérification challenge) du serveur dans le mode standalone. Il est fortement déconseillé d’utiliser des wildcards dans les noms de domaine.

    Renouvellement automatique

    Let’s Encrypt délivre des certificats valides 90 jours. Pour automatiser le renouvellement :

    sudo certbot renew
    

    Ajoutez-le dans une tâche cron/planificateur pour qu’il s’exécute régulièrement.

    Coté apache, il faut ajouter les certificats généré par certbot ou fournit par votre autorité de certification. Le virtual host devra comporter a minium les lignes suivantes :

    <VirtualHost *:443>
        ServerName votredomaine.com
        ServerAlias www.votredomaine.com
    
        DocumentRoot /var/www/html
    
        SSLEngine on
        SSLCertificateFile /etc/letsencrypt/live/votredomaine.com/fullchain.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/votredomaine.com/privkey.pem
    
        # Autres directives utiles
    </VirtualHost>
    

    8. Met en place un pare-feu applicatif (WAF)

    • Pourquoi ? Un WAF, comme ModSecurity, bloque les attaques courantes (injections SQL, XSS…) avant qu’elles n’atteignent ton site.
    • Comment ? Installe ModSecurity et active le jeu de règles OWASP CRS.
    sudo apt install libapache2-mod-security2
    sudo a2enmod security2
    sudo systemctl restart apache2

    Dans votre VirtualHost, incluez ensuite :

    <IfModule mod_security2.c>
      Include /etc/modsecurity/*.conf
      Include /etc/modsecurity/rules/*.conf
    </IfModule>

    Règles OWASP (CRS) : activez les “Core Rule Set” fournis sur leur dépôt officiel par l’OWASP pour une protection à jour contre tous les types d’injection.

    git clone https://github.com/coreruleset/coreruleset.git

    Rendez-vous dans le dossier cloné et copiez les fichiers nécessaires dans le répertoire de configuration de ModSecurity, généralement /etc/modsecurity/ :

    cd coreruleset/
    sudo mv crs-setup.conf.example /etc/modsecurity/crs-setup.conf
    sudo mv rules/ /etc/modsecurity/
    sudo cp /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf
    sudo nano /etc/modsecurity/modsecurity.conf
    

    Trouvez la ligne :

    SecRuleEngine DetectionOnly

    et remplacez-la par :

    SecRuleEngine On

    9. Contrôle l’accès aux ressources sensibles

    • Pourquoi ? Limite l’exposition des outils d’administration ou répertoires critiques.
    • Comment ? Utilise l’authentification de base/digest et restreins par IP l’accès aux interfaces d’administration. Par exemple, le répertoire/API admin :
    <Directory /admin> AuthType Basic Require ip 1.2.3.4 </Directory>

    10. Configure les principaux headers de sécurité

    • Pourquoi ? Ils protègent contre le clickjacking, le XSS, la fuite d’informations, etc.
    • Comment ? Dans ta configuration ou avec mod_headers modifie ces headers. Ils durcissent efficacement la sécurité côté navigateur.
    Header always set X-Frame-Options "SAMEORIGIN"
    Header always set X-Content-Type-Options "nosniff"
    Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
    Header always set Content-Security-Policy "default-src 'self'"
    Header always set Referrer-Policy "no-referrer"
    Header unset X-Powered-By

    11. Restreindre les accès et isoler chaque VirtualHost

    • Pourquoi ? Restreindre la surface d’attaque et limiter les possibilité a strict minimum
    • Comment ? Évitez l’exécution de fichiers PHP/CGI non nécessaires ; contrôlez précisément les autorisations sur les dossiers du VirtualHost.

    1. Restreindre les répertoires d’exécution CGI/PHP

    • Utilisez la directive ScriptAlias pour limiter les répertoires autorisés à exécuter du CGI.
    ScriptAlias /cgi-bin/ /var/www/mon-site/cgi-bin/ <Directory "/var/www/mon-site/cgi-bin"> Options +ExecCGI AddHandler cgi-script .cgi .pl Require all granted # Restreindre le type de fichier (voir plus bas) </Directory> 

    N’autorisez que les extensions strictement nécessaires. N’installez jamais de scripts CGI dans des répertoires accessibles librement sans contrôle

    11. Surveille et analyse les logs

    • Pourquoi ? Pour repérer rapidement les attaques ou comportements suspects.
    • Comment ? Active et consulte régulièrement les logs d’accès et d’erreur.
    LogFormat "%h %l %u %t \"%r\" %>s %b" custom_combined
    CustomLog /var/log/apache2/site_access.log custom_combined

    12. Valider et filtrer les entrées côté application

    • Pourquoi ? Elles protègent les entrées contre les injections XSS, SQL. Elles permets de garantir un bon fonctionnement de l’application Web avec des comportement attendus.
    • Comment ? Validez systématiquement toutes les entrées dans votre application (back-end). Utilisez des requêtes préparées (prepared statements) pour les accès SQL, et filtrez/encodez toutes les données affichées pour se prémunir du XSS. Des expressions régulières peuvent remplir cette tache mais elle ne peuvent pas couvrir tout les cas.
    # Numéro de téléphone français (10 chiffres, avec ou sans espace) :
    ^0[1-9][0-9]{8}$
    
    # Code postal français : Exactement 5 chiffres.
    ^\d{5}$
    
    # Nom/prénom (uniquement lettres, espaces et traits d’union) :
    ^[A-Za-zÀ-ÖØ-öø-ÿ- ]+$
    
    # Mot de passe (au moins 8 caractères, avec majuscules, minuscules, chiffre et caractère spécial) :
    ^(?=.[a-z])(?=.[A-Z])(?=.\d)(?=.[\W_]).{8,}$
    
    # Adresse e-mail : Permet de valider une adresse e-mail standard.
    ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}$
    
    # Numériques : Entier positif (sans signe)
    ^\d+$
    
    # Entier négatif ou positif (optionnellement signé)
    ^-?\d+$
    
    # Nombre décimal avec point ou virgule
    ^-?\d+[.,]?\d*$
    
    # Montant monétaire en euros (ex. 1 234,56 € ou 1234.56)
    ^\d{1,3}(?:[ \.,]?\d{3})*(?:[.,]\d{2})?$
    
    # 🔠 Lettres et caractères : Nom ou prénom simple (lettres, espace, tiret, accents)
    ^[A-Za-zÀ-ÖØ-öø-ÿ\- ]{2,50}$
    
    # Champ alphanumérique (lettres + chiffres)
    ^[A-Za-z0-9]+$
    
    # Champ alphanumérique avec espaces
    ^[A-Za-z0-9 ]+$
    
    # Champ alphanumérique étendu avec ponctuation simple
    ^[A-Za-z0-9À-ÖØ-öø-ÿ .,'’"\-()?!]+$
    
    # 📧 Internet / Web : Adresse e-mail (version stricte)
    ^[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,}$
    
    # URL de site Web
    ^(https?:\/\/)?(www\.)?[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}(\/\S*)?$
    
    # Adresse IPv4 (simple)
    ^(\d{1,3}\.){3}\d{1,3}$
    
    # 📅 Dates et heures : Date au format français (jj/mm/aaaa)
    ^(0[1-9]|[0-9]|3)\/(0[1-9]|1[0-2])\/(19|20)\d{2}$
    
    # Date au format ISO (aaaa-mm-jj)
    ^\d{4}-\d{2}-\d{2}$
    
    # Heure au format HH:MM (24h)
    ^([0-9]|2[0-3]):[0-5][0-9]$
    
    # 📞 Téléphone / Contact : Numéro de téléphone français (national)
    ^0[1-9]\d{8}$
    
    # Numéro international (+33, espace ou tiret)
    ^\+33 ?[1-9]( ?\d{2}){4}$
    
    #💬 Autres : Adresse postale libre (avec lettres, chiffres, ponctuation)
    ^[A-Za-z0-9À-ÖØ-öø-ÿ\s'’\-,./#]{5,100}$
    
    # Nom d'utilisateur (lettres, chiffres, underscore, 3-20 caractères)
    ^[a-zA-Z0-9_]{3,20}$
    
    # Mot de passe (8+ caractères, avec maj, min, chiffre, symbole)
    ^(?=.[a-z])(?=.[A-Z])(?=.\d)(?=.[\W_]).{8,}$
    

    Principes de base des expressions régulières pour contrôle de saisie :

    ^ indique le début de la chaîne.

    $ indique la fin de la chaîne.

    [0-9] pour un chiffre, [A-Za-z] pour une lettre.

    {n} pour exiger un nombre exact de caractères.

    \d équivalent à [0-9].

    +, *, {min,max} pour le nombre d’occurrences.

    En HTML, utilisez l’attribut pattern sur vos champs de formulaire pour appliquer ces regex, exemple :
    Adaptez chaque expression selon vos besoins de validation. Pour des exemples plus complexes (dates, montants, etc.), référez-vous aux documentations développées.

    Attention : Ce contrôle doit idéalement être fait à la fois côté client (JavaScript/HTML5) et côté serveur (PHP/Python, etc.) pour garantir la sécurité et l’intégrité des données.

    😁 N’oublier pas de redémarrer les services concerner

    En résumé : La sécurité commence par des mises à jour régulières, la minimisation des informations exposées, la limitation des modules actifs, la restriction des accès, le chiffrement des échanges, l’utilisation d’un WAF, l’implémentation de headers de sécurité, et la surveillance constante des logs et des entrées. Le déploiement et la configuration soigneuse de ModSecurity avec les règles OWASP CRS protègent la grande majorité des attaques par injection côté Apache. Toutes ces mesures visent à réduire la surface d’attaque, à protéger les données et à détecter rapidement toute tentative d’intrusion.

  • Créer son ChatGPT à la maison

    Créer son ChatGPT à la maison

    • Installer un LLM
    • Charger un modèle IA
    • Installer Open WEBUI
    • Configurer Open WEBUI
    • Have a fun !

    Installer un LLM

    Installation d’Ollama du groupe Méta

    Les prérequis pour un utilisateur sont 4 VCPU minimum. Il faut pour faire tournée de petit model (7 Billions de paramètres) 16 Go de RAM. Pour l’espace disque tout dépendra du nombre de model chargé mais 30 Go me semble un minimum tout compris.

    Pour installer Ollama, il n’y a rien de plus simple tout se fait en une commande depuis avec le script d’installation officiel.

     sudo apt install python3 python3-pip git
     curl -fsSL https://ollama.com/install.sh | sh

    Le WARNING est normal dans un environnement virtuel sans pont vers le hardware. Pour lever cette contrainte, il faudra configurer proxmox spécifiquement pour le conteneur si toute fois la machine hôte comprend une carte Nvidia.

    Vérifions que tout fonctionne, en affichant la version installée.

     ollama –version

    Maintenant, vérifiions que le service linux fonctionne.

     service ollama status

    Si vous souhaitez exécuter Open WEBUI sur la même instance, vous pouvez ignoré cette section.

    Nous allons changer l’adresse d’écoute de Ollama pour la faire écouter sur toute les adresses (0.0.0.0) ou une adresse spécifique.

    On modifie le service linux pour la prise en compte d’une nouvelle variable d’environnement.

     sudo vi /etc/systemd/system/ollama.service

    Dans la section service, ajoute la ligne OLLAMA_HOST,

    [Service]
    Environment="OLLAMA_HOST=0.0.0.0:11434"

    On redémarre le service pour une prise en compte

     sudo systemctl daemon-reload
     sudo systemctl restart ollama

    On vérifie que la prise en compte est faite, avec la commande suivante :

     ss -tupln

    S’il la commande indique une étoile alors l’écoute se fait pour tout les adresses IP (Attention IPV6 par défaut). Au cas ou il faut écouter sur les deux protocoles, il faut activer le forwording au niveau TCP/IP.

    Activons le fowording TCP/IP pour tout les protocole TCP dans le fichier de configuration sysctl.conf.

     vim /etc/sysctl.conf

    Ajoutez ou décommentez les lignes suivantes :

    net.ipv4.ip_forward = 1
    net.ipv6.conf.all.forwarding = 1

    Pour appliquez les changements immédiatement

     sudo sysctl -p

    Installation d’un model Hugging face

    Il existe une multitude de model sur Hugging face. Pour le lab, nous installerons le model Llama3.2 car il est peu gourmand en ressources.

     ollama pull Llama3.2

    On test que tout fonctionne depuis l’invite de commande shell.

     ollama run Llama3.2

    Par défaut, le chemin de stockage des models sont :

    • macOS : ~/.ollama/models
    • Linux : /usr/share/ollama/.ollama/models
    • Windows : C:\Users\%username%\.ollama\models

    Il faut s’assure que ces répertoires dispose de suffisamment d’espace sur le FS / partition.

    Le chemin peut être modifiée avec la variable d’environnement OLLAMA_MODELS du fichier ollama.service comme décrit plus pour l’adresse IP.

    Environment="OLLAMA_MODELS=/new/path/to/models"

    Voici quelque exemple de model et de commande ollama.

    Installation d’Open WEBUI

    Les prérequis technique sont une version de python 3.x , le gestionnaire pip et un client git.

     sudo apt install python3 python3-pip git

    Installation d’Open WEBUI et met à jour avec la dernière version disponible.

     pip install open-webui
     python -m pip install –upgrade pip
     open-webui serve

  • Concept : La vision plutôt qu’un plan de réalisation

    Concept : La vision plutôt qu’un plan de réalisation

    Souvent, pour évoquer l’agilité on parle de la vision et du développement par étape.

    L’erreur la plus commune, comme dans l’exemple de construction incrémentale (étape par étape) de « la joconde » allant d’un point de départ a une finalité de produit. Mais cet exemple est trompeur, car il est important de prendre en compte les changements d’orientations en cours de réalisation et de se reposer les questions sur les orientations choisies.

    Exemple commenté entre la joconde et un tableau de Picasso.

    Un plan de développement incrémentale

    Dans les 3 cas de gauche, il y a un point commun ; la finalité . Tous les déroulements, certes différentes mais il converge tous vers la même définition de « la Joconde ».

    Les plans de réalisation démontrent qu’il est possible de :

    • Dans le cas 1, le travail est fait par région. Celles qui avaient le plus de valeur pour le peintre/le public en premier ?
    • Dans le cas 2, par affinage successif de la qualité du rendu.
    • Dans la cas 3, de manière linéaire haut à gauche vers en bas à droite.

    Mais, ils manquent d’agilité les uns comme les autres car tous arrivent au même résultat, c’est dire qu’elles ont suivi le plan initial.

    Dans ces trois cas on est dans du « Vrum » (cycle en V fait en Scrum), c’est à dire, la réalisation d’une prédiction précise. c’est l’un des pièges les plus courant que l’on rencontre le plus souvent dans les trains qui démarrent.

    Une vision par itération successive

    Dans le cas de droite, on montre les différentes étapes de construction du produit (ici la peinture) et chaque étape (innovation) peut être considéré comme une œuvre à part entière.

    A chaque itération, on passe d’un bouquet de rose, à poisson, une poule, un masque, des ombres qui dansent …

    On comprend du coup, qu’il n’y a pas de plan final détaillé et connu d’avance. Les incertitudes de l’artiste guide la réalisation, sans plan final, avec sa capacité à orienter, pivoter et décider de clore ou pas son œuvre.

    On laisse la place a un monde complexe, rempli d’incertitudes, terrain de jeu favori de l’agilité.

    Il n’y a que la réalisation suivi d’une visualisation (la démo 😁) qui permettra à l’artiste d’affiner et de faire évoluer son œuvre.

    En peinture, les analyses aux rayons X d’un grand nombre de tableaux ont montré des constructions similaires, par couches ou itérations successives parfois très différentes du résultat final.

    Voici la vidéo réalisée lors de la création de l’œuvre de Picasso qui démontre les changements d’orientations en cours de réalisation.