Guida alle tecnologie

Come configurare un IPS su Fedora 17

6 min read Sicurezza Aggiornato 24 Sep 2025
Configurare un IPS su Fedora 17
Configurare un IPS su Fedora 17

TL;DR

In questa guida passo-passo configuri Suricata come IPS su Fedora 17 usando Vuurmuur per inoltrare il traffico a Suricata tramite NFQUEUE. Copre installazione, test in modalità IDS, passaggio a IPS inline, regole di esempio per il blocco e checklist operativa.

Introduzione

Vuurmuur è un gestore di firewall per Linux. Traduce una sintassi di regole leggibile dall’umano nelle corrette chiamate iptables. Offre visualizzazione log, shaping del traffico, terminazione di connessioni e altre funzionalità utili.

Suricata è un motore IDS/IPS relativamente moderno. È multithreaded per migliori prestazioni, supporta modalità IDS e IPS, può estrarre file da stream HTTP e offre molte altre funzionalità.

Fedora 17 include nei repository sia Vuurmuur sia Suricata. Questa guida mostra come ottenere un IPS funzionante usando solo i pacchetti Fedora.

Prerequisiti

  • Accesso root o sudo su una macchina Fedora 17.
  • Interfaccia di rete principale (nell’esempio: eth0).
  • Connettività Internet per scaricare le regole IDS/IPS.

Importante: Fedora 17 è una versione datata. Valuta il passaggio a una versione supportata per produzione.

1) Installare Vuurmuur e Suricata

Esegui come root:

yum install suricata Vuurmuur-daemon Vuurmuur-tui

2) Eseguire Suricata in modalità IDS (test passivo)

Un IPS può bloccare traffico se mal configurato. Per questo è consigliato prima testare in modalità IDS (passiva).

Scarichiamo le regole Emerging Threats ottimizzate per Suricata e mettiamole in /etc/suricata/rules/:

cd /etc/suricata/
curl -O https://rules.emergingthreatspro.com/open/suricata/emerging.rules.tar.gz
tar xzvf emerging.rules.tar.gz
ln -s /etc/suricata/rules/reference.config /etc/suricata/reference.config
ln -s /etc/suricata/rules/classification.config /etc/suricata/classification.config
cp /etc/suricata/rules/suricata-1.2-prior-open.yaml /etc/suricata/suricata.yaml

Testa Suricata con l’interfaccia di prova (sostituisci eth0 con l’interfaccia corretta):

suricata -c /etc/suricata/suricata.yaml -i eth0

Lascia Suricata in esecuzione per qualche minuto e controlla /var/log/suricata/stats.log e /var/log/suricata/http.log per confermare che l’ispezione funzioni. Genera traffico aprendo un browser e visitando alcuni siti.

3) Passare a Suricata in modalità IPS (inline)

Per permettere a Suricata di bloccare il traffico, iptables deve inoltrare pacchetti a Suricata tramite NFQUEUE. Usiamo Vuurmuur per gestire le regole del firewall.

Apri la configurazione grafica di Vuurmuur (vuurmuur_conf). Vai alla sezione “Rules” (Regole) e aggiungi una regola iniziale che accetta tutto e abiliti il logging:

accept service any from any to any log

L’aspetto della regola è mostrato nello screenshot.

Schermata che mostra una regola Vuurmuur che accetta tutto con logging

Poi, per poter avviare il servizio Vuurmuur, aggiungi un’interfaccia nella configurazione.

Vai a “Interfaces” (Interfacce) e aggiungi una nuova interfaccia; nel campo Device inserisci “eth0”:

Schermata Vuurmuur: aggiunta dell'interfaccia eth0

Quando hai finito, esci da vuurmuur_conf.

Per far funzionare correttamente il logging di Vuurmuur è necessario adattare la configurazione di rsyslog. Modifica /etc/rsyslog.conf e aggiungi la riga:

*.debug /var/log/debug

Poi riavvia rsyslog:

service rsyslog restart

Avvia Vuurmuur:

service vuurmuur start

Assicurati che Vuurmuur venga avviato automaticamente al boot:

systemctl enable vuurmuur.service

Apri di nuovo vuurmuur_conf e vai al logviewer per verificare che il traffico passi:

Log viewer di Vuurmuur che mostra traffico in transito

Se tutto è regolare, procediamo a inoltrare il traffico a Suricata per l’ispezione profonda.

Inoltrare tutto a Suricata (NFQUEUE)

Cambia la regola Vuurmuur precedente in:

nfqueue service any from any to any

La regola apparirà così nello strumento:

Regola Vuurmuur che inoltra tutto a NFQUEUE

Questa regola invierà tutto il traffico a Suricata. Applica le modifiche in vuurmuur_conf; questo aggiornerà automaticamente il firewall. Il logviewer mostrerà l’inoltro verso NFQUEUE.

Log Vuurmuur dopo il passaggio a NFQUEUE

Avvia Suricata in modalità inline con la coda 0:

suricata -c /etc/suricata/suricata.yaml -q0

Apri il browser e verifica che il traffico scorra. Controlla /var/log/suricata/stats.log e /var/log/suricata/http.log per confermare il funzionamento.

Esempio parziale di stats.log generato durante il test:

-------------------------------------------------------------------
Date: 10/8/2012 -- 17:20:08 (uptime: 0d, 01h 39m 02s)
-------------------------------------------------------------------
Counter                   | TM Name                   | Value
-------------------------------------------------------------------
decoder.pkts              | Decode1                   | 3147
decoder.bytes             | Decode1                   | 1453192
decoder.ipv4              | Decode1                   | 3147
decoder.ipv6              | Decode1                   | 0
... (output abbreviato)
detect.alert              | Detect                    | 0

Esempio parziale di http.log:

10/08/2012-17:24:02.447292 www.howtoforge.com [] / [] Mozilla/5.0 (X11; Linux x86_64; rv:15.0) Gecko/20100101 Firefox/15.0.1 [] 192.168.122.48:48396 -> 188.40.16.205:80
10/08/2012-17:24:02.544458 static.howtoforge.com [] /misc/drupal.css [] Mozilla/5.0 (X11; Linux x86_64; rv:15.0) Gecko/20100101 Firefox/15.0.1 [] 192.168.122.48:52942 -> 178.63.27.110:80

Chiudi Suricata in esecuzione con Ctrl-C e modifica /etc/sysconfig/suricata per avviarlo da servizio. Imposta OPTIONS come segue:

OPTIONS="-q 0 -D --pidfile /var/run/suricata.pid"

Poi avvia Suricata come servizio e abilitalo al boot:

service suricata start
systemctl enable suricata.service

4) Bloccare (droppare) traffico con Suricata

Finora niente è stato droppato. Le regole scaricate di default usano la azione “alert”, quindi non bloccano.

Modifica /etc/suricata/suricata.yaml e nella sezione stream imposta inline su yes. Questo abilita la riassemblaggio dei flussi in modalità IPS:

stream:
  memcap: 32mb
  checksum_validation: yes      # reject wrong csums
  inline: yes

Aggiungi poi local.rules alla lista dei file di regole caricati:

default-rule-path: /etc/suricata/rules/
rule-files:
 - local.rules
 - emerging-ftp.rules
 - emerging-policy.rules

Crea il file /etc/suricata/rules/local.rules e aggiungi, su una singola riga, una regola di drop d’esempio che blocchi richieste contenenti “facebook.com”:

drop tcp any any -> any any (msg:"facebook is blocked"; content:"facebook.com"; http_header; nocase; classtype:policy-violation; sid:1;)

Riavvia Suricata:

service suricata restart

Ora prova ad aprire http://www.facebook.com/ con il browser: la richiesta dovrebbe andare in timeout.

Il file /var/log/suricata/fast.log mostrerà voci di drop come queste:

10/06/2012-11:40:49.018377  [Drop] [] [1:1:0] facebook is blocked [] [Classification: Potential Corporate Privacy Violation] [Priority: 1] {TCP} 192.168.122.48:57113 -> 173.252.100.16:80
10/06/2012-11:40:49.020955  [Drop] [] [1:1:0] facebook is blocked [] [Classification: Potential Corporate Privacy Violation] [Priority: 1] {TCP} 192.168.122.48:57114 -> 173.252.100.16:80

Importante: questa regola è solo un esempio. In produzione gestisci le regole con cura per evitare falsi positivi e interruzioni del servizio.

Checklist operativa rapida (ruoli)

  • Amministratore di sistema:
    • Installare pacchetti e assicurare avvio servizi (rsyslog, vuurmuur, suricata).
    • Verificare che Vuurmuur gestisca l’interfaccia corretta.
  • Network engineer:
    • Confermare che NFQUEUE instradi il traffico desiderato.
    • Monitorare latenza e utilizzo CPU/memoria.
  • Analista sicurezza:
    • Testare le regole in IDS prima di abilitare il drop.
    • Scrivere regole locali e validare sid/descrizioni.

Approcci alternativi e quando usarli

  • Usare iptables/nfqueue manualmente: utile per ambienti senza Vuurmuur o per scripts di automazione.
  • Snort in modalità inline: alternativa a Suricata se si preferisce l’ecosistema Snort; valuta costi di manutenzione delle regole.
  • Offload su dispositivo dedicato: in reti ad alto traffico considera un’appliance o bilanciamento per evitare che l’IPS diventi collo di bottiglia.

Modello mentale e buone pratiche

  • Fase 1: Test in IDS (registrazione) — osserva e taratura le regole.
  • Fase 2: Modalità inline su una porzione limitata di traffico — monitoraggio intensivo.
  • Fase 3: Estensione graduale e automatizzazione delle regole approvate.

Regola pratica: prima di droppare, assicurati che ogni regola abbia una contromisura per il falso positivo (es. whitelist o bypass su IP critici).

Breve playbook di deploy (SOP)

  1. Installare pacchetti.
  2. Scaricare regole e configurare suricata.yaml.
  3. Avviare Suricata in IDS e raccogliere dati per almeno 24 ore.
  4. Creare local.rules e testarle in IDS.
  5. Abilitare inline e campionare il traffico su sottoreti non critiche.
  6. Monitorare logs e metriche; rollback se si osservano interruzioni.

Quando un IPS può fallire (controesempi)

  • Alte latenze se il server Suricata è sottodimensionato rispetto al throughput.
  • False positive che bloccano servizi importanti se le regole non sono tarate.
  • Problemi con traffico cifrato: l’ispezione HTTP richiede terminazione TLS o decrittazione a monte.

Note di compatibilità e migrazione

  • Fedora 17 è datato: per ambienti di produzione privilegia versioni supportate o distribuzioni enterprise.
  • Suricata evolve: verifica la compatibilità delle regole e dei file di configurazione quando esegui l’upgrade.

Glossario (1 linea ciascuno)

  • IPS: Intrusion Prevention System, blocca le minacce in linea.
  • IDS: Intrusion Detection System, rileva e segnala anomalie.
  • NFQUEUE: meccanismo del kernel Linux per passare pacchetti all’userland.
  • Vuurmuur: gestore di firewall che semplifica iptables.
  • Suricata: motore IDS/IPS open source multithreaded.

Ulteriori letture consigliate

  • Suricata User Guide
  • Rule management con oinkmaster
  • Vuurmuur user guide

Riepilogo

Questa guida mostra come portare Suricata da IDS a IPS su Fedora 17 usando Vuurmuur per inoltrare il traffico a NFQUEUE. Inizia sempre in modalità IDS per tarare le regole, quindi abilita l’inline reassembly e testa regole di drop con cautela. Monitora log e metriche e prepara un piano di rollback.

Importante: testa ogni modifica in un ambiente di staging e valuta l’aggiornamento a una release di Fedora supportata per produzione.

Autore
Redazione

Materiali simili

Design essenziale per app: esperienza utente
UX

Design essenziale per app: esperienza utente

Gestire la cronologia di YouTube in modo sicuro
Privacy

Gestire la cronologia di YouTube in modo sicuro

Leggere e organizzare fumetti sul PC
Fumetti

Leggere e organizzare fumetti sul PC

Risolvi errore 'Something Went Wrong' su Prime Video
Streaming

Risolvi errore 'Something Went Wrong' su Prime Video

Gestire chiamate senza uscire dalle app con Call PopOut
Android

Gestire chiamate senza uscire dalle app con Call PopOut

Hazel Sky si blocca all'avvio su PC: Soluzioni rapide
Guide tecniche

Hazel Sky si blocca all'avvio su PC: Soluzioni rapide