« LINUX:Script Lookup » : différence entre les versions

De WIKI sur Linux (ADB)
Aller à la navigation Aller à la recherche
(Page créée avec « =But= Exemple de script qui sur base d'un fichier contenant une liste d'adresses IP, on retourne dans un fichier tabulé, le pays d'origine et le nom de la machine si elle… »)
 
Aucun résumé des modifications
Ligne 1 : Ligne 1 :
__FORCETOC__
=But=
=But=
Exemple de script qui sur base d'un fichier contenant une liste d'adresses IP, on retourne dans un fichier tabulé, le pays d'origine et le nom de la machine si elle est référencée dans le DNS.
Exemple de script qui sur base d'un fichier contenant une liste d'adresses IP, on retourne dans un fichier tabulé, le pays d'origine et le nom de la machine si elle est référencée dans le DNS.

Version du 1 janvier 2021 à 15:55

But

Exemple de script qui sur base d'un fichier contenant une liste d'adresses IP, on retourne dans un fichier tabulé, le pays d'origine et le nom de la machine si elle est référencée dans le DNS. Pour ma part, le système me retourne des adresses IP qui tentent d'effectuer des opérations frauduleuses. On peut y repérer les pays les plus représentés et éventuellement adapter le mur de feu (FireWall). Par la même occasion, on peut corriger le tir.


Script

Ce script utilise la commande "nslookup" pour interroger le DNS et la commande "mmdblookup" pour retrouver le pays via la géolocalisation.

Contenu du script:


#!/bin/bash
cd /manager/ossec/iptables
# récupérer la liste des adresses IP
listeip=`/usr/bin/cat listeip.txt listeextra.txt`
/usr/bin/echo NSLOOKUP > ns.lis
# bouclage sur chaque adresse IP
for ip in $listeip
do
# IP
  IP=`/usr/bin/printf "%-15s" $ip`
# NsLookup
  /usr/bin/nslookup $ip > ns.tmp
  /usr/bin/sed -i '/^$/d' ns.tmp
  /usr/bin/grep -v "server can't find" ns.tmp | /usr/bin/grep -v Authoritative > ns1.tmp
  NSL=`/usr/bin/cat ns1.tmp | /usr/bin/awk '{printf("%s",$4)}'`
# GeoIP2
# code pays
  /usr/bin/mmdblookup --ip $ip --file /usr/share/GeoIP/GeoLite2-Country.mmdb country iso_code > ns21.tmp
  /usr/bin/sed -i '/^$/d' ns21.tmp
  /usr/bin/sed -i 's/<utf8_string>/ /g' ns21.tmp
  /usr/bin/sed -i 's/"/ /g' ns21.tmp
  NSG1=`/usr/bin/cat ns21.tmp | /usr/bin/awk '{printf("%s",$1)}'`
# nom du pays
  /usr/bin/mmdblookup --ip $ip --file /usr/share/GeoIP/GeoLite2-Country.mmdb country names fr > ns22.tmp
  /usr/bin/sed -i '/^$/d' ns22.tmp
  /usr/bin/sed -i 's/<utf8_string>/ /g' ns22.tmp
  /usr/bin/sed -i 's/"/ /g' ns22.tmp
  /usr/bin/sed -i 's/ /_/g' ns22.tmp
  /usr/bin/sed -i 's/__/=/g' ns22.tmp
  /usr/bin/sed -i 's/=_/ /g' ns22.tmp
  NSG2=`/usr/bin/cat ns22.tmp`
  /usr/bin/printf "%-25s" $NSG2 > ns23.tmp
  /usr/bin/sed -i 's/_/ /g' ns23.tmp
  NSG2=`/usr/bin/cat ns23.tmp`
# impression
  /usr/bin/echo -e "${IP}\t${NSG1}\t${NSG2}\t${NSL}" >> ns.lis
done
# tri par code pays
sort -k 2 ns.lis -o nss.lis
# nettoyage
/usr/bin/rm -f ns.tmp
/usr/bin/rm -f ns1.tmp
/usr/bin/rm -f ns21.tmp
/usr/bin/rm -f ns22.tmp
/usr/bin/rm -f ns23.tmp




->retour au menu de la Géolocalisation IP