GNU/Linux >> Tutoriels Linux >  >> Debian

Comment protéger votre serveur avec badIPs.com et signaler les IP avec Fail2ban sur Debian

Ce tutoriel documente le processus d'utilisation du traqueur d'abus badips en conjonction avec Fail2ban pour protéger votre serveur ou votre ordinateur. Je l'ai testé sur un système Debian 8 Jessie et Debian 7 Wheezy.

Qu'est-ce que les badIP ?

BadIps est une liste d'adresses IP signalées comme mauvaises en combinaison avec fail2ban.

Ce tutoriel contient deux parties, la première traitera de l'utilisation de la liste et la seconde traitera de l'injection de données.


Utiliser la liste des badIPs

Définissez votre niveau de sécurité et votre catégorie

Vous pouvez obtenir la liste d'adresses IP en utilisant simplement l'API REST.

Lorsque vous obtenez cette URL : https://www.badips.com/get/categories
Vous verrez toutes les différentes catégories présentes sur le service.

  • Deuxième étape, déterminez quel score est fait pour vous.
    Voici une citation de badips qui devrait vous aider (personnellement j'ai pris score =3) :
  • Si vous souhaitez compiler une statistique ou utiliser les données pour une expérience, etc., vous pouvez commencer par le score 0.
  • Si vous souhaitez protéger votre serveur privé ou votre site Web par un pare-feu, optez pour des scores à partir de 2. Peut-être combinés avec vos propres résultats, même s'ils n'ont pas un score supérieur à 0 ou 1.
  • Si vous êtes sur le point de protéger une boutique en ligne ou un serveur de commerce électronique à fort trafic et rémunérateur, nous vous recommandons d'utiliser des valeurs de 3 ou 4. Peut-être aussi bien combiné avec vos propres résultats (clé / synchronisation).
  • Si vous êtes paranoïaque, prenez-en 5.

Alors maintenant que vous obtenez vos deux variables, faisons votre lien en les concaténant et récupérons votre lien.

http://www.badips.com/get/list/{{SERVICE}}/{{LEVEL}}

Remarque :Comme moi, vous pouvez prendre tous les services. Remplacez le nom du service par "tout" dans ce cas.

L'URL résultante est :

https://www.badips.com/get/list/any/3

Créons le script

D'accord, quand ce sera fait, nous créerons un script simple.

  1. Mettre notre liste dans un fichier temporaire.
  2. (une seule fois) créer une chaîne dans iptables.
  3. Fermer toutes les données liées à notre chaîne (anciennes entrées).
  4. Nous lierons chaque IP à notre nouvelle chaîne.
  5. Quand c'est fait, bloquez toutes les INPUT / OUTPUT / FORWARD qui sont liées à notre chaîne.
  6. Supprimez notre fichier temporaire.

Nous allons maintenant créer le script pour cela :

cd /home/<user>/
vi myBlacklist.sh

Entrez le contenu suivant dans ce fichier.

#!/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

Lorsque cela est fait, vous devez créer un cronjob qui mettra à jour notre liste noire.

Pour cela, j'ai utilisé crontab et je lance le script tous les jours à 23h30 (juste avant ma sauvegarde différée).

crontab -e
23 30 * * * /home/<user>/myBlacklist.sh #Block BAD IPS

N'oubliez pas de modifier votre script :

chmod + x myBlacklist.sh

Maintenant que c'est fait, votre serveur/ordinateur devrait être un peu plus sûr.

Vous pouvez également exécuter le script manuellement comme ceci :

cd /home/<user>/
./myBlacklist.sh

Cela devrait prendre un certain temps… alors ne cassez pas le script. En fait, sa valeur réside dans les dernières lignes.

Signaler les adresses IP aux badIPs avec Fail2ban

Dans la deuxième partie de ce tutoriel, je vais vous montrer comment signaler des adresses IP bd au site Web badips.com en utilisant Fail2ban.

Fail2ban>=0.8.12

Le signalement est fait avec Fail2ban. Selon votre version de Fail2ban, vous devez utiliser la première ou la deuxième section de ce chapitre.Si vous avez fail2ban dans la version 0.8.12.

Si vous avez fail2ban version 0.8.12 ou ultérieure.

fail2ban-server --version

Dans chaque catégorie que vous signalerez, ajoutez simplement une action.

[ssh]
enabled = true
action = iptables-multiport
badips[category=ssh]
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry= 6

Comme vous pouvez le voir, la catégorie est SSH, jetez un œil ici (https://www.badips.com/get/categories) pour trouver la bonne catégorie.

Fail2ban < 0.8.12

Si la version est moins récente que la 0.8.12, vous aurez un pour créer une action. Ceci peut être téléchargé ici : https://www.badips.com/asset/fail2ban/badips.conf.

wget https://www.badips.com/asset/fail2ban/badips.conf -O /etc/fail2ban/action.d/badips.conf

Avec le badips.conf ci-dessus, vous pouvez soit l'activer par catégorie comme ci-dessus, soit l'activer globalement :

cd /etc/fail2ban/
vi jail.conf
[DEFAULT]

...

banaction = iptables-multiport
badips

Redémarrez maintenant fail2ban - il devrait commencer à générer des rapports à partir de maintenant.

service fail2ban restart

Statistiques de vos rapports IP


Dernière étape – pas vraiment utile… Vous pouvez créer une clé.
Celle-ci est utile si vous voulez voir vos données.
Il vous suffit de copier/coller ceci et une réponse JSON apparaîtra sur votre console.

wget https://www.badips.com/get/key -qO -
{
  "err":"",
  "suc":"new key 5f72253b673eb49fc64dd34439531b5cca05327f has been set.",
  "key":"5f72253b673eb49fc64dd34439531b5cca05327f"
}

Ensuite, rendez-vous sur le site Web de badips, entrez votre "clé" et cliquez sur "statistiques".

C'est parti… toutes vos statistiques par catégorie.


Debian
  1. Augmentez votre sécurité IPv4 avec Fail2Ban et Tinyhoneypot sur Debian Jessie

  2. Comment installer le serveur FTP vsftpd et le sécuriser avec TLS sur Debian 11

  3. Comment installer Spamassassin avec Postfix et Dovecot sur Ubuntu/Debian Server

  4. Comment configurer un pare-feu avec CSF sur Debian 9

  5. Comment protéger Apache et SSH avec Fail2Ban sur CentOS 8

Comment configurer le serveur et le client NTP sur Debian 11

Comment configurer LAMP avec Debian 11

Comment configurer la liaison avec Debian 11

Comment configurer le serveur Samba avec Debian 11

Comment installer Nginx avec PHP-FPM sur Debian 11

Comment installer et activer le serveur SSH sur Debian 10