Настройка несколько низковат экземпляров EC2. Каждый из них действует как обратный прокси-сервер на сервер происхождения:
Код:
client1-->Gate1 \
client2-->gate2->--->сервер происхождения
client3-->gate3 /
client2-->gate2->--->сервер происхождения
client3-->gate3 /
Это просто Nginx обратный прокси-сервер. Пропустите реальный IP в заголовке X-Real-IP и т.д. Easy.
Каждые ворота будут иметь IPTables и правила Nginx для обнаружения простых атак (например, ограничения скорости). Важно отметить, что все они должны иметь правила SYNPROXY, особенность современных ядер Linux. Имея SYNPROXY Iptables правила в течение нескольких шлюзов, как это полностью побеждает все атаки наводнения SYN.
Шлюзы должны быть в наборе AWS VPC блокировать весь трафик UDP в апатридах настроек трафика в VPC в. Это полностью блокирует все UDP-флуд-атаки. Если вместо того, чтобы блокировать UDP трафика в группах безопасности Врат, то очень большие UDP наводнение все еще может повлиять на вас. Она должна быть на уровне VPC.
Я обнаружил, что лучший способ настроить DNS для распределения трафика, как это было. Предположим, что у вас есть 4 ворота, g1 через g4. Затем с помощью Route 53 в взвешенной функции записи, вы должны иметь DNS возвращения в случайных один из следующих 5 пар IP-адресов, каждый с TTL 5 минут:
g1&g2
g2&g3
g3&g4
g4&g1
Это, кажется, работает лучше, чем просто положить все ворота IP-адресов в одну запись. Я думаю, что рандомизация, что должно произойти в этом случае фактически получает кэшированный в некоторых точках, и поэтому в зависимости от того записи возвращается в первую <везде, где он кэшируется> получает ударил сильнее.
Кроме того, у меня была система классификации и блокирования вредоносных перспективных IP-адресов, но он не смог работать достаточно хорошо, в конце концов, так что я не буду описывать его подробно.
Так что мой доморощенный защита от DDoS, которые мы использовали в последний год или около того. Он работал впечатляюще хорошо против многих атак, которые вы могли бы думать, что требуется что-то вроде Cloudflare, но не в конце концов против нападавших с тысячами IP-адресов, что делает полные соединения TCP, который может смешаться в легальный трафик слишком хорошо. Более полное решение, которое может заменить Cloudflare и т.д. во многом будет выглядеть следующим образом:
-----
Первый главный недостаток с моей установкой является то, что это было не так легко изменить. Моя установка будет захватить несколько деталей конфигурации (например, происхождение сервер IP) от VPC-локальных DNS-записей, которые я установил бы, но если бы я хотел сделать более глубокие изменения, я должен был бы изменить один из экземпляров, преобразующих, что в новый AMI, прекратить все другие инстанции, а затем начать новые экземпляры снова. Если бы я хотел изменить количество ворота, я должен был бы начать / остановить их вручную изменить DNS-записи самостоятельно. хорошо решение никогда не будет требовать столько ручной работы, и будет использовать такие вещи, как автоматическое масштабирование группы и CloudFormation упростить. Это займет всего несколько минут, чтобы добавить новое правило Iptables, например.
Второй главный недостаток с моей установки является то, что ей не хватает хорошего, систематический способ классификации IP-адресов, как хороший / плохой / нейтральный. Все ворота должны собирать долгосрочную статистику по каждому IP, который подключается к ним и способствовать его в центральную базу данных. Используя какой-то модели над данными в центральной базе данных IP, он должен затем быть в состоянии определить, является ли IP-адрес, вероятно, хорошо (потому что это действует как нормальный человек, просматривающих сайт в течение длительного времени), вероятно, плохо (потому что это, например, только начал запрашивающие тонны страниц), или неизвестное / нейтральный. Затем на основе этой классификации плюс идеи о том, как занята в настоящее время сайт, он может блокировать IP, позволяет IP, или вставить капчи вызов Cloudflare стиля для IP. Если вы передаете вызов, система устанавливает куки на вас, которые вам списки в течение нескольких дней.
Для форума, чтобы вернуться к доморощенного решения от Cloudflare, вышеупомянутые две части должны быть очень-хорошо удовлетворены.
Другое дело, что вы могли бы разработать систему таким образом, что она не требует глядя трафика HTTPS. Он может просто работать на ТСРЕ и передать зашифрованный трафик HTTPS дословно. Я не знаю, как в точку вы бы туннель реальные данные к реальному серверу (я раньше думал, что GRE туннели будет работать, но кто-то сказал мне, что это не может быть соответствующий инструмент), но обязательно должен быть возможно. Достоинством является то, что вы можете использовать очень мощный сервис, как AWS, не доверяя их слишком много. Недостатком является то, что вы не можете использовать слой 7 данных для классификации IP, и вы не можете вставить вызов; это либо блок или разрешить. идеальный Решение анти-DDoS даст вам возможность, хотите ли вы, чтобы дать ворота доступ к вашему HTTPS или нет.