−25%

su Windows con pagamento annuale, fino al 31/10. Vai ai piani

EQVPS
Inizia

Mettere in sicurezza un agente AI self-hosted su un VPS

26 set 2026 · 4 min di lettura · EQVPS Team

Una classica app web fa quello che dice il suo codice. Un agente AI fa quello che dice il suo codice più qualsiasi cosa il testo che legge riesca a convincerlo a fare. Dagli una shell, una chiave API e un budget, puntalo verso internet, e hai costruito qualcosa di nuovo: un processo che si può manipolare con l'ingegneria sociale. La soluzione non è la paranoia, è la vecchia abitudine da sysadmin del minimo privilegio, applicata a un programma molto chiacchierone.

Conosci le minacce reali

Tutto ciò che segue rende queste cose meno probabili, oppure meno costose quando succedono.

1. Dai all'agente la sua macchina e il suo utente

Fai girare gli agenti che eseguono codice o navigano sul web su un VPS separato, non accanto al database di produzione. Su quella macchina, mai come root:

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

Niente sudo, niente chiavi SSH verso altri server, nessun accesso a ciò che non gli serve.

2. Mettilo in sandbox con systemd

systemd può recintare un processo senza container. L'agente può leggere il sistema ma scrivere solo nella sua cartella di lavoro:

# /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 rende di sola lettura l'intero filesystem tranne ReadWritePaths. MemoryMax impedisce a un singolo compito impazzito di buttare giù il server. Controlla il risultato con systemd-analyze security agent: assegna un punteggio all'unità ed elenca cosa è ancora aperto.

3. Tratta le chiavi come se dovessero trapelare

4. Limita quello che può comprare

Se l'agente può spendere soldi, il limite deve stare fuori dall'agente. Su EQVPS un agente ordina e rinnova i server dal saldo prepagato dell'account tramite il server MCP o la REST API, quindi il saldo è un tetto rigido. Ricaricalo con la somma che sei disposto a perdere, non con tutto il budget. Dai all'agente un account suo se non ha bisogno di vedere i tuoi altri server.

5. Metti un umano davanti alle azioni irreversibili

Cancellare dati, inviare denaro, fare push su main, scrivere ai clienti: fai passare queste azioni da un passaggio di conferma; basta un messaggio Telegram con un pulsante di approvazione. Gli strumenti di sola lettura possono girare liberamente; quelli di scrittura si guadagnano la fiducia piano piano.

6. Restringi le uscite (se puoi conviverci)

Una allowlist in uscita rende molto più difficile l'esfiltrazione dei segreti:

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

Onestamente, è il passaggio che quasi tutti saltano: gli agenti che navigano hanno bisogno di HTTPS arbitrario, e allora una allowlist per porta aggiunge poco. Vale la pena per gli agenti che chiamano solo un insieme fisso di API.

7. Tieni i log e una via di ritorno

Registra ogni chiamata a uno strumento con i suoi argomenti. Fai un'istantanea prima di lasciare un agente libero su qualcosa di nuovo: i Managed Backups ti danno punti di ripristino giornalieri più istantanee su richiesta, così un brutto pomeriggio costa un ripristino, non una ricostruzione.

La conclusione onesta

Niente di tutto questo rende un agente affidabile alla cieca. Lo rende economico da sbagliare: un agente compromesso sulla sua macchina, con il suo utente, un saldo limitato e chiavi ristrette, può fare solo danni piccoli e recuperabili. È questo l'obiettivo realistico. Parti dalle basi in mettere in sicurezza un nuovo VPS, poi aggiungi i livelli specifici per agenti descritti qui sopra.

FAQ

Qual è il rischio più grande nel far girare un agente AI su un server?

La prompt injection: l'agente legge un testo che non ha scritto (una pagina web, un'email, un commento a una issue) e quel testo gli dice di fare qualcosa che non hai mai chiesto, come stampare le variabili d'ambiente o eseguire un comando. Tutto il resto di questa guida serve a limitare i danni quando succede.

L'agente deve girare come root?

Mai. Dagli un utente non privilegiato tutto suo, senza sudo, e limita dove può scrivere con la sandbox di systemd. Se viene ingannato ed esegue un comando distruttivo, può danneggiare solo la propria cartella di lavoro.

Come evito che un agente spenda troppo?

Usa limiti rigidi che stiano fuori dall'agente: tetti di spesa sulle chiavi del provider dei modelli e un saldo prepagato per tutto ciò che può comprare. Su EQVPS un agente spende dal saldo dell'account, quindi il saldo stesso è il tetto: ricaricalo con quanto sei disposto a perdere, non di più.

Posso bloccare del tutto la prompt injection?

No: oggi non esiste un filtro affidabile. Quello che funziona è ridurre il raggio d'azione: strumenti con il minimo privilegio, conferma umana per le azioni distruttive o a pagamento, nessun segreto nel contesto dell'agente e log che puoi rivedere.

Vale la pena un VPS separato per un agente?

Sì, se l'agente esegue codice o naviga sul web. Una piccola macchina dedicata lo tiene lontano da database, altri progetti e credenziali. Se viene compromesso ricostruisci un server, non tutto il tuo setup.

← Torna al blogVedi piani e prezzi →

Commenti

Ancora nessun commento. Sii il primo.

Lascia un commento

I commenti sono moderati prima di comparire.