Разработка 4 мин чтения

vps-audit: что проверяет скрипт для VPS и чего не видит

vps-audit это один bash-файл, который ставит PASS, WARN или FAIL по настройкам VPS на Ubuntu и Debian. Я прочитал его целиком: что запускает под sudo, куда пишет, какие проверки слабые и чего нет вообще. Для владельцев ботов и сайтов без админа.

VPSбезопасностьаудит сервераDocker
Коротко. vps-audit (репозиторий nuver-labs/vps-audit, лицензия MIT) это один bash-файл на 610 строк. Он читает настройки сервера на Ubuntu или Debian и по каждому пункту ставит PASS, WARN или FAIL. Я прочитал его целиком. Настройки системы скрипт не меняет, пишет только файл отчёта и делает один запрос наружу: узнаёт публичный IP через api.ipify.org. SSH, fail2ban и счётчик обновлений он смотрит нормально. Docker, ключи, резервные копии и следы взлома он не видит. Часть зелёных оценок вводит в заблуждение. Я его не запускал, всё ниже написано по коду.
Хотите внедрить это у себя?

Сделаю под ключ: разберу задачу, назову срок и цену. Чтобы начать, напишите в Telegram одной фразой.

Аудит и укрепление VPS

Сервер есть, админа нет

Условный пример. На одном VPS живут Telegram-бот, сайт и мини-приложение. Настраивал всё фрилансер, потом он пропал. Вы хотите одну кнопку, которая скажет, в порядке ли сервер. Скрипт vps-audit выглядит как такая кнопка: запустил, получил цветной список. Поэтому его стоит прочитать до запуска и понимать, где цвет врёт. Базовую настройку с нуля я описывал в статье как настроить VPS для нетехнического владельца, здесь только про этот скрипт.

Что за проект

Данные на 10.11.2026 с GitHub. Репозиторий создан 13.12.2024. В августе 2026 его передали в организацию Nuver Labs, в README она названа автором и сопровождающим. Страницу nuverlabs.com/vps-audit я не открывал и условия компании не проверял. В репозитории лежат скрипт, README и файл LICENSE: текст MIT, копирайт 2024 года на физическое лицо. Платных модулей и отдельных лицензий я не нашёл.

Звёзд 3270, форков 313, коммитов 61, участников 12. Но 41 коммит сделал один аккаунт, остальные одиннадцать человек дали от одного до шести. Последний коммит и оба релиза (v0.1.0 и v0.2.0) датированы 10.08.2026, с тех пор прошло три месяца. Открытых обращений 13, самое свежее от 04.10.2026. Звёзд много. Поддержка держится на одном человеке.

Что скрипт делает под sudo

Он читает /etc/ssh/sshd_config, лог входов, sudoers, настройки fail2ban и pwquality. Запускает ufw status, iptables -L -n или nft list ruleset, systemctl, ss, dpkg -l, top, docker ps и apt-get -s upgrade, то есть только имитацию обновления. Команд, которые что-то ставят, правят или включают, я не нашёл. Ещё он обходит всю файловую систему в поиске SUID-файлов. На большом диске с Docker-томами это ощутимая нагрузка, время я не мерил.

Пишет скрипт в одно место: файл vps-audit-report-ДАТА.txt в текущей папке. Права на файл он не выставляет, они зависят от umask. В отчёте имя сервера, публичный IP и список портов, поэтому в чат и в репозиторий такой файл не кладите.

Наружу уходит один запрос: curl -s https://api.ipify.org в строке 118. Сторонний сервис видит IP вашего сервера, ничего больше туда не передаётся. В README скрипт назван «dependency-free», хотя это сетевая зависимость, и без интернета поле IP останется пустым.

Что он проверяет и где ошибается

SSH: вход root, пароль и порт. Вход root по ключу (значение по умолчанию) получает FAIL, хотя это нормальная настройка. Порт выше 1023 тоже FAIL, а стандартный 22 всего лишь WARN, так что перенос на 2222 оценку ухудшит.

Брандмауэр: берётся первый найденный из ufw, firewalld, iptables, nftables. Для iptables скрипт ищет строку «Chain INPUT», а она печатается всегда. Если ufw не стоит, а iptables есть, будет PASS даже при пустых правилах.

Fail2ban и CrowdSec: проверка, что стоит и запущен. Сильная часть: скрипт проверяет, что jail sshd смотрит на реальный порт SSH, иначе баны холостые. Про сам Fail2Ban я писал в разборе Fail2Ban UI.

Обновления: apt-get -s upgrade считает все пакеты и называет их «security updates». Перед этим скрипт не обновляет списки, поэтому по старому кэшу он может написать «всё свежее». Автообновления он проверяет по наличию пакета unattended-upgrades, а включён ли он, не смотрит.

Неудачные входы: строки «Failed password» по всему логу (через journalctl только за сутки). Если вход по паролю выключен, счётчик будет нулевым.

Порты: скрипт считает уникальные номера из ss, а «Public» считает той же формулой, что «Total» (строки 488 и 489), адрес привязки не смотрит. PASS ставится меньше чем при трёх номерах. Типичный сервер с ботом, у которого 22, 80, 443 и локальный 53, получит WARN, это моё прочтение кода.

Мелочи: sudo-логирование читается только из /etc/sudoers (в открытых обращениях это есть, номера 27, 33 и 39), «активные соединения» из README в коде я не нашёл, а код возврата всегда нулевой, так что в мониторинг скрипт не встроить.

Чего скрипт не видит

Главное: Docker. Порт, опубликованный контейнером, по документации Docker обходит правила ufw (раздел «Docker and ufw»), а без указания адреса публикуется на все интерфейсы. Скрипт про это не знает: ufw активен, значит PASS. Порт базы окажется в списке номеров среди прочих, без пометки, что он открыт в интернет. Docker скрипт использует только затем, чтобы найти контейнер с fail2ban или crowdsec. Что показывает ss на машине с Docker, я не проверял.

Ещё в нём нет: проверки ключей и прав файлов (кто лежит в authorized_keys, кто читает файл с токеном бота), резервных копий, логов приложения и nginx, пакетов с известными уязвимостями, образов Docker. Он не ищет следы взлома: новые пользователи, чужие задания cron, подменённые ключи. Зелёный отчёт не доказывает, что сервер чист. В README об этом сказано: не замена профессиональному аудиту.

Что можно сделать уже сейчас

Не запускайте через curl | sudo bash. Скачайте файл, прочитайте его (около четверти часа), запишите контрольную сумму, чтобы убедиться, что прогоняете тот же файл.

Сначала прогоните на тестовом сервере или в чистом контейнере. На боевом запускайте в тихое время, из-за обхода диска и top.

Читайте отчёт руками. Рядом посмотрите docker ps и колонку портов. Карту открытых портов и сервисов показывает portracker. Базы публикуйте на 127.0.0.1, как в документации Docker.

То, чего скрипт не проверяет, закрывается отдельно: вход по ключам, брандмауэр с учётом Docker, автообновления, резервные копии с проверкой восстановления, мониторинг. Я делаю это на вашем сервере с вашими доступами в рамках услуги по кибербезопасности, условия на странице цен.

Частые вопросы

Можно ли запускать на боевом сервере?

По коду скрипт ничего не меняет, но создаёт нагрузку и пишет отчёт. На живом сервере я его не запускал.

Заменяет ли он аудит?

Нет. Он смотрит около десятка настроек и не знает ни про ваше приложение, ни про Docker.

Подойдёт ли он для AlmaLinux или CentOS?

README обещает только Ubuntu и Debian. В коде apt-get и dpkg, поэтому часть проверок на таких системах ничего не покажет.

Коротко о главном

vps-audit под MIT быстро показывает базовые дыры: SSH, брандмауэр, fail2ban, счётчик обновлений. Настройки системы он не трогает, кроме одного запроса к ipify, и проверяет не всё. Docker, ключи, бэкапы и следы взлома остаются за кадром, а часть зелёных оценок по коду ненадёжна.

Хотите, чтобы я проверил ваш VPS, настроил ключи, брандмауэр, автообновления, резервные копии и мониторинг? Напишите мне в Telegram кодовое слово «ЗАСОВ».

Обсудим вашу задачу

Что я делаю для бизнеса

Напишите одной фразой, что нужно. Отвечу, что подойдёт, сколько займёт и сколько стоит. Сообщение уже подготовлено.

  • Боты в Telegram, MAX, VK
  • Автоматизация процессов и CRM
  • Аналитика и дашборды
  • Сайты и лендинги под ключ
Пишу о разработке, ИИ и законах для бизнеса

Разборы, кейсы и практика — без воды. Выходит регулярно, читать 3–5 минут.

Готовые решения под ключTurnkey solutionsSoluciones llave en mano交钥匙解决方案Түлхүүр гардуулах шийдэл 451 готовых IT-решений для бизнеса451 ready-made IT solutions for business451 soluciones IT listas para empresas451 个面向企业的现成 IT 解决方案Бизнест зориулсан 451 бэлэн IT шийдэл Автоматизация, боты, AI, 152-ФЗ и платформы · бесплатная консультацияAutomation, bots, AI, data privacy and platforms · free consultationAutomatización, bots, IA, privacidad de datos y plataformas · consulta gratis自动化、机器人、AI、数据合规与平台 · 免费咨询Автоматжуулалт, бот, AI, өгөгдлийн хамгаалалт ба платформ · үнэгүй зөвлөгөө Смотреть каталогView catalogVer catálogo查看目录Каталог үзэх