Анализ логов сервера: как понять, что вас пытаются взломать?
Приветствую, друзья!
Когда вы арендуете VPS и поднимаете на нем проект, вам может казаться, что в системе царит полная тишина, пока на сайт не зайдут реальные пользователи. Но стоит открыть сырые системные логи, как иллюзия спокойствия мгновенно рушится. В 2026 году интернет превратился в агрессивную среду, где тысячи автоматизированных ИИ-сканеров и ботнетов круглые сутки прощупывают каждый доступный IPv4 и IPv6 адрес в поисках уязвимостей.
Большинство успешных хакерских атак происходят не потому, что злоумышленники используют сверхсложные приватные эксплойты. Хакеры просто находят открытую админку, забытый бэкап в публичной папке или подбирают слабый пароль к SSH. Сервер всегда «кричит» о том, что его атакуют, оставляя сотни записей в журналах. Главное — уметь эти записи читать. Из личного опыта (так как я снимаю видео-туториалы для нашего YouTube-канала) могу сказать следующее: даже если сервер поднят считанные минуты, его уже прощупывают боты, и это отлично видно, как только вы откроете папку логов.
В этой статье мы разберем основные маркеры подозрительной активности в логах Linux (Ubuntu 24.04 / Debian) и Nginx, а также научимся вычислять злоумышленников до того, как они нанесут реальный ущерб.
Key Takeaways: Главное об анализе логов
Логи — это черные ящики системы: При любой аномалии в поведении сервера аудит нужно начинать с двух главных точек:
/var/log/auth.log(безопасность ОС) и журнала доступа веб-сервера.Автоматизация против рутины: Искать следы взлома вручную в текстовых файлах объемом в гигабайты неэффективно. Используйте регулярные выражения и утилиты автоматизации (Fail2ban, Graylog).
Тишина — плохой знак: Если файлы логов весят ровно 0 байт или внезапно прерываются, это верный признак того, что злоумышленник уже закрепился в системе и зачистил следы своего присутствия.
Как установить Fail2ban и Graylog?
Мы сняли подробные видеоинструкции, которые показывают весь процесс установки и настройки обоих инструментов автоматической защиты и мониторинга на вашем сервере:
Видеоинструкция по установке Fail2ban на Ubuntu:
Все команды для настройки тюрьмы SSH и таймаутов блокировки вы найдете в описании под видео и в закрепленном комментарии.
Видеоинструкция по развертыванию системы сбора логов Graylog:
Все конфигурационные файлы, ключи репозиториев и команды для интеграции дата-ноды доступны в описании под видео.
Главные индикаторы атаки: Что искать в журналах?
1. Брутфорс SSH (Подбор паролей)
Журнал авторизации — это первое место, куда бьют ботнеты. Откройте файл /var/log/auth.log (в CentOS/RHEL это /var/log/secure). Если вы видите бесконечные строки вида:
Failed password for invalid user admin from 192.0.2.5 port 43210 ssh2
Это означает, что к вашему серверу прямо сейчас подбирают пароль по словарю, планомерно перебирая популярные логины (root, admin, user, test).
2. Поиск скрытых файлов и админок (Web Scanning)
В логах веб-сервера Nginx или Apache (/var/log/nginx/access.log) атака выглядит как лавина быстрых запросов, возвращающих статус 404 Not Found. Сканеры ищут уязвимые интерфейсы и файлы конфигураций:
GET /wp-admin/или/wp-login.php(поиск уязвимостей WordPress)GET /.envилиGET /config.json(попытки украсть пароли от БД и API-ключи)GET /.git/config(попытка выкачать репозиторий проекта)GET /phpMyAdmin/index.php(поиск панелей управления базами данных)
3. SQL-инъекции и удаленный запуск команд (RCE)
Если в логах веб-сервера появляются запросы с обилием странных символов, кавычек или системных путей, вас пытаются взломать направленно:
GET /index.php?id=1+AND+(SELECT+321+FROM+(SELECT(SLEEP(5)))— проверка на наличие слепой SQL-инъекции.GET /cgi-bin/main.cgi?cmd=cat%/etc/passwd— попытка несанкционированного чтения системных файлов Linux.
Сравнительная таблица: Типы активности в серверных логах
| Тип активности | Как выглядит строка в логе (пример) | На что нацелена атака | Первоочередное действие админа |
| SSH Brute Force | Failed password for root from... | Захват полного контроля над ОС. | Смена порта SSH, запрет root-авторизации, вход по ключам. |
| Уязвимости CMS | GET /wp-content/plugins/... 200 | Внедрение веб-шелла или спам-скрипта. | Немедленное обновление плагинов и ядра CMS. |
| Path Traversal | GET /../../etc/passwd 400 | Чтение конфигов и приватных данных. | Корректная настройка прав open_basedir в PHP. |
| Сканирование портов | Короткие TCP-запросы без передачи данных. | Составление карты открытых служб сервера. | Закрытие всех неиспользуемых портов через UFW/iptables. |
Практикум: 3 команды для быстрого аудита сервера в консоли
Чтобы быстро оценить обстановку на сервере под управлением Ubuntu 24.04, используйте эти простые терминальные команды. Они агрегируют текстовый мусор в понятную и полезную статистику:
Поиск топ-10 IP-адресов, штурмующих ваш SSH:
Bashsudo grep "Failed password" /var/log/auth.log | awk '{print $(NF-3)}' | sort | uniq -c | sort -nr | head -n 10Анализ самых частых 404-ошибок в Nginx (выявление автоматических сканеров):
Bashsudo awk '$9 == 404 {print $7}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head -n 10Проверка успешных входов под всеми учетными записями:
Bashsudo grep "Accepted password\|Accepted publickey" /var/log/auth.log
FAQ: Коротко о главном
На сервере тысячи Failed password каждый день, пора паниковать?
Нет, это стандартный фоновый шум интернета. Роботы перебирают все IP-адреса подряд. До тех пор, пока у вас полностью отключен вход по паролю для пользователя
rootи корректно настроен Fail2ban, эти попытки абсолютно безопасны для сервера.Что делать, если я обнаружил IP-адрес взломщика?
Заблокируйте его на уровне файрвола. Например, с помощью встроенной утилиты UFW это делается одной короткой командой:
sudo ufw deny from IP_адрес.Как защитить логи от удаления хакерами?
Если злоумышленник получит наивысшие права root, он сотрет локальные файлы журналов. Чтобы этого избежать, настраивают централизованный сбор логов на изолированный сервер (например, с помощью системы Graylog, о которой мы говорили ранее).
Заключение
Регулярный анализ логов — это базовый навык, который позволяет вовремя заметить интерес хакеров к вашему проекту и заблокировать угрозу еще на этапе разведки. Помните: безопасность системы сильна настолько, насколько сильно её самое слабое звено. Чистый код, закрытые порты и контроль сетевых журналов гарантируют стабильный аптайм.
Поскольку глубокий анализ сетевых пакетов, парсинг логов в реальном времени и работа защитных систем (таких как Fail2ban, Zeek или Suricata) создают постоянную нагрузку на дисковую систему и процессор, безопасность требует качественной аппаратной базы.
И если вы сейчас находитесь в поиске надежного хостинг-решения под свои проекты, обратите внимание на наши услуги NVME VPS / Dedicated Server в MivoCloud.
Автор статьи — Anatolie Cohaniuc

