[Script Shell] Afficher les tentatives d'intrusion ssh chaque jour

Afficher les tentatives d'intrusion ssh chaque jour [Script Shell] - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 27-06-2005 à 18:04:58    

Bonjour,
 
j'aimerai faire un script shell qui, exécuté chaque soir, me permette d'envoyer un email contenant la liste des attaques tentées sur sshd dans la journée. Pour cela, je veux lire le fichier /var/log/auth.log de cette façon :
 

cat /var/log/auth.log | grep "authentication failure"


 
mais j'aimerai en fait avoir ceci (exemple pour aujourd'hui) :
 

cat /var/log/auth.log | grep "authentication failure" | grep "Jun 27"


 
alors je pensais me servir de date : qui renvoie 'jun 27', en minuscules
 

date +"%b %d"


 
ma question est : comment stocker dans une variable le résultat de date
ainsi tapé pour ensuite appeler la commande cat / grep idoine ? j'ai bien trouvé
pas mal de doc sur les variables script/shell mais pas d'exemples avec stockage
du résultat d'une commande.
 
Merci pour vos indications :)

Reply

Marsh Posté le 27-06-2005 à 18:04:58   

Reply

Marsh Posté le 27-06-2005 à 18:06:24    

en bash ca doit donenr quelque chose comme ca:

la_date=`date`


Message édité par l0ky le 27-06-2005 à 18:06:32
Reply

Marsh Posté le 27-06-2005 à 18:09:02    

ben non dans ce cas le contenu de la variable est 'date' et non 'jun 27' :(

Reply

Marsh Posté le 27-06-2005 à 18:09:57    

nan mais tu mets des "antiquote" ALTGR+7

Reply

Marsh Posté le 27-06-2005 à 18:11:37    

ah ok pas mal !!
j'avais pas remarqué cette subtilité dans toutes les docs que j'avais lues :D
merci :)

Reply

Marsh Posté le 27-06-2005 à 21:10:01    

utilise $() à la place de ``. :)


---------------
Le droit à la différence s'arrête là où ça commence à m'emmerder sérieusement.
Reply

Marsh Posté le 28-06-2005 à 04:49:20    

Un petit bout script tout droit repiqué d'un linux magazine.
A toi de l'adapter suivant tes exigences.
 

Code :
  1. #! /bin/bash
  2. clear
  3. #petite astuce sympa pour éviter d'avoir des fichiers temporaires trop bavards!
  4. umask 077
  5. TEMPFILE=`mktemp /tmp/server_check.tmp.XXXXXXXX`
  6. trap "/bin/rm -f $TEMPFILE" EXIT
  7. #Stockage de la variable date dans DATUM
  8. DATUM=`date +'%b %e'`
  9. #On recherche les occurrences FAILED et root dans le /var/log/messages
  10. #à adapter suivant l'os et le type d'enregistrement des logs
  11. cat /var/log/messages | grep "$DATUM" | grep "FAILED" | grep "root" > $TEMPFILE
  12. FAILED_ROOT=`cat $TEMPFILE | wc -l`
  13. if [ $FAILED_ROOT -ge 10 ] ; then
  14.         #si il y a plus de 10 tentatives de logging root ratées, on peut s'affoler
  15.  echo "### WARNING: Discovered $FAILED_ROOT failed ROOT loging! ###"
  16.  cat $TEMPFILE
  17. elif [ $FAILED_ROOT -ge 1 ] ; then
  18.         #si il y en a qu'une, on s'inquiète un peu
  19.  echo "- Discovered $FAILED_ROOT failed ROOT loging:"
  20.  cat $TEMPFILE
  21. else
  22.         #sinon rien à signaler
  23.  echo "- No suspicious root logging found"
  24. fi
  25. #vidange du fichier temporaire,
  26. #droit d'auteur et sortie en beauté
  27. rm $TEMPFILE
  28. echo
  29. echo "
  30. <Sample script for monitoring linux server>
  31. Initial sample script by Heinle Peer, Linux Magazine - December 2004
  32. Adapted by budo-ka - 2004"
  33. echo
  34. exit 0


 
En espérant ne pas t'avoir trop maché le travail, tout comme on l'avait fait pour moi :)


Message édité par budo-ka le 28-06-2005 à 05:02:37
Reply

Marsh Posté le 28-06-2005 à 08:05:00    

wow :D merci pour cet exemple :)
je vais regarder de près comment il marche et l'adapter.
Bonne journée !

Reply

Marsh Posté le 28-06-2005 à 09:29:16    

Salut,
 
Il faudrait que tu rajoutes quand meme une regle du style :
"Illegal user **** from"
 
C'est ce que me renvoie principalement logcheck.
++


Message édité par trakto le 28-06-2005 à 11:10:17
Reply

Marsh Posté le 28-06-2005 à 16:33:51    

regarde du coté de logcheck :D


---------------
Fais le ou ne le fais pas, mais il n'y a pas d'essai !!!
Reply

Marsh Posté le 28-06-2005 à 16:33:51   

Reply

Marsh Posté le 28-06-2005 à 17:29:00    

Logwatch fait ca tres bien aussi :whistle:

Reply

Marsh Posté le 28-06-2005 à 19:57:31    

J'ai un peu regardé logcheck et compagnie, mais je préfère mon tit script qui me fait un rapport journalier des attaques sur les services sshd/vsftpd/apache :
 
Pour les intéressés : voili mon script :
 

Code :
  1. #!/bin/bash
  2. aujourdhui=`date +"%b %d"`
  3. touch /var/log/vsftpd.log
  4. touch /var/log/auth.log
  5. touch /var/log/apache/error.log
  6. echo "Rapport d'intrusions détectées du $aujourdhui" > framed.txt
  7. echo "----------------------------------------" >> framed.txt
  8. echo "" >> framed.txt
  9. echo ".:: VSFTPD [port 21] ::." >> framed.txt
  10. cat /var/log/vsftpd.log | grep "FAIL" | grep -i "$aujourdhui" >> framed.txt
  11. echo "" >> framed.txt
  12. echo ".:: SSHD [port 22] ::." >> framed.txt
  13. cat /var/log/auth.log | grep "sshd" | grep "Failed" | grep -i "$aujourdhui" >> framed.txt
  14. cat /var/log/auth.log | grep "sshd" | grep "Excess" | grep -i "$aujourdhui" >> framed.txt
  15. cat /var/log/auth.log | grep "sshd" | grep "Invalid" | grep -i "$aujourdhui" >> framed.txt
  16. cat /var/log/auth.log | grep "sshd" | grep "failure" | grep -i "$aujourdhui" >> framed.txt
  17. echo "" >> framed.txt
  18. echo ".:: HTTPD [port 80] ::." >> framed.txt
  19. cat /var/log/apache/error.log | grep "error" | grep -i "$aujourdhui" >> framed.txt
  20. echo "" >> framed.txt
  21. echo "---------------" >> framed.txt
  22. echo "Fin du rapport." >> framed.txt
  23. cat framed.txt | mailx -s "[xxx] Bulletin de securite" monemail@monprovider
  24. rm framed.txt
  25. exit 0


Message édité par ceyquem le 28-06-2005 à 19:58:22
Reply

Marsh Posté le 28-06-2005 à 20:18:52    

Une question, à quoi servent les touch au début :??:
 
Tu devrais mettre ton framed.txt dans /tmp/ ca évitera d'avoir un vieux fichiers qui traine on ne sait trop ou ;)

Reply

Marsh Posté le 28-06-2005 à 20:53:37    

le touch c'est à cause de logrotate : il se peut que l'un des fichiers de log n'existe pas, avec touch je suis sur qu'il n'y aura pas d'erreur.
 
pour le /tmp/ ouais, c'est vrai :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed