tnAnGel
Проверенные
- Сообщения
- 1,231
- Реакции
- 906
- Баллы
- 3,465
Данная тема будет постоянно пополняться новыми способами защиты от идиотов.
В данной статье я предложу лишь раз перейти на защищенный хостинг.
Начнем с выбора на чем вы сидите: хостинг или VPS/VDS.
Хостинг:
1. JS заглушка: многие боты настолько тупые, что не поддерживают JS, а те, что поддерживают заслуживают особого внимания. Простая JS заглушка:
Создаем простой index.html со следующим годом:
Спасет от большинства атак идиотов. Теперь поговорим про ботов, которые оборудованы парсером window.location. Для таких случаев мы просто должны закриптовать нашу заглушку и дело с концом. Минус в том, что мы пошлем и поисковых ботов.
2. Cookie заглушка. Работает точно так же как и JS. На просторах сети очень много статей по таим заглушкам, так что вам не составит труда найти с JS + COOKIE
VPS/VDS:
Тут уже огромное пространство для действий! Хочешь iptables, хочешь ipset, а может geoip или все сразу?! Может быть nginx+apache? Или просто apache?! :D Если желаете защищаться нормально, то эта статья именно для вас! Я не буду углубляться в то "А КАК ПОСТАВИТЬ!!!", все это давно описано в Интернете, я лишь расскажу кратко о методах защиты. Скажу сразу, если не знаете что такое linux - покупайте защищенный хостинг.
1. Самый простой способ, это iptables. Прежде чем идти дальше, поищите информацию по netstat и поймите для чего эта штука нужна, а я пойду дальше. Дос/ДДос начался. Подсчитаем кол-во школьных соединений к нашему веб серверу:
864 - много.
Теперь, посмотрим ближе какие IP адреса к нам коннектятся.
Копируем все что выдал терминал в нотепад и разгребаем. Там где вы видите много коннектов - выписываем и баним в iptables.
Не забудьте сохранить правила! Это будет также касаться ipset и geoip.
2. Ipset. Чем он хорош? Просто баним список IP адресов/диапазонов, но нужно будет "подключить" список от ipset в iptables.
3. Geoip. Ну просто самый простой способ забанить целую страну одной командой. Способ для самых линевых. Вам не нужно писать диапазоны как с ipset/iptables, просто достаточно дать команду и к примеру Китай никогда не увидит ваш сайт без VPN/proxy.
5. Настройка nginx на лимитирование запросов с 1 IP (также можно сделать и с iptables)
6. hosts.deny - мой любимый способ. Я анализирую атакующие IP адреса и выделяю диапазон, если первые 2 - 3 значения одинаковы. Например:
15.12.15.12
15.12.15.85
15.12.15.65
15.12.15.88
или
15.12.15.54
15.12.65.54
15.12.0.59
15.12.14.55
Приходится банить диапазоном /24 /16. Также hosts.deny поддерживает просто IP адреса и вы можете просто написать их в файл. (белый трафик от пользователей кидайте в hosts.allow)
7. Модули на apache - бред на мой взгляд. Мне не удалось его защитить на своем сервере, но есть много статей как это сделать. Из-за неудач и частых падений я перешел на php-fpm. Никаких падений не было до сих пор.
8. Свое проксирование. Если вы имеете достаточно денег для снятия хорошего оборудования для фильтрации трафика, то эта статья для вас:
9. Временный способ с помощью CloudFlare. Я сам пользуюсь бесплатным тарифом, но он не спасет вас от стрессеров. При превышении допустимой нагрузке он напрямую посылает этот трафик, а не добавляет в бан как хотелось бы. В итоге нет фильтрации и вы лежите. При выборе этого метода ваш ресурс не ляжет от школьной атаки, но помрет от стрессера. Сегодня такаю атаку я наблюдал у себя. Отбился с помощью 3х записей в iptables. Смешная атака была, но 4 ядра были загружены полностью, что затрудняло использование моего сайта пользователями.
10. Мод на nginx. Описание:
Вкратце: защита основана на cookies и JavaScript.
Гитхаб:
Не большое заключение:
Эта статья не завершенная и она будет постоянно пополняться новыми методами. Есть люди, которые знают еще способы как защищаться от атак, прошу выкладывать свой опыт тут.
ПО на Windows для анализа логов apache/nginx - 10-Strike Log-Analyzer.
Для успешного отражения ддос атаки вы должны владеть вышеперечисленными знаниями и нормальным оборудованием. Оборудование должно быть от 2 ядер и 2Гб озу минимум.
На момент написании статьи отбил 2 атаки с помощью ipset и hosts.deny.
Оборудование:
ЦП: 4 ядра
ОЗУ: 12Гб
Канал: 100Мб\с
Стоит проксирование от CloudFlare (нужен только внешний фаервол)
В данной статье я предложу лишь раз перейти на защищенный хостинг.
Начнем с выбора на чем вы сидите: хостинг или VPS/VDS.
Хостинг:
1. JS заглушка: многие боты настолько тупые, что не поддерживают JS, а те, что поддерживают заслуживают особого внимания. Простая JS заглушка:
Создаем простой index.html со следующим годом:
Код:
<script language="JavaScript">
windows.location="https://domen.zona/index.php";
</script>
2. Cookie заглушка. Работает точно так же как и JS. На просторах сети очень много статей по таим заглушкам, так что вам не составит труда найти с JS + COOKIE
Код:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html><head>
<META HTTP-EQUIV="pragma" CONTENT="no-cache" />
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache" />
</head><body onload="document.cookie = 'DDOS=OK'; location.reload(true);">
</body>
</html>
VPS/VDS:
Тут уже огромное пространство для действий! Хочешь iptables, хочешь ipset, а может geoip или все сразу?! Может быть nginx+apache? Или просто apache?! :D Если желаете защищаться нормально, то эта статья именно для вас! Я не буду углубляться в то "А КАК ПОСТАВИТЬ!!!", все это давно описано в Интернете, я лишь расскажу кратко о методах защиты. Скажу сразу, если не знаете что такое linux - покупайте защищенный хостинг.
1. Самый простой способ, это iptables. Прежде чем идти дальше, поищите информацию по netstat и поймите для чего эта штука нужна, а я пойду дальше. Дос/ДДос начался. Подсчитаем кол-во школьных соединений к нашему веб серверу:
Код:
netstat -na | grep ":443\ " | wc -l
Теперь, посмотрим ближе какие IP адреса к нам коннектятся.
Код:
netstat -na | grep ":443\ " | sort | uniq -c | sort -nr
Код:
iptables -I INPUT -s 10.10.10.10 -j DROP
2. Ipset. Чем он хорош? Просто баним список IP адресов/диапазонов, но нужно будет "подключить" список от ipset в iptables.
3. Geoip. Ну просто самый простой способ забанить целую страну одной командой. Способ для самых линевых. Вам не нужно писать диапазоны как с ipset/iptables, просто достаточно дать команду и к примеру Китай никогда не увидит ваш сайт без VPN/proxy.
Код:
iptables -A INPUT -p tcp --dport 443 -m geoip --src-cc CN -j REJECT
6. hosts.deny - мой любимый способ. Я анализирую атакующие IP адреса и выделяю диапазон, если первые 2 - 3 значения одинаковы. Например:
15.12.15.12
15.12.15.85
15.12.15.65
15.12.15.88
или
15.12.15.54
15.12.65.54
15.12.0.59
15.12.14.55
Приходится банить диапазоном /24 /16. Также hosts.deny поддерживает просто IP адреса и вы можете просто написать их в файл. (белый трафик от пользователей кидайте в hosts.allow)
7. Модули на apache - бред на мой взгляд. Мне не удалось его защитить на своем сервере, но есть много статей как это сделать. Из-за неудач и частых падений я перешел на php-fpm. Никаких падений не было до сих пор.
8. Свое проксирование. Если вы имеете достаточно денег для снятия хорошего оборудования для фильтрации трафика, то эта статья для вас:
У Вас недостаточно прав для просмотра ссылок.
Вход или Регистрация
Гитхаб:Фактически 10 ядер процессора Intel Xeon E5-2680v3 могут обрабатывать до 10 гигабит трафика. Один физический сервер способен обрабатывать более 40 гигабит трафика.
У Вас недостаточно прав для просмотра ссылок.
Вход или Регистрация
9. Временный способ с помощью CloudFlare. Я сам пользуюсь бесплатным тарифом, но он не спасет вас от стрессеров. При превышении допустимой нагрузке он напрямую посылает этот трафик, а не добавляет в бан как хотелось бы. В итоге нет фильтрации и вы лежите. При выборе этого метода ваш ресурс не ляжет от школьной атаки, но помрет от стрессера. Сегодня такаю атаку я наблюдал у себя. Отбился с помощью 3х записей в iptables. Смешная атака была, но 4 ядра были загружены полностью, что затрудняло использование моего сайта пользователями.
10. Мод на nginx. Описание:
У Вас недостаточно прав для просмотра ссылок.
Вход или Регистрация
Вкратце: защита основана на cookies и JavaScript.
Гитхаб:
У Вас недостаточно прав для просмотра ссылок.
Вход или Регистрация
Не большое заключение:
Эта статья не завершенная и она будет постоянно пополняться новыми методами. Есть люди, которые знают еще способы как защищаться от атак, прошу выкладывать свой опыт тут.
ПО на Windows для анализа логов apache/nginx - 10-Strike Log-Analyzer.
Для успешного отражения ддос атаки вы должны владеть вышеперечисленными знаниями и нормальным оборудованием. Оборудование должно быть от 2 ядер и 2Гб озу минимум.
На момент написании статьи отбил 2 атаки с помощью ipset и hosts.deny.
Оборудование:
ЦП: 4 ядра
ОЗУ: 12Гб
Канал: 100Мб\с
Стоит проксирование от CloudFlare (нужен только внешний фаервол)