🔐 Защита сайта от DDoS атак 🔐
💬 Не хотел писать о гемблинге, но случай Павлика заставил задуматься. Любой сайт может столкнуться с DDoS-атакой, поэтому делюсь мини-инструкцией.
Цель DDoS-атаки – ударить по самому слабому месту вашей системы, что бы все рухнуло.
Тут у нас сайт про гемблу, по этому на его примере и будет дальше инструкция.
🚨 Шаги защиты от #DDoS
# 0) Включите DDoS-защиту от хостера или сервиса 😁
На самом деле такие сервисы, во-первых, не знают ваш проект, а во-вторых, хотят заработать, поэтому с сервером не помогут.
Даже под защитой может проект страдать.
Их первая цель всё же заработать на вас, а только потом защитить.
Или то и другое, но не знание вашего проекта, ограничивает в методах.
Но мы пойдём дальше, чтобы снизить расходы и нагрузку, даже если сервисы всё-таки понадобятся.
1) Cloudflare – ваш лучший друг
Регистрация домена и подключение к Cloudflare – это первое, что нужно сделать.
👉 Важно: Если домен раньше не был подключён к Cloudflare, ваш IP уже известен конкурентам.
И даже при подключении Cloudflare, старый IP можно найти через историю DNS (есть сервисы для этого).
🛠 Решение:
- Поменяйте IP у хостера/сервера.
- Удалите записи, раскрывающие IP, например, MX.
📜 Более подробно писал тут:
https://t.me/taidana_programmer/291
2) Используйте nginx
Только nginx – никаких apache2, особенно под высокие нагрузки.
3) Отказ от базы данных и движков
Ваш сайт – это статика(у нас все еще речь про сайты гемблы).
- Уберите базы данных – они первые падают под нагрузкой.
- PHP вам тоже не нужен, используйте только голый nginx.
3.1) Настройка NGINX Content Caching (это если не отказались от баз и движка)
📌 Жёсткий кеш:
- Настройте кеширование контента с истечением через пару тысяч лет.
- При смене ссылок просто очистите кеш, чтобы он собрался заново.
3.2) Скачивание сайта и генерация статического HTML
Скачайте сайт целиком или используйте плагин, чтобы превратить его в статические HTML-файлы локально.
📌 Как быстро заменить ссылки в сотнях файлов:
На сервере через SSH выполните:
find /путь/к/вашим/html-файлам -type f -name "*.html" -exec sed -i 's/старый_сайт/новый_сайт/g' {} +
Не копируйте не понятные вам команды в консоль изучите, или доверьте сис.админу
4) Offline-режим в Cloudflare
Активируйте режим, при котором страницы показываются даже при отключении сервера.
🛠 Как включить:
1. Зайдите в настройки Cloudflare.
2. В разделе Caching включите Always Online.
3. Убедитесь, что страницы вашего сайта добавлены в кеш.
5) Ограничиваем доступ только для IP Cloudflare
Чтобы никто не мог обратиться к вашему серверу напрямую, кроме Cloudflare, нужно настроить доступ по IP-адресам их сети.
🛠 Шаги:
# 1. Убедитесь, что ваш сайт уже подключен к Cloudflare.
Если ваш сайт не через Cloudflare, эта защита не сработает.
# 2. Настройка на уровне сервера
Для NGINX добавьте в конфигурацию сервера:
# Разрешаем доступ только IP Cloudflare
allow 173.245.48.0/20;
allow 103.21.244.0/22;
ИТД....
# Остальным доступ запрещён
deny all;
После этого перезапустите NGINX:
sudo systemctl reload nginx
# 3. Полный и актуальный список IP Cloudflare
IP-адреса #Cloudflare могут обновляться, поэтому регулярно проверяйте актуальный список:
https://www.cloudflare.com/ips/
💡 Данные советы помогут только от лёгких #DDoS-атак, но даже при старте атаки дадут запас времени перед тем, как проект ляжет.
Кроме того, эти меры позволят #анти-DDoS сервисам более эффективно защищать ваши проекты, снижая нагрузку и минимизируя риски.
💡 Может, когда-нибудь появится ещё более подробная инструкция.
Честно говоря, было бы интересно поковырять проекты под атакой, чтобы лучше понять, как они ведут себя в таких условиях и какие дополнительные меры можно внедрить. 😏
💬 Не хотел писать о гемблинге, но случай Павлика заставил задуматься. Любой сайт может столкнуться с DDoS-атакой, поэтому делюсь мини-инструкцией.
Цель DDoS-атаки – ударить по самому слабому месту вашей системы, что бы все рухнуло.
Тут у нас сайт про гемблу, по этому на его примере и будет дальше инструкция.
🚨 Шаги защиты от #DDoS
# 0) Включите DDoS-защиту от хостера или сервиса 😁
На самом деле такие сервисы, во-первых, не знают ваш проект, а во-вторых, хотят заработать, поэтому с сервером не помогут.
Даже под защитой может проект страдать.
Их первая цель всё же заработать на вас, а только потом защитить.
Или то и другое, но не знание вашего проекта, ограничивает в методах.
Но мы пойдём дальше, чтобы снизить расходы и нагрузку, даже если сервисы всё-таки понадобятся.
1) Cloudflare – ваш лучший друг
Регистрация домена и подключение к Cloudflare – это первое, что нужно сделать.
👉 Важно: Если домен раньше не был подключён к Cloudflare, ваш IP уже известен конкурентам.
И даже при подключении Cloudflare, старый IP можно найти через историю DNS (есть сервисы для этого).
🛠 Решение:
- Поменяйте IP у хостера/сервера.
- Удалите записи, раскрывающие IP, например, MX.
📜 Более подробно писал тут:
https://t.me/taidana_programmer/291
2) Используйте nginx
Только nginx – никаких apache2, особенно под высокие нагрузки.
3) Отказ от базы данных и движков
Ваш сайт – это статика(у нас все еще речь про сайты гемблы).
- Уберите базы данных – они первые падают под нагрузкой.
- PHP вам тоже не нужен, используйте только голый nginx.
3.1) Настройка NGINX Content Caching (это если не отказались от баз и движка)
📌 Жёсткий кеш:
- Настройте кеширование контента с истечением через пару тысяч лет.
- При смене ссылок просто очистите кеш, чтобы он собрался заново.
3.2) Скачивание сайта и генерация статического HTML
Скачайте сайт целиком или используйте плагин, чтобы превратить его в статические HTML-файлы локально.
📌 Как быстро заменить ссылки в сотнях файлов:
На сервере через SSH выполните:
find /путь/к/вашим/html-файлам -type f -name "*.html" -exec sed -i 's/старый_сайт/новый_сайт/g' {} +
Не копируйте не понятные вам команды в консоль изучите, или доверьте сис.админу
4) Offline-режим в Cloudflare
Активируйте режим, при котором страницы показываются даже при отключении сервера.
🛠 Как включить:
1. Зайдите в настройки Cloudflare.
2. В разделе Caching включите Always Online.
3. Убедитесь, что страницы вашего сайта добавлены в кеш.
5) Ограничиваем доступ только для IP Cloudflare
Чтобы никто не мог обратиться к вашему серверу напрямую, кроме Cloudflare, нужно настроить доступ по IP-адресам их сети.
🛠 Шаги:
# 1. Убедитесь, что ваш сайт уже подключен к Cloudflare.
Если ваш сайт не через Cloudflare, эта защита не сработает.
# 2. Настройка на уровне сервера
Для NGINX добавьте в конфигурацию сервера:
# Разрешаем доступ только IP Cloudflare
allow 173.245.48.0/20;
allow 103.21.244.0/22;
ИТД....
# Остальным доступ запрещён
deny all;
После этого перезапустите NGINX:
sudo systemctl reload nginx
# 3. Полный и актуальный список IP Cloudflare
IP-адреса #Cloudflare могут обновляться, поэтому регулярно проверяйте актуальный список:
https://www.cloudflare.com/ips/
💡 Данные советы помогут только от лёгких #DDoS-атак, но даже при старте атаки дадут запас времени перед тем, как проект ляжет.
Кроме того, эти меры позволят #анти-DDoS сервисам более эффективно защищать ваши проекты, снижая нагрузку и минимизируя риски.
💡 Может, когда-нибудь появится ещё более подробная инструкция.
Честно говоря, было бы интересно поковырять проекты под атакой, чтобы лучше понять, как они ведут себя в таких условиях и какие дополнительные меры можно внедрить. 😏
👍12