I'm feeling like an idiot here. I've setup a simple Windows virtual machine in Azure that needs to be accessed via VPN by 12 remote users (who all work from home) to simply access a shared drive. I thought this would be super easy, but I have spent days trying to figure this out.
I have the server setup and I've now realized (after days of searching) that traditional PPTP or L2TP VPN's using RRAS won't work because the Azure framework prevents these protocols. I've also seen from post like this one that say to use Azure Connect and that it should work for our needs. However, the references in that post to Herve Roggero's Blog and even Microsoft's own Azure Support Site talk about features that are not available to me and the screen shots don't look anything like what I see on my Azure console. In fact, the Microsoft sites help documents are 2 to 2.5 years old. Seriously MS... update your docs!
My console looks like this image (sample image from a Google search... not my real interface)
However, the articles reference consoles that look like this image
Am I not on the right version of Azure? Did they update the interface and not update their documentation? Bottom line, how (using the Azure interface that I have) can I use the Azure Connect? I tried creating a Virtual Network, but there is nothing on there that has an option to Install Local Endpoints with Windows Azure Connect. Am I an idiot or am I missing something here?
FYI - there is a blog post on how to setup an SSTP VPN Provider on Azure (without connect):
1. Create new Windows Server VM using "Quick Create"
2. The DNS name, username and password will be used to connect to the VPN
3. The public port created by default for RDP is a random one between 41952-65535. But you can edit the endpoint to change the public port to 3389. Go to Virtual Machines, select the VM, select Endpoints, select RemoteDesktop endpoint, click Edit Endpoint at the bottom and change the public port to 3389.
4. Create TCP endpoint at port 443
5. Connect using Remote Desktop (RDP) through the Dashboard
---------- Server Role
1. Click on Server Manager -> Manage -> "Add Roles and Features"
2. Add "Remote Access", include VPN and Routing (needed for NAT) role services and restart
3. Click on Server Manager -> Notifications -> "Open the Getting Started Wizard"
4. Select "Deploy VPN only"
---------- Server Certificate
1. Open an elevated CMD prompt
2. Use SelfSSL (IIS6 Resource Kit, custom install only this component, http://support.microsoft.com/kb/840671 ) to generate an SSL certificate for the SSTP:
C:\>"c:\Program Files (x86)\IIS Resources\SelfSSL\selfssl.exe" /N:cn=<...>.cloudapp.net /V:3650
(3650 == 10 years, "<...>.cloudapp.net" represents the fully-qualified domain name, FQDN)
3. Confirm prompt with "y", ignore metabase error (if it appears)
4. Run mmc.exe, add snap-in for Certificates -> Computer account
5. Click on Personal -> Certificates
6. Right-click on the <...>.cloudapp.net certificate, then on All Tasks -> Export, include private keys and protect with password
---------- Server RRAS
1. Run Routing and Remote Access (RRAS) tool
2. Right-click on the server and then on "Configure and Enable RRAS"
3. Choose "Custom configuration", select "VPN access" and NAT
4. Right-click on the server and then on Properties -> Security
5. Select the <...>.cloudapp.net certificate
6. Click on the IPv4 tab
7. Enter a "Static address pool" for the number of clients, e.g.: 192.168.1.1 - 192.168.1.20 (otherwise the connection will fail with error 720)
8. Don't enter a range that is too short. The OS keeps a lock on a used IP address for a while, so reconnecting often or from multiple devices may use up the pool and the connection will fail with error 0x8007274C
9. Right-click on IPv4 -> NAT, then on "New Interface", select the external interface (e.g. "Ethernet 2")
10. Click on "Public interface connected to the Internet" and check "Enable NAT on this interface"
---------- Server User
1. Open "Computer Management" console
2. Click on "Local Users and Groups", then on Users, double click on your account
3. Click on Dial-in and change "Network Access Permission" to "Allow access"
---------- Client Certificate
1. Manage Computer Certificates
2. Click on "Place all certificates in the following store", then on Browse
3. Select "Trusted Root Certificate Authorities", if you store the certificate in the personal store, the connection will fail with error 0x800B0109
---------- Client Connection
1. Go to Network and Sharing Center, click on "Setup a new connection or network"
2. Select "Connect to a workplace", then VPN
3. Enter <...>.cloudapp.net, name and create
4. Click on Network tray icon
5. Right-click on new VPN connection, then show properties
6. Click on Security, set VPN type to SSTP and allow only MS-CHAP v2
7. Connect using same credentials used to create the VM and for RDP
8. Test your internet connectivity
9. Use a web site that shows your external IP, it should be an IP from the Azure datacenter
---------- SSL Certificate
To avoid installing a self-certificate to the trusted store (or for devices with a locked trusted store), do the following:
1. Open the IIS Manager on the server
2. Click on the server, then on "Server Certificates"
3. Click on "Create Certificate Request" (Certificate Signing Request, CSR)
4. Enter <...>.cloudapp.net as the "Common name", fill the rest and export as text file
5. Buy an SSL certificate using the CSR (cheap SSL certificates start at around $5/year)
6. Once the SSL authority issues the certificate:
a) Install to the server's and client's "Local Machine" personal store as described above, skipping the step to copy/move it to the trusted store
b) Select the same certificate in the RRAS tool, on the Security tab
I verified that it works.