Firewall
iptables / nftables
$iptables -L -n -v
Lister toutes les règles du firewall
$iptables -A INPUT -p tcp --dport 22 -s 10.0.0.0/8 -j ACCEPT
Autoriser SSH depuis le réseau interne
$iptables -A INPUT -p tcp --dport 22 -j DROP
Bloquer SSH depuis l'extérieur
$iptables -P INPUT DROP
Politique par défaut : tout bloquer
UFW (Ubuntu)
$ufw enable
$ufw default deny incoming
$ufw allow from 10.0.0.0/8 to any port 22
$ufw status verbose
Règles essentielles
| Port | Service | Recommandation |
|---|---|---|
| 22 | SSH | Limiter aux IPs autorisées |
| 80 | HTTP | Rediriger vers 443 |
| 443 | HTTPS | Ouvert |
| 3306 | MySQL | Fermé (accès local uniquement) |
| 5432 | PostgreSQL | Fermé (accès local uniquement) |
| 6379 | Redis | Fermé (pas d'auth par défaut) |
IDS / IPS
| IDS | IPS | |
|---|---|---|
| Mode | Passif (détection) | Actif (prévention) |
| Action | Alerte | Bloque le trafic |
| Position | Copie du trafic (TAP/SPAN) | En ligne (inline) |
| Risque | Faux négatifs | Faux positifs (bloque du trafic légitime) |
Outils
- Suricata : IDS/IPS open source, haute performance
- Snort : Classique, large communauté de règles
- OSSEC : Host-based IDS (HIDS)
- Fail2ban : Protection contre le brute force
$fail2ban-client status sshd
Vérifier les bans SSH actifs
Segmentation réseau
┌──────────────────────────────────────────┐
│ Internet │
└────────────────┬─────────────────────────┘
│
┌───────┴───────┐
│ Firewall │
└───┬───────┬───┘
│ │
┌────────┴──┐ ┌──┴────────┐
│ DMZ │ │ Interne │
│ (Web, DNS) │ │ (Apps, DB) │
└───────────┘ └──────┬────┘
│
┌──────┴─────┐
│ Management │
│ (SSH, VPN) │
└────────────┘
Principes :
- Isoler les services publics dans une DMZ
- Bases de données dans un réseau privé
- Communication inter-zones via firewall uniquement
- VLANs pour la segmentation logique
VPN
| Type | Usage | Protocole |
|---|---|---|
| WireGuard | Moderne, rapide, simple | UDP |
| OpenVPN | Flexible, mature | TCP/UDP |
| IPsec | Site-to-site, entreprise | ESP/AH |
$wg show
Afficher la configuration WireGuard active
Analyse de trafic
$tcpdump -i eth0 -n port 443
Capturer le trafic HTTPS
$tcpdump -i eth0 -w capture.pcap
Sauvegarder une capture pour Wireshark
$ss -tlnp
Ports en écoute et processus associés
$netstat -an | grep ESTABLISHED
Connexions actives
DNS Security
- DNSSEC : signatures cryptographiques sur les enregistrements DNS
- DoH (DNS over HTTPS) : chiffrement des requêtes DNS
- DoT (DNS over TLS) : alternative à DoH
$dig +dnssec example.com
Vérifier les signatures DNSSEC
Bonnes pratiques réseau
- Default deny : tout bloquer, ouvrir au besoin
- Segmentation : isoler les zones par niveau de confiance
- Chiffrement : TLS pour tout le trafic applicatif
- Monitoring : logs de flux, IDS, alerting
- Rotation : changer les clés VPN et certificats régulièrement