Вы испытываете необходимость в сервере DNS, работающем на Вашей внутренней сети.
Если у Вас нет Active Directory (я предполагаю, что Вы не делаете), Википедия имеет список программного обеспечения, которое сделает это задание для Вас. Если Вы работали *, отклоняют или были готовы настроить *, отклоняют виртуальную машину для того, чтобы быть Вашим DNS, то bind
путь состоит в том, чтобы пойти.
Причина Ваш маршрутизатор не имеет этого, состоит в том, потому что это не действительно сервер DNS, это - просто средство передачи DNS, которое вперед запросы DNS это получает к DNS ISP.
То, что вы уже используете nginx, - хорошее начало - серверы на основе событий намного более устойчивы к атакам типа sloloris.
Еще это ' Хорошая идея для предотвращения DOS-атак как можно дальше от вашего приложения. Следующий шаг - iptables.
Вам нужно подумать о том, как вы классифицируете атаки и отличите их от реального трафика - скорость, с которой создаются новые соединения, является очень хорошим показателем - и вы можете настроить iptables, чтобы ограничить количество новых соединений на для каждого IP-адреса:
iptables -A INPUT -p tcp --dport 80 -i eth0 -m state --state NEW -m recent --set
iptables -A INPUT -p tcp --dport 80 -i eth0 -m state --state NEW -m recent \
--update --seconds 30 --hitcount 80 -j DROP
(отбрасывает новые запросы на подключение, когда скорость превышает 80 каждые 30 секунд)
Вы можете ограничить количество одновременных подключений на один IP-адрес:
iptables -A INPUT -p tcp --syn --dport 80 -m connlimit \
--connlimit-above 20 -j REJECT --reject-with tcp-reset
Также неплохо ограничить пропускную способность, в зависимости от вашего профиля трафика, скажем, до 10% доступной полосы пропускания - это выполняется с использованием tc , а не iptables.
Затем для проходящих соединений в HTTP-запросе могут быть характеристики, которые идентифицирует атаку (реферер, Запрошенный URL-адрес, user-agent, accept-language ....) не имеет значения, какие конкретные значения вы выберете для них прямо сейчас - вам просто нужно убедиться, что у вас есть механизм, где вы можете быстро изменить параметры при первых признаках атаки. Хотя вы можете обработать запрос на веб-сервере, лучшим решением будет заблокировать доступ с удаленного IP-адреса с помощью iptables - fail2ban - это инструмент для связывания данных журнала с конфигурацией iptables.
Конечно, для крупномасштабного DDOS это не решит проблему того, что злоумышленники забивают ваш интернет-канал пакетами, которые игнорирует ваш сервер - для этого вам нужно поговорить со своим вышестоящим провайдером.
У нас есть оборудование, с помощью которого вы можете быстро изменить параметры при первых признаках атаки. Хотя вы можете обработать запрос на веб-сервере, лучшим решением будет заблокировать доступ с удаленного IP-адреса с помощью iptables - fail2ban - это инструмент для подключения данных журнала к вашей конфигурации iptables.Конечно, для крупномасштабного DDOS это не решит проблему того, что злоумышленники забивают ваш интернет-канал пакетами, которые игнорирует ваш сервер - для этого вам нужно поговорить со своим вышестоящим провайдером.
У нас есть оборудование, с помощью которого вы можете быстро изменить параметры при первых признаках атаки. Хотя вы можете обработать запрос на веб-сервере, лучшим решением будет заблокировать доступ с удаленного IP-адреса с помощью iptables - fail2ban - это инструмент для связывания данных журнала с конфигурацией iptables.Конечно, для крупномасштабного DDOS это не решит проблему, когда злоумышленники забивают ваш интернет-канал пакетами, которые игнорирует ваш сервер - для этого вам нужно поговорить со своим вышестоящим провайдером.
2 вещи, которые я бы порекомендовал изучить, - это ограничение скорости iptables и fail2ban . Fail2ban предоставит вам приличную автоматическую блокировку IP-адресов, которые слишком часто попадают на ваш сервер, и позволит вам настроить, как долго вы хотите, чтобы они были заблокированы. Ограничение скорости Iptables позволит вам ограничивать все типы трафика, поступающего на ваш сервер. Я нашел приличную статью об этом здесь . Однако, если вы выполните базовый поиск в Google, вы увидите намного больше.
Edit: Хотя у меня нет личного опыта работы с nginx, я вижу, что у него есть HttpLimitReqModule , на который вы также должны изучить .