−25%

на річну оплату Windows, до 31.10. До тарифів

EQVPS

Як захистити self-hosted AI-агента на VPS

26 вер. 2026 р. · 3 хв читання · EQVPS Team

Звичайний вебзастосунок робить те, що написано в коді. AI-агент робить те, що написано в коді, плюс усе, у чому його переконає прочитаний текст. Дайте йому shell, API-ключ і бюджет, спрямуйте у відкритий інтернет — і ви збудували щось нове: процес, який можна ошукати соціальною інженерією. Лікується це не параноєю, а старою адмінською звичкою до мінімальних привілеїв — тільки застосованою до дуже балакучої програми.

Реальні загрози

Усе нижче або робить це менш імовірним, або здешевлює наслідки.

1. Окрема машина й окремий користувач

Агентів, які виконують код чи ходять вебом, запускайте на окремому VPS — не поруч із бойовою базою даних. І на цій машині — ніколи від root:

adduser --disabled-password --gecos "" agent
mkdir -p /home/agent/work && chown agent:agent /home/agent/work

Жодного sudo, жодних SSH-ключів до інших серверів, жодного доступу до того, що йому не потрібно.

2. Пісочниця через systemd

systemd уміє відгородити процес без контейнерів. Агент може читати систему, але писати — лише у свою робочу теку:

# /etc/systemd/system/agent.service
[Unit]
Description=AI agent
After=network-online.target

[Service]
User=agent
WorkingDirectory=/home/agent/work
EnvironmentFile=/home/agent/.agent.env
ExecStart=/home/agent/venv/bin/python run_agent.py
Restart=on-failure
NoNewPrivileges=yes
ProtectSystem=strict
ProtectHome=read-only
ReadWritePaths=/home/agent/work
PrivateTmp=yes
PrivateDevices=yes
MemoryMax=2G

[Install]
WantedBy=multi-user.target

ProtectSystem=strict робить усю файлову систему доступною лише для читання, крім ReadWritePaths. MemoryMax не дає одній задачі, що вийшла з-під контролю, покласти сервер. Перевірте результат командою systemd-analyze security agent — вона оцінить юніт і покаже, що ще відкрито.

3. Вважайте, що ключі витечуть

4. Обмежте, що він може купити

Якщо агент може витрачати гроші, обмеження має жити поза агентом. В EQVPS агент замовляє й продовжує сервери з передплаченого балансу облікового запису через MCP-сервер або REST API — тому баланс і є жорсткою стелею. Поповнюйте його на суму, яку готові втратити, а не на весь бюджет. Дайте агенту окремий обліковий запис, якщо йому не потрібно бачити ваші інші сервери.

5. Людина перед незворотними діями

Видалення даних, надсилання грошей, пуш у main, листи клієнтам — пропускайте через крок підтвердження; вистачить повідомлення в Telegram із кнопкою «схвалити». Інструменти лише для читання хай працюють вільно; інструменти на запис заслуговують довіру поступово.

6. Звузьте виходи (якщо зможете з цим жити)

Білий список вихідних з'єднань сильно ускладнює виведення секретів:

ufw default deny outgoing
ufw allow out 53          # DNS
ufw allow out 443/tcp     # HTTPS APIs
ufw allow out 80/tcp      # package mirrors
ufw default deny incoming && ufw allow 22/tcp && ufw enable

Чесно, цей крок найчастіше викидають: агентам, які браузять веб, потрібен довільний HTTPS, і білий список за портами мало що дає. Він виправданий для агентів, що ходять у фіксований набір API.

7. Логи й шлях назад

Логуйте кожен виклик інструмента з аргументами. Робіть знімок, перш ніж випустити агента на щось нове: Managed Backups дають щоденні точки відновлення плюс знімки на вимогу — так невдалий день обійдеться відновленням, а не перезбиранням.

Чесний підсумок

Ніщо з цього не робить агента безпечним для сліпої довіри. Це робить помилку дешевою: зламаний агент на своїй машині, під своїм користувачем, з обмеженим балансом і вузькими ключами може завдати лише невеликої, виправної шкоди. Це й є реалістична мета. Почніть із бази зі статті безпека нового VPS, потім додайте шари для агента, описані вище.

Часті питання

Який головний ризик AI-агента на сервері?

Prompt injection: агент читає текст, який написав не він, — вебсторінку, лист, коментар в issue, — і цей текст велить йому зробити те, про що ви не просили: наприклад, вивести змінні оточення або виконати команду. Усе інше в цьому гайді — про те, як обмежити шкоду, коли це станеться.

Чи можна запускати агента від root?

Ніколи. Дайте йому окремого непривілейованого користувача без sudo й обмежте запис пісочницею systemd. Якщо його обманом змусять виконати руйнівну команду, постраждає лише його робоча тека.

Як не дати агенту витратити зайве?

Використовуйте жорсткі ліміти поза агентом: ліміти витрат на ключах провайдера моделей і передплачений баланс для всього, що він може купити. В EQVPS агент витрачає з балансу облікового запису, тож сам баланс і є стелею — поповнюйте його на суму, яку готові втратити, не більше.

Чи можна повністю заблокувати prompt injection?

Ні — надійного фільтра сьогодні не існує. Працює зменшення радіуса ураження: інструменти з мінімальними правами, підтвердження людиною для руйнівних і платних дій, жодних секретів у контексті агента й логи, які можна перевірити.

Чи варто виділяти агенту окремий VPS?

Так, якщо агент виконує код або ходить вебом. Невелика окрема машина тримає його подалі від ваших баз даних, інших проєктів і облікових даних. Якщо його зламають, ви перестворите один сервер, а не всю інфраструктуру.

← Назад у блогТарифи та ціни →

Коментарі

Поки немає коментарів. Будьте першим.

Залишити коментар

Коментарі проходять модерацію перед публікацією.