Skip to content

Instantly share code, notes, and snippets.

@kikislater
Created September 14, 2021 14:00
Show Gist options
  • Save kikislater/209144fc8180ed7bfbe6925a9d767c50 to your computer and use it in GitHub Desktop.
Save kikislater/209144fc8180ed7bfbe6925a9d767c50 to your computer and use it in GitHub Desktop.
blocklistde.sh
#!/bin/bash
##############################################
# Download du fichier IP de BlockList.de : #
##############################################
# Vérifie que l'on est en Root
if [[ $EUID -ne 0 ]];
then
echo "Ce script doit être exécuté avec les privilèges administrateur"
exit 1
fi
BLOCKLIST_FILE_URL="https://lists.blocklist.de/lists/all.txt"
BLOCKLIST_HASH_URL="https://lists.blocklist.de/lists/all.txt.md5"
BLOCKLIST_FILE_TMP="/opt/blocklist/blocklistde-all.txt.tmp"
BLOCKLIST_HASH_TMP="/opt/blocklist/blocklistde-all.txt.md5.tmp"
BLOCKLIST_FILE="/opt/blocklist/blocklistde-all.txt"
BLOCKLIST_HASH="/opt/blocklist/blocklistde-all.txt.md5"
# On télécharge la liste de toutes les IP bannies pour SSH (ssh.txt) par BlockList.de
wget --quiet $BLOCKLIST_FILE_URL -O $BLOCKLIST_FILE_TMP
wget --quiet $BLOCKLIST_HASH_URL -O $BLOCKLIST_HASH_TMP
# On vérifie que le fichier TMP existe et a donc bien été téléchargé
if [ -f $BLOCKLIST_FILE_TMP ]
then
# On vérifie le hash MD5
if ! echo "$(cat $BLOCKLIST_HASH_TMP) $BLOCKLIST_FILE_TMP" | md5sum --status --check
then
# Si le hash ne correspond pas, on supprime les fichiers TMP et on sort avec une erreur
rm $BLOCKLIST_FILE_TMP
rm $BLOCKLIST_HASH_TMP
exit 1
else
# Si le hash est OK, on écrase les anciens fichiers par les nouveaux
mv $BLOCKLIST_FILE_TMP $BLOCKLIST_FILE
mv $BLOCKLIST_HASH_TMP $BLOCKLIST_HASH
fi
fi
# Flush de la chain BlockList.de pour éviter les doublons au moment de la mise-à-jour.
iptables -F blocklistde > /dev/null
# Ajoute de la chaine au cas où elle n'existerait pas (première initialisation ou panne courant lors de iptables-save)
iptables -N blocklistde
iptables -A INPUT -j blocklistde
while read ip
do
iptables -A blocklistde -s $ip -j DROP > /dev/null
done < /opt/blocklist/blocklistde-all.txt
# Nettoyage des doublons
iptables-save | uniq | iptables-restore
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment