Windows Security: Build a VPN Server
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).
- Choose the desired option
- enter the appropriate information for your VPN server (you will be asked to enter a shared secret, enter one and save it for later)
- 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:
- Choose a name » Next
- Choose VPN » Next
- Click Add...
- Click Locations... and select your domain
- Add MyVPNaccessGroup » Next
- Leave MS-CHAPv2 as the only option » Next
- 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:
- 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)
- Do not configure DNS or WINS on the external NIC
- 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:
- Stop the "Windows Firewall/Internet Connection Sharing" service and set the startup mode to Disabled
- Right-click the server name and click Configure and Enable Routing and Remote Access (the local firewall service must be disabled)
- Choose Remote Access » Next » check the box for VPN » Next
- Select the external NIC (notice the check box for "Enable security...") » Next
- Select the internal NIC » Next
- Choose "Automatically" or "From a specified range of addresses" (this procedure will follow the 2nd option) » Next
- Click New... » enter a range of IPs » OK » Next
- Choose "Yes, set up this server to work with a RADIUS server" » Next
- Enter your IAS server and shared secret » Next » Finish
- 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)
- 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. 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:
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 frombuttons. 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: . 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):.
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.