Как безопасно запустить OpenClaw на VPS
Настройте защиту OpenClaw на VPS через unprivileged user, firewall и systemd. Узнайте, как избежать уязвимостей вроде CVE-2026-32922 при работе с агентом.
Что такое OpenClaw и почему его нужно сначала защитить
OpenClaw — это self-hosted AI агент. Вы запускаете его на собственном сервере, подключаете к большой языковой модели, и он может выполнять shell-команды, управлять браузером, читать и записывать ваши файлы, а также действовать на основе сообщений, которые вы отправляете ему из чат-приложений. Такой уровень доступа — это основная цель инструмента, но в этом же заключается и основной риск. Агент, способный выполнять любую команду, безопасен ровно настолько, насколько безопасна система, на которой он запущен, и насколько ограничены права, которые вы ему предоставили.
Эти два факта определяют суть данного руководства. Во-первых, OpenClaw спроектирован так, чтобы вы сами обеспечивали его защиту. Его модель безопасности возлагает ответственность за строгие политики инструментов, песочницу (sandboxing) и тщательную настройку прав на оператора, а не на безопасные настройки по умолчанию. Во-вторых, в проекте уже был серьезный инцидент безопасности: в марте 2026 года в течение четырех дней было раскрыто девять проблем безопасности, включая критическую уязвимость повышения привилегий CVE-2026-32922 с рейтингом 9.9 из 10. Ни один из этих фактов не означает, что вам следует избегать OpenClaw. Это означает, что вам не следует запускать его «ленивым» способом, а данное руководство предлагает безопасный способ.
Есть и хорошие новости. OpenClaw уже делает один безопасный выбор за вас: его gateway, единственный процесс, который управляет всем, по умолчанию прослушивает loopback-адрес, поэтому он недоступен из интернета, если вы намеренно не сделаете его открытым. Большая часть описанных ниже действий направлена на то, чтобы сохранить его в таком состоянии и минимизировать область поражения в случае ошибки.
Создайте для OpenClaw отдельного непривилегированного пользователя
Никогда не запускайте агента от имени root. Если OpenClaw запущен от root и что-то пойдет не так — будь то ошибка в коде, некорректная инструкция или CVE, подобная упомянутой выше — ущерб не будет иметь границ. Создайте выделенного системного пользователя без возможности входа в shell и без прав sudo, и запускайте агента от этого пользователя:
sudo useradd --system --home /opt/openclaw --shell /usr/sbin/nologin openclawВсе объекты, принадлежащие OpenClaw, находятся в /opt/openclaw под управлением этого аккаунта. Это самый важный шаг, и он основан на том же принципе, который описан в запуске сервисов от имени непривилегированного пользователя: аккаунт, от которого запускается агент, является пределом того, что он может повредить.
Установка OpenClaw
OpenClaw распространяется как npm-пакет, поэтому сначала установите Node.js, если он отсутствует на сервере. Установите пакет глобально, чтобы бинарный файл openclaw был доступен в PATH для всех пользователей, а затем выполните разовый этап настройки (onboarding):
sudo npm install -g openclaw@latest
sudo -u openclaw openclaw onboardЗапуск настройки от пользователя openclaw означает, что конфигурация агента будет сохранена в его домашнем каталоге /opt/openclaw, а не в каталоге root. Проект также предлагает установщик curl -fsSL https://openclaw.ai/install.sh | bash, который выполняет ту же установку одной командой. Пропустите флаг --install-daemon во время настройки: он зарегистрирует собственный сервис OpenClaw, в то время как настроенный вами ниже unit systemd будет более строгим.
Оставьте gateway на loopback и за защитой firewall
По умолчанию gateway привязывается к 127.0.0.1. Оставьте его там. Почти никогда нет необходимости публиковать этот порт в интернете; это дает любому, кто его обнаружит, удаленный доступ к процессу, который предназначен для выполнения команд.
Установите firewall с политикой «запрещено всё по умолчанию» (default-deny) перед сервером, чтобы ничего не было открыто случайно:
sudo ufw default deny incoming
sudo ufw allow 22/tcp
sudo ufw enableЗдесь следует избегать двух ловушек. Firewall, который поддерживает только IPv4, может оставить тот же сервис полностью открытым в IPv6, что и является пробелом в IPv6 firewall, на котором ловятся многие пользователи. И если вам нужно подключиться к gateway со своего ноутбука, не открывайте порт. Подключайтесь через VPN или SSH-туннель, чтобы агент никогда не прослушивал открытый интернет.
Изолируйте его секреты
OpenClaw требуется API-ключ для любой языковой модели, к которой вы его подключаете. Этот ключ может тратить ваши деньги и, через агента, действовать от вашего имени, поэтому обращайтесь с ним как с паролем. Не храните его в unit-файле и не сохраняйте в репозиториях. Поместите его в файл, который может читать только пользователь OpenClaw:
sudo install -o openclaw -g openclaw -m 600 /dev/null /opt/openclaw/openclaw.env
sudoedit /opt/openclaw/openclaw.env # add ANTHROPIC_API_KEY=... or your model provider's keyUnit systemd загружает этот файл с помощью EnvironmentFile, поэтому ключ попадает в процесс, не оказываясь в командной строке, логах или истории shell.
Запускайте его как защищенный сервис systemd
Запуск агента через systemd обеспечивает автоматический перезапуск, чистые логи через journalctl и, что самое важное, набор опций песочницы на уровне ядра, которые ограничивают область доступа процесса, даже если он будет скомпрометирован. Наиболее важными для агента являются NoNewPrivileges, чтобы он не мог получить новые привилегии, ProtectSystem=strict, чтобы файловая система была доступна только для чтения (кроме разрешенных зон для записи), PrivateTmp для создания изолированного временного каталога и ProtectHome, чтобы агент не мог читать домашние каталоги пользователей.
Сгенерируйте полный защищенный unit здесь, а затем скопируйте его в /etc/systemd/system/openclaw.service:
Unit запускает openclaw gateway — долгоживущий процесс, который управляет агентом; если which openclaw показывает другой путь на вашем сервере, измените ExecStart соответствующим образом. Полное описание этих директив, а также daemon-reload и enable --now, приведено в запуске программы как сервиса systemd. Краткая версия после того, как вы вставили unit:
sudo systemctl daemon-reload
sudo systemctl enable --now openclawЗащитите и входную дверь тоже
Безопасность сервера зависит не только от агента, но и от всей системы вокруг него. Еще два уровня завершат защиту. Переведите SSH на аутентификацию только по ключам и запретите вход для root, как описано в укрепление безопасности SSH на VPS, чтобы аккаунт, с которого вы администрируете сервер, нельзя было взломать перебором. Затем добавьте Fail2ban, чтобы блокировать сканеры, атакующие все публичные порты. Это не влияет на OpenClaw напрямую, но оба метода закрывают пути, которые злоумышленник использовал бы для доступа к нему.
Обновляйтесь намеренно
Раскрытие уязвимостей в марте 2026 года — это самый наглядный аргумент в пользу своевременного обновления. Ошибка повышения привилегий в агенте гораздо серьезнее, чем в обычном веб-приложении, потому что агент уже умеет выполнять команды. Следите за релизами проекта, быстро устанавливайте обновления безопасности и относитесь к обновлению OpenClaw как к рутинному обслуживанию, а не как к задаче, которую можно отложить.
Чтобы понять, что именно вы защищаете, ознакомьтесь с архитектурой агента типа OpenClaw, а создание собственного AI-агента на VPS описывает общую структуру любого агента.
FAQ
Безопасно ли запускать OpenClaw на публичном VPS?
Это может быть безопасно, если вы обеспечите защиту. OpenClaw мощный по своей сути: он выполняет shell-команды и управляет браузером, поэтому неосторожная настройка действительно опасна (в марте 2026 года в проекте уже была критическая уязвимость CVE-2026-32922). Его модель безопасности предполагает, что вы, оператор, добавляете ограничения. Запускайте его от непривилегированного пользователя, держите gateway на loopback за firewall с политикой «запрещено всё по умолчанию», изолируйте API-ключи и запускайте его как защищенный сервис systemd.
Стоит ли открывать gateway OpenClaw для интернета?
Нет. Gateway по умолчанию привязан к loopback, и так и должно быть. Это единственный процесс, который управляет агентом, поэтому открытый gateway — это удаленный путь к системе, которая выполняет команды. Если вам нужен удаленный доступ, используйте VPN или SSH-туннель вместо открытия порта.
От имени какого пользователя должен работать OpenClaw?
От выделенного системного пользователя без возможности входа в shell и без прав sudo, но никак не от root. Если агент будет скомпрометирован, учетная запись пользователя станет пределом ущерба, поэтому этот аккаунт должен владеть только своими файлами в директории типа /opt/openclaw и ничем больше.
Как обеспечить безопасность API-ключей OpenClaw?
Храните их в файле, доступном для чтения только пользователю OpenClaw (режим 600), и загружайте его в сервис с помощью EnvironmentFile в systemd. Не храните ключ в unit-файле, в истории shell или в git-репозиториях. Если вы подозреваете утечку, немедленно смените ключ.