// travaux pratiques · Administration sécurité
TP08 - Passage en mode IPS avec NFQUEUE
- TP 8 / 8
- 6 étapes
- ≈ 45 min
- Accès libre
Objectif : faire fonctionner Suricata en prévention d’intrusion (IPS) sur la sonde avec NFQUEUE, bloquer un trafic précis avec une règle drop, puis revenir proprement au mode IDS.
Prérequis :
- TP04 terminé (fichier
local.rulesdéclaré dans la configuration). - Un accès à la console de la VM dans VirtualBox, pas seulement en SSH : si Suricata s’arrête alors que les paquets sont redirigés, le noyau les rejette et la connexion SSH est coupée.
- Un instantané récent de la sonde.
Attention : ce TP modifie le pare-feu de la sonde. Ne le reproduisez jamais sur un serveur de production sans fenêtre de maintenance, plan de retour arrière et validation préalable en mode IDS.
Actions à réaliser :
Vérifier la prise en charge de NFQUEUE.
sudo suricata --build-info | grep -i nfqAjouter une règle de blocage. À la fin de
/etc/suricata/rules/local.rules, ajoutez :drop http any any -> any any (msg:"LAB IPS blocage testmynids"; flow:established,to_server; http.host; content:"testmynids.org"; sid:1000010; rev:1;)sudo suricata -T -c /etc/suricata/suricata.yamlLancer Suricata en mode NFQUEUE. Arrêtez le service (qui fonctionne en AF_PACKET), puis lancez Suricata au premier plan sur la file 0 :
sudo systemctl stop suricata sudo suricata -c /etc/suricata/suricata.yaml -q 0Attendez le message indiquant que le moteur est démarré.
Rediriger le trafic de la sonde vers la file. Dans une seconde console, envoyez vers NFQUEUE les paquets entrants et sortants de la machine :
sudo iptables -I INPUT -j NFQUEUE sudo iptables -I OUTPUT -j NFQUEUETester le blocage. La première requête doit échouer au bout du délai, la seconde aboutir :
curl -m 10 http://testmynids.org/uid/index.html curl -m 10 -s -o /dev/null -w "%{http_code}\n" https://example.org sudo jq -c 'select(.event_type=="alert" and .alert.signature_id==1000010) | .alert.action' /var/log/suricata/eve.jsonRevenir au mode IDS. Supprimez d’abord les règles de pare-feu, puis arrêtez Suricata avec Ctrl+C dans la première console et relancez le service :
sudo iptables -D INPUT -j NFQUEUE sudo iptables -D OUTPUT -j NFQUEUE sudo systemctl start suricata
Vérification / résultat attendu :
--build-infomentionne la prise en charge de NFQueue.- La requête vers testmynids.org n’aboutit pas (délai dépassé), alors que
https://example.orgrenvoie le code 200. - Le journal EVE contient l’alerte 1000010 avec l’action
blocked. - Après le retour arrière,
sudo iptables -L -nne contient plus de règle NFQUEUE et le service est actif.
Pour aller plus loin : sur une passerelle Linux, la redirection se fait sur la chaîne FORWARD ; avec nftables, l’option bypass laisse passer le trafic si Suricata est arrêté, au prix de la protection. Étudiez aussi le mode AF_PACKET IPS (copy-mode: ips), qui relie deux interfaces comme un pont.
// formation sur mesure
Former votre équipe sur ce sujet ?
Azur Secure anime des sessions intra-entreprise, à distance ou dans vos locaux sur la Côte d'Azur, adaptées au niveau de vos équipes.
