Windows Security: Build a VPN Server

Ryan Bass

We’ve introduced some fundamental concepts for building a Microsoft Windows Server 2003 VPN server. This week I’ll take you step-by-step through a basic remote access VPN deployment.

The very first thing you need to decide when building a Windows VPN server is whether or not to use Microsoft’s Internet Authentication Service (IAS) to authenticate users connecting to your VPN. IAS is Microsoft’s implementation of RADIUS, and when building a VPN server you can have user’s credentials passed off to IAS for verification or you can have users authenticated directly against Active Directory (AD). Using IAS provides several advantages. First, it has better logging capabilities including the ability to send data directly to an SQL database. And second, it provides a central destination for you to point several VPN servers at. This allows you to maintain one set of remote access policies that all of your VPN servers can use. We won’t go into too much detail on remote access policies in this article, but in a nutshell they can be characterized as a powerful way to define who is allowed access to your VPN. Assuming that IAS is your choice for authentication, let’s jump right into the configuration of an IAS server.

Follow the steps below to install your IAS server. If you are short on hardware it can be installed on the same server you plan to use for VPN access (though this is not recommended for a high security environment).

  1. Start » Control Panel » Add or Remove Programs » Add/Remove Windows Components » Networking Services » Details… » Internet Authentication Service
  2. Start » Administrative Tools » Internet Authentication Service » Right-click “Internet Authentication Service (local) » Register Server in Active Directory
  3. Start » Administrative Tools » Internet Authentication Service » Remote Access Logging » Choose the desired option
  4. Start » Administrative Tools » Internet Authentication Service » right-click RADIUS Clients » New RADIUS Client »enter the appropriate information for your VPN server (you will be asked to enter a shared secret, enter one and save it for later)
  5. If your IAS server has a firewall enabled then make an exception to allow UDP port 1812 from the VPN server

While we have the IAS admin interface open, let’s go through the process of adding a remote access policy to allow access to users who are in a specified AD group (the two default groups will not allow anyone to access your VPN server). Here are the steps:

  1. Start » Administrative Tools » Internet Authentication Service » right-click Remote Access Policies » New Remote Access Policy
  2. Choose a name » Next
  3. Choose VPN » Next
  4. Click Add…
  5. Click Locations… and select your domain
  6. Add MyVPNaccessGroup » Next
  7. Leave MS-CHAPv2 as the only option » Next
  8. Leave “Strongest encryption” as the only option » Next » Finish

Finally we need to update our new remote access policy to protect against rogue computers on the remote user’s network from using the VPN connection to forward packets through the VPN server. Follow these steps:

Our ISA server is now ready to receive authentication requests from a VPN server. Before you can begin configuring a VPN server, take care of these pre-requisites on the VPN server:

  1. Setup two network interface cards (NICs) on your VPN server, connect one to the internal protected network and connect the other to your DMZ or publicly accessible network (we’ll refer to this as the external NIC)
  2. Do not configure DNS or WINS on the external NIC
  3. Do not define default gateways for the internal NIC, only define one default gateway for the external NIC

And now, here are the steps required to configure your new VPN server:

  1. Start » Administrative Tools » Services »Stop the “Windows Firewall/Internet Connection Sharing” service and set the startup mode to Disabled
  2. Start » Administrative Tools » Routing and Remote Access
  3. Right-click the server name and click Configure and Enable Routing and Remote Access (the local firewall service must be disabled)
  4. Choose Remote Access » Next » check the box for VPN » Next
  5. Select the external NIC (notice the check box for “Enable security…”) » Next
  6. Select the internal NIC » Next
  7. Choose “Automatically” or “From a specified range of addresses” (this procedure will follow the 2nd option) » Next
  8. Click New… » enter a range of IPs » OK » Next
  9. Choose “Yes, set up this server to work with a RADIUS server” » Next
  10. Enter your IAS server and shared secret » Next » Finish
  11. Routing and Remote Access » YOURSERVER » IP Routing » DHCP Relay Agent »Add the IP address of a DHCP server to the DHCP Relay Agent configuration (note that the DHCP server is required to return information such as default domains, but shouldn’t be handing out any IP addresses because set a static pool of addresses)
  12. If your internal network only consists of one network then you’re finished! Otherwise, a route will need to be added for clients to get to other internal networks. Routing and Remote Access » YOURSERVER » IP Routing » right-click Static Routes » New Static Route… » enter a route that will get traffic to any subnet on your internal network. The easiest way to do this is to point all traffic for your internal network to the default gateway that the internal NIC is using.

Next you will need to setup a VPN connection from a client. Here are the steps on a Windows XP machine:

Start » Control Panel » Network Connections » Create a new connection » Next » Connect to the network at my workplace » Next » Virtual Private Network connection » Next » Choose a friendly name » Next » you probably want to select “Do not dial the initial connection” » Next » Enter the host name or IP address of your VPN server » Next » choose who to make the connection for » Next » Finish

That’s it! You should now be able to double click on the VPN connection you just created and logon with a user account that is a member of the group you allowed VPN access to in the remote access policy created above.

You may notice that when you connect to the VPN you can’t access the Internet. This is a tricky issue to get around and the solution depends on your network topology. One obstacle is the default IP filters created on the external NIC with Routing and Remote Access is configured. You can configure these from Routing and Remote Access » YOURSERVER » IP Routing » General » right click on your external interface and choose Properties » click on the Inbound Filters… and/or Outbound Filters… buttons. Be careful when changing these filters as they are created as a security measure.

Last time we talked about a split tunnel versus a full tunnel. Here’s how you configure that option: Start » Control Panel » Network Connections » right click your VPN connection » Properties » Networking tab » select Internet Protocol (TCP/IP) » Properties » Advanced… » check or uncheck “Use Default Gateway On Remote Network”. Un-checking this option will create a split tunnel when you initiate the VPN connection, and leaving it check creates a full tunnel.

We also talked about PPTP versus L2TP/IPSec in the previous article. Here’s how you can force the connection to use one of those two options (remember that L2TP/IPSec requires certificates): Start » Control Panel » Network Connections » right click your VPN connection » Properties » Networking tab » change the Type of VPN drop down box.

That’s all folks; here are two final pieces of information that may come in handy if you roll out a Windows VPN server: 1) Where applicable, user account settings on the Dial-up tab of an AD user object override the remote access policy settings created on the IAS server 2) Windows Server 2003 Standard edition only supports up to 1000 concurrent connections.


Latest Articles

Follow Us On Social Media

Explore More