MODOP – Bloquer les IP Botnet malveillant

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

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *