Vai al contenuto
CivoCloudManager

Apri un firewall Civo per il tuo IP, poi richiudilo.

La procedura manuale, la trappola dell'IP dinamico che si lascia dietro e una strada gratuita dalla barra dei menu che chiude la regola a scadenza.

Devi raggiungere un'istanza Civo o l'API di un cluster da dove sei seduto adesso. La risposta è una regola firewall: trovi il tuo IPv4 pubblico e apri la porta per quel singolo indirizzo scrivendo il CIDR come /32. Civo rende facile la prima metà e pericolosa la seconda, perché una regola aggiunta a mano resta lì finché qualcuno non la cancella. Qui trovi la procedura manuale per intero e poi la parte che quasi nessuno gestisce: richiudere.

La stessa regola, aperta dalla barra dei menu

  1. 01

    Dici all'app quali firewall gestisci

    Al primo avvio lo scudo nella barra dei menu fa partire l'onboarding: inserisci la API key Civo, che finisce nel Keychain di macOS, scegli una regione e selezioni i firewall che vuoi controllare. Ogni firewall selezionato riceve una porta, e quel campo parte da 6443.

  2. 02

    Lo lasci trovare il tuo IPv4 pubblico

    Il rilevamento parte da api.ipify.org, poi ifconfig.me/ip, poi icanhazip.com, e si ferma al primo fornitore che risponde con un indirizzo pubblico valido. Una risposta IPv6 o un indirizzo privato vengono rifiutati con un messaggio invece di finire dentro una regola, perché le regole firewall Civo vogliono un CIDR IPv4.

  3. 03

    Un clic scrive la regola

    L'app crea una regola in ingresso sulla porta scelta, con il CIDR impostato sull'indirizzo rilevato più /32 ed etichetta civo-cloud-<hostname>-<firewall-name>. Civo restituisce l'ID esatto della regola nella risposta di creazione, così l'app non deve mai indovinare più tardi quale regola fosse la sua.

  4. 04

    Scegli quanto resta aperta

    L'accesso a tempo propone 15 minuti, 30 minuti, un'ora e due ore. C'è anche Unlimited, che apre la regola e non pianifica nessuna chiusura, quindi scegli quello solo se hai intenzione di chiudere tu.

  5. 05

    La scadenza finisce su disco

    Ogni job di chiusura porta con sé ID del firewall, ID della regola, regione e scadenza, e viene scritto in modo atomico in firewall-closures.json dentro la cartella Application Support dell'app. Chiudi l'app e la scadenza è ancora lì: al lancio successivo i job scaduti vengono chiusi senza che il popover si apra. Il limite onesto è che per cancellare una regola l'app deve essere in esecuzione e deve poter raggiungere Civo. Uscire o mandare il Mac in stop non pianifica una cancellazione lato server.

  6. 06

    Salvi l'indirizzo come preset con un nome

    Memorizzi l'IP attuale sotto un nome tipo Casa o Ufficio e più avanti apri un firewall per quel preset senza rifare il rilevamento. Comodo quando vuoi aprire l'accesso per un indirizzo fisso dell'ufficio mentre sei da un'altra parte.

Cosa fa davvero un firewall Civo appena creato

La documentazione API di Civo è esplicita: quando crei una regola non esiste nessuna scelta tra allow e deny, perché il default di un firewall nuovo è bloccare tutto e tu apri solo le porte che ti servono. Un firewall che crei tu parte quindi chiuso e ogni regola che aggiungi è una regola di apertura. La trappola è l'altra. Ogni regione porta con sé un firewall chiamato letteralmente Default (all open), e la documentazione Civo dice che ha tutte le porte aperte e consiglia di personalizzarlo. La risposta corretta alla domanda che tutti fanno è quindi: il tuo firewall blocca di default, il firewall Default della regione no.

La procedura manuale, per intero

Primo, recuperi il tuo IPv4 pubblico: curl -s https://api.ipify.org. Secondo, aggiungi la regola. Con la Civo CLI è civo firewall rule create <firewall_id> --protocol=TCP --startport=6443 --endport=6443 --cidr=203.0.113.42/32 --direction=ingress --label='laptop'. Terzo, ed è la parte che si salta sempre, segnati l'ID della regola che torna indietro, così dopo puoi cancellarla. Occhio ai default: se ometti --cidr la CLI applica 0.0.0.0/0, che apre la porta a tutta internet invece che a te. Dalla dashboard il giro è lo stesso: Actions, poi Rules, poi una porta singola o un intervallo, protocollo, direzione e CIDR.

La regola sopravvive al motivo per cui l'hai aperta

Una regola firewall Civo non ha scadenza. Resta finché non la toglie una persona o una chiamata API. Su una linea business con indirizzo statico è solo disordine. Su una connessione domestica è esposizione vera, perché quasi tutti i provider consumer cambiano l'indirizzo alla riconnessione o al rinnovo notturno del lease. Il /32 che avevi aperto passa al router di qualcun altro, e la tua regola adesso fa entrare uno sconosciuto sulla porta 6443 mentre tu sei fuori e stai scrivendo una seconda regola. Ogni regola scritta a mano è un piccolo debito, e il debito si paga solo quando ti ricordi di cancellarla.

Perché l'app non può cancellare una regola scritta da te

La proprietà si decide dall'etichetta, non dalla porta o dall'indirizzo. L'app crea solo regole etichettate civo-cloud-<hostname>-<firewall-name>, e quelle aperte per una connessione all'API Kubernetes portano invece il suffisso k8s-api. Il Close All di gruppo elenca le regole di ogni firewall gestito e rimuove soltanto quelle la cui etichetta comincia con quel prefisso per questa macchina. Una regola di produzione scritta a mano non ha quell'etichetta, quindi non è mai un candidato. Un avvertimento che vale la pena dire: se il controllo dello stato fallisce, la barra dei menu mostra comunque chiuso o sconosciuto, quindi quello che vedi non è la prova che la regola sia sparita lato server. Quando conta, guarda nella dashboard Civo.

La porta 6443 e perché torna sempre

6443 è la porta dell'API server di Kubernetes. Un cluster k3s Civo pubblica il suo endpoint come https://<master-ip>:6443, ed è lì che parlano kubectl, un kubeconfig e qualsiasi client Kubernetes. Se il firewall del cluster non permette la 6443 dal tuo indirizzo, ogni comando va in timeout, ed è per questo che quel numero domina le ricerche sui firewall Civo. Nell'app 6443 è la porta di default nell'onboarding, e quando ti connetti a un cluster l'accesso all'API viene verificato e la regola aperta se manca. Quel percorso Kubernetes tiene traccia della sua regola in memoria e ripulisce alla disconnessione: non eredita la persistenza e i tentativi ripetuti della coda a tempo della barra dei menu.

Le domande che si fanno davvero

Come apro un firewall Civo solo per il mio IP?
Recupera il tuo IPv4 pubblico con curl -s https://api.ipify.org, poi crea una regola in ingresso sul firewall di destinazione con quell'indirizzo scritto come CIDR /32. Con la Civo CLI: civo firewall rule create <firewall_id> --protocol=TCP --startport=6443 --endport=6443 --cidr=203.0.113.42/32 --direction=ingress. Nell'API non esiste una scelta tra allow e deny, perché un firewall che crei tu blocca tutto finché non apri una porta. Conserva l'ID della regola che torna indietro, ti serve per cancellarla dopo.
Cosa significa /32 in una regola firewall Civo?
Nella notazione CIDR il numero dopo la barra dice quanti bit iniziali dell'indirizzo sono fissi. Un indirizzo IPv4 è di 32 bit, quindi /32 li fissa tutti e la regola vale per un indirizzo solo. 203.0.113.42/32 è quell'host e nient'altro. Per confronto, /24 coprirebbe 256 indirizzi e 0.0.0.0/0 copre tutta internet, che è quello che Civo applica quando crei una regola senza CIDR.
Cosa succede se il mio indirizzo IP cambia?
La regola non cambia con te. Continua a permettere il vecchio indirizzo, quindi tu perdi l'accesso e devi aggiungere una seconda regola, mentre chi riceve quell'indirizzo dal provider eredita la tua apertura. Sulle connessioni domestiche è la normalità, perché l'indirizzo di solito ruota alla riconnessione o al rinnovo notturno del lease. La soluzione non è un IP migliore, è una regola che si chiude da sola: apri la porta per una finestra fissa e lascia che sia la scadenza a toglierla.
CivoCloudManager tocca le regole firewall che ho già?
No. Cancella soltanto le regole che ha creato lui, riconosciute dall'etichetta civo-cloud-<hostname>-<firewall-name>, con il suffisso k8s-api per l'accesso all'API Kubernetes. Il Close All di gruppo filtra la lista delle regole di ogni firewall gestito con quel prefisso prima di cancellare qualsiasi cosa, quindi una regola che hai scritto a mano nella dashboard Civo, nella CLI o in Terraform non ha un'etichetta corrispondente e non viene mai rimossa.
Il timer di chiusura automatica sopravvive alla chiusura dell'app?
La scadenza sì. Ogni job salva ID del firewall, ID della regola, regione e orario di chiusura in un file JSON scritto in modo atomico dentro Application Support, e i job scaduti vengono chiusi al lancio successivo. Quello che non sopravvive è la chiusura senza di te: la cancellazione è una chiamata API dal tuo Mac, quindi l'app deve essere in esecuzione e deve poter raggiungere Civo. Se esci o vai in stop oltre la scadenza, la chiusura slitta al prossimo avvio dell'app e non viene pianificato niente lato server.

Il controllo dei firewall è la parte gratuita.

Apertura e chiusura dalla barra dei menu per il tuo IP attuale, preset con un nome e scadenza automatica restano gratis anche dopo i sette giorni di accesso completo, quindi mettere in pratica questa pagina non ti costa niente.