Мы хотим использовать Microsoft Azure и хотим предоставлять нашим клиентам виртуальные машины, имея при этом серверную часть для мониторинга и Active Directory. Наша сеть будет примерно такой:
сеть: 10.0.0.0/23
подсети: 10.0.0.0/24 (бэкэнд с мониторингом, ...)
10.0.1.0/29 customer1-network (server1 на 10.0.1.4 для клиента 1)
10.0.1.8/29 gateway1 (для клиента1)
10.0.1.16/29 customer2-network (server2 на 10.0.1.12 для клиента 2)
10.0.1.24/29 gateway2 (для клиента2)
Клиент1 соединяет свой маршрутизатор со шлюзом1, чтобы они могли получить доступ к серверу1 - и ТОЛЬКО к серверу1. Им не разрешено напрямую подключаться к server2, gateway2 или backend-сети. Их server1 - это виртуальная машина с окнами, и ему нужно подключиться к серверной сети, но не к server2 или gateway2. У клиента нет доступа к удаленному рабочему столу, только к портам 443 и 5499 на server1.
Итак, вопросы:
Единственное, что я нашел, это этот сайт: https://azure.microsoft.com/en-us/documentation/articles/virtual-networks-udr-how-to/
Но ничего, связанного с ограничением доступа / VPN :(
Для таких детальных ограничений вам нужно создать группы безопасности сети (NSG). Вся настройка выполняется через PowerShell, но это не требует пояснений, если у вас есть опыт настройки брандмауэров с помощью консоли.
Что такое группа безопасности сети (NSG)
https://azure.microsoft.com/en-us/documentation/articles/virtual-networks-nsg/
По сути, все, что вам нужно, это заблокировать все, а затем открывать только соединения между серверной частью и шлюзом.
# Create NSG for Subnet1
New-AzureNetworkSecurityGroup -Name "myNSG1" -Location "East US"
# Deny entire Vnet
Get-AzureNetworkSecurityGroup -Name "myNSG1" | Set-AzureNetworkSecurityRule -Name "DENY VNET" -Type Inbound -Priority 1000 -Action Deny -SourceAddressPrefix 'VIRTUAL_NETWORK' -SourcePortRange '*' -DestinationAddressPrefix 'VIRTUAL_NETWORK' -DestinationPortRange '*' -Protocol *
# Allow Backend Vnet
Get-AzureNetworkSecurityGroup -Name "myNSG1" | Set-AzureNetworkSecurityRule -Name "ALLOW BACKEND" -Type Inbound -Priority 999 -Action Allow -SourceAddressPrefix '10.0.0.0/24' -SourcePortRange '*' -DestinationAddressPrefix 'VIRTUAL_NETWORK' -DestinationPortRange '*' -Protocol *
# Allow VMs in the same VNet to communicate
Get-AzureNetworkSecurityGroup -Name "myNSG1" | Set-AzureNetworkSecurityRule -Name "ALLOW SELF" -Type Inbound -Priority 998 -Action Allow -SourceAddressPrefix '10.0.1.0/29' -SourcePortRange '*' -DestinationAddressPrefix 'VIRTUAL_NETWORK' -DestinationPortRange '*' -Protocol *
# Allow Gateway
Get-AzureNetworkSecurityGroup -Name "myNSG1" | Set-AzureNetworkSecurityRule -Name "ALLOW GW" -Type Inbound -Priority 997 -Action Allow -SourceAddressPrefix '10.0.1.8/29' -SourcePortRange '*' -DestinationAddressPrefix 'VIRTUAL_NETWORK' -DestinationPortRange '*' -Protocol *
Это всего лишь основная идея для входящий соединения. Я не тестировал эти правила и не завершал настройку на основе вашего сценария, но должен дать вам представление, с чего начать.
Вам также необходимо применить его к подсети или набору виртуальных машин. Для подсетей:
Get-AzureNetworkSecurityGroup -Name "myNSG1" | Set-AzureNetworkSecurityGroupToSubnet -VirtualNetworkName 'myVnet' -SubnetName 'myVnetSubnet1'