Проверка безопасности Linux‑сервера
| Уровень сложности | Лёгкий |
| Права root | Требуются |
| Требования | Терминал Linux |
| Категория | Безопасность |
| Совместимость с ОС | AlmaLinux, Arch, CentOS, Debian, Fedora, Linux Mint, openSUSE, Pop!_OS, RHEL, Rocky Linux, Slackware, CentOS Stream, SUSE, Ubuntu |
| Примерное время чтения | 6 минут |
Введение
Информационная безопасность Linux‑сервера является одной из ключевых задач системного администрирования. Даже при корректной первичной настройке и регулярном обновлении системы невозможно полностью исключить риск компрометации. Уязвимости в прикладном программном обеспечении, ошибки конфигурации, слабые учетные данные или человеческий фактор могут привести к несанкционированному доступу.
Цель данной статьи - предоставить подробное, структурированное и практико‑ориентированное руководство по проверке Linux‑сервера на предмет взлома, а также пояснить, как интерпретировать результаты выполняемых команд.
Материал предназначен для начинающих администраторов серверов под управлением Debian, Ubuntu, CentOS, AlmaLinux и других дистрибутивов Linux.
Что считается компрометацией сервера
Компрометация сервера - это любое состояние системы, при котором злоумышленник получает возможность выполнять действия, выходящие за рамки разрешённых прав.
Компрометация может проявляться в следующих формах:
- несанкционированный интерактивный доступ (SSH, консоль);
- создание скрытых или фиктивных учетных записей;
- установка вредоносного ПО (майнеры, прокси, боты);
- внедрение backdoor‑механизмов для повторного доступа;
- подмена или модификация системных бинарных файлов;
- установка rootkit‑компонентов, скрывающих процессы и файлы;
- несанкционированные сетевые соединения и передача данных.
Важно понимать, что отсутствие явных симптомов (например, высокой нагрузки) не означает, что сервер не скомпрометирован.
1. Анализ пользовательской активности
1.1 Проверка активных пользовательских сессий
Команда:
w
Команда отображает список пользователей, которые в данный момент вошли в систему, а также:
- источник подключения (IP‑адрес);
- время входа;
- выполняемые команды.
Обратите внимание следует на:
- неизвестные или неиспользуемые учетные записи;
- подключения с внешних или нетипичных IP‑адресов;
- активные сессии в ночное время или вне регламентных окон обслуживания.
Наличие активной сессии, происхождение которой администратор не может объяснить, является серьёзным индикатором возможной компрометации.
1.2 Анализ истории входов в систему
Команда:
last
Команда отображает историю входов пользователей в систему, включая:
- имя пользователя;
- источник подключения;
- дату и продолжительность сессии.
Обратите внимание следует на:
- регулярные входы под учетной записью root;
- попытки входа с различных IP‑адресов за короткий период времени;
- входы из сетей, не относящихся к вашей инфраструктуре.
1.3 Анализ истории выполняемых команд
Команда:
history
Команда показывает список команд, выполнявшихся пользователем в рамках его сессий.
Подозрительными считаются:
-
загрузка файлов через
wgetиcurl; -
использование
bash,sh,python,perlдля запуска скриптов; -
выполнение команд из каталогов
/tmp,/var/tmp,/dev/shm; -
очистка логов и истории команд.
2. Анализ процессов и системных ресурсов
2.1 Мониторинг нагрузки
Команда:
top
Команда отображает процессы в реальном времени и их потребление CPU, памяти и других ресурсов.
Следует насторожиться, если:
- неизвестный процесс стабильно потребляет значительную долю CPU;
- процесс работает под root без очевидной необходимости;
- нагрузка сохраняется даже при отсутствии пользовательской активности.
Такие признаки часто характерны для майнеров и бот‑клиентов.
2.2 Полный список процессов
Команда:
ps aux
Что стоит проверять:
- имя и назначение процесса;
- пользователя, от имени которого он запущен;
- путь к исполняемому файлу.
Процессы с неочевидными именами или запускаемые из нестандартных каталогов требуют дополнительного анализа.
2.3 Проверка исполняемого файла процесса
Команда:
ls -l /proc/<PID>/exe
Команда позволяет определить фактический путь к бинарному файлу запущенного процесса.
Стоит обратить внимание на исполняемые файлы, расположенные в:
- /tmp
- /var/tmp
- /dev/shm
В большинстве случаев такое расположение указывает на вредоносную активность.
3. Анализ сетевой активности
3.1 Проверка открытых портов
Команда:
ss -tulnp
Что показывает команда:
- какие порты прослушиваются системой;
- какие процессы связаны с сетевыми сокетами;
- какие сервисы принимают входящие соединения.
Необходимо убедиться, что:
- открыты только ожидаемые порты (SSH, HTTP/HTTPS и т.д.);
- отсутствуют неизвестные сервисы;
- процессы соответствуют установленному ПО.
3.2 Анализ трафика в реальном времени
Утилиты iftop и nload позволяют наблюдать сетевой трафик.
# Для Debian
sudo apt update
# Обновление списка пакетов
sudo apt install -y iftop nload
# Установка утилит iftop и nload
# Для RHEL
sudo dnf install -y epel-release
# Подключение репозитория EPEL, необходимого для iftop и nload
sudo dnf install -y iftop nload
# Установка утилит iftop и nload
Признаки угрозы
- постоянный исходящий трафик без нагрузки;
- соединения с неизвестными внешними IP‑адресами;
- высокая активность при отсутствии пользовательских запросов.
4. Проверка планировщика заданий (cron)
Команды:
crontab -l
crontab -u <user> -l
ls -la /etc/cron.*
Что проверять:
- неизвестные задания;
- зашифрованные или обфусцированные команды;
- загрузку скриптов из сети;
- регулярный запуск бинарных файлов из временных каталогов.
Cron один из наиболее популярных механизмов закрепления злоумышленников в системе.
5. Анализ системных журналов
5.1 Журналы аутентификации
Debian / Ubuntu:
tail /var/log/auth.log
CentOS / RHEL:
tail /var/log/secure
Что надо искать:
- массовые неудачные попытки входа;
- успешные логины с подозрительных IP;
- использование sudo неизвестными пользователями.











