Intro :
Il se trouve que j'ai des attaques provenant d'hôtes spécifiques dont j'ai décidé de bloquer l'accès au serveur. Voici comment je l'ai fait en utilisant un script qui supprime et recharge une CHAINE iptables complète basée sur un fichier contenant une liste d'IP/Plages.
ÉTAPES :
Créez un fichier appelé blacklist.txt avec une IP/Range par ligne dans le même répertoire que le script.
ex.
ex.
code>14.141.107.206
23.180. 0.0/14
37.59.34.120
46.140.157.157
46.218.35.59
47.74.0.40
51.15.56.170
59.62.0.0/15
59.63.188.3
61.177.172.60
Script à exécuter au démarrage#!/bin/bash
# Petit pare-feu protégeant rpcbind (port 111)
scriptdir=$(dirname $(readlink -f $0))
blacklist="$scriptdir/blacklist.txt"
# Charger les listes noires
HOSTS="$(cat $blacklist | egrep -v '^$|#')"
# Supprimer la chaîne personnalisée existante
/sbin/iptables --flush BLACKLIST
/sbin/iptables -X BLACKLIST
/sbin/iptables -t filter -D INPUT -j BLACKLIST
# Créez la chaîne BLACKLIST et sautez
/sbin/iptables -N BLACKLIST
/sbin/iptables -t filter -I INPUT -j BLACKLIST
# Remplissez la chaîne BLACKLIST avec liste des hôtes rejetés
pour l'hôte dans $HOSTS; do
/sbin/iptables -A BLACKLIST -s $host -p tcp -j DROP
done
# Retour de la liste noire
/sbin/iptables -A BLACKLIST -j RETURN
#eof
Remarque : iptables se plaindra avec les erreurs suivantes. Ne vous inquiétez pas, il fera toujours le bon travail.iptables :trop de liens.
iptables :la chaîne existe déjà.