[{"content":"Cette page référence tous les mémos et tutoriels sur le site.\n","date":"10 March 2026","externalUrl":null,"permalink":"/aides-memoires/","section":"Aides-mémoires","summary":"","title":"Aides-mémoires","type":"aides-memoires"},{"content":"","date":"10 March 2026","externalUrl":null,"permalink":"/categories/","section":"Categories","summary":"","title":"Categories","type":"categories"},{"content":"","date":"10 March 2026","externalUrl":null,"permalink":"/tags/cyber-secu/","section":"Tags","summary":"","title":"Cyber-Secu","type":"tags"},{"content":" Bienvenue sur mon dépôt d\u0026rsquo;aides-mémoires # Vous trouverez tous mes mémos et tutos dans la rubrique Aides mémoires.\nLa rubrique Catégories vous permet d\u0026rsquo;accéder aux tutoriels et aux mémos, tandis que la rubrique Tags vous permet de choisir un sujet particulier pour filtrer les publications.\n","date":"10 March 2026","externalUrl":null,"permalink":"/","section":"Home","summary":"","title":"Home","type":"page"},{"content":"","date":"10 March 2026","externalUrl":null,"permalink":"/categories/m%C3%A9mo/","section":"Categories","summary":"","title":"Mémo","type":"categories"},{"content":"","date":"10 March 2026","externalUrl":null,"permalink":"/tags/norme/","section":"Tags","summary":"","title":"Norme","type":"tags"},{"content":" Le SOC 2 (System and Organization Controls 2) est un cadre d\u0026rsquo;audit développé par l\u0026rsquo;AICPA (American Institute of Certified Public Accountants). Le SOC 2 est un rapport d\u0026rsquo;attestation délivré par un cabinet d\u0026rsquo;audit tiers (CPA) qui évalue la manière dont une entreprise de services gère les données de ses clients.\nIl est particulièrement crucial pour les entreprises SaaS, Cloud et de services technologiques.\nLes 5 Critères de Service de Confiance (Trust Services Criteria - TSC) # Le SOC 2 s\u0026rsquo;appuie sur cinq piliers. Seul le critère \u0026ldquo;Sécurité\u0026rdquo; est obligatoire ; les autres sont choisis en fonction de la pertinence pour le service rendu.\n1. Sécurité (Security / Common Criteria) - Obligatoire # Importance : C\u0026rsquo;est le socle du rapport. Il garantit que les systèmes sont protégés contre les accès non autorisés, les dommages physiques et les modifications qui pourraient compromettre les autres critères.\nExemples d\u0026rsquo;actions :\nContrôle d\u0026rsquo;accès : Mise en œuvre de l\u0026rsquo;authentification multi-facteurs (MFA) et révision trimestrielle des accès privilégiés. Protection réseau : Utilisation de pare-feu (WAF) et de systèmes de détection d\u0026rsquo;intrusion (IDS/IPS). Gestion des vulnérabilités : Scans de vulnérabilités mensuels et tests d\u0026rsquo;intrusion (Pentest) annuels. 2. Disponibilité (Availability) # Importance : Ce critère évalue si le système est disponible pour l\u0026rsquo;utilisation conformément aux engagements (SLA). Il ne s\u0026rsquo;agit pas seulement de \u0026ldquo;uptime\u0026rdquo;, mais de la capacité à maintenir le service.\nExemples d\u0026rsquo;actions :\nSurveillance (Monitoring) : Mise en place d\u0026rsquo;alertes en temps réel sur les performances des serveurs et la bande passante. Plan de Reprise d\u0026rsquo;Activité (DRP) : Documentation et test annuel d\u0026rsquo;un plan de basculement vers un site de secours. Sauvegardes : Automatisation des sauvegardes avec tests de restauration réguliers pour garantir l\u0026rsquo;intégrité des données récupérées. 3. Intégrité du Traitement (Processing Integrity) # Importance : Garantit que le traitement des données est complet, valide, exact, opportun et autorisé. C\u0026rsquo;est essentiel pour les services financiers ou de transaction de données.\nExemples d\u0026rsquo;actions :\nValidation des entrées : Contrôles applicatifs pour empêcher l\u0026rsquo;injection de données erronées ou malveillantes. Suivi des erreurs : Journalisation de toutes les erreurs de traitement avec un processus formel de résolution. Contrôle de version : Utilisation de Git avec revue de code obligatoire avant tout déploiement en production. 4. Confidentialité (Confidentiality) # Importance : Se concentre sur la protection des données considérées comme confidentielles par contrat ou par politique interne (ex: secrets commerciaux, propriété intellectuelle).\nExemples d\u0026rsquo;actions :\nChiffrement : Chiffrement des données sensibles au repos (AES-256) et en transit (TLS 1.2+). Accords de confidentialité (NDA) : Signature systématique de clauses de confidentialité par tous les employés et sous-traitants. Classification des données : Marquage clair des documents confidentiels et restriction d\u0026rsquo;accès basée sur le principe du \u0026ldquo;moindre privilège\u0026rdquo;. 5. Confidentialité des Données Personnelles (Privacy) # Importance : À ne pas confondre avec la \u0026ldquo;Confidentialité\u0026rdquo; ci-dessus. Ce critère concerne spécifiquement les données personnelles (PII) et leur collecte, utilisation, conservation et divulgation conformément aux lois (RGPD, CCPA).\nExemples d\u0026rsquo;actions :\nPolitique de confidentialité : Publication d\u0026rsquo;une notice d\u0026rsquo;information claire sur la collecte des données. Consentement : Mise en place de mécanismes pour recueillir et gérer le consentement des utilisateurs. Droit à l\u0026rsquo;oubli : Procédure formelle pour supprimer les données personnelles d\u0026rsquo;un client sur simple demande. SOC 2 Type I vs. SOC 2 Type II # Caractéristique SOC 2 Type I SOC 2 Type II Période À un instant T (date précise). Sur une période (ex: 6 ou 12 mois). Objectif Évalue la conception des contrôles. Évalue l\u0026rsquo;efficacité opérationnelle. Valeur Preuve rapide de mise en place. Preuve de maturité et de rigueur. Effort Moins coûteux et plus rapide. Exige des preuves continues (logs, tickets). ","date":"10 March 2026","externalUrl":null,"permalink":"/aides-memoires/soc-2/","section":"Aides-mémoires","summary":"Guide sur le Rapport SOC 2 avec explication de chaque critères et exemples d\u0026rsquo;actions pour chacune d\u0026rsquo;eux.","title":"Rapport SOC 2","type":"aides-memoires"},{"content":"","date":"10 March 2026","externalUrl":null,"permalink":"/tags/soc/","section":"Tags","summary":"","title":"Soc","type":"tags"},{"content":"","date":"10 March 2026","externalUrl":null,"permalink":"/tags/","section":"Tags","summary":"","title":"Tags","type":"tags"},{"content":"","date":"9 March 2026","externalUrl":null,"permalink":"/tags/framework/","section":"Tags","summary":"","title":"Framework","type":"tags"},{"content":" Le NIST Cybersecurity Framework (CSF) 2.0, publié en février 2024, est une évolution majeure du cadre de référence mondial pour la gestion des risques de cybersécurité. Le NIST CSF est un cadre flexible axé sur les résultats (outcomes) plutôt que sur des contrôles rigides.\nStructure du NIST CSF 2.0 # Le cœur du framework est organisé autour de 6 Fonctions clés (contre 5 dans la version 1.1). Ces fonctions représentent les piliers d\u0026rsquo;un programme de cybersécurité complet et holistique.\nFonction Description Simplifiée GOVERN (Gouverner) Établir et surveiller la stratégie, l\u0026rsquo;éthique et la gestion des risques. IDENTIFY (Identifier) Comprendre les actifs, les données et les risques de l\u0026rsquo;organisation. PROTECT (Protéger) Mettre en place des garde-fous pour limiter l\u0026rsquo;impact d\u0026rsquo;une menace. DETECT (Détecter) Identifier l\u0026rsquo;occurrence d\u0026rsquo;un événement de cybersécurité. RESPOND (Répondre) Agir suite à la détection d\u0026rsquo;un incident de cybersécurité. RECOVER (Restaurer) Rétablir les services et capacités impactés par un incident. Détail des Fonctions et Actions Concrètes # 1. GOVERN (Gouverner) - La Nouveauté 2.0 # Importance : Cette fonction souligne que la cybersécurité est un enjeu de direction et non seulement technique. Elle couvre la stratégie, la gestion des risques tiers et les politiques.\nExemples d\u0026rsquo;actions :\nContexte Organisationnel : Identifier et documenter les exigences légales et réglementaires (ex: RGPD, NIS 2). Stratégie de Gestion des Risques : Établir un \u0026ldquo;appétit au risque\u0026rdquo; clair validé par le conseil d\u0026rsquo;administration. Gestion des Risques Tiers : Évaluer la posture de sécurité des fournisseurs critiques avant signature de contrat. Rôles et Responsabilités : Créer une matrice RACI pour les décisions de cybersécurité. 2. IDENTIFY (Identifier) # Importance : On ne peut pas protéger ce que l\u0026rsquo;on ne connaît pas. Cette fonction se concentre sur l\u0026rsquo;inventaire et la compréhension de l\u0026rsquo;écosystème.\nExemples d\u0026rsquo;actions :\nGestion des Actifs : Maintenir un inventaire automatisé de tous les équipements (PC, serveurs, IoT) et logiciels. Évaluation des Risques : Réaliser des analyses de risques régulières sur les processus métiers critiques. Amélioration : Identifier les lacunes du programme de sécurité via des auto-évaluations ou des audits. 3. PROTECT (Protéger) # Importance : Prévenir ou limiter les dommages. C\u0026rsquo;est ici que se trouvent la plupart des mesures techniques de défense.\nExemples d\u0026rsquo;actions :\nGestion des Identités et Accès : Imposer l\u0026rsquo;authentification multi-facteurs (MFA) pour tous les accès distants et privilégiés. Sensibilisation : Mener des campagnes de simulation de phishing mensuelles pour former les employés. Sécurité des Données : Chiffrer les données sensibles \u0026ldquo;au repos\u0026rdquo; (disques durs) et \u0026ldquo;en transit\u0026rdquo; (TLS). Maintenance : Appliquer les correctifs de sécurité (patching) sous 48h pour les vulnérabilités critiques. 4. DETECT (Détecter) # Importance : Plus une intrusion est détectée tôt, moins elle coûte cher. Cette fonction vise la visibilité continue.\nExemples d\u0026rsquo;actions :\nSurveillance Continue : Déployer un outil de type EDR (Endpoint Detection and Response) sur tous les postes. Analyse des Journaux : Centraliser les logs de sécurité dans un SIEM pour corréler les événements suspects. Détection d\u0026rsquo;Anomalies : Configurer des alertes en cas de connexion inhabituelle (ex: connexion d\u0026rsquo;un employé à 3h du matin depuis un pays étranger). 5. RESPOND (Répondre) # Importance : Savoir quoi faire quand l\u0026rsquo;incident survient pour contenir la menace.\nExemples d\u0026rsquo;actions :\nPlanification de la Réponse : Rédiger des \u0026ldquo;Playbooks\u0026rdquo; (procédures) pour les scénarios courants (Ransomware, vol de PC). Communication : Établir une liste de contacts d\u0026rsquo;urgence (juridique, technique, relations presse, autorités). Analyse : Isoler immédiatement un serveur infecté du reste du réseau pour stopper la propagation. Atténuation : Réinitialiser les mots de passe de tous les comptes compromis lors d\u0026rsquo;une attaque. 6. RECOVER (Restaurer) # Importance : Assurer la résilience de l\u0026rsquo;entreprise et le retour à la normale.\nExemples d\u0026rsquo;actions :\nPlan de Continuité : Tester la restauration des sauvegardes critiques au moins une fois par trimestre. Communication de Reprise : Informer les clients et partenaires de la disponibilité des services après un incident. Leçons Apprises : Organiser une réunion \u0026ldquo;Post-Mortem\u0026rdquo; après chaque incident majeur pour améliorer les défenses futures. Comparaison Rapide entre ISO 27001 et NIST CSF 2.0 # Point de comparaison ISO 27001:2022 NIST CSF 2.0 Nature Norme internationale certifiable. Cadre de référence (Framework) volontaire. Approche Basée sur la conformité et le management. Basée sur les résultats et la flexibilité. Structure Clauses (4-10) + 93 Contrôles. 6 Fonctions -\u0026gt; Catégories -\u0026gt; Sous-catégories. Public Organisations cherchant une preuve de confiance. Toutes organisations (PME à Grands Groupes). ","date":"9 March 2026","externalUrl":null,"permalink":"/aides-memoires/nist-csf-2.0/","section":"Aides-mémoires","summary":"Guide sur le Framework NIST CSF 2.0 avec explication de chaque fonction et exemples d\u0026rsquo;actions pour chacune d\u0026rsquo;elles.","title":"Framework NIST CSF 2.0","type":"aides-memoires"},{"content":"","date":"9 March 2026","externalUrl":null,"permalink":"/tags/nist/","section":"Tags","summary":"","title":"NIST","type":"tags"},{"content":"","date":"8 March 2026","externalUrl":null,"permalink":"/tags/iso/","section":"Tags","summary":"","title":"Iso","type":"tags"},{"content":" La norme ISO/IEC 27001:2022 est la norme internationale la plus reconnue pour les systèmes de management de la sécurité de l\u0026rsquo;information (SMSI). Elle fournit un cadre pour aider les organisations de toutes tailles et de tous secteurs à protéger leurs informations de manière systématique.\nStructure de la Norme ISO 27001:2022 # La norme ISO 27001:2022 est structurée en clauses principales (4 à 10) qui définissent les exigences pour l\u0026rsquo;établissement, la mise en œuvre, la maintenance et l\u0026rsquo;amélioration continue d\u0026rsquo;un SMSI, et une annexe (Annexe A) qui contient un ensemble de contrôles de sécurité de l\u0026rsquo;information.\nClauses Principales (4 à 10) # Ces clauses sont obligatoires pour la certification et décrivent le \u0026ldquo;quoi\u0026rdquo; et le \u0026ldquo;comment\u0026rdquo; de la mise en œuvre d\u0026rsquo;un SMSI.\nClause 4: Contexte de l\u0026rsquo;Organisation # Importance: Comprendre le contexte interne et externe de l\u0026rsquo;organisation, les parties intéressées et leurs exigences, ainsi que la portée du SMSI, est fondamental pour s\u0026rsquo;assurer que le SMSI est pertinent et efficace.\nExemples d\u0026rsquo;actions:\nAnalyse du contexte: Réaliser une analyse SWOT (Forces, Faiblesses, Opportunités, Menaces) et PESTLE (Politique, Économique, Sociologique, Technologique, Légale, Environnementale) pour identifier les enjeux internes et externes pertinents pour la sécurité de l\u0026rsquo;information. Identification des parties intéressées: Lister toutes les parties prenantes (clients, employés, fournisseurs, régulateurs, etc.) et leurs exigences en matière de sécurité de l\u0026rsquo;information. Définition du périmètre du SMSI: Définir clairement les limites et l\u0026rsquo;applicabilité du SMSI, y compris les fonctions, les unités organisationnelles, les emplacements physiques et les technologies incluses. Clause 5: Leadership # Importance: L\u0026rsquo;engagement et le soutien de la direction sont cruciaux pour le succès du SMSI. Le leadership doit démontrer son engagement en établissant la politique de sécurité de l\u0026rsquo;information, en attribuant les rôles et responsabilités, et en fournissant les ressources nécessaires.\nExemples d\u0026rsquo;actions:\nÉtablissement de la politique de sécurité de l\u0026rsquo;information: La direction doit approuver et communiquer une politique de sécurité de l\u0026rsquo;information qui est appropriée à l\u0026rsquo;objectif de l\u0026rsquo;organisation. Attribution des rôles et responsabilités: Définir clairement les rôles, responsabilités et autorités pour la sécurité de l\u0026rsquo;information au sein de l\u0026rsquo;organisation. Intégration du SMSI: S\u0026rsquo;assurer que les exigences du SMSI sont intégrées dans les processus métier de l\u0026rsquo;organisation. Clause 6: Planification # Importance: Cette clause exige que l\u0026rsquo;organisation planifie les actions pour adresser les risques et opportunités liés à la sécurité de l\u0026rsquo;information, et pour atteindre les objectifs de sécurité de l\u0026rsquo;information.\nExemples d\u0026rsquo;actions:\nÉvaluation des risques de sécurité de l\u0026rsquo;information: Identifier, analyser et évaluer les risques pour la sécurité de l\u0026rsquo;information. Cela inclut l\u0026rsquo;identification des actifs, des menaces et des vulnérabilités. Traitement des risques de sécurité de l\u0026rsquo;information: Sélectionner les contrôles appropriés de l\u0026rsquo;Annexe A (ou d\u0026rsquo;autres sources) pour réduire les risques à un niveau acceptable. Développer un plan de traitement des risques. Définition des objectifs de sécurité de l\u0026rsquo;information: Établir des objectifs mesurables pour la sécurité de l\u0026rsquo;information et planifier comment les atteindre. Clause 7: Support # Importance: Cette clause traite des ressources nécessaires pour le SMSI, y compris les personnes, les infrastructures, l\u0026rsquo;environnement, la surveillance, les ressources de mesure, les connaissances organisationnelles, la compétence, la sensibilisation, la communication et les informations documentées.\nExemples d\u0026rsquo;actions:\nAllocation des ressources: Assurer la disponibilité des ressources nécessaires (humaines, financières, technologiques) pour le fonctionnement et l\u0026rsquo;amélioration du SMSI. Compétence et sensibilisation: S\u0026rsquo;assurer que le personnel a les compétences nécessaires et est sensibilisé à l\u0026rsquo;importance de la sécurité de l\u0026rsquo;information et à son rôle dans le SMSI. Communication: Établir des processus de communication interne et externe pertinents pour le SMSI. Informations documentées: Maintenir et contrôler les documents et enregistrements requis par la norme et par le SMSI lui-même. Clause 8: Fonctionnement # Importance: Cette clause couvre la mise en œuvre des processus planifiés pour atteindre les objectifs de sécurité de l\u0026rsquo;information et la gestion des changements.\nExemples d\u0026rsquo;actions:\nPlanification et contrôle opérationnels: Mettre en œuvre les plans de traitement des risques et les processus nécessaires pour gérer la sécurité de l\u0026rsquo;information au quotidien. Évaluation des risques de sécurité de l\u0026rsquo;information: Effectuer des évaluations régulières des risques de sécurité de l\u0026rsquo;information. Traitement des risques de sécurité de l\u0026rsquo;information: Mettre en œuvre les contrôles de sécurité de l\u0026rsquo;information identifiés dans le plan de traitement des risques. Clause 9: Évaluation de la Performance # Importance: L\u0026rsquo;organisation doit surveiller, mesurer, analyser et évaluer la performance de son SMSI pour s\u0026rsquo;assurer de son efficacité et de son amélioration continue.\nExemples d\u0026rsquo;actions:\nSurveillance, mesure, analyse et évaluation: Définir des indicateurs clés de performance (KPIs) pour la sécurité de l\u0026rsquo;information et surveiller leur évolution. Réaliser des revues régulières des processus et des contrôles. Audit interne: Mener des audits internes à intervalles planifiés pour déterminer si le SMSI est conforme aux exigences de la norme et aux exigences de l\u0026rsquo;organisation. Revue de direction: La direction doit revoir le SMSI à intervalles planifiés pour s\u0026rsquo;assurer de son adéquation, de son efficacité et de son alignement continu avec la stratégie de l\u0026rsquo;organisation. Clause 10: Amélioration # Importance: Cette clause exige que l\u0026rsquo;organisation améliore continuellement la pertinence, l\u0026rsquo;adéquation et l\u0026rsquo;efficacité du SMSI.\nExemples d\u0026rsquo;actions:\nNon-conformités et actions correctives: Identifier les non-conformités, prendre des mesures pour les corriger et éliminer les causes profondes pour éviter leur récurrence. Amélioration continue: Rechercher activement des opportunités d\u0026rsquo;amélioration du SMSI, en se basant sur les résultats des audits, des revues de direction, des incidents de sécurité et des retours d\u0026rsquo;expérience. Annexe A: Contrôles de Référence de la Sécurité de l\u0026rsquo;Information # L\u0026rsquo;Annexe A de l\u0026rsquo;ISO 27001:2022 contient 93 contrôles de sécurité de l\u0026rsquo;information, organisés en quatre thèmes principaux. Ces contrôles sont des mesures que les organisations peuvent choisir d\u0026rsquo;implémenter pour gérer leurs risques de sécurité de l\u0026rsquo;information. Il est important de noter que tous les contrôles ne sont pas obligatoires; leur applicabilité est déterminée par l\u0026rsquo;évaluation des risques de l\u0026rsquo;organisation et documentée dans une Déclaration d\u0026rsquo;Applicabilité (SoA - Statement of Applicability).\nThèmes de l\u0026rsquo;Annexe A # 1. Contrôles Organisationnels (37 contrôles) # Importance: Ces contrôles définissent la manière dont l\u0026rsquo;organisation gère la sécurité de l\u0026rsquo;information au niveau stratégique et tactique. Ils couvrent les politiques, les rôles, les responsabilités, la gestion des risques, la conformité, et la gestion des relations avec les fournisseurs.\nExemples d\u0026rsquo;actions:\nPolitiques de sécurité de l\u0026rsquo;information (A.5.1): Établir et maintenir un ensemble de politiques de sécurité de l\u0026rsquo;information approuvées par la direction, communiquées à tous les employés et révisées régulièrement. Exemple: Développer une politique d\u0026rsquo;utilisation acceptable des actifs informationnels. Rôles et responsabilités en matière de sécurité de l\u0026rsquo;information (A.5.2): Définir et attribuer clairement les rôles et responsabilités en matière de sécurité de l\u0026rsquo;information à travers l\u0026rsquo;organisation. Exemple: Nommer un Responsable de la Sécurité des Systèmes d\u0026rsquo;Information (RSSI) et établir un comité de sécurité. Gestion des relations avec les fournisseurs (A.5.19 - A.5.22): Mettre en place des processus pour gérer la sécurité de l\u0026rsquo;information dans les relations avec les fournisseurs, y compris l\u0026rsquo;intégration des exigences de sécurité dans les contrats et la surveillance de la conformité. Exemple: Inclure des clauses de sécurité de l\u0026rsquo;information dans tous les contrats avec des fournisseurs tiers et effectuer des audits réguliers des fournisseurs critiques. Gestion des incidents de sécurité de l\u0026rsquo;information (A.5.24 - A.5.28): Établir des processus pour la gestion des incidents de sécurité de l\u0026rsquo;information, y compris la planification, la détection, l\u0026rsquo;évaluation, la réponse et l\u0026rsquo;apprentissage des incidents. Exemple: Mettre en place un plan de réponse aux incidents, former une équipe de réponse aux incidents et effectuer des exercices de simulation d\u0026rsquo;incidents. 2. Contrôles Relatifs aux Personnes (8 contrôles) # Importance: Ces contrôles se concentrent sur la sécurité de l\u0026rsquo;information liée aux individus au sein de l\u0026rsquo;organisation, y compris le recrutement, la formation, la sensibilisation et la gestion des départs.\nExemples d\u0026rsquo;actions:\nFiltrage (A.6.1): Effectuer des vérifications d\u0026rsquo;antécédents pour les candidats à des postes sensibles. Exemple: Réaliser des vérifications de casier judiciaire et des références pour les nouveaux employés ayant accès à des informations confidentielles. Sensibilisation, éducation et formation à la sécurité de l\u0026rsquo;information (A.6.3): Fournir une formation régulière et une sensibilisation à la sécurité de l\u0026rsquo;information à tous les employés. Exemple: Organiser des sessions de formation annuelles sur les menaces de phishing et les bonnes pratiques de mot de passe. Télétravail (A.6.7): Mettre en œuvre des mesures de sécurité spécifiques pour le télétravail. Exemple: Fournir des équipements sécurisés (ordinateurs portables chiffrés), des connexions VPN obligatoires et des directives claires pour le travail à distance. 3. Contrôles Physiques (14 contrôles) # Importance: Ces contrôles visent à protéger les informations et les actifs informationnels contre les menaces physiques, telles que le vol, les dommages ou l\u0026rsquo;accès non autorisé.\nExemples d\u0026rsquo;actions:\nPérimètres de sécurité physique (A.7.1): Mettre en place des périmètres de sécurité physique autour des zones contenant des informations sensibles. Exemple: Installer des clôtures, des caméras de surveillance et des systèmes de contrôle d\u0026rsquo;accès par badge autour des centres de données. Accès physique (A.7.2): Contrôler l\u0026rsquo;accès physique aux zones sécurisées. Exemple: Utiliser des cartes d\u0026rsquo;accès, des systèmes biométriques et des journaux d\u0026rsquo;accès pour enregistrer toutes les entrées et sorties des salles de serveurs. Protection contre les menaces physiques et environnementales (A.7.5): Protéger les équipements et les informations contre les menaces environnementales (incendie, inondation, etc.). Exemple: Installer des systèmes de détection et d\u0026rsquo;extinction d\u0026rsquo;incendie, des capteurs d\u0026rsquo;humidité et des systèmes de climatisation dans les salles de serveurs. Bureau et écran propres (A.7.7): Mettre en œuvre une politique de bureau et d\u0026rsquo;écran propres pour réduire les risques d\u0026rsquo;accès non autorisé aux informations. Exemple: Exiger que les documents confidentiels soient rangés sous clé et que les écrans d\u0026rsquo;ordinateur soient verrouillés lorsqu\u0026rsquo;ils ne sont pas utilisés. 4. Contrôles Technologiques (34 contrôles) # Importance: Ces contrôles concernent la mise en œuvre de mesures techniques pour protéger les systèmes d\u0026rsquo;information, les réseaux et les données contre les menaces cybernétiques.\nExemples d\u0026rsquo;actions:\nGestion des identités (A.8.1): Gérer les identités numériques des utilisateurs et les droits d\u0026rsquo;accès. Exemple: Mettre en œuvre un système de gestion des identités et des accès (IAM) avec authentification unique (SSO) et authentification multi-facteurs (MFA). Authentification sécurisée (A.8.5): Utiliser des méthodes d\u0026rsquo;authentification robustes. Exemple: Exiger des mots de passe complexes, des changements réguliers de mot de passe et l\u0026rsquo;utilisation de MFA pour l\u0026rsquo;accès aux systèmes critiques. Protection contre les logiciels malveillants (A.8.7): Mettre en œuvre des mesures pour prévenir, détecter et récupérer des attaques de logiciels malveillants. Exemple: Déployer des logiciels antivirus et anti-malware sur tous les postes de travail et serveurs, et maintenir les définitions à jour. Sauvegarde des informations (A.8.13): Effectuer des sauvegardes régulières des informations critiques et tester leur restauration. Exemple: Mettre en place une politique de sauvegarde quotidienne des données critiques, stocker les sauvegardes hors site et tester la restauration des données au moins une fois par an. Journalisation et surveillance (A.8.16): Enregistrer les événements pertinents et surveiller les activités pour détecter les anomalies. Exemple: Mettre en place un système de gestion des informations et des événements de sécurité (SIEM) pour collecter et analyser les journaux de sécurité des systèmes et applications critiques. Chiffrement (A.8.24): Utiliser le chiffrement pour protéger la confidentialité et l\u0026rsquo;intégrité des informations sensibles. Exemple: Chiffrer les données au repos (disques durs, bases de données) et en transit (communications réseau via TLS/SSL). Déclaration d\u0026rsquo;Applicabilité (SoA - Statement of Applicability) # Importance: La SoA est un document essentiel qui justifie la sélection des contrôles de l\u0026rsquo;Annexe A. Elle doit lister tous les contrôles de l\u0026rsquo;Annexe A, indiquer si chaque contrôle est implémenté ou non, et fournir une justification pour l\u0026rsquo;inclusion ou l\u0026rsquo;exclusion de chaque contrôle. Pour les contrôles exclus, une justification claire doit être fournie (par exemple, le risque n\u0026rsquo;est pas applicable à l\u0026rsquo;organisation).\nExemples d\u0026rsquo;actions:\nÉlaboration de la SoA: Après l\u0026rsquo;évaluation des risques et la sélection des contrôles, rédiger la Déclaration d\u0026rsquo;Applicabilité en détaillant la pertinence de chaque contrôle pour l\u0026rsquo;organisation. Révision et approbation de la SoA: Faire réviser et approuver la SoA par la direction pour s\u0026rsquo;assurer qu\u0026rsquo;elle reflète fidèlement la position de l\u0026rsquo;organisation en matière de sécurité de l\u0026rsquo;information. Comparaison Rapide entre ISO 27001 et NIST CSF 2.0 # Point de comparaison ISO 27001:2022 NIST CSF 2.0 Nature Norme internationale certifiable. Cadre de référence (Framework) volontaire. Approche Basée sur la conformité et le management. Basée sur les résultats et la flexibilité. Structure Clauses (4-10) + 93 Contrôles. 6 Fonctions -\u0026gt; Catégories -\u0026gt; Sous-catégories. Public Organisations cherchant une preuve de confiance. Toutes organisations (PME à Grands Groupes). ","date":"8 March 2026","externalUrl":null,"permalink":"/aides-memoires/iso-27001-2022/","section":"Aides-mémoires","summary":"Guide sur la norme ISO 27001:2022 avec explication de chaque clause et exemples d\u0026rsquo;actions pour chacune d\u0026rsquo;elles.","title":"Norme ISO 27001:2022","type":"aides-memoires"},{"content":"","date":"12 February 2026","externalUrl":null,"permalink":"/tags/automatisation/","section":"Tags","summary":"","title":"Automatisation","type":"tags"},{"content":" Gestionnaire de tâches # Appuyez sur ctrl + maj + esc pour ouvrir le gestionnaire de tâches Allez dans l\u0026rsquo;onglet Application de démarrage Sélectionnez le programme voulu et passez son statut à : Activé si vous voulez que le programme démarre avec la machine Désactivé si vous ne voulez pas que le programme démarre avec la machine Si le programme que vous cherchez n\u0026rsquo;est pas dans la liste du gestionnaire de tâches, passez à la partie suivante.\nDossier de démarrage # Appuyez sur win + R pour ouvrir la boîte de dialogue Exécuter Tapez shell:startup et appuyez sur Entrée pour ouvrir le dossier de démarrage Copiez-collez le raccourci de votre application dans le dossier Vous pouvez alors modifier le statut de l\u0026rsquo;application dans le gestionnaire de tâches (il sera à Activé par défaut) ","date":"12 February 2026","externalUrl":null,"permalink":"/aides-memoires/start-at-boot/","section":"Aides-mémoires","summary":"Comment configurer les applications à lancer au démarrage de l\u0026rsquo;ordinateur","title":"Démarrage automatique d'application","type":"aides-memoires"},{"content":"","date":"12 February 2026","externalUrl":null,"permalink":"/tags/windows/","section":"Tags","summary":"","title":"Windows","type":"tags"},{"content":"","date":"11 February 2026","externalUrl":null,"permalink":"/tags/donn%C3%A9es/","section":"Tags","summary":"","title":"Données","type":"tags"},{"content":"","date":"11 February 2026","externalUrl":null,"permalink":"/tags/redondance/","section":"Tags","summary":"","title":"Redondance","type":"tags"},{"content":"","date":"11 February 2026","externalUrl":null,"permalink":"/tags/sauvegarde/","section":"Tags","summary":"","title":"Sauvegarde","type":"tags"},{"content":" 1. Installation de Syncthing sur les ordinateurs # Sous Windows # Téléchargez et installez Syncthing depuis la liste syncthing.net/downloads Une fois installé, Syncthing devrait démarrer et être accessible via votre navigateur web (à l\u0026rsquo;adresse http://localhost:8384 avec la configuration par défaut). Sous Linux # Installez Syncthing via la commande suivante :\nsudo apt install syncthing Ensuite, activez et démarrez le service avec les commandes suivantes :\nsudo systemctl enable syncthing@\u0026lt;nom_utilisateur\u0026gt;.service sudo systemctl start syncthing@\u0026lt;nom_utilisateur\u0026gt;.service Vous pouvez enfin vérifier le status du service avec la commande suivante :\nsystemctl status syncthing@\u0026lt;nom_utilisateur\u0026gt;.service 3. Connexion des Appareils Syncthing # Une fois que Syncthing est installé sur vos appareils, vous devez les ajouter entre eux.\nPour ce faire, allez dans le menu Action, puis cliquez sur Afficher mon ID. Ensuite, sur votre second appareil, cliquez sur Ajouter un appareil dans la partie Autres appareils puis entrez l\u0026rsquo;ID du premier appareil pour l\u0026rsquo;ajouter. Faites la même chose dans l\u0026rsquo;autre sens pour ajouter le second appareil au premier.\nUne fois un appareil ajouté, il doit apparaître avec le statut Connecté dans l\u0026rsquo;interface d\u0026rsquo;administration.\n4. Configuration du Dossier Partagé Syncthing # Pour créer un partage entre deux appareils, il suffit d\u0026rsquo;entrer le chemin du dossier à partager, les appareils inclus ainsi que la relation de partage.\nChaque appareil dans le partage peut avoir une relation différente tel que Envoi \u0026amp; réception, Envoi seulement ou encore Réception seulement.\nUne fois le partage créé, une invitation sera envoyée à tous les membres du partage. Ils devront alors choisir le dossier local lié au partage ainsi que le type de relation. Syncthing analysera automatiquement les différences entre les dossiers et commencera la synchronisation selon les relations configurées.\n","date":"11 February 2026","externalUrl":null,"permalink":"/aides-memoires/redondence-fichier/","section":"Aides-mémoires","summary":"Mis en place d\u0026rsquo;une synchronisation de fichiers entre deux appareils via Syncthing","title":"Synchronisation de fichiers","type":"aides-memoires"},{"content":"","date":"11 February 2026","externalUrl":null,"permalink":"/tags/syncthing/","section":"Tags","summary":"","title":"Syncthing","type":"tags"},{"content":"","date":"11 February 2026","externalUrl":null,"permalink":"/categories/tuto/","section":"Categories","summary":"","title":"Tuto","type":"categories"},{"content":" 1. Introduction à l\u0026rsquo;Active Directory # L\u0026rsquo;Active Directory (AD) est un service d\u0026rsquo;annuaire développé par Microsoft pour les réseaux Windows Server. Il sert de base de données centralisée contenant la liste des usagers, groupes, ordinateurs et autres ressources membres d\u0026rsquo;un domaine.\nRôle principal : Authentifier et autoriser tous les utilisateurs et ordinateurs dans un réseau de type domaine Windows, en attribuant et en appliquant des politiques de sécurité.\nConcepts Fondamentaux # Un service d\u0026rsquo;annuaire est un service réseau qui identifie toutes les ressources d\u0026rsquo;un réseau et les rend accessibles aux utilisateurs et aux applications. Ces services sont importants car ils permettent de nommer, de décrire, de repérer, de gérer et de sécuriser ces ressources de manière cohérente.\nAnnuaire : Service réseau qui identifie toutes les ressources du réseau et les rend accessibles. Domaine : Unité centrale de la structure logique d\u0026rsquo;AD. C\u0026rsquo;est une collection d\u0026rsquo;entités de sécurité comme des comptes d\u0026rsquo;utilisateurs et d\u0026rsquo;ordinateurs, imprimantes et dossiers partagés. Contrôleur de Domaine (DC) : Serveur qui répond aux demandes d\u0026rsquo;authentification de sécurité au sein d\u0026rsquo;un domaine. Catalogue Global : Un contrôleur de domaine qui enregistre une copie complète de tous les objets de l’annuaire pour son domaine hôte et une copie partielle en lecture seule de tous les objets pour tous les autres domaines de la forêt. Il est interrogé lors de l’authentification pour récupérer la liste des groupes « universels » dont l’utilisateur est membre. 2. Structure Logique de l\u0026rsquo;AD # L\u0026rsquo;organisation de l\u0026rsquo;AD repose sur une hiérarchie permettant une gestion granulaire :\nÉlément Description Forêt Le conteneur de plus haut niveau regroupant un ou plusieurs arbres de domaines. Arbre Hiérarchie de domaines partageant un espace de noms contigu. Domaine Frontière administrative et de sécurité. Unité d\u0026rsquo;Organisation (OU) Conteneur utilisé pour organiser les objets (utilisateurs, groupes, ordinateurs) au sein d\u0026rsquo;un domaine et y appliquer des GPO. 3. Rôles et Services AD # Windows Server propose plusieurs rôles spécifiques pour étendre les capacités de l\u0026rsquo;annuaire :\nAD DS (Active Directory Domain Services) : Gestion des domaines, des utilisateurs, des groupes, et des stratégies de sécurité au sein d’un réseau. AD FS (Active Directory Federation Services) : Fournit une authentification unique (SSO) et fédère les identités pour un accès sécurisé aux applications. AD CS (Active Directory Certificate Services) : Gère les certificats numériques pour l\u0026rsquo;authentification, le chiffrement, et les signatures numériques. 4. Gestion des Objets et Sécurité # Utilisateurs et Groupes # SID (Security Identifier) : Identifiant unique pour chaque utilisateur ou groupe. Types de Groupes : Sécurité : Permet d’attribuer des permissions. Distribution : Utilisé pour les applications de courriels. Méthode AGDLP : Recommandation de cybersécurité pour la gestion des permissions (Accounts -\u0026gt; Global Groups -\u0026gt; Domain Local Groups -\u0026gt; Permissions). Stratégies de Groupe (GPO) # Les GPO (Group Policy Objects) permettent de centraliser la configuration des postes et des utilisateurs.\nObjectifs : Simplifier la gestion des postes pour le service informatique, activer ou restreindre certaines fonctionnalités, distribuer des applications, et centraliser le contrôle et la gestion de la sécurité des ressources informatiques. Niveaux d\u0026rsquo;application : Les stratégies de groupe peuvent être appliquées à différents niveaux : local, site, domaine, et unité d\u0026rsquo;organisation. Priorité : L\u0026rsquo;option \u0026ldquo;Refuser\u0026rdquo; est toujours prioritaire. L\u0026rsquo;héritage peut être bloqué ou forcé (\u0026ldquo;Appliqué\u0026rdquo;). 5. Permissions et Partages # La gestion des accès repose sur deux types de permissions :\nPermissions de Partage : S\u0026rsquo;appliquent lors de l\u0026rsquo;accès via le réseau. Permissions NTFS : S\u0026rsquo;appliquent localement et via le réseau, offrant des options plus fines (Lecture, Écriture, Afficher le contenu du dossier, Lecture et exécution, Modifier, Contrôle total). Règle d\u0026rsquo;or : La permission effective est la somme des autorisations, mais l\u0026rsquo;option REFUSER est prioritaire et l\u0026rsquo;emporte toujours sur les autres autorisations. Il est recommandé d\u0026rsquo;utiliser les groupes d\u0026rsquo;utilisateurs pour attribuer collectivement des autorisations et d\u0026rsquo;éviter d\u0026rsquo;attribuer des autorisations directement aux utilisateurs sur un dossier.\n6. Intégration et Évolution # LDAP : L\u0026rsquo;Active Directory est une implémentation de LDAP (Lightweight Directory Access Protocol) avec des ajouts spécifiques à Microsoft. LDAP est un protocole d\u0026rsquo;accès aux informations qui permet d\u0026rsquo;échanger des renseignements entre les annuaires compatibles. Azure AD (Entra ID) : Version cloud de l\u0026rsquo;identité Microsoft, offrant des fonctionnalités de gestion d\u0026rsquo;identité et d\u0026rsquo;accès pour les applications cloud et hybrides. Il existe des différences entre l\u0026rsquo;AD local et Azure AD. Linux : Il est possible de joindre des systèmes Linux à un domaine Active Directory pour centraliser l\u0026rsquo;authentification, notamment dans des environnements mixtes Windows et Linux. Des alternatives à l\u0026rsquo;AD pour les infrastructures Linux incluent OpenLDAP et FreeIPA. ","date":"4 February 2026","externalUrl":null,"permalink":"/aides-memoires/active-directory-/","section":"Aides-mémoires","summary":"Mémo sur les points importants sur les active directory","title":"Active Directory","type":"aides-memoires"},{"content":"","date":"4 February 2026","externalUrl":null,"permalink":"/tags/active-directory/","section":"Tags","summary":"","title":"Active Directory","type":"tags"},{"content":"","date":"4 February 2026","externalUrl":null,"permalink":"/tags/gouvernence/","section":"Tags","summary":"","title":"Gouvernence","type":"tags"},{"content":"","date":"16 January 2026","externalUrl":null,"permalink":"/tags/architecture/","section":"Tags","summary":"","title":"Architecture","type":"tags"},{"content":" Part 1: Introduction # Chapitre 1 : The Meaning of Security # Chapter 2 : The Meaning of Architecture # Chapter 3 : Security Architecture Model # The approach to developing an enterprise security architecture that is proposed in this book is based upon a six-layer model. This model is used as the basis of an architecture development process. By following the development of the enterprise architecture in line with the layers of the model, the methodology becomes somewhat self-evident.\nThe SABSA® Model # To establish a layered model of how a security architecture is created, it is useful to return for a moment to the use of the word in its conventional sense: the construction of buildings.\nThe SABSA® Model comprises six layers. Each layer represents the view of a different player in the process of specifying, designing, constructing and using the building.\nLayer Domain The Business View Contextual Security Architecture The Architect’s View Conceptual Security Architecture The Designer’s View Logical Security Architecture The Builder’s View Physical Security Architecture The Tradesman’s View Component Security Architecture The Facilities Manager’s View Operational Security Architecture There is another configuration of these six layers.\nIn this diagram Operational Security Architecture has been placed vertically across the other five layers. This is because operational security issues arise at each and every one of the other five layers. Operational security has a meaning in the context of each of these other layers.\nFor detailed analysis of each of the six layers, the SABSA® Model also uses the same six questions that are used in the Zachman Framework and which were articulated by Rudyard Kipling in his poem ‘I Keep Six Honest Serving-Men’:\nWhat, Why, How, Who, Where and When\nTo maintain the parallel with building construction, the questions are used as follows:\nWhat sort of building is needed? Why do you want this building? The goals that you want to achieve. How will it be used? The detailed functional description. Who will use the building, including the types of people, their physical mobility, the numbers of them expected, and so on? Where should it be located, and what is its geographical relationship to other buildings and to the infrastructure (such as roads, railways etc)? When will it be used? The times of day, week, year, and the pattern of usage over time. When designing a secure business information system, the questions become :\nWhat type of information system is it and for what will it be used? Why will it be used? How will it be used? Who will use it? Where will it be used? When will it be used? These are the characteristic questions that you must ask. From the analysis of the replies you receive, you should be able to gain an understanding of the business requirements for the secure system. From those you should be able to synthesise a systems architecture and a security architecture that meets those requirements.\nIn the SABSA® Model this business view is called the contextual security architecture. It is a description of the business context in which your secure systems must be designed, built and operated.\nThere simply is no substitute for doing architecture work the proper way. You may try to take shortcuts, but your efforts will most likely result in failure, which costs the business more money, delivers less benefit, and destroys the confidence that business people may have in information and communications technology as the means to enable business development.\nEach layer is also analysed vertically using six key questions. In the model presented here, the contextual security architecture is concerned with:\nWhat? The business, its assets to be protected (brand, reputation, etc.) and the business needs for information security (security as a business enabler, secure electronic business, operational continuity and stability, compliance with the law, etc.); Why? The business risks expressed in terms of assets, goals, success factors and the threats, impacts and vulnerabilities that put these at risk, driving the need for business security (brand protection, fraud prevention, loss prevention, legal obligations, business continuity, etc.); How? The business processes that require security (business interactions and transactions, business communications, etc.); Who? The organisational aspects of business security (management structures, supply chain structures, out-sourcing relationships, strategic partnerships); Where? The business geography and location-related aspects of business security (the global village market place, distributed corporate sites, remote working, etc.); When? The business time dependencies and time-related aspects of business security in terms of both performance and sequence (business transaction throughput, lifetimes and deadlines, just-in-time operations, time-to-market, etc.). The Architect’s View # An architect is a visionary who creates the concept of how the system will be built, and sets the design rules.\nThe architect’s view is the overall concept by which the business requirements of the enterprise may be met. Thus this layer of the architectural model is also referred to as the conceptual security architecture. It defines principles and fundamental concepts that guide the selection and organisation of the logical and physical elements at the lower layers of abstraction.\nWhen describing the enterprise security architecture, this is the place to describe the security concepts and principles that you will use. These include:\nWhat you want to protect, expressed in the SABSA® Model in terms of a SABSA® Business Attributes Profile? ⇒ What? — Business Attributes Why the protection is important, in terms of control objectives? ⇒ Why? — Control Objectives – the motivation for security How you want to achieve the protection, in terms of high-level technical and management security strategies? ⇒ How? — Major security strategies and layering principles Who is involved in security management, in terms of entity relationship models, and the trust framework within which entities interact with one another? ⇒ Who? — The security entities and their trust relationships Where you want to achieve the protection conceptualised in terms of security domains? ⇒ Where? — The security domain model When is the protection relevant, in terms of both points in time and periods of time? ⇒ When? — The time dependence of security The Designer’s View # The designer must realise the architect’s vision as a meaningful design.\nThe designer has to interpret the architect’s conceptual vision and turn it into a logical structure that can be engineered to create a real building.\nIn the world of business computing and data communications, this design process is often called ‘systems engineering’. It involves the identification and specification of the logical architectural elements of an overall system. This view models the business as a system, with system components that are themselves sub-systems. It shows the major architectural security elements in terms of logical security services, and describes the logical flow of control and the relationships between these logical elements. It is therefore also known as the logical security architecture.\nThe logical security architecture should reflect and represent all of the major security strategies in the conceptual security architecture. At this logical level, everything from the higher layers is transformed into a series of logical abstractions.\nThe logical security architecture is concerned with:\nWhat? Business information is a logical representation of the real business. It is this business information that needs to be secured; Why? Specifying the security policy requirements (high-level security policy, registration authority policy, certification authority policy, physical domain policies, logical domain policies, etc.) for securing business information; How? Specifying the logical security services (entity authentication, confidentiality protection, integrity protection, non-repudiation, system assurance, etc.) and how they fit together as common re-usable building blocks into a complex security system that meets the overall business requirements; Who? Specifying the entities (users, security administrators, auditors, etc.) and their inter-relationships, attributes, authorised roles and privilege profiles in the form of a schema; Where? Specifying the security domains and inter-domain relationships (logical security domains, physical security domains, security associations); When? Specifying the security processing cycle (registration, certification, login, session management, etc.); The Builder’s View # The builder constructs the physical system.\nThe builder’s job is to choose and assemble the physical elements that will make the logical design come to life as a real construction. This view is therefore also referred to as the ‘physical security architecture’.\nIn the world of business information systems, the designer produces a set of logical abstractions that describe the system to be built. These need to be turned into a physical security architecture model that describes the actual technology model and specifies the functional requirements of the various system components.\nIn total, the physical security architecture is concerned with:\nWhat? Specifying the business data model and the security-related data structures (tables, messages, pointers, certificates, signatures, etc.); Why? Specifying rules that drive logical decision-making within the system (conditions, practices, procedures and actions); How? Specifying security mechanisms (encryption, access control, digital signatures, virus scanning, etc.) and the physical machines upon which these mechanisms will be hosted; Who? Specifying the people dependency in the form of the users, the applications that they use and the security user interface (screen formats and user interactions); Where? Specifying security technology infrastructure (physical layout of the hardware, software and communications lines); When? Specifying the time dependency in the form of execution control structures (sequences, events, lifetimes and time intervals). The Tradesman’s View # The construction process needs a range of different skills and component parts.\nWhen the builder plans the construction process, she or he needs to assemble a team of experts in each of the building trades that will be needed. Each one of these brings some very specific production skills and some very specific products to the overall construction process. It is the same in the construction of information systems. The builder needs to assemble a series of products from specialist vendors and a team with the integration skills to join these products together during an implementation of the design.\nEach of the integrators is the equivalent of a tradesman, working with specialist products and system components that are the equivalent of building materials and components. Some of these ‘trades’ are hardware-related, some are software-related, and some are service oriented. Hence this layer of the architectural model is also called the ‘component security architecture’.\nThe component security architecture is concerned with:\nWhat? Data field specifications, address specifications and other detailed data structure specifications; Why? Security standards; How? Products and tools (both hardware and software); Who? User identities, privileges, functions, actions and access control lists (ACLs); Where? Computer processes, node addresses, and inter-process protocols; When? Security step timings and sequencing. The Facilities Manager’s View # The facilities manager runs the building in its operational lifetime.\nWhen the building is finished, those who architected, designed and constructed it move out, but someone has to run the building during its lifetime. Such a person is often called the facilities manager. The framework for dealing with the operation of the building and its various services, maintaining it in good working order, and monitoring how well it is performing in meeting the requirements is called the ‘operational security architecture’.\nIn the realm of business information systems the operational architecture is concerned with classical systems operations work. Here the focus of attention is only on the security-related parts of that work.\nThe operational security architecture is concerned with the following:\nWhat? Ensuring the operational continuity of the business systems and information processing, and maintaining the security of operational business data and information (confidentiality, integrity, availability, auditability and accountability); Why? To manage operational risks and hence to minimise operational failures and disruptions; How? Performing specialised security-related operations (user security administration, system security administration, data back-ups, security monitoring, emergency response procedures, etc.); Who? Providing operational support for the security-related needs of all users and their applications (business users, operators, administrators, etc.); Where? Maintaining the system integrity and security of all operational platforms and networks (by applying operational security standards and auditing the configuration against these standards); When? Scheduling and executing a timetable of security-related operations. However, referring back to diagram in the SABSA® Model section, there is another dimension to the operational security architecture – its vertical relationship with the other five layers of the model. Thus the operational security architecture needs to be interpreted in detail at each and every one of the other five layers.\nHere are some examples of the type of operational activity that is implied with regard to each of the layers.\nThe Operational Security Architecture # Layer Operational activities Contextual Layer Business policymaking, business risk assessment process, business requirements collection and specification, organisational and cultural development, etc. Conceptual Layer Major programmes for training and awareness, business continuity management, audit and review, process development for registration, authorisation, administration and incident handling, development of standards and procedures, etc. Logical Layer Security policymaking, information classification, system classification, management of security services, security of service management, negotiation of inter-operable standards for security services, audit trail monitoring and invocation of actions, etc. Physical Layer Development and execution of security rules, practices and procedures, including: cryptographic key management, communication of security parameters between parties, synchronisation between parties; ACL maintenance and distribution of ACEs, backup management (storing, labelling, indexing, etc.), virus pattern search maintenance, event log file management and archiving, etc. Component Layer Products, technology, evaluation and selection of standards and tools, project management, implementation management, operation and administration of individual components, etc. The Inspector’s View # Providing assurance through audit and inspection.\nThe inspector’s view is concerned with providing assurance that the architecture is complete, consistent, robust and ‘fitfor-purpose’ in every way.\nIn the realm of information systems security this is the process of security auditing carried out by computer auditors or systems quality assurance personnel.\nHowever, the SABSA® Model does not recognise this as a separate architectural view. The SABSA® approach to audit and assurance is that the architecture model as a whole supports these needs. The existence of such an architecture is one of the ways in which the auditors will establish that security is being applied in a systematic and appropriate way. The framework itself can provide a means by which to structure the audit process. In addition, security audit and review is addressed as one of the major strategic programmes within the operational security architecture associated with the conceptual layer.\nThe SABSA® Matrix # In the above sections, each of the six horizontal layers of abstraction of the architecture model has been examined. Each of the sections has also introduced a series of vertical cuts through each of these horizontal layers, answering the questions:\nWhat are you trying to do at this layer? – The assets to be protected by your security architecture; Why are you doing it? – The motivation for wanting to apply security, expressed in the terms of this layer; How are you trying to do it? – The functions needed to achieve security at this layer; Who is involved? – The people and organisational aspects of security at this layer; Where are you doing it? – The locations where you apply your security, relevant to this layer; When are you doing it? – The time-related aspects of security relevant to this layer. These six vertical architectural elements are now summarised for all six horizontal layers. This gives a 6×6 matrix of cells, which represents the whole model for the enterprise security architecture called the SABSA® Matrix.\nIf you can address the issues raised by each and every one of these cells, then you will have covered the entire range of questions to be answered, and you can have a high level of confidence that your security architecture is complete. The process of developing an enterprise security architecture is a process of populating all of these 36 cells.\nThe 36-Cell SABSA® Matrix # Assets (What) Motivation (Why) Process (How) People (Who) Location (Where) Time (When) Contextual The Business Business Risk Model Business Process Model Business Organisation and Relationships Business Geography Business Time Dependencies Conceptual Business Attributes Profile Control Objectives Security Strategies and Architectural Layering Security Entity Model and Trust Framework Security Domain Model Security-Related Lifetimes and Deadlines Logical Business Information Model Security Policies Security Services Entity Schema and Privilege Profiles Security Domain Definitions and Associations Security Processing Cycle Physical Business Data Model Security Rules, Practices and Procedures Security Mechanisms Users, Applications and the User Interface Platform and Network Infrastructure Control Structure Execution Component Detailed Data Structures Security Standards Security Products and Tools Identities, Functions, Actions and ACLs Processes, Modes, Addresses and Protocols Security Step Timing and Sequencing Operational Assurance of Operational Continuity Operational Risk Management Security Service Management and Support Application and User Management Support Security of Sites, networks and Platforms Security Operations Schedule Detailed SABSA® Matrix for the Operational Layer # When one examines the lowest layer (operational security architecture) of the 36-Cell SABSA® Matrix, and refers back to the Operational Security Architecture, it becomes clear that this operational layer can be further broken out into a Matrix mapping to each of the five layers above. In other words, there are operational aspects associated with each of the contextual, conceptual, logical, physical and component layers. This more detailed insight into the operation security architecture is provided in the Operational Security Architecture Matrix.\nThe Operational Security Architecture Matrix # Assets (What) Motivation (Why) Process (How) People (Who) Location (Where) Time (When) Contextual Business Requirements Collection; Information Classification Business Risk Assessment; Corporate Policy Making Business-Driven Information Security Management Programme Business Security Organisation Management Business Field Operations Management Business Calendar \u0026amp; Timetable Management Conceptual Business Continuity Management Security Audit \u0026amp; Assurance Levels; Measurement, Metrics \u0026amp; Benchmarking Incident Response; Disaster Recovery; Change Control Programme Security Training; Awareness \u0026amp; Culture Development Security Domain Management Security Operation Schedule Management Logical Information Security; System Integrity Detailed Security Policy Making; Policy Compliance; Monitoring; Intelligence Gathering Intrusion Detection; Event Monitoring; Process Development; Security Service Management, System Development Controls; Configuration Management Access Control \u0026amp; Privilege Profile Administration Application Security Administration \u0026amp; Management Managing Application Deadlines \u0026amp; Cut-off Physical Database Security Software Integrity Vulnerability Assessment; Penetration Testing; Threat Assessment Rule Definition; Key Management; ACL Maintenance; Backup Admin; Computer Forensics; Event Log Admin; Anti-Virus Admin User Support \u0026amp; Help Desk Network Security Management; Site Security Management User Account Aging; Password Aging; Crypto Key Aging; Administering Time Windows for Access Control Component Product \u0026amp; Tool Security \u0026amp; Integrity CERT Notifications; Research on Threats \u0026amp; Vulnerabilities Product Procurement; Project Management, Operations Management Personnel Vetting; User Administration Platform, Workstation \u0026amp; Equipment Security Management Time-out Configuration; Detailed Operation Sequence To Summarise: The Security Architecture Model # The SABSA® Model for Security Architecture Development used in this book has six layers:\nContextual security architecture – the business view; Conceptual security architecture – the architect’s view; Logical security architecture – the designer’s view; Physical security architecture – the builder’s view; Component security architecture – the tradesman’s view; Operational security architecture – the facilities manager’s view. The operational layer can be visualised as cutting across the other five layers, since there are operational aspects to each of these layers. Each of these six layers is further analysed by asking six basic questions:\nWhat? Why? How? Who? Where? When? Combining the horizontal layered analysis with the vertical analysis of the six key questions produces a 36-cell table called the SABSA® Matrix.\nThere is another architectural view – the inspector’s view. For an enterprise security architecture this is the view taken by the security auditor. In the SABSA® Model this is treated this as an integral part of the operational security architecture and so it does not have a separate layer in the model.\nThe SABSA® Matrix provides a framework for developing and documenting your enterprise security architecture. Each cell must be addressed in turn (although not necessarily in strict sequential order). Thus a security architecture document might well be structured with a chapter for each row of the matrix and a section within the chapter for each cell in that row. By taking this approach you can have a high level of assurance that your security architecture is comprehensive.\nChapter 4 : Case Study # Chapter 5 : A Systems Approach # Chapter 6 : Measuring Return on Investment in Security Architecture # Chapter 7 : Using This Book as a Practical Guide # Chapter 8 : Managing the Security Architecture Programme # Part 2: Strategy and Planning # Chapter 9 : Contextual Security Architecture # Chapter 10 : Conceptual Security Architecture # Part 3 : Design # Chapter 11 : Logical Security Architecture # Chapter 12 : Physical Security Architecture # Chapter 13 : Component Security Architecture # Part 4 : Operations # Chapter 14 : Security Policy Management # Chapter 15 : Operational Risk Management # The key driver for your enterprise security architecture is business risk. This chapter examines in detail the management of risk within your business operations. It discusses operational risk management in general terms but constantly focuses back onto the specific needs for managing operational risk in the context of business information security.\nIntroduction to Operational Risk Management # The aims of operational risk management are to :\nUnderstand the enterprise risk profile in detail; Make well-informed risk-mitigation and risk-taking decisions; Minimise the overall cost to the organisation, taking into account the widest possible view. Definition of operational risk across different industry sector (p. 626 to 628):\nOperational Risk Areas Description Information or ICT Mapping Health \u0026amp; Safety Risk Threats to the personal health and safety of staff, customers and members of the public Confidentiality of home addresses and travel schedules Information Security Risk Unauthorised disclosure or modification to information, or loss of availability of information, or inappropriate use of information All aspects of information and ICT security Corporate Governance Risk Failure of directors to fulfil their personal statutory obligations in managing and controlling the company Information security policy making, performance measurement and reporting Reputation Risk The negative effects of public opinion, customer opinion, market reputation and the damage caused to the brand by failure to manage public relations Controlling the disclosure of confidential information; Also presenting a public image of a well-managed enterprise Technology Risk Failure to plan, manage and monitor the performance of technology-related projects, products, services, processes, staff and delivery channels Failure of information and communications technology systems and the need for business continuity management Regulatory Drivers for Operational Risk Management # There is a continuing pressure from both governments and industry regulators to clean up the corporate act so as to improve the quality of corporate governance and the accountability of senior executives in the face of governance failures.\nDrivers for increased regulation are :\nMajor corporate frauds like Enron, WorldCom, Shell and Parmala Failures of corporate strategy such as at The Equitable Life Failures of operational control such as at Barings Bank Scandal of mis-selling of life assurance and pensions product Some of the most important recent developments in the corporate governance regulation and compliance arena :\nSarbanes-Oxley (USA) : Financial reporting transparency Patriot Act (USA) : Government surveillance and Archiving of all corporate communications Basel II (Banking Industry) : Representing banking supervision in the G10 countries, Central banks and national regulators, Harmonisation of national regulations, The first Basel Accord addressed credit risk, Market risk was included under various amendments, The New Basel Accord includes operational risk and Supervision and public disclosure of risk management practices Gramm-Leach-Bliley Act (USA) : Privacy for banking customers HIPAA (USA) : Standards for electronic transmission of health care information and Information security is explicitly included CAD3 (EU) : EU harmonisation of Basel II implementations Combined Code, Turnbull, Smith and Higgs (UK) : Standards of governance for listed companies, Statement in the annual report of a listed company, Turnbull Report: guidance on the Combined Code and Improving transparency for shareholders Integrated Prudential Sourcebook (UK) : The FSA Integrated Prudential Sourcebook and FSA requirements for operational risk management 21 CFR Part 11 (Pharmaceuticals Industry, USA) : The use of electronic documents in the food and drug industries, Compliance mandated for all pharmaceutical firms, Creating trust and privacy in electronic documents, Computer security and sound business practice and Electronic recordkeeping is not mandated, but where it used, compliance with the regulations is mandated FAA, CAA and Others (Civil Aviation Industry) : Regulation of the civil aviation industry, Licensing of people, organisations and aircraft and Licensing implies documentation, much of it in electronic format Data Protection Legislation (EU) : European protection of information held on private individuals, Define concepts, Eight principles and A major driver for information security The Complexity of Operational Risk Management # Approaches to Risk Assessment # Managing Operational Risk # Risk Mitigation # Risk-Based Security Reviews # Risk Financing # The Risk Management Dashboard # To Summarise # Chapter 16 : Assurance Management # Chapter 17 : Security Administration and Operations # ","date":"16 January 2026","externalUrl":null,"permalink":"/aides-memoires/enterprise-security-architecture/","section":"Aides-mémoires","summary":"Compilations des points importants du livre \u0026lsquo;Enterprise Security Architecture: A Business-Driven Approach\u0026rsquo; par John Sherwood","title":"Enterprise Security Architecture","type":"aides-memoires"},{"content":"","date":"16 January 2026","externalUrl":null,"permalink":"/tags/livre/","section":"Tags","summary":"","title":"Livre","type":"tags"},{"content":"","date":"11 January 2026","externalUrl":null,"permalink":"/tags/ebook/","section":"Tags","summary":"","title":"Ebook","type":"tags"},{"content":"","date":"11 January 2026","externalUrl":null,"permalink":"/tags/pdf/","section":"Tags","summary":"","title":"Pdf","type":"tags"},{"content":" Prérequis # Pour ce tutoriel, vous devez avoir :\ngit installé python installé un compte O\u0026rsquo;Reilly valide Téléchargement de l\u0026rsquo;e-book # Connectez-vous à votre compte O\u0026rsquo;Reilly\nAllez sur la page du livre que vous voulez télécharger et repérez l\u0026rsquo;ID du livre.\nExemple : learning.oreilly.com/library/view/enterprise-security-architecture/9781578203185/\nSur cette même page, ouvrez l\u0026rsquo;inspecteur, allez dans l\u0026rsquo;onglet Stockage puis copiez les valeurs des cookies _abck, bm_sz, orm-jwt et orm-rt pour les enregistrer dans un fichier cookies.json.\nClonez le repo git https://github.com/lorenzodifuccia/safaribooks.git avec la commande suivante :\ngit clone https://github.com/lorenzodifuccia/safaribooks.git Copiez ou déplacez le fichier cookies.json à la racine du repo.\nVous devez alors avoir l\u0026rsquo;arborescence suivante :\n/safaribooks ├── .gitignore ├── cookies.json ├── LICENSE.md ├── Pipfile ├── README.md ├── requirements.txt ├── retrieve_cookies.py └── safaribooks.py Déplacez-vous dans le dossier et installez les dépendances pour le script python :\ncd safaribooks pip3 install -r requirements.txt Pour finir, exécutez le script python en passant l\u0026rsquo;ID du livre en paramètre de la commande :\npython3 safaribooks.py 9781578203185 Si le script ne rencontre pas d\u0026rsquo;erreurs, un dossier Books sera créé à la racine du repo.\nCe dossier contient tous les répertoires des livres téléchargés via le script.\nExemple de sortie sans erreurs :\n██████╗ ██████╗ ██╗ ██╗ ██╗██████╗ ██╔═══██╗ ██╔══██╗██║ ╚██╗ ██╔╝╚════██╗ ██║ ██║ ██████╔╝██║ ╚████╔╝ ▄███╔╝ ██║ ██║ ██╔══██╗██║ ╚██╔╝ ▀▀══╝ ╚██████╔╝ ██║ ██║███████╗██║ ██╗ ╚═════╝ ╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [-] Successfully authenticated. [*] Retrieving book info... [-] Title: Enterprise Security Architecture [-] Authors: Nicholas Sherwood [-] Identifier: 9781578203185 [-] ISBN: 9781498759908 [-] Publishers: CRC Press [-] Rights: [-] Description: Security is too important to be left in the hands of just one department or employee-it\u0026#39;s a concern of an entire enterprise. Enterprise Security Architecture shows that having a comprehensive plan requires more than the purchase of security software-it requires a framework for developing and maintaining a system that is proactive. The book is based [-] Release Date: 2005-11-15 [-] URL: https://learning.oreilly.com/library/view/enterprise-security-architecture/9781578203185/ [*] Retrieving book chapters... [*] Output directory: safaribooks\\Books\\Enterprise Security Architecture (9781578203185) [-] Downloading book contents... (33 chapters) [##################################################################################] 100% [-] Downloading book CSSs... (3 files) [##################################################################################] 100% [-] Downloading book images... (142 files) [##################################################################################] 100% [-] Creating EPUB file... [*] Done: safaribooks\\Books\\Enterprise Security Architecture (9781578203185)\\9781578203185.epub If you like it, please * this project on GitHub to make it known: https://github.com/lorenzodifuccia/safaribooks e don\u0026#39;t forget to renew your Safari Books Online subscription: https://learning.oreilly.com [!] Bye!! Votre e-book se trouve dans le dossier portant le nom du livre et est nommé avec l\u0026rsquo;ID de celui-ci.\nExemple : safaribooks\\Books\\Enterprise Security Architecture (9781578203185)\\9781578203185.epub\nConversion en PDF # Pour convertir votre e-book en fichier PDF, il suffit d\u0026rsquo;utiliser un convertisseur en ligne comme https://www.freepdfconvert.com.\nAvertissement légal # Ce tutoriel est fourni uniquement à des fins pédagogiques et informatives.\nL’utilisation des outils et méthodes décrits ci-dessus doit se faire exclusivement dans le respect des conditions générales d’utilisation (CGU) d’O’Reilly ainsi que des lois en vigueur relatives au droit d’auteur et à la propriété intellectuelle.\nEn particulier :\nVous devez disposer d’un compte O’Reilly valide et actif. Les contenus téléchargés doivent être utilisés uniquement pour un usage personnel et privé. Toute redistribution, mise à disposition publique, partage ou usage commercial des ouvrages téléchargés est strictement interdit sans l’autorisation explicite des ayants droit. Vous êtes seul responsable de l’utilisation que vous faites des informations et outils présentés dans ce tutoriel. L’auteur de ce tutoriel ne saurait être tenu responsable d’un usage non conforme, abusif ou illégal des techniques décrites.\n","date":"11 January 2026","externalUrl":null,"permalink":"/aides-memoires/download-ebook/","section":"Aides-mémoires","summary":"Tutoriel pour télécharger des e-books depuis O\u0026rsquo;Reilly et les convertir en PDF","title":"Téléchargement d'e-book en PDF","type":"aides-memoires"},{"content":"","date":"28 December 2025","externalUrl":null,"permalink":"/tags/connexion/","section":"Tags","summary":"","title":"Connexion","type":"tags"},{"content":"","date":"28 December 2025","externalUrl":null,"permalink":"/tags/fail2ban/","section":"Tags","summary":"","title":"Fail2ban","type":"tags"},{"content":" Installation # Pour installer fail2ban, il suffit d\u0026rsquo;exécuter les commandes suivantes :\nsudo apt update # Met à jour le gestionnaire de paquets sudo apt install fail2ban # Installe fail2ban systemctl start fail2ban # Démarre fail2ban systemctl enable fail2ban # Ajoute fail2ban au démarrage automatique systemctl status fail2ban # Affiche le statut de fail2ban Si vous avez Active: failed avec les erreurs\nERROR Failed during configuration: Have not found any log file for sshd jail\net\nERROR Async configuration of server failed\nlors de l\u0026rsquo;affichage du status de fail2ban, vous devez apporter les corrections suivantes :\nCréer le fichier de configuration jail.local : sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local Dans la section [DEFAULT], changer la valeur de la directive backend à systemd Dans la section [sshd], ajouter une directive enable avec la valeur true Redémarrer fail2ban avec la commande suivante : sudo systemctl restart fail2ban Une fois le correctif appliqué et fail2ban redémarré, vous devriez avoir Active: active (running) lors de l\u0026rsquo;affichage du status.\nConfiguration # Tous les changements de configurations doivent être faits dans le fichier jail.local.\nIl n\u0026rsquo;est pas recommandé de les faire dans le fichier jail.conf car celui-ci peut être écrasé lors d\u0026rsquo;une mise à jour du paquet.\nLa directive ignoreip permet de définir les IP qui ne sont pas concernées par le contrôle.\nignoreip = 127.0.0.1 124.32.5.48 La directive findtime définit le temps depuis lequel une anomalie est recherchée dans les logs.\nLa durée peut être en secondes (s), en minutes (m) ou en heures (h).\nfindtime = 10m La directive bantime définit la durée de bannissement d\u0026rsquo;une adresse IP.\nLa durée peut être en secondes (s), en minutes (m) ou en heures (h).\nbantime = 24h La directive maxretry définit le nombre maximum de tentatives de connexion avortées avant un bannissement.\nmaxretry = 5 La directive backend définit le système utilisé pour récupérer les logs.\nLes options sont :\npyinotify (Nécessite d\u0026rsquo;avoir pyinotify d\u0026rsquo;installé) gamin (Nécessite d\u0026rsquo;avoir gamin d\u0026rsquo;installé) polling auto (Essaiera d’utiliser les options ci-dessus dans l\u0026rsquo;ordre pyinotify, gamin, polling.) systemd backend = systemd Après avoir modifié le fichier de configuration, vous devez redémarrer fail2ban pour que les changements soient pris en compte.\nsudo systemctl restart fail2ban Informations sur les jails (prisons) # Liste des jails :\nsudo fail2ban-client status Détail d\u0026rsquo;une jail :\nsudo fail2ban-client status [NOM_PRISON] Bannissement et débannissement manuel # Bannir une IP :\nfail2ban-client set [NOM_PRISON] banip [ADRESSE_IP] Dé-bannir une IP :\nfail2ban-client set [NOM_PRISON] unbanip [ADRESSE_IP] ","date":"28 December 2025","externalUrl":null,"permalink":"/aides-memoires/fail2ban/","section":"Aides-mémoires","summary":"Tutoriel pour mettre en place le paquet fail2ban","title":"Installation de Fail2Ban","type":"aides-memoires"},{"content":"","date":"28 December 2025","externalUrl":null,"permalink":"/tags/log/","section":"Tags","summary":"","title":"Log","type":"tags"},{"content":"","date":"19 December 2025","externalUrl":null,"permalink":"/tags/linux/","section":"Tags","summary":"","title":"Linux","type":"tags"},{"content":" Script de redémarrage # Créez un nouveau script bash :\nsudo nano /usr/local/bin/reboot.sh Ajoutez le code suivant :\n#!/bin/bash reboot Vous pouvez également ajouter d\u0026rsquo;autre commandes à faire avec le démarrage :\n#!/bin/bash apt update -y # Met à jour la liste des paquets apt upgrade -y # Met les paquets à jour reboot # Redémarre la machine une fois les mises à jours terminées Vous devez ensuite rendre le script exécutable :\nsudo chmod +x /usr/local/bin/reboot.sh Automatisation du redémarrage # Pour finir, nous devons automatiser l\u0026rsquo;exécution du script.\nCréation du service # Pour commencer, vous devez créer un service qui va éxécuter votre script :\nsudo nano /etc/systemd/system/auto-reboot.service Ensuite ajoutez le code suivant :\n[Unit] Description=Reboot [Service] Type=oneshot ExecStart=/usr/local/bin/reboot.sh La partie Type=oneshot indique que le service est à éxécuter une seule fois.\nVous pouvez également personnaliser la description.\nCréation du timer # Une fois le service créé, vous devez créer le timer qui rendera l\u0026rsquo;éxécution automatique.\nsudo nano /etc/systemd/system/auto-reboot.timer Le code suivant permet de programmer l\u0026rsquo;exécution tous les dimanches à 23h59. La partie Persistent=true indique que l\u0026rsquo;éxécution se fera au démarrage de la machine si elle est éteinte à la date programmée.\n[Unit] Description=Reboot schedule [Timer] OnCalendar=Sun 23:59 Persistent=true [Install] WantedBy=timers.target Il est possible de modifier la description et la date du timer.\n","date":"19 December 2025","externalUrl":null,"permalink":"/aides-memoires/auto-reboot/","section":"Aides-mémoires","summary":"Mise en place d\u0026rsquo;un redémarrage automatique sur une machine Linux.","title":"Redémarrage automatique Linux","type":"aides-memoires"},{"content":"","date":"19 December 2025","externalUrl":null,"permalink":"/tags/shell/","section":"Tags","summary":"","title":"Shell","type":"tags"},{"content":"","date":"18 December 2025","externalUrl":null,"permalink":"/tags/iphone/","section":"Tags","summary":"","title":"Iphone","type":"tags"},{"content":"","date":"18 December 2025","externalUrl":null,"permalink":"/tags/m%C3%A9t%C3%A9o/","section":"Tags","summary":"","title":"Météo","type":"tags"},{"content":"","date":"18 December 2025","externalUrl":null,"permalink":"/tags/notification/","section":"Tags","summary":"","title":"Notification","type":"tags"},{"content":" Architecture du projet # Le projet repose sur l\u0026rsquo;architecture suivante :\nComposant Rôle Solution Technique Ordonnanceur Déclenche l\u0026rsquo;exécution du script à une heure fixe. Cron (sur Raspberry Pi) Moteur Script qui récupère, traite les données et envoie la notification. Python avec la librairie requests Source Météo Fournit les données de prévisions. Open-Meteo (API gratuite, sans clé) Service de Notification Transmet le message push à l\u0026rsquo;Iphone. ntfy.sh (service push simple avec application iOS native) Client Reçoit et affiche la notification. Application ntfy (sur votre Iphone) Configuration de l\u0026rsquo;Iphone # Pour recevoir les notifications, vous devez configurer l\u0026rsquo;application ntfy sur votre Iphone.\nInstallation : Téléchargez et installez l\u0026rsquo;application ntfy depuis l\u0026rsquo;App Store. Abonnement à un topic : Dans l\u0026rsquo;application, vous devez vous abonner à un topic qui servira de canal de communication. Ce topic doit être secret pour éviter que d\u0026rsquo;autres personnes n\u0026rsquo;envoient des notifications sur votre téléphone. Pour ce faire, appuyez sur le bouton + dans l\u0026rsquo;application, choisissez le nom du topic et appuyez sur subscribe pour valider sa création. Test du topic : Vous pouvez tester le topic avec la commande suivante : curl -d \u0026#34;hi\u0026#34; ntfy.sh/NOM_DU_TOPIC Vous devrez alors recevoir une notification sur votre téléphone avec le message hi dans le corps de celle-ci.\nPréparation du Raspberry Pi # Nous allons maintenant configurer le Raspberry Pi.\nInstallation des dépendances # Le script utilise Python et la librairie requests pour les requêtes HTTP. Vous pouvez les installer avec les commandes suivantes.\n# 1. Mise à jour du système sudo apt update \u0026amp;\u0026amp; sudo apt upgrade -y # 2. Installation de Python et de pip (si non déjà fait) sudo apt install python3 python3-pip -y # 3. Installation de la librairie requests pip3 install requests Création du script python # Le script meteo_notifier.py est responsable de la logique.\nCréez le fichier :\nnano meteo_notifier.py Collez le contenu du script :\nimport requests import json from datetime import datetime # --- Configuration --- # Nom du topic ntfy.sh NTFY_TOPIC = \u0026#34;NOM_DU_TOPIC\u0026#34; # Coordonnées de Montréal (utilisées comme exemple) LATITUDE = 45.5017 LONGITUDE = -73.5673 # URL de l\u0026#39;API Open-Meteo WEATHER_API_URL = \u0026#34;https://api.open-meteo.com/v1/forecast\u0026#34; # URL du serveur ntfy.sh NTFY_SERVER_URL = f\u0026#34;https://ntfy.sh/{NTFY_TOPIC}\u0026#34; def get_weather_forecast() -\u0026gt; dict: \u0026#34;\u0026#34;\u0026#34;Récupère les prévisions météo pour la journée en cours.\u0026#34;\u0026#34;\u0026#34; params = { \u0026#34;latitude\u0026#34;: LATITUDE, \u0026#34;longitude\u0026#34;: LONGITUDE, \u0026#34;daily\u0026#34;: \u0026#34;weather_code,temperature_2m_max,temperature_2m_min,snowfall_sum,rain_sum,wind_speed_10m_max\u0026#34;, # Données à récupérer \u0026#34;timezone\u0026#34;: \u0026#34;America/Montreal\u0026#34;, # Timezone de votre machine \u0026#34;forecast_days\u0026#34;: 1 # On ne veut que les données d\u0026#39;aujourd\u0026#39;hui } try: response = requests.get(WEATHER_API_URL, params=params) response.raise_for_status() # Lève une exception pour les codes d\u0026#39;erreur HTTP return response.json() except requests.exceptions.RequestException as e: print(f\u0026#34;Erreur lors de la récupération des données météo : {e}\u0026#34;) return None def extract_daily_summary(data) -\u0026gt; tuple[str, str, int]: \u0026#34;\u0026#34;\u0026#34;Extrait les prévisions de la journée.\u0026#34;\u0026#34;\u0026#34; if not data or \u0026#39;daily\u0026#39; not in data: return \u0026#34;Données météo indisponibles.\u0026#34; daily_data = data[\u0026#39;daily\u0026#39;] weather_code = daily_data[\u0026#39;weather_code\u0026#39;][0] temperatures_max = daily_data[\u0026#39;temperature_2m_max\u0026#39;][0] temperatures_min = daily_data[\u0026#39;temperature_2m_min\u0026#39;][0] snowfall = daily_data[\u0026#39;snowfall_sum\u0026#39;][0] rain = daily_data[\u0026#39;rain_sum\u0026#39;][0] wind_speed = daily_data[\u0026#39;wind_speed_10m_max\u0026#39;][0] # Fonction simple pour interpréter le code météo (WMO Weather interpretation codes) def interpret_weather_code(code) -\u0026gt; str: codes = { 0: \u0026#34;Ciel dégagé\u0026#34;, 1: \u0026#34;Principalement dégagé\u0026#34;, 2: \u0026#34;Partiellement nuageux\u0026#34;, 3: \u0026#34;Couvert\u0026#34;, 45: \u0026#34;Brouillard\u0026#34;, 48: \u0026#34;Brouillard givrant\u0026#34;, 51: \u0026#34;Bruine légère\u0026#34;, 53: \u0026#34;Bruine modérée\u0026#34;, 55: \u0026#34;Bruine dense\u0026#34;, 61: \u0026#34;Pluie légère\u0026#34;, 63: \u0026#34;Pluie modérée\u0026#34;, 65: \u0026#34;Forte pluie\u0026#34;, 71: \u0026#34;Neige légère\u0026#34;, 73: \u0026#34;Neige modérée\u0026#34;, 75: \u0026#34;Forte neige\u0026#34;, 80: \u0026#34;Averses légères\u0026#34;, 81: \u0026#34;Averses modérées\u0026#34;, 82: \u0026#34;Averses violentes\u0026#34;, 95: \u0026#34;Orage\u0026#34;, 96: \u0026#34;Orage avec grêle légère\u0026#34;, 99: \u0026#34;Orage avec forte grêle\u0026#34; } return codes.get(code, \u0026#34;Météo inconnue\u0026#34;) # Construction du message message_title = f\u0026#34;Meteo Montreal le {datetime.now().strftime(\u0026#39;%d/%m\u0026#39;)}\u0026#34; if snowfall == 0 and rain == 0 : message_body = ( f\u0026#34;{interpret_weather_code(weather_code)}\\n\u0026#34; f\u0026#34;Entre {temperatures_min}°C et {temperatures_max}°C avec {wind_speed} km/h de vent.\u0026#34; ) elif snowfall \u0026gt; 0 and rain == 0 : message_body = ( f\u0026#34;{interpret_weather_code(weather_code)} avec {snowfall} cm de neige. \u0026#34; f\u0026#34;Entre {temperatures_min}°C et {temperatures_max}°C avec {wind_speed} km/h de vent.\u0026#34; ) elif snowfall == 0 and rain \u0026gt; 0 : message_body = ( f\u0026#34;{interpret_weather_code(weather_code)} avec {rain} mm de pluie. \u0026#34; f\u0026#34;Entre {temperatures_min}°C et {temperatures_max}°C avec {wind_speed} km/h de vent.\u0026#34; ) else : message_body = ( f\u0026#34;{interpret_weather_code(weather_code)} avec {rain} mm de pluie et {snowfall} cm de neige. \u0026#34; f\u0026#34;Entre {temperatures_min}°C et {temperatures_max}°C avec {wind_speed} km/h de vent.\u0026#34; ) return message_title, message_body, weather_code def send_ntfy_notification(title, message, weather_code) -\u0026gt; bool: \u0026#34;\u0026#34;\u0026#34;Envoie la notification via ntfy.sh.\u0026#34;\u0026#34;\u0026#34; headers = { \u0026#34;Title\u0026#34;: title, \u0026#34;Priority\u0026#34;: \u0026#34;default\u0026#34;, # \u0026#39;default\u0026#39;, \u0026#39;high\u0026#39;, \u0026#39;urgent\u0026#39; \u0026#34;Content-Type\u0026#34;: \u0026#34;text/plain\u0026#34; } match weather_code: case 0 : headers[\u0026#34;Tags\u0026#34;] = \u0026#34;sunny\u0026#34; case 1 : headers[\u0026#34;Tags\u0026#34;] = \u0026#34;sun_behind_small_cloud\u0026#34; case 2 : headers[\u0026#34;Tags\u0026#34;] = \u0026#34;sun_behind_large_cloud\u0026#34; case 3 : headers[\u0026#34;Tags\u0026#34;] = \u0026#34;cloud\u0026#34; case 45 | 48 : headers[\u0026#34;Tags\u0026#34;] = \u0026#34;fog\u0026#34; case 51 | 53 | 55 : headers[\u0026#34;Tags\u0026#34;] = \u0026#34;droplet\u0026#34; case 61 | 63 | 65 | 81 : headers[\u0026#34;Tags\u0026#34;] = \u0026#34;cloud_with_rain\u0026#34; case 71 | 73 | 75 : headers[\u0026#34;Tags\u0026#34;] = \u0026#34;cloud_with_snow\u0026#34; case 80 : headers[\u0026#34;Tags\u0026#34;] = \u0026#34;sun_behind_rain_cloud\u0026#34; case 82 | 95 | 96 | 99 : headers[\u0026#34;Tags\u0026#34;] = \u0026#34;cloud_with_lightning_and_rain\u0026#34; try: response = requests.post(NTFY_SERVER_URL, data=message.encode(\u0026#39;utf-8\u0026#39;), headers=headers) response.raise_for_status() print(f\u0026#34;Notification envoyée avec succès. Statut : {response.status_code}\\n\u0026#34;) return True except requests.exceptions.RequestException as e: print(f\u0026#34;Erreur lors de l\u0026#39;envoi de la notification ntfy : {e}\u0026#34;) print(\u0026#34;Vérifiez que votre NTFY_TOPIC est correct et que vous êtes abonné sur votre Iphone.\u0026#34;) return False def main() -\u0026gt; None: print(\u0026#34;Démarrage du script de notification météo...\u0026#34;) weather_data = get_weather_forecast() if weather_data: try: title, body, weather_code = extract_daily_summary(weather_data) print(f\u0026#34;---- {title} ----\u0026#34;) print(f\u0026#34;{body}\u0026#34;) send_ntfy_notification(title, body, weather_code) except Exception as e: print(f\u0026#34;Une erreur inattendue est survenue lors du traitement des données : {e}\u0026#34;) send_ntfy_notification(\u0026#34;Erreur Script Météo\u0026#34;, \u0026#34;Le script a échoué lors du traitement des données. Voir les logs du Pi.\u0026#34;) else: send_ntfy_notification(\u0026#34;Erreur Script Météo\u0026#34;, \u0026#34;Impossible de récupérer les données météo. Vérifiez la connexion Internet.\u0026#34;) if __name__ == \u0026#34;__main__\u0026#34;: main() Ajustez la configuration :\nRemplacez NOM_DU_TOPIC par le nom de votre topic secret ntfy. Ajustez LATITUDE et LONGITUDE si vous ne souhaitez pas les prévisions pour Montréal. Vérifiez le timezone et ajustez-le si nécessaire pour correspondre à l\u0026rsquo;heure locale de votre machine. Rendez le script exécutable :\nchmod +x meteo_notifier.py Test du script # Exécutez le script manuellement pour vérifier qu\u0026rsquo;il fonctionne et que vous recevez la notification sur votre Iphone :\npython3 meteo_notifier.py Si tout est correct, vous devriez voir un message de succès dans le terminal et recevoir une notification sur votre Iphone.\nAutomatisation avec Cron # Pour que le script s\u0026rsquo;exécute tous les matins, nous allons utiliser l\u0026rsquo;ordonnanceur cron du Raspberry Pi.\nCréez un fichier pour stocker les logs et donnez les permissions en écriture :\n# Création du fichier touch meteo_log.txt # Mise à jour des permissions chmod 777 meteo_log.txt Éditez la crontab :\ncrontab -e Ajoutez la ligne suivante à la fin du fichier pour exécuter le script tous les jours à 6h30 du matin (heure locale de votre Raspberry Pi) :\n30 6 * * * /usr/bin/python3 meteo_notifier.py \u0026gt;\u0026gt; meteo_log.txt 2\u0026gt;\u0026amp;1 30 6 * * * : Signifie à la 30e minute de la 6e heure (6h30), tous les jours, tous les mois. /usr/bin/python3 : Chemin complet vers l\u0026rsquo;interpréteur Python. meteo_notifier.py : Chemin complet vers votre script. meteo_log.txt 2\u0026gt;\u0026amp;1 : Redirige la sortie standard et les erreurs vers un fichier de log, ce qui est crucial pour le débogage des tâches cron. Le système est maintenant entièrement configuré. Chaque matin à 6h30, votre Raspberry Pi exécutera le script, récupérera les prévisions météo du jour, et vous enverra une notification push sur votre Iphone.\n","date":"18 December 2025","externalUrl":null,"permalink":"/aides-memoires/notif-meteo/","section":"Aides-mémoires","summary":"Mise en place d\u0026rsquo;un système pour envoyer des notifications quotidiennes avec la météo du jour sur un IPhone.","title":"Notifications météo quotidiennes","type":"aides-memoires"},{"content":"","date":"18 December 2025","externalUrl":null,"permalink":"/tags/python/","section":"Tags","summary":"","title":"Python","type":"tags"},{"content":" Installation du serveur Sunshine (sur le PC de Jeu distant) # Sunshine est le logiciel serveur qui s\u0026rsquo;exécute sur votre PC de jeu distant. Il est compatible avec les cartes graphiques NVIDIA, AMD et Intel.\nPrérequis # Un PC de jeu (Windows, Linux ou macOS) avec une carte graphique dédiée (NVIDIA, AMD ou Intel). Une connexion Internet stable et rapide (fibre optique recommandée pour le jeu à distance via Internet). Procédure d\u0026rsquo;installation (Windows - Recommandé) # Téléchargement : Rendez-vous sur la page des dernières versions de Sunshine et téléchargez le fichier Sunshine-Windows-AMD64-installer.exe. Installation : Exécutez le fichier d\u0026rsquo;installation. L\u0026rsquo;installeur est le moyen le plus simple de configurer Sunshine en tant que service Windows. Configuration initiale : Une fois l\u0026rsquo;installation terminée, Sunshine devrait démarrer automatiquement et ouvrir une page de configuration dans votre navigateur web (généralement https://localhost:47990). Le navigateur vous avertira que la connexion n\u0026rsquo;est pas sécurisée (certificat auto-signé). Vous devez accepter le risque et continuer. Création de l\u0026rsquo;utilisateur : Vous serez invité à créer un nom d\u0026rsquo;utilisateur et un mot de passe pour accéder à l\u0026rsquo;interface web de configuration. Ceci n\u0026rsquo;est pas le code de jumelage. Vérification : Dans l\u0026rsquo;interface web, naviguez vers l\u0026rsquo;onglet Configuration pour vérifier que tout est correctement configuré. Installation du client Moonlight (sur l\u0026rsquo;Appareil client) # Moonlight est le client qui s\u0026rsquo;exécute sur l\u0026rsquo;appareil que vous utilisez pour jouer (ordinateur portable, smartphone, tablette, etc.).\nProcédure d\u0026rsquo;installation # Moonlight est disponible pour une grande variété de plateformes :\nWindows, macOS, Linux : Téléchargez la version appropriée sur la page Client Downloads ou directement sur le GitHub de Moonlight-qt. Android : Téléchargez l\u0026rsquo;application Moonlight Game Streaming sur le Google Play Store. iOS/iPadOS/tvOS : Téléchargez l\u0026rsquo;application Moonlight Game Streaming sur l\u0026rsquo;App Store. Jumelage et Streaming # Démarrage du Client : Lancez l\u0026rsquo;application Moonlight sur votre appareil client. Détection du PC : Si vous êtes sur le même réseau local (LAN), votre PC de jeu distant (avec Sunshine) devrait apparaître automatiquement. Si vous êtes sur Internet, vous devrez peut-être ajouter manuellement l\u0026rsquo;adresse IP publique de votre PC de jeu. Jumelage (Pairing) : Cliquez sur l\u0026rsquo;icône de votre PC dans Moonlight. Moonlight affichera un code PIN à 4 chiffres. Sur votre PC de jeu distant, l\u0026rsquo;interface web de Sunshine affichera une boîte de dialogue vous demandant de saisir ce code PIN. Saisissez le code PIN dans Sunshine pour jumeler les deux appareils. Lancement du Jeu : Une fois le jumelage réussi, Moonlight affichera la liste des jeux détectés par Sunshine. Cliquez sur un jeu pour commencer le streaming. ","date":"1 December 2025","externalUrl":null,"permalink":"/aides-memoires/moonlight-sunshine/","section":"Aides-mémoires","summary":"Mise en place de Moonlight et Sunshine pour pouvoir jouer sur un ordinateur distant.","title":"Installation de Moonlight et Sunshine","type":"aides-memoires"},{"content":"","date":"1 December 2025","externalUrl":null,"permalink":"/tags/jeu/","section":"Tags","summary":"","title":"Jeu","type":"tags"},{"content":"","date":"1 December 2025","externalUrl":null,"permalink":"/tags/moonlight/","section":"Tags","summary":"","title":"Moonlight","type":"tags"},{"content":"","date":"1 December 2025","externalUrl":null,"permalink":"/tags/sunshine/","section":"Tags","summary":"","title":"Sunshine","type":"tags"},{"content":" Installation # Windows # Pour installer ZeroTier sous Windows, allez à l\u0026rsquo;adresse suivante, téléchargez le fichier d\u0026rsquo;installation puis exécutez le.\nhttps://www.zerotier.com/download/\nLinux # Pour installer ZeroTier sous Linux, entrez la commande suivante :\ncurl -s https://install.zerotier.com | sudo bash Configuration # Création du réseau # Pour créer un nouveau réseau sur ZeroTier, vous devez aller sur l\u0026rsquo;interface d\u0026rsquo;administration en ligne ZeroTier (https://my.zerotier.com/network).\nEnsuite cliquez sur Create A Network. Un nouveau réseau apparaîtra et vous aurez le code à 16 chiffres unique à ce réseau qui vous permet de le rejoindre réseau.\nRejoindre un réseau sous Windows # Affichez les icônes cachées puis cliquez sur ZeroTier.\nSélectionnez Join New Network\u0026hellip; et entrez le code à 16 chiffres de votre réseau créé précédemment.\nRejoindre un réseau sous Linux # Entrez la commande suivante :\nsudo zerotier-cli join \u0026lt;network ID\u0026gt; \u0026lt;network ID\u0026gt; est le code à 16 chiffres de votre réseau créé précédemment. Accepter un nouvel appareil # Quand un nouvel appareil rejoint votre réseau, il va être Not authorized.\nPour l\u0026rsquo;authoriser à accéder au réseau, vous devez vous rendre sur l\u0026rsquo;interface d\u0026rsquo;administration de votre réseau. Ensuite allez dans le détail de l\u0026rsquo;appareil à autoriser puis cochez la case Authorized et cliquez sur Save.\nVotre appareil pourra alors communiquer avec les autres machines de votre réseau via les adresses ZeroTier.\nCommandes utiles # Afficher l\u0026rsquo;aide # sudo zerotier-cli -h Afficher la version # sudo zerotier-cli -v Rejoindre un réseau # sudo zerotier-cli join \u0026lt;network ID\u0026gt; \u0026lt;network ID\u0026gt; est le code à 16 chiffres du réseau\nQuitter un réseau # sudo zerotier-cli leave \u0026lt;network ID\u0026gt; \u0026lt;network ID\u0026gt; est le code à 16 chiffres du réseau\nAfficher la liste des réseaux rejoints # sudo zerotier-cli listnetworks Afficher un paramètre d\u0026rsquo;un réseau # sudo zerotier-cli get \u0026lt;network ID\u0026gt; \u0026lt;setting\u0026gt; # \u0026lt;network ID\u0026gt; est le code à 16 chiffres du réseau\n\u0026lt;setting\u0026gt; doit avoir une des valeurs suivantes :\nnwid : code à 16 chiffres du réseau name : nom du réseau mac : adresse mac status : statut du réseau type : accessibilité du réseau dev : nom de l\u0026rsquo;interface réseau ZT assigned ips : ip de la machine sur le réseau ","date":"24 November 2025","externalUrl":null,"permalink":"/aides-memoires/zerotier/","section":"Aides-mémoires","summary":"Tutoriel pour mettre en place ZeroTier.","title":"Mise en place de ZeroTier","type":"aides-memoires"},{"content":"","date":"24 November 2025","externalUrl":null,"permalink":"/tags/r%C3%A9seau-priv%C3%A9/","section":"Tags","summary":"","title":"Réseau Privé","type":"tags"},{"content":"","date":"24 November 2025","externalUrl":null,"permalink":"/tags/vpn/","section":"Tags","summary":"","title":"Vpn","type":"tags"},{"content":"","date":"23 November 2025","externalUrl":null,"permalink":"/tags/grafana/","section":"Tags","summary":"","title":"Grafana","type":"tags"},{"content":" Prérequis # Avant de réaliser les étapes suivantes, vous devez avoir mis en place un tableau de bord utilisant Grafana et avoir un serveur Nginx fonctionnel.\nVous pouvez mettre en place cette installation en suivant les tutoriels suivants :\nMise en place d\u0026rsquo;un dashboard Grafana Serveur web auto-hébergé Situation actuelle # Dans notre situation nous avons mis en place un tableau de bord utilisant Grafana qui récupère des métriques sur notre machine et nous permet de les visualiser.\nCe tableau de bord est pour l\u0026rsquo;instant uniquement accessible sur la machine via le localhost.\nNotre but est de rendre ce tableau de bord accessible via une URL pour pouvoir visualiser les données sans être directement sur la machine.\nPour ce faire nous allons configurer un proxy inverse (ou reverse proxy en anglais) pour rediriger les requêtes demandant un certain site vers le localhost de la machine.\nMise en place du proxy inverse (reverse proxy) # Pour le mettre en place nous devons modifier le fichier de configuration Grafana et créer un nouveau site sur le serveur Nginx.\nGrafana # Du côté de Grafana, il y a deux lignes à modifier dans le fichier /etc/grafana/grafana.ini :\n[server] # Indique à Grafana l\u0026#39;URL complète par laquelle il sera accessible root_url = %(protocol)s://%(domain)s/grafana/ # Indique à Grafana le sous-chemin serve_from_sub_path = true Ces changements permettent d\u0026rsquo;avoir accès à Grafana via une URL autre que le localhost et précisent que l\u0026rsquo;interface peut être accessible via un sous-chemin.\nNginx # Pour Nginx, nous devons créer un nouveau site.\nÀ la différence des sites classiques, celui-là n\u0026rsquo;a pas besoin d\u0026rsquo;avoir de fichier à afficher. Il existe uniquement pour faire proxy.\nNous avons donc juste à créer le fichier de configuration et à faire le lien symbolique pour activer le site.\nFichier de configuration /etc/nginx/sites-available/dashboard.domaine.org :\nserver { # Port d\u0026#39;écoute listen [::]:80; listen 80; # Nom de domaine que ce bloc de serveur doit gérer server_name dashboard.domaine.org; # Comportement pour les requêtes \u0026#39;dashboard.domaine.org/grafana/\u0026#39; location /grafana/ { # Adresse de redirection proxy_pass http://localhost:3000/grafana/; # Transmission des headers proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } Création du lien symbolique :\nsudo ln -s /etc/nginx/sites-available/dashboard.domaine.org /etc/nginx/sites-enabled/ Vous pouvez maintenant créer l\u0026rsquo;enregistrement DNS sur votre domaine pour rediriger les requêtes dashboard.domaine.org vers l\u0026rsquo;adresse IP de votre routeur Internet.\nMise en place du HTTPS # La mise en place de la connexion HTTPS n\u0026rsquo;est pas différente des autres sites. Utilisez la commande suivante générera un certificat pour le site dashboard.domaine.org .\nsudo certbot --nginx -d dashboard.domaine.org Une fois le certificat installé, votre fichier de configuration pour le site dashboard.domaine.org devrait ressembler à ceci :\nserver { # Nom de domaine que ce bloc de serveur doit gérer server_name dashboard.domaine.org; location /grafana/ { proxy_pass http://localhost:3000/grafana/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } listen [::]:443 ssl; # managed by Certbot listen 443 ssl; # managed by Certbot ssl_certificate /etc/letsencrypt/live/dashboard.domaine.org/fullchain.pem; # managed by Certbot ssl_certificate_key /etc/letsencrypt/live/dashboard.domaine.org/privkey.pem; # managed by Certbot include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot } server { if ($host = dashboard.domaine.org) { return 301 https://$host$request_uri; } # managed by Certbot server_name dashboard.domaine.org; listen [::]:80; listen 80; return 404; # managed by Certbot } ","date":"23 November 2025","externalUrl":null,"permalink":"/aides-memoires/reverse-proxy/","section":"Aides-mémoires","summary":"Tutoriel pour mettre en place un proxy inverse via Nginx.","title":"Mise en place d'un proxy inverse","type":"aides-memoires"},{"content":"","date":"23 November 2025","externalUrl":null,"permalink":"/tags/nginx/","section":"Tags","summary":"","title":"Nginx","type":"tags"},{"content":"","date":"23 November 2025","externalUrl":null,"permalink":"/tags/serveur-web/","section":"Tags","summary":"","title":"Serveur Web","type":"tags"},{"content":"","date":"22 November 2025","externalUrl":null,"permalink":"/tags/dashboard/","section":"Tags","summary":"","title":"Dashboard","type":"tags"},{"content":" Architecture # La mise en place du tableau de bord repose sur plusieurs éléments :\nNode Exporter, le collecteur de métriques Prometheus, la base de données Grafana, l\u0026rsquo;interface web Le collecteur va aller chercher les données système et les transmettre à la base de données.\nLa base de données va récupérer les métriques et les formater pour en faire des séries temporelles affichables par l\u0026rsquo;interface.\nL\u0026rsquo;interface va aller chercher les séries créées par la base de données puis les afficher sous forme de graphiques pour les rendre compréhensibles.\nInstallation de Node Exporter # Téléchargement de Node Exporter # Node Exporter est disponible en deux versions selon le type d\u0026rsquo;architecture que vous avez. Pour ce tutoriel, nous allons utiliser la version 64 bits.\n# Télécharger la version 64 bits wget https://github.com/prometheus/node_exporter/releases/download/v1.8.1/node_exporter-1.8.1.linux-arm64.tar.gz # Décompresser l\u0026#39;archive tar xvfz node_exporter-1.8.1.linux-arm64.tar.gz # Déplacer l\u0026#39;exécutable sudo mv node_exporter-1.8.1.linux-arm64/node_exporter /usr/local/bin/ # Nettoyer rm -rf node_exporter-1.8.1.linux-arm64.tar.gz node_exporter-1.8.1.linux-arm64 Création de l’utilisateur et du service # Ensuite nous devons créer l\u0026rsquo;utilisateur et le service Node Exporter :\n# Créer l\u0026#39;utilisateur sudo useradd -rs /bin/false node_exporter # Créer le fichier de service sudo nano /etc/systemd/system/node_exporter.service Dans le fichier de service, inserez le code suivant :\n[Unit] Description=Node Exporter Wants=network-online.target After=network-online.target [Service] User=node_exporter Group=node_exporter Type=simple ExecStart=/usr/local/bin/node_exporter [Install] WantedBy=multi-user.target Démarrage du service Node Exporter # Une fois le fichier complété, vous pouvez démarrer le service et vérifier qu\u0026rsquo;il est bien actif :\nsudo systemctl daemon-reload # Rafraîchi la liste des services sudo systemctl enable node_exporter # Ajoute node_exporter au démarrage automatique sudo systemctl start node_exporter # Lance node_exporter sudo systemctl status node_exporter # Affiche le statut de node_exporter Si vous voyez la ligne Active: active (running), le service est correctement lancé.\nNode Exporter est maintenant accessible sur le port 9100\nInstallation de Prometheus # Téléchargement de Prometheus # Pour télécharger Prometheus et préparer l\u0026rsquo;environnement, exécutez les commandes suivantes :\n# Télécharger Prometheus wget https://github.com/prometheus/prometheus/releases/download/v2.52.0/prometheus-2.52.0.linux-arm64.tar.gz # Décompresser l\u0026#39;archive tar xvfz prometheus-2.52.0.linux-arm64.tar.gz # Déplacer les exécutables et créer les répertoires sudo mv prometheus-2.52.0.linux-arm64/prometheus /usr/local/bin/ sudo mv prometheus-2.52.0.linux-arm64/promtool /usr/local/bin/ sudo mkdir /etc/prometheus sudo mv prometheus-2.52.0.linux-arm64/consoles /etc/prometheus sudo mv prometheus-2.52.0.linux-arm64/console_libraries /etc/prometheus sudo mkdir /var/lib/prometheus # Nettoyer rm -rf prometheus-2.52.0.linux-arm64.tar.gz prometheus-2.52.0.linux-arm64 Création de l’utilisateur et des permissions # Nous devons ensuite créer un utilisateur pour Prometheus ainsi que lui donner les permissions sur les dossiers que nous avons juste créé.\n# Créer l\u0026#39;utilisateur sudo useradd -rs /bin/false prometheus # Modifier les permissions sudo chown -R prometheus:prometheus /etc/prometheus sudo chown -R prometheus:prometheus /var/lib/prometheus sudo chown prometheus:prometheus /usr/local/bin/prometheus sudo chown prometheus:prometheus /usr/local/bin/promtool Configuration de Prometheus # Une fois l\u0026rsquo;utilisateur créé et les permissions données, nous pouvons créer le fichier de configuration :\nsudo nano /etc/prometheus/prometheus.yml Ce fichier contient le code suivant qui va configurer Prometheus pour qu\u0026rsquo;il se surveille mais également le Node Exporter.\nglobal: scrape_interval: 15s # Intervalle de recupération des données. Par défaut 15 secondes. scrape_configs: - job_name: \u0026#39;prometheus\u0026#39; static_configs: - targets: [\u0026#39;localhost:9090\u0026#39;] - job_name: \u0026#39;node_exporter\u0026#39; static_configs: - targets: [\u0026#39;localhost:9100\u0026#39;] Création du service # Pour terminer, nous devons créer le fichier service de Prometheus.\n# Créer le fichier de service sudo nano /etc/systemd/system/prometheus.service Dans le fichier, insérez le code suivant :\n[Unit] Description=Prometheus Wants=network-online.target After=network-online.target [Service] User=prometheus Group=prometheus Type=simple ExecStart=/usr/local/bin/prometheus \\ --config.file /etc/prometheus/prometheus.yml \\ --storage.tsdb.path /var/lib/prometheus/ \\ --web.console.templates=/etc/prometheus/consoles \\ --web.console.libraries=/etc/prometheus/console_libraries \\ --web.listen-address=0.0.0.0:9090 [Install] WantedBy=multi-user.target Démarrage du service Prometheus # Une fois le fichier complété, vous pouvez démarrer le service et vérifier qu\u0026rsquo;il est bien actif :\nsudo systemctl daemon-reload # Rafraîchi la liste des services sudo systemctl enable prometheus # Ajoute prometheus au démarrage automatique sudo systemctl start prometheus # Lance prometheus sudo systemctl status prometheus # Affiche le statut de prometheus Si vous voyez la ligne Active: active (running), le service est correctement lancé.\nPrometheus est maintenant accessible sur le port 9090\nInstallation de Grafana # Installation # Ajout du dépôt Grafana et installation # Le dépôt où se trouve Grafana n\u0026rsquo;est pas de base dans les dépôt apt. Nous devons donc l\u0026rsquo;ajouter avant de pouvoir télécharger Grafana.\n# Télécharger la clé GPG wget -q -O - https://apt.grafana.com/gpg.key | gpg --dearmor | sudo tee /usr/share/keyrings/grafana.gpg \u0026gt; /dev/null # Ajouter le dépôt pour les architectures ARM (Raspberry Pi) echo \u0026#34;deb [signed-by=/usr/share/keyrings/grafana.gpg] https://apt.grafana.com stable main\u0026#34; | sudo tee /etc/apt/sources.list.d/grafana.list # Mettre à jour les dépots et installer Grafana sudo apt update sudo apt install grafana -y Démarrage du service Grafana # sudo systemctl daemon-reload # Rafraîchi la liste des services sudo systemctl enable grafana-server # Ajoute grafana-server au démarrage automatique sudo systemctl start grafana-server # Lance grafana-server sudo systemctl status grafana-server # Affiche le statut de grafana-server Si vous voyez la ligne Active: active (running), le service est correctement lancé.\nGrafana est maintenant accessible sur le port 3000\nConfiguration # Connexion # Vous pouvez accéder à l\u0026rsquo;interface Grafana via l\u0026rsquo;URL http://localhost:3000.\nLors de la première connexion sur Grafana, les identifiants par défaut sont :\nUtilisateur : admin Mot de passe : admin Il vous sera alors demandé de changer le mot de passe pour les futures connexions.\nLien avec Prometheus # Une fois connecté, vous devez lier Grafana avec Prometheus.\nPour ce faire, allez dans la partie Connection puis cliquez sur Data sources.\nVous aurez alors un bouton Add new data source. Cliquez dessus et sélectionnez Prometheus.\nUne fois sur la page de configuration du datasource, choissez le nom et entrez http://localhost:9090 dans le champ Prometheus server URL. Vous pouvez ensuite aller en bas de la page et cliquer sur bouton Save \u0026amp; test. Si le test est validé, Grafana est correctement lié à Prometheus.\nImportation du tableau de bord # Pour le tableau de bord, vous pouvez en créer un par vous-même. Cependant, nous allons ici en importer un déjà existant.\nPour commencer allez dans l\u0026rsquo;onglet Dashboard puis cliquez sur New et choisissez New dashboard.\nUne fois dans le menu, choissiez Import a dashboard, entrez 1860 dans le champs Grafana.com dashboard URL or ID puis cliquez sur Load.\nPour finir, choissiez le nom du tableau de bord et cliquez sur Import. Vous trouverez alors votre tableau de bord dans l\u0026rsquo;onglet Dashboard ou depuis l\u0026rsquo;accès rapide de l\u0026rsquo;onglet Home.\nLe tableau de bord importé est le suivant :\n","date":"22 November 2025","externalUrl":null,"permalink":"/aides-memoires/dashboard-ressources/","section":"Aides-mémoires","summary":"Tutoriel pour mettre en place un dashboard avec Grafana pour l\u0026rsquo;interface, Prometheus pour la base de données et Node Exporter pour la collectes des métriques.","title":"Mise en place d'un dashboard Grafana","type":"aides-memoires"},{"content":"","date":"22 November 2025","externalUrl":null,"permalink":"/tags/node-exporter/","section":"Tags","summary":"","title":"Node Exporter","type":"tags"},{"content":"","date":"22 November 2025","externalUrl":null,"permalink":"/tags/prometheus/","section":"Tags","summary":"","title":"Prometheus","type":"tags"},{"content":"","date":"20 November 2025","externalUrl":null,"permalink":"/tags/communication/","section":"Tags","summary":"","title":"Communication","type":"tags"},{"content":" Le modèle OSI # Le modèle OSI est un modèle conceptuel de référence qui décrit les sept couches de communication d\u0026rsquo;un réseau informatique pour permettre l\u0026rsquo;interopérabilité entre différents systèmes. Chaque couche a un rôle spécifique, allant de l\u0026rsquo;envoi des signaux physiques (couche 1) à l\u0026rsquo;interface utilisateur (couche 7). Il aide à concevoir des applications et du matériel réseau, à comprendre le flux de données et à résoudre les problèmes.\n© OpenClassrooms\nLes sept couches du modèle OSI # Couche 1 : Physique # Transporte des bits bruts sur un support. Définit câbles, signaux électriques, modulation, connecteurs, topologies, débit binaire. Aucun traitement logique des données.\nCouche 2 : Liaison de données # Fournit une transmission fiable entre deux équipements directement connectés. Encadre les bits en trames, gère adresses MAC, détection/correction d’erreurs locale, contrôle de flux, accès au média (CSMA/CD, CSMA/CA). Deux sous-couches : LLC et MAC.\nCouche 3 : Réseau # Assure l’acheminement d’un paquet d’une source à une destination via plusieurs réseaux. Fournit adressage logique (IPv4/IPv6), routage, fragmentation, calcul de routes, commutation de paquets.\nCouche 4 : Transport # Garantit le transport de bout en bout entre applications. Segmentation/réassemblage, fiabilité optionnelle, contrôle de flux, contrôle de congestion, multiplexage. Protocoles typiques : TCP, UDP.\nCouche 5 : Session # Gère l’établissement, le maintien et la terminaison des sessions entre applications. Synchronisation, points de reprise, contrôle du dialogue.\nCouche 6 : Présentation # Assure la traduction et la transformation des données. Encodage, compression, chiffrement, représentation syntaxique commune entre systèmes hétérogènes.\nCouche 7 : Application # Interface directe avec les services applicatifs. Définit protocoles et formats utilisés par les applications réseau : HTTP, FTP, SMTP, DNS, etc.\nMoyen mnémotechnique # \u0026ldquo;Petit Lapin Rose Trouvé à la SPA\u0026rdquo;\nPetit : Physique Lapin : Liaison Rose : Réseau Trouvé : Transport SPA : Session, Présentation, Application ","date":"20 November 2025","externalUrl":null,"permalink":"/aides-memoires/modele-osi/","section":"Aides-mémoires","summary":"Explication des couches du modèle OSI.","title":"Modèle OSI","type":"aides-memoires"},{"content":"","date":"20 November 2025","externalUrl":null,"permalink":"/tags/r%C3%A9seau/","section":"Tags","summary":"","title":"Réseau","type":"tags"},{"content":"","date":"19 November 2025","externalUrl":null,"permalink":"/tags/cloudflare/","section":"Tags","summary":"","title":"Cloudflare","type":"tags"},{"content":" Prérequis # Ce tutoriel permet de mettre en place un site web à l\u0026rsquo;aide des Pages Cloudflare.\nJe vais utiliser un site généré par le framework Hugo (Voir tuto ici). Certaines étapes vont être spécifiques à Hugo et seront à adapter selon votre technologie.\nPour ce tutoriel, vous devez remplir les conditions suivantes :\nAvoir un compte Cloudflare opérationnel Avoir un compte GitHub opérationnel Avoir un dépôt GitHub avec le code du site à déployer Liaison du dépôt GitHub # La première chose à faire est de lier un dépôt GitHub à la nouvelle page.\nPour ce faire, allez sur votre compte Cloudflare, rubrique Build, page Workers \u0026amp; Pages.\nEnsuite, cliquez sur Create application, allez dans la catégorie Pages, puis sélectionnez Import an existing Git repository.\nVous devez maintenant lier votre compte GitHub à votre compte Cloudflare. Vous pouvez sélectionner les dépôts qui seront visibles par Cloudflare pour déployer les sites ou applications.\nDéploiement du site # Vous pouvez maintenant sélectionner le dépôt contenant votre site à déployer.\nEnsuite, vous devez nommer votre projet côté Cloudflare et sélectionner la branche du dépôt qui sera utilisée.\nLa deuxième partie de la page concerne le build du site.\nVous devez spécifier la commande de build de votre projet ainsi que le dossier de sortie de la commande. Comme j\u0026rsquo;utilise Hugo, la commande de build est hugo --gc --minify et le dossier de sortie est public.\nAttention ! Ces deux paramètres sont à ajuster selon la technologie utilisée pour créer votre site ! Une fois que les champs sont remplis, cliquez sur Save and deploy. Cloudflare va alors exécuter la commande que vous lui avez donnée à la racine de votre dépôt GitHub. Si le build échoue, vous aurez un message d\u0026rsquo;erreur pour vous aider à corriger le problème. Si le build est valide, vous obtiendrez alors une URL correspondant à l\u0026rsquo;adresse de déploiement de votre projet.\nSi vous possédez un domaine, vous pouvez ajouter votre domaine aux adresses pour accéder à votre projet déployé.\nMise à jour du site # La mise à jour du site est très simple. À chaque fois qu\u0026rsquo;il y a une mise à jour sur le dépôt GitHub, Cloudflare va rejouer le script de build et déployer votre projet. Vous n\u0026rsquo;avez rien de plus à faire, si ce n\u0026rsquo;est vérifier que le build s\u0026rsquo;est déroulé correctement.\n","date":"19 November 2025","externalUrl":null,"permalink":"/aides-memoires/cloudflare-pages/","section":"Aides-mémoires","summary":"Tutoriel pour déployer un site web via les Pages Cloudflare.","title":"Cloudflare Pages","type":"aides-memoires"},{"content":"","date":"19 November 2025","externalUrl":null,"permalink":"/tags/github/","section":"Tags","summary":"","title":"Github","type":"tags"},{"content":"","date":"19 November 2025","externalUrl":null,"permalink":"/tags/site-web/","section":"Tags","summary":"","title":"Site Web","type":"tags"},{"content":"","date":"18 November 2025","externalUrl":null,"permalink":"/tags/blowfish/","section":"Tags","summary":"","title":"Blowfish","type":"tags"},{"content":"","date":"18 November 2025","externalUrl":null,"permalink":"/tags/hugo/","section":"Tags","summary":"","title":"Hugo","type":"tags"},{"content":"","date":"18 November 2025","externalUrl":null,"permalink":"/tags/markdown/","section":"Tags","summary":"","title":"Markdown","type":"tags"},{"content":" Installer Hugo et Git # Hugo est un framework qui permet de créer des sites web statiques à partir de fichiers en Markdown.\nPour commencer, il faut donc installer Hugo sur votre machine.\nDe plus, Hugo permet de personnaliser le visuel de son site en utilisant des thèmes.\nLes thèmes peuvent être construits de zéro ou liés au projet via Git. Dans ce tutoriel, nous importerons le thème Blowfish depuis Git.\nSi vous prévoyez de lier un thème, il faut vérifier que Git est bien installé sur votre machine.\nInstaller Hugo # Sous Windows : winget install Hugo.Hugo.Extended Sous Linux : sudo apt install hugo Installer Git # Sous Windows : winget install --id Git.Git -e --source winget Sous Linux : apt-get install git Initialiser le projet # Une fois que Hugo et Git sont installés, nous pouvons initialiser le projet via la commande suivante :\nhugo new site path La variable path correspond au chemin du dossier où sera initialisé le projet.\nUne fois le projet créé, nous pouvons nous déplacer dans le dossier. Toutes les commandes qui modifieront le projet seront à faire depuis la racine de celui-ci.\ncd path Configurer le thème # Installation # Pour stocker le code de notre site, il est recommandé de créer un dépôt Git. De plus, nous allons utiliser Git pour importer le thème Blowfish dans notre projet.\nPour commencer, il faut donc créer un dépot Git à la racine de notre projet (path) :\ngit init Une fois le dépôt initialisé, nous pouvons ajouter le dépôt blowfish.git en tant que sous-module de notre dépôt :\ngit submodule add -b main https://github.com/nunocoracao/blowfish.git themes/blowfish Cette commande va importer le dépôt blowfish.git dans le dossier themes/blowfish ce qui permet d\u0026rsquo;avoir accès aux fichiers du thème et de personnaliser la disposition des éléments si celle d\u0026rsquo;origine ne vous plaît pas.\nPour terminer l\u0026rsquo;installation de Blowfish, il faut :\nSupprimer le fichier hugo.toml qui est à la racine du projet Copier tous les fichiers .toml du dossier themes/blowfish/config/_default dans le dossier config/_default Décommenter la ligne theme = \u0026quot;blowfish\u0026quot; dans le fichier hugo.toml Une fois ces étapes réalisées, votre dossier config/_default doit ressembler à ça :\nconfig/_default/ ├─ hugo.toml # Configuration du site ├─ languages.en.toml # Paramètres de la langue et de l\u0026#39;auteur ├─ markup.toml # Paramètres pour que le thème fonctionne ├─ menus.en.toml # Personnalisation du header et du footer ├─ params.toml # Personnalisation des éléments du site └─ module.toml Et le fichier hugo.toml doit commencer par les lignes suivantes :\n# -- Site Configuration -- # Refer to the theme docs for more details about each of these parameters. # https://blowfish.page/docs/getting-started/ theme = \u0026#34;blowfish\u0026#34; # UNCOMMENT THIS LINE Configuration basique # Avant de passer à la personnalisation du site, il reste quelques éléments à régler.\nPour commencer, dans le fichier hugo.toml, indiquez l\u0026rsquo;URL racine de votre site ainsi que la langue du site.\nbaseURL correspond à l\u0026rsquo;adresse de la page d\u0026rsquo;accueil du site languageCode correspond aux deux lettres de la langue utilisée pour écrire le contenu du site # config/_default/hugo.toml baseURL = \u0026#34;https://domaine.com/\u0026#34; languageCode = \u0026#34;fr\u0026#34; Une fois la langue choisie, modifiez le code de langue dans le nom des fichiers languages.en.toml et menus.en.toml.\nPour un site en français, les fichiers seront nommés languages.fr.toml et menus.fr.toml.\nLe code utilisé dans les noms des fichiers doit être le même que celui de la variable languageCode dans le fichier hugo.toml.\nPersonnalisation # Informations sur l\u0026rsquo;auteur # Le fichier languages.en.toml contient une section concernant les informations de l\u0026rsquo;auteur du site.\nPour ajouter une information, il y a juste à décommenter la ligne et remplacer la ligne temporaire pour correspondre à l\u0026rsquo;information réelle.\nAu contraire, pour qu\u0026rsquo;une information ne soit pas affichée, il suffit de commenter la ligne de l\u0026rsquo;information en question.\nDans le cas où vous voulez mettre une photo de profil, l\u0026rsquo;image doit être stockée dans le dossier assets/img et le chemin doit être spécifié dans la ligne correspondante.\nSi vous voulez ajouter des liens, veillez à ce que la ligne links = [ ainsi que la dernière ligne ] soient bien décommentées.\n[params.author] name = \u0026#34;Martin Dupond\u0026#34; image = \u0026#34;img/profil.png\u0026#34; links = [ { x-twitter = \u0026#34;https://twitter.com/martindupond\u0026#34; }, ] Palette de couleurs # Il est possible de personnaliser les couleurs utilisées par Blowfish.\nPar défaut, la palette blowfish est utilisé mais il existe 16 palette de couleurs disponibles.\nToutes les palettes sont disponibles à l\u0026rsquo;adresse suivante : https://blowfish.page/docs/getting-started/#colour-schemes\nPour changer la palette utilisé, il faut modifier la variable colorScheme dans le fichier params.toml.\n# config/_default/params.toml colorScheme = \u0026#34;blowfish\u0026#34; Il est également possible de créer sa propre palette.\nPour ce faire, il faut créer un nouveau fichier avec le format \u0026lt;nom-palette\u0026gt;.css dans le dossier assets/css/schemes/ et spécifier les couleurs à utiliser.\nPour plus d\u0026rsquo;informations sur les palettes de couleurs, visitez https://blowfish.page/docs/advanced-customisation/#colour-schemes\nAjout de pages # Organisation des pages # Les pages que vous voulez ajouter doivent toutes être dans le dossier content. Cependant, il n\u0026rsquo;y a pas d\u0026rsquo;organisation spécifique donc l\u0026rsquo;architecture de votre site dépend de vous.\nUne architecture peut être la suivante :\ncontent ├── _index.md ├── about.md ├── posts │ ├── _index.md │ ├── first-post.md │ └── another-post.md └── projetcs ├── _index.md └── projet1.md A chaque niveau de l\u0026rsquo;architecture, les fichiers index.md servent à personnaliser ce qui est affiché sur chaque page.\nLe fichier content/_index.html correspond à la page domaine.com/, content/posts/_index.html à la page domaine.com/posts, etc.\nNouvelles pages # Lors de la création d\u0026rsquo;une page, il est important de mettre quelques lignes spécifiques au début des fichiers .md. Elles permettent d\u0026rsquo;avoir notamment le nom de la page, le type de disposition ou encore si la page est à prendre en compte ou non.\n--- title: \u0026#34;Tuto Hugo avec Blowfish\u0026#34; summary: \u0026#34;Tutoriel d\u0026#39;installation et de configuration pour créer un site avec Hugo.\u0026#34; categories: [\u0026#34;tuto\u0026#34;] tags: [\u0026#34;hugo\u0026#34;, \u0026#34;blowfish\u0026#34;, \u0026#34;markdown\u0026#34;, \u0026#34;site web\u0026#34;] layout: \u0026#34;page\u0026#34; draft: \u0026#34;false\u0026#34; --- title : Titre de la page. Il sera affiché en gros au debut de la page ainsi que dans le nom de l\u0026rsquo;onglet. summary : Description sommaire du contenu de la page. Il peut être affiché avec le titre de la page dans la liste des pages disponibles si l\u0026rsquo;option est activée. categories : Catégorie de la page. Sert de critère de recherche. tags : Sujets de la page. Sert de critère de recherche. layout : Type de disposition du contenu à utiliser pour la page. Les dispositions par défaut sont simple, page, profile, hero, card ou background. draft : Booléen pour savoir si la page doit être ignorée lors du rendu du site. Une page ignorée ne sera pas disponible sur le site final. Les categories et tags sont différenciés par la possibilité de n\u0026rsquo;afficher que les catégories ou d\u0026rsquo;afficher les catégories et les tags sur les pages.\nPersonnalisation des menus # Il est également possible de personnaliser le header et le footer du site.\nPour cela, il faut aller dans le fichier menus.en.toml et ajuster les menus comme vous le souhaitez.\nChaque élément du menu suit l\u0026rsquo;un des formats suivant :\n# Element parent [[menu]] name = \u0026#34;Element parent\u0026#34; pageRef = \u0026#34;parent\u0026#34; weight = 1 # Element enfant [[menu]] name = \u0026#34;Element enfant\u0026#34; parent = \u0026#34;Element parent\u0026#34; pageRef = \u0026#34;parent/enfant\u0026#34; weight = 1 [[menu]] : Peut être main ou footer. Correspond au menu auquel sera rattaché l\u0026rsquo;élément. name : Nom de l\u0026rsquo;élément. C\u0026rsquo;est ce qui sera affiché dans le menu. pageRef : Page de redirection lors du clique de l\u0026rsquo;élément. weight : Poids de l\u0026rsquo;élément dans le menu. Plus il est faible, plus l\u0026rsquo;élément sera affciher au début du menu. parent : Pour les éléments enfants, élément auquel il est rattaché. Si deux éléments sont au même niveau avec le même poids, l\u0026rsquo;affichage se fait par ordre alphabétique.\nUn élément parent sans attribut pageRef ne va pas être cliquable mais va se dérouler s\u0026rsquo;il a des éléments enfants.\nTester le site # Hugo permet de lancer un serveur local pour tester notre site avant de le déployer.\nIl se lance à l\u0026rsquo;aide de la commande suivante :\nhugo server --disableFastRender --noHTTPCache --disableFastRender permet d\u0026rsquo;avoir la dernière version sur le serveur\n--noHTTPCache permet de ne rien avoir de sauvegardé dans le cache du navigateur\nIl reste possible que certains détails ne soient pas à jour sur le serveur de test. Si les modifications ne sont pas présentes, même après avoir rafraichi la page, arrêtez le serveur en faisant Ctrl + C puis relancez-le avec la commande ci-dessus.\nDéployer le site # Pour déployer votre site web, vous devez uniquement prendre le dossier public qui contient tous les fichiers finaux.\nVous pouvez ensuite le déployer selon la méthode de votre choix sur le support de votre choix.\nPlus d\u0026rsquo;informations # Pour plus d\u0026rsquo;information sur la configuration ou sur la personnalisation du site, consultez la documentation officelle de Blowfish :\nhttps://blowfish.page/\n","date":"18 November 2025","externalUrl":null,"permalink":"/aides-memoires/hugo/","section":"Aides-mémoires","summary":"Tutoriel d\u0026rsquo;installation et de configuration pour créer un site avec Hugo.","title":"Tutoriel Hugo avec Blowfish","type":"aides-memoires"},{"content":"","date":"17 November 2025","externalUrl":null,"permalink":"/tags/dns/","section":"Tags","summary":"","title":"Dns","type":"tags"},{"content":" Prérequis # Pour mettre en place le DNS dynamique via Cloudflare, vous devez avoir\nUn compte Cloudflare opérationnel Un domaine dont vous êtes le propriétaire L\u0026rsquo;adresse IP vers laquelle vous voulez rediriger Enregistrements DNS # Avant de le rendre dynamique, il faut d\u0026rsquo;abord paramétrer le DNS.\nPour cela, allez dans l\u0026rsquo;onglet DNS de votre compte Cloudflare, puis dans la partie DNS management cliquez sur Add record.\nIl vous sera alors demandé de choisir le type d\u0026rsquo;enregistrement, son nom ainsi que l\u0026rsquo;adresse de redirection. Choisissez un enregistrement de type A et entrez le nom de l\u0026rsquo;enregistrement ainsi que l\u0026rsquo;adresse voulue puis cliquez sur Save.\nVérifiez que le proxy est bien activé avant de valider votre enregistrement DNS.\nVotre nouvel enregistrement doit maintenant apparaître dans la liste sur votre page DNS.\nMise à jour automatique # Maintenant que l\u0026rsquo;enregistrement est ajouté , le DNS est actif pour cette adresse. Pour le rendre dynamique, il faut automatiser la mise à jour de l\u0026rsquo;adresse de redirection de l\u0026rsquo;enregistrement créé.\nPour ce faire nous allons créer un script bash qui va comparer notre adresse actuelle à celle de l\u0026rsquo;enregistrement DNS grâce à l\u0026rsquo;API Cloudflare.\nCréation du jeton API # Pour commencer, nous allons créer le jeton API qui va permettre d\u0026rsquo;accéder à l\u0026rsquo;enregistrement.\nAllez dans votre profil Cloudflare puis, dans l\u0026rsquo;onglet API Tokens, cliquez sur Create Token. Choisissez le modèle Edit zone DNS puis donnez un nom au jeton et ajoutez votre domaine dans la partie Zone Resources.\nAu final, le jeton a les propriétés suivantes :\nPermissions : Zone - DNS - Edit Zone Resources : Include - Specific Zone - nom_de_votre_domaine Vous pouvez ensuite cliquer sur Continue to summary puis Create Token.\nRetenez bien le nom que vous avez donné au jeton, il sera utilisé dans le script. Création du script bash # Nous allons maintenant créer le cœur de la mise à jour des enregistrements.\nPour commencer, créez le fichier qui va contenir le script bash :\nsudo nano /usr/local/bin/cloudflare_ddns_update.sh Ensuite, ajoutez le code suivant dans le fichier.\n#!/bin/bash # Configuration # Remplacer par votre adresse e-mail Cloudflare CLOUDFLARE_EMAIL=\u0026#34;adresse_mail_du_compte\u0026#34; # Remplacer par votre jeton API Cloudflare CLOUDFLARE_API_KEY=\u0026#34;nom_du_jeton_api\u0026#34; # Remplacer par votre nom de domaine principal ZONE_NAME=\u0026#34;nom_de_votre_domaine\u0026#34; # Liste des sous-domaines complets à mettre à jour. # Ajoutez autant d\u0026#39;enregistrements que vous le souhaitez dans cette liste. RECORD_NAMES=(\u0026#34;enregistrement1\u0026#34; \u0026#34;enregistrement2\u0026#34;) # Fichier pour stocker la dernière adresse IP connue IP_FILE=\u0026#34;/var/tmp/cloudflare_ddns_ip.txt\u0026#34; # Fichier de log LOG_FILE=\u0026#34;/var/log/cloudflare_ddns.log\u0026#34; # Fonction de log log() { # Ajoute la date et l\u0026#39;heure à chaque entrée de log echo \u0026#34;$(date \u0026#39;+%Y-%m-%d %H:%M:%S\u0026#39;) - $1\u0026#34; \u0026gt;\u0026gt; \u0026#34;$LOG_FILE\u0026#34; } # 1. Obtenir l\u0026#39;adresse IP publique actuelle # Utilisation de `dig` pour une méthode plus robuste, avec `curl` en secours. CURRENT_IP=$(dig +short myip.opendns.com @resolver1.opendns.com) || CURRENT_IP=$(curl -s https://api.ipify.org ) if [ -z \u0026#34;$CURRENT_IP\u0026#34; ]; then log \u0026#34;ERREUR: Impossible d\u0026#39;obtenir l\u0026#39;adresse IP publique actuelle.\u0026#34; exit 1 fi # 2. Vérifier si l\u0026#39;adresse IP a changé if [ -f \u0026#34;$IP_FILE\u0026#34; ]; then LAST_IP=$(cat \u0026#34;$IP_FILE\u0026#34;) else LAST_IP=\u0026#34;\u0026#34; fi if [ \u0026#34;$CURRENT_IP\u0026#34; == \u0026#34;$LAST_IP\u0026#34; ]; then log \u0026#34;INFO: L\u0026#39;adresse IP n\u0026#39;a pas changé ($CURRENT_IP). Aucune mise à jour nécessaire.\u0026#34; exit 0 fi log \u0026#34;INFO: L\u0026#39;adresse IP a changé: de \u0026#39;$LAST_IP\u0026#39; à \u0026#39;$CURRENT_IP\u0026#39;. Début de la mise à jour DNS.\u0026#34; # 3. Obtenir l\u0026#39;ID de la Zone (une seule fois pour le domaine principal) ZONE_ID=$(curl -s -X GET \u0026#34;https://api.cloudflare.com/client/v4/zones?name=$ZONE_NAME\u0026#34; \\ -H \u0026#34;X-Auth-Email: $CLOUDFLARE_EMAIL\u0026#34; \\ -H \u0026#34;X-Auth-Key: $CLOUDFLARE_API_KEY\u0026#34; \\ -H \u0026#34;Content-Type: application/json\u0026#34; | grep -oP \u0026#39;(?\u0026lt;=\u0026#34;id\u0026#34;:\u0026#34; )[^\u0026#34;]*\u0026#39;) if [ -z \u0026#34;$ZONE_ID\u0026#34; ]; then log \u0026#34;ERREUR: Impossible d\u0026#39;obtenir l\u0026#39;ID de la Zone pour \u0026#39;$ZONE_NAME\u0026#39;.\u0026#34; exit 1 fi # Boucle sur chaque enregistrement à mettre à jour for RECORD_NAME in \u0026#34;${RECORD_NAMES[@]}\u0026#34;; do log \u0026#34;--- Traitement de l\u0026#39;enregistrement: $RECORD_NAME ---\u0026#34; # 4. Obtenir l\u0026#39;ID de l\u0026#39;Enregistrement DNS RECORD_DETAILS=$(curl -s -X GET \u0026#34;https://api.cloudflare.com/client/v4/zones/$ZONE_ID/dns_records?type=A\u0026amp;name=$RECORD_NAME\u0026#34; \\ -H \u0026#34;X-Auth-Email: $CLOUDFLARE_EMAIL\u0026#34; \\ -H \u0026#34;X-Auth-Key: $CLOUDFLARE_API_KEY\u0026#34; \\ -H \u0026#34;Content-Type: application/json\u0026#34; ) RECORD_ID=$(echo \u0026#34;$RECORD_DETAILS\u0026#34; | grep -oP \u0026#39;(?\u0026lt;=\u0026#34;id\u0026#34;:\u0026#34;)[^\u0026#34;]*\u0026#39;) if [ -z \u0026#34;$RECORD_ID\u0026#34; ]; then log \u0026#34;ERREUR: Impossible d\u0026#39;obtenir l\u0026#39;ID pour \u0026#39;$RECORD_NAME\u0026#39;. Assurez-vous que cet enregistrement de type A existe.\u0026#34; continue # Passe à l\u0026#39;enregistrement suivant fi # 5. Mettre à jour l\u0026#39;enregistrement DNS UPDATE_RESPONSE=$(curl -s -X PUT \u0026#34;https://api.cloudflare.com/client/v4/zones/$ZONE_ID/dns_records/$RECORD_ID\u0026#34; \\ -H \u0026#34;X-Auth-Email: $CLOUDFLARE_EMAIL\u0026#34; \\ -H \u0026#34;X-Auth-Key: $CLOUDFLARE_API_KEY\u0026#34; \\ -H \u0026#34;Content-Type: application/json\u0026#34; \\ --data \u0026#34;{\\\u0026#34;type\\\u0026#34;:\\\u0026#34;A\\\u0026#34;,\\\u0026#34;name\\\u0026#34;:\\\u0026#34;$RECORD_NAME\\\u0026#34;,\\\u0026#34;content\\\u0026#34;:\\\u0026#34;$CURRENT_IP\\\u0026#34;,\\\u0026#34;proxied\\\u0026#34;:true,\\\u0026#34;ttl\\\u0026#34;:1}\u0026#34; ) if echo \u0026#34;$UPDATE_RESPONSE\u0026#34; | grep -q \u0026#39;\u0026#34;success\u0026#34;:true\u0026#39;; then log \u0026#34;SUCCÈS: Mise à jour de \u0026#39;$RECORD_NAME\u0026#39; avec l\u0026#39;IP \u0026#39;$CURRENT_IP\u0026#39;.\u0026#34; else log \u0026#34;ERREUR: La mise à jour de \u0026#39;$RECORD_NAME\u0026#39; a échoué. Réponse de l\u0026#39;API: $UPDATE_RESPONSE\u0026#34; fi done # 6. Sauvegarder la nouvelle adresse IP (uniquement si toutes les mises à jour ont été tentées) echo \u0026#34;$CURRENT_IP\u0026#34; \u0026gt; \u0026#34;$IP_FILE\u0026#34; log \u0026#34;--- Fin du script ---\u0026#34; exit 0 Vous devez modifier les valeurs suivantes au début du script :\nCLOUDFLARE_EMAIL : l\u0026rsquo;adresse mail du compte Cloudflare que vous utilisez CLOUDFLARE_API_KEY : le nom du jeton que vous avez créé ZONE_NAME : le nom de votre domaine (ex : domaine.com) RECORD_NAMES : les noms des enregistrements à mettre à jour (ex : dev.domaine.com, test.domaine.com, \u0026hellip;) Ce script fonctionne même si plusieurs enregistrements sont à mettre à jour car une boucle tourne sur la variable RECORD_NAMES qui peut contenir plusieurs enregistrements.\nUne fois les valeurs modifiées, vous pouvez enregistrer et quitter le fichier.\nIl faut pour finir le rendre exécutable avec la commande suivante :\nsudo chmod +x /usr/local/bin/cloudflare_ddns_update.sh Automatisation de la mise à jour # La dernière partie est l\u0026rsquo;automatisation de la mise à jour.\nPour cela, nous allons ajouter l\u0026rsquo;exécution du script à cron qui exécute une liste de programme.\nPour accèder au fichier de configuration de cron, entrez la commande suivante :\ncrontab -e Ensuite, ajoutez cette ligne à la fin du fichier.\n*/5 * * * * /usr/local/bin/cloudflare_ddns_update.sh Cette ligne indique que le programme /usr/local/bin/cloudflare_ddns_update.sh doit être exécuté toutes les 5 minutes.\nLe DNS dynamique avec Cloudflare est maintenant opérationnel.\n","date":"17 November 2025","externalUrl":null,"permalink":"/aides-memoires/dyndns/","section":"Aides-mémoires","summary":"Tutoriel pour mettre en place un DNS dynamique vers une adresse ip à l\u0026rsquo;aide de Cloudflare.","title":"DNS dynamique","type":"aides-memoires"},{"content":" Installation de Nginx # Pour installer Nginx, il suffit d\u0026rsquo;exécuter les commandes suivantes :\nsudo apt update # Met à jour le gestionnaire apt sudo apt install nginx curl -y # Installe nginx sudo systemctl enable nginx # Ajoute nginx au démarrage automatique sudo systemctl start nginx # Lance nginx Mise en place d\u0026rsquo;un site # Configuration Nginx # Une fois que Nginx est installé, nous pouvons commencer la configuration du site.\nDans les commandes suivantes, le site est nommé mon_site_web. Toutes les commandes sont donc à adapter selon le nom de votre site. Tout d\u0026rsquo;abord, nous devons créer le dossier où seront stockés les fichiers du site puis attribuer les bonnes permissions.\nVous pouvez mettre une page temporaire dans ce dossier ou votre site s\u0026rsquo;il existe déjà.\n# Crée le répertoire racine du site sudo mkdir -p /var/www/mon_site_web # Définit les permissions sudo chown -R www-data:www-data /var/www/mon_site_web sudo chmod -R 755 /var/www/mon_site_web L\u0026rsquo;utilisateur www-data est celui utilisé par Nginx. C\u0026rsquo;est la raison pour laquelle il est mis comme propriétaire du dossier.\nNginx gère la disponibilité des sites via deux dossiers :\nsites-available : Contient les fichiers de configuration des sites sur le serveur sites-enabled : Contient des liens symboliques vers les fichiers de configurations. Seuls les sites ayant un lien symboliques sont accessible via le serveur. Nous devons donc commencer par créer le fichier de configuration du site.\nsudo nano /etc/nginx/sites-available/mon_site_web Ce fichier suit le format suivant :\nserver { # Port d\u0026#39;écoute listen 80; # IPv4 listen [::]:80; # IPv6 # Nom du site server_name mon_site_web; # Chemin racine du site root /var/www/mon_site_web; # Ficher à chercher à la racine index index.html; # Comportement lors de la réception d\u0026#39;une requête location / { try_files $uri $uri/ =404; } } Une fois que le site est mit comme étant disponible, nous devons l\u0026rsquo;activer en créant un lien symbolique vers le fichier de configuration dans le dossier des sites activés.\n# Créer un lien symbolique pour activer la configuration sudo ln -s /etc/nginx/sites-available/mon_site_web /etc/nginx/sites-enabled/ Nginx propose une commande pour vérifier qu\u0026rsquo;il n\u0026rsquo;y a pas d\u0026rsquo;erreurs de syntaxe dans les fichiers de configuration.\nSi le test réussit, vous pouvez redémarrer Nginx pour appliquer les changements.\n# Tester la configuration sudo nginx -t # Redémarrer Nginx sudo systemctl restart nginx Configuration du Routeur # La dernière étape pour rendre accessible votre site est le transfert de trafic, c\u0026rsquo;est-à-dire faire en sort que les requêtes arrivant au routeur soient transférées vers votre serveur.\nPour ce faire, vous devez vous connecter à l\u0026rsquo;interface d\u0026rsquo;administration de votre routeur internet (souvent 192.168.0.1 ou 192.168.1.1) puis chercher la partie Redirection de port ou Port forwarding.\nVous devez alors créer une règle pour rediriger le trafic arrivant sur le port 80. La règle doit être la suivante :\nPort Externe (Public) : 80 Port Interne (Local) : 80 Adresse de redirection : L\u0026rsquo;adresse IP locale de votre machine Si vous prévoyez de mettre en place la connexion HTTPS, vous pouvez alors faire de même avec le port 443. Votre site est maintenant accessible en HTTP via l\u0026rsquo;adresse IP de votre routeur ou via une URL si vous avez paramétré un DNS.\nActivation de la connexion HTTPS # Votre site est accessible mais uniquement en HTTP. Il est recommandé de sécuriser votre serveur en autorisant uniquement les connexions via HTTPS.\nPour ce faire, nous allons utiliser certbot qui permet la génération et le renouvellement de certificats.\nMode SSL/TLS # Avant de commencer avec certbot, il est vivement recommandé de passer le chiffrement SSL/TLS en mode Full (Strict) sur Cloudflare.\nPour cela, allez dans votre compte Cloudflare, partie SSL/TLS, onglet *Overview, puis cliquez sur Configure pour changer de mode. Ensuite, choisissez Custom SSL/TLS puis sélectionnez Full (Strict). Vous pouvez maintenant cliquez sur Save et retourner sur votre terminal.\nInstallation de certbot # Pour installer certbot, utilisez la commande suivante :\n# Installer Certbot et le plugin Nginx sudo apt install certbot python3-certbot-nginx -y Génération du certificat # Maintenant que certbot est installé, nous pouvons lancer la génération du certificat avec la commande suivante :\nsudo certbot --nginx -d mon_site_web Une fois la commande lancée, suivez les instructions à l\u0026rsquo;écran. Une des question vous demandera de choisir entre retirer la connexion HTTP ou la rediriger vers la connexion HTTPS. Il est recommandé de rediriger les connexions HTTP vers celles HTTPS.\nUne fois le certificat généré, certbot fait des changements dans le fichier de configuration de votre site. Après modification, il doit avoir le format suivant :\nserver { # Nom du site server_name mon_site_web; # Chemin racine du site root /var/www/mon_site_web; # Ficher à rechercher à la racine index index.html; # Comportement lors de la réception d\u0026#39;une requête location / { try_files $uri $uri/ =404; } listen [::]:443 ssl; # managed by Certbot listen 443 ssl; # managed by Certbot ssl_certificate /etc/letsencrypt/live/mon_site_web/fullchain.pem; # managed by Certbot ssl_certificate_key /etc/letsencrypt/live/mon_site_web/privkey.pem; # managed by Certbot include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot } server { if ($host = mon_site_web) { return 301 https://$host$request_uri; } # managed by Certbot listen 80; listen [::]:80; server_name mon_site_web; return 404; # managed by Certbot } Renouvellement de certificat # Les certificats sont valables 90 jours. Cependant, certbot a automatiquement configuré une tâche cron ou un timer systemd pour le renouvellement.\nVous pouvez tester le processus avec la commande suivante. Si elle réussit, le renouvellement automatique fonctionnera correctement.\nsudo certbot renew --dry-run Ajouter d\u0026rsquo;autres sites # Pour ajouter de nouveaux sites sur le même serveur, il suffit de répéter la démarche de l\u0026rsquo;étape Configuration Nginx avec le nom du site que vous voulez ajouter.\nVous aurez alors l\u0026rsquo;architecture suivante :\nroot ├── /etc/nginx # Dossier de configuration de Nginx │ ├── sites-available # Fichiers de configuration | | ├── mon_site_web | │ └── deuxieme_site │ └── sistes-enabled # Liens symboliques pour activer les sites | ├── mon_site_web | └── deuxieme_site | └── /var/www # Dossier contenant les fichiers des sites ├── mon_site_web # Code du premier site │ ├── index.html │ └── styles.css └── deuxieme_site # Code du deuxième site ├── index.html └── styles.css Le fichier de configuratuion du deuxième site sera alors :\nserver { # Port d\u0026#39;écoute listen 80; # IPv4 listen [::]:80; # IPv6 # Nom du site server_name deuxieme_site; # Chemin racine du site root /var/www/deuxieme_site; # Ficher à chercher à la racine index index.html; # Comportement lors de la réception d\u0026#39;une requête location / { try_files $uri $uri/ =404; } } Une fois la configuration nginx terminée, vous pouvez créer l\u0026rsquo;enregistremen DNS pour rediriger la requête HTTP vers l\u0026rsquo;adresse IP de votre routeur internet.\nIl est aussi possible et recommandé de sécuriser la connexion en réalisant les même commandes que dans la partie Génération du certificat.\n","date":"16 November 2025","externalUrl":null,"permalink":"/aides-memoires/serveur-nginx/","section":"Aides-mémoires","summary":"Tutoriel pour mettre en place un serveur web auto-hébergé avec Nginx sur une machine linux.","title":"Serveur web auto-hébergé","type":"aides-memoires"},{"content":"","date":"20 October 2025","externalUrl":null,"permalink":"/tags/firewall/","section":"Tags","summary":"","title":"Firewall","type":"tags"},{"content":" Installation UFW # Pour installer le pare-feu Uncomplicated FireWall, il suffit d\u0026rsquo;exécuter les commandes suivantes :\nsudo apt update # Met à jour le gestionnaire de paquets sudo apt install ufw # Installe ufw sudo ufw enable # Ajoute ufw au démarrage automatique sudo ufw statut # Affiche le statut de ufw Configuration # Par défaut, quand le pare-feu est activé, tous les ports sont fermés.\nIl est cependant possible d\u0026rsquo;ouvrir des ports pour autoriser les requêtes à passer via ce port.\nsudo ufw allow [ARG] [ARG] est à remplacer par le port à ouvrir sur le pare-feu.\nSi vous voulez fermer un port ouvert, entrez la commande suivante en spécifiant le port à fermer :\nsudo ufw delete allow [ARG] Pour afficher le statut et la configuration du pare-feu, vous pouvez utiliser la commande suivante\nsudo ufw status verbose L\u0026rsquo;ajout du mot verbose permet d\u0026rsquo;avoir plus de détails sur la configuration.\nUne configuration pour un pare-feu ayant les ports HTTP et HTTPS ouverts pour les adresses IPv4 et IPv6 ressemble à ça\nstatut: active Logging: on (low) Default: deny (incoming), allow (outgoing), deny (routed) New profiles: skip To Action From -- ------ ---- 80/tcp ALLOW IN Anywhere 443/tcp ALLOW IN Anywhere 80/tcp (v6) ALLOW IN Anywhere (v6) 443/tcp (v6) ALLOW IN Anywhere (v6) Exemples de port courants # Voici une liste non exhaustive de ports courants avec le protocol utilisé :\n20, 21 (TCP): FTP 22 (TCP) : SSH 25 (TCP) : SMTP 80 (TCP): HTTP 389 (TCP/UDP) : LDAP 443 (TCP) : HTTPS 465, 587 (TCP): SMTPS 636 (TCP) : LDAPS 1433 (TCP) : Microsoft SQL Server 1521 (TCP) : Oracle Database 3306 (TCP) : MySQL/MariaDB 3389 (TCP) : RDP 5432 (TCP) : PostgreSQL 27017 (TCP) : MongoDB ","date":"20 October 2025","externalUrl":null,"permalink":"/aides-memoires/firewall/","section":"Aides-mémoires","summary":"Tutoriel pour mettre en place Uncomplicated FireWall.","title":"Mise en place d'UFW","type":"aides-memoires"},{"content":"","date":"20 October 2025","externalUrl":null,"permalink":"/tags/ufw/","section":"Tags","summary":"","title":"Ufw","type":"tags"},{"content":" Vers une machine Windows Pro # Windows Pro - Installation # Aucune installation nécessaire. Tout le nécessaire est déjà installé.\nWindows Pro - Connexion # Ouvrez l\u0026rsquo;application Connexion bureau à distance (cherchez \u0026lsquo;rdp\u0026rsquo; dans la barre de recherche Windows) Entrez l\u0026rsquo;adresse IP de la machine à laquelle vous voulez vous connecter Entrez l\u0026rsquo;identifiant et le mot de passe pour la session à ouvrir Vers une machine Windows Famille # Windows Famille - Installation # La version familiale ne supportant pas la connexion rdp, nous allons utiliser un logiciel tiers, TeamViewer.\nTéléchargez et installez l\u0026rsquo;application TeamViewer (https://www.teamviewer.com/fr/download/windows/) sur vos deux appareils Créez un compte si ce n\u0026rsquo;est pas déjà fait et connectez-vous une fois l\u0026rsquo;application lancée Dans l\u0026rsquo;onglet Téléassistance, cochez la case Autoriser Grant Access sur cet appareil Windows Famille - Connexion # Démarrez TeamViewer Allez dans l\u0026rsquo;onglet Appareils Sélectionnez et connectez-vous à l\u0026rsquo;appareil que vous désirez Vers une machine Linux # Linux - Installation # Installez et lancez le logiciel xrdp sur votre machine Linux.\nsudo apt update # Met à jour le gestionnaire apt sudo apt upgrade -y # Met à jour les paquets installés sudo apt install xrdp -y # Installe xrdp sudo systemctl enable xrdp # Ajoute xrdp au démarrage automatique sudo systemctl start xrdp # Lance xrdp Vérifiez que le port 3389 est ouvert pour les adresses IPv4 comme IPv6.\nsudo ufw allow 3389/tcp # Exemple avec le firewall UFW Vérifiez l\u0026rsquo;état de xrdp avec la commande.\nsystemctl status xrdp Linux - Connexion # Ouvrez l\u0026rsquo;application Connexion bureau à distance (cherchez \u0026lsquo;rdp\u0026rsquo; dans la barre de recherche Windows) Entrez l\u0026rsquo;adresse IP de la machine à laquelle vous voulez vous connecter Entrez l\u0026rsquo;identifiant et le mot de passe pour la session à ouvrir dans l\u0026rsquo;interface xrdp ","date":"19 October 2025","externalUrl":null,"permalink":"/aides-memoires/rdp/","section":"Aides-mémoires","summary":"Tutoriel pour mettre en place une connexion RDP vers un appareil.","title":"Connexion RDP","type":"aides-memoires"},{"content":"","date":"19 October 2025","externalUrl":null,"permalink":"/tags/rdp/","section":"Tags","summary":"","title":"Rdp","type":"tags"},{"content":" Connexion SSH # Installation d\u0026rsquo;OpenSSH # Pour commencer il faut installer le serveur ssh sur la machine cible.\nNous allons utiliser OpenSSH pour ce tutoriel.\nsudo apt update # Met à jour le gestionnaire apt sudo apt install openssh-server # Installe OpenSSH sudo systemctl start ssh # Démarre OpenSSH sudo systemctl enable ssh # Ajoute ssh au démarrage automatique sudo systemctl status ssh # Affiche le statut de Open SSH Ensuite vérifiez que le port utilisé par les connexions SSH est bien ouvert.\nsudo ufw allow ssh # Exemple avec le firewall UFW Connexion à la machine cible # Pour vous connecter à la machine cible, vous avez besoin de son adresse IP ainsi que du nom de l\u0026rsquo;utilisateur auquel vous voulez vous connecter.\nPour avoir l\u0026rsquo;adresse IP, entrez la commande suivante sur votre machine cible.\nip -br a Une fois que vous avez l\u0026rsquo;adresse, vous pouvez vous connecter en utilisant la commande suivante sur votre machine source.\nssh nom_utilisateur@adresse_ip nom_utilisateur correspond à la session avec laquelle vous allez être connecté adresse_ip est l\u0026rsquo;adresse de la machine cible obtenue avec la commande précédente Lors de la première connexion, un message vous demandera de vérifier l\u0026rsquo;authenticité de l\u0026rsquo;hôte en acceptant son empreinte de clé (\u0026ldquo;fingerprint\u0026rdquo;).\nPour compléter la connexion, vous devez entrer le mot de passe de l\u0026rsquo;utilisateur avec lequel vous vous connectez et vous aurez accès à un shell relié à votre machine cible.\nVous pouvez vous déconnecter en tapant exit dans le terminal.\nMise en place des clés RSA # En suivant les étapes précédentes, vous avez mis en place une connexion ssh entre deux machines. L\u0026rsquo;étape suivante est de sécuriser la connexion.\nPour ce faire nosu allons mettre en place une connexion par clé RSA. Lors de la connexion SSH, le serveur ne va plus vous demander le mot de passe de l\u0026rsquo;utilisateur utilisé pour la connexion mais va plutôt regarder si vous possédez la clé privée correspondante à la clé publique qui est enregistrée.\nGénérer les clés # La première étape pour sécuriser la connexion est de générer la paire de clé avec la commande suivante\nssh-keygen -t rsa -b 4096 ssh-keygen : outil utilisé piur la génération des clés -t rsa : force l\u0026rsquo;utilisation de l\u0026rsquo;algorithme RSA -b 4096 : fixe la taille de la clé à 4096 bits Une fois la commande entrée, suivez les instructions à l\u0026rsquo;écran :\nEnter file in which to save the key (...) : Entrez l\u0026rsquo;emplacement de sauvegarde de vos clés. Laissez vide pour l\u0026rsquo;emplacement par défaut (C:\\Users\\VotreNom\\.ssh\\id_rsa) Enter passphrase (empty for no passphrase) : Entrez la phrase de passe pour vos clés. Cette phrase vous sera demandée à chaque utilisation de la clé. Laissez vide pour ne pas utiliser de phrase de passe. Copie de la clé publique sur la machine cible # Maintenant que les clés sont générées, vous devez copier la clé publique sur le serveur SSH.\nVous pouvez afficher votre clé publique avec la commande suivante (le chemin est à adapter selon votre arborescence)\ncat ~/.ssh/id_rsa.pub La clé est une longue chaîne de caractères commençant par ssh-rsa.\nUne fois la clé affichée, vous pouvez la copier et vous connecter sur votre machine serveur en utilisant le mot de passe de l\u0026rsquo;utilisateur\nssh nom_utilisateur@adresse_ip Une fois connecté, vous devez ajouter votre clé publique sur le serveur ssh (remplacez la partie public_key par votre clé publique copiée précédement)\nmkdir -p ~/.ssh \u0026amp;\u0026amp; chmod 700 ~/.ssh \u0026amp;\u0026amp; echo \u0026#34;public_key\u0026#34; \u0026gt;\u0026gt; ~/.ssh/authorized_keys \u0026amp;\u0026amp; chmod 600 ~/.ssh/authorized_keys mkdir -p ~/.ssh : Crée le répertoire ~/.ssh s’il n’existe pas.\nchmod 700 ~/.ssh : Restreint l’accès au répertoire. Seul l’utilisateur peut lire, écrire, exécuter.\necho \u0026quot;public_key\u0026quot; \u0026gt;\u0026gt; ~/.ssh/authorized_keys : Ajoute la clé publique au fichier authorized_keys en l’insérant à la fin.\nchmod 600 ~/.ssh/authorized_keys : Limite l’accès au fichier aux seules lectures/écritures de l’utilisateur.\nVous pouvez maintenant vous déconnecter de la machine cible.\nSi vous prévoyez d\u0026rsquo;autoriser la connexion d\u0026rsquo;autres appareils, vous pouvez ajouter leur clé en faisant echo \u0026quot;public_key\u0026quot; \u0026gt;\u0026gt; ~/.ssh/authorized_keys car le fichier existe déjà et les permissions ont été données.\nTest de la connexion par clé # Pour tester la bonne mise en place des clés RSA, vous pouvez vous connecter comme précédement et cette fois il vous sera demandé la phrase de passe que vous avez défini lors de la génération des clés pour valider votre connexion SSH.\nSécurisation # Attention ! Cette étape n\u0026rsquo;est à réaliser uniquement si la connéxion par clé fonctionne ! Une fois que vous êtes sur que la connexion avec clés RSA fonctionne, vous pouvez désactiver la connexion par mot de passe.\nCette démarche assure que seuls les appareils ayant une clé RSA reconnue peuvent se connecter à la machine cible.\nPour ce faire, connectez-vous à la machine puis éditez le fichier de configuration du serveur SSH\nsudo nano /etc/ssh/sshd_config Dans ce fichier cherchez les lignes PasswordAuthentication et PubkeyAuthentication puis modifiez leur valeur par réspéctivement no et yes.\nAu final vous devez avoir quelque chose comme ça\nPasswordAuthentication no PubkeyAuthentication yes Une fois le fichier enregistré, vous pouvez relancer le serveur SSH pour appliquer les changements.\nsudo systemctl restart ssh Votre serveur n\u0026rsquo;accepte maintenant que les connexions d\u0026rsquo;appareil ayant une clé correspondante à l\u0026rsquo;une de celles enregistrées.\n","date":"18 October 2025","externalUrl":null,"permalink":"/aides-memoires/ssh-rsa/","section":"Aides-mémoires","summary":"Tutoriel pour mettre en place une connexion SSH sécurisée par clés RSA vers un appareil.","title":"Connexion SSH avec clés RSA","type":"aides-memoires"},{"content":"","date":"18 October 2025","externalUrl":null,"permalink":"/tags/rsa/","section":"Tags","summary":"","title":"Rsa","type":"tags"},{"content":"","date":"18 October 2025","externalUrl":null,"permalink":"/tags/ssh/","section":"Tags","summary":"","title":"Ssh","type":"tags"},{"content":"","date":"9 October 2025","externalUrl":null,"permalink":"/tags/cmd/","section":"Tags","summary":"","title":"Cmd","type":"tags"},{"content":"","date":"9 October 2025","externalUrl":null,"permalink":"/tags/commandes/","section":"Tags","summary":"","title":"Commandes","type":"tags"},{"content":" Déplacement # cd path Description :\nChange le répertoire courant pour celui de l\u0026rsquo;adresse donnée.\nListing # dir [ OPTION ] path Description :\nListe les éléments présents dans le dossier donné.\nSi path est vide, affiche les éléments du repoertoir courant.\nOptions :\n/A : Affiche les fichiers avec attributs spécifiques /B : Affiche uniquement les noms des éléments /S : Scanne récursivement /P : Pause à chaque page lors de l\u0026rsquo;affichage Clear # cls Description :\nNettoie l\u0026rsquo;interface du terminal.\nAdresse IP # Adresse publique du routeur # curl [ OPTION ] ifconfig.me Description :\nAffiche l\u0026rsquo;adresse IP publique du routeur.\nOptions :\n-4 : Affiche l\u0026rsquo;adresse IPv4 -6 : Affiche l\u0026rsquo;adresse IPv6 Adresse locale de l\u0026rsquo;appareil # ipconfig Description :\nAffiche les interfaces et leurs adresses.\nCopier # Copie de fichier # copy [ OPTION ] source destination Description :\nFait une copie du fichier source dans le répertoire cible.\nOptions :\n/Y : Supprime les demandes de confirmation d\u0026rsquo;écrasement /V : Vérifie l\u0026rsquo;intégrité après copie /A : Copie en mode texte /B : Copie en mode binaire Copie de dossiers # xcopy [ OPTION ] source destination Description :\nFait une copie du dossier source dans le répertoire cible.\nOptions :\n/E : Inclut sous-dossiers même vides /I : Suppose que la destination est un dossier /Y : Supprime les demandes de confirmation d\u0026rsquo;écrasement /H : Inclut fichiers cachés/système /C : Continue malgré les erreurs Supprimer # Suppression de fichiers # del [ OPTION ] file Description :\nSupprime le fichier à l\u0026rsquo;adresse donnée.\nOptions :\n/F : Force la suppression des fichiers en lecture seule /S : Parcourt le répertoire courant récursivement et supprime tous les fichiers nommés file /Q : Supprime les demandes de confirmation /P : Demande la confirmation à chaque suppression Suppression de dossiers # rd [ OPTION ] directory Description :\nSupprime le dossier à l\u0026rsquo;adresse donnée.\nOptions :\n/S : Supprime récursivement /Q : Supprime les demandes de confirmation Permissions et propriété # icacls path [ OBJET ] [ OPTION ] Description :\nAffiche les permissions sur l\u0026rsquo;élément donné.\nOptions :\n/T : Les modifications sont faites sur tout élément enfant du chemin donné /C : Ignore les messages d\u0026rsquo;erreur /L : La modification se fait sur un lien symbolique /Q : Mode silencieux Modification de permissions # Objet :\n/grant user:perm : Change les droits de l\u0026rsquo;utilisateur /remove user : Retire les droits de l\u0026rsquo;utilisateur perm peut prendre les valeurs suivantes :\nN - Aucun accès F - Accès complet M - Accès en modification RX - Accès en lecture et exécution R - Accès en lecture seule W - Accès en écriture seule D - Accès en suppression Modification de propriétaire # Objet :\n/setowner user : Change le propriétaire du fichier Emplacement actuel # cd Description :\nAffiche le chemin du dossier courant.\nRedémarrer # shutdown /r /f /t 0 Explication des options :\n/r : redémarre l\u0026rsquo;ordinateur. /f : force la fermeture des applications en cours. /t 0 : définit le délai avant le redémarrage à 0 secondes. ","date":"9 October 2025","externalUrl":null,"permalink":"/aides-memoires/cmd-basic/","section":"Aides-mémoires","summary":"Toutes les commandes de base pour utiliser le cmd Microsoft.","title":"Commandes cmd basiques","type":"aides-memoires"},{"content":" Déplacement # cd path Description :\nChange le répertoir courant par celui du chemin donné.\nListing # ls [ OPTION ] path Description :\nListe les éléments présents dans le dossier donné.\nSi path est vide, affiche les éléments du répertoire courant.\nOptions :\n-a : Affiche également les éléments cachés (dont le nom commence par \u0026lsquo;.\u0026rsquo;) -l : Affiche le détail des éléments (permissions, propriétaire, taille, date de modification) -h : Quand le détail est affiché, met les tailles en unités lisibles -1 : Affiche 1 élément par ligne -R : Scanne les dossiers récursivement Clear # clear Description :\nNettoie l\u0026rsquo;interface du terminal.\nAdresse IP # Adresse publique du routeur # curl [ OPTION ] ifconfig.me Description :\nAffiche l\u0026rsquo;adresse IP publique du routeur.\nOptions :\n-4 : Affiche l\u0026rsquo;adresse IPv4 -6 : Affiche l\u0026rsquo;adresse IPv6 Adresse locale de l\u0026rsquo;appareil # ip [ OPTION ] a [ OBJET ] Description :\nAffiche les interfaces et leurs adresses.\nOptions :\n-br : Affiche le résultat en format court -4 : Affiche les interfaces avec des adresses IPv4 -6 : Affiche les interfaces avec des adresses IPv6 Objets :\nshow \u0026lt;interface\u0026gt; : Affiche l\u0026rsquo;interface indiquée show to \u0026lt;adresse\u0026gt; : Affiche l\u0026rsquo;interface qui utilise l\u0026rsquo;adresse show up : Affiche uniquement les interfaces actives Test de connexion # ping [ OPTION ] adesse Description :\nEnvoi un paquet vers l\u0026rsquo;adresse donnée et regarde la reponse\nOptions :\n-n X : envoi X paquets pour faire le test Copier # cp [ OPTION ] source cible Description :\nFait une copie d\u0026rsquo;un fichier ou d\u0026rsquo;un dossier source dans le repertoire cible.\nOptions :\n-v : Sortie en mode verbeux -u : Copie uniquement si le fichier source est plus récent -i : Demande une confirmation avant d\u0026rsquo;écraser -r : Fait une copie récursive (pour les dossiers) Supprimer # rm [ OPTION ] path Description :\nSupprime les éléments à l\u0026rsquo;adresse donnée.\nOptions :\n-f : Force la suppression -i : Demande confirmation à chaque suppression -r : Supprime récursivement tous les éléments à partir de l\u0026rsquo;adresse -d : Supprime les dossiers vides -v : Affiche les éléments supprimés Permissions # chmod [ OPTION ] [ PERM ] path Description :\nChange les permissions de l\u0026rsquo;élément donné.\nOptions :\n-R : Applique les permissions récursivement -v : Affiche les éléments modifiés -c : Affiche uniquement les changements effectués Permissions :\nLes droits sont donnés sous la forme de trois chiffres → XXX.\nChaque chiffre est compris entre 0 et 7 et est la somme de 1 pour le droit d\u0026rsquo;exécution (x), 2 pour le droit d\u0026rsquo;écriture (w) et 4 pour le droit de lecture (r).\nLe premier chiffre est pour le propriétaire Le second est pour le groupe Le troisième est pour les autres utilisateurs Propriété # chown [ OPTION ] [ USER ] path Description :\nChange le propriétaire de l\u0026rsquo;élément donné.\nOptions :\n-R : Change récursivement le propriétaire et/ou le groupe des fichiers -v : Affiche les fichiers dont le propriétaire ou le groupe a été modifié -c : Affiche uniquement les fichiers modifiés Utilisateur :\nuser : change le propriétaire user:groupe : change le propriétaire et le groupe Emplacement actuel # pwd Description :\nAffiche le chemin du dossier courant.\nRedémarrer # sudo reboot Statut d\u0026rsquo;un service # sudo systemctl status [SERVICE] Description :\nAffiche le statut du service donné.\nSERVICE : Le nom du service à afficher.\nInformation sur la machine # Gestionnaire de tâche # htop Description :\nAffiche un équivalent du gestionnaire de tâche dans la console.\nTemps d\u0026rsquo;activité # uptime [ OPTIONS ] Description :\nAffiche l\u0026rsquo;heure de la machine, le temps d\u0026rsquo;activité, le nombre d\u0026rsquo;utilisateurs et les moyennes de charge.\nOptions :\n-s : Affiche la date éxacte du dernier démareage -p : Mode pretty Chercher un fichier # Recherche exacte # sudo find path [ OPTION ] file Description :\nCherche les fichier correspondant à file à partir de path.\nPour cherhcer à partir de la racine, path = /.\nOptions :\n-name : Cherche exactement ce nom -iname : Ignore la casse Recheeche par motif # sudo find / -type f -name [ MOTIF ] Description :\nCherche les fichier correspondant à MOTIF à partir de path.\nPour cherhcer à partir de la racine, path = /.\nMotif :\ntest* : Tous les fichiers commençant par \u0026rsquo;test' *test : Tous les fichiers terminant par \u0026rsquo;test' *test* : Tous les fichiers ayant \u0026rsquo;test\u0026rsquo; dans leur nom Informations temporelles # timedatectl [ OPTION ] Description :\nAffiche les informations concernant les propriétés temporelles de la machine (timezone, heure\u0026hellip;).\nOptions :\nset-time TIME : Change l\u0026rsquo;heure du système. TIME doit être de la forme \u0026ldquo;YYYY-MM-DD\u0026rdquo;, \u0026ldquo;HH:MM:SS\u0026rdquo; ou \u0026ldquo;YYYY-MM-DD HH:MM:SS\u0026rdquo;. list-timezones : Affiche toutes les timezones connues set-timezone ZONE : Modifie la timezone du système ","date":"8 October 2025","externalUrl":null,"permalink":"/aides-memoires/shell-basics/","section":"Aides-mémoires","summary":"Toutes les commandes de base pour utiliser le shell Linux.","title":"Commandes Shell basiques","type":"aides-memoires"},{"content":"","externalUrl":null,"permalink":"/authors/","section":"Authors","summary":"","title":"Authors","type":"authors"},{"content":"","externalUrl":null,"permalink":"/series/","section":"Series","summary":"","title":"Series","type":"series"}]