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

3,935 views

Published on

Published in: Technology
  • Be the first to comment

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 />

×