Boîte à outils

Mes ressources

Les commandes et procédures que j'utilise au quotidien. Clique sur une commande pour la copier.

🐧 Commandes Linux

🪟 Commandes Windows (CMD & PowerShell)

📡 Réseau & Cisco IOS

🐳 Docker

📦 Git

📘 Procédures d'installation & configuration

🔥 pfSense — installation et configuration de base Pare-feu / routeur

1. Prérequis

  • Une VM (Proxmox, VirtualBox, VMware) avec 2 cartes réseau : WAN (vers Internet) et LAN (réseau interne).
  • 1 vCPU, 1 à 2 Go de RAM, 16 Go de disque. ISO téléchargée sur pfsense.org.

2. Installation

  1. Démarrer sur l'ISO → Install → partitionnement Auto (ZFS) → redémarrer.
  2. À la console : « Should VLANs be set up now? » → n (on les fera plus tard).
  3. Assigner les interfaces : WAN = vtnet0 / em0, LAN = vtnet1 / em1.
  4. Option 2 du menu console → définir l'IP du LAN (ex : 192.168.10.1/24) et activer le DHCP.

3. Interface web

  1. Depuis un poste du LAN : https://192.168.10.1 — identifiants par défaut admin / pfsense.
  2. Suivre l'assistant : nom d'hôte, DNS, fuseau horaire, changer le mot de passe admin.

4. Créer des VLAN

  1. Interfaces → Assignments → VLANs → Add : interface parent = LAN, tag = 10, 20…
  2. Interface Assignments : ajouter chaque VLAN, l'activer, lui donner une IP (ex : 10.0.10.1/24).
  3. Services → DHCP Server : activer le DHCP sur chaque VLAN.

5. Règles de pare-feu

  • Firewall → Rules : les règles sont lues de haut en bas, la première qui correspond s'applique.
  • Par défaut tout est bloqué sur une nouvelle interface : ajouter une règle Pass explicite.
  • Exemple : bloquer VLAN Invités → LAN, puis autoriser Invités → any (Internet).

6. Redirection de port (NAT)

Firewall → NAT → Port Forward → Add : interface WAN, port 443 → IP du serveur en DMZ, port 443. La règle de pare-feu associée est créée automatiquement.

7. VPN OpenVPN (accès distant)

  1. System → Cert Manager : créer une CA puis un certificat serveur.
  2. VPN → OpenVPN → Wizards : suivre l'assistant (authentification locale).
  3. System → Package Manager : installer openvpn-client-export pour générer les fichiers clients.
💡 Toujours faire une sauvegarde : Diagnostics → Backup & Restore avant une grosse modification.
🧭 Apache Guacamole avec Docker Bastion d'accès RDP / SSH / VNC

Guacamole permet d'accéder à ses serveurs depuis un simple navigateur. Il se compose de 3 briques : guacd (le moteur qui parle RDP/SSH), guacamole (l'interface web) et une base de données (utilisateurs et connexions).

1. Préparer le dossier

mkdir -p ~/guacamole/init && cd ~/guacamole
# Générer le script de création de la base
docker run --rm guacamole/guacamole:1.5.5 /opt/guacamole/bin/initdb.sh --postgresql > init/initdb.sql

2. Fichier docker-compose.yml

services:
  guacd:
    image: guacamole/guacd:1.5.5
    restart: unless-stopped

  postgres:
    image: postgres:16
    restart: unless-stopped
    environment:
      POSTGRES_DB: guacamole_db
      POSTGRES_USER: guacamole_user
      POSTGRES_PASSWORD: MotDePasseSolide
    volumes:
      - ./init:/docker-entrypoint-initdb.d:ro
      - ./data:/var/lib/postgresql/data

  guacamole:
    image: guacamole/guacamole:1.5.5
    restart: unless-stopped
    depends_on: [guacd, postgres]
    environment:
      GUACD_HOSTNAME: guacd
      POSTGRESQL_HOSTNAME: postgres
      POSTGRESQL_DATABASE: guacamole_db
      POSTGRESQL_USER: guacamole_user
      POSTGRESQL_PASSWORD: MotDePasseSolide
    ports:
      - "8080:8080"

3. Lancer et se connecter

docker compose up -d
docker compose logs -f guacamole   # vérifier qu'il n'y a pas d'erreur
  1. Ouvrir http://IP_DU_SERVEUR:8080/guacamole
  2. Identifiants par défaut : guacadmin / guacadmin → créer un nouvel admin et supprimer guacadmin.
  3. Paramètres → Connexions → Nouvelle connexion : protocole RDP, hôte, port 3389, identifiants, et cocher « Ignorer le certificat du serveur » en lab.
🔐 En production : placer Guacamole derrière un reverse proxy HTTPS (Nginx) et activer la double authentification (extension TOTP).
🗂️ Active Directory sur Windows Server AD DS, DNS, OU, GPO
  1. Donner une IP fixe au serveur et le renommer (ex : SRV-AD01), puis redémarrer.
  2. Gestionnaire de serveur → Ajouter des rôles : cocher AD DS (et DNS).
  3. Cliquer sur le drapeau → Promouvoir ce serveur en contrôleur de domaine → nouvelle forêt (ex : entreprise.local).
  4. Après redémarrage : Utilisateurs et ordinateurs Active Directory → créer des OU (Direction, Compta, Informatique…).
  5. Créer utilisateurs et groupes dans les OU.
  6. Gestion des stratégies de groupe : créer une GPO, la lier à une OU, puis gpupdate /force sur le client.
  7. Sur le poste client : DNS = IP du contrôleur de domaine, puis joindre le domaine.
# La même chose en PowerShell
Install-WindowsFeature AD-Domain-Services -IncludeManagementTools
Install-ADDSForest -DomainName "entreprise.local"
New-ADOrganizationalUnit -Name "Informatique"
New-ADUser -Name "Jean Dupont" -SamAccountName jdupont -Path "OU=Informatique,DC=entreprise,DC=local" -AccountPassword (Read-Host -AsSecureString) -Enabled $true
Add-Computer -DomainName entreprise.local -Restart   # sur le client
🖥️ Proxmox VE — créer une VM Debian Virtualisation
  1. Téléverser l'ISO : local → ISO Images → Upload.
  2. Create VM : nom, ISO, disque (VirtIO SCSI), CPU (type host), RAM, réseau (vmbr0, modèle VirtIO).
  3. Installer Debian (sans environnement de bureau, cocher « serveur SSH »).
  4. Installer l'agent : apt install qemu-guest-agent puis l'activer dans Options → QEMU Guest Agent.
  5. Transformer une VM propre en Template pour cloner rapidement les suivantes.
  6. Programmer des sauvegardes : Datacenter → Backup.
🔑 SSH par clé (sans mot de passe) Sécurisation serveur
# Sur MON poste : créer une paire de clés
ssh-keygen -t ed25519 -C "yannis@poste"
# Envoyer la clé publique au serveur
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@IP_SERVEUR
# Sur le SERVEUR : désactiver la connexion par mot de passe et root
sudo nano /etc/ssh/sshd_config
  PasswordAuthentication no
  PermitRootLogin no
sudo systemctl restart ssh
⚠️ Tester la connexion par clé dans un second terminal avant de fermer le premier, sinon risque de se bloquer dehors.
🐳 Installer Docker sur Debian Conteneurs
sudo apt update && sudo apt install -y ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian $(. /etc/os-release && echo $VERSION_CODENAME) stable" | sudo tee /etc/apt/sources.list.d/docker.list
sudo apt update && sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
sudo usermod -aG docker $USER   # puis se déconnecter / reconnecter
docker run hello-world
🎫 GLPI sur Debian (LAMP) Gestion de parc & tickets
sudo apt install -y apache2 mariadb-server php php-{mysql,curl,gd,intl,xml,mbstring,zip,bz2,ldap,bcmath}
sudo mysql_secure_installation
sudo mysql -e "CREATE DATABASE glpi; CREATE USER 'glpi'@'localhost' IDENTIFIED BY 'MotDePasse'; GRANT ALL ON glpi.* TO 'glpi'@'localhost';"
# Télécharger la dernière version sur github.com/glpi-project/glpi/releases
sudo tar -xzf glpi-*.tgz -C /var/www/html/
sudo chown -R www-data:www-data /var/www/html/glpi
  1. Ouvrir http://IP/glpi et suivre l'assistant (base glpi).
  2. Comptes par défaut : glpi/glpi (admin) — changer tous les mots de passe et supprimer install/install.php.
  3. Installer l'agent GLPI sur les postes pour l'inventaire automatique.