−25%

за Windows при годишно плащане, до 31.10. Към плановете

EQVPS

Защита на self-hosted AI агент на VPS

26.09.2026 г. · 4 мин четене · 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. Сложи го в sandbox със 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: дава оценка на unit-а и изброява какво още е отворено.

3. Отнасяй се към ключовете, сякаш ще изтекат

4. Ограничи какво може да купи

Ако агентът може да харчи пари, лимитът трябва да живее извън агента. В EQVPS агентът поръчва и подновява сървъри от предплатения баланс на акаунта през MCP сървъра или REST API, така че балансът е твърд таван. Зареди го със сумата, която си готов да загубиш, не с целия си бюджет. Дай на агента собствен акаунт, ако не му трябва да вижда другите ти сървъри.

5. Сложи човек пред необратимите действия

Изтриване на данни, изпращане на пари, push към 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 навсякъде и тогава списък по портове добавя малко. Струва си за агенти, които викат само фиксиран набор от APIs.

7. Пази логове и път назад

Логвай всяко извикване на инструмент с аргументите му. Направи snapshot, преди да пуснеш агент върху нещо ново: Managed Backups ти дават дневни точки за възстановяване плюс snapshots при поискване, така че един лош следобед да струва едно възстановяване, а не изграждане наново.

Честното заключение

Нищо от това не прави агента безопасен за сляпо доверие. Прави грешката евтина: компрометиран агент на собствена машина, под собствен потребител, с ограничен баланс и ограничени ключове може да нанесе само малки, поправими щети. Това е реалистичната цел. Започни с основите в защита на нов VPS, после добави специфичните за агенти слоеве отгоре.

Въпроси

Кой е най-големият риск при пускане на AI агент на сървър?

Prompt injection: агентът чете текст, който не е писал (уеб страница, имейл, коментар в issue), и този текст му казва да направи нещо, което никога не си искал, например да отпечата променливите на средата си или да пусне команда. Всичко останало в това ръководство е за ограничаване на щетите, когато това стане.

Трябва ли агентът да работи като root?

Никога. Дай му собствен непривилегирован потребител без sudo и ограничи къде може да пише със systemd sandbox. Ако го излъжат да пусне разрушителна команда, може да повреди само собствената си работна директория.

Как да спра агента да харчи прекалено?

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

Мога ли напълно да блокирам prompt injection?

Не; днес няма надежден филтър за това. Работи намаляването на радиуса на щетите: инструменти с минимални права, човешко потвърждение за разрушителни или платени действия, никакви тайни в контекста на агента и логове, които можеш да прегледаш.

Струва ли си отделен VPS за агент?

Да, ако агентът пуска код или разглежда уеба. Малка отделна машина го държи далеч от базите ти, другите проекти и данните за достъп. Ако бъде компрометиран, изграждаш наново един сървър, не цялата си среда.

← Обратно към блогаВиж планове и цени →

Коментари

Още няма коментари. Бъди първият.

Остави коментар

Коментарите се модерират преди да се появят.