DDoS Attacke – Binare Optionen 2020

Beste Broker fur Binare Optionen 2020:
  • Binarium
    Binarium

    Der beste Broker fur binare Optionen fur 2020!
    Ideal fur Anfanger!
    Kostenloser Unterricht!

  • FinMax
    FinMax

    2 Platz in der Rangliste! Zuverlassiger Broker.

Contents

Статья DDoS: Теория, инструменты, атаки

NokZKH

Теория для новичков
DoS (от англ. Denial of Service — отказ в обслуживании) — хакерская атака на вычислительную систему с целью довести её до отказа, то есть создание таких условий, при которых легальные пользователи системы не могут получить доступ к предоставляемым системным ресурсам (серверам), либо этот доступ затруднён.

Отказ или нештатное функционирование атакуемой системы может быть и шагом к овладению системой (если в нештатной ситуации ПО выдаёт какую-либо критическую информацию — например, версию, часть программного кода и т.д.).

Если атака выполняется одновременно с большого числа компьютеров, говорят о DDoS-атаке (от англ. Distributed Denial of Service, распределённая атака типа «отказ в обслуживании»).

Для обнаружения распределённых сетевых атак типа «отказ в обслуживании» и защите от них необходимо классифицировать и знать принципы их работы.

В данной работе критерием для классификации рассмотрим объект, на который нацелена атака. В таком случае, получается четыре основных класса атак, соответствующих уровням

Чуть-чуть об уровнях:
Канальный уровень (L2)
— атаки направлены на исчерпание ёмкости сетевого канала. В следствие этого лишается доступ сервера к внешней сети. Для реализации используются объёмные потоки трафика. На данным момент измеряются в Гб/с. Во время этой атаки обрабатывать трафик необходимо на стороне провайдера, дата-центра. С помощью BGP Flow Spec (

) отсекаются по порту.

Сетевой уровень (L3) — атаки направлены на нарушение работы элементов сетевой инфраструктуры. Необходим ручной анализ сетевой инфраструктуры. Если своей автономной системы нет, то борьба с атаками данного класса ведется провайдером или дата-центром. Желательно сотрудничество с ними.

Транспортный уровень (L4) — атаки направлены на эксплуатацию слабых мест TCP-стека. В TCP протоколе используется таблица открытых соединений. Атаки именно на неё составляют этот класс. Необходим постоянный анализ поведения TCP-стека, TCP-клиентов, TCP-пакетов. Эвристический анализ.

Прикладной уровень (L7) — атаки направленны на нарушение работы Web-приложения. Атаки этого класса характеризуются большим разнообразием. Исчерпывают ресурсы сервера. Необходим поведенческий и корреляционный анализ, мониторинг ресурсов сервера. Необходима оптимальная настройка сервера под решаемые им задачи. Полностью автоматизировать борьбу с данным классом атак почти невозможно.

1.Медленные атаки:
1.1 SlowLoris
Уровень атаки: транспортный уровень (

Описание и принцип работы:
Атака Slowloris устанавливает много открытых соединений на сервере с помощью постоянной отправки незавершенных HTTP-запросов. В определенные моменты времени Slowloris отправляет следующие HTTP заголовки для каждого запроса, но не завершает соединение. Если запросы посылаются с оптимальной периодичностью, сервер начинает ожидать завершения открытых соединений. В данном случае ресурсы сервера остаются относительно свободными, но сам сервер перестаёт обслуживать новые подключения.

Дело в том, что веб-серверы Apache 1.x, Apache 2.x, dhttpd, GoAhead WebServer и Squid поддерживают ограниченное число одновременно открытых подключений. Но Slowloris не представляет угрозы для серверов IIS, lighttpd, NGINX. Они имеют эффективные механизмы распределения нагрузки и используют worker pool — «пулы рабочих потоков», которые позволяют удерживать любое количество открытых соединений при наличии свободных ресурсов.

1.2 Slow HTTP POST/GET
Уровень атаки: транспортный уровень (

Описание и принцип работы:
Атака основана на уязвимости в протоколе HTTP. Slow HTTP POST атака отправляет POST заголовок с полем «Content-Length». Веб-сервер понимает, какой объём данных он должен получить. После этого с очень низкой скоростью передаётся тело POST сообщения. Это позволяет задействовать ресурсы сервера длительное время, и в последствии помешать обработке других запросов. Атака опасна для веб-серверов Microsoft IIS и Apache и NGINX со стандартными настройками в рамках протоколов HTTP, HTTPS, подключений SSL, VPN. Также атака может быть настроена для работы с SMTP и DNS-серверами.

Данный тип атаки на отказ в обслуживании, можно организовать через proxy. Трафик данной атаки схож с легитимным трафиком.

1.3 Sockstress
Уровень атаки: транспортный уровень (L4).

Описание и принцип работы:
Атака заключается в следующем. Если на веб-сервере есть объект, размер которого больше send buffer, выделенного ядром для соединения. То можно заставить ядро не принимать данные, а сервер будет пробовать отправить кусок данных, занимая стек соединений, ресурсы процессора и память. При большом количество подобных соединений TCP-стек заполниться и не будет открывать новые соединения.

Примеры:
Отправить в пакете размер окна равный нулю, то есть нет места для получения данных. Скрипт Sockstress отправляет такие пакеты и считает время, когда их отправлять, чтобы не загрузить persist timer.

Создать сокет с малым объёмом receive buffer на клиенте. Отправлять HTTP-запрос на объект сайта больший по размеру, чем буфер. И периодически считываем пару байт из receive buffer. Сервер будет пытаться отправлять данные и занимать ресурсы.

2. Атака произвольными пакетами:
2.1 HTTP-Flood
Уровень атаки: канальный уровень (L2), прикладной уровень (L7).

Описание и принцип работы:
В основе этой атаки лежит механизм отправления максимального числа HTTP запросов на 80-й порт веб-сервера. Целью атаки может быть корень сервера или ресурсоёмкий элемент. В результате данной атаки возможно прекращение предоставления услуг по HTTP, и затруднен доступ легитимных пользователей к сайту. Распознать атаку можно с помощью выявления быстрого роста количества запросов к некоторым элементам веб-сервера и логов сервера.

2.2 UDP-Flood
Уровень атаки: канальный уровень (L2), прикладной уровень (L7).

Описание и принцип работы:
UDP flood атака основана на отправке большого количества UDP-пакетов на некоторые порты сервера. Он должен определить приложение для каждого полученного пакета, удостоверится в его неактивности и отправить в ответ ICPM-сообщение «недоступен». В итоге вырастут затрачиваемые ресурсы атакуемого сервера и полоса пропускания заполнится UDP-пакетами. В UDP протоколе нет механизма проверки отправителя пакетов, тем самым злоумышленник может подменить IP-адреса и обеспечить анонимность.

2.3 SYN-Flood
Уровень атаки: канальный уровень (L2), транспортный уровень (L4).

Описание и принцип работы:
SYN Flood атака использует механизм рукопожатия в протоколе TCP. Работает следующим образом. Посылается пакет с флагом SYN на атакуемый сервер. Он вынужден отправить в ответ пакеты с флагами SYN+ACK. Злоумышленник игнорирует SYN+ACK пакеты сервера и не высылает в ответ пакет ACK. Либо подделывает IP-адрес SYN пакета, чтобы ответный SYN+ACK отправляется на некорректный адрес. Цель данной атаки — заполнение TCP стека множеством полуоткрытых соединений, в следствие чего сервер перестают устанавливать соединения с новыми клиентами. Запросы на соединение полученные сервером хранятся в стеке с определенным размером, который зависит от операционной системы. Они находятся в стеке, пока сервер не получит информацию об установленном соединении от клиента.

2.4 ICMP-Flood
Уровень атаки: канальный уровень (L2).

Описание и принцип работы:
Данный тип флуда направлен на сетевое оборудование. Принцип данной атаки заключается в том, что ICMP-пакет при небольшом размере самого запроса требует от устройств значительно большего объёма работы. То есть, при отправлении сравнительно небольшого объёма ICMP запросов возникает перегрузка сетевого оборудования и значительная часть легитимных запросов теряется. Злоумышленник, меняет IP-адрес источника, отправляет ICMP Echo Request пакет к определённым компьютерам, входящим в бот-нет. Они отвечают ICMP Echo Reply пакетом, посылая его на изменённый IP-адрес. Для увеличения мощности атаки используют локальные сети (LAN) с включенной опцией направленной широковещательной рассылки (directed broadcast).

3.Атака с помощью SSL
Уровень атаки: прикладной уровень (L7).

Описание и принцип работы:
Secure Sockets Layer (SSL) — это протокол безопасности для защиты целостности сети связи и передачи данных. SSL может зашифровать подключение к сети на транспортном уровне. Процессы шифрования протокола SSL, расшифровки и обмена ключами потребляют огромное количество системных ресурсов. Существует два типа атака основанных на протоколе SSL.

Первый тип эксплуатирует механизм рукопожатия, который исчерпывает ресурсы атакуемого сервера. Злоумышленник посылает некорректные SSL данные на сервер, на обработку которых затрачивается большое количество вычислительной мощности.

Второй тип использует функцию повторного подтверждения соединения — SSL Renegotiation. Установка безопасного соединения и повторное подтверждение SSL затрачивают в разы больше вычислительной мощности на сервере, чем на стороне клиента. Благодаря этому возможно осуществление атаки и истощение ресурсов атакуемого сервера. Как правило, HTTPS расшифровывается глубоко внутри организационной сети, где серверы и модули более уязвимы к вредоносному трафику. Также злоумышленники используют этот протокол для обхода механизмов безопасности. Таким образом, возможно туннелирование других атак.

4.Атака почтового сервера c SMTP-Flood
Уровень атаки: прикладной уровень (L7).

Описание и принцип работы:
В атаках этого типа злоумышленник пытается установить соединение с почтовым сервером и отправляет произвольные письма на сгенерированные случайным образом адреса, либо бездействует до истечения тайм-аута, удерживая соединение открытым. Каждое SMTP соединение утилизирует часть ресурсов сервера, тем самым атакующий пытается вызвать отказ в обслуживании.

Технология заключается в том, что когда мы пишем e-mail получателя несуществующий, то SMTP server оповещает нас с помощью e-mail(отправителя), что письмо не дойдёт. Мы посылаем на SMTP server очень много запросов (пишем письма) и указываем все e-mail не валидные, а отправителя(объект атаки). И к нему будут приходить уведомления, что письмо не дошло. С нескольких SMTP server будет отправляться трафик на объект атаки.

5.Некорректные пакеты/фрагменты:
5.1 UDP fragment flood
Уровень атаки: прикладной уровень (L7).

Описание и принцип работы:
Данный тип атаки основан на отправки UDP датаграмм, которые случайным образом ссылаются на датаграммы отсутствующие в потоке. Это приводит к увеличению потребления памяти на атакуемом сервере. При атаке UDP Fragment Flood, злоумышленники посылают UDP пакеты большого размера, для истощения пропускной способности канала.

5.2 Некорректные IP-фрагменты
Уровень атаки: прикладной уровень (L7).

Описание и принцип работы:
Данный тип атак эксплуатирует уязвимости в поддержке фрагментации пакетов протокола IP. Одна из атак этого типа — это пересечение IP-фрагментов. Она реализуется с помощью уязвимости операционной системы, которая заключается в сборке фрагментированных IP- пакетов. В процессе сборки образуется цикл по принятым фрагментам. Затем из них копируется информативная часть и передаётся на IP уровень. Разработчики предусмотрели проверку на чрезмерный объем копируемой информации, но не ввели проверку на копирование фрагмента отрицательной длины. Копирование блока информации отрицательной длины равносильно копированию очень большого блока информации. Это приводит к затиранию большого участка памяти и к нарушению работы системы. Существует две программы с небольшими отличиями в константах механизма, который осуществляет пересечение IP-фрагментов: newtear и teardrop. Они отправляют пакеты с заданного IP-адреса на любой порт, независимо, открыт он или закрыт. Еще один вариант данной атаки – bonk. После сборки фрагментов в пакете остаются пустые места. Это приводит к сбою ядра операционной системы и нарушению работы электронных вычислительных средств. Данные уязвимости присутствуют в старых версиях ОС(операционных систем) Windows и Linux. На сегодняшний день большинство сетевых ОС защищены от сбоев в работе, вызванных данной атакой.

5.3 Неверные значения в заголовках пакетов
Уровень атаки: прикладной уровень (L7).

Описание и принцип работы:
Данные атаки нацелены на определённые приложения и операционные системы, которые неправильно обрабатывают некорректные значения в заголовках пакетов. Пример такой атаки — Land attack. В ходе неё злоумышленник устанавливает в пакете одинаковый IP-адрес для источника и приёмника. Это приводит к зацикливанию установки соединения сервера с самим собой.

6.Amplification атаки (атаки N-усиления)
Уровень атаки: канальный уровень (L2).

Описание и принцип работы:
В основе данных атак лежит отсутствие проверки отправителя в UDP протоколе. Ответ посылается адресату, указанному в заголовках пакета. Злоумышленник может подменить свой IP-адрес на IP-адрес атакуемого сервера в заголовках отправляемых пакетов. Также суть атаки заключается в многократном превышении объёма ответа по сравнению с запросом. Таким образом, злоумышленник может анонимно организовывать атаки с огромным объёмом трафика. Службы, работающие по UDP протоколу: DNS, NTP, SNMP, rsyslog и многие другие, могут использоваться для реализации атаки. Дело в том, что сетевые устройства с этими службами встречаются в сети повсеместно. Службы включены по умолчанию и часто некорректно настроены.

В таблице 1 представлены типы amplification атак проведённых в ходе исследования. В ней отображается по какому протоколу осуществляются атаки, коэффициент их усиления и уязвимая команда, используемая для реализации атаки.

6.1 NTP amplification атака
Уровень атаки: канальный уровень (L2).

Описание и принцип работы:
Злоумышленник отправляет запрос monlist с IP-адресом атакуемого сервера к NTP-серверу. Ответ monlist включает в себя список 600 последних клиентов ntpd. Сущность амплификации заключается в том, что нарушитель отправляет небольшой запрос к уязвимому серверу и с него на атакуемый сервер отправляется большой поток UDP трафика. Уязвимый NTP-сервер является невольным промежуточным звеном атаки. Ntpd до версии 4.2.7p26 подвержены атаке.

6.2 DNS Amplification атака
Уровень атаки: канальный уровень (L2).

Описание и принцип работы:
Атака основана на том, что нарушитель отправляет запрос уязвимому DNS-серверу с IP-адресом атакуемого сервера. DNS-сервер отправляет ответ, размер которого во много раз превышает запрос, жертве. Таким образом, исчерпывается канальная ёмкость атакуемого сервера.

Можно выделить ключевые моменты атаки:

  1. Эффект отражения: подмена IP-адреса позволяет перенаправить ответы от всех DNS-серверов на атакуемый сервер.
  2. Коэффициент усиления атаки: (amplification factor): он может принимать значения от 28 до 92. То есть на 1 байт запроса — совокупность DNS-серверов отправит 28-92 байт ответа. Это обеспечивает кратное увеличение объёма трафика.
  3. Проблема «open resolver»: это неправильно настроенный или старой версии DNS-сервер. Он разрешает получать запросы из сторонних сетей, выполняя рекурсивные запросы для них, и отправлять ответы без необходимых предварительных проверок.

6.3 HTTP flood с помощью сервисов
Уровень атаки: прикладной уровень (L7).

Описание и принцип работы:
WordPress сайт с включенным Pingback, можно использовать для проведения HTTP flood атаки на другие сайты. Они отправляют множество запросов к атакуемому сайту со случайными параметрами («?a=a» и др.), с помощью которых обходится кэширование страницы. Эта операция быстро расходует ресурсы атакуемого сервера и нарушает его работу. Злоумышленник может использовать большое количество обычных WordPress сайтов для DDoS атаки и не бояться быть обнаруженным с помощью Pingback запросу к файлу XML-RPC. Google использует FeedFetcher для кэширования любого контента в Google Spreadsheet, вставленного через формулу

DDoS-атака: что такое, как работает и можно ли защититься

Распределенные атаки типа «отказ в обслуживании» или сокращенно DDoS, стали распространенным явлением и серьезной головной болью для владельцев интернет-ресурсов по всему миру. Именно поэтому, защита от DDoS-атак на сайт является сегодня не дополнительной опцией, а обязательным условием для тех, кто хочет избежать простоя, огромных убытков и испорченной репутации.

Рассказываем подробнее, что это за недуг и как от него защититься.

Что такое DDoS

Distributed Denial of Service или «Распределенный отказ от обслуживания» — нападение на информационную систему для того, чтобы та не имела возможности обрабатывать пользовательские запросы. Простыми словами, DDoS заключается в подавлении веб-ресурса или сервера трафиком из огромного количества источников, что делает его недоступным. Часто такое нападение проводится, чтобы спровоцировать перебои в работе сетевых ресурсов в крупной фирме или государственной организации

DDoS-атака похожа на другую распространённую веб-угрозу — «Отказ в обслуживании» (Denial of Service, DoS). Единственное различие в том, что обычное распределенное нападение идет из одной точки, а DDos-атака более масштабна и идет из разных источников.

Основная цель DDoS-атаки — сделать веб-площадку недоступной для посетителей, заблокировав её работу. Но бывают случаи, когда подобные нападения производятся для того, чтобы отвлечь внимание от других вредных воздействий. DDoS-атака может, например, проводиться при взломе системы безопасности с целью завладеть базой данных организации.

DDoS-атаки появились в поле общественного внимания в 1999 году, когда произошла серия нападений на сайты крупных компаний (Yahoo, eBay, Amazon, CNN). С тех пор, этот вид кибер-преступности развился в угрозу глобального масштаба. По данным специалистов, за последние годы их частота возросла в 2,5 раза, а предельная мощность стала превышать 1 Тбит/сек. Жертвой DDoS-атаки хотя бы раз становилась каждая шестая российская компания. К 2020 году их общее число достигнет 17 миллионов.

Виртуальный хостинг от Eternalhost — хостинг-площадка с круглосуточной защитой от самых изощрённых DDoS-атак.

Причины DDoS-атак

  1. Личная неприязнь. Она нередко подталкивает злоумышленников на то, чтобы атаковать корпорации или правительственные компании. Например, в 1999 году было совершено нападение на веб-узлы ФБР, вследствие чего они вышли из строя на несколько недель. Случилось это из-за того, что ФБР начало масштабный рейд на хакеров.
  2. Политический протест. Обычно такие атаки проводят хактивисты — IT-специалисты с радикальными взглядами на гражданский протест. Известный пример — серия кибер-атак на эстонские государственные учреждения в 2007 году. Их вероятной причиной послужила возможность сноса Памятника Воину-освободителю в Таллине.
  3. Развлечение. Сегодня все большее количество людей увлекаются DDoS и желают попробовать свои силы. Новички-хакеры нередко устраивают нападения, чтобы развлечься.
  4. Вымогательство и шантаж. Перед тем, как запускать атаку, хакер связывается с владельцем ресурса и требует выкуп.
  5. Конкуренция. DDoS-атаки могут быть заказаны от недобросовестной компании с целью повлиять на своих конкурентов.

Кто потенциальные жертвы

DDoS могут разрушить сайты любого масштаба, начиная от обычных блогов и заканчивая крупнейшими корпорациями, банками и другими финансовыми учреждениями.

Согласно исследованиям, проведенным «Лабораторией Касперского», нападение может стоить фирме до 1,6 млн долларов. Это серьезный урон, ведь атакованный веб-ресурс на какое-то время не может обслуживании, из-за чего происходит простой.

Чаще всего от DDoS-атак страдают сайты и сервера:

  • крупных компаний и государственных учреждений;
  • финансовых учреждений (банков, управляющих компаний);
  • купонных сервисов;
  • медицинских учреждений;
  • платежных систем;
  • СМИ и информационных агрегаторов;
  • интернет-магазинов и предприятий электронной коммерции;
  • онлайн-игр и игровых сервисов;
  • бирж криптовалюты.

Не так давно к печальному списку частых жертв DDoS-атак добавилось и подключённое к интернету оборудование, получившее общее название «интернет вещей» (Internet of Things, IoT). Самую большую динамику роста на этом направлении показывают кибер-нападения с целью нарушить работу онлайн-касс больших магазинов или торговых центров.

Механизм работы

Все веб-серверы имеют свои ограничения по числу запросов, которые они могут обрабатывать одновременно. Кроме этого, предусмотрен предел для пропускной способности канала, соединяющего Сеть и сервер. Чтобы обойти эти ограничения, ззлоумышленники создают компьютерную сеть с вредоносным программным обеспечением, называемую «ботнет» или «зомби-сеть».

Для создания ботнета кибер-преступники распространяют троян через e-mail рассылки, социальные сети или сайты. Компьютеры, входящие в ботнет не имеют физической связи между собой. Их объединяет только «служение» целям хозяина-хакера.

В ходе DDoS-атаки хакер отправляет команды «зараженным» компьютерам-зомби, а те начинают наступление. Ботнеты генерируют огромный объем трафика, способный перегрузить любую систему. Основными «объектами» для DDoS обычно становится пропускной канал сервера, DNS-сервер, а также само интернет-соединение.

Признаки DDoS-атаки

Когда действия злоумышленников достигают своей цели, это моментально можно определить по сбоям в работе сервера или размещённого там ресурса. Но есть ряд косвенных признаков, по которым о DDoS-атаке можно узнать ещё в самом её начале.

  • Серверное ПО и ОС начинают часто и явно сбоить — зависать, некорректно завершать работу и т. д.
  • Резко возросшая нагрузка нааппаратные мощности сервера, резко отличающаяся от среднедневных показателей.
  • Стремительное увеличение входящеготрафика в одном или ряде портов.
  • Многократно дублированные однотипные действия клиентов на одном ресурсе (переход на сайт, закачка файла).
  • При анализе логов (журналов действий пользователей) сервера, брандмауэра или сетевых устройств выявлено много запросов одного типа из разных источников к одному порту или сервису. Следует особо насторожиться, если аудитория запросов резко отличается от целевой для сайта или сервиса.

Классификация типов DDoS-атак

Протокольное наступление (транспортный уровень)

DDoS-атака направлена на сетевой уровень сервера или веб-ресурса, поэтому её часто называют атакой сетевого уровня или транспортного уровня. Её цель— привести к перегрузке табличного пространства на межсетевом экране со встроенным журналом безопасности (брандмауэре), в центральной сети или в системе, балансирующей нагрузку.

Самый распространённый метод DDoS на транспортном уровне — сетевой флуд, создание огромного потока запросов-пустышек на разных уровнях, с которыми физически не может справится принимающий узел.

Обычно сетевая служба применяет правило FIFO, согласно которому компьютер не переходит к обслуживанию второго запроса, пока не обработает первый. Но при атаке количество запросов настолько возрастает, что устройству недостает ресурсов для того, чтобы завершить работу с первым запросом. В итоге, флуд максимально насыщает полосу пропускания и наглухо забивает все каналы связи.

Распространённые виды сетевого флуда

  • HTTP-флуд — на атакуемый сервер отправляется масса обычных или шифрованных HTTP-сообщений, забивающих узлы связи.
  • ICMP-флуд — ботнет злоумышленника перегружает хост-машину жертвы служебными запросами, на которые она обязана давать эхо-ответы. Частный пример такого типа атак — Ping-флуд или Smurf-атака, когда каналы связи заполняются ping-запросами, использующимися для проверки доступности сетевого узла. Именно из-за угрозы ICMP-флуда системные администраторы зачастую целиком блокируют возможность делать ICMP-запросы с помощью фаервола.
  • SYN-флуд — атака воздействует на один из базовых механизмов действия протокола TCP, известного как принцип «тройного рукопожатия» (алгоритм «запрос-ответ»: SYN пакет – SYN-ACK пакет – ACK пакет). Жертву заваливают валом фальшивых SYN-запросов без ответа. Канал пользователя забивается очередью TCP-подключений от исходящих соединений, ожидающих ответного ACK пакета.
  • UDP-флуд — случайные порты хост-машины жертвы заваливаются пакетами по протоколу UDP, ответы на которые перегружает сетевые ресурсы. Разновидность UDP-флуда, направленная на DNS-сервер, называется DNS-флуд.
  • MAC-флуд — целью являются сетевое оборудование, порты которого забиваются потоками «пустых» пакетов с разными MAC-адресами. Для защиты от подобного вида DdoS-атак на сетевых коммутаторах настраивают проверку валидности и фильтрацию MAC-адресов.

Атаки прикладного уровня (уровень инфраструктуры)

Эта разновидность используется, когда необходимо захватить или вывести из строя аппаратные ресурсы. Целью «рейдеров» может быть, как физическая, так и оперативная память или процессорное время.

Перегружать пропускной канал не обязательно. Достаточно только привести процессор жертвы к перегрузке или, другими словами, занять весь объем процессного времени.

Виды DDoS-атак прикладного уровня

  • Отправка «тяжелых»пакетов, поступающие непосредственно к процессору. Устройство не может осилить сложные вычисления и начинает давать сбой, тем самым отключая посетителям доступ к сайту.
  • С помощью скрипта сервер наполняется «мусорным» содержимым — лог-файлами, «пользовательскими комментариями» и т.д. Если системный администратор не установил лимит на сервере, то хакер может создать огромные пакеты файлов, которые приведут к заполнению всего жесткого диска.
  • Проблемы с системой квотирования. Некоторые серверы используют для связи с внешними программами CGI-интерфейс (Common Gateway Interface, «общий интерфейс шлюза»). При получении доступа к CGI злоумышленник может написать свой скрипт, который станет использовать часть ресурсов, например — процессорное время, в его интересах.
  • Неполная проверка данных посетителя. Это также приводит к продолжительному или даже бесконечному использованию ресурсов процессора вплоть до их истощения.
  • Атака второго рода. Оно вызывает ложное срабатывание сигнала в системе защиты, что может автоматически закрыть ресурс от внешнего мира.

Атаки на уровне приложений

DDoS-атака уровня приложений использует упущения при создании программного кода, которая создаёт уязвимость ПО для внешнего воздействия. К данному виду можно отнести такую распространённую атаку, как «Пинг смерти» (Ping of death) — массовая отправка компьютеру жертвы ICMP-пакетов большей длины, вызывающих переполнение буфера.

Но профессиональные хакеры редко прибегают к такому простейшему методу, как перегрузка пропускных каналов. Для атаки сложных систем крупных компаний, они стараются полностью разобраться в системной структуре сервера и написать эксплойт — программу, цепочку команд или часть программного кода, учитывающие уязвимость ПО жертвы и применяющиеся для наступления на компьютер.

DNS-атаки

  1. Первая группа направлена на уязвимости вПО DNS-серверов. К ним относятся такие распространённые виды кибер-преступлений, как Zero–day attack («Атака нулевого дня») и Fast Flux DNS («Быстрый поток»).
    Один из самых распространённых типов DNS-атак называется DNS–Spoofing («DNS-спуфинг»). В ходе неё злоумышленники заменяют IP-адрес в кеше сервера, перенаправляя пользователя на подставную страничку. При переходе преступник получает доступ к персональным данным юзера и может использовать их в своих интересах. Например, в 2009 году из-за подмены DNS-записи пользователи не могли зайти в Twitter в течение часа. Такое нападение имело политический характер. Злоумышленники установили на главной странице социальной сети предостережения хакеров из Ирана, связанные с американской агрессией
  2. Вторая группа — это DdoS-атаки, которые приводят к неработоспособности DNS-серверов. В случае их выхода из строя пользователь не сможет зайти на нужную страницу, так как браузер не найдет IP-адрес, присущий конкретному сайту.

Предотвращение и защита от DDoS-атак

Согласно данным Corero Network Security, более ⅔ всех компаний в мире ежемесячно подвергаются атакам «отказа в доступе». Причём их число доходит до 50.

Владельцам сайтов, не предусмотревших защиту сервера от DDoS-атак, могут не только понести огромные убытками, но и снижением доверия клиентов, а также конкурентоспособности на рынке.

Самый эффективный способ защиты от DDoS-атак — фильтры, устанавливаемые провайдером на интернет-каналы с большой пропускной способностью. Они проводят последовательный анализ всего трафика и выявляют подозрительную сетевую активность или ошибки. Фильтры могут устанавливаться, как на уровне маршрутизаторов, так и с помощью специальных аппаратных устройств.

Способы защиты

  1. Еще на этапе написания программного обеспечения необходимо задуматься о безопасности сайта. Тщательно проверяйте ПО на наличие ошибок и уязвимостей.
  2. Регулярно обновляйте ПО, а также предусмотрите возможность вернуться к старой версии при возникновении проблем.
  3. Следите за ограничением доступа. Службы, связанные с администрированием, должны полностью закрываться от стороннего доступа. Защищайте администраторский аккаунт сложными паролями и почаще их меняйте. Своевременно удаляйте аккаунты сотрудников, которые уволились.
  4. Доступ к интерфейсу администратора должен проводиться исключительно из внутренней сети или посредством VPN.
  5. Сканируйте систему на наличие уязвимостей. Наиболее опасные варианты уязвимостей регулярно публикует авторитетный рейтинг OWASP Top 10.
  6. Применяйте брандмауэр для приложений — WAF (Web Application Firewall). Он просматривает переданный трафик и следит за легитимностью запросов.
  7. ИспользуйтеCDN (Content Delivery Network). Это сеть по доставке контента, функционирующая с помощью распределенной сети. Трафик сортируется по нескольким серверам, что снижает задержку при доступе посетителей.
  8. Контролируйте входящий трафик с помощью списков контроля доступа (ACL), где будут указан список лиц, имеющих доступ к объекту (программе, процессу или файлу), а также их роли.
  9. Можно блокировать трафик, которых исходит от атакующих устройств. Делается это двумя методами: применение межсетевых экранов или списков ACL. В первом случае блокируется конкретный поток, но при этом экраны не могут отделить «положительный» трафик от «отрицательного». А во втором — фильтруются второстепенные протоколы. Поэтому он не принесет пользы, если хакер применяет первостепенные запросы.
  10. Чтобы защититься от DNS-спуфинга, нужно периодически очищать кеш DNS.
  11. Использовать защиту от спам-ботов — капча (captcha), «человечные» временные рамки на заполнение форм, reCaptcha (галочка «Я не робот») и т. д.
  12. Обратная атака. Весь вредоносный трафик перенаправляется на злоумышленника. Он поможет не только отразить нападение, но и разрушить сервер атакующего.
  13. Размещение ресурсов на нескольких независимых серверах. При выходе одного сервера из строя, оставшиеся обеспечат работоспособность.
  14. Использование проверенных аппаратных средств защиты от DDoS-атак. Например, Impletec iCore или DefensePro.
  15. Выбирать хостинг-провайдера, сотрудничающего с надёжным поставщиком услуг кибербезопасности. Среди критериев надёжности специалисты выделяют: наличие гарантий качества, обеспечение защиты от максимально полного спектра угроз, круглосуточная техподдержка, транспарентность (доступ клиента к статистике и аналитике), а также отсутствие тарификации вредоносного трафика.

Заключение

В этой статье мы рассмотрели, что значит DDoS-атака и как защитить свой сайт от нападений. Важно помнить, что подобные вредоносные действия могут вывести из строя даже самые безопасные и крупнейшие веб-ресурсы. Это повлечет за собой серьезные последствия в виде огромных убытков и потери клиентов. Именно поэтому, обезопасить свой ресурс от DDoS-атак — актуальная задача для всех коммерческих структур и государственных учреждений.

Хотите профессиональный уровень защиты от DDoS-атак — выбирайте VDS от Eternalhost! Постоянный мониторинг и круглосуточная техподдержка.

Как защитить Linux сервер от DDOS атак

Что такое DDOS атака на сервер мы рассказывать не станем ибо раз читателя заинтересовала тема защиты сервера, веб или VPS/VDS сервера, от DDOS атак, то скорее всего с базовыми понятиями про DDOS атаки он уже знаком.

Когда к кривому движку присоединяются с десяток или сотня чёрных ботов и всяких какеров тренирующихся на твоём сайте, злобных гоблинов шлющих пакеты от имени нашего хоста, то бывает, что возникают проблемы с доступом к серверу по SSH , а иногда даже многократные перезагрузки сервера не помогают;(

Ну, не будем томить и сразу же перейдём к методам защиты веб или VPS /VDS сервера от DDOS атак.

Основные методы защиты сервера от DDOS атак

Ниже перечислены скорее не методы защиты, а методы предотвращения появления уязвимых мест, наличие которых в случае начала DDOS атаки могут стать причиной падения нашего серванта:

  1. Активно использовать фаервол – закрыть все порты кроме используемых повседневно, остановить лишние сервисы, запретить пинг для скрытия машины от различных злонамеренных роботов пингующих и сканирующих диапазоны ИП, проверять входящие пакеты на их соответствие стандартам стека протоколов TCP ;
  2. Сменить стандартные номера портов для FTP и SSH ;
  3. Регулярно анализировать критические сообщения из .лог файлов сервера, например при помощи Logwatch и делать адекватные выводы;
  4. Своевременное обновление всего системного и прикладного ПО;
  5. Снять с автоматической загрузки все сервисы находящиеся в публичном доступе, включая веб сервера nginx и httpd: chkconfig httpd off and chkconfig nginx off , что поможет получить доступ к серверу в случае непрерывной ДДОС атаки на эти сервисы;
  6. Использовать PHP ака Fast CGI + акселераторы типа eAccelerator или APC;
  7. Выполнить тонкую настройку сетевых параметров ядра через sysctl;
  8. Возможно использовать дополнительное ПО вроде mod_evasive или анти ддос шел-скрипты на базе tcpdump или netstat;
  9. Выбрать правильный диспетчер ввода/вывода и оптимизировать использование оперативной и виртуальной памяти.

Защита сервера от DDOS атак с помощью iptables

Первым делом сбросим все правила для всех цепочек, разрешим входящие только по тем протоколам и портам, которые используются повседневно, установим политики по умолчанию применяемые для цепочек если для соединений в них нет подходящего правила:

Создадим дополнительную цепочку LIMIT для правил устанавливающих лимиты и с кажем что проходящие по цепочке INPUT соединения должны сначала быть обработаны правилами в цепочке LIMIT:

Только после полного отключения блокировщика скриптов и рекламы на этом месте появится полезная подсказка/ссылка/код/пример конфигурации/etc!

Главное в цепочку LIMIT НЕ добавить “ iptables -A LIMIT -j DROP „ ибо закроем всё, для всех и для себя включительно!:) Добавим соответствующее правило ограничивающее количество одновременных соединений с одного и того же ИП адреса:

При обнаружении ИП с которого будет попытка установить более 32 соединений, событие будет записано в журнал с пометкой “ [FW SYN DROP]: „, а сам пакет будет сброшен (DROP). Тем, у кого старая версия ядра и фаервола где нет возможности юзать connlimit, поможет анти ддос шел-скрипт на базе tcpdump или netstat .

Теперь оправдание тому, почему используется дополнительная цепочка LIMIT. Принимая входящие из цепочки INPUT в цепочку LIMIT мы можем более гибко шаманить правилами – т.е. приняв пакет нам нужно с ним что-то сделать – ACCEPT, DROP, REJECT, NFQUEUE, QUEUE или RETURN. С действиями ACCEPT, DROP, REJECT, RETURN думаю всё ясно, а вот по поводу NFQUEUE и QUEUE поясню как я их понял из доков – действие NFQUEUE ставит пакет в очередь на обработку пользовательским демоном (процессом), например „-j NFQUEUE –queue-num ?„, где знак вопроса является номером очереди, действие же QUEUE является устаревшей версией NFQUEUE.

Если RETURN применяется к правилу в пользовательской цепочке, то обработка прекращается с возвратом пакета в центральную для дальнейшей обработки, а если RETURN применяется к правилу в центральной цепочке, то применяется политика цепочки по умолчанию, в нашем случае DROP.

Если нужно сделать исключения например для гугля робота, т.е. не применять к нему вовсе никаких лимитов и проверок, то мы можем добавить в начало (-I) цепочки LIMIT правило возвращающее соединение на обработку в центральную цепочку INPUT, а не создавать в INPUT разрешающее с указанием портов доступа, хотя – это дело личного предпочтения каждого:

Так мы из цепочки LIMIT с правилами лимита возвращаем в INPUT (центральную цепочку) все пакеты поступившие с ИП диапазонов принадлежащих GOOGLE и YANDEX, а для всех остальных будут применены идущие ниже правила лимита, диапазоны ИП GOOGLE и YANDEX указаны ниже:

Таким образом все нужные нам боты получают безлимитный доступ к серванту, а все остальные соединения будут лимитироваться. Если добавили ошибочное правило, то удалите его командой iptables -D LIMIT 1 , где 1 это порядковый номер правила отсчитываемый сверху цепочки начиная с цифры 1.

Теперь создадим дополнительную цепочку BAN для постоянно заблокированных ИП и с кажем что проходящие по цепочке INPUT должны быть обработаны правилами в цепочке BAN:

Только после полного отключения блокировщика скриптов и рекламы на этом месте появится полезная подсказка/ссылка/код/пример конфигурации/etc!

Добавляем ИП которые нужно блокировать, например:

Цепочку BAN нужно поставить первой, её можно будет использовать для связки tcpdump + iptables или netstat + iptables. Например можно написать скрипт, который по крон-у будет анализировать аномалии в соединениях и заносить ИП в цепочку BAN, которую при каждом своем запуске по крон-у, например каждые 10 мин, будет её сбрасывать iptables -F BAN , а потом снова анализировать соединения и банить подозрительных. ИП 58.218.199.250 принадлежит какому-то китайскому роботу, который постоянно щупает один и тот же каталог, не припомню какой – можете смело его банить;)

В конце цикла работы скрипта, ему можно подсовывать список неугодных ИП которые заблокированы на постоянной основе, хотя для этого можно оставить цепочку BAN, а для скрипта работающего с tcpdump + iptables или netstat + iptables создать отдельную цепочку ANTIDDOS

Главное в дочерние цепочки НЕ добавить правило типа “ iptables -A BAN -j DROP “ ибо закроем всё, для всех и для себя включительно!:) Также для установки правил лучше использовать команду iptables, а не редактировать файл /etc/sysconfig/iptables вручную!

В нашу цепочку LIMIT можно добавить ещё одно полезное правило, которое поможет отсекать спуферастов с записью в сисьлог:) Когда по еще не открытому соединению, приходит пакет, на котором установлены флаги SYN и ACK, а такая комбинация флагов свойственна только для ответа на SYN-пакет, то это значит, что кто-то послал SYN-пакет другому хосту от нашего имени, и ответ пришел к нам. Согласно этому правилу, наш хост должен ответит RST-пакетом, после чего атакуемый хост должен закрыть соединение.

Можно рассмотреть ещё одно полезное правило ограничивающее создание новых соединений в определённый промежуток времени:

Только после полного отключения блокировщика скриптов и рекламы на этом месте появится полезная подсказка/ссылка/код/пример конфигурации/etc!

Если всё работает как нужно, тогда сохраняем правила service iptables save .

Защита сервера от DDOS атак на уровне ядра

Для этих целей в Linux-ах есть утилита по имени sysctl (сисьцтл:), которая предназначена для управления отдельными параметрами ядра во время его выполнения/работы, конфигурационный файл /etc/sysctl.conf.

В /etc/sysctl.conf рекомендуется добавить следующие строки:

Для просмотра всех параметров конфигурации ядра «на ходу» для ipv4 выполняем sysctl -a | grep net.ipv4 . Перед тем как записывать указанные выше параметры в /etc/sysctl.conf рекомендуется сначала применить их так sysctl -w net.ipv4.tcp_abort_on_overflow=1 или же вот так echo 1 > /proc/sys/net/ipv4/tcp_abort_on_overflow , а уже после этого если система работает нормально, то уже тогда заносить все настройки в /etc/sysctl.conf

Выбираем подходящий I/O Scheduler

Для того чтобы наш сервант выдерживал больший натиск и выдерживал всё более сильные ДДОС атаки, мы должны выбрать самый эффективный планировщик ввода/вывода (I/O Scheduler). Посмотреть текущий планировщик ввода/вывода (I/O Scheduler) и возможные его варианты можно выполнив команду:

В нашем случае текущим планировщиком вводы/вывода (I/O Scheduler) является [cfq] (Completely Fair Queuing). Протестировать какой из I/O Scheduler-ов будет более эффективным в нашем случае можно с помощью приведённого ниже скрипта:

Только после полного отключения блокировщика скриптов и рекламы на этом месте появится полезная подсказка/ссылка/код/пример конфигурации/etc!

Для получения средних значений и выбора более оптимального I/O Scheduler-а нужно запустить наш ./scheduler 4-5 раз и проанализировать полученные значения:

Видим, что в большинстве случаев, в режиме [deadline] у нас самая большая скорость чтения дискового буфера (более 200-300 MB) и часто временами самая большая скорость чтения дискового кэша в среднем более 10700-10800 MB.

Для систем виртуализации VMware рекомендует использовать I/O Scheduler типа [noop] или [deadline], которые показывают большую эффективность ввода/вывода для виртуальных машин: Linux 2.6 kernel-based virtual machines experience slow disk I/O performance

Для изменения текущего I/O Scheduler выполняем команду: echo deadline > /sys/block/sda/queue/scheduler

Эта команда изменяет текущий I/O Scheduler, но не на постоянной основе. Для изменения типа I/O Scheduler-а на постоянной основе нужно внести изменения в конфигурацию загрузчика /boot/grub/grub.conf (/etc/grub.conf) или в список меню загрузки /boot/grub/menu.lst, где добавить строку elevator=noop или elevator=deadline следующим образом:

В случае с загрузчиком lilo правим /etc/lilo.conf, например:

Шаманим с очередью запросов :)

Проверим параметры и скорость чтения:

/sys/block/sda/queue/read_ahead_kb

Maximum number of kilobytes to read-ahead for filesystems on this block device. По умолчанию 128, установим echo 512 > /sys/block/sda/queue/read_ahead_kb

/sys/block/sda/queue/nr_requests

This controls how many requests may be allocated in the block layer for read or write requests. Note that the total allocated number may be twice this amount, since it applies only to reads or writes (not the accumulated sum). По умолчанию 128, установим echo 256 > /sys/block/sda/queue/nr_requests

/sys/block/sda/device/queue_depth

По умолчанию echo 32 > /sys/block/sda/device/queue_depth . Судя по многочисленным рассылкам и руководствам по оптимизации параметр queue_depth должен быть всегда меньше nr_requests, что обеспечивает лучшее быстродействие.

Снова проверим скорость чтения

Видим, что показатели чтения слегка улучшились – ура товарищи:) Скорость чтения зависит от текущей загруженности диска операциями чтения/записи и мерить её лучше в относительно спокойном состоянии, когда почти ничто не пишет и не читает с диска!

Тюнинг I/O Scheduler-а Deadline

/sys/block/sda/queue/iosched/fifo_batch

Устанавливает максимальное число запросов в одном пакете, по умолчанию 16. Увеличение этого значения может улучшить пропускную способность, но в тоже время увеличатся и задержки.

/sys/block/sda/queue/iosched/front_merges

Функция сравнения поступающих в очередь запросов и их слияния в случае их дублирования, по умолчанию 1, лучше так и оставить.

/sys/block/sda/queue/iosched/read_expire

Позволяет установить количество миллисекунд, в течении которых запрос на чтение должен быть обслужен. По умолчанию этот параметр установлен на 500 мс (полсекунды). Если есть задержки с чтением, то можно увеличить это значение.

/sys/block/sda/queue/iosched/write_expire

Позволяет установить количество миллисекунд, в течении которых запрос на запись должен быть обслужен. По умолчанию этот параметр установлен на 5000 мс (пять секунд).

/sys/block/sda/queue/iosched/writes_starved

Планировщик отдаёт больше предпочтения для запросов чтения перед запросами записи. По умолчанию значение этого параметра установлено в 2. Если есть задержки с чтением, то можно увеличить это значение.

Все изменения которые мы вносили в устройства через echo . > /sys/../../ будут действительны только до перезагрузки, для их внесения на постоянной основе, нужные команды стоит добавить в /etc/rc.local, например:

Планировщик ввода/вывода мы подшаманили на увеличение пропускной способности потому, что дальше мы планируем перейти на более активное использование файла подкачки, а это связано с повышенным количеством операция чтения/записи на жестком диске.

Выбираем политику выделения памяти (overcommit)

overcommit_memory и overcommit_ratio – параметры overcommit_memory и overcommit_ratio регулируют политику выделения памяти сверх имеющейся в наличии, а именно overcommit_memory отвечает за саму политику (поведение), а overcommit_ratio за процент выделяемой памяти. Ниже оригинальное описание этих параметров

When overcommit_memory is set to 2, the committed address space is not permitted to exceed swap plus this percentage of physical RAM. See above.

This value contains a flag that enables memory overcommitment.

When this flag is 0, the kernel attempts to estimate the amount of free memory left when userspace requests more memory.

When this flag is 1, the kernel pretends there is always enough memory until it actually runs out.

When this flag is 2, the kernel uses a „never overcommit“ policy that attempts to prevent any overcommit of memory. Note that user_reserve_kbytes affects this policy.

This feature can be very useful because there are a lot of programs that malloc() huge amounts of memory „just-in-case“ and don’t use much of it.

The default value is 0.

See Documentation/vm/overcommit-accounting and
security/commoncap.c::cap_vm_enough_memory() for more information.

  • overcommit_ratio – если overcommit_memory=2, тогда разрешено выделить весь размер файла подкачки (swap) + указанный в overcommit_ratio процент оперативной памяти
  • overcommit_memory
    • 0 – выделяется памяти больше чем есть в наличии, но при этом используется эвристический анализ определения выделяемой процессу памяти;
    • 1 – система считает, что в наличии неограниченное количество памяти и выделяет её без ограничений до тех пор пока она вся реально незакончится;
    • 2 – запрещено выделять память больше чем общий размер файла подкачки (swap) + указанный в overcommit_ratio процент оперативной памяти, в таком случае также включется действие параметра user_reserve_kbytes.
  • user_reserve_kbytes – по умолчанию резервируется 3% свободной памяти от текущего размера процесса, если установлено в 0 то процессу будет разрешено выделить всю имеющуюся в наличии свободную память, а любые попытки выполнить команду могут привести к сообщению “ Cannot allocate memory „.

Рекомендуется overcommit_memory=2 и overcommit_ratio=95 (или overcommit_ratio=100) – это предотвратит полнейшее падение системы в случае глюка какой-то программы, а также полезно при наличии в системе программ которые могут запрашивать для себя больше оперативной памяти чем им реально требуется.

Оптимизируем использование файла подкачки (swap)

Ниже пойдёт речь о параметрах влияющих на использование виртуальной памяти (vm – virtual memory), а т.е. файла подкачки. Значение большинства приведённых ниже параметров на многих сайтах/блогах трактуются НЕ верно и противоречит официальной документации ядра Linux – один прогнал беса, а другие продолжают гнать тупо копируя!

/proc/sys/vm/swappiness

В ОС Linux для управления использованием файлом подкачки есть параметр vm.swappiness, значение которого по умолчанию равно 60

Как это работает? Значение vm.swappiness контролирует процент доступной оперативной памяти, при котором происходит активный сброс данных в файл подкачки (swap). Например при значении vm.swappiness в 60 вычисляем процент занятой оперативной памяти 100-60=40%, т.е. в данном случае если % занятой памяти равен 40%, то начинается активное использование файла подкачки (раздел swap).

Если у нас маловато оперативной памяти, то выбрав на предварительном этапе более производительный I/O Scheduler мы можем увеличить использование дискового кэша установив значение vm.swappiness равным 70-80.

При наличии же большого количества ОЗУ лучше будет установить значение параметра vm.swappiness в 10-30, чем приказать Linux-у не использовать файл подкачки (swap) пока занятая оперативная память не достигнет 70-90%.

Для проверки/тестирования внесите временные изменения sysctl -w vm.swappiness=90 , а если система будет работать стабильно, то можно внести изменения на постоянной основе в /etc/sysctl.conf:

Значение параметра vm.swappiness подбирается экспериментально, в зависимости от количества работающих процессов и активности их использования. Для систем у которых оперативной памяти 128-256 МВ можно попробовать установить vm.swappiness = 100

Справедливости ради отметим, что на оф. странице сказано, что параметр регулирует агрессивность использования файла подкачки, а не процент занятой или свободной оперативной памяти. Короче говоря, меньшее значение снижает агрссивность, а большее соответственно увеличивает агрессивность использования файла подкачки:

This control is used to define how aggressive the kernel will swap memory pages. Higher values will increase agressiveness, lower values decrease the amount of swap. A value of 0 instructs the kernel not to initiate swap until the amount of free and file-backed pages is less than the high water mark in a zone.

The default value is 60.

/proc/sys/vm/vfs_cache_pressure

Ещё один интересный параметр vm.vfs_cache_pressure, который по умолчанию равен = 100. Внятного и адекватного описания этого параметра на могучем нигде не встречается, а просто приводятся рекомендуемые его значения, местами указывается, что повышение этого значения заставляет активнее использовать оперативную память, что в корне не верно:

Controls the tendency of the kernel to reclaim the memory which is used for caching of directory and inode objects.

At the default value of vfs_cache_pressure=100 the kernel will attempt to reclaim dentries and inodes at a „fair“ rate with respect to pagecache and swapcache reclaim. Decreasing vfs_cache_pressure causes the kernel to prefer to retain dentry and inode caches. When vfs_cache_pressure=0, the kernel will never reclaim dentries and inodes due to memory pressure and this can easily lead to out-of-memory conditions. Increasing vfs_cache_pressure beyond 100 causes the kernel to prefer to reclaim dentries and inodes

Честно говоря в официальное описание этого параметра я сам не сразу въехал, пока не наткнулся на Maximizing Performance – ArchWiki, из которой следует, то, сколько ядро отдаёт предпочтения/приоритета на использование подкачки в оперативной памяти. Понижение этого значения заставляет ядро использовать больше подкачки в оперативной памяти (cached).

Чтение документации “ When vfs_cache_pressure=0, the kernel will never reclaim dentries and inodes due to memory pressure and this can easily lead to out-of-memory conditions. “ законно наводит на мысль, что значение равное в 0 заставит ядро полностью перейти на использование оперативной памяти, т.е. не освобождать её, что может привести нехватке памяти и полному загибанию системы.

Другими словами значение этого параметра устанавливает приоритет на частоту возврата/освобождение занимаемой под кэш памяти (cached), при увеличении значения этого параметра занимаемая под кэш память (cached) будет освобождена при первом удобном случае, т.е. оперативная память занятая под caching/directory/inode будет освобождаться агрессивнее. Максимальное значение vm.vfs_cache_pressure неизвестно, по этой ссылке максимальное значение vm.vfs_cache_pressure = 100000.

Значение vm.vfs_cache_pressure зависит от размера имеющейся оперативной памяти, если оперативной памяти много, то значение можно снизить до 20-50, ну, а если мало, то соответственно увеличить.

/proc/sys/vm/dirty_ratio

Параметр vm.dirty_ratio содержит значение в процентах от нашей общей оперативной памяти, которая может быть заполнена грязными данными, при превышении этого лимита данные будут активно сброшены на диск, на время записи все процессы блокируются, например можно выполнить команду “ dd if=/dev/zero of=hog “ и посмотреть, что происходит;) В CentOS 6 (с 256 МВ оперативки) значение vm.dirty_ratio по умолчанию = 20.

/proc/sys/vm/dirty_background_ratio

Параметр vm.dirty_background_ratio содержит значение в процентах от нашей общей оперативной памяти, после забивания грязными данными которой “ pdflush background writeback daemon “ начинает сбрасывать данные на диск. В CentOS 6 (с 256 МВ оперативки) по умолчанию значение vm.dirty_background_ratio = 10.

/proc/sys/vm/dirty_writeback_centisecs

vm.dirty_writeback_centisecs содержит значение в миллисекундах устанавливает интервал через который будет просыпаться “ pdflush writeback daemons “ и сбрасывать старые/грязные данные. По умолчанию vm.dirty_writeback_centisecs = 500 (5 сек.)

/proc/sys/vm/dirty_expire_centisecs

vm.dirty_expire_centisecs устанавливает время в миллисекундах, через которое грязные данные закэшированные в оперативке будут помечены как устаревшие. По умолчанию vm.dirty_expire_centisecs = 3000 (30 сек.), 30 секунд это слишком долго, можно уменьшить это значение. Посмотреть сколько у вас собралось грязных данных можно командой cat /proc/meminfo | grep Dirty

/proc/sys/vm/min_free_kbytes

Минимальное количество свободных/зарезервированных килобайт. Это значение используется для вычисления watermark[WMARK_MIN] значения для каждой lowmem зоны. Значение менее чем 1024KB может стать причиной краха системы при высоких нагрузках! Значение по умолчанию зависит от общего количества оперативной памяти, например при наличии 256 МБ оперативки, по умолчанию значение vm.min_free_kbytes = 2030, в таком случае можно округлить до 2-х КБ т.е. vm.min_free_kbytes = 2048. Сильно большое значение этого параметра может привести к нехватке памяти!

/proc/sys/vm/page-cluster

vm.page-cluster контролирует сколько страниц памяти будет сброшено в своп (swap) за один раз, 0 = 1, 2 = 4 и т.д.. По умолчанию значение vm.page-cluster = 3, что равно 8-ми страницам которые сбрасываются в своп (swap) за один раз, т.е. нечётные значения округляются, умножаются на два и получается реальное число страниц сбрасываемых за один раз. Если файл подкачки используется интенсивно, то можно попробовать вдвое увеличить значение vm.page-cluster.

/proc/sys/vm/oom_kill_allocating_task

Параметр vm.oom_kill_allocating_task контролирует поведение киллера процессов. Если установлено равным нулю (по умолчанию = 0), то OOM killer будет сканировать весь список задач и на основании эвристики выбирать процесс для убивания, а если установлено значение более нуля (например = 1), OOM killer просто убивает задачу в условиях нехватки памяти. Сканирование списка задач + эвристика выбора дорого обходится системе, а поэтому можно установить vm.oom_kill_allocating_task = 1

Пакет Kernel Tune (ktune)

Пакет Kernel Tune (ktune) предназначен в первую очередь для серверов с интенсивным использованием дискового пространства, с достаточно большим объемом оперативной памяти и высокой сетевой активности.

Beste Broker fur Binare Optionen 2020:
  • Binarium
    Binarium

    Der beste Broker fur binare Optionen fur 2020!
    Ideal fur Anfanger!
    Kostenloser Unterricht!

  • FinMax
    FinMax

    2 Platz in der Rangliste! Zuverlassiger Broker.

Пакет Kernel Tune (ktune) содержит в себе большой набор шаблонов с настройками для оптимизации ядра системы. Ktune включает планировщик ввода/вывода deadline, увеличивает размер TCP/IP буферов, а также выполняет другие настройки по оптимизации производительности. Установка на примере CentOS:

Настройки ktune расположены в vi /etc/sysctl.ktune

Следует учесть, что настройки внесённые в /etc/sysctl.conf тоже применяются и имеют больший приоритет перед /etc/sysctl.ktune!

Ссылки по теме

Рекомендуемый контент

А тут же ж мог быть рекомендуемый контент от гугла :) Для отображения рекомендуемого контента необходимо в браузере разрешить выполнение JavaScript скриптов, включая скрипты с доменов googlesyndication.com и doubleclick.net

Вы не любите рекламу!? Напрасно!:) На нашем сайте она вовсе ненавязчивая, а потому для нашего сайта можете полностью отключить AdBlock (uBlock/uBlock Origin/NoScript) и прочие блокировщики рекламы! AdBlock/uBlock может препятствовать нормальной работе системы поиска по сайту, отображению рекомендуемого контента и прочих сервисов Google. Рекомендуем полностью отключить блокировщик рекламы и скриптов, а также разрешить фреймы (aka iframe).

Protect Your Business with DDoS Detection and Mitigation

Distributed Denial of Service (DDoS) attacks attempt to deny legitimate users access to your systems or networks by overwhelming them with bogus requests. These attacks target important resources like network bandwidth, server sockets, web server threads and CPU utilization.

Our DDoS Mitigation Services offer comprehensive traffic monitoring, multilayered anomaly detection technologies and immediate DDoS attack mitigation to help keep your data secure and your business online. And it’s all backed by support from our DDoS specialists — available 24x7x365.

DDoS detection helps maintain availability of your managed hosting services through a unique hardware-based protection system. It combines two powerful alerting technologies — network-level packet scanning and server-level anomaly detection — to identify an attack, then mitigates its effects by precisely eliminating DDoS traffic.

Subscribe to receive proactive protection, or choose our on-demand option where protection is activated when an attack is under way. See our DDoS Mitigation Addendum for details.

Beste Broker fur Binare Optionen 2020:
  • Binarium
    Binarium

    Der beste Broker fur binare Optionen fur 2020!
    Ideal fur Anfanger!
    Kostenloser Unterricht!

  • FinMax
    FinMax

    2 Platz in der Rangliste! Zuverlassiger Broker.

Like this post? Please share to your friends:
Alles über Binäre Optionen
Schreibe einen Kommentar

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: