Différences entre les versions de « Port en écoute »
De BlaxWiki
Aller à la navigationAller à la recherche (Page créée avec « #!/bin/bash # Version 2 # Validation ETH rsyslog # Dimitri L cd /opt/agarik/ #Création des listeners temporaires netstat -an | grep -E '^tcp\s.*LISTEN' | awk '{print... ») |
|||
| Ligne 1 : | Ligne 1 : | ||
Ce script sert à vérifier si les nouveaux ports en écoutent correspondent à un service qui s'est relancé avec des ports aléatoires (genre tomcat, syslog), ou si il s'agit d'un nouveau process qui a ouvert | |||
de nouveau port | |||
<pre> | |||
#!/bin/bash | #!/bin/bash | ||
# Version 2 | # Version 2 | ||
| Ligne 71 : | Ligne 76 : | ||
rm -f /tmp/nbr_ligne_ancien /tmp/nbr_ligne_new /tmp/listener- /tmp/listener /tmp/resultat /tmp/resultat1 /tmp/fin | rm -f /tmp/nbr_ligne_ancien /tmp/nbr_ligne_new /tmp/listener- /tmp/listener /tmp/resultat /tmp/resultat1 /tmp/fin | ||
</pre> | |||
[[Catégorie:Script]] | [[Catégorie:Script]] | ||
Version du 16 septembre 2019 à 15:42
Ce script sert à vérifier si les nouveaux ports en écoutent correspondent à un service qui s'est relancé avec des ports aléatoires (genre tomcat, syslog), ou si il s'agit d'un nouveau process qui a ouvert de nouveau port
#!/bin/bash
# Version 2
# Validation ETH rsyslog
# Dimitri L
cd /opt/agarik/
#Création des listeners temporaires
netstat -an | grep -E '^tcp\s.*LISTEN' | awk '{print $1" "$4}'>/tmp/listener
netstat -an | grep -E '^udp\s' | grep -v '[A-Z]' | awk '{print $1" "$4}'>>/tmp/listener
netstat -an | grep -E '^unix.*LISTEN' | awk '{print $1" "$9}' | grep -v '^unix @'>>/tmp/listener
cp /var/vision_client/data/system/listener.lst /tmp/listener-
#Vérification de la présence du fichier listener.lst
if [ ! -e /var/vision_client/data/system/listener.lst ]
then
echo "Le fichier listener.lst n'existe pas."
rm -f /tmp/listener /tmp/listener-
exit
fi
#Vérification du nombre de ligne
wc -l /tmp/listener- | cut -c -2 > /tmp/nbr_ligne_ancien
wc -l /tmp/listener | cut -c -2 > /tmp/nbr_ligne_new
fichier1=$(cat /tmp/nbr_ligne_ancien)
fichier2=$(cat /tmp/nbr_ligne_new)
if [ $fichier1 != $fichier2 ]
then
echo "Le nombre de ligne de correspond pas."
exit
fi
#Verification des ports
nbr_=$(awk 'NR==FNR {t[$0]++; next} !t[$0]' /tmp/listener- /tmp/listener > /tmp/resultat)
nbr=$(cat /tmp/resultat)
cut -d':' -f2 /tmp/resultat > /tmp/resultat1
while read line
do netstat -paunt | grep "$line" |grep ^'udp' | grep -E "\:$line[[:space:]]"| awk '{print $6}' | cut -d'/' -f2
done < /tmp/resultat1 > /tmp/fin
if [ "$(cat /tmp/fin)" != '' ]
then
valider=oui
while read line
do
if [ "${line}" != 'rsyslogd' ]
then
echo "Un port non lié à Rsyslog a été trouvé. Pas de validation."
valider=non
exit
fi
done < /tmp/fin
#Validation du test de supervision
if [ "$valider" = 'oui' ]
then
echo "Validation de l'alerte ETH."
rm -f /var/vision_client/data/system/listener.lst
else
echo "Il n'y a rien à valider."
fi
else
echo "Il n'y a rien à valider."
fi
#Supression des fichiers temporaires
rm -f /tmp/nbr_ligne_ancien /tmp/nbr_ligne_new /tmp/listener- /tmp/listener /tmp/resultat /tmp/resultat1 /tmp/fin