🌐 Réseaux

networking-firewall-configurator

Configuration de firewalls et règles de sécurité réseau pour iptables/nftables, pfSense, Azure NSG, AWS Security Groups et Cisco ACL.

⚡ Installation & lancement en 1 commande

Copiez-collez dans votre terminal : le skill s'installe dans ~/.claude/skills et Claude Code se lance directement dessus.

macOS / Linux
curl -fsSL https://raw.githubusercontent.com/khalilbenaz/claude-skills-collection/main/install.sh | sh -s -- networking-firewall-configurator --launch
Windows (PowerShell)
iex "& { $(iwr -useb https://raw.githubusercontent.com/khalilbenaz/claude-skills-collection/main/install.ps1) } networking-firewall-configurator -Launch"

🚀 Déjà installé ?

claude "/networking-firewall-configurator"

Ou tapez /networking-firewall-configurator dans une session Claude Code, ou décrivez simplement votre besoin — le skill se déclenche automatiquement via le skill-router.

🔑 Déclencheurs automatiques

Le skill s'active automatiquement quand votre demande contient :

firewalliptablespfSenseNSGSecurity Grouprègles firewall

📦 Installation manuelle

git clone https://github.com/khalilbenaz/claude-skills-collection.git cp -r claude-skills-collection/skills/networking-firewall-configurator ~/.claude/skills/

Payload du plugin : skills/networking-firewall-configurator · source éditable : networking-skills/firewall-configurator

📖 Manuel

Firewall Configurator

Workflow

1. Inventaire de l'existant

Recenser les règles actives avant toute modification.

# iptables — lister les règles avec numéros de ligne et compteurs
iptables -nvL --line-numbers

# nftables (Linux moderne)
nft list ruleset

# pfSense — via CLI
pfctl -sr

# Azure NSG — lister toutes les règles effectives sur une NIC
az network nic list-effective-nsg --name myNIC --resource-group myRG -o table

# AWS Security Group — voir les règles entrantes/sortantes
aws ec2 describe-security-groups --group-ids sg-xxxxx \
  --query 'SecurityGroups[*].{In:IpPermissions,Out:IpPermissionsEgress}'

2. Matrice de flux

Avant d'écrire une règle, remplir ce tableau pour chaque flux :

SourceDestinationPort/ProtoSensJustification
10.0.1.0/2410.0.2.10443/tcpINAPI frontend→backend
0.0.0.0/010.0.5.0/2422/tcpINAccès SSH ops (à restreindre)

Critère de décision — quelle plateforme ?

3. Rédaction des règles

iptables — politique par défaut DROP + règles minimales

# Vider et poser la politique DROP
iptables -F && iptables -X
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

# Permettre loopback et connexions établies
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

# SSH restreint à un bastion
iptables -A INPUT -s 10.0.0.5/32 -p tcp --dport 22 -m comment --comment "SSH depuis bastion" -j ACCEPT

# HTTPS public
iptables -A INPUT -p tcp --dport 443 -j ACCEPT

# Persister (Debian/Ubuntu)
iptables-save > /etc/iptables/rules.v4

nftables — équivalent moderne

table inet filter {
  chain input {
    type filter hook input priority 0; policy drop;
    iif lo accept
    ct state established,related accept
    ip saddr 10.0.0.5 tcp dport 22 comment "SSH bastion" accept
    tcp dport 443 accept
    limit rate 5/second counter log prefix "DROP: " drop
  }
  chain forward { type filter hook forward priority 0; policy drop; }
  chain output  { type filter hook output  priority 0; policy accept; }
}

Azure NSG via CLI

# Autoriser HTTPS entrant, priorité 100 (plus petit = priorité haute)
az network nsg rule create \
  --resource-group myRG \
  --nsg-name myNSG \
  --name Allow-HTTPS-In \
  --priority 100 \
  --direction Inbound \
  --access Allow \
  --protocol Tcp \
  --destination-port-ranges 443 \
  --description "HTTPS public"

# Bloquer tout le reste (règle de fin explicite, priorité 4096)
az network nsg rule create \
  --resource-group myRG --nsg-name myNSG \
  --name DenyAll-In --priority 4096 \
  --direction Inbound --access Deny \
  --protocol '*' --destination-port-ranges '*'

AWS Security Group via CLI

# Autoriser HTTPS depuis Internet
aws ec2 authorize-security-group-ingress \
  --group-id sg-xxxxx \
  --protocol tcp --port 443 --cidr 0.0.0.0/0

# Révoquer une règle existante
aws ec2 revoke-security-group-ingress \
  --group-id sg-xxxxx \
  --protocol tcp --port 3389 --cidr 0.0.0.0/0

4. Validation avant production

# Tester la connectivité TCP sans établir de session (ncat)
nc -zv 10.0.2.10 443

# Simuler un paquet avec hping3
hping3 -S -p 443 10.0.2.10

# Test de port bloqué (doit timeout)
curl --connect-timeout 3 http://10.0.2.10:8080 || echo "Bloqué OK"

# Azure — tester le routage effectif
az network watcher test-connectivity \
  --resource-group myRG \
  --source-resource myVM \
  --dest-address 10.0.2.10 --dest-port 443

5. Déploiement avec rollback prêt

# iptables — sauvegarder AVANT toute modification
iptables-save > /tmp/iptables_backup_$(date +%Y%m%d_%H%M%S).rules

# Appliquer les nouvelles règles (script à rouler)
bash apply_rules.sh

# En cas de coupure : rollback en 1 ligne
iptables-restore < /tmp/iptables_backup_20260624_143000.rules

Pour les sessions SSH à risque : utiliser at pour un rollback automatique :

echo "iptables-restore < /tmp/backup.rules" | at now + 5 minutes
# Si tout va bien, annuler le job
atrm <job-id>

6. Journalisation et monitoring

# iptables — loguer les paquets DROP avant la règle terminale
iptables -I INPUT -m limit --limit 5/min -j LOG --log-prefix "FW-DROP: " --log-level 4

# nftables — compteur + log
table inet filter {
  chain input {
    ...
    counter log prefix "DROP: " drop
  }
}

# Analyser les logs (systemd)
journalctl -k | grep "FW-DROP" | awk '{print $12}' | sort | uniq -c | sort -rn | head 20

Outils de monitoring recommandés :

7. Documentation

Chaque règle doit avoir : date, auteur, ticket associé, justification. Versionner avec git.


Garde-fous / Anti-patterns

Anti-patternRisqueCorrection
Politique par défaut ACCEPTToute règle manquante = ouvertureToujours policy drop en INPUT/FORWARD
Règle 0.0.0.0/0 sur port 22Exposition SSH au mondeRestreindre au bastion ou VPN
Appliquer sans backupRollback impossibleiptables-save avant chaque modif
Priorités NSG toutes à 100Conflits silencieuxEspacer de 100 (100, 200, 300…)
Security Group sans descriptionAudit impossibleToujours renseigner le champ description
Règles temporaires jamais nettoyéesSurface d'attaque croissanteRevue trimestrielle + TTL documenté
Ouvrir un range de ports (1000-9000)Moindre privilège violéOuvrir uniquement les ports nécessaires
NACL AWS stateless oubliéRéponses bloquées en sortieToujours paire IN+OUT sur NACL

Bonnes pratiques 2026