GNU/Linux >> Linux Esercitazione >  >> Debian

Come proteggere il tuo server con badIPs.com e segnalare gli IP con Fail2ban su Debian

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.

  1. Metti la nostra lista in un file temporaneo.
  2. (solo una volta) crea una catena in iptables.
  3. Svuota tutti i dati collegati alla nostra catena (vecchie voci).
  4. Collegheremo ogni IP alla nostra nuova catena.
  5. Al termine, blocca tutti gli INPUT/OUTPUT/FORWARD collegati alla nostra catena.
  6. 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.


Debian
  1. Aumenta la tua sicurezza IPv4 con Fail2Ban e Tinyhoneypot su Debian Jessie

  2. Come installare il server FTP vsftpd e proteggerlo con TLS su Debian 11

  3. Come installare Spamassassin con Postfix e Dovecot su Ubuntu/Debian Server

  4. Come configurare un firewall con CSF su Debian 9

  5. Come proteggere Apache e SSH con Fail2Ban su CentOS 8

Come configurare server e client NTP su Debian 11

Come configurare LAMP con Debian 11

Come configurare bind con Debian 11

Come configurare Samba Server con Debian 11

Come installare Nginx con PHP-FPM su Debian 11

Come installare e abilitare il server SSH su Debian 10