vps-audit: быстрый аудит безопасности сервера на Bash
Автоматизация аудита безопасности 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