DeveloZombie

Quemadas de un programador para muertos vivientes

Cómo automatizar la creación y configuración de clientes en Azure VPN Point-to-Site

Estimados muertos vivientes, Espero que este script les sea de utilidad, no se olviden modificar las

Estimados muertos vivientes, Espero que este script les sea de utilidad, no se olviden modificar las variables del inicio para que funcione correctamente.

Pre-requisitos:

  • Azure Powershell actualizado
  • Cuenta de Azure
  • VPN Gateway creado.

Me costó algo de trabajo automatizar el proceso así que Espero les sea de ayuda :)

EjecutarVPN.ps1

##################################################################################################
# EDITAR VARIABLES DE CONFIGURACION AQUÍ                                                         #
##################################################################################################
$directorioTrabajo = "C:\trabajo"
$subscriptionName = "Consumo interno de Microsoft Azure"
$vpnClientPool = "172.17.201.0/24"
$vpnGWName = "LitWareGW2"
$rgName = "VNET2RG"
##################################################################################################
# NO EDITAR DESDE ESTE PUNTO                                                                     #
##################################################################################################
$nombreusuario=[Environment]::UserName
$rootCertName = "$nombreusuario.cer" 
$urlMakeCert = "http://opsgilityweb.blob.core.windows.net/makecert/makecert.exe"
##################################################################################################
write-host -foregroundcolor green "------------------------------------------------------------"
write-host -foregroundcolor green "CREANDO VPN POINT TO SITE"
write-host -foregroundcolor green "DESARROLLADO POR JOSE YAPUR"
write-host -foregroundcolor green "------------------------------------------------------------"
mkdir $directorioTrabajo
write-host -foregroundcolor green "-----creando certificado"
cd $directorioTrabajo
Invoke-WebRequest -Uri $urlMakeCert.Replace("""","") -OutFile "$directorioTrabajo\makecert.exe"
.\makecert.exe -sky exchange -r -n "CN=$nombreusuario""ROOT" -pe -a sha1 -len 2048 -ss My .\$rootCertName
.\makecert.exe -n "CN=$nombreusuario""Client" -pe -sky exchange -m 96 -ss My -in $nombreusuario"Root" -is my -a sha1
certutil -encode $rootCertName $nombreusuario"PublicKeyFile.cer"
 
$valorCert = Get-Content -Path $nombreusuario"PublicKeyFile.cer"
 
$publicCertData = $valorCert[0..($valorCert.count - 2)]
$publicCertData = $publicCertData[1..($publicCertData.count - 1)] | Out-String
 
write-host -foregroundcolor green "-----añadiendo cuenta de azure"
Add-AzureRmAccount
Select-AzureRmSubscription -SubscriptionName $subscriptionName
 
$vpnGW = Get-AzureRmVirtualNetworkGateway -ResourceGroupName $rgName -Name $vpnGWName  
Set-AzureRmVirtualNetworkGatewayVpnClientConfig -VirtualNetworkGateway $vpnGW -VpnClientAddressPool $vpnClientPool 
 
Add-AzureRmVpnClientRootCertificate -VpnClientRootCertificateName $rootCertName -VirtualNetworkGatewayName $vpnGWName -ResourceGroupName $rgName -PublicCertData $publicCertData
 
$downloadUrl = Get-AzureRmVpnClientPackage -ResourceGroupName $rgName -VirtualNetworkGatewayName $vpnGWName -ProcessorArchitecture Amd64  
write-host -foregroundcolor green "-----instalando cliente vpn"
Invoke-WebRequest -Uri $downloadUrl.Replace("""","") -OutFile "$directorioTrabajo\VPNclient.exe"
 
.\VPNclient.exe
write-host -foregroundcolor green "------------------------------------------------------------"
write-host -foregroundcolor green "SCRIPT FINALIZADO, VAYA A REDES Y CONECTESE A LA VPN, CONSULTAS A JOSE.YAPUR@L"
write-host -foregroundcolor green "------------------------------------------------------------"