Le but
Lancer un script BASH permettant de récupérer une liste d’IP Botnet malveillant une fois par jour via crontab , afin de les ajouter à vos règles firewall.
Création du répertoire Projet
[root@XXXXXXXX chris]# mkdir Ban_BotNet [root@XXXXXXXX chris]# # cd Ban_BotNet
Installation Dos2unix
[root@XXXXXXXX Ban_BotNet]# yum install dos2unix
Le Script
#!/bin/bash
APP_LOG=BanBotnet.log
APP_HOME=/home/chris/Ban_BotNet
URL_BOT=https://feodotracker.abuse.ch/downloads/ipblocklist_recommended.txt
CE_JOUR=`date +%F`
echo "-------------------------------------------"
echo " Suppression des fichiers périmés J-1 "
echo "-------------------------------------------"
echo ""
if [[ -f $APP_HOME/ipblocklist_recommended-1.txt ]]
then
echo "On efface le fichier d'hier..."
rm -f $APP_HOME/ipblocklist_recommended-1.txt
fi
if [[ -f $APP_HOME/ipblocklist_recommended.txt ]]
then
echo "On efface le fichier d'hier..."
rm -f $APP_HOME/ipblocklist_recommended.txt
fi
if [[ -f $APP_HOME/ip_firewall_block.txt ]]
then
echo "On efface le fichier d'hier..."
rm -f $APP_HOME/ip_firewall_block.txt
fi
echo "-------------------------------------------"
echo "On récupère le fichier des BOTNET du jour "
echo "-------------------------------------------"
echo ""
wget -O - https://feodotracker.abuse.ch/downloads/ipblocklist_recommended.txt |grep -v "#" >> $APP_HOME/ipblocklist_recommended.txt
touch $APP_HOME/ipblocklist_recommended-1.txt
dos2unix -850 -n $APP_HOME/ipblocklist_recommended.txt $APP_HOME/ipblocklist_recommended-1.txt
echo "-------------------------------------------"
echo "On récupère la liste des IP déjà bloquées "
echo "-------------------------------------------"
echo ""
firewall-cmd --list-all >> $APP_HOME/ip_firewall_block.txt
## Traitement des IP à Bannir
for IP in `cat $APP_HOME/ipblocklist_recommended-1.txt`
do
## Verifie si Déja Bloqué
FIRE=`cat $APP_HOME/ip_firewall_block.txt |grep $IP |wc -l`
if [[ $FIRE != 0 ]]
then
echo "-----------------------------------------------------------------"
echo "Cette IP : $IP est déjà bloquée dans le Firewall"
echo "-----------------------------------------------------------------"
echo "$CE_JOUR : $IP est déjà bloquée dans le Firewall" >> $APP_HOME/$APP_LOG
else
echo "-----------------------------------------------------------------"
echo " Mise en Reject de l'IP : $IP dans le Firewall"
echo "-----------------------------------------------------------------"
firewall-cmd --add-rich-rule='rule family=ipv4 source address='$IP' reject' --permanent
echo "$CE_JOUR : $IP ajouter dans le Firewall" >> $APP_HOME/$APP_LOG
echo ""
fi
done
echo "------------------------------------------------------------"
echo "Application des nouvelles règles de Blocage sur le Firewall "
echo "------------------------------------------------------------"
echo ""
firewall-cmd --reload
Lancement du Script
[root@ XXXXXXXX Ban_BotNet]# ./Bannir_Botnet.sh
Lancement du script et récupération des prérequis pour le traitement des IP à Bannir
Lancement des bannissements des IP s’ils ne sont pas présente dans le Firewall.
Application des nouveaux bannissements dans les « Rules » du firewall.
[root@XXXXXXXX Ban_BotNet]# firewall-cmd --list-all
IP des BotNet bloquées par votre Firewall.
Dans le log de notre Script
[root@XXXXXXXX Ban_BotNet]# cat BanBotnet.log
Il vous reste à présent , de positionner votre script dans un crontab tous les matins à 6H00
Views: 28