antispam-it

Come usare import-ip-blocklists.sh

Questa guida spiega come usare lo script import-ip-blocklists.sh per scaricare una o piu liste IP pubbliche, estrarre IPv4/CIDR validi, deduplicare i risultati e usarli come blocklist firewall.

Prerequisiti

File utili gia presenti nel repository

Uso base

Esegui con URL passate direttamente:

./import-ip-blocklists.sh https://example.org/list1.txt https://example.org/list2.txt

Esegui usando un file di sorgenti (una URL per riga):

./import-ip-blocklists.sh --url-file ip-to-ban-sources.txt

In entrambi i casi, lo script:

  1. Scarica tutte le fonti
  2. Estrae solo IPv4/CIDR validi
  3. Deduplica le voci
  4. Scrive il risultato in ip-to-ban.txt

Opzioni principali

Esempi pratici

Output su file personalizzato:

./import-ip-blocklists.sh --url-file ip-to-ban-sources.txt --output my-ip-blocklist.txt

Merge con lista esistente + deduplica:

./import-ip-blocklists.sh --url-file ip-to-ban-sources.txt --merge-existing --output ip-to-ban.txt

Applicazione diretta al firewall (richiede root):

sudo ./import-ip-blocklists.sh --url-file sources.txt --apply --set-name antispam_ext_block

Escludere IP affidabili con una whitelist:

./import-ip-blocklists.sh --url-file ip-to-ban-sources.txt --whitelist ip-to-ban-whitelist.txt

Uso combinato di whitelist e apply:

sudo ./import-ip-blocklists.sh --url-file ip-to-ban-sources.txt --whitelist ip-to-ban-whitelist.txt --apply

Formato del file whitelist

Il file whitelist usa lo stesso formato dell’output: una voce per riga, IPv4 o CIDR, con supporto ai commenti #.

Esempio ip-to-ban-whitelist.txt:

# IP di servizi legittimi da non bloccare
203.0.113.5
198.51.100.0/24

Lo script rimuove dalla blocklist tutte le voci presenti nella whitelist prima di scrivere il file di output. A schermo vengono segnalati il numero di entry whitelist caricate e quelle effettivamente rimosse.

Cosa fa –apply

Quando usi --apply, lo script:

  1. Crea (se assente) il set ipset scelto
  2. Svuota il set
  3. Inserisce tutte le reti/IP estratte
  4. Verifica se esiste la regola iptables su INPUT
  5. Se manca, aggiunge: match-set <set-name> src -j DROP

Verifica veloce dopo l’applicazione

Controlla contenuto set:

sudo ipset list antispam_ext_block

Controlla regola INPUT:

sudo iptables -S INPUT | grep antispam_ext_block

Aggiornamento periodico con cron

Esempio aggiornamento ogni giorno alle 03:15 con applicazione automatica:

15 3 * * * /bin/bash /percorso/assoluto/import-ip-blocklists.sh --url-file /percorso/assoluto/sources.txt --apply --set-name antispam_ext_block >> /var/log/import-ip-blocklists.log 2>&1

Note importanti

Risoluzione problemi

Errore: No URLs provided

Errore: –apply requires root privileges

Errore download di una sorgente

Errore: No valid IPv4/CIDR entries extracted

Whitelist file not found