Salta al contenuto

Documentazione

HestiaCP

HestiaCP è un pannello di controllo open source per l’hosting web. Provibr dialoga con la sua API tramite una chiave di accesso e gestisce gli account che vi si trovano: crearli, sospenderli e riattivarli, spostarli in un altro pacchetto ed eliminarli.

Attivare l’API e lasciar passare l’agente

HestiaCP ha una propria API sulla porta 8083, la stessa del pannello. Dalla versione 1.10 è attiva di serie; l’impostazione si trova in Server settings, Security.

Il pannello tiene inoltre un elenco degli indirizzi che possono usare quell’API, e su un’installazione nuova quell’elenco è vuoto, il che lì significa nessuno e non chiunque. Finché l’indirizzo pubblico della macchina con il suo agente non vi compare, ogni chiamata viene rifiutata anche se la chiave è corretta.

Si imposta nella stessa schermata del pannello, oppure da una shell sull’host del pannello:

shell
v-change-sys-config-value API_ALLOWED_IP '<agent-ip>'
I comandi e l’output del terminale sono in inglese ovunque, nel pannello e in queste pagine. Un solo testo, una sola verità: quello che legge qui è letteralmente ciò che il suo host le restituirà.

Una chiave di accesso per Provibr

La chiave si crea in Access keys, per l’utente admin, lasciando vuoto l’elenco dei permessi:

shell
v-add-access-key admin "" "provibr-agent"
I comandi e l’output del terminale sono in inglese ovunque, nel pannello e in queste pagine. Un solo testo, una sola verità: quello che legge qui è letteralmente ciò che il suo host le restituirà.
Vuoto significa tutti i comandi, e HestiaCP lo accetta solo per l’amministratore. Il set di permessi billing fornito di serie ci si avvicina, ma tralascia i due comandi che leggono i pacchetti e i domini di un account: con quel set entrambi restano vuoti. Una chiave si revoca da sola, ed è per questo che Provibr ne chiede una invece della password del pannello.
HestiaCP blocca un indirizzo dopo cinque accessi rifiutati, e un comando fuori dai permessi di una chiave conta come uno di essi. Da quel momento il pannello smette del tutto di rispondere: il collegamento non fallisce con un messaggio ma va in timeout. Il blocco si toglie sul pannello con v-delete-firewall-ban, seguito dall’indirizzo e dalla parola HESTIA.

Che cosa chiede Provibr

Quattro campi. L’agente li custodisce nella propria cassaforte sul suo host; Provibr non può rileggerli.

  • L’indirizzo del pannello con la porta, per esempio https://panel.example.com:8083. Se la porta viene omessa, Provibr aggiunge la 8083.
  • L’id della chiave: 20 caratteri. Non è un segreto, il pannello lo mostra da sé.
  • Il segreto: 40 caratteri fra lettere, cifre e segni di punteggiatura.
  • L’impronta SHA-256 del certificato, finché il pannello usa quello autofirmato.
L’http in chiaro viene rifiutato. La porta 8083 parla solo TLS, quindi un indirizzo http non punta mai all’API.

Il certificato

Un HestiaCP appena installato presenta un certificato autofirmato. Compilando l’impronta, l’agente si fida esattamente di quel certificato invece di disattivare il controllo. La si ricava da qualsiasi macchina che raggiunga il pannello:

shell
openssl s_client -connect <host>:8083 </dev/null 2>/dev/null | \
  openssl x509 -noout -fingerprint -sha256
I comandi e l’output del terminale sono in inglese ovunque, nel pannello e in queste pagine. Un solo testo, una sola verità: quello che legge qui è letteralmente ciò che il suo host le restituirà.

Non appena dà al pannello un certificato Let's Encrypt sul suo nome host, la catena si convalida da sola e il campo può restare vuoto. Anche lì è la scelta migliore: un certificato del genere si rinnova all’incirca ogni novanta giorni, e uno bloccato andrebbe sostituito qui ogni volta. Il test di connessione dice quale dei due c’è.

I pacchetti

HestiaCP descrive in un pacchetto ciò che un account può usare: spazio su disco, traffico e quanti domini, database e caselle di posta. Provibr legge quell’elenco e indica un pacchetto per nome; il contenuto resta cosa sua.

Un piano di hosting web in Provibr punta a un pacchetto di un’integrazione. È quello che ordina il cliente, e il prezzo lo decide lei.

Che cosa fa Provibr con un account

Cinque operazioni, tutte indirizzate con il nome utente, lo stesso che Provibr conserva come identità di quel server.

  • Creare un account, con un dominio, un pacchetto e un indirizzo di contatto.
  • Sospenderlo e riattivarlo. Un account sospeso non conta nella capacità.
  • Spostarlo in un altro pacchetto.
  • Eliminarlo, con tutto ciò che il pannello si porta via.
Una creazione costa due chiamate su HestiaCP: una per l’utente e una per il dominio, perché non esiste un comando che faccia entrambe le cose. Se la seconda fallisce, per esempio perché il dominio appartiene già a qualcun altro, l’agente elimina l’utente appena creato e segnala l’errore originale. Un dominio rifiutato non lascia quindi mai mezzo account.

Spazio su disco e traffico

Ogni lettura del pannello porta con sé il limite e il consumo di ciascun account, in megabyte. Compaiono sulla pagina del server e nei grafici, senza una seconda chiamata che possa restare indietro rispetto alla prima.

Provibr non gestisce DNS, caselle di posta o database su HestiaCP, e non c’è una console. Restano nel pannello stesso, dove lei e i suoi clienti continuano a usarli.

Gli account che esistono già

Gli account creati fuori da Provibr si importano dalla pagina dell’integrazione: l’agente elenca ciò che si trova sul pannello e lei sceglie quali diventano un server in Provibr.

Un account importato conta nella capacità da quel momento, come qualsiasi altro server web.

Che cosa non fa

Provibr gestisce account, non il pannello: non installa HestiaCP, non lo aggiorna, non cambia impostazioni del server e non tocca DNS, posta o database. Leggere un pannello con molti account costa una chiamata in più per account per i domini, perché HestiaCP non ha alcun comando che li elenchi tutti in una volta.