GCP - VPC & Networking

Supporta HackTricks

GCP Compute Networking in a Nutshell

Le VPC contengono regole di Firewall per consentire il traffico in entrata nella VPC. Le VPC contengono anche sottoreti dove le macchine virtuali saranno collegate. Rispetto ad AWS, il Firewall sarebbe la cosa più simile ai Gruppi di Sicurezza e NACLs di AWS, ma in questo caso queste sono definite nella VPC e non in ogni istanza.

VPC, Sottoreti & Firewall in GCP

Le istanze di calcolo sono collegate a sottoreti che fanno parte delle VPC (Virtual Private Clouds). In GCP non ci sono gruppi di sicurezza, ci sono firewall VPC con regole definite a questo livello di rete ma applicate a ciascuna istanza VM.

Sottoreti

Una VPC può avere diverse sottoreti. Ogni sottorete è in 1 regione.

Firewall

Per impostazione predefinita, ogni rete ha due regole di firewall implicite: consenti in uscita e nega in entrata.

Quando viene creato un progetto GCP, viene creata anche una VPC chiamata default, con le seguenti regole di firewall:

  • default-allow-internal: consenti tutto il traffico da altre istanze sulla rete default

  • default-allow-ssh: consenti 22 da ovunque

  • default-allow-rdp: consenti 3389 da ovunque

  • default-allow-icmp: consenti ping da ovunque

Come puoi vedere, le regole di firewall tendono ad essere più permissive per gli indirizzi IP interni. La VPC predefinita consente tutto il traffico tra le istanze di calcolo.

Ulteriori regole di firewall possono essere create per la VPC predefinita o per nuove VPC. Le regole di firewall possono essere applicate alle istanze tramite i seguenti metodi:

Sfortunatamente, non esiste un semplice comando gcloud per elencare tutte le istanze di calcolo con porte aperte su Internet. Devi collegare i punti tra le regole di firewall, i tag di rete, gli account di servizio e le istanze.

Questo processo è stato automatizzato utilizzando questo script python che esporta quanto segue:

  • File CSV che mostra istanza, IP pubblico, TCP consentito, UDP consentito

  • Scansione nmap per mirare a tutte le istanze sulle porte in ingresso consentite da Internet pubblico (0.0.0.0/0)

  • masscan per mirare all'intero intervallo TCP di quelle istanze che consentono TUTTE le porte TCP da Internet pubblico (0.0.0.0/0)

Politiche di Firewall Gerarchiche

Le politiche di firewall gerarchiche ti consentono di creare e applicare una politica di firewall coerente in tutta l'organizzazione. Puoi assegnare politiche di firewall gerarchiche all'organizzazione nel suo insieme o a singoli folder. Queste politiche contengono regole che possono esplicitamente negare o consentire connessioni.

Crei e applichi le politiche di firewall come passaggi separati. Puoi creare e applicare politiche di firewall ai nodi dell'organizzazione o della cartella della gerarchia delle risorse. Una regola di politica di firewall può bloccare connessioni, consentire connessioni o rinviare la valutazione della regola di firewall a cartelle di livello inferiore o regole di firewall VPC definite nelle reti VPC.

Per impostazione predefinita, tutte le regole di politica di firewall gerarchiche si applicano a tutte le VM in tutti i progetti sotto l'organizzazione o la cartella a cui è associata la politica. Tuttavia, puoi limitare quali VM ricevono una determinata regola specificando reti target o account di servizio target.

Puoi leggere qui come creare una Politica di Firewall Gerarchica.

Valutazione delle Regole di Firewall

  1. Org: Politiche di firewall assegnate all'Organizzazione

  2. Cartella: Politiche di firewall assegnate alla Cartella

  3. VPC: Regole di firewall assegnate alla VPC

  4. Globale: Un altro tipo di regole di firewall che possono essere assegnate alle VPC

  5. Regionale: Regole di firewall associate alla rete VPC della NIC della VM e alla regione della VM.

Peering di Rete VPC

Consente di connettere due reti Virtual Private Cloud (VPC) in modo che le risorse in ciascuna rete possano comunicare tra loro. Le reti VPC collegate possono trovarsi nello stesso progetto, in progetti diversi della stessa organizzazione o in progetti diversi di organizzazioni diverse.

Queste sono le autorizzazioni necessarie:

  • compute.networks.addPeering

  • compute.networks.updatePeering

  • compute.networks.removePeering

  • compute.networks.listPeeringRoutes

Ulteriori informazioni nella documentazione.

Riferimenti

Supporta HackTricks

Last updated