# Clawdbot: запуск на сервере Ubuntu 24.04 + Telegram (без sandbox) ## 1) Создать SSH‑ключ на локальном компьютере ```bash ssh-keygen -t ed25519 -a 100 -f ~/.ssh/id_ed25519 ``` Комментарий: ключ создается на вашем компьютере и остается у вас, это “ваш пропуск” на сервер. Пароль к ключу защищает его, если файл будет украден. Мы используем ed25519 — это современный и безопасный формат. Этот шаг нужен, чтобы полностью отказаться от паролей при входе. Дополнение: если у вашего провайдера есть панель управления ключами, добавьте туда содержимое `~/.ssh/id_ed25519.pub`. Тогда первый вход сразу будет по ключу, без пароля. Если панели нет — используйте парольный вход только один раз, чтобы вручную добавить ключ на сервер. ## 2) Логин на сервер ```bash ssh root@ ``` Комментарий: первичный доступ для настройки системы. На этом шаге мы заходим как root, потому что это единственный способ сделать базовую настройку сервера. Дальше root‑логин будет отключен, поэтому этот вход нужен только на старте. Это снижает риск того, что root останется “открытой дверью”. ## 3) Обновить систему ```bash apt update && apt upgrade -y ``` Комментарий: закрыть уязвимости и обновить пакеты. Любая новая машина обычно содержит старые версии библиотек и системных утилит, в которых могут быть дыры. Обновление — это базовая гигиена, без которой дальше нет смысла говорить о безопасности. Мы ставим патчи до того, как запускаем сервисы. ## 4) Создать отдельного пользователя ```bash adduser clawd usermod -aG sudo clawd ``` Комментарий: запускать бота не под root, снизить риск. Это принцип минимальных прав: агент не должен иметь доступ ко всему серверу. Если что‑то пойдет не так, ущерб будет ограничен папками пользователя, а не всей системой. Это фундаментальная мера защиты. ## 5) Дать доступ по SSH‑ключу ```bash rsync --archive --chown=clawd_yt:clawd ~/.ssh /home/clawd ``` Комментарий: вход по ключу без пароля. Пароли можно подобрать или украсть, ключи — значительно сложнее. Мы переносим ключи, чтобы вход оставался безопасным и удобным. Это снижает риск взлома через перебор. ## 6) Зайти под новым пользователем ```bash ssh clawd_yt@ ``` Комментарий: дальше работаем от имени clawd. Это разделяет “оператора” и “систему”, чтобы бот не жил на уровне root. Такой подход уменьшает вероятность фатальных ошибок. Мы делаем это сразу, чтобы все последующие действия были в безопасном режиме. ## 7) Усилить SSH ```bash sudo nano /etc/ssh/sshd_config ``` Добавить/проверить строки: ``` PermitRootLogin no PasswordAuthentication no PubkeyAuthentication yes ``` Перезапуск: ```bash sudo systemctl restart ssh ``` Комментарий: запретить root‑логин и пароли, оставить только ключи. Самый массовый тип атак — подбор паролей и попытки зайти в root. Мы полностью закрываем этот путь. После этого вход возможен только по ключам. ## 8) Firewall ```bash sudo apt install -y ufw sudo ufw allow OpenSSH sudo ufw enable ``` Комментарий: закрыть все порты, кроме SSH. Чем меньше открытых портов — тем меньше вероятность атак. Мы оставляем только необходимый доступ для администрирования. Это делает сервер “тише” и менее заметным для сканеров. ## 9) Установить Clawdbot ```bash curl -fsSL https://molt.bot/install.sh | bash ``` Комментарий: установить CLI + gateway. Это базовый движок, без которого Clawdbot не работает. CLI отвечает за конфиг и диагностику, gateway — за подключение Telegram и выполнение задач. Это фундамент установки. ## 10) Пройти onboarding ```bash clawdbot onboard ``` Комментарий: создать workspace, настроить gateway и Telegram‑канал. Онбординг связывает бота с Telegram и формирует базовый конфиг. Это момент, когда бот становится “живым”. Без этого он не сможет отвечать. ## 11) Оставить gateway в loopback Проверь в `~/.clawdbot/clawdbot.json`: ```json "gateway": { "bind": "loopback", "port": 18789, "auth": { "mode": "token", "token": "${CLAWDBOT_GATEWAY_TOKEN}" } } ``` Комментарий: управление доступно только локально, токен защищает UI. Это гарантирует, что панель управления не открыта всему интернету. Даже если кто‑то узнает адрес, без токена он не войдет. Мы делаем это, чтобы контроль оставался только у владельца. ## 12) Ограничить DMs в Telegram (allowlist) ```bash clawdbot config set channels.telegram.dmPolicy "allowlist" clawdbot config set channels.telegram.allowFrom "[\"tg:\"]" systemctl --user restart clawdbot-gateway.service ``` Комментарий: бот отвечает только владельцу. Это ключевая защита от случайных или злонамеренных сообщений. Даже если кто‑то узнает имя бота, он не сможет его использовать. Так мы убираем доступ для всех, кроме вас. ## 13) Ужать права на состояние ```bash chmod 700 /home/clawd/.clawdbot ``` Комментарий: эта команда делает папку бота приватной — доступ есть только у пользователя clawd. Внутри лежат токены, настройки и история, и их нельзя “подсматривать” или менять другим пользователям. Это простая защита от случайных и вредных правок. После этого папка закрыта для всех, кроме владельца. ## 15) Проверка ```bash clawdbot status ``` Комментарий: после этого бот отвечает в Telegram и работает в “открытом” режиме без sandbox. Это быстрее и проще в настройке, но риск выше. Важно помнить, что у бота прямой доступ к системе. Поэтому остальные шаги безопасности становятся особенно критичными. ## 16) Control UI через SSH‑туннель ```bash ssh -N -L 18789:127.0.0.1:18789 clawd_yt@ ``` Открыть: ``` http://127.0.0.1:18789/ ``` Комментарий: если нужна авторизация, токен выводится отдельной командой. Токен защищает доступ к панели управления. Это лучше, чем открытая панель без пароля. Мы используем токен вместо публичного логина/пароля. ```bash clawdbot dashboard --no-open ```