Questo tutorial documenta il processo di utilizzo del tracker abusi badips insieme a Fail2ban per proteggere il tuo server o computer. L'ho testato su un sistema Debian 8 Jessie e Debian 7 Wheezy.
Che cos'è badIPs?
BadIps è un elenco di IP segnalati come non validi in combinazione con fail2ban.
Questo tutorial contiene due parti, la prima si occuperà dell'uso dell'elenco e la seconda si occuperà dell'iniezione di dati.
Utilizza l'elenco di badIPs
Definisci il livello e la categoria di sicurezza
Puoi ottenere l'elenco degli indirizzi IP semplicemente utilizzando l'API REST.
Quando OTTIENI questo URL: https://www.badips.com/get/categories
Vedrai tutte le diverse categorie presenti sul servizio.
- Secondo passaggio, determina che il punteggio della strega è fatto apposta per te.
Qui una citazione di badips che dovrebbe aiutarti (personalmente ho preso il punteggio =3): - Se desideri compilare una statistica o utilizzare i dati per qualche esperimento, ecc. puoi iniziare con un punteggio 0.
- Se desideri eseguire il firewall del tuo server o sito Web privato, scegli i punteggi da 2. Magari combinati con i tuoi risultati, anche se non hanno un punteggio superiore a 0 o 1.
- Se stai per proteggere un negozio online o un server di e-commerce ad alto traffico e redditizio, ti consigliamo di utilizzare valori da 3 o 4. Forse anche combinati con i tuoi risultati (chiave / sincronizzazione).
- Se sei paranoico, prendine 5.
Quindi ora che ottieni le tue due variabili, creiamo il tuo collegamento concatenandole e prendi il tuo collegamento.
http://www.badips.com/get/list/{{SERVICE}}/{{LEVEL}}
Nota:come me, puoi usufruire di tutti i servizi. Modifica il nome del servizio in "qualsiasi" in questo caso.
L'URL risultante è:
https://www.badips.com/get/list/any/3
Creiamo lo script
Va bene, una volta fatto, creeremo un semplice script.
- Metti la nostra lista in un file temporaneo.
- (solo una volta) crea una catena in iptables.
- Svuota tutti i dati collegati alla nostra catena (vecchie voci).
- Collegheremo ogni IP alla nostra nuova catena.
- Al termine, blocca tutti gli INPUT/OUTPUT/FORWARD collegati alla nostra catena.
- Rimuovi il nostro file temporaneo.
Ora creeremo lo script per questo:
cd /home/<user>/
vi myBlacklist.sh
Inserisci il seguente contenuto in quel file.
#!/bin/sh
# based on this version http://www.timokorthals.de/?p=334
# adapted by Stéphane T.
_ipt=/sbin/iptables # Location of iptables (might be correct)
_input=badips.db # Name of database (will be downloaded with this name)
_pub_if=eth0 # Device which is connected to the internet (ex. $ifconfig for that)
_droplist=droplist # Name of chain in iptables (Only change this if you have already a chain with this name)
_level=3 # Blog level: not so bad/false report (0) over confirmed bad (3) to quite aggressive (5) (see www.badips.com for that)
_service=any # Logged service (see www.badips.com for that)
# Get the bad IPs
wget -qO- http://www.badips.com/get/list/${_service}/$_level > $_input || { echo "$0: Unable to download ip list."; exit 1; }
### Setup our black list ###
# First flush it
$_ipt --flush $_droplist
# Create a new chain
# Decomment the next line on the first run
# $_ipt -N $_droplist
# Filter out comments and blank lines
# store each ip in $ip
for ip in `cat $_input`
do
# Append everything to $_droplist
$_ipt -A $_droplist -i ${_pub_if} -s $ip -j LOG --log-prefix "Drop Bad IP List "
$_ipt -A $_droplist -i ${_pub_if} -s $ip -j DROP
done
# Finally, insert or append our black list
$_ipt -I INPUT -j $_droplist
$_ipt -I OUTPUT -j $_droplist
$_ipt -I FORWARD -j $_droplist
# Delete your temp file
rm $_input
exit 0
Al termine, dovresti creare un cronjob che aggiornerà la nostra lista nera.
Per questo, ho usato crontab ed eseguo lo script ogni giorno alle 23:30 (poco prima del mio backup ritardato).
crontab -e
23 30 * * * /home/<user>/myBlacklist.sh #Block BAD IPS
Non dimenticare di modificare il tuo script:
chmod + x myBlacklist.sh
Ora che è fatto, il tuo server/computer dovrebbe essere un po' più sicuro.
Puoi anche eseguire lo script manualmente in questo modo:
cd /home/<user>/
./myBlacklist.sh
Dovrebbe volerci del tempo... quindi non rompere il copione. In effetti, il suo valore sta nelle ultime righe.
Segnala indirizzi IP a badIP con Fail2ban
Nella seconda parte di questo tutorial, ti mostrerò come segnalare gli indirizzi IP bd bach al sito Web badips.com utilizzando Fail2ban.
Fail2ban>=0.8.12
La segnalazione viene effettuata con Fail2ban. A seconda della tua versione di Fail2ban devi usare la prima o la seconda sezione di questo capitolo. Se hai fail2ban nella versione 0.8.12.
Se hai fail2ban versione 0.8.12 o successiva.
fail2ban-server --version
In ogni categoria che segnalerai, aggiungi semplicemente un'azione.
[ssh]
enabled = true
action = iptables-multiport
badips[category=ssh]
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry= 6
Come puoi vedere, la categoria è SSH, dai un'occhiata qui (https://www.badips.com/get/categories) per trovare la categoria corretta.
Fail2ban < 0.8.12
Se la versione è meno recente di 0.8.12, dovrai creare un'azione. Può essere scaricato qui: https://www.badips.com/asset/fail2ban/badips.conf.
wget https://www.badips.com/asset/fail2ban/badips.conf -O /etc/fail2ban/action.d/badips.conf
Con badips.conf dall'alto, puoi attivare per categoria come sopra o puoi abilitarlo a livello globale:
cd /etc/fail2ban/
vi jail.conf
[DEFAULT]
...
banaction = iptables-multiport
badips
Ora riavvia fail2ban:d'ora in poi dovrebbe iniziare a segnalare.
service fail2ban restart
Statistiche della tua segnalazione IP
Ultimo passaggio:non molto utile... Puoi creare una chiave.
Questa è utile se vuoi vedere i tuoi dati.
Copia/incolla semplicemente questo e apparirà una risposta JSON sul tuo console.
wget https://www.badips.com/get/key -qO -
{ "err":"", "suc":"new key 5f72253b673eb49fc64dd34439531b5cca05327f has been set.", "key":"5f72253b673eb49fc64dd34439531b5cca05327f" }
Quindi vai sul sito web di badips, inserisci la tua "chiave" e fai clic su "statistiche".
Eccoci qui... tutte le tue statistiche per categoria.