Se hai passato abbastanza tempo a gestire ambienti di produzione, ti sarai sicuramente trovato in questa situazione: sei connesso via SSH a un server bloccato e devi estrarre un file di log enorme, un dump del database o un archivio di configurazione. Il problema? Il server non ha strumenti di build, nessun runtime Go, niente Python e nessun accesso di root per installare utility standard come rsync o scp. Inoltre, l'ambiente monta le directory con il flag noexec, impedendoti di portare i tuoi binari compilati staticamente.
Questa è una policy comune in reti aziendali fortemente regolamentate e in ambienti CI/CD restrittivi. I team di sicurezza bloccano tutto, lasciandoti solo una shell POSIX essenziale. Quando i popolari strumenti di trasferimento file come Magic Wormhole o Croc falliscono perché richiedono un binario client, devi diventare creativo.
Il Fallback POSIX: Usare ciò che si ha
Quasi ogni sistema Unix-like include due strumenti fondamentali: curl e openssl. Se riusciamo a concatenarli, possiamo costruire una pipeline di dati crittografata e in streaming senza mai scrivere un file eseguibile su disco.
Il concetto base è semplice. Sulla tua macchina locale (dove hai i privilegi), crittografi i dati e li invii in streaming a un server relay. Sul server restrittivo, usi curl per estrarre lo stream crittografato, lo passi ad openssl per la decrittografia e reindirizzi l'output su un file.
Generare la Pipeline
Costruire manualmente i comandi OpenSSL corretti, generare una chiave PBKDF2 sicura e assicurarsi che la modalità AES-256-CTR sia configurata correttamente è noioso e prono ad errori. Questo è il motivo per cui abbiamo costruito Tubo.
Tubo è uno strumento di trasferimento file zero-install. Il client sul server restrittivo è un semplice script shell POSIX. Se ti rifiuti di usare curl | sh per motivi di sicurezza, Tubo fornisce una modalità manuale che stampa l'esatta pipeline che devi eseguire.
curl -sN https://tubo.endlessite.com/run/xyz | openssl enc -d -aes-256-ctr -pass pass:LA_TUA_CHIAVE > database_dump.sql
Analizziamo perché questo approccio funziona in ambienti restrittivi:
- Nessun Binario: Ci basiamo esclusivamente su binari che sono già presenti e permessi dagli amministratori di sistema.
- Zero I/O su Disco: I dati crittografati passano direttamente attraverso la memoria in OpenSSL. Non sono richiesti file temporanei.
- Crittografia End-to-End: Il server relay non vede mai i dati in chiaro. Si limita a inoltrare i byte.
Limitazioni e Casi Limite
Sebbene questo approccio risolva il problema immediato, non è privo di compromessi. Il comportamento standard di openssl enc può variare su distribuzioni Unix meno comuni (come vecchie versioni di AIX o Solaris). Inoltre, poiché questa pipeline si basa su uno stream HTTP stateless, non c'è un meccanismo integrato per riprendere i trasferimenti (resumable) se la connessione cade a metà di un file da 50GB.
Per la maggior parte delle operazioni di emergenza—estrarre log per eseguire il debug di un incidente o scaricare uno snapshot veloce—questa pipeline in pura shell è la soluzione più pragmatica disponibile. Abbiamo progettato Tubo per automatizzare esattamente questo flusso di lavoro, riducendo al minimo gli attriti quando si ha a che fare con infrastrutture rigide.
Se vuoi ispezionare il codice del relay o rivedere i comandi POSIX manuali, la repository è open source. Puoi trovarla qui.