Вопрос или проблема
Извините, если это уже было задано и отвечено. Я нашел вопросы, где люди спрашивают, как подавить определенные сообщения об ошибках Apache, или где ошибка является действительной ошибкой, которую им нужно исправить.
Тем не менее, я пытаюсь понять, как спамеры добираются до моего сервера так далеко, что Apache записывает эти сообщения об ошибках.
Я использую AWS EC2 Ubuntu для работы Apache. Единственный разрешенный доступ (правила входящих соединений на панели управления EC2) осуществляется через http/https и SSH с использованием пар ключей. У меня только частный ключ.
AH01797: клиент отклонен серверной конфигурацией
AH01797: клиент отклонен серверной конфигурацией: /var/www/html/src
И тому подобное:
- … /var/www/html/php5.ini
- … /var/www/html/storage
- … /var/www/html/sendgrid.json
Ни один из этих файлов не существует. Единственный файл, который там есть – это файл по умолчанию из установки Ubuntu Apache /var/www/html/index.html, который я не использую.
Целевой WSGI-скрипт не найден или не удается получить информацию
Целевой WSGI-скрипт не найден или не удается получить информацию: /home/ubuntu/actual_path_to/wsgi.py/partial_real_url/new-hack-generator-free-aggretsuko-diamo/much_much_longer_repeating/
Путь – это фактический путь к файлу wsgi.py, используемому моим сайтом на Django. Затем следует очень длинный и спам-подобный путь/URL.
Как они проникают?
Я постоянно получаю запросы хакерских URL, но они доходят до моего кода Django и обрабатываются как страницы не найдены, страницы ошибок и т.д. Или я использую Cloudflare для блокировки определенных агента пользователей, IP-адресов, очевидных спам заявок.
Это… запросы URL? Или кто-то пытается напрямую получить доступ к серверу…? Это нормальная и допустимая обработка?
Ответ или решение
Конечно, рассмотрим вашу ситуацию подробно.
Теория
Во-первых, важно понять, что оба сообщения об ошибках крайне распространены при администрировании веб-серверов Apache и, как правило, не являются результатом взлома. Они возникают в ответ на определенные запросы, поступающие на ваш сервер, и могут объясняться различными факторами.
-
"Client denied by server configuration" (AH01797): Эта ошибка указывает на то, что к клиенту (это может быть пользователь или бот) был отказан доступ из-за настроек сервера. Она появляется, когда сервер отказывается обслуживать запрос к определенному ресурсу из-за настроек файлов .htaccess, директив Order, Allow и Deny в конфигурационных файлах Apache, или из-за настроек пользовательских групп и разрешений на уровне операционной системы.
-
"Target WSGI script not found or unable to stat": Эта ошибка показывает, что Apache не может найти указанный WSGI скрипт, либо он не может быть прочитан (не хватает разрешений). Обычно это связано с неверно указанным путем, отсутствием файла по указанному пути, или некорректной настройкой прав доступа.
Пример
Рассмотрим ваш конкретный случай. Вы упомянули, что файлы, к которым пытаются получить доступ, физически отсутствуют на сервере, например, php5.ini, sendgrid.json и так далее. Это явный признак того, что автоматизированные сканирующие боты или потенциальные злоумышленники ищут известные слабые места или пытаются запустить вредоносное ПО. Эти запросы – результат активности злоумышленников в сети интернет, они сканируют сервер на наличие конфигурационных ошибок или уязвимостей. Аналогично и с WSGI-путями: структура URL указывает на автоматизированные попытки пробить дырки в безопасности.
Применение
Чтобы разобраться с данными ситуациями и уменьшить их влияние, рекомендуется следующее:
-
Убедитесь в конфигурации доступа: Проверьте настройки файерволла, чтобы разрешить доступ только с доверенных IP-адресов, если это возможно. Apache конфигурации, такие как .htaccess, должны быть настроены так, чтобы отказываться от подозрительных действий.
-
Мониторинг и логирование: Регулярно анализируйте логи доступа и ошибки сервера. Это позволит вовремя распознать и заблокировать источники нежелательного трафика.
-
Защита WSGI: Убедитесь, что все ваши WSGI-скрипты имеют правильные права доступа и ничто постороннее не может их модифицировать. Защитите пути к этим скриптам от лишних глаз с помощью настроек в Apache.
-
Использование CDN и Web Application Firewall: Поскольку Cloudflare уже упоминается в вашем вопросе, продолжайте использовать его возможности для блокировки подозрительного трафика. Web Application Firewall поможет защититься от известного вредоносного трафика и уязвимостей.
-
Обновления и патчи: Регулярно обновляйте серверное ПО и библиотеки. Устаревший софт может содержать уязвимости, которые злоумышленники способны эксплуатировать.
-
Образование и повышение осведомленности: Изучайте способы и техники, которые используют злоумышленники. Понимание того, как работают атаки, поможет более эффективно строить защиту.
Подводя итог, нет ничего необычного в том, что ваш сервер привлекает внимание злоумышленников – любой доступный в сети сервер переживает подобное. Ваша задача – убедиться, что он правильно защищен и находится под постоянным надзором.