Created
September 14, 2021 14:00
-
-
Save kikislater/209144fc8180ed7bfbe6925a9d767c50 to your computer and use it in GitHub Desktop.
blocklistde.sh
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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