Advertisement
Guest User

Untitled

a guest
Nov 18th, 2019
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.07 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. #miniban.sh - ser ettter system authorisation events relating to SSH og
  4. #failed passwords
  5. ###############################
  6.  
  7. LOGFILE=/var/log/auth.log #filen vi skal overvåke
  8. IPFILE=ip.log #filen vi skal lagre IP'ene i
  9.  
  10. #tømmer IP-filen når scriptet starter, så vi starter med tom hver gang:
  11. cp /dev/null ${IPFILE}
  12.  
  13. #definere array
  14. declare -A ips
  15.  
  16. #For hver linje i LOGFILE, extract de angripende IP adressene
  17. tail -n0 -F ${LOGFILE} | \ #kontiunerlig overvåking
  18. while read LINE
  19. do
  20.  
  21. echo $LINE | grep "Failed password" | awk -F" from " '{print $2}' | awk '{print $1}' >> ${IPFILE}
  22.  
  23. IP=$(sort ${IPFILE} | uniq -c | awk '{print $2}') #ip adressen
  24. ANTALL=$(sort ${IPFILE} | uniq -c | awk '{print $1}') #antallforsøk
  25.  
  26. #istedet for det vi gjorde tidligere, lagre IP'en associative array
  27. #hver gang vi finner en ip med feil, øke antall forsøk i arrayen
  28.  
  29. ips[$IP]=$(( ANTALL ))
  30. #om det oppfyller krav kjør
  31. #./ban.sh
  32.  
  33. if [ ${ips[$IP]} -ge 3]; then
  34. echo "Blocking IP: $IP"
  35. ips[$IP]=0
  36. #ban IP:
  37. #./ban.sh
  38. fi
  39.  
  40. done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement