Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1271 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

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

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°698915
ceyquem
E falso sequitur quodlibet
Posté le 27-06-2005 à 18:04:58  profilanswer
 

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 :)

mood
Publicité
Posté le 27-06-2005 à 18:04:58  profilanswer
 

n°698919
l0ky
Posté le 27-06-2005 à 18:06:24  profilanswer
 

en bash ca doit donenr quelque chose comme ca:

la_date=`date`


Message édité par l0ky le 27-06-2005 à 18:06:32
n°698922
ceyquem
E falso sequitur quodlibet
Posté le 27-06-2005 à 18:09:02  profilanswer
 

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

n°698925
l0ky
Posté le 27-06-2005 à 18:09:57  profilanswer
 

nan mais tu mets des "antiquote" ALTGR+7

n°698930
ceyquem
E falso sequitur quodlibet
Posté le 27-06-2005 à 18:11:37  profilanswer
 

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

n°699021
Zaib3k
Posté le 27-06-2005 à 21:10:01  profilanswer
 

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


---------------
Le droit à la différence s'arrête là où ça commence à m'emmerder sérieusement.
n°699149
budo-ka
Posté le 28-06-2005 à 04:49:20  profilanswer
 

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
n°699151
ceyquem
E falso sequitur quodlibet
Posté le 28-06-2005 à 08:05:00  profilanswer
 

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

n°699185
trakto
Posté le 28-06-2005 à 09:29:16  profilanswer
 

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
n°699473
Klaimant
?
Posté le 28-06-2005 à 16:33:51  profilanswer
 

regarde du coté de logcheck :D


---------------
Fais le ou ne le fais pas, mais il n'y a pas d'essai !!!
mood
Publicité
Posté le 28-06-2005 à 16:33:51  profilanswer
 

n°699517
e_esprit
Posté le 28-06-2005 à 17:29:00  profilanswer
 

Logwatch fait ca tres bien aussi :whistle:

n°699614
ceyquem
E falso sequitur quodlibet
Posté le 28-06-2005 à 19:57:31  profilanswer
 

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
n°699630
M300A
Posté le 28-06-2005 à 20:18:52  profilanswer
 

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 ;)

n°699638
ceyquem
E falso sequitur quodlibet
Posté le 28-06-2005 à 20:53:37  profilanswer
 

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 :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

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

 

Sujets relatifs
Problème mise à jour MySQL[debian] mise a jour
lancer un script depuis serveurlancer un script depuis serveur
Alsa ne fonctionne plus depuis mise à jour FedoraScript Unix
[KDE 3.4] afficher les icones des fenêtres dans la barre des tâches[bash] Retirer des droits d'un user chrooté root de sa prison ?
FTP script[Debian] Après une mise à jour, gnome-panel à disparue !
Plus de sujets relatifs à : [Script Shell] Afficher les tentatives d'intrusion ssh chaque jour


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR