Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
DDoS: Практическоеруководствоквыживанию<br />ЛяминАлександр<br />
ЭкономикаDDoS:<br /><ul><li>Доступность - высокая
Cтоимость арендыботнета – низкая
 Эффективность - высокая</li></li></ul><li>Смотрим врагу в лицо<br />
Cвойства ботнета:<br /><ul><li>конечность/самосохраняемость
жадность
инертность
ущербность
транснациональность</li></li></ul><li>DDoS - онпришел…<br />Не паникуем<br />Удаляем http серверизавтостарта<br />Что в to...
Инструментарий<br />Linux 2.6<br />iptables<br />ipset<br />nginx<br />
HTTP Flood.Frontend<br />Минимизируемразмерыбуферов<br />large_client_header_buffers<br />client_header_buffer_size<br />c...
HTTP Flood.Frontend<br />Иожидаемпопавшихсяботовна default vhost<br />       server {<br />                listen         ...
HTTP Flood.Backend<br />Бюджетированиенагрузкинаскриптовыйбэкендчерез<br />limit_req_zone  $binary_remote_addr  zone=qulim...
HTTP Flood.Отфильтровать в один запрос<br />log_format  $http_accept $http_accept_language $http_accept_encoding;<br />+<b...
HTTP Flood.Когофильтроватьненужно<br />Вашисобственныеajaxскрипты (вставляемзаголовки-маркеры)<br />Полезныхботов, наприме...
 87.250.224.0/19 Yandex
 93.158.128.0/18 Yandex
 213.180.192.0/19 Yandex
Upcoming SlideShare
Loading in …5
×

DDoS: Survival Guide

1,575 views

Published on

DDoS: Survival Guide

Published in: Technology
  • Be the first to comment

DDoS: Survival Guide

  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 -j NOTRACK<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 />
  28. 28. Домашнеезадание<br />Настроенныеnginx/ipsetнасервере<br />Выключенный conntrack<br />Выделенныйipдляпубликуемыхсервисов<br />Представлениеосвязностихостера<br />
  29. 29. Ничего не помогло?<br />hll.msu.ru<br />be@hll.msu.ru<br />

×