Das Buchungsportal der Nordlicht Reisen GmbH hat drei Schichten: Webserver, Anwendungsserver und Datenbankserver. Nur die Webserver sollen aus dem Internet erreichbar sein, und das nur über HTTPS. Die Anwendungsserver sollen nur von den Webservern Aufrufe annehmen, die Datenbankserver nur von den Anwendungsservern. RDP und SSH sollen nie aus dem Internet gehen. Die Prüfung nennt das: Netzwerksicherheitsgruppen (NSGs) und Anwendungssicherheitsgruppen (ASGs) erstellen und konfigurieren und wirksame Sicherheitsregeln in NSGs auswerten.

Vorwissen: Wie Firewalls, Ports und SSH funktionieren, steht in K3, Lektion 3.0.6 („Firewalls, NSGs und SSH“); die Idee „so wenig wie nötig erlauben“ steht in K3, Lektion 3.3.5. Das virtuelle Netz mit Subnetzen kommt aus Lektion 4.1. Hier steht, wie Sie die Regeln anlegen, ordnen und prüfen.

Die Netzwerksicherheitsgruppe

Eine Netzwerksicherheitsgruppe (network security group, NSG) enthält Regeln, die eingehenden und ausgehenden Verkehr erlauben oder verbieten. Sie ordnen eine NSG einem Subnetz oder einer Netzwerkkarte (NIC) zu. Dieselbe NSG kann mehreren Subnetzen und Netzwerkkarten zugeordnet sein, aber jedes Subnetz und jede Netzwerkkarte hat höchstens eine NSG.

Regeln

Eine Regel hat diese Eigenschaften:

Eigenschaft Bedeutung
Name eindeutig in der NSG, bis zu 80 Zeichen
Priorität Zahl von 100 bis 4096; kleinere Zahl wird zuerst geprüft; zwei Regeln mit gleicher Priorität und Richtung sind nicht erlaubt
Quelle, Ziel beliebig, einzelne IP, CIDR-Block, Diensttag oder Anwendungssicherheitsgruppe
Quell- und Zielports ein Port, Bereich oder Liste
Protokoll TCP, UDP, ICMP, ESP, AH oder beliebig
Richtung eingehend oder ausgehend
Aktion erlauben oder verbieten

Azure wertet jede Regel nach den fünf Angaben Quelle, Quellport, Ziel, Zielport und Protokoll aus. Passt der Verkehr zu einer Regel, endet die Prüfung; weitere Regeln werden nicht angesehen. NSGs filtern auf Ebene 3 und 4; den Inhalt prüfen sie nicht.

NSGs sind zustandsbehaftet (stateful). Haben Sie eingehenden Verkehr auf einem Port erlaubt, braucht die Antwort keine ausgehende Regel, und umgekehrt: Wer einen ausgehenden Aufruf erlaubt, braucht keine eingehende Regel für die Antwort. Neue und geänderte Regeln wirken nur auf neue Verbindungen; eine bestehende SSH-Sitzung bleibt auch nach dem Löschen der Regel offen.

Die sechs Standardregeln

Jede NSG enthält Standardregeln mit den niedrigsten Prioritäten. Sie lassen sich nicht löschen, aber mit eigenen Regeln überstimmen (eigene Regeln haben Zahlen zwischen 100 und 4096, also eine höhere Priorität):

Priorität Name Richtung Aktion Bedeutung
65000 AllowVnetInBound ein erlauben Verkehr aus dem virtuellen Netz
65001 AllowAzureLoadBalancerInBound ein erlauben Verkehr vom Azure Load Balancer
65500 DenyAllInBound ein verbieten alles andere eingehend
65000 AllowVnetOutBound aus erlauben Verkehr in das virtuelle Netz
65001 AllowInternetOutBound aus erlauben ausgehend ins Internet
65500 DenyAllOutBound aus verbieten alles andere ausgehend

Daraus folgt für die Prüfung: Aus dem Internet kommt nichts herein, was Sie nicht ausdrücklich erlauben (DenyAllInBound). Aber innerhalb des virtuellen Netzes ist standardmäßig alles erlaubt (AllowVnetInBound). Der Diensttag VirtualNetwork umfasst dabei den Adressraum des Netzes, verbundene Adressräume (Peerings), über VPN oder ExpressRoute verbundene lokale Netze und Dienstendpunkte. Wollen Sie Schichten innerhalb des Netzes trennen, brauchen Sie also eigene Verbieten-Regeln.

Subnetz und Netzwerkkarte zusammen

Haben Sie NSGs an Subnetz und Netzwerkkarte, müssen beide den Verkehr erlauben:

Richtung Reihenfolge
eingehend erst die NSG am Subnetz, dann die an der Netzwerkkarte
ausgehend erst die NSG an der Netzwerkkarte, dann die am Subnetz

Microsoft rät, einen Standard zu wählen (Subnetz oder Netzwerkkarte) und Abweichungen zu dokumentieren: Zwei NSGs ergeben schwer zu findende Sperren. Eine NSG am Subnetz gilt für alles darin; eine an der Netzwerkkarte für Ausnahmen, etwa für einen Sprungrechner. Ein Standard-Load-Balancer oder eine öffentliche Standard-Adresse (Lektion 4.1) lässt eingehenden Verkehr erst durch, wenn eine NSG ihn erlaubt.

Diensttags

Ein Diensttag (service tag) steht für die IP-Bereiche eines Azure-Dienstes, die Microsoft pflegt: zum Beispiel Internet (alle öffentlichen Adressen außerhalb Ihres Netzes), VirtualNetwork, AzureLoadBalancer, Storage, Sql und AzureCloud. Eigene Diensttags können Sie nicht anlegen. In einer Regel steht nur ein Diensttag. Erweiterte Regeln (augmented security rules) erlauben mehrere IP-Bereiche und Ports in einer Regel.