Ddos

3,896 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,896
On SlideShare
0
From Embeds
0
Number of Embeds
2,487
Actions
Shares
0
Downloads
79
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Ddos

  1. 1. DDoS: Практическоеруководствоквыживанию<br />ЛяминАлександр<br />
  2. 2. ЭкономикаDDoS:<br /><ul><li>Доступность - высокая
  3. 3. Cтоимость арендыботнета – низкая
  4. 4. Эффективность - высокая</li></li></ul><li>Смотрим врагу в лицо<br />
  5. 5. Cвойства ботнета:<br /><ul><li>конечность/самосохраняемость
  6. 6. жадность
  7. 7. инертность
  8. 8. ущербность
  9. 9. транснациональность</li></li></ul><li>DDoS - онпришел…<br />Не паникуем<br />Удаляемhttp серверизавтостарта<br />Что в top?<br />Интересные сообщениевdmesg<br />Содержимое netstat<br />Анализируем access. Log<br />
  10. 10. Инструментарий<br />Linux 2.6<br />iptables<br />ipset<br />nginx<br />
  11. 11. HTTP Flood.Frontend<br />Минимизируемразмерыбуферов<br />large_client_header_buffers<br />client_header_buffer_size<br />client_body_buffer_size<br />client_max_body_size<br />Минимизируеможиданиеклиента<br />reset_timedout_connection on;<br />client_header_timeout<br />client_body_timeout<br />keepalive_timeout<br />send_timeout<br />
  12. 12. HTTP Flood.Frontend<br />Иожидаемпопавшихсяботовна default vhost<br />      server {<br />                listen          80;<br />                server_name  noname;                <br />                return 444;<br />        }<br />Ограничиваемколичествоодновременныхсоединенийсодногоip<br />limit_zoneconlim $binary_remote_addrXXm;<br />limit_connconlim  XX;<br />
  13. 13. HTTP Flood.Backend<br />Бюджетированиенагрузкинаскриптовыйбэкендчерез<br />limit_req_zone $binary_remote_addr  zone=qulim:Xm  rate=Yr/s;<br />limit_req zone=qulim burst=Z;<br />
  14. 14. HTTP Flood.Отфильтровать в один запрос<br />log_format  $http_accept $http_accept_language $http_accept_encoding;<br />+<br />grep  --line-buffered<br />= <br />tail -f /var/log/nginx/myserver.access_log  | <br />grep --line-buffered <br />-F &apos;*/* en-us -&apos; | <br />grep  --line-buffered -oE &quot;BOINK [0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3} &quot; | sed -u &quot;s/^BOINK//&quot; | xargs -n1 ipset -A myserv<br />ивариациинатемуизmyserv.error_logпоключевомуслову limiting<br />
  15. 15. HTTP Flood.Когофильтроватьненужно<br />Вашисобственныеajaxскрипты (вставляемзаголовки-маркеры)<br />Полезныхботов, напримерпоисковики:<br /><ul><li> 77.88.0.0/18 Yandex
  16. 16. 87.250.224.0/19 Yandex
  17. 17. 93.158.128.0/18 Yandex
  18. 18. 213.180.192.0/19 Yandex
  19. 19. 95.108.128.0/17 Yandex
  20. 20. 65.52.0.0/14 Microsoft
  21. 21. 209.85.128.0/17 Google
  22. 22. 81.19.64.0/19 Rambler*</li></ul>рамблер - этотелеком, итаминогдаживутботы.<br />
  23. 23. Conntrack  abuse<br />ip_conntrack: table full, dropping packet ?<br />Conntrackхранитсоединениявhashtableинебесплатен.<br />Прибольшихразмерахтаблицыможно:<br />net.ipv4.netfilter.ip_conntrack_tcp_timeout_*<br />нопрощевыключить:<br />iptables -t RAW -A PREROUTING -d$PUBLISHED_IP -j NOTRACK<br />iptables -t RAW -A OUTPUT -d$PUBLISHED_IP -jNOTRACK<br />
  24. 24. Большойобьемотфильрованыхботов?<br />ipset<br />егочудесныеb-tree дляплохихботов<br />ipset -N myserviptree --timeout XX<br />ipset -A myserv  $OFFENDING_IP<br />и <br />-N goodbotsnethash --hashsize 512 --probes 4 --resize 50<br />дляхороших<br />
  25. 25. SYN Flood <br />syn-cookies!<br />net.ipv4.tcp_syncookies = 1<br />
  26. 26. Простомноготрафикаискладываетсяинфраструктурапровайдера?<br />
  27. 27. Домашнеезадание<br />Настроенныеnginx/ipsetнасервере<br />Выключенный conntrack<br />Выделенныйipдляпубликуемыхсервисов<br />Представлениеосвязностихостера<br />
  28. 28. Ничего не помоголо?<br />hll.msu.ru<br />be@hll.msu.ru<br />

×