Azure Bastion gebruiken voor veilige toegang tot virtuele machines
04/01/2025
Dit technische en educatieve artikel is bedoeld om beveiligingsanalisten, IT-beheerders en systeemingenieurs te begeleiden bij het implementeren en configureren van Azure Bastion voor veilige toegang tot virtuele machines (VM's) in Azure. In een cloudomgeving is beveiliging van de toegang tot VM’s essentieel om bronnen en gegevens te beschermen. Traditioneel vereiste toegang tot VM's via RDP (Remote Desktop Protocol) of SSH (Secure Shell) het blootstellen van openbare poorten aan het internet, waardoor het aanvalsoppervlak aanzienlijk werd vergroot. Azure Bastion biedt een robuuste en veilige oplossing om dit risico te elimineren door veilige toegang te bieden zonder de noodzaak van VPN's of openbare IP's [1].
Introductie
Het migreren van infrastructuren naar de cloud heeft talloze voordelen opgeleverd op het gebied van schaalbaarheid en flexibiliteit. Veiligheid blijft echter een topprioriteit. Toegang tot virtuele machines is een cruciaal punt, omdat deze vaak het hart vormen van veel applicaties en services. Het rechtstreeks blootstellen van RDP- (3389)- of SSH-poorten (22) aan internet is een onverstandige beveiligingspraktijk, omdat ze hierdoor een gemakkelijk doelwit worden voor brute force-aanvallen en andere exploits [2].
Azure Bastion is een volledig beheerde Platform as a Service (PaaS)-service die u inricht in uw virtuele netwerk. Hiermee kunt u rechtstreeks vanuit de Azure-portal verbinding maken met virtuele machines in uw virtuele netwerk, met behulp van RDP en SSH, zonder dat u openbare IP-adressen op de virtuele machines, agenten die op de virtuele machines zijn geïnstalleerd of speciale clients/configuraties op uw lokale machine nodig hebt. Bastion fungeert als een veilige proxy en leidt RDP/SSH-verkeer via een beveiligde TLS-verbinding (Transport Layer Security) naar de browser van de gebruiker, waardoor VM's worden beschermd tegen directe blootstelling aan internet [3].
In deze handleiding worden de vereisten behandeld, hoe u Azure Bastion inricht en configureert, hoe u verbinding maakt met Windows- en Linux-VM's met behulp van RDP en SSH, hoe u sessies beheert en hoe u beveiligde toegang test en valideert. Er worden stapsgewijze instructies, praktische voorbeelden en beknopte uitleg gegeven, zodat de lezer deze functies kan implementeren, testen en valideren. Daarnaast worden beveiligingstips, compliance checks en best practices besproken om veilige en efficiënte toegang op afstand tot uw virtuele machines te garanderen, op een autonome, professionele en betrouwbare manier.
Waarom is Azure Bastion cruciaal voor VM-toegang?
- Verbeterde beveiliging: Elimineert de noodzaak van openbare IP's op VM's en beschermt ze tegen directe aanvallen vanaf internet. Toegang is via TLS via de browser.
- Vereenvoudigde toegang: maakt rechtstreeks verbinding met VM's vanuit de Azure-portal, zonder dat er systeemeigen RDP/SSH-clients of VPN's nodig zijn.
- Zero Trust: sluit aan bij de principes van Zero Trust en zorgt ervoor dat toegang altijd wordt geverifieerd en geautoriseerd, ongeacht de locatie van de gebruiker.
- Audit en monitoring: Hiermee kunt u sessies monitoren en beheren, met de optie voor sessie-opname (beschikbaar op de Premium SKU) voor audit- en nalevingsdoeleinden.
- Verlaagde kosten en complexiteit: Als volledig beheerde PaaS-service elimineert het de noodzaak om uw eigen jumpboxen of complexe VPN's te beheren.
- Poortscanbescherming: VM's hebben geen openbare IP's, waardoor ze onzichtbaar zijn voor poortscanners en kwaadwillende bots op internet.
Vereisten
Om Azure Bastion te implementeren, hebt u de volgende items nodig:
- Actief Azure-abonnement: een Azure-abonnement om resources te maken en te beheren.
- Beheerderstoegang: een account met de rol 'Eigenaar' of 'Bijdrager' voor het abonnement of de resourcegroep waar de VM's zich bevinden.
- Azure Virtual Network (VNet): een bestaand virtueel netwerk dat de virtuele machines bevat waarmee u verbinding wilt maken.
- Specifiek subnet voor Azure Bastion: een subnet binnen uw VNet met de naam
AzureBastionSubneten een voorvoegsel van minimaal/27(bijvoorbeeld:10.0.2.0/27). Dit subnet is exclusief voor Bastion en kan niet voor andere bronnen worden gebruikt [4]. - Virtuele machines (VM's): bestaande Windows- of Linux-VM's in hetzelfde VNet (of peered VNets) waarmee u verbinding wilt maken.
Stap voor stap: Azure Bastion configureren
Laten we Azure Bastion inrichten en gebruiken om verbinding te maken met een virtuele machine.
1. Het subnet AzureBastionSubnet maken
Vooren Bastion implementeert, moet u een speciaal subnet maken.
- Open uw browser en navigeer naar de Azure-portal:
https://portal.azure.com. - Log in met een account dat over de benodigde rechten beschikt.
- Typ 'Virtuele netwerken' in het bovenste zoekveld en selecteer dit uit de resultaten.
- Selecteer het virtuele netwerk waar uw VM's zich bevinden.
- Selecteer in het linkernavigatievenster onder
InstellingenSubnetten. -
Klik op
+Subnet. -
Subnet toevoegen:
- Naam: voer 'AzureBastionSubnet' in (deze naam is vereist).
- Subnetadresbereik: Geef een adresbereik op met een voorvoegsel van minimaal
/27(bijvoorbeeld10.0.2.0/27). - Laat overige instellingen standaard staan.
-
Klik op Opslaan.
- Uitleg: Het
AzureBastionSubnetis waar de Azure Bastion-service wordt geïmplementeerd. Het is van cruciaal belang dat de naam precies 'AzureBastionSubnet' is, zodat de service correct kan worden ingericht.
- Uitleg: Het
2. Azure Bastion inrichten
Nu het subnet klaar is, kunnen we de Bastion-service inzetten.
- Typ 'Bastion' in het Azure Portal in het bovenste zoekveld en selecteer dit uit de resultaten.
-
Klik op
+ Maken. -
Basisprincipes:
- Abonnement: Selecteer uw abonnement.
- Resourcegroep: Selecteer dezelfde resourcegroep als uw VNet.
- Naam: Geef uw Bastion-instantie een naam (bijvoorbeeld
myBastionHost). - Regio: Selecteer dezelfde regio als uw VNet.
- Niveau: Selecteer 'Basis' (voor standaard RDP/SSH) of 'Standaard' (voor extra functies zoals sessie-opname, het delen van links, enz.). Voor deze handleiding gebruiken we 'Basis'.
-
Virtueel netwerk:
- Virtueel netwerk: Selecteer het VNet waar u het 'AzureBastionSubnet' hebt gemaakt.
- Subnet: Het
AzureBastionSubnetwordt automatisch geselecteerd. - Openbaar IP-adres: Klik op 'Nieuw maken'. Geef het openbare IP-adres een naam (bijvoorbeeld
myBastionPublicIP). Dit openbare IP-adres is voor de Bastion-service en is niet zichtbaar voor uw virtuele machines.
-
Klik op 'Bekijken + aanmaken' en vervolgens op Maken.
- Uitleg: Azure Bastion-inrichting kan 5 tot 10 minuten duren. Eenmaal geïmplementeerd, is het klaar om te worden gebruikt voor toegang tot uw VM's.
3. Verbinding maken met een Windows-VM via RDP
Laten we verbinding maken met een Windows-VM zonder de RDP-poort bloot te leggen.
- Navigeer in de Azure-portal naar uw Windows-VM.
- Selecteer Verbinden in het linkernavigatievenster.
- Selecteer Bastion.
- Voer uw Windows VM-gebruikersgegevens en wachtwoord in.
-
Klik op Verbinden.
- Verwachte actie: er wordt een nieuw browsertabblad geopend en u ziet uw Windows VM-bureaublad. De verbinding is volledig gebaseerd op HTML5 in de browser.
4. Verbinding maken met een Linux-VM via SSH
Laten we verbinding maken met een Linux-VM zonder de SSH-poort bloot te leggen.
- Navigeer in de Azure-portal naar uw Linux-VM.
- Selecteer Verbinden in het linkernavigatievenster.
- Selecteer Bastion.
- Kies het
Authenticatietype:Gebruikersnaam en wachtwoordofSSH Private Key.- Voer bij 'Gebruikersnaam en wachtwoord' uw Linux VM-referenties in.
- Indien
SSH Private Key, upload dan uw privésleutelbestand (.pemof.ppk).
-
Klik op Verbinden.
- Verwachte actie: er wordt een nieuw browsertabblad geopend en u ziet de terminal van uw Linux VM, waarmee u SSH-opdrachten kunt uitvoeren.
Validatie en testen
Het is van cruciaal belang om te valideren dat de toegang via Azure Bastion werkt zoals verwacht en dat de VM’s niet op andere manieren toegankelijk zijn.
1. Bastion-connectiviteit controleren
- Scenario: Probeer toegang te krijgen tot uw Windows- en Linux-VM's met behulp van Azure Bastion, zoals beschreven in stap 3 en 4 hierboven.
- Verwachte actie: RDP- en SSH-verbindingen moeten succesvol tot stand worden gebracht via de browser.
- Verificatie:
- Bevestig dat u kunt communiceren met het Windows VM-bureaublad en opdrachten kunt uitvoeren in de Linux VM-terminal.
2. Directe ontoegankelijkheid van VM's controleren
- Scenario: Probeer rechtstreeks vanaf internet toegang te krijgen tot uw VM's met behulp van een RDP- of SSH-client, waarbij u verwijst naar het openbare IP-adres van de VM (als die er is) of het privé-IP-adres (als u zich buiten het VNet bevindt).
- Verwachte actie: directe verbindingspogingen zouden moeten mislukken omdat RDP/SSH-poorten niet openbaar mogen worden gemaakt.
- Verificatie:
*Als uw virtuele machines openbare IP-adressen hebben, controleert u de Network Security Group (NSG)-regels die zijn gekoppeld aan de netwerkinterface van de virtuele machine of het subnet van de virtuele machine. Zorg ervoor dat poorten 3389 (RDP) en 22 (SSH) niet open staan voor 'Any' of 'Internet'.
- Idealiter zouden VM's die via Bastion worden benaderd geen bijbehorende openbare IP's moeten hebben.
3. Bastion-sessiebewaking (standaard SKU)
Als u Bastion heeft ingericht met de standaard-SKU, kunt u actieve sessies controleren.
- Navigeer in de Azure-portal naar uw Azure Bastion-bron (
myBastionHost). - Selecteer in het linkernavigatievenster onder
MonitoringSessies. - U ziet een lijst met actieve RDP- en SSH-sessies, inclusief de gebruiker, het bron-IP-adres en de doel-VM.
Beveiligingstips en best practices
- Openbare IP-adressen verwijderen van VM's: na het configureren van Azure Bastion verwijdert u alle openbare IP-adressen van uw VM's. Dit is het belangrijkste beveiligingsvoordeel van Bastion.
- Configureer NSG's op de juiste manier: zorg ervoor dat de netwerkbeveiligingsgroepen (NSG's) van uw VM-subnetten en 'AzureBastionSubnet' correct zijn geconfigureerd om alleen noodzakelijk verkeer toe te staan. Bastion heeft toegang nodig tot de privé RDP/SSH-poorten van VM's, maar VM's hebben geen openbare inkomende toegang nodig.
- Privilege van de minste bevoegdheden: wijs alleen de noodzakelijke machtigingen toe, zodat gebruikers via Bastion verbinding kunnen maken met VM's. Azure RBAC kan worden gebruikt om te bepalen wie Bastion kan gebruiken.
- Sterke authenticatie: gebruik altijd sterke authenticatie voor uw VM-inloggegevens. Combineer met Azure AD voor authenticatie en, indien mogelijk, voorwaardelijke toegang om MFA te vereisen voor toegang tot de Azure-portal, die op zijn beurt de toegang tot Bastion beheert.
- Sessieopname (Premium SKU): voor omgevingen die strikte naleving en controle vereisen, kunt u overwegen de Azure Bastion Premium SKU te gebruiken om RDP- en SSH-sessies op te nemen. Dit biedt een visueel overzicht van wat er op de VM's is gedaan.
- Logboekbewaking: Bewaak Azure-activiteitenlogboeken voor Bastion en beveiligingslogboeken voor uw VM's om verdachte activiteiten of ongeautoriseerde toegangspogingen te detecteren.
- Updates en patches: houd uw VM's up-to-date met de nieuwste beveiligingspatches om interne kwetsbaarheden te beperken.
Algemene probleemoplossing
- Ik zie de Bastion-optie niet wanneer ik probeer verbinding te maken met de VM:
- Controleer of Azure Bastion is ingericht in hetzelfde VNet (of peered VNet) als de VM.
- Zorg ervoor dat
AzureBastionSubnetbestaat en het juiste adresvoorvoegsel heeft (/27of hoger). - Controleer of Bastion de status 'Running' heeft in de Azure-portal.
- RDP/SSH-verbindingsfout via Bastion:
- Ongeldige inloggegevens: Controleer of de gebruikers- en wachtwoordreferenties (of SSH-sleutel) correct zijn voor de VM.
- NSG-problemen: Bevestig dat de NSG van het VM-subnet inkomend verkeer toestaat op poort 3389 (RDP) of 22 (SSH) van het 'AzureBastionSubnet'.
- VM Firewall: Controleer of de interne firewall van de VM RDP/SSH-verbindingen niet blokkeert.
- RDP/SSH-service is niet actief: Zorg ervoor dat de RDP (voor Windows) of SSH (voor Linux) service actief is op de VM.
- Langzame prestaties of verbroken verbindingen:
- Controleer de bandbreedte van uw internetverbinding. Bastion streamt de sessievideo naar uw browser.
- Overweeg het gebruik van de Standard- of Premium-SKU van Bastion, die betere prestaties en extra functies biedt.
- Controleer op hoog CPU- of geheugengebruik op de doel-VM, wat de sessieprestaties kan beïnvloeden.
- Ik heb geen toegang tot interne VM-bronnen via Bastion:
- Azure Bastion biedt connectiviteit met de VM. Eenmaal verbonden met de VM, is de toegang tot andere interne bronnen van het VNet afhankelijk van de eigen netwerkconfiguraties van de VM en de toepasselijke NSG-regels.
Conclusie
Azure Bastion is een essentieel onderdeel voor de beveiliging van cloudomgevingen en biedt een veilige en vereenvoudigde methode voor toegang tot virtuele machines. Door de directe blootstelling van RDP/SSH-poorten aan internet te elimineren, wordt het aanvalsoppervlak aanzienlijk verkleind en wordt de algehele beveiligingspositie versterkt. Zorgvuldige implementatie, integratie met best practices op het gebied van beveiliging en continue monitoring zijn van cruciaal belang om de voordelen van Bastion te maximaliseren. Met deze grMet deze praktische aanpak zijn beveiligingsprofessionals en IT-beheerders goed toegerust om Azure Bastion te configureren, valideren en beheren, zodat de toegang tot hun virtuele machines altijd veilig en compliant is.
Referenties:
[1] Microsoft Leer. Wat is Azure Bastion?. Beschikbaar op: https://learn.microsoft.com/pt-br/azure/bastion/bastion-overview [2] Microsoft Leer. Ontwerp- en planningsoverwegingen voor het gebruik van Azure Bastion om veilige externe toegang tot virtuele machines in Azure mogelijk te maken. Beschikbaar op: https://learn.microsoft.com/pt-br/azure/cloud-adoption-framework/ready/azure-best-practices/plan-for-virtual-machine-remote-access [3] Microsoft Leer. Verbinding maken met een Windows-VM met behulp van RDP - Azure Bastion. Beschikbaar op: https://learn.microsoft.com/pt-br/azure/bastion/bastion-connect-vm-rdp-windows [4] Microsoft Leer. Configureer een Bastion-host. Beschikbaar op: https://learn.microsoft.com/pt-br/azure/bastion/tutorial-create-host-portal [5] Microsoft Leer. Verbind met een Linux-VM met behulp van SSH - Azure Bastion. Beschikbaar op: https://learn.microsoft.com/pt-br/azure/bastion/bastion-connect-vm-ssh-linux [6] Microsoft Leer. Bewaking en beheer van Azure Bastion-sessies. Beschikbaar op: https://learn.microsoft.com/pt-br/azure/bastion/session-monitoring [7] Microsoft Leer. Configureer Bastion-sessieopname. Beschikbaar op: https://learn.microsoft.com/pt-br/azure/bastion/session-recording