Перейти к основному контенту

Проверка безопасности Linux‑сервера

intro-linux-Security-Checking-planetahost.png

Подробности урока

Уровень сложности Лёгкий
Права 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

изображение.png

Команда отображает список пользователей, которые в данный момент вошли в систему, а также:

  • источник подключения (IP‑адрес);
  • время входа;
  • выполняемые команды.

Обратите внимание следует на:

  • неизвестные или неиспользуемые учетные записи;
  • подключения с внешних или нетипичных IP‑адресов;
  • активные сессии в ночное время или вне регламентных окон обслуживания.

Наличие активной сессии, происхождение которой администратор не может объяснить, является серьёзным индикатором возможной компрометации.

1.2 Анализ истории входов в систему

Команда:

last

изображение.png

Команда отображает историю входов пользователей в систему, включая:

  • имя пользователя;
  • источник подключения;
  • дату и продолжительность сессии.

Обратите внимание следует на:

  • регулярные входы под учетной записью root;
  • попытки входа с различных IP‑адресов за короткий период времени;
  • входы из сетей, не относящихся к вашей инфраструктуре.

1.3 Анализ истории выполняемых команд

Команда:

history

изображение.png

Команда показывает список команд, выполнявшихся пользователем в рамках его сессий.

Подозрительными считаются:

  • загрузка файлов через wget и curl;

  • использование bash, sh, python, perl для запуска скриптов;

  • выполнение команд из каталогов /tmp, /var/tmp, /dev/shm;

  • очистка логов и истории команд.

2. Анализ процессов и системных ресурсов

2.1 Мониторинг нагрузки

Команда:

top

изображение.png

Команда отображает процессы в реальном времени и их потребление CPU, памяти и других ресурсов.

Следует насторожиться, если:

  • неизвестный процесс стабильно потребляет значительную долю CPU;
  • процесс работает под root без очевидной необходимости;
  • нагрузка сохраняется даже при отсутствии пользовательской активности.

Такие признаки часто характерны для майнеров и бот‑клиентов.

2.2 Полный список процессов

Команда:

ps aux

изображение.png

Что стоит проверять:

  • имя и назначение процесса;
  • пользователя, от имени которого он запущен;
  • путь к исполняемому файлу.

Процессы с неочевидными именами или запускаемые из нестандартных каталогов требуют дополнительного анализа.

2.3 Проверка исполняемого файла процесса

Команда:

ls -l /proc/<PID>/exe

изображение.png

Команда позволяет определить фактический путь к бинарному файлу запущенного процесса.

Стоит обратить внимание на исполняемые файлы, расположенные в:

  • /tmp
  • /var/tmp
  • /dev/shm

В большинстве случаев такое расположение указывает на вредоносную активность.

3. Анализ сетевой активности

3.1 Проверка открытых портов

Команда:

ss -tulnp

nload изображение.png

Что показывает команда:

  • какие порты прослушиваются системой;
  • какие процессы связаны с сетевыми сокетами;
  • какие сервисы принимают входящие соединения.

Необходимо убедиться, что:

  • открыты только ожидаемые порты (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

изображение.png

изображение.png

Признаки угрозы

  • постоянный исходящий трафик без нагрузки;
  • соединения с неизвестными внешними IP‑адресами;
  • высокая активность при отсутствии пользовательских запросов.

4. Проверка планировщика заданий (cron)

Команды:

crontab -l
crontab -u <user> -l
ls -la /etc/cron.*

изображение.png

Что проверять:

  • неизвестные задания;
  • зашифрованные или обфусцированные команды;
  • загрузку скриптов из сети;
  • регулярный запуск бинарных файлов из временных каталогов.

Cron один из наиболее популярных механизмов закрепления злоумышленников в системе.

5. Анализ системных журналов

5.1 Журналы аутентификации

Debian / Ubuntu:

tail /var/log/auth.log

CentOS / RHEL:

tail /var/log/secure

изображение.png

Что надо искать:

  • массовые неудачные попытки входа;
  • успешные логины с подозрительных IP;
  • использование sudo неизвестными пользователями.

5.2 Журналы перезагрузок

Команда:

last reboot

изображение.png

Команда last reboot анализирует файл /var/log/wtmp и выводит историю всех перезагрузок системы, включая:

  • дату и время перезагрузки;
  • время работы системы между перезагрузками;
  • тип события (reboot, crash).

Частые перезагрузки без явной причины могут указывать на:

  • аппаратные проблемы (RAM, питание, перегрев);
  • kernel panic;
  • вмешательство злоумышленника (принудительный reboot для сокрытия следов).

6. Проверка на rootkit и backdoor

Rootkit - это вредоносное ПО, предназначенное для скрытого получения контроля над системой. Оно часто маскируется под системные процессы и не видно стандартными средствами.

6.1 chkrootkit

Установка и запуск:

apt insta7ll chkrootkit
chkrootkit

изображение.png

Что делает chkrootkit:

  • проверяет системные бинарники (ls, ps, netstat, ifconfig);
  • ищет известные сигнатуры rootkit;
  • анализирует подозрительные порты и процессы.

Результаты необходимо анализировать внимательно, так как возможны ложные срабатывания.

6.2 rkhunter

Установка и запуск:

apt install rkhunter
rkhunter --check

изображение.png

Что делает rkhunter:

  • проверку хешей системных файлов;
  • анализ прав доступа;
  • поиск скрытых файлов и каталогов;
  • проверку загрузочных секторов;
  • анализ сетевых портов.

Результаты необходимо анализировать внимательно, так как возможны ложные срабатывания.

7. Контроль целостности файлов

Контроль целостности файлов позволяет выявлять неавторизованные изменения системных компонентов, которые могут свидетельствовать о компрометации.

8.7.1 Методы проверки

Сравнение контрольных сумм бинарных файлов с оригинальными версиями из официальных репозиториев. Например, в Debian/Ubuntu можно использовать:

md5sum /usr/bin/ssh

изображение.png

И сравнить с контрольной суммой из пакета dpkg -V openssh-client.client.

Использование специализированных утилит для мониторинга целостности:

  • AIDE (Advanced Intrusion Detection Environment)
  • Tripwire
  • rpm -V для систем на базе RHEL/CentOS

8.7.2 Интерпретация результатов

Любое изменение системных бинарников, конфигурационных файлов или библиотек следует рассматривать как потенциальный индикатор компрометации.

Ложные срабатывания возможны, если файлы обновлялись через систему управления пакетами.

Рекомендуем вести регулярные снимки контрольных сумм и сравнивать их, особенно после обновлений и установки нового ПО.

8. Действия при подтверждённой компрометации

Если признаки взлома подтверждены, необходимо действовать системно и безопасно.

8.1 Первичные меры

  • Ограничение доступа к сети - отключить интерфейсы или настроить firewall, чтобы остановить утечку данных.
  • Снимки текущего состояния - зафиксировать процессы, сетевые соединения, логи, содержимое критичных файлов для дальнейшего анализа.
  • Идентификация вектора атаки - определить, через какой сервис или уязвимость был осуществлён доступ.

8.2 Восстановление системы

  • Переустановка операционной системы - часто единственный гарантированный способ удалить скрытые вредоносные компоненты.
  • Восстановление данных из проверенного бэкапа - только из источника, который не был скомпрометирован.
  • Смена учетных данных и ключей доступа - SSH-ключи, пароли root и сервисные учетные записи.

8.3 Анализ и отчётность

  • Провести анализ логов и файлов для изучения масштаба инцидента.
  • Составить внутренний отчёт о произошедшей компрометации, включая рекомендации для предотвращения повторного взлома.

9. Профилактика и рекомендации

Системная профилактика позволяет снизить риск компрометации и повысить устойчивость инфраструктуры.

9.1 Рекомендации по безопасности

  1. Регулярное обновление системы и приложений - своевременно устанавливать патчи безопасности.
  2. Использование SSH‑ключей вместо паролей - исключает возможность brute-force атак на root.
  3. Ограничение доступа по IP и firewall - разрешать подключение только из доверенных сетей.
  4. Fail2ban и аналогичные механизмы - автоматическая блокировка подозрительных попыток входа.
  5. Аудит логов и мониторинг активности - систематический контроль с анализом аномалий.
  6. Резервное копирование и проверка бэкапов - обеспечивают восстановление системы после инцидента.
  7. Использование IDS/HIDS (например, OSSEC/Wazuh) - мониторинг изменений файлов и поведения системы.

9.2 Поведенческие рекомендации

  • Не устанавливать сомнительное ПО из непроверенных источников.
  • Ограничивать права пользователей до минимально необходимых.
  • Периодически проверять открытые порты и активные сервисы.
  • Проводить регулярные тренировки по реагированию на инциденты.

Заключение

Регулярный контроль Linux‑сервера, включая мониторинг пользователей, процессов, сети, логов и целостности файлов, позволяет своевременно выявлять угрозы. Системный подход к профилактике и готовность к действиям при компрометации обеспечивают высокий уровень безопасности и минимизируют потенциальный ущерб для инфраструктуры.