fork download
  1. #!/bin/bash
  2. #
  3. clear;
  4. # Kollar om användaren är Admin
  5. if ["$=(whoami)" != 'root']; then
  6. echo "Du måste va root";
  7. exit 1;
  8. fi
  9.  
  10. # Basic Config variablar
  11. AccessLog = "/usr/local/apache/logs/access_log";
  12. whiteList = "~/.whiteList_log";
  13. syn_limit = "10";
  14.  
  15. _SYNFlood(){
  16. _Exit;
  17. # Kollar hur många öppna SYN anslutningar som är öppna
  18. syn=$(netstat -nap | grep SYN | wc -l)
  19. if [$syn -gt $syn_limit]; then
  20. echo -e "Möjlig Synflood attack";
  21. fi
  22.  
  23. # Så länge antalet SYN anslutningar per ip
  24. # överstiger deklarerat värde så
  25. # blockeras EN ny ipadress för varje loop
  26. while [$syn -gt $syn_limit]
  27. do
  28. # Returerar IP'n med flest öppna SYN anslutningar
  29. IP=$(netstat -ntu | awk '{print $1}' | cut -d: -f1 | sort | uniq -c | sort -n);
  30. # kollar om IP'n är trusted (whitelistad)
  31. if [!grep $IP $whiteList]; then
  32. # anropar funktionen block() med en parameter (ip address),
  33. _Block $IP;
  34. fi
  35. done
  36.  
  37. }
  38.  
  39. _HTTPFlood(){
  40. _Exit;
  41. }
  42.  
  43. _ICMPFlood(){
  44. _Exit;
  45.  
  46. }
  47. # funktion som blockar en ip address med null route metoden, minst resource
  48. # åtgång när man behöver det som mäst =).
  49. #
  50. # Eftersom iptables använder sig av threads och cpu kraft
  51. # för att hantera alla requests, så kan en flaskhals uppstå vilket kan leda till
  52. # en total server krash om Botnet(et) är tillräckligt stort.
  53. _Block(){
  54. route add $1 reject;
  55. }
  56. _Exit(){
  57. if [$1 -eq q]; then
  58. exit 1;
  59. fi
  60. }
  61. echo -e "DefaceIT v1.0";
  62. echo -e "Gymnasie arbete 2015 - Dennis Mårtenson";
  63. echo -e "Skydd mot 3 vanliga Ddos attack vecktorer och attack typer";
  64. echo -e "(1). SYNflood - lager 4 OSI modellen";
  65. echo -e "(2). HTTP GET - lager 7 OSI modellen";
  66. echo -e "(3). UDP - lager 3 OSI modellen";
  67. echo -e "(4). Avsluta";
  68. echo -e "Välj metod: ";
  69. read metod;
  70. case "$metod" in
  71. 1) echo -e "aktiverar Anti-SYN Flood";
  72. sleep 3;
  73. _SYNFlood
  74. ;;
  75. 2) echo -e "aktiverar Anti-HTTP Flood";
  76. sleep 3;
  77. _HTTPFlood;
  78. ;;
  79. 3) echo -e "aktiverar Anti-UDP Flood";
  80. sleep 3;
  81. _ICMPFlood;
  82. ;;
  83. 4) echo -e "Avslutar";
  84. _SYNFlood "q";
  85. sleep 1;
  86. _HTTPFlood "q";
  87. sleep 1;
  88. _ICMPFlood "q";
  89. sleep 1;
  90. exit 1;
  91. ;;
  92. esac
Success #stdin #stdout #stderr 0.01s 5288KB
stdin
Standard input is empty
stdout
DefaceIT v1.0
Gymnasie arbete 2015 - Dennis Mårtenson
Skydd mot 3 vanliga Ddos attack vecktorer och attack typer
(1). SYNflood  - lager 4 OSI modellen
(2). HTTP GET  - lager 7 OSI modellen
(3). UDP - lager 3 OSI modellen
(4). Avsluta
Välj metod: 
stderr
TERM environment variable not set.
./prog.sh: line 5: [$=(whoami): command not found
./prog.sh: line 11: AccessLog: command not found
./prog.sh: line 12: whiteList: command not found
./prog.sh: line 13: syn_limit: command not found