You can Download this article as Word and PDF
In Part 1 of this series, we took a look at how the Network Policy and Access Services in Windows 2012, and particularly Network Access Protection (NAP) can help to protect your network when VPN clients connect to it by validating health requirements that you institute as part of a health enforcement plan. In Part 2, we shared some tips on actually deploying NAP on Windows Server 2012. In Part 3, we’re going to discuss the process of setting up RADIUS servers.
A brief review of RADIUS: What it does
In Windows Server 2012, the Network Policy Service (NPS) can do more than just Network Access Protection (NAP). It can also function as a RADIUS server or a RADIUS proxy, as we mentioned in Part 1 of this series. RADIUS has been around since the early 1990s and is an IETF standard. It was defined in by RFCs 2058 and 2059, which have since been made obsolete by new standards. A good starting point when you’re planning to deploy RADIUS in your organization is RFC 6158, Radius Design Guidelines, published in March 2011.
RADIUS is an open source client/server protocol designed to give network administrators the capability of managing authentication, authorization and account (AAA) from a centralized location. These three functions work together to provide control over remote users and computers by first authenticating their identities to determine whether they are allowed to access the network, then authorizing them to use specific network services or connect to specific network resources and proving an accounting so you can track the use of the services. RADIUS servers verify identity through a database on the RADIUS server, the Active Directory database, an LDAP server, Kerberos, a SQL database or other means. Because RADIUS keeps accounting records, it makes it possible to collect statistical information about usage or even to bill users, departments or organizations according to their usage.
A brief review of RADIUS: How it works
The RADIUS AAA process works as follows:
- Remote user/computer sends a request to the remote access server to access specific network resources contained on a network access server.
- The network access server prompts for credentials (e.g., user name and password).
- User provides credentials.
- The remote access server sends a request to the RADIUS server for authentication and authorization, which includes the credentials (password is encrypted).
- The RADIUS server examines the request and responds by rejecting the request (if no or incorrect credentials are provided), challenge the request by asking for more information (PIN, Smart Card, etc.), or accepting the request by authenticating the user’s/machine’s identity.
- If the request is accepted, the RADIUS server checks the database to determine which resources the user is allowed to use and authorizes the user to use the requested resources if they are on the list.
- Begins tracking when the network access server sends an Accounting Start packet.
- Receives interim update packets from the network server during the active session. Information can include the amount of time and data used.
- Receives an Accounting Stop packet when the session ends.
RADIUS uses UDP packets to communicate, over ports 1645 and 1646. It can use a number of different authentication methods.
To configure RADIUS authentication for your network, you start by opening the NPS management console that’s shown in Figure 1, which you’ll find in the administrative tools menu after you’ve installed the NPS server role (as we showed you in a previous installment in this article series).
You can use either the Standard or Advanced Configuration option to configure RADIUS. The Standard Configuration option will start a configuration wizard, so we’ll look at it first.
You have two choices under the Standard Configuration option:
- You can configure a RADIUS server for dial-up or VPN connections
- You can configure a RADIUS server for 802.1x wireless or wired connection
In our scenario, we’ll configure the RADIUS server for dial-up or VPN connections, since we have already set up a VPN server. Click the Configure VPN or Dial-up link.
On the next page, you’ll be asked to select the type of connection (Dial-up or VPN). In this case, we’ll choose Virtual Private Network (VPN) Connections. NPS will be able to authenticate and authorize the connection requests from VPN clients. On this page, you also need to provide a name to be used as part of the policy name for policies that the wizard will create. This dialog box is shown in Figure 2.
On the next page, you need to add the RADIUS clients. These are the network access servers that will forward connection requests from remote clients to the RADIUS server. Click the ADD button, shown in Figure 3,to add your RADIUS clients and fill in the dialog box fields asking for a friendly name, IP address or DNS, and a shared secret template if you’re using one. You can also manually type a shared secret if you prefer, or you can have a shared secret automatically generated, by clicking the appropriate button.
On the following page of the wizard, you will configure the authentication method(s) to be used by RADIUS. The default selection is Microsoft Encrypted Authentication version 2 (MS-CHAPv2). You can also select MS-CHAP if the operating systems on your network do not support MS-CHAPv2, but this is not recommended as it’s not as secure. The other choice is to use the Extensible Authentication Protocol (EAP). If you choose EAP, you can use a secured password (EAP-MSCHAPv2) or Microsoft Protected EAP (PEAP), or you can use a smart card or certificate. This is the most secure authentication method. Note that you can select multiple protocols, as shown in Figure 4.
The next step is to select user groups, the members of which will be allowed or denied access to the network access servers through the VPN, based on the network policy Access Permission setting. Click the Add button to add user groups. This will invoke a dialog box through which you can select the groups, as shown in Figure 5.
The next page in the wizard allows you to configure IPv4 and IPv6 IP filters to control what types of network traffic can be sent and received through the VPN server. You can configure input and output filters for each IP protocol here, as you can see in Figure 6. We discussed input and output filters in a previous installment of this article series.
The next page of the wizard is where you specify the encryption settings to determine the minimum encryption strength(s) that will be allowed between the access clients and the network access servers.
Your choices include:
- Basic encryption (MPPE 40 bit)
- Strong encryption (MPPE 56 bit)
- Strongest encryption (MPPE 128 bit)
You can select multiple encryption strengths and the server and clients will negotiate the strongest supported by both. All strengths are allowed by default, as shown in Figure 7. You can unchecked the lower strength encryption choices to force connections only when the more secure encryption can be supported. If you uncheck all of the boxes, the traffic from the clients to the network access server will not be encrypted, so this is not recommended.
The next page of the wizard asks you to specify a realm name, which is part of the user name that the ISP uses to identify the connection requests that route to this server. It is not required that you specify a realm name; you can leave this field blank if you don’t know the realm name or don’t care about it. If you do specify a realm name, you should leave the box checked that says Before authentication, remove the realm name form the user name, as shown in Figure 8, so Windows will be able to authenticate the connection request.
This completes the wizard and when you click Finish on the next page, it will automatically create two policies: a network policy and a connection request policy. The names of these policies will use the name that you assigned earlier in the wizard. The RADIUS clients will also be configured. There is a link labeled Configuration Details by which you can see a summary of the configuration settings (it opens in your default web browser) so you can review it and make sure everything is right before you click the Finish button.
After you click Finish, the new policies will show up in the Policies nodes of the NPS management console, under Connect Request Policies and Network Policies, as you can see in Figure 9.
Your RADIUS clients that you configured through the wizard will show up in the RADIUS Clients node.
In Part 3 of this multi-part series on Understanding and Configuring NPAS in Windows Server 2012, we began our discussion of RADIUS and how to configure the NPS to act as a RADIUS server. We covered the steps of the configuration wizard this time, and next time we’ll talk about how to use the Advanced Configuration option, how to configure RADIUS server groups and how to configure a RADIUS proxy.
You can Download this article as Word and PDF
In Part 1 of this series, we took a look at how the Network Policy and Access Services in Windows 2012, and particularly how Network Access Protection (NAP) can help to protect your network when VPN clients connect to it by validating health requirements that you institute as part of a health enforcement plan. In Part 2, we’ll go into some tips on actually deploying NAP on Windows Server 2012. Keep in mind, however, that NPAS and NAP are complex topics and we are covering only some basics here. There is are much more detailed guidelines available in the TechNet Library that address many different network scenarios.
Installing the NPS role service on Windows Server 2012
To deploy NAP on Windows Server 2012, you need to install the Network Policy and Access Services role with the Network Policy Server role service. You can do this in one of two ways: by using Server Manager to install NPS via the graphical user interface, or by using PowerShell to install NPS via the command line.
Before attempting installation, you need to know that if there is a manually configured IPv6toIPv4 address on the computer, NPS may fail to install correctly. You should disable the IPv6 configuration before attempting to install NPS. Here’s how:
- On the Windows Server 2012 Start Screen, type Network.
- In the right Search pane, select Settings.
- Click the View Network Connections option in the list.
- Right click the network connection for your local network and select Properties.
- On the Networking tab, uncheck the check box for Internet Protocol Version 6 (TCP/IPv6).
- Click OK.
Installing the NPS role service using Server Manager
To install the NPS role service in Windows Server 2012 via the graphical interface, first open Server Manager from the desktop taskbar or the Server Manager tile on the Start Screen, and perform the following steps:
- In Server Manager, click Manage and click Add Roles and Features.
- On the Before you begin page, click Next.
- On the Select Installation Type page, click Role/Feature Based Install and then click Next.
- On the Select destination server page, click Select a server from the server pool, click the names of the servers where you want to install NPS and then click Next.
- On the Select Server Roles page, click Network Policy and Access Services, and then click Next three times.
- On the Select role services page, click Network Policy Server, and in the Add Roles and Features Wizard dialog box, verify that Include management tools (if applicable) is selected.
- Click Add Features, and then click Next.
- On the Confirm installation selections page, click Install.
- On the Installation Results page, verify that the installation was successful, and then click Close.
Installing the NPS role service using PowerShell
To install the NPS role service in Windows Server 2012 using PowerShell, you first need to right-click the PowerShell icon on the taskbar and select to Run as administrator in order to open a PowerShell session with administrative privileges. Then perform the following steps:
Load the Server Manager module by typing: Import-Module Servermanager
Next, install the NPS role service by typing: Install-WindowsFeature –name napas-policy-server –includemanagementtools
Note: This will also install the DHCP server role
When the role service has been successfully installed, PowerShell will report Success = True and the Feature Result will show Network Policy and Access Services, as shown in Figure 1.
Figure 1: The NPS role has been successfully installed
Configuring the NAP server
You can configure the NAP server with three different types of policies:
Connection Request Policies that use connections and settings to authenticate client requests to access the network. These policies also control where the authentication will be performed. You must have a connection request policy for each NAP enforcement method.
Network Policies that use conditions, settings and constraints to determine the level of access that will be authorized for a client that attempts to connect to the network. You need at least two network policies to deploy NAP: one for client computers that are found to be compliant with your health policies and one for those clients that are out of compliance.
Health Policies that specify which System Health Validators (SHVs) are to be evaluated and how they’re to be used to evaluate health status. You have to enable at least one SHV for each health policy.
When creating network policies, you need to keep in mind that a client request can match one connection policy and one network policy. It cannot match multiple policies of a type, so when a match is made, none of the other policies will be applied. That means the order of processing policies is important. The source of the request is also used in determining the order for evaluation.
If there are policies that specify a source, requests sent from a matching source are only evaluated against these policies. If none of the policies specify a source that matches, clients try to match policies with the Unspecified source. If there are multiple policies with the same source that matches the client source, the policy that’s highest in the processing order is used (and if it fails, the NPS goes down the list of policies in the processing order until it finds a policy that matches).
To configure NSP with a network policy, use the New Network Policy wizard on the NPS server. On the NPS server, open the Network Policy Server administrative tool from the Administrative Tools menu. In the left pane, expand the Policies node and click Network Policies. Right click and select New to start the New Network Policy Wizard, as shown in Figure 2.
Figure 2: Creating a new network policy
You can create a new connection request policy or a new health policy by right clicking the Connection Request Policy or Health Policies node and selecting New.
Configuring the VPN servers with NPS
The steps involved in configuring VPN servers with NPS are as follows:
Install and configure your VPN servers as discussed in the first part of this chapter.
Decide what authentication method is to be used.
Install the NPS role on the NPS server.
Autoenroll a server certificate to the NPS server(s) or purchase a server certificate (for PEAP-MS-CHAP v2 authentication).
For EAP-TLS or PEAP-TLS without smart cards, autoenroll user and/or computer certificates to domain users and client computers that are domain members.
Configure your VPN servers as RADIUS clients in NPS.
Create an Active Directory user group for users who will be allowed to connect via the VPN servers.
Configure network policies for VPN services in NPS.
To create the connection request and network policies that you need in order to deploy VPN servers as RADIUS clients to the NPS server, you can use the New Dial-up or Virtual Private Network Connections wizard. Open the NPS console from the Administrative Tools menu on the server where you have installed the Network Policy Server role service. Click the NPS (Local) top level node in the left pane and follow these steps:
Under Standard Configuration, in the drop-down box, select RADIUS server for Dial-up or VPN Connections, as shown in Figure 3.
Figure 3: Creating the policies required to deploy VPN servers as RADIUS clients to the NPS
Click Configure VPN or Dial-Up.
In the wizard, select Virtual Private Network (VPN) Connections under the Type of connections section, as shown in Figure 4.
Figure 4:Selecting the connections type (VPN)
Provide text to be part of the name for each of the policies the wizard creates or accept the default, and click Next.
On the Specify Dial-Up or VPN Server page, the local computer will be automatically added as a RADIUS client to the NPS server if it is running RRAS as a VPN server. You can add remote VPN servers by clicking the Add button.
On the Configure Authentication Methods page, select the protocol(s) you want to use for authentication, as shown in Figure 5.
Figure 5: Configuring the authentication method(s)
On the Specify User Groups page, you can select the groups to which the policy will apply by clicking the Add button. If you don’t select any groups, the policy will apply to all users.
On the Specify IP Filters page, you can configure IPv4 and IPv6 input and output filters for the RRAS VPN server.
On the Specify Encryption Settings page, you can select the encryption strength to be used for MPPE (40-bit, 56-bit and/or 128-bit). By default, all three are selected, as shown in Figure 6.
Figure 6:Specifying encryption settings
On the Specify Realm Name page, you can specify a realm name to replace the domain name in user credentials. This is the name that your ISP uses to forward requests. This is an optional field.
On the Completing New Dial-Up or Virtual Private Network Connections and RADIUS clients page (the last page of the wizard), you can click Configuration Details to review your configuration choices. This will open the configuration details in your default web browser, as shown in Figure 7.
Figure 7: Viewing configuration details in the browser
Click Finish in the wizard to create the policies. They will now show up in the Connection Request Policies and Network Policies nodes in the Network Policy Server console.
Configuring the HRA
You can configure the authentication requirements, certification authorities and request policy for the HRA.
Authentication requirements: You can either restrict the issuance of health certificates to authenticated domain users or you can allow anonymous users to obtain health certificates. If you allow both, two separate web sites will be created, one for requests by domain users and one for requests by anonymous users. You can enable SSL so that clients communicating with the web sites must use a secure (https://) URL. The IIS server will need an SSL certificate in the local computer certificate store or the current user certificate store, to be used for server authentication.
Certification Authority: You must configure the HRA with at least one NAP CA. You can add or delete CAs and change their order from the HRA console’s Certification Authority node. You can use either a standalone CA or an enterprise CA.
Request Policy: The request policy settings define how the HRA communicates with clients, specifically the cryptographic policy elements that include asymmetric key algorithms, hash key algorithms, cryptographic service providers and transport policy. You can use the default request policy setting that negotiate a mutually acceptable encryption mechanism, and this is usually the best practice unless you are certain your modified settings will work properly.
Configuring Client Computers
Microsoft recommends, as part of its best practices, that client computers be configured automatically. NAP-capable client computers (those Windows XP SP3 and above systems on which the NAP Agent software is installed and running) can be configured automatically by importing NAP configuration files into Group Policy. You can configure NAP client settings in one of three ways:
NAP Client Configuration Console gives you a graphical UI for configuring the NAP client settings.
Netsh gives you a way to configure NAP client settings from the command line.
Group Policy Management Console allows you to configure NAP client settings in Group Policy on clients that are domain members.
You can save NAP client settings in a configuration file that you can then apply to other computers. You need to be a member of the local Administrators group on the computer to import a configuration file. To import a configuration file, type NAPCLCFG.MSC at the command line or in the Run box to open the NAP Client Configuration console. Right click the top level node, NAP Client Configuration (Local Computer) in the left pane, and select Import. Navigate to the location where the file is stored, type the file name for the configuration file and select Open.
Alternatively, you cantype netsh nap client import filename = <file name>
You must enable at least one NAP enforcement client on the client computers. The six NAP enforcement client types are:
Remote Desktop Gateway
Wireless EAP over LAN
Your VPN clients need to be enabled as Remote Access clients so health policies will be enforced when they attempt to access the network through the NAP-enabled VPN server. The NAP enforcement clients are enabled and disabled through the NAP Client Configuration console or the netsh command. You need to be a local Administrator to enable or disable enforcement clients. To enable the Remote Access enforcement client through the console, click the Enforcement Clients node in the left pane. In the middle pane, right click Remote Access Quarantine Enforcement Client and click Enable.
To enable the Remote Access enforcement client at the command line, type:
netsh nap client set enforcement ID = 79618 ADMIN – “ENABLE”
In Parts 1 and 2 of this series on understanding and configuring Network Policy and Access Services in Windows Server 2012, we have looked at the deployment of NAP. In Part 3, we’ll move on to the process of setting up RADIUS servers.