Всем добрый день!
Я ищу способ заблокировать входящие запросы с IP-адресов из черного списка и прокси (в основном анонимных) на мой сервер. Хотя совершенно очевидно, как это сделать с помощью конфигурации Apache, главный вопрос заключается в том, где я могу найти регулярно обновляемый список таких IP-адресов?
Есть ли «лучшая практика» для этого?
Более подробно рассмотрим причины этого: мой веб-сайт получает огромный входящий трафик с разных IP-адресов, расположенных в основном в США. Почти каждый запрос откладывает один от другого, поэтому я не могу заблокировать ни конкретный IP-адрес, ни диапазон IP-адресов по подсети. Хотя это не настоящая DDoS-атака, мой выделенный сервер почти отключается: /
Я думаю, что мне нужно что-то вроде Fail2Ban и DenyHosts, но основанное не только на сбое пароля, но и на всем входящем трафике.
Есть отличный как установить MoBlock на вашем сервере; он написан для Ubuntu, но направления могут быть адаптированы для любого дистрибутива. Это инструмент, который позволяет загружать произвольные списки блокировки и переводить их в правила брандмауэра, чтобы ваш сервер мог быстро и эффективно отбрасывать трафик задолго до того, как Apache возьмется за него.
Что касается самих блок-листов, то есть Черные списки IP-адресов BISS; в основном они ориентированы на блокировку объектов, которые пытаются отслеживать одноранговый трафик, что у них получается довольно хорошо. Тем не менее, у них есть список «Tor / прокси», который предназначен для блокировки открытых прокси и маршрутизаторов Tor, но я не могу делать никаких конкретных заявлений относительно его точности или эффективности.
Я также нашел программу под названием DDoS-Deflate который подразумевает автоматическое добавление правил брандмауэра для блокировки источников с высоким уровнем соединения, но опять же, я никогда не использовал его сам, поэтому не могу сказать вам, насколько хорошо он работает.
Наконец, очевидно, что в iptables есть Hitcount команда, которая автоматически ограничивает скорость входящих соединений:
sudo iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH
sudo iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 8 --rttl --name SSH -j DROP
Это ограничит входящие SSH-соединения до 8 за 60 секунд и уже встроено.
я использую http://feeds.dshield.org/block.txt
а иногда, если я хочу быть более агрессивным, я использую списки, доступные на http://www.wizcrafts.net/blocklists.html
Попробуйте ModSecurity: http://www.modsecurity.org/, в сочетании с SSHBlack: http://www.sshblack.com/
Существует ряд сайтов, которые якобы перечисляют «оскорбительные» IP-адреса. мне нравиться Проектная приманка, поскольку он бесплатный (если вы участвуете в сети) и имеет достаточно открытые критерии того, что попадает в список. В противном случае поиск Google по запросу «черный список открытых прокси-серверов», похоже, дает длинный набор результатов; Я не могу дать конкретных рекомендаций, но лучше всего, если вы проанализируете варианты под свои нужды.