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.