BUT R&T
Réseaux & Télécommunications
Réseaux · Systèmes · Cybersécurité · Automatisation
Modèles OSI & TCP/IP
Comprendre comment les données voyagent sur un réseau
Le modèle OSI — 7 couches
Cadre conceptuel standardisant les fonctions réseau. Chaque couche a un rôle précis et communique uniquement avec les couches adjacentes. En pratique on utilise TCP/IP, mais OSI reste la référence pour diagnostiquer.
Encapsulation / Décapsulation
Chaque couche ajoute un en-tête (header) à l'émission, et le retire à la réception.
| Couche | Action | Résultat |
|---|---|---|
| Application | Crée les données | Données brutes |
| Transport | Ajoute port source/dest, numéro de séquence | Segment TCP / Datagramme UDP |
| Réseau | Ajoute IP source/dest, TTL | Paquet IP |
| Liaison | Ajoute MAC source/dest, CRC | Trame Ethernet |
| Physique | Convertit en signaux électriques/optiques | Bits transmis |
TCP/IP — les 4 couches
- Application
- Présentation
- Session
- Transport
- Réseau
- Liaison
- Physique
- Application (7+6+5)
- Transport (4)
- Internet/Réseau (3)
- Accès réseau (2+1)
Adressage IP & Sous-réseaux
IPv4, masques CIDR, calcul de plages, adresses spéciales
Structure d'une adresse IPv4
32 bits = 4 octets séparés par des points. Ex : 192.168.1.100. Chaque octet = 0–255. L'adresse se divise en partie réseau + partie hôte selon le masque.
- 127.0.0.1 — Loopback (soi-même). Disponible même sans réseau.
- 0.0.0.0 — Route par défaut ou adresse non assignée.
- 255.255.255.255 — Broadcast général (tous les hôtes du LAN).
- Adresse réseau — Première adresse de la plage (ex : 192.168.1.0) — non attribuable.
- Adresse broadcast — Dernière adresse (ex : 192.168.1.255) — non attribuable.
- 169.254.x.x — APIPA : IP auto-attribuée quand le DHCP échoue.
Plages d'adresses privées (RFC 1918)
| Plage | CIDR | Masque | Hôtes max | Usage |
|---|---|---|---|---|
| 10.0.0.0 – 10.255.255.255 | 10.0.0.0/8 | 255.0.0.0 | 16 777 214 | Grandes entreprises |
| 172.16.0.0 – 172.31.255.255 | 172.16.0.0/12 | 255.240.0.0 | 1 048 574 | Entreprises moyennes |
| 192.168.0.0 – 192.168.255.255 | 192.168.0.0/16 | 255.255.0.0 | 65 534 | Domicile / PME |
Notation CIDR — masques courants
Formule : Hôtes = 2(32−CIDR) − 2 (réseau + broadcast retirés)
| CIDR | Masque | Hôtes | Exemple | Usage typique |
|---|---|---|---|---|
| /8 | 255.0.0.0 | 16 777 214 | 10.0.0.0/8 | Classe A — grands réseaux |
| /16 | 255.255.0.0 | 65 534 | 172.16.0.0/16 | Classe B |
| /24 | 255.255.255.0 | 254 | 192.168.1.0/24 | Réseau local standard |
| /25 | 255.255.255.128 | 126 | 192.168.1.0/25 | Moitié de /24 |
| /26 | 255.255.255.192 | 62 | 192.168.1.0/26 | Quart de /24 |
| /27 | 255.255.255.224 | 30 | 192.168.1.0/27 | Petit département |
| /28 | 255.255.255.240 | 14 | 192.168.1.0/28 | Très petit réseau |
| /29 | 255.255.255.248 | 6 | 192.168.1.0/29 | Mini réseau |
| /30 | 255.255.255.252 | 2 | 192.168.1.0/30 | Lien point à point (WAN) |
| /32 | 255.255.255.255 | 1 | 192.168.1.1/32 | Hôte unique (loopback, route statique) |
Ports & Protocoles
Tableau complet, TCP vs UDP, 3-way handshake
Qu'est-ce qu'un port ?
Un port est un numéro 16 bits (0–65535) identifiant un service sur une machine. IP = machine, port = programme. Un socket = IP + Port. Ex : 192.168.1.10:443 = HTTPS sur cette machine.
Tableau des ports essentiels
| Port | Proto | Service | Description |
|---|---|---|---|
| 20 | TCP | FTP-DATA | Transfert des données FTP (mode actif) |
| 21 | TCP | FTP | Contrôle de session FTP |
| 22 | TCP | SSH | Connexion distante chiffrée — remplace Telnet |
| 23 | TCP | Telnet | Connexion distante non chiffrée — DÉPRÉCIÉ |
| 25 | TCP | SMTP | Envoi d'emails entre serveurs de messagerie |
| 53 | TCP/UDP | DNS | Résolution de noms de domaine en IP |
| 67 | UDP | DHCP server | Attribution d'adresses IP (côté serveur) |
| 68 | UDP | DHCP client | Requête DHCP (côté client) |
| 69 | UDP | TFTP | Transfert de fichiers simplifié (PXE boot, config routeurs) |
| 80 | TCP | HTTP | Web non chiffré |
| 88 | TCP/UDP | Kerberos | Authentification Active Directory |
| 110 | TCP | POP3 | Réception d'emails (téléchargement et suppression du serveur) |
| 123 | UDP | NTP | Synchronisation d'horloge réseau |
| 137-139 | TCP/UDP | NetBIOS | Partage de fichiers Windows (ancien — remplacé par SMB/445) |
| 143 | TCP | IMAP | Réception d'emails avec synchronisation serveur |
| 161 | UDP | SNMP | Supervision et monitoring réseau (Zabbix, Nagios) |
| 389 | TCP | LDAP | Annuaire — Active Directory, OpenLDAP |
| 443 | TCP | HTTPS | Web chiffré (HTTP + TLS) |
| 445 | TCP | SMB | Partage de fichiers/imprimantes Windows (Samba) |
| 514 | UDP | Syslog | Journaux système centralisés |
| 587 | TCP | SMTP STARTTLS | Envoi d'emails avec chiffrement (moderne — préféré à 25) |
| 636 | TCP | LDAPS | LDAP chiffré (TLS) |
| 993 | TCP | IMAPS | IMAP chiffré |
| 995 | TCP | POP3S | POP3 chiffré |
| 1194 | UDP | OpenVPN | Tunnel VPN OpenVPN |
| 1433 | TCP | MSSQL | Microsoft SQL Server |
| 1812 | UDP | RADIUS auth | Authentification RADIUS (Wi-Fi WPA Enterprise, VPN) |
| 1813 | UDP | RADIUS acct | Comptabilité RADIUS |
| 3306 | TCP | MySQL/MariaDB | Base de données MySQL |
| 3389 | TCP | RDP | Bureau à distance Windows (Remote Desktop Protocol) |
| 5985 | TCP | WinRM HTTP | Administration distante Windows PowerShell Remoting |
| 5986 | TCP | WinRM HTTPS | WinRM chiffré |
| 8006 | TCP | Proxmox | Interface web Proxmox VE |
| 8080 | TCP | HTTP-alt | Proxy, reverse proxy, applications web alternatives |
| 51820 | UDP | WireGuard | Tunnel VPN WireGuard (aussi utilisé par Tailscale) |
TCP vs UDP — différences fondamentales
- Orienté connexion — établit un circuit avant d'envoyer
- Fiable — accusés de réception (ACK) pour chaque segment
- Contrôle de flux et de congestion
- Ordre garanti des paquets (numéros de séquence)
- Retransmission automatique si perte
- Plus lent mais sûr
- Usages : HTTP/S, SSH, FTP, SMTP, RDP, SQL
- Sans connexion — envoie directement (fire & forget)
- Pas de garantie de livraison
- Pas de contrôle d'ordre des paquets
- Pas de retransmission automatique
- Très rapide, faible latence
- L'application gère elle-même la fiabilité si besoin
- Usages : DNS, DHCP, NTP, VoIP, streaming, jeux
Le 3-way handshake TCP
Avant tout échange TCP, une connexion est établie en 3 étapes :
| Étape | Direction | Flag | Description |
|---|---|---|---|
| 1 — SYN | Client → Serveur | SYN | Le client envoie un numéro de séquence initial (ISN) et demande à ouvrir la connexion |
| 2 — SYN-ACK | Serveur → Client | SYN + ACK | Le serveur accepte, envoie son propre ISN et confirme l'ISN du client (ISN+1) |
| 3 — ACK | Client → Serveur | ACK | Le client confirme. La connexion est établie. Les données peuvent transiter. |
| Fermeture | L'un ou l'autre | FIN + ACK | Fermeture propre en 4 étapes (FIN, ACK, FIN, ACK) |
DNS & DHCP
Résolution de noms, attribution dynamique d'adresses
DNS — Domain Name System
Le DNS traduit un nom lisible (www.google.com) en adresse IP (142.250.x.x). C'est l'annuaire téléphonique d'Internet. Port 53 UDP (requêtes), 53 TCP (transferts de zone, réponses > 512 octets).
Fonctionnement d'une requête DNS
| Étape | Acteur | Action |
|---|---|---|
| 1 | Client (résolveur stub) | Vérifie le cache local (/etc/hosts, cache OS). Si présent → réponse immédiate. |
| 2 | Client → Résolveur récursif | Envoie la requête au serveur DNS configuré (FAI, 8.8.8.8, 1.1.1.1…) |
| 3 | Résolveur → Serveur racine | Interroge les 13 serveurs racine (.) pour obtenir les serveurs du TLD (.com) |
| 4 | Résolveur → Serveur TLD | Obtient les serveurs NS du domaine (google.com) |
| 5 | Résolveur → Serveur authoritative | Obtient l'enregistrement A final. Met en cache selon le TTL. |
| 6 | Résolveur → Client | Retourne l'IP. Le client peut se connecter. |
Types d'enregistrements DNS
| Type | Usage | Exemple |
|---|---|---|
| A | Nom → IPv4 | www.exemple.com → 93.184.216.34 |
| AAAA | Nom → IPv6 | www.exemple.com → 2606:2800::1 |
| CNAME | Alias vers un autre nom | mail.exemple.com → ghs.google.com |
| MX | Serveur de messagerie | exemple.com MX 10 mail.exemple.com |
| PTR | Reverse DNS (IP → nom) | 34.216.184.93.in-addr.arpa → www.exemple.com |
| NS | Serveurs de noms du domaine | exemple.com NS ns1.hebergeur.com |
| TXT | Données textuelles libres | SPF, DKIM, vérification domaine Google |
| SOA | Start of Authority | TTL, admin, serial de la zone DNS |
| SRV | Localise un service | _ldap._tcp.corp.local → DC:389 |
DHCP — Dynamic Host Configuration Protocol
Attribue automatiquement : adresse IP, masque, passerelle, DNS. Ports 67 UDP (serveur) / 68 UDP (client).
- D — DISCOVER : le client broadcast "Qui peut me donner une IP ?" (src 0.0.0.0 → dst 255.255.255.255)
- O — OFFER : le serveur répond "Je t'offre 192.168.1.50 pour 24h"
- R — REQUEST : le client broadcast "J'accepte cette offre" (informe les autres serveurs DHCP)
- A — ACKNOWLEDGE : le serveur confirme "L'IP est à toi jusqu'à expiration du bail"
| Option DHCP | Description | Exemple |
|---|---|---|
| Option 3 | Passerelle par défaut (gateway) | 192.168.1.1 |
| Option 6 | Serveur(s) DNS | 8.8.8.8, 8.8.4.4 |
| Option 15 | Nom de domaine | corp.local |
| Option 42 | Serveur NTP | 192.168.1.1 |
| Option 51 | Durée du bail (lease time) | 86400 secondes = 24h |
| Option 66/67 | Serveur TFTP + nom du fichier (PXE boot) | 192.168.1.10 / pxelinux.0 |
Réservation DHCP : association IP fixe ↔ adresse MAC. Le serveur attribue toujours la même IP à cette machine tout en gardant le mécanisme DHCP.
VLAN & Switching
Segmentation réseau, 802.1Q, STP, inter-VLAN routing
VLAN — Virtual Local Area Network
Segmentation logique d'un réseau physique. Des machines dans le même VLAN communiquent comme si elles étaient sur le même switch, même si elles sont physiquement sur des équipements différents. Les VLANs isolent le trafic de broadcast.
| Avantage | Explication |
|---|---|
| Sécurité | Isolation du trafic entre services (VLAN RH séparé du VLAN IT, VLAN invités isolé) |
| Performance | Réduit les domaines de broadcast → moins de trafic inutile sur chaque segment |
| Flexibilité | Regroupement logique indépendant de la localisation physique des équipements |
| Gestion | Facilite l'administration, le troubleshooting et la mise en quarantaine |
Types de ports sur un switch
| Type | Rôle | Tag VLAN | Usage |
|---|---|---|---|
| Access | Connecté à un terminal (PC, imprimante, téléphone IP) | Non taggé | Un seul VLAN. La machine ne voit pas le tag. |
| Trunk | Entre deux switches, ou switch ↔ routeur | Taggé 802.1Q | Transporte plusieurs VLANs simultanément |
| Hybride | Mix access + trunk | Partiel | Téléphonie IP (voix taggé, données non taggé) |
- Tag inséré dans l'en-tête Ethernet (entre MAC src et EtherType) : 4 octets.
- Contient : 3 bits PCP (priorité QoS), 1 bit DEI, 12 bits VLAN ID (0–4094).
- VLAN 1 = VLAN natif par défaut (non taggé sur trunk Cisco).
- VLAN 1002–1005 réservés Cisco. Plage normale : 1–1001. Étendue : 1006–4094.
- Inter-VLAN routing : les VLANs ne communiquent pas par défaut → besoin d'un routeur ou switch L3 (ou "router-on-a-stick" avec sous-interfaces).
STP — Spanning Tree Protocol (802.1D)
Évite les boucles dans un réseau commuté. Sans STP, une boucle de broadcast paralyserait le réseau (broadcast storm). STP désactive les liens redondants et les réactive si le lien principal tombe.
| État du port STP | Description | Durée |
|---|---|---|
| Blocking | Reçoit les BPDU, ne transmet pas de données. Évite les boucles. | — |
| Listening | Écoute les BPDU, détermine son rôle dans la topologie. | 15s |
| Learning | Apprend les adresses MAC, ne transmet pas encore. | 15s |
| Forwarding | Transmet les données normalement. État actif. | — |
| Disabled | Administrativement désactivé. | — |
RSTP (802.1w) = Rapid STP, convergence en < 1s au lieu de 30–50s. MSTP (802.1s) = Multiple STP, une instance par groupe de VLANs.
Routage
Statique, RIP, OSPF, BGP, tables de routage
Concept de routage
Le routage achemine un paquet IP d'un réseau source vers un réseau destination via un ou plusieurs routeurs. Chaque routeur consulte sa table de routage pour décider vers quelle interface envoyer le paquet. La règle de sélection : route la plus spécifique (masque le plus long).
Exemple de table de routage
| Destination | Masque | Passerelle | Interface | Métrique | Source |
|---|---|---|---|---|---|
| 0.0.0.0 | 0.0.0.0 | 192.168.1.1 | eth0 | 1 | Route par défaut |
| 192.168.1.0 | 255.255.255.0 | 0.0.0.0 | eth0 | 0 | Connecté directement |
| 10.0.0.0 | 255.255.255.0 | 192.168.1.254 | eth0 | 110 | OSPF |
| 172.16.0.0 | 255.255.0.0 | 192.168.1.253 | eth0 | 120 | RIP |
Statique vs Dynamique
- Configuré manuellement par l'admin
- Stable, prévisible, aucune surcharge protocolaire
- Ne s'adapte pas aux pannes automatiquement
- Adapté aux petits réseaux ou liens WAN point-à-point
- Commande Cisco :
ip route 10.0.0.0 255.255.255.0 192.168.1.1
- Routes apprises automatiquement via protocoles
- S'adapte aux changements de topologie
- Génère du trafic (hello, update, LSA…)
- Indispensable sur les grands réseaux
- Exemples : RIP, OSPF, EIGRP, BGP
RIP — Routing Information Protocol
- Type : Distance Vector (vecteur de distance)
- Métrique : nombre de sauts (hops) — max 15. Au-delà = réseau inaccessible (infini = 16).
- RIPv1 : classful, pas de VLSM, broadcast toutes les 30s.
- RIPv2 : classless, supporte VLSM/CIDR, multicast 224.0.0.9, authentification MD5.
- Convergence : lente (30s updates). Loop prevention : split horizon, poison reverse, hold-down timers.
- Administrative Distance : 120 (moins fiable qu'OSPF=110).
OSPF — Open Shortest Path First
Protocole à état de lien (Link State). Chaque routeur connaît la topologie complète et calcule les chemins optimaux avec l'algorithme de Dijkstra (SPF).
| Caractéristique | Détail |
|---|---|
| Type | Link State — chaque routeur envoie des LSA (Link State Advertisement) à tous |
| Algorithme | Dijkstra (SPF — Shortest Path First) |
| Métrique | Coût = 10⁸ / bande passante (en bps). Fibre (coût 1) > FastEth (10) > ADSL (plus) |
| Mise à jour | Déclenchée par événement (pas périodique) — convergence rapide |
| Multicast | 224.0.0.5 (tous routeurs OSPF) / 224.0.0.6 (DR/BDR seulement) |
| AD | 110 — plus fiable que RIP (120) |
| Areas | Area 0 = backbone obligatoire. Multi-area pour scalabilité. Area 0 relie toutes les autres. |
| DR/BDR | Designated Router / Backup DR — élu sur réseaux multi-accès pour réduire les LSA |
| Authentification | Supporte MD5 et SHA — sécurise l'échange de LSA |
| OSPFv3 | Version pour IPv6 |
Protocole de routage inter-AS (entre opérateurs). Utilisé sur Internet. Path Vector. Administrative Distance = 20 (externe) / 200 (interne iBGP). Très complexe — pas au programme BUT mais bon à connaître.
VPN & Sécurité réseau
Tunnels chiffrés, pare-feu, NAT, RADIUS
VPN — Virtual Private Network
Crée un tunnel chiffré entre deux points sur un réseau non sécurisé (Internet). Garantit confidentialité, intégrité et authenticité. Deux usages : site-to-site (relier deux sites) et remote access (accès distant sécurisé).
| Protocole | Port | Chiffrement | Avantages | Inconvénients |
|---|---|---|---|---|
| OpenVPN | 1194 UDP / 443 TCP | TLS/SSL (AES-256) | Open source, très sûr, bypass firewall via 443 | Config complexe, moins rapide que WireGuard |
| WireGuard | 51820 UDP | ChaCha20-Poly1305 | Ultra rapide, code minimal (4000 lignes), moderne | Plus récent, moins d'outils de gestion |
| IPSec/IKEv2 | 500 / 4500 UDP | AES, 3DES | Natif Windows/iOS, rapide, standard entreprise | Peut être bloqué par NAT strict |
| L2TP/IPSec | 1701 UDP | AES via IPSec | Natif sur tous les OS | Double encapsulation, lent |
| PPTP | 1723 TCP | MPPE 128-bit | Simple à configurer | Cassé cryptographiquement — NE PAS UTILISER |
- Réseau mesh peer-to-peer : chaque nœud se connecte directement aux autres (pas de serveur central).
- Authentification via SSO (Google, GitHub, Microsoft…). Très simple à déployer.
- Exit node : un nœud qui route tout le trafic Internet — utile pour contourner des restrictions.
- Subnet router : expose un réseau local entier (192.168.1.0/24) aux autres nœuds Tailscale.
- Utilisé dans ton projet personnel Pi-hole + Tailscale pour le filtrage DNS à distance.
Pare-feu (Firewall)
| Type | Description | Exemple |
|---|---|---|
| Stateless / Packet filter | Filtre paquet par paquet selon IP/port/protocole. Rapide mais limité — ne voit pas l'état des connexions. | iptables -A INPUT -p tcp --dport 80 -j ACCEPT |
| Stateful | Suit l'état des connexions TCP (SYN_SENT, ESTABLISHED…). Plus intelligent : bloque les réponses non sollicitées. | nftables, Windows Firewall, pfSense |
| WAF (Web App Firewall) | Couche 7 — inspecte le contenu HTTP. Bloque injections SQL, XSS, CSRF. | ModSecurity, AWS WAF |
| NGFW | Next-Gen : DPI (Deep Packet Inspection), IPS/IDS, authentification utilisateur, SSL inspection. | Palo Alto, Fortinet, pfSense+Snort |
NAT — Network Address Translation
| Type | Description | Usage |
|---|---|---|
| SNAT / Masquerade | Source NAT : traduit l'IP privée en IP publique à la sortie vers Internet | Accès Internet depuis un réseau privé |
| DNAT / Port Forward | Destination NAT : redirige un port public vers une machine interne | Exposer un serveur web interne (80 → 192.168.1.10:80) |
| PAT / NAPT | Port Address Translation : plusieurs IP privées partagent une IP publique via des ports distincts | Box FAI — toute la maison partage une IP publique |
Active Directory
Structure, objets, GPO, Kerberos, LDAP, commandes PowerShell
Vue d'ensemble
Active Directory (AD DS) est le service d'annuaire Microsoft. Il centralise l'authentification et l'autorisation dans un domaine Windows. Tout passe par le Domain Controller (DC) qui héberge la base NTDS.DIT.
Structure logique de l'AD
| Objet | Description | Exemples |
|---|---|---|
| Forest (Forêt) | Plus haute unité d'administration. Contient un ou plusieurs domaines. Partage le schéma AD. | corp.local |
| Domain (Domaine) | Unité principale. Partage une politique de sécurité commune. A son propre DC. | rh.corp.local, it.corp.local |
| OU (Org. Unit) | Conteneur logique pour organiser objets. Les GPO s'appliquent aux OUs. | OU=IT,DC=corp,DC=local |
| User | Compte utilisateur. Authentifié via Kerberos (port 88). | jdupont@corp.local (UPN) |
| Group | Regroupement pour simplifier l'attribution de droits. Types : Security / Distribution. | GRP_Admins, GRP_RH |
| Computer | Objet machine jointe au domaine. S'authentifie aussi avec Kerberos. | PC-IMABITH$ |
| GPO | Group Policy Object — stratégies appliquées aux OUs (sécurité, logiciels, bureau…) | GPO_Firewall, GPO_MotDePasse |
GPO — Group Policy Objects
- GPMC : console de gestion (gpmc.msc). Lier, éditer, simuler les GPO.
- Paramètres Computer : s'appliquent au démarrage de la machine (indépendamment de l'utilisateur).
- Paramètres User : s'appliquent à l'ouverture de session de l'utilisateur.
- Héritage : Site → Domaine → OU (du parent vers l'enfant). Possible de bloquer l'héritage.
- Ordre d'application (LSDOU) : Local → Site → Domain → OU. La dernière appliquée gagne (sauf "Enforced").
- Filtrage WMI : applique une GPO uniquement si une condition WMI est vraie (ex : Windows 11 uniquement).
- gpupdate /force : force l'application immédiate.
- gpresult /r : voir les GPO appliquées à l'utilisateur/machine courant.
- Résultats de stratégie : RSOP.msc ou gpresult /H rapport.html pour auditer.
Kerberos — protocole d'authentification AD
| Étape | Description |
|---|---|
| 1 — AS-REQ | Client → KDC : demande un TGT (Ticket Granting Ticket) en s'authentifiant avec hash du mot de passe |
| 2 — AS-REP | KDC → Client : répond avec le TGT chiffré (valide 10h par défaut) |
| 3 — TGS-REQ | Client → KDC : présente le TGT et demande un ticket de service (TGS) pour une ressource |
| 4 — TGS-REP | KDC → Client : délivre le ticket de service chiffré avec la clé du service cible |
| 5 — AP-REQ | Client → Service : présente le ticket au serveur cible (partage, SQL, Exchange…) |
| 6 — Accès accordé | Le service valide le ticket via sa propre clé et autorise l'accès |
Ports Kerberos : 88 TCP/UDP. KDC = Key Distribution Center (rôle sur le DC). Attaques : Pass-the-Ticket, Kerberoasting, Golden Ticket (KRBTGT compromis).
Commandes PowerShell AD essentielles
| Commande | Description |
|---|---|
| Get-ADUser -Filter * | Liste tous les utilisateurs du domaine |
| Get-ADUser -Identity jdupont -Properties * | Détails complets d'un utilisateur spécifique |
| New-ADUser -Name 'Jean Dupont' -SamAccountName jdupont -Enabled $true | Créer un utilisateur |
| Set-ADAccountPassword -Identity jdupont | Changer le mot de passe d'un compte |
| Enable-ADAccount / Disable-ADAccount -Identity jdupont | Activer / désactiver un compte |
| Add-ADGroupMember -Identity GRP_IT -Members jdupont | Ajouter un utilisateur à un groupe |
| Get-ADComputer -Filter * | Select Name,OperatingSystem | Lister les machines et leur OS |
| Get-GPO -All | Lister toutes les GPO du domaine |
| Invoke-GPUpdate -Computer PC01 -Force | Forcer gpupdate sur une machine distante |
| Move-ADObject -Identity DN -TargetPath 'OU=IT,DC=corp,DC=local' | Déplacer un objet dans une autre OU |
Linux
Commandes essentielles, droits, services, réseau, scripting
Commandes essentielles
| Catégorie | Commande | Description |
|---|---|---|
| Navigation | ls -la | Liste détaillée avec fichiers cachés et permissions |
| cd /chemin | Changer de répertoire | |
| pwd | Afficher le répertoire courant | |
| find / -name "*.conf" 2>/dev/null | Rechercher des fichiers (supprime erreurs) | |
| tree -L 2 | Afficher arborescence sur 2 niveaux | |
| Fichiers | cp -r src/ dst/ | Copier récursivement |
| mv src dst | Déplacer ou renommer | |
| rm -rf dossier/ | Supprimer récursivement (⚠️ irréversible) | |
| cat / less / tail -f | Afficher / paginer / suivre en temps réel | |
| grep -rn "motif" /chemin | Rechercher avec numéro de ligne | |
| sed -i 's/ancien/nouveau/g' fichier | Remplacer dans un fichier (in-place) | |
| awk '{print $1,$3}' fichier | Extraire des colonnes | |
| Droits | chmod 755 script.sh | Changer les permissions (notation octale) |
| chown user:group fichier | Changer propriétaire et groupe | |
| ls -l | Voir les permissions de tous les fichiers | |
| sudo commande | Exécuter en tant que root | |
| visudo | Éditer le fichier sudoers de façon sécurisée | |
| Réseau | ip a | Voir les interfaces et leurs adresses IP |
| ip r | Afficher la table de routage | |
| ss -tuln | Voir les ports en écoute (remplace netstat) | |
| ping -c 4 8.8.8.8 | Tester la connectivité (4 paquets) | |
| traceroute / tracepath | Tracer le chemin vers une destination | |
| nmap -sV -p- IP | Scanner tous les ports et versions des services | |
| curl -I https://exemple.com | Voir les headers HTTP d'un serveur | |
| dig exemple.com A | Requête DNS (enregistrement A) | |
| Processus | ps aux | Lister tous les processus avec détails |
| kill -9 PID | Tuer un processus (force) | |
| htop | Moniteur interactif (CPU, RAM, processus) | |
| Services | systemctl start/stop/restart nom | Gérer un service systemd |
| systemctl enable/disable nom | Activer/désactiver au démarrage | |
| systemctl status nom | Voir l'état détaillé d'un service | |
| journalctl -u nom -f --since "1h ago" | Logs d'un service en temps réel | |
| Packages (Debian) | apt update && apt upgrade -y | Mettre à jour la liste et les paquets |
| apt install paquet | Installer un paquet | |
| dpkg -l | grep paquet | Vérifier si un paquet est installé |
Permissions Linux — notation octale
Chaque fichier a 3 niveaux : propriétaire (u), groupe (g), autres (o). Chaque niveau : r=4, w=2, x=1.
| Valeur | Binaire | Droits | Signification |
|---|---|---|---|
| 0 | 000 | --- | Aucun droit |
| 4 | 100 | r-- | Lecture seulement |
| 5 | 101 | r-x | Lecture + exécution |
| 6 | 110 | rw- | Lecture + écriture |
| 7 | 111 | rwx | Tous les droits |
chmod 755 script.sh→ rwxr-xr-x (propriétaire tout, groupe+autres r+x)chmod 644 fichier.txt→ rw-r--r-- (propriétaire rw, autres lecture)chmod 600 cle.pem→ rw------- (clé privée SSH : propriétaire seulement)chmod +x script.sh→ ajoute le droit d'exécution sans changer le restechmod -R 755 dossier/→ applique récursivement
Virtualisation & Docker
VMs, LXC, conteneurs, Proxmox VE, Docker Compose
Types d'hyperviseurs
| Type | Description | Exemples |
|---|---|---|
| Type 1 (bare-metal) | S'installe directement sur le matériel. Performances optimales. Usage professionnel/production. | Proxmox VE, VMware ESXi, Microsoft Hyper-V, Xen |
| Type 2 (hosted) | S'installe sur un OS hôte existant. Moins performant. Usage desktop/test. | VirtualBox, VMware Workstation, QEMU (en mode hosted) |
VM vs Conteneur
- OS complet dédié à chaque VM
- Isolation forte — kernel séparé
- Plus lourd en ressources (RAM, CPU, disque)
- Démarrage en 1–5 minutes
- Idéal pour Windows ou OS différents de l'hôte
- Snapshot, live migration, clonage
- Partage le kernel de l'hôte Linux
- Isolation plus légère (namespaces, cgroups)
- Très léger — quelques MB de RAM
- Démarrage en quelques secondes
- Idéal pour services Linux, microservices
- Portable — même comportement partout
Proxmox VE — éléments clés
| Élément | Description |
|---|---|
| Interface web | https://IP:8006 — gestion complète via navigateur (VMs, LXC, stockage, réseau) |
| KVM | Virtualisation complète via QEMU/KVM. VMs avec OS complet (Windows, Linux). |
| LXC | Conteneurs Linux légers partageant le kernel Proxmox. Plus léger qu'une VM complète. |
| Storage | Local (LVM, ZFS), NFS, Ceph. Images QCOW2 (VMs), subvolumes/raw (LXC). |
| Réseau | Bridges Linux (vmbr0, vmbr1…). vmbr0 = bridge par défaut vers interface physique. Support VLANs. |
| Snapshot | Sauvegarde instantanée de l'état. Réversible (utile avant mises à jour risquées). |
| Backup | vzdump — sauvegarde vers stockage local ou NFS. Planifiable via l'interface. |
| HA | High Availability — migration automatique si un nœud tombe (cluster Proxmox, Corosync). |
| CLI utiles | qm start/stop/status 100 (VMs) · pct start/stop/enter 101 (conteneurs) · pvesm status (stockage) |
Docker — commandes essentielles
| Commande | Description |
|---|---|
| docker pull nginx:alpine | Télécharger une image depuis Docker Hub |
| docker run -d -p 80:80 --name web nginx | Lancer en arrière-plan, port mappé hôte:conteneur |
| docker ps / docker ps -a | Conteneurs actifs / tous (incluant stoppés) |
| docker stop / start / restart nom | Gérer le cycle de vie d'un conteneur |
| docker exec -it nom bash | Ouvrir un shell interactif dans le conteneur |
| docker logs -f --tail 50 nom | Suivre les 50 dernières lignes de logs |
| docker inspect nom | Détails JSON complets (réseau, volumes, config) |
| docker rm nom / docker rmi image | Supprimer conteneur / image |
| docker volume ls / create / rm | Gérer les volumes (persistance des données) |
| docker network ls / create / inspect | Gérer les réseaux Docker (bridge, host, overlay) |
| docker build -t monapp:1.0 . | Construire une image depuis un Dockerfile |
| docker compose up -d | Lancer tous les services du compose.yml en arrière-plan |
| docker compose down | Arrêter et supprimer conteneurs + réseaux compose |
| docker compose logs -f | Voir les logs de tous les services compose |
| docker stats | Utilisation CPU/RAM de tous les conteneurs en temps réel |
| docker system prune -a | Nettoyer images, conteneurs et volumes inutilisés |
Exemple docker-compose.yml
# Stack web + base de données
services:
web:
image: nginx:alpine
ports:
- "80:80"
volumes:
- ./html:/usr/share/nginx/html:ro
depends_on: [db]
restart: unless-stopped
db:
image: mariadb:10
environment:
MYSQL_ROOT_PASSWORD: secret
MYSQL_DATABASE: appdb
volumes:
- db_data:/var/lib/mysql
restart: unless-stopped
volumes:
db_data:
Cybersécurité
Modèle CIA, hardening, attaques courantes, RADIUS
Le modèle CIA — piliers de la sécurité
| Pilier | Description | Menaces associées | Contre-mesures |
|---|---|---|---|
| Confidentialité | Seuls les autorisés accèdent aux données | Écoute réseau, vol de données, accès non autorisé, fuites | Chiffrement (TLS, AES), contrôle d'accès, VPN, classification des données |
| Intégrité | Les données ne sont pas altérées sans autorisation | Man-in-the-Middle, injection SQL, ransomware, corruption | Hash (SHA-256, MD5), signatures numériques, sauvegardes vérifiées |
| Availabilité | Le service est accessible quand nécessaire | DDoS, pannes matérielles, ransomware, erreurs humaines | Redondance, HA, sauvegardes, anti-DDoS, PRA/PCA |
Hardening système — checklist complète
| Action | Détail | Outil / Commande |
|---|---|---|
| Désactiver services inutiles | Chaque service = surface d'attaque potentielle | systemctl disable nom / GPO |
| Politique de mots de passe forts | Min 12 caractères, complexité, expiration 90j, historique | GPO > Password Policy / PAM (Linux) |
| MFA (Multi-Factor Auth) | 2ème facteur : OTP TOTP, clé physique (YubiKey), push | Microsoft Authenticator, Duo, RADIUS |
| Mises à jour régulières | Corriger les CVE (vulnérabilités connues) rapidement | apt upgrade / WSUS / Windows Update |
| Pare-feu activé | Bloquer tous les ports non nécessaires par défaut | iptables, nftables, Windows Firewall, GPO |
| Désactiver Telnet / FTP | Remplacer par SSH / SFTP (chiffrés) | systemctl disable telnet / vsftpd |
| Renommer le compte admin | Éviter les attaques sur le compte par défaut connu | GPO > Security Options > Rename admin |
| Principe du moindre privilège | Droits minimaux nécessaires à chaque rôle | RBAC, groupes AD granulaires, sudo limité |
| Chiffrement des disques | Protéger les données au repos (vol physique) | BitLocker (Windows) / LUKS (Linux) |
| Audit et journalisation | Détecter intrusions et anomalies via logs centralisés | Syslog / Zabbix / Windows Event Log / SIEM |
| O&O ShutUp11 | Désactiver la télémétrie Windows (envoi données Microsoft) | ooShutUp11.exe (mode recommandé) |
| Désactiver USB si inutile | Éviter vol de données par support amovible | GPO > Device Installation Restrictions |
| Verrouillage de session | Déconnexion automatique après inactivité | GPO > Screen saver timeout |
| Séparation des privilèges | Compte admin ≠ compte utilisateur courant | Deux comptes distincts par admin |
Attaques courantes à connaître
| Attaque | Type | Description | Contre-mesure |
|---|---|---|---|
| Phishing | Social engineering | Email frauduleux imitant une entité de confiance pour voler des identifiants ou installer un malware | Sensibilisation utilisateurs, filtres email (SPF/DKIM), MFA |
| Brute force | Credential | Tester toutes les combinaisons de mots de passe automatiquement | Lockout (5 tentatives), MFA, fail2ban, CAPTCHAs |
| Dictionary attack | Credential | Tester une liste de mots de passe courants (dictionnaire) | Mots de passe complexes et longs, MFA |
| Man-in-the-Middle | Network | Intercepter et potentiellement modifier les communications entre deux hôtes | TLS/HTTPS, VPN, HSTS, certificats valides |
| ARP Spoofing | Network | Empoisonner le cache ARP des machines pour se placer entre elles (MITM LAN) | DAI (Dynamic ARP Inspection), port security |
| SQL Injection | Application | Injecter du SQL dans un formulaire web pour accéder/modifier la base de données | Requêtes préparées (prepared statements), WAF, validation des entrées |
| XSS | Application | Injecter du JavaScript malveillant dans une page web pour voler des cookies ou rediriger | Sanitisation des entrées, Content Security Policy (CSP), HttpOnly cookies |
| Ransomware | Malware | Chiffrer tous les fichiers accessibles et demander une rançon en crypto | Sauvegardes hors ligne (3-2-1), EDR, droits minimaux, snapshots |
| DDoS | Availability | Saturer un service avec des milliers/millions de requêtes simultanées | Anti-DDoS (Cloudflare), rate limiting, scrubbing center, anycast |
| Pass-the-Hash | AD / Kerberos | Réutiliser un hash NTLM volé pour s'authentifier sans connaître le mot de passe | Protected Users group, Credential Guard, LAPS |
| Pass-the-Ticket | AD / Kerberos | Réutiliser un ticket Kerberos TGT/TGS volé pour accéder à des ressources | Durée de vie courte des tickets, détection SIEM |
| Kerberoasting | AD / Kerberos | Demander des TGS pour des comptes de service et craquer le hash hors ligne | Mots de passe longs pour les comptes de service, Managed Service Accounts |
RADIUS — Remote Authentication Dial-In User Service
Centralise l'authentification pour les accès réseau : Wi-Fi WPA Enterprise, VPN, connexions PPP. Sépare authentification (qui ?), autorisation (droits ?) et comptabilité (traçabilité).
- 1. Client (NAS — Network Access Server) → Serveur RADIUS : Access-Request (identifiants chiffrés avec secret partagé)
- 2. Serveur RADIUS → AD/LDAP : vérification des credentials
- 3. Serveur RADIUS → NAS : Access-Accept (avec attributs RADIUS : VLAN, droits, timeout…) ou Access-Reject
- Ports : 1812 UDP (authentification), 1813 UDP (accounting)
- Protocoles d'auth : PAP (non chiffré), CHAP (challenge), EAP (extensible) — EAP-TLS = le plus sécurisé (certificats mutuels)
Automatisation
PowerShell, Bash, Python — exemples concrets R&T
PowerShell — fondamentaux
Shell et langage de script Microsoft basé sur .NET. Manipule des objets (pas du texte brut). Indispensable pour administrer Windows Server et Active Directory.
# Variables
$nom = 'Imabith'
$liste = @('item1', 'item2', 'item3')
$hash = @{Nom='Imabith'; Age=23}
# Condition
if ($x -eq 'valeur') { ... }
elseif ($x -gt 5) { ... }
else { ... }
# Opérateurs de comparaison : -eq -ne -lt -gt -le -ge -like -match -contains
# Boucles
foreach ($item in $liste) { Write-Host $item }
for ($i=0; $i -lt 10; $i++) { Write-Host $i }
1..10 | ForEach-Object { Write-Host $_ }
# Pipeline (la force de PowerShell)
Get-Process | Where-Object {$_.CPU -gt 10} | Sort-Object CPU -Descending | Select-Object -First 5
# Fonctions
function Get-Bonjour {
param([string]$Nom)
return "Bonjour $Nom"
}
# Gestion des erreurs
try {
Get-ADUser -Identity "inexistant"
} catch {
Write-Warning "Erreur : $_"
}
Script pratique — création en masse d'utilisateurs AD depuis CSV
# fichier CSV : Prenom,Nom,Service
Import-Csv 'utilisateurs.csv' | ForEach-Object {
$sam = ($_.Prenom[0] + $_.Nom).ToLower()
$upn = "$sam@corp.local"
$ou = "OU=$($_.Service),DC=corp,DC=local"
$pwd = ConvertTo-SecureString 'P@ssw0rd!' -AsPlainText -Force
New-ADUser -Name "$($_.Prenom) $($_.Nom)" `
-SamAccountName $sam `
-UserPrincipalName $upn `
-Path $ou `
-AccountPassword $pwd `
-Enabled $true
Write-Host "[OK] Créé : $sam dans $ou" -ForegroundColor Green
}
Bash — fondamentaux
Shell standard Linux. Indispensable pour l'automatisation d'administration système, déploiement, cron jobs.
#!/bin/bash
# Shebang obligatoire en première ligne
# Variables (pas d'espaces autour de =)
NOM='Imabith'
DATE=$(date +%Y-%m-%d) # Capture sortie d'une commande
IP_SERV='192.168.1.50'
# Tests de condition : -f fichier, -d dossier, -z chaîne vide, -n chaîne non-vide
if [ -f "/etc/hosts" ]; then
echo "Fichier trouvé"
elif [ "$NOM" = 'Imabith' ]; then
echo "Bonjour Imabith"
fi
# Boucle for — ping scan rapide
for ip in 192.168.1.{1..20}; do
ping -c1 -W1 $ip &>/dev/null && echo "$ip : UP" || echo "$ip : DOWN"
done
# Boucle while — lire un fichier ligne par ligne
while read -r ligne; do
echo "Traitement : $ligne"
done < fichier.txt
# Fonctions avec journalisation
log() { echo "[$(date +%H:%M:%S)] $1" | tee -a /var/log/monscript.log; }
log "Script démarré par $USER"
Script pratique — déploiement agent Zabbix (comme en stage VNB-IT)
#!/bin/bash
ZABBIX_SERVER='192.168.1.50'
HOSTNAME=$(hostname)
log() { echo "[$(date)] $1"; }
log "Déploiement Zabbix Agent sur $HOSTNAME"
# Ajouter dépôt Zabbix
wget -qO /tmp/zabbix.deb \
https://repo.zabbix.com/zabbix/6.4/debian/pool/main/.../zabbix-release_6.4.deb
dpkg -i /tmp/zabbix.deb && apt-get update -q
# Installer
apt-get install -y zabbix-agent2 || { log "ERREUR installation"; exit 1; }
# Configurer
sed -i "s/^Server=.*/Server=$ZABBIX_SERVER/" /etc/zabbix/zabbix_agent2.conf
sed -i "s/^Hostname=.*/Hostname=$HOSTNAME/" /etc/zabbix/zabbix_agent2.conf
# Activer et démarrer
systemctl enable --now zabbix-agent2
log "Agent déployé : $HOSTNAME → $ZABBIX_SERVER"
Python — scripting réseau & système
import subprocess, socket, os, json
from datetime import datetime
# ─── Ping scanner réseau ───────────────────────────
def ping_scan(reseau, debut=1, fin=254):
actifs = []
for i in range(debut, fin+1):
ip = f'{reseau}.{i}'
res = subprocess.run(['ping','-c','1','-W','1',ip],
capture_output=True)
if res.returncode == 0:
actifs.append(ip)
print(f'[UP] {ip}')
else:
print(f'[DOWN] {ip}')
return actifs
# ─── Vérification de port ─────────────────────────
def check_port(ip, port, timeout=1):
with socket.socket() as s:
s.settimeout(timeout)
try:
s.connect((ip, port))
return True
except:
return False
# ─── Exemple combiné ──────────────────────────────
machines = ping_scan('192.168.1', 1, 20)
for m in machines:
services = []
for port, nom in [(22,'SSH'),(80,'HTTP'),(443,'HTTPS'),(3389,'RDP')]:
if check_port(m, port):
services.append(nom)
print(f'{m} : {", ".join(services) or "aucun"}')
Bibliothèques Python utiles en R&T
| Bibliothèque | Usage | Installation |
|---|---|---|
| paramiko | SSH depuis Python — connexion, exécution commandes, transfert fichiers | pip install paramiko |
| netmiko | SSH multi-constructeurs (Cisco, Juniper, Huawei, Arista…) | pip install netmiko |
| requests | Requêtes HTTP/REST API — interagir avec les APIs de vos équipements | pip install requests |
| python-nmap | Wrapper Python autour de Nmap pour scanner des réseaux | pip install python-nmap |
| scapy | Manipulation de paquets réseau — forger, capturer, analyser | pip install scapy |
| pysnmp | Monitoring SNMP — récupérer métriques d'équipements réseau | pip install pysnmp |
| ldap3 | Interaction LDAP / Active Directory — requêtes, modification objets AD | pip install ldap3 |
| fabric | Déploiement SSH automatisé — exécuter des tâches sur plusieurs serveurs | pip install fabric |
| ansible (CLI) | Orchestration — automatiser config de centaines de machines via playbooks YAML | pip install ansible |
Récapitulatif — les incontournables
Ce qu'un technicien R&T doit maîtriser pour son alternance BUT3
| Domaine | Notions absolument indispensables |
|---|---|
| Réseaux OSI/TCP | 7 couches OSI + rôle, encapsulation, modèle TCP/IP 4 couches |
| Adressage IP | Subnetting CIDR, calcul 2^n−2, adresses privées RFC1918, loopback |
| Ports | Par cœur : 22, 53, 67/68, 80, 88, 389, 443, 445, 1812, 3389 et leurs services |
| TCP/UDP | Différences fondamentales + 3-way handshake TCP (SYN/SYN-ACK/ACK) |
| DNS | Types A/AAAA/CNAME/MX/PTR/NS, résolution récursive/itérative, TTL |
| DHCP | Séquence DORA, options 3/6/51, réservation par MAC |
| VLAN | Access vs trunk, 802.1Q, inter-VLAN routing, STP états des ports |
| Routage | Table de routage, route par défaut, OSPF (Dijkstra, coût, areas), RIP (hops max 15) |
| VPN | OpenVPN vs WireGuard vs IPSec, Tailscale mesh exit node, RADIUS EAP-TLS |
| Active Directory | DC, OU, GPO (LSDOU), Kerberos TGT/TGS, LDAP 389, gpupdate /force, Get-ADUser |
| Linux | chmod octale (755/644/600), systemctl, journalctl, ss -tuln, ip a, find, grep, pipes |
| Docker | docker run/ps/exec/logs, compose up/down, volumes, réseaux bridge |
| Cybersécurité | CIA, principe moindre privilège, hardening checklist, attaques MITM/phishing/PtH |
| PowerShell | foreach, if (-eq/-gt), fonctions, pipeline |, Get/New/Set-ADUser |
| Bash | #!/bin/bash, variables, boucles for/while, conditions [ ], pipes, chmod +x, sed |
- Pratique sur GNS3 / Packet Tracer : configure un réseau multi-sites avec VLANs + OSPF + inter-VLAN routing.
- Monte un homelab Proxmox : VM Windows Server + AD + clients Linux + Zabbix pour la supervision.
- Déploie Pi-hole + Tailscale en Docker pour filtrage DNS et accès distant sécurisé (ton projet perso !).
- Écris des scripts PowerShell pour automatiser la gestion AD : création, désactivation, rapports.
- Documente tout : les recruteurs valorisent la rigueur documentaire. Procédures, schémas réseau, scripts commentés.
- Certifications à envisager : CompTIA Network+, CompTIA Security+, Cisco CCNA — valorisent le CV.