Мой сайт ежедневно получает тысячи посещений с разных IP-адресов, пытающихся получить доступ:
/php-myadmin/
/myadmin/
/mysql/
... и тысячи других вариантов. Ни один из этих каталогов не существует, у меня даже нет phpmyadmin на моем сервере.
Я не думаю, что какие-либо из этих попыток были успешными, однако они должны сказываться на ресурсах сервера и тратить трафик, поэтому я хотел бы остановить их, если это возможно. Я заблокировал несколько этих IP-адресов, но они продолжают возвращаться с новыми IP-адресами. Можно ли как-нибудь предотвратить это навсегда?
web-server
hacking
amba88
источник
источник
mod_security
в этой теме, так что проверьте это . Обратите внимание на комментарий ниже, отмечающий, что это на самом деле заставит сервер выполнять больше работы. Так что, возможно,mod_evasive
было бы также хорошо для реализации .fail2ban
, но это указано ниже.Ответы:
Не беспокойся об этом. Обслуживание 404 - это крошечный, крошечный, крошечный объем работы для веб-сервера. Вероятно, вы могли бы обслуживать десять 404-х в секунду, используя 486. Пропускная способность на 404 пренебрежимо мала; крошечный запрос GET и крошечный ответ 404.
Шутки в сторону; не беспокойся об этом Это просто неотъемлемая часть работы сервера в интернете.
источник
К сожалению для вас, так работает Интернет. Просто игнорируй это. Тысячи ботов / троянов сканируют Интернет. Исходный IP будет всегда случайным. Там нет никакого лечения.
Единственное 100% решение для устранения этого трафика показано ниже:
Альтернатива:
- перейти с https / http с порта 80/443 на что-то другое. Боты обычно не ищут http-сервер на всех других портах 65k.
- использовать VPN для подключения к серверу (я думаю, это невозможно, если вы размещаете общедоступный веб-сайт).
источник
То, что вы хотите, это Fail2ban (предполагая, что это машина Linux, вы не сказали ...)
Что такое Fail2ban?
Fail2ban будет анализировать системные журналы в поисках определенных регулярных выражений для блокировки. Когда он находит совпадение (или несколько совпадений с одного и того же IP-адреса, в зависимости от того, как вы его настроили), он блокируется, как правило, с помощью таблиц IPTable. Обычно это используется для блокировки неудачных попыток аутентификации на SSH или веб-серверах.
Вы настраиваете его для запрета на определенный период времени (может быть минут, может быть дней ... зависит от того, насколько они постоянны), после чего срок действия запрета истечет, если они не попытаются снова.
Как это помогает блокировать сканирование phpmyadmin ботами?
Его также легко можно использовать для сопоставления с общими признаками атаки, например, при попытке доступа к несуществующим папкам phpmyadmin. Вам нужно будет найти правильное регулярное выражение для соответствия таким попыткам и убедиться, что вы не блокируете законных пользователей.
Конфигурация, приведенная в этом сообщении в блоге, может работать дословно или потребовать некоторых настроек для вашей настройки.
Почему я должен их блокировать? 404 ошибки не стоят дорого
Блокировка их в iptables НЕОБХОДИМО использовать: если они проверяют уязвимости phpmyadmin, они могут также использовать другие сервисы для поиска уязвимостей, пока не столкнутся с чем-то, что работает. Запрет на них заставит большинство ботов / скриптов сдаться через некоторое время, и они перейдут к лучшим целям.
Даже сканирование не требует больших затрат (если только они на самом деле не находят уязвимости), они затопляют ваши логи, затрудняя просмотр успешных атак и проблем с вашим веб-сервером.
Как говорится в комментарии ниже, Fail2ban требует некоторых системных ресурсов. Но не много. По крайней мере, я могу сказать, что у меня никогда не было проблем с производительностью, которые я мог бы отнести к Fail2ban. Однако у меня были проблемы с производительностью из-за очень агрессивных сценариев, пытающихся перебором паролей или бросающих тысячи попыток внедрения SQL-кода и других эксплойтов в секунду на моем сервере. Блокировка их на уровне брандмауэра занимает на FAR меньше ресурсов, чем их блокировка на уровне сервера / приложения. Он также может быть расширен для запуска пользовательских сценариев для запрета IP-адресов - поэтому вместо того, чтобы запрещать их в IPtables, вы можете запретить их в аппаратном брандмауэре или по электронной почте, если тот же человек продолжает пытаться атаковать вас, чтобы вы могли жаловаться своему провайдеру или попросите ваш центр обработки данных заблокировать их на своих брандмауэрах.
Любые другие советы?
НАСТОЯТЕЛЬНО РЕКОМЕНДУЕТСЯ вносить в белый список несколько IP-адресов, которые вы контролируете, чтобы случайно не заблокировать себя.
источник
Я помещаю небольшой скрипт в соответствующий каталог, чтобы он запускался, если кто-то заходит в / phpmyadmin /. Этот скрипт ничего не делает, кроме как вызывает iptables (под Linux), который блокирует IP-адрес, обращающийся к скрипту, на 30 минут (после чего cron-job сбрасывает цепочку iptables, к которой добавляется IP-адрес).
Преимущество по сравнению с fail2ban заключается в том, что вы не используете какие-либо ресурсы для разбора syslog / access-log. Недостатком, конечно, является то, что вы не проверяете больше ничего, кроме доступа к этому очень конкретному адресу.
Почему я это делаю? Конечно, обслуживать сервер 404 было бы легко для сервера, но я не хочу, чтобы они возились, просто так. Я хочу потратить впустую время своего инструмента, ожидая ответа сервера, повторяя попытки, пока он, наконец, не сдастся. Кроме того, если вы не заблокируете их, они попробуют множество различных URL-адресов, прежде чем перейти к следующему этапу - иногда более тысячи. В зависимости от инструмента, он может быть «хорошим» и размещать их в течение нескольких часов, или он может просто не заботиться о том, чтобы забить ваш сервер всем этим в течение нескольких минут.
Почему я не обслуживаю действующую страницу? Их инструмент может перестать сканировать вас и оповестить заносителя, который его запускает, - который затем должен проверить вручную. Обратной стороной этого является то, что они придадут вашему серверу гораздо более пристальный взгляд, чем они могли бы, если бы их сканирование не заставило вас найти их результаты. Может быть, они будут немного больше копаться, может быть, несколько сканирований портов, возможно, вы разозлите их, и они запустят DoS, чтобы посмотреть, смогут ли они что-нибудь сделать. Простая их блокировка, которая, с их точки зрения, сокращает время ожидания сервера в момент доступа к скрипту phpmyadmin, эффективно тратит время их инструмента и избегает нежелательного внимания.
Если у вас действительно есть phpMyAdmin на сервере, эффективное решение может заключаться в том, чтобы поместить его в отдельный каталог и использовать управление паролем вашего веб-сервера (.htpasswd для Apache), чтобы заблокировать доступ до того, как что-либо достигнет его.
источник
Мы ограничиваем доступ только к / phpmyadmin / только IP-адресам из белого списка.
Мы также используем mod_evasive (на apache2) для предотвращения DOS / скриптовых атак с плохим поведением.
источник
привязать инструмент администрирования mysql к адресу обратной связи вашей машины 127.0.0.1
затем используйте ssh с переадресацией портов для доступа к админ-панели.
добавить дополнительный уровень безопасности, который может быть довольно прозрачным.
источник
Лучший способ, который мы нашли, это защитить паролем папку, в которой находится phpmyadmin. Кроме того, не используйте в качестве имени папки ничего, что относится к phpmyadmin: pma, phpmy и т. Д.
источник
None of these directories exist, I don't even have phpmyadmin on my server.
- Он не спрашивает, как укрепить свои существующие установки ... он спрашивает, что делать с вещами, которые не существуют. Вы не можете переименоватьPMA
или что у вас есть, если его не существует.