Das Problem: Port 3389 und 22 im Internet
VMs mit öffentlicher IP und offenem RDP-Port (3389) werden innerhalb von Minuten per Brute-Force attackiert. Lösungsansätze:
- VPN: Komplex, Wartungsaufwand
- Eigener Jump-Host: VM betreiben und absichern
- Azure Bastion: Managed Service, keine eigene Infrastruktur
Azure Bastion Varianten
| SKU | Features | Preis/Stunde |
|---|---|---|
| Basic | RDP/SSH im Browser | ~0,19 € |
| Standard | + Tunneling, Dateitransfer, Audio | ~0,38 € |
| Premium | + Session Recording, Private-only | ~0,57 € |
Bastion einrichten
Voraussetzung: AzureBastionSubnet
# /27 oder größer erforderlich
az network vnet subnet create \
--vnet-name vnet-firma-prod \
--resource-group rg-firma-prod \
--name AzureBastionSubnet \
--address-prefix 10.0.5.0/27
Public IP für Bastion
az network public-ip create \
--name pip-bastion \
--resource-group rg-firma-prod \
--sku Standard \
--location germanywestcentral
Bastion-Ressource
az network bastion create \
--name bastion-firma \
--resource-group rg-firma-prod \
--vnet-name vnet-firma-prod \
--public-ip-address pip-bastion \
--location germanywestcentral \
--sku Standard
Hinweis: Erstellung dauert 5–10 Minuten.
VM-Verbindung über Bastion
Im Azure Portal
- VM → Connect → Bastion
- Benutzername und Passwort/SSH-Key eingeben
- Browser öffnet RDP/SSH-Session im Tab
Kein Client-Software nötig! Funktioniert in Chrome, Edge, Firefox.
Per Azure CLI (Native Client)
# RDP via Bastion (öffnet lokalen RDP-Client)
az network bastion rdp \
--name bastion-firma \
--resource-group rg-firma-prod \
--target-resource-id /subscriptions/.../virtualMachines/vm-windows01
# SSH via Bastion
az network bastion ssh \
--name bastion-firma \
--resource-group rg-firma-prod \
--target-resource-id /subscriptions/.../virtualMachines/vm-linux01 \
--auth-type password \
--username azureuser
Tunnel für native Clients (Standard SKU)
# Tunnel öffnen (Port-Forwarding)
az network bastion tunnel \
--name bastion-firma \
--resource-group rg-firma-prod \
--target-resource-id /subscriptions/.../virtualMachines/vm-windows01 \
--resource-port 3389 \
--port 5555
# Dann mit lokalem RDP-Client: localhost:5555
mstsc /v:localhost:5555
NSG für VMs (kein öffentlicher Zugriff mehr nötig)
# Alle eingehenden Verbindungen blockieren (außer von Bastion)
az network nsg rule create \
--nsg-name nsg-vms \
--resource-group rg-firma-prod \
--name Deny-Direct-RDP \
--priority 4096 \
--source-address-prefixes Internet \
--destination-port-ranges 3389 22 \
--access Deny \
--protocol Tcp
# Bastion-Zugriff explizit erlauben (optional – Bastion nutzt seinen eigenen Weg)
az network nsg rule create \
--nsg-name nsg-vms \
--name Allow-Bastion \
--priority 100 \
--source-address-prefixes 10.0.5.0/27 \
--destination-port-ranges 3389 22 \
--access Allow
FAQ
Was kostet Azure Bastion für eine KMU?
Basic SKU: 0,19 €/Stunde. Wenn Sie Bastion nur während der Arbeitszeit laufen lassen (10h/Tag, 22 Arbeitstage): ~42 €/Monat.
Kann ich Bastion bei Bedarf ausschalten?
Ja. Bastion kann gelöscht und neu erstellt werden – die Konfiguration bleibt im VNet. Oder: Start/Stop-Automation via Azure Automation.
Fazit
Azure Bastion ist die sicherste und einfachste Lösung für VM-Zugriff in Azure. Kein VPN, keine offenen RDP-Ports, alles über HTTPS.
Azure-Sicherheitslösungen für KMU in Heidelberg, Mannheim und der Rhein-Neckar-Region. Beratung anfragen.