Автоматизация аудита безопасности VPS с помощью vps-audit

Регулярная проверка безопасности сервера — это критически важный этап администрирования, однако администраторы часто ограничиваются лишь базовой проверкой доступности SSH и веб-сервисов. В реальности на VPS могут оставаться открытые порты, небезопасные настройки SSH, лишние запущенные службы или критическое заполнение дискового пространства.

Инструмент vps-audit представляет собой легковесный Bash-скрипт, который позволяет провести комплексный аудит безопасности вашего сервера без установки тяжелых систем мониторинга. Он последовательно проверяет ключевые параметры системы, используя стандартные утилиты Linux.

Что проверяет vps-audit

Скрипт анализирует состояние сервера по множеству параметров, включая:

  • Конфигурацию SSH (sshd_config);
  • Статус межсетевого экрана (UFW);
  • Работу Fail2ban;
  • Историю неудачных попыток входа в систему;
  • Наличие доступных обновлений пакетов;
  • Список запущенных сервисов systemd;
  • Открытые сетевые порты;
  • Поиск SUID-файлов;
  • Текущую нагрузку на CPU, RAM и дисковую подсистему.

Результаты проверки выводятся в удобном формате с цветовой индикацией статусов: PASS (норма), WARN (рекомендуется обратить внимание) и FAIL (потенциальная уязвимость).

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

Для начала работы с утилитой выполните следующие команды:

wget https://raw.githubusercontent.com/vernu/vps-audit/main/vps-audit.sh

chmod +x vps-audit.sh

Запуск аудита осуществляется с правами суперпользователя:

sudo ./vps-audit.sh

Примеры анализа

В ходе проверки SSH скрипт выведет отчет вида:

[PASS] SSH Root Login - disabled
[WARN] SSH Port - using default port 22

Для анализа сетевой активности скрипт задействует утилиту ss:

ss -tulpn

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

Ручной контроль безопасности

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

Просмотр активных сервисов:

systemctl list-units --type=service --state=running

Поиск файлов с установленным битом SUID (возможный вектор повышения привилегий):

find / -perm -4000 -type f 2>/dev/null

Просмотр истории последних неудачных попыток входа:

lastb