
Branch Office Deployment Overview
ISA Server is typically deployed on the branch office server to accomplish one or more of three primary goals:
-
General Internet access for the branch users (may be chained to the Central Office)
-
Web caching and HTTP traffic optimization
-
Firewall services
When ISA Server also performs as a firewall, special consideration must be given to the network definition applied to the traffic which flows across the WAN. In particular, several domain protocols cannot successfully traverse NAT relationships. As mentioned in Domain Controller Traffic Profile, RPC and DCOM are problematic protocols for firewalls and ISA Server is no exception. In fact, ref (i) was written to help illustrate the problems inherent with DCOM across ISA boundaries.
If the group designing the Branch Office server deployment lacks a full understanding of the traffic profile for the domain and LOB applications, the difficult in determining the this profile frequently results in the team defining an “allow all” rule to and across the Branch office server. Needless to say, this violates the most basic of ISA Server traffic policy best practices; creating the smallest possible attack surface.
If ISA Server Enterprise Edition is deployed on the branch office server, consideration must also be given to the inclusion, context and deployment of ISA Server Configuration Storage Services on that machine. Actual deployment of CSS on a domain controller is addressed in ref (i).
Branch Office Scenarios
Branch office servers are typically deployed with the end-goal of extending Central Office domain and application services across slow WAN links while simultaneously minimizing the traffic that must cross that link. Branch Office deployments tend to sift down to two basic scenarios; single-homed and multi-homed servers. In either case, the Branch Office may connect to the Internet directly or across the WAN.
Single-homed Server
Single-homed servers will either have a direct connection to the Central Office via dedicated line or an external VPN termination, but the Branch Office server does not perform traffic routing between the Branch and Central Office. ISA policies in support of domain traffic are comparatively simple in this scenario, since they need only be concerned with traffic between the ISA and the remote DC/GC and between the Branch Office hosts and ISA.
Figure 1
Multi-homed Server
Multi-homed servers may be either direct- or VPN-connected, but in either case they will act as a router between the Branch and Central Office networks. One point that bears careful consideration; when a multi-homed Branch Office server connects to the Central Office through a VPN tunnel, this creates some complicated traffic flow definition problems that must be considered carefully when defining the ISA polices. Luckily, ISA Server 2006 Enterprise Edition provides the Branch Office Connection Wizard to help you manage that process.
Figure 2
Direct Route (Leased Line)
Because of the way ISA handles traffic across the External network, we can’t use the edge templates in this scenario. Instead, what we must do is configure ISA using the 3-Leg Perimeter network template and assign the Internal network to the Branch Office and the Perimeter Network to the Central Office. Doing so has the effect of “turning ISA 90 degrees” in the network context so that the External network is left unused. Because the default network rules created by the network template wizard define a NAT relationship between the Internal and Perimeter networks, we must change the network rules so that they define a route relationship between the Internal and Perimeter networks.
Site-to-Site VPN
The best way to build this scenario is to use the Branch Office wizard found at %ProgramFiles%\Microsoft ISA Server\AppCfgWzd.exe using the template created from the Central Office Site-to-Site VPN terminating ISA. You should note that before you run the wizard at the Branch office ISA, you must perform a complete backup (export) of the existing ISA configuration. The Branch Office wizard makes changes to system policies that cannot be reverted in the management UI. Should the wizard fail after making these changes, the only way to revert those changes is by performing a complete policy restore (replace). If you haven’t made a complete backup, and the wizard fails to complete its policy changes, you will have to remove and reinstall ISA Server on the machine.
Configuration Storage Servers
While it may be tempting to deploy CSS to each branch in an effort to minimize storage traffic between the Branch Office and the Central Office, you should avoid this unless absolutely necessary (separate Enterprise in each BO, for example). Once the Enterprise policies are in place and you don’t incur frequent changes to the Enterprise or array policies, the amount of traffic between ISA and the CSS is negligible. By default, ISA polls CSS for changes every 15 seconds. Once your policy changes have settled in, you can configure the Branch Office array such that it only polls CSS for changes much less often. Note that any time changes are made each affected ISA server is notified by the management console to refresh the settings from storage.
Should you decide to deploy CSS in the Branch Office, you *must* ensure that you adjust the system policies that control communication between all related ISA Enterprise servers are correctly configured to allow replication and CSS management access. Those system policies are defined in table 1.
Table 1
The simplest way to manage these policies is to ensure that all CSS servers in the Enterprise are included in the following Enterprise elements:
-
Enterprise Remote Management Computers – this set must contain all hosts which are used to manage the Enterprise.
-
Enterprise Configuration Storage Servers – this domain name set must be populated with the fully-qualified name of each CSS deployed in the ISA Enterprise
-
Replicate Configuration Storage Servers – this address set must include the IP addresses of each CSS deployed in the ISA Enterprise
You will have to manage these lists yourself; ISA installation and the management MMC may not automatically update these sets as servers and arrays are added and deleted.
Hardening the Server
There are plenty of server administrators who still subscribe to the “kill unneeded services” methodology of server hardening. Let’s make it abundantly clear right now that the only supported method for hardening an ISA server on Windows 2003 is through the use of the Windows Security Configuration wizard in conjunction with the proper ISA Server template. If you have to deploy ISA 2004 on Windows 2000 (not a great combination, comparatively), then you must follow reference (n). Manually changing service configurations other than as described in these references is not supported at all. Properly-configured ISA Server policies provide the appropriate protection from network-based attacks, and so long as you don’t use the ISA Server as a workstation, you can minimize the application-based threats. References (n) and (o) cover the details of ISA hardening.
Branch Office as a Child Domain
While it might be tempting to define each branch office as a child domain of the Central Office domain for any number of reasons, this methodology is unsupported. Since the typical Branch Office deployment provides a single domain controller, creating child domains for each Branch Office would create service startup failures for the Branch Office server applications; especially ISA services. Thus, if the server were to be rebooted unexpectedly, it might be rendered unavailable until someone accessed it locally from the console. If the server is unattended when this occurs, it could be a weekend (or longer, depending on how remote this office may be) before this server could be brought back online. Instead, you should create an OU in the Central Office domain for each branch office and manage your Active Directory policies that way.
Domain Controller Traffic Profile
Domain controllers use a well-defined set of protocols to perform various tasks and functions. These include well-known items such as ICMP (ping), LDAP and DNS as well as less well-known protocols such as NetBIOS Session and NetBIOS Datagram. To help illustrate this process, ref (c) provides an excellent description of the most common domain controller activities; machine startup and user logon, effectively illustrating the use of several protocols involved in these two processes. Ref (d) provides a complete listing of all protocols used by various Windows servers and services. Between them, they form the basis of the core knowledge required to understand how to construct secure, reliable ISA policies for domain controller communications.
Unfortunately for the firewall administrator, domain communications and some MMC mechanisms rely on protocols such as RPC and DCOM that challenge the goal of creating secure firewall policies. This, coupled with the NAT relationship created by most firewalls, prompted the publication of refs (e), (f), (g), (h) and (k).
Our primary reference for this part of the discussion is ref (d). If you eliminate the application-specific protocols, such as SMTP, POP3 and others, it’s clear that the domain traffic profile consists of a pretty well-defined set of protocols. It’s when we include ISA and network service protocols and the various LOB applications that this set grows considerably.
Table 2
Notes:
-
Dyn = 1025-65535 on WS03 and earlier; 49152-65536 on Vista and later
-
Nego = connection port is negotiated between client/server pair
-
Only required if the server is configured for LDAP-SSL
-
RFC specifies that NTP clients should use source UDP:123, but Windows time uses dynamic ports
-
Secondary connection transport / protocols are negotiated in the control channel according to client application Winsock usage
-
Firewall Web Management is used by OEM to provide non-MMC management of ISA Server
-
Remote management of ISA Server using the ISA Management MMC involves the use of RPC mechanisms to monitor ISA service status
-
ISA Server installation creates an SMB connection to the CSS to validate the credentials chosen by the user
ISA System Policies for Domain Traffic
In order to preserve the domain controller functionality for the server where ISA operates, the domain services need to have access to the network during ISA services startup. Since it’s the responsibility of the ISA Server System Policies to handle traffic when the firewall service is unavailable (as during startup), we need to define the proper traffic profile using the system policies. By default, the following default policy groups and rules related to domain controller traffic exist with their settings as indicated in table 3:
Table 3
There are quite a few more system policies, and some of them even duplicate some of these rules because of their association with specific functionality, but these are what we’ll use to allow server communication with remote domain controllers. One disadvantage with the System policy management UI is that it restricts the changes you can make to these rules. In the case of the policies defined above, you can only change the destination (“To”) portion of the rule; you cannot change the source (“From”). As such, we’ll have to define array-level policies that mimic these system policies so as to allow domain-related traffic to flow in the proper directions. Depending on the complexity of the branch office scenario where you deploy the ISA/DC server, you may have to adjust the rule elements used in the following examples. For instance, if you have another Branch Office connected to the Central Office through an upstream Branch Office, you’ll have to consider that in your policy rule “From” configuration. There are four basic traffic flow contexts that we have to accommodate for each deployment scenario (single- or multi-homed):
-
CSS traffic between the Branch Office ISA/DC/CSS and the Central Office CSS
-
Domain traffic between the ISA/DC and the Central Office DC/GC
-
Domain traffic between the Branch Office hosts and the ISA/DC
-
Domain traffic between the Branch Office hosts and the Central Office DC/GC