Executive Summary:
Microsoft Windows Server 2008 uses Network Access Protection (NAP) technology to ensure network security by enforcing compliance policies before client computers can access network resources. If a client computer doesn’t meet security requirements, NAP places the computer in quarantine or denies the computer network access.
|
In considering LAN security, we mostly think
about preventing an attacker from accessing
network resources. The reason for this focus is
simple: Most attacks are initiated from the Internet
and are directed at breaking into private networks.
However, an equally large security issue that
administrators must address is preventing regular
(i.e., authenticated and authorized) network users
from using computers with weak security configurations
to access network resources. For example,
a traveling employee might have a laptop that
only occasionally uses the VPN to connect to the
corporate LAN—but this laptop still needs all the
current security fixes, antispyware, and antivirus
definitions installed. Otherwise, such a computer
is a likely source to spread viruses or worms on
the network. If a computer doesn’t have a firewall
enabled and becomes infected with Trojan-like
software, the computer can provide unauthorized
persons with easy access to local network
resources. Employees’ home computers that use
the VPN to access the corporate LAN and that
aren’t managed properly provide a similar risk.
Finally, letting visitors connect their computers to
your local network, even just to provide them with
Internet access, can put other hosts on the network
at risk for infection with viruses or other kinds of
malicious code.
The question is: How do you check a computer’s
security configuration before you allow it to access
network resources? In addition, how do you determine
whether to grant full or limited access? Network
administrators need a mechanism to ensure
that any computer connecting to the corporate network
meets the organization’s health policy requirements
and has all the necessary software, patches,
and hotfixes installed.
Network Access Protection
Windows Server 2003 SP1 includes a technology
called Network Access Quarantine (NAQ) that helps
administrators limit or deny connections to computers
that don’t comply with a company’s security policies.
However, NAQ has many disadvantages. First, it’s
limited to VPN-based connections only, which means
you can’t protect your network from unsecured wireless
users, or even from users who have a physical connection
to the network (e.g., via employees’ personal
laptops). Second, NAQ is based on manually created
scripts (implemented via Connection Manager) that
must be run on the client side before VPN access is
granted. These scripts check such things as the firewall
state, antivirus state, presence of a password-protected
screen saver, and status of Internet Connection
Sharing. Besides the fact that writing the scripts can
be difficult and time consuming, the various types of
protection software on the client side can also cause
problems. For example, if VPN clients have various
antivirus programs, you must write a specific script
for each program and use a different Connection
Manager package for each. In the end, this solution
is static. After the client passes all the checks and the
main script reports the state of the client’s health to the
server, the user can safely disable the firewall, antivirus
software, and all other security features. These actions
won’t be detected, and the level of access to resources
will remain unchanged.
Windows Server 2008 solves most of NAQ’s disadvantages
with Network Access Protection (NAP)
technology. Using NAP, an administrator can enforce
specific compliance policies that must be met before a
client computer can access network resources. If a client
computer doesn’t meet the defined health requirements,
it’s either placed in quarantine (with access limited to specific hosts) or simply not allowed access.
In addition, NAP can automatically remediate
unhealthy clients, updating systems when possible
to make them comply with corporate policy. The
administrator configures NAP’s method of enforcement,
depending on the type of client connection.
NAP enforces health requirements for the following
types of connections:
- IPsec-protected communications
- IEEE 802.1x-authenticated connections
- VPN connections
- DHCP-managed connections
- Terminal Services Gateway connections
In this article, I focus on NAP implementation for
DHCP-managed connections. Using NAP with DHCP
lets you protect your network from all potentially unsecured
clients that are managed via DHCP (i.e., clients
that receive IP addresses from DHCP), including resident
desktop computers that are NAP capable.
NAP-capable OSs include Windows Vista (by
default) and Windows XP SP2 with NAP client software
(currently in Beta 3). XP SP3 will include the NAP
client by default. No older OSs are supported, because
NAP relies on information from Windows Security
Center (WSC), which exists only in Vista and XP SP2.
A benefit of NAP is that it’s not limited to Microsoft
technologies. Any system that can provide the NAP
server with its health state can also use NAP. Microsoft
is working with many hardware and software
vendors and other partner companies to help them
create NAP-compatible devices and software. To use
NAP for DHCP-managed connections, you must
prepare the environment, configure health policies,
create network policies for NAP, configure DHCP for
NAP, and enforce NAP on the client side.
Prepare the Environment
First, you must have an existing Active Directory (AD)
infrastructure available, with one or more Windows
2003-based (or Server 2008-based) DCs. DHCP must
be installed on a Server 2008 machine, because previous
versions of the DHCP service (such as the version
on Windows 2003) aren’t aware of NAP. You need at
least one static IP address for this host.
Install Server 2008 as a member server in your
domain. After installation, you must add the Server
2008 roles called Network
Policy Server and
DHCP Server. You can easily
accomplish this task
through the Server Manager
console, which is available
on the Welcome page or
under Administrative Tools.
Open Server Manager, go to
Roles Summary, and click
Add Roles. Server 2008’s
Network Policy Server role
replaces Windows 2003’s
Internet Authentication Service
(IAS). Thus, Network
Policy Server (NPS) lets you
create various types of policies,
not just those related to
NAP.
Configure
Health Policies
To configure your health
policies, go to Administrative
Tools and click the Network
Policy Server role you
added. In the NPS console
that opens, you must configure
the System Health
Validator and Health Policy
options to create an appropriate
network policy. The
System Health Validator
component defines your
security requirements for
clients that are accessing
the network, whereas
Health Policy defines different
configurations for NAPcapable
clients.
Double-click the Network Access Protection node
on the left side of the console, and click System Health
Validator. The Windows Security Health Validator
item will appear on the right side of the console. Double-
click this item to open the configuration window
that Figure 1 shows. In this window, click Configure
to see options for security requirements. As Figure 2 shows, you can simply select the appropriate
check boxes to indicate what you require from
clients. In Vista, you can require the firewall to
be enabled, antivirus and antispyware applications
to be present and current, the automatic
update feature to be enabled, and current
hotfixes to be installed. Similar requirements
are available in XP SP2, other than the antispyware
option, which isn’t part of XP. For testing
purposes, let’s select only the firewall check
box for both Vista and XP. Click OK twice to
finish configuring the System Health Validator
option.
To configure the Health Policy option, double-
click the Policies node in the NPS console,
right-click Health Policies, and select New.
In the window that Figure 3 shows, enter the
policy name and select what the System Health
Validator (SHV) component will check.
First, let’s create a policy for compliant
clients. Enter compliant for the policy name,
and select Client passes all SHV checks from the
drop-down menu. Selecting this option means
that, for a client to be considered healthy, it
must pass all the requirements you configured
in SHV (which in the example was only the firewall
requirement). Next, select the
Windows Security Health Validator
check box and click OK. Your first
policy is now configured.
Next, let’s create a policy for noncompliant
computers. Follow the
same steps to create a new health
policy, perhaps called noncompliant.
In the drop-down menu, select Client
fails one or more SHV checks, which
means that if a client fails to correctly
report one or more required components
from SHV,
it will be considered
unhealthy.
Finally, select
the Windows
Security Health
Validator check
box and click
OK.
Create
Network
Policies
for NAP
After you configure
the SHV
and Health Policy options, you can configure
network policies. In the NPS console’s Policies
node, click Network Policies and disable the
default policies. By default, the two default policies
are Connections
to
Microsoft Routing
and Remote
Access Server
and Connections
to other
access servers.
Right-click each
policy and select
Disable from
the drop-down
menu. Then,
right-click the
Network Policies
folder and
select New. A
wizard for creating
a new policy
will start. Enter
a policy name
(e.g., “noncompliant-
restricted” for a policy for unhealthy
clients). Then, select from the drop-down list
the type of network access server that will apply
the policy to clients. The default is Unspecified;
for our purposes, select DHCP Server.
Click Next to proceed to the Conditions
page, and click Add to select conditions for the
policy. From the list of available conditions that
displays, select Health Policies from the Network
Access Protection group. In the window
that opens, select the “noncompliant” health
policy that you created earlier.
Follow the same procedure to add the NAPCapable
condition, which Figure 4 shows, to
the policy. This condition limits application
of the policy only to computers that are NAP
capable.
Click Next to launch the Specify Access
Permission window. In this window, you must
specify what to do with clients that meet the
policy. Although denying access to unhealthy
clients might seem logical, you don’t want
to completely deny access to those clients.
Instead, you should provide them with limited
access only to hosts that can help them improve
their security state (i.e., remediation servers).
Select Access Granted and click Next.
In the Configure Authentication Methods
window, select the Perform machine health
check only option, and clear the other check
boxes, as Figure 5 shows. Because you’re configuring
a policy for checking clients’ security
health state via DHCP and because DHCP clients don’t authenticate to the DHCP server,
you don’t need to configure authentication
methods. Just click Next in the Configure Constraints
window—none of the options apply to
our example.
In the Configure Settings window, select
NAP Enforcement in the Network Access Protection
section, as Figure 6 shows. For this policy,
you should select the Allow limited access
NAP enforcement method. This setting will put
clients in quarantine and give them access only
to remediation servers. You can also configure
those servers from this window: Simply click
Configure to create a
Remediation Server
Group, and enter
IP addresses for the
hosts. Also select the
Enable auto-remediation
of client computers
check box.
Enabling both these
settings causes the
NAP Enforcement
client component
to automatically
attempt to update
the computer security
state (e.g., if you
turn the firewall off,
it will be turned on
automatically).
After you create a
policy for incompliant clients, you must create
a policy for compliant clients. Follow the same
steps to create another new network policy,
this time naming the policy “compliant full.”
On the Conditions page, select the “compliant”
health policy. Then, select the Allow full
network access check box on the NAP Enforcement
Settings tab. All other settings are the
same as for the incompliant client policy.
Finally, you can configure a policy for NAP
non-capable clients, to provide them with or
deny them network access. This policy should
grant or deny access to clients that aren’t
NAP capable, by implementing only the NAPCapable
condition, with the Only computers
that are not NAP-capable option selected.
(Note that this policy isn’t necessary in a test
environment.)
Figure 7 shows the NPS console after you’ve
created the necessary policies. Next, you need
to configure DHCP.
Configure DHCP for NAP
You need to configure DHCP, so that DHCP
can use NPS and the policies you created. First,
you must create a scope on the DHCP server.
Our intention is to configure the DHCP server
to distribute a different group of scope options
to compliant and incompliant NAP clients.
After you create a scope, right-click it in the
DHCP console. Select Properties, and go to the
Network Access Protection tab. Then, select
the Enable for this scope check box, as Figure 8 shows, and use the default NAP profile.
Another thing you can configure from the
Network Access Protection tab in IPv4’s properties
is DHCP behavior, in case DHCP can’t
contact the network policy server. The default
setting is to give clients full access, but you can
also select the Restricted Access or Drop Client
Packet options. In addition, you can enable
and disable NAP on the server level.
Finally, you must configure additional
options for NAP-capable clients. Right-click
Scope Options, and select Configure Options. In the Configure Scope Options
dialog box, select the Advanced tab.
Select Default Network Access Protection
Class as a User class, and
define specific DHCP options for this
class of clients (e.g., different DNS domain name, different gateway).
Enforce NAP on the
Client Side
The last step is to configure the client
to work with NAP. In fact, you
must enforce the use of NAP on
clients. You can accomplish this
task through the NAP Client console,
Group Policy, or Netsh (which has
the new context for NAP configuration).
Because you can’t configure
domain or OU Group Policy Objects
(GPOs) to include NAP settings from Windows
2003, using Group Policy requires you to
edit GPOs from Vista or Server 2008’s Group
Policy Management Console (GPMC). Use the
Administrative Tools’ Services console to start
the Network Access Protection Agent service,
changing this service’s startup type to Automatic
(which you can also use Group Policy to
accomplish).
On Vista, start the Microsoft Management
Console (MMC) and add the NAP Client Configuration
snap-in. Alternatively, select Run
from the Start menu, and enter
napclcfg.msc
Select the Enforcement Clients node in the
left task pane, double-click DHCP Quarantine
Enforcement client on the right side, select
Enable this enforcement client, and click OK.
From now on, the client should be able to
use NAP.
To use Netsh to configure NAP on a client,
go to the command line and enter
Netsh nap client set enforcement ID = 79617
If you want to use XP SP2, you must install the
NAP client software for XP Beta 3, which makes
the OS NAP capable.
Run a NAP Test
To test NAP on a client, configure a Vista client
and join it to your domain. Obtain an IP
address from the DHCP server, with the firewall
in the default active state. Ensure that you
have a regular IP address, from the scope that
you created in earlier steps, with regular scope
options. To verify that you have all the necessary
DHCP information (e.g., DNS servers,
gateway, WINS servers), go to the command
line and enter
ipconfig /all
Figure 9 shows the output.
Next, manually disable the Vista firewall.
In a few seconds, the DHCP enforcement
client will perform autoremediation to correct
the client’s system state, thus reenabling
the firewall. To demonstrate a quarantined
client, go to Server
2008’s NAP console
and configure Windows
Security Health
Validator to require an
antivirus application
to be installed and
updated. If you don’t
have an antivirus
solution on the Vista
client, run ipconfig
/release followed by
ipconfig /renew to
quarantine your client
and receive a taskbar
quarantine notification
message. Run
ipconfig /all again, and note that your computer
is configured with
the options you specified
in DHCP’s Network
Access Protection class.
As Figure 10 shows, all
you have is an IP address
and subnet mask—no
Internet access, and no
access to other hosts on
the network.
An Effective
Solution
Maintaining computers’
health is one of the most
time-consuming challenges
that any network
administrator faces. This
complex task is made even more difficult if
you must maintain system health for users
who connect from home systems, partner
computers and laptops that aren’t under control
of administrators, or computers that aren’t
managed through a corporate patching system
(e.g., Windows Server Update Services—WSUS,
Microsoft Systems Management Server—SMS).
NAP is an effective solution for controlling network
computers’ security health.