Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
U kunt een punt-naar-site-verbinding (P2S) virtueel particulier netwerk (VPN) gebruiken om uw Azure-bestandsshares van buiten Azure te koppelen, zonder gegevens via het open internet te verzenden. Een punt-naar-site-VPN-verbinding is een VPN-verbinding tussen Azure en een afzonderlijke client. Als u een P2S VPN-verbinding met Azure Files wilt gebruiken, moet u een P2S VPN-verbinding configureren voor elke client die verbinding wil maken. Als u veel clients hebt die verbinding moeten maken met uw Azure-bestandsshares vanuit uw on-premises netwerk, kunt u een site-naar-site-VPN-verbinding (S2S) gebruiken in plaats van een punt-naar-site-verbinding voor elke client. Zie Een site-naar-site-VPN configureren voor gebruik met Azure Files voor meer informatie.
We raden u ten zeerste aan azure Files-netwerkoverzicht te lezen voordat u verdergaat met dit artikel voor een volledige bespreking van de beschikbare netwerkopties voor Azure Files.
In het artikel worden de stappen beschreven voor het configureren van een punt-naar-site-VPN op Linux om Azure-bestandsshares rechtstreeks on-premises te koppelen.
Van toepassing op
Beheermodel | Betaalmodel | Medianiveau | Redundantie | Kleine en Middelgrote Ondernemingen (SMB) | NFS (Netwerkbestandssysteem) |
---|---|---|---|---|---|
Microsoft.Opslag | Geconfigureerd v2 | HDD (standaard) | Lokaal (LRS) |
![]() |
![]() |
Microsoft.Opslag | Geconfigureerd v2 | HDD (standaard) | Zone (ZRS) |
![]() |
![]() |
Microsoft.Opslag | Geconfigureerd v2 | HDD (standaard) | Aardrijkskunde (GRS) |
![]() |
![]() |
Microsoft.Opslag | Geconfigureerd v2 | HDD (standaard) | GeoZone (GZRS) |
![]() |
![]() |
Microsoft.Opslag | Geconfigureerd v1 | SSD (van hoge kwaliteit) | Lokaal (LRS) |
![]() |
![]() |
Microsoft.Opslag | Geconfigureerd v1 | SSD (van hoge kwaliteit) | Zone (ZRS) |
![]() |
![]() |
Microsoft.Opslag | Betaal naar verbruik | HDD (standaard) | Lokaal (LRS) |
![]() |
![]() |
Microsoft.Opslag | Betaal naar verbruik | HDD (standaard) | Zone (ZRS) |
![]() |
![]() |
Microsoft.Opslag | Betaal naar verbruik | HDD (standaard) | Aardrijkskunde (GRS) |
![]() |
![]() |
Microsoft.Opslag | Betaal naar verbruik | HDD (standaard) | GeoZone (GZRS) |
![]() |
![]() |
Vereiste voorwaarden
De meest recente versie van de Azure CLI. Zie De Azure PowerShell CLI installeren en uw besturingssysteem selecteren voor meer informatie over het installeren van de Azure CLI. Als u liever de Azure PowerShell-module op Linux gebruikt, kunt u dat doen. De onderstaande instructies zijn echter voor Azure CLI.
Een Azure-bestand dat u op locatie wilt koppelen. Azure-bestandsshares worden geïmplementeerd in opslagaccounts. Dit zijn beheerconstructies die een gedeelde opslaggroep vertegenwoordigen waarin u meerdere bestandsshares kunt implementeren. Meer informatie over het implementeren van Azure-bestandsshares en opslagaccounts vindt u in Een Azure-bestandsshare maken.
Een privé-eindpunt voor het opslagaccount met de Azure-bestandsshare die u on-premises wilt instellen. Zie Azure Files-netwerkeindpunten configureren voor meer informatie over het maken van een privé-eindpunt.
Vereiste software installeren
De gateway van het virtuele Azure-netwerk kan VPN-verbindingen bieden met behulp van verschillende VPN-protocollen, waaronder IPsec en OpenVPN. In dit artikel wordt beschreven hoe u IPsec gebruikt en het strongSwan-pakket gebruikt om de ondersteuning op Linux te bieden.
Geverifieerd met Ubuntu 18.10.
sudo apt update
sudo apt install strongswan strongswan-pki libstrongswan-extra-plugins curl libxml2-utils cifs-utils unzip
INSTALL_DIR="/etc/"
Als de installatie mislukt of als er een fout optreedt, zoals EAP_IDENTITY niet wordt ondersteund, en EAP_NAK wordt verzonden, moet u mogelijk extra invoegtoepassingen installeren:
sudo apt install -y libcharon-extra-plugins
Een virtueel netwerk implementeren
Als u toegang wilt krijgen tot uw Azure-bestandsshare en andere Azure-resources van on-premises via een punt-naar-site-VPN, moet u een virtueel netwerk of VNet maken. U kunt de P2S VPN-verbinding beschouwen als een brug tussen uw on-premises Linux-machine en dit virtuele Azure-netwerk.
Met het volgende script maakt u een virtueel Azure-netwerk met drie subnetten: één voor het service-eindpunt van uw opslagaccount, één voor het privé-eindpunt van uw opslagaccount. Dit is vereist voor toegang tot het opslagaccount on-premises zonder aangepaste routering te maken voor het openbare IP-adres van het opslagaccount dat kan worden gewijzigd en één voor uw virtuele netwerkgateway die de VPN-service biedt.
Vergeet niet om te vervangen <region>
, <resource-group>
en <desired-vnet-name>
door de juiste waarden voor uw omgeving.
REGION="<region>"
RESOURCE_GROUP_NAME="<resource-group>"
VIRTUAL_NETWORK_NAME="<desired-vnet-name>"
VIRTUAL_NETWORK=$(az network vnet create \
--resource-group $RESOURCE_GROUP_NAME \
--name $VIRTUAL_NETWORK_NAME \
--location $REGION \
--address-prefixes "192.168.0.0/16" \
--query "newVNet.id" | tr -d '"')
SERVICE_ENDPOINT_SUBNET=$(az network vnet subnet create \
--resource-group $RESOURCE_GROUP_NAME \
--vnet-name $VIRTUAL_NETWORK_NAME \
--name "ServiceEndpointSubnet" \
--address-prefixes "192.168.0.0/24" \
--service-endpoints "Microsoft.Storage" \
--query "id" | tr -d '"')
PRIVATE_ENDPOINT_SUBNET=$(az network vnet subnet create \
--resource-group $RESOURCE_GROUP_NAME \
--vnet-name $VIRTUAL_NETWORK_NAME \
--name "PrivateEndpointSubnet" \
--address-prefixes "192.168.1.0/24" \
--query "id" | tr -d '"')
GATEWAY_SUBNET=$(az network vnet subnet create \
--resource-group $RESOURCE_GROUP_NAME \
--vnet-name $VIRTUAL_NETWORK_NAME \
--name "GatewaySubnet" \
--address-prefixes "192.168.2.0/24" \
--query "id" | tr -d '"')
Certificaten maken voor VPN-verificatie
Als u wilt dat VPN-verbindingen van uw on-premises Linux-machines worden geverifieerd voor toegang tot uw virtuele netwerk, moet u twee certificaten maken:
- Een basiscertificaat dat wordt verstrekt aan de gateway van de virtuele machine
- Een clientcertificaat dat is ondertekend met het basiscertificaat
Met het volgende script worden de vereiste certificaten gemaakt.
ROOT_CERT_NAME="P2SRootCert"
USERNAME="client"
PASSWORD="1234"
mkdir temp
cd temp
sudo ipsec pki --gen --outform pem > rootKey.pem
sudo ipsec pki --self --in rootKey.pem --dn "CN=$ROOT_CERT_NAME" --ca --outform pem > rootCert.pem
ROOT_CERTIFICATE=$(openssl x509 -in rootCert.pem -outform der | base64 -w0 ; echo)
sudo ipsec pki --gen --size 4096 --outform pem > "clientKey.pem"
sudo ipsec pki --pub --in "clientKey.pem" | \
sudo ipsec pki \
--issue \
--cacert rootCert.pem \
--cakey rootKey.pem \
--dn "CN=$USERNAME" \
--san $USERNAME \
--flag clientAuth \
--outform pem > "clientCert.pem"
openssl pkcs12 -in "clientCert.pem" -inkey "clientKey.pem" -certfile rootCert.pem -export -out "client.p12" -password "pass:$PASSWORD"
Virtuele netwerkgateway implementeren
De gateway van het virtuele Azure-netwerk is de service waarmee uw on-premises Linux-client verbinding maakt. Voor het implementeren van deze service zijn twee basisonderdelen vereist:
- Een openbaar IP-adres waarmee de gateway voor uw clients wordt geïdentificeerd, waar ze zich ook ter wereld bevinden.
- Het basiscertificaat dat u eerder hebt gemaakt, dat wordt gebruikt om uw clients te verifiëren
Vergeet niet om <desired-vpn-name-here>
te vervangen door de naam die u voor deze resources wilt gebruiken.
Opmerking
Het implementeren van de gateway van het virtuele Azure-netwerk kan tot 45 minuten duren. Hoewel deze resource wordt geïmplementeerd, blokkeert dit bash-script dat de implementatie wordt voltooid.
P2S IKEv2/OpenVPN-verbindingen worden niet ondersteund met de Basic SKU. Dit script maakt gebruik van de VpnGw1-SKU voor de gateway van het virtuele netwerk.
VPN_NAME="<desired-vpn-name-here>"
PUBLIC_IP_ADDR_NAME="$VPN_NAME-PublicIP"
PUBLIC_IP_ADDR=$(az network public-ip create \
--resource-group $RESOURCE_GROUP_NAME \
--name $PUBLIC_IP_ADDR_NAME \
--location $REGION \
--sku "Basic" \
--allocation-method "Dynamic" \
--query "publicIp.id" | tr -d '"')
az network vnet-gateway create \
--resource-group $RESOURCE_GROUP_NAME \
--name $VPN_NAME \
--vnet $VIRTUAL_NETWORK_NAME \
--public-ip-addresses $PUBLIC_IP_ADDR \
--location $REGION \
--sku "VpnGw1" \
--gateway-typ "Vpn" \
--vpn-type "RouteBased" \
--address-prefixes "172.16.201.0/24" \
--client-protocol "IkeV2" > /dev/null
az network vnet-gateway root-cert create \
--resource-group $RESOURCE_GROUP_NAME \
--gateway-name $VPN_NAME \
--name $ROOT_CERT_NAME \
--public-cert-data $ROOT_CERTIFICATE \
--output none
De VPN-client configureren
De gateway van het virtuele Azure-netwerk maakt een downloadbaar pakket met configuratiebestanden die nodig zijn om de VPN-verbinding op uw on-premises Linux-machine te initialiseren. Het volgende script plaatst de certificaten die u op de juiste plek hebt gemaakt en configureert het ipsec.conf
bestand met de juiste waarden uit het configuratiebestand in het downloadbare pakket.
VPN_CLIENT=$(az network vnet-gateway vpn-client generate \
--resource-group $RESOURCE_GROUP_NAME \
--name $VPN_NAME \
--authentication-method EAPTLS | tr -d '"')
curl $VPN_CLIENT --output vpnClient.zip
unzip vpnClient.zip
VPN_SERVER=$(xmllint --xpath "string(/VpnProfile/VpnServer)" Generic/VpnSettings.xml)
VPN_TYPE=$(xmllint --xpath "string(/VpnProfile/VpnType)" Generic/VpnSettings.xml | tr '[:upper:]' '[:lower:]')
ROUTES=$(xmllint --xpath "string(/VpnProfile/Routes)" Generic/VpnSettings.xml)
sudo cp "${INSTALL_DIR}ipsec.conf" "${INSTALL_DIR}ipsec.conf.backup"
sudo cp "Generic/VpnServerRoot.cer_0" "${INSTALL_DIR}ipsec.d/cacerts"
sudo cp "${USERNAME}.p12" "${INSTALL_DIR}ipsec.d/private"
sudo tee -a "${installDir}ipsec.conf" <<EOF
conn $VIRTUAL_NETWORK_NAME
keyexchange=$VPN_TYPE
type=tunnel
leftfirewall=yes
left=%any
leftauth=eap-tls
leftid=%client
right=$vpnServer
rightid=%$vpnServer
rightsubnet=$routes
leftsourceip=%config
auto=add
EOF
echo ": P12 client.p12 '$PASSWORD'" | sudo tee -a "${INSTALL_DIR}ipsec.secrets" > /dev/null
sudo ipsec restart
sudo ipsec up $VIRTUAL_NETWORK_NAME
Azure-bestandsshare koppelen
Nadat u uw punt-naar-site-VPN hebt ingesteld, kunt u uw Azure-bestandsshare koppelen. Zie SMB-bestandsshares koppelen aan Linux of NFS-bestandsshare koppelen aan Linux.