Проблема: OpenClaw открыт наружу по умолчанию
По данным мониторинга от 18 марта 2026, в интернете обнаружено 42 000 публично доступных серверов OpenClaw. Главная причина — официальный скрипт docker-setup.sh биндит шлюз на 0.0.0.0:18789, то есть порт открыт на всех сетевых интерфейсах, включая внешний.
Большинство пользователей, по данным сообщества Reddit r/sysadmin, не анализируют содержимое Docker-образа перед запуском. А между тем в официальном образе OpenClaw исследователи обнаружили ограничение файрволла на антивирусные сайты — факт, который сам по себе должен настораживать.
19 февраля 2026 Microsoft Security Blog выпустил явную рекомендацию: не запускать OpenClaw на рабочих устройствах. Это не опциональный совет — это требование к организациям, которые хотят контролировать периметр безопасности.
Прежде чем настраивать Docker, ознакомьтесь с общими принципами изоляции агента в статье Приватность и локальный запуск.
Минимальная безопасная конфигурация по рекомендациям Microsoft
Microsoft Security Blog сформулировал четыре базовых требования для развёртывания OpenClaw:
| Требование | Описание |
|---|---|
| Выделенная среда | Отдельная VM или физически изолированная машина, не рабочий компьютер |
| Непривилегированные учётные данные | Учётная запись без прав администратора для запуска агента |
| Мониторинг памяти агента | Контроль того, какие данные агент хранит в контексте |
| План восстановления | Задокументированная процедура на случай компрометации |
Дополнительно Microsoft рекомендует интеграцию с Microsoft Defender XDR, Microsoft Purview и Microsoft Sentinel для корпоративных развёртываний.
Как закрыть порт 18789
Шаг 1. Найдите docker-compose файл
После стандартной установки файл конфигурации обычно находится по пути:
~/openclaw/docker-compose.yml
# или
~/openclaw/docker-compose.yaml
Шаг 2. Измените биндинг порта
Найдите в docker-compose.yml строку с портом шлюза и замените биндинг:
# БЫЛО (небезопасно — открыт на всех интерфейсах):
ports:
- "18789:18789"
# СТАЛО (только локальный доступ):
ports:
- "127.0.0.1:18789:18789"
Аналогично проверьте порты UI (по умолчанию 3000) и API.
Шаг 3. Перезапустите контейнеры
docker compose down
docker compose up -d
Шаг 4. Проверьте результат
# Убедитесь, что порт 18789 не виден снаружи:
ss -tlnp | grep 18789
# Должно показать: 127.0.0.1:18789, не 0.0.0.0:18789
Дополнительные меры защиты Docker-окружения
Ограничение ресурсов контейнера
Добавьте в docker-compose.yml лимиты CPU и памяти, чтобы ограничить ущерб при компрометации:
services:
openclaw:
deploy:
resources:
limits:
cpus: '2'
memory: 4G
Запуск от непривилегированного пользователя
Не запускайте контейнер от root. Добавьте в конфигурацию:
services:
openclaw:
user: "1000:1000"
Изоляция сети Docker
Создайте отдельную Docker-сеть для OpenClaw и не давайте ей прямой доступ к другим сервисам:
networks:
openclaw-net:
driver: bridge
internal: false
Файрвол на уровне хоста
На Linux с ufw:
# Запретить внешний доступ к порту OpenClaw
ufw deny 18789
ufw allow from 127.0.0.1 to any port 18789
ufw reload
VPS против личного компьютера
Для стабильной работы OpenClaw в режиме 24/7 настоятельно рекомендуется использовать VPS, а не личный компьютер. Причины:
- Личный компьютер содержит рабочие данные, браузерные сессии, ключи SSH и другие чувствительные материалы, доступные агенту.
- VPS — изолированная среда с контролируемым доступом и возможностью быстрого восстановления из снапшота.
- На VPS проще настроить мониторинг и алертинг без конфликтов с личными приложениями.
Подробнее о первоначальной установке и выборе среды запуска читайте в руководстве Первый запуск OpenClaw и статье Установка OpenClaw на Windows.
Что проверить перед запуском Docker-образа
Прежде чем запустить docker-setup.sh или docker compose up, ответьте на следующие вопросы:
- Вы изучили
docker-compose.ymlи знаете, какие порты открываются? - Биндинг портов ограничен
127.0.0.1, а не0.0.0.0? - Запуск происходит на изолированной машине, а не на рабочем компьютере?
- Учётная запись, под которой запускается агент, не имеет прав администратора?
- Настроен мониторинг сетевого трафика и памяти агента?
Если хотя бы один ответ «нет» — риски существенны. Также рекомендуем ознакомиться с настройкой разрешений в статье Разрешения и доступ в OpenClaw.
Итог
42 000 открытых серверов — это не баг пользователей, это проблема настроек по умолчанию. Разработчики OpenClaw приняли решение ради удобства развёртывания, переложив ответственность за безопасность на конечного администратора.
Три приоритетных действия: закрыть порт 18789 на внешние интерфейсы, перенести агента на изолированную среду (VPS или отдельная VM) и настроить мониторинг согласно рекомендациям Microsoft. Это базовый минимум, а не опциональные улучшения.