🔗 Ressources

Documentation officielle, labs, outils, cheatsheets et raccourcis clavier pour préparer le TSSR.

📄

Documentation officielle

8 ressources
🧪

Labs & Entraînement pratique

6 ressources
🛠️

Outils & Utilitaires

6 ressources

Commandes à connaître — Cheatsheets

Cisco IOS — Navigation & Configuration de base
# Modes IOS
Router>                   # User EXEC (lecture seule)
Router> enable             # → Privileged EXEC
Router# configure terminal  # → Global Config
Router(config)# interface GigabitEthernet0/0  # → Interface Config
Router(config-if)# end   # → retour Privileged EXEC

# Configuration de base
Router(config)# hostname R1
Router(config)# enable secret MonMotDePasse!
Router(config)# service password-encryption
Router(config)# banner motd # Acces autorise uniquement #

# SSH v2
R1(config)# ip domain-name lab.local
R1(config)# crypto key generate rsa modulus 2048
R1(config)# ip ssh version 2
R1(config)# line vty 0 4
R1(config-line)# transport input ssh
R1(config-line)# login local

# Sauvegarde
R1# copy running-config startup-config
R1# write memory   # alias
Cisco IOS — VLAN, Trunk & Routing
# VLANs sur switch
SW(config)# vlan 10
SW(config-vlan)# name COMPTA
SW(config)# interface Fa0/1
SW(config-if)# switchport mode access
SW(config-if)# switchport access vlan 10

# Port trunk
SW(config-if)# switchport mode trunk
SW(config-if)# switchport trunk allowed vlan 10,20,30

# Route statique & défaut
R1(config)# ip route 192.168.2.0 255.255.255.0 10.0.0.2
R1(config)# ip route 0.0.0.0 0.0.0.0 203.0.113.1

# OSPF
R1(config)# router ospf 1
R1(config-router)# network 10.0.0.0 0.255.255.255 area 0
R1(config-router)# passive-interface GigabitEthernet0/1

# ACL étendue nommée
R1(config)# ip access-list extended BLOC_TELNET
R1(config-ext-nacl)# deny tcp any any eq 23
R1(config-ext-nacl)# permit ip any any
R1(config-if)# ip access-group BLOC_TELNET in

# NAT/PAT
R1(config-if)# ip nat inside          # sur interface LAN
R1(config-if)# ip nat outside         # sur interface WAN
R1(config)# ip nat inside source list 1 interface Gi0/0 overload

# Vérifications
R1# show ip route
R1# show ip interface brief
R1# show ip ospf neighbor
R1# show vlan brief
R1# show spanning-tree
Linux — Fichiers, Permissions & Utilisateurs
# Navigation
ls -lah              # liste détaillée avec tailles lisibles
find /etc -name "*.conf" -type f
find / -perm -4000 2>/dev/null  # fichiers SUID

# Permissions (chmod)
chmod 755 script.sh      # rwxr-xr-x
chmod u+x,g-w fichier    # notation symbolique
chown user:groupe fichier
chown -R www-data /var/www/html

# Utilisateurs & groupes
useradd -m -s /bin/bash -G sudo alice
passwd alice
usermod -aG docker alice    # ajoute alice au groupe docker
userdel -r alice            # supprime user + home
id alice                    # affiche UID, GID, groupes
getent passwd alice         # infos depuis /etc/passwd

# Recherche de contenu
grep -rn "mot" /etc/         # récursif + numéro de ligne
grep -E "^(root|www)" /etc/passwd
tail -f /var/log/syslog      # logs en temps réel
journalctl -u ssh -n 50      # 50 dernières lignes service SSH
Linux — Réseau, Services & systemd
# Réseau
ip addr show
ip route show
ip addr add 192.168.1.10/24 dev eth0
ip route add default via 192.168.1.1
ss -tulnp               # ports en écoute avec PID
ping -c 4 8.8.8.8
traceroute 8.8.8.8
dig @8.8.8.8 google.com A  # requête DNS

# Pare-feu UFW
ufw enable
ufw allow 22/tcp
ufw deny 23/tcp
ufw status verbose

# iptables (Debian/Ubuntu)
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -j DROP
iptables -L -n -v --line-numbers

# systemd
systemctl start nginx
systemctl stop nginx
systemctl enable --now nginx      # active + démarre
systemctl status nginx
systemctl list-units --type=service --state=running
journalctl -u nginx --since "1 hour ago" -f

# Paquets
apt update && apt upgrade -y
apt install vim curl net-tools -y
dpkg -l | grep nginx
apt remove --purge nginx
Linux — Script Bash — Template de référence
#!/bin/bash
# Description : script de sauvegarde
set -euo pipefail
IFS=$'\n\t'

# Variables
SOURCE_DIR="/var/www/html"
BACKUP_DIR="/backups"
DATE=$(date +%Y%m%d_%H%M%S)
LOG_FILE="/var/log/backup.log"

# Fonctions
log() { echo "[$(date '+%F %T')] $*" | tee -a "$LOG_FILE"; }
die() { log "ERREUR : $*"; exit 1; }

# Vérifications
[[ -d "$SOURCE_DIR" ]] || die "Répertoire source introuvable : $SOURCE_DIR"
[[ $(id -u) -eq 0 ]]   || die "Ce script doit être exécuté en root"

# Traitement
log "Début de la sauvegarde..."
tar -czf "${BACKUP_DIR}/backup_${DATE}.tar.gz" "$SOURCE_DIR" \
  && log "Sauvegarde réussie : backup_${DATE}.tar.gz" \
  || die "Échec de la compression"

# Nettoyage : conserver seulement les 7 dernières sauvegardes
find "$BACKUP_DIR" -name "backup_*.tar.gz" -mtime +7 -delete

log "Terminé."
PowerShell — Cmdlets essentiels & Pipeline
# Découverte
Get-Command *Service*              # cherche les cmdlets
Get-Help Get-Process -Examples     # exemples d'utilisation
Get-Member -InputObject (Get-Date) # propriétés d'un objet

# Pipeline (Where-Object, Sort, Select)
Get-Process | Where-Object { $_.CPU -gt 10 } | Sort-Object CPU -Desc | Select-Object -First 5
Get-Service | Where-Object Status -eq 'Stopped' | Select-Object Name, DisplayName

# Réseau
Get-NetIPAddress -AddressFamily IPv4
New-NetIPAddress -IPAddress 192.168.1.10 -PrefixLength 24 -InterfaceAlias "Ethernet" -DefaultGateway 192.168.1.1
Set-DnsClientServerAddress -InterfaceAlias "Ethernet" -ServerAddresses 8.8.8.8, 8.8.4.4
Test-NetConnection -ComputerName google.com -Port 443

# Services
Get-Service -Name "W32Time"
Start-Service -Name "W32Time"
Stop-Service  -Name "W32Time"
Set-Service   -Name "W32Time" -StartupType Automatic

# Fichiers
Get-ChildItem -Path C:\Windows -Filter *.log -Recurse
New-Item -ItemType Directory -Path C:\MonDossier
Copy-Item -Path C:\src\* -Destination C:\dst\ -Recurse
Remove-Item -Path C:\tmp\* -Recurse -Force
PowerShell — Active Directory & Script structuré
# Module Active Directory (Import si nécessaire)
Import-Module ActiveDirectory

# Utilisateurs
New-ADUser -Name "Jean Dupont" -SamAccountName "jdupont" `
  -UserPrincipalName "jdupont@corp.local" `
  -Path "OU=Comptabilite,DC=corp,DC=local" `
  -AccountPassword (ConvertTo-SecureString "P@ssword1!" -AsPlainText -Force) `
  -Enabled $true

Get-ADUser -Filter { Department -eq "Comptabilite" } -Properties *
Set-ADUser -Identity jdupont -Department "Finance"
Disable-ADAccount -Identity jdupont
Remove-ADUser -Identity jdupont -Confirm:$false

# Groupes et OUs
New-ADGroup -Name "GRP_Finance" -GroupScope Global -Path "OU=Groupes,DC=corp,DC=local"
Add-ADGroupMember -Identity "GRP_Finance" -Members jdupont
New-ADOrganizationalUnit -Name "Finance" -Path "DC=corp,DC=local"

# Template script PowerShell
[CmdletBinding()]
param(
    [Parameter(Mandatory)][string]$NomUtilisateur,
    [string]$OU = "OU=Users,DC=corp,DC=local"
)

try {
    $User = Get-ADUser -Identity $NomUtilisateur -ErrorAction Stop
    Write-Host "Utilisateur trouvé : $($User.DistinguishedName)" -ForegroundColor Green
}
catch [Microsoft.ActiveDirectory.Management.ADIdentityNotFoundException] {
    Write-Error "Utilisateur '$NomUtilisateur' introuvable dans AD."
    exit 1
}
catch {
    Write-Error "Erreur inattendue : $_"
    exit 2
}
Docker — Conteneurs, Images & Compose
# Images
docker pull nginx:latest
docker images
docker rmi nginx:latest
docker build -t monapp:1.0 .

# Conteneurs
docker run -d -p 8080:80 --name web nginx
docker run -it ubuntu:22.04 /bin/bash      # interactif
docker ps                                  # conteneurs actifs
docker ps -a                               # tous les conteneurs
docker stop web && docker rm web
docker exec -it web bash                   # shell dans un conteneur actif
docker logs web -f                         # logs en temps réel
docker inspect web                         # détails JSON

# Volumes & Réseau
docker volume create monvolume
docker network create --driver bridge monreseau
docker run -d -v monvolume:/data --network monreseau --name db mysql:8

# Nettoyage
docker system prune -af   # supprime tout (images/conteneurs/réseaux inutilisés)
docker volume prune

# Docker Compose
docker compose up -d        # démarrer en arrière-plan
docker compose down         # arrêter & supprimer conteneurs
docker compose logs -f app  # logs du service "app"
docker compose ps
docker-compose.yml — Exemple LAMP Stack
services:
  web:
    image: php:8.2-apache
    ports:
      - "80:80"
    volumes:
      - ./src:/var/www/html
    depends_on:
      - db
    networks:
      - lamp_net

  db:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: rootpassword
      MYSQL_DATABASE: appdb
      MYSQL_USER: appuser
      MYSQL_PASSWORD: apppassword
    volumes:
      - db_data:/var/lib/mysql
    networks:
      - lamp_net

  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    ports:
      - "8080:80"
    environment:
      PMA_HOST: db
    networks:
      - lamp_net

volumes:
  db_data:

networks:
  lamp_net:
    driver: bridge
⌨️

Raccourcis clavier essentiels

RaccourciAction
Ctrl+EDémarrer / Arrêter la capture
Ctrl+KOuvrir les options de capture
Ctrl+FRechercher un paquet
Ctrl+GAller au paquet n°...
Ctrl+ROuvrir un fichier de capture
Ctrl+SEnregistrer la capture
Ctrl+Shift+DDupliquer l'onglet de capture
Ctrl+Alt+Shift+TSuivre le flux TCP
Alt+Paquet suivant (même conversation)
F5Actualiser / relancer la capture
RaccourciActionLogiciel
Ctrl+AltLibérer la souris / sortir de la VMVMware Workstation
Ctrl+Alt+EnterMode plein écranVMware Workstation
Ctrl+Alt+DelEnvoyer Ctrl+Alt+Suppr à la VMVMware Workstation
Ctrl+Alt+PMettre la VM en pauseVMware Workstation
Host+FMode plein écran (Host = Ctrl droit)VirtualBox
Host+SSnapshot rapideVirtualBox
Host+RRedémarrer la VMVirtualBox
Host+DelEnvoyer Ctrl+Alt+Suppr à la VMVirtualBox
Host+HomeAfficher le menu VMVirtualBox
RaccourciAction
Win+RExécuter (Run)
Win+XMenu Outils d'administration rapide
eventvwr.mscObservateur d'événements
dsa.mscActive Directory Utilisateurs et Ordinateurs
gpmc.mscConsole de gestion des stratégies de groupe
dhcpmgmt.mscConsole DHCP
dnsmgmt.mscConsole DNS
compmgmt.mscGestion de l'ordinateur
ncpa.cplConnexions réseau
services.mscGestionnaire de services
regeditÉditeur de registre
Ctrl+Shift+EnterExécuter en tant qu'administrateur (depuis Démarrer)
Raccourci BashAction
Ctrl+CInterrompre le processus en cours (SIGINT)
Ctrl+ZSuspendre le processus (mettre en arrière-plan)
Ctrl+DEOF — fermer le terminal / déconnecter SSH
Ctrl+LEffacer l'écran (clear)
Ctrl+RRecherche dans l'historique (reverse-i-search)
Ctrl+ADébut de ligne
Ctrl+EFin de ligne
Ctrl+UEffacer depuis le curseur jusqu'au début de ligne
Ctrl+KEffacer depuis le curseur jusqu'à la fin de ligne
Ctrl+WEffacer le mot précédent
Alt+.Dernier argument de la commande précédente
!!Répéter la dernière commande (ex: sudo !!)