Network objects are used to categorize IP addresses into different types of network entities, which are used to specify network traffic sources and destinations in the access rules, publishing rules, cache rules, traffic chaining rules, and HTTP compression settings that make up your firewall policy.
Note that network rules determine whether there is a relationship between two network entities, and define the type of relationship. Network relationships can be configured for a network address translation (NAT) or route relationship.
The following network objects are created in the Toolbox:
-
Networks. A network entity typically corresponds to a physical network. A network always has a network adapter associated with it, and represents one or more IP address range or ranges that can be reached from the associated network adapter.
-
Network Sets. A network set includes one or more networks.
-
Computers. A computer object represents a single IP address.
-
Address Ranges. An address range is a collection of contiguous IP addresses to which you want to apply rules.
-
Subnets. A subnet represents a group of computers located on the same subnet.
-
Computer Sets. A computer set is a collection of computers, IP address ranges, or subnets.
-
URL Sets. A URL set defines one or more URLs.
-
Domain Name Sets. A domain name set defines one or more domains.
-
Web Listeners. Web listener objects are used to enable an ISA Server network to listen for Web requests on a specific IP address and port. Web listeners can also be enabled to require client authentication for Web requests.
-
Server Farms. The server farms object allow you to publish a farm of Web servers, rather than a single Web server. For more information, see "Web Publishing Concepts in ISA Server 2006" at the Microsoft TechNet Web site.
For details about configuring network objects and network rules, see "Network Concepts in ISA Server 2006" at the Microsoft TechNet Web site.
Enterprise-Level Network Objects
In ISA Server 2006 Enterprise Edition, an enterprise-level network is a network defined for the enterprise, rather than for a specific array. Such a network can be used when defining enterprise-level access rules, or included in the definition of an array-level network. The following network objects can also be created at the enterprise level:
-
Enterprise Networks
-
Network Sets
-
Computers
-
Address Ranges
-
Subnets
-
Computer Sets
-
URL Sets
-
Domain Name Sets
Networks
Networks describe a range of IP addresses. Networks, however, are different from other network objects, in that they also describe physical boundaries. Within these physical boundaries that the network describes, traffic can flow freely. ISA Server policy is not applied within an ISA Server network. A network must always have a network adapter associated with it, and networks cannot have overlapping IP addresses.
When you install ISA Server, the networks described in the following table are created.
|
Content Type
|
Description
|
|---|
|
External
|
Built-in network object representing the Internet. The External network does not have any IP addresses associated with it. External network properties include Network Load Balancing (NLB), defined on the External network NLB tab.
|
|
Internal
|
This network object represents your Internal network. The IP addresses associated with this network are defined during ISA Server setup. The IP addresses associated with this network may be modified. Additionally, the Internal network includes the following properties: Web Proxy, Firewall Client, Web Browser, Auto Discovery, Domains, CARP, and NLB.
Enterprise Edition: There is not Internal network created at the enterprise level.
|
|
Local Host
|
Built-in network object representing the ISA Server computer.
Enterprise Ee
|
|
Quarantined VPN Clients
|
Built-in dynamic network representing client computers connecting to ISA Server using a VPN that are currently quarantined.
|
|
VPN Clients
|
Built-in dynamic network object representing client computers connected to ISA Server using the VPN connection.
|
Enterprise Networks (Enterprise Edition Only)
When you install ISA Server, the Enterprise networks described in the following table are created at the enterprise level. These networks can be used in enterprise-level and array-level rules.
|
Content Type
|
Description
|
|---|
|
External
|
Built-in network object representing
all computers not included in any other network and in the array to which the enterprise policy is applied.
|
|
Local Host
|
Built-in network object representing all the computers in the Enterprise that are running ISA Server services in the array to which the enterprise policy is applied.
|
|
Quarantined VPN Clients
|
Built-in dynamic network representing client computers connecting to ISA Server using a VPN that are currently quarantined, in the array to which the enterprise policy is applied.
|
|
VPN Clients
|
Built-in dynamic network object representing client computers connected to ISA Server using the VPN connection, in the array to which the enterprise policy is applied.
|
Network Sets
Network sets are used to define several networks as a single set. This set can be used in firewall policy rules to apply rules to all the networks in the set.
ISA Server 2006 is preconfigured with the following network sets:
-
All Networks (including Local Host)
. This predefined network set includes all the currently defined ISA Server networks (user-defined and built-in networks).
-
All Protected Networks
. This predefined network set includes all currently defined ISA Server networks (user-defined and built-in networks), except for the built-in External network.
There are two types of network sets, Exclude and Include. Exclude network sets are defined by selecting a set of networks excluded from the network set. The network set is actually comprised of all the networks that are not selected. Include network sets are defined by selecting the networks that are included in the network set.
Computers
A computer network object defines a single computer IP address as a network element that can be used in access and policy rules. Note that a computer name cannot be used.
Address Ranges
Specify an address range to use a set of contiguous IP addresses as a rule source or destination. For example, you may want to give a set of client computers in a specific address range access to resources in another network. ISA Server does not define any default address ranges. Use an IP address range entity to define a single object that encompasses IP addresses within a specified range.
Subnets
Use a subnet to define a group of client computers located in the same subnet when applying a rule. ISA Server does not create any default subnets. The subnet object only includes IP addresses that fall within a range that can be defined by a standard address mask, unlike an address set entity, which can include addresses within any range.
Computer Sets
-
Computer sets define a collection of computers, IP address ranges, or subnets as a single network object that can be used in access and policy rules. When you install ISA Server, the following computer sets are created:
-
Anywhere. A predefined computer set of all IP address ranges.
-
IPsec Remote Gateways. A predefined computer set that includes the IP addresses of Internet Protocol security (IPsec) remote VPN gateways that are configured using the Site-to-Site VPN Wizard.
-
Remote Management Computers. A predefined computer set that includes computers allowed to manage ISA Server remotely. It should be modified to include IP addresses of all computers that can manage ISA Server remotely. If ISA Server is installed remotely within an active Remote Desktop session, the IP address of the remote computer is added automatically to this computer set.
-
Array Servers. (Enterprise Edition only.) A predefined computer set used in a system policy rule that allows traffic between array members. For each array, this computer set includes the IP addresses of array members. Computers are added during installation. If you subsequently change the address of an array member, be sure to update this computer set accordingly.
-
Managed ISA Server Computers. (Enterprise Edition only.) A predefined computer set that includes computers allowed to connect to this array's Configuration Storage server. It should be modified to include IP addresses of all computers that will connect to the Configuration Storage server.
When you install ISA Server Enterprise Edition, the following enterprise-level computer sets are created.
-
Anywhere. A predefined computer set of all IP address ranges.
-
Enterprise Remote Management Computers. A computer set that includes computers allowed to remotely manage all ISA Server computers in the enterprise. The Enterprise Remote Management Computers computer set can also be used when creating array-level rules.
-
Replicate Configuration Storage servers. A predefined computer set that includes all Configuration Storage server computers that are replicated with the local Configuration Storage server.
URL Sets
Uniform Resource Locator (URL) sets specify one or more URLs grouped together to form a set. URL sets can be used in access rules to allow or deny access to specified Web sites.
You can create a URL set, and then use it in access rules to allow or deny access to Web sites specified in the set. When ISA Server processes a rule that applies to a URL set, the URL set element of the rule is only processed for Web traffic requests. Protocols include HTTP, HTTPS, or FTP over HTTP. If a client request uses another protocol, ISA Server ignores the URL set when processing the rule. For example, if a rule has both a computer set and a URL set specified as destination criteria, only the computer set will be evaluated in the rule. The URL set will be ignored.
You can specify one or more URLs in URL format:
<protocol>://<host>:<port>/<path>
In the host part of the name, you can use an asterisk (*) wildcard character to specify a set of computers. For example, to specify all computers in the Microsoft.com domain, specify *.microsoft.com.
In the path part of the name, you can specify an asterisk wildcard character as part of the path, but only at the end. For example:
-
www.microsoft.com/* is acceptable.
-
www.microsoft.com/*/sales is not acceptable.
You cannot specify a URL set as an IP address.
Processing URL Sets
ISA Server processes rules that apply to URL sets only for Web traffic (for client requests for HTTP or FTP over HTTP). When a client uses any other protocol, ISA Server does not process rules that apply only to a URL set.
Note the following behavior in matching requests with rules containing URL sets:
-
Only the host name and path are considered in a request.
-
The protocol part of the URL is stripped from requests and ignored.
-
You can also specify a path. Wildcard characters can be used in the path, but only at the end. For example, www.microsoft.com/* is acceptable. However, www.microsoft.com/*/sales is not acceptable.
-
Although the URL can include a specific port number, ISA Server ignores that port number when processing the rule. Any port number specified is stripped from requests and ignored.
-
If a request includes a question mark (?), the question mark and everything following it are stripped from the request before matching.
-
When matching, the host and path names are not case-sensitive. For example, this means that folderA and foldera would be considered the same path.
-
For HTTP or FTP over HTTP, when the URL is specified in a request without a path, it will match any path. For example, http://a.com or a.com is equivalent to http://a.com/*.
-
For HTTPS traffic, URL sets are only processed if the URL does not have a path specified, for example, http://a.com or a.com. If the URL has a path specified, for example a slash mark (/), it is ignored for HTTPS traffic.
-
When ISA Server checks the URL sets configured for a rule, text after a question mark (?) is ignored. URLs with a ?, which are included in a URL set, are ignored.
Possible protocols are HTTP, HTTPS, and FTP. However, when ISA Server processes a rule that applies to a URL set, the protocol specified is ignored—only the host name and path are considered.
Name Resolution (URL Sets and Domain Name Sets)
ISA Server determines whether requests should be allowed or denied in accordance with access policy. The ISA Server rules engine attempts to match access rules, and then routing rules, with requests. Rules that include domain name sets and URL sets require name resolution. If there are no rule criteria that prevent rule matching, and the rule may match the request if name resolution is performed, the rule will be subject to name resolution. If the rule contains a URL set, but a schedule limitation on the rule prevents matching, the rule is not subject to name resolution. The following types of requests may be marked for name resolution:
-
A Web request specified by name encounters a rule that has an address range specified as the destination criteria (forward lookup).
-
A Web request specified by IP address encounters a rule that has a URL set as the destination criteria (reverse lookup).
The Microsoft Firewall service includes its own Domain Name System (DNS) cache. If the requested IP address or host name resides in this cache, the request is processed without issuing a DNS request. Otherwise, a DNS request is issued. Name resolution provides a host entry, and the rules engine then compares the host entry against the destination criteria of the rule. The rules engine does a string compare against URL sets and domain name set entries.
Note that rules requiring name resolution are evaluated and enforced in accordance with DNS resolution information. If DNS information is not configured correctly or securely, rules may not be applied as required.
URL Set Mapping
Some URL set mapping examples are as follows:
-
For a URL set that includes the URL ftp://a.com:25/apath, requests for http://a.com and for http://a.com:55 will be matched, because protocol and port are stripped.
-
For a URL set that includes the URL http://a.com, requests for http://a.com/abc will be matched, as will requests for http://a.com/abc/def. For example, http://a.com is the equivalent of http://a.com/*. The exception is for HTTPS requests, which will not be processed because a path is specified.
-
For a URL set that includes the URL http://a.com/a, requests for http://a.com/a will be matched. But requests for http://a.com/a/b will not be matched. In such an entry, requests are not matched to the tree following "a."
-
For a URL set that includes the URL http://www.a.com/apath?next=news, the question mark and everything following will be stripped from requests. If this URL set was specified in a deny rule, and a request arrives for http://www.a.com/apath?next=news, the request is stripped to http://www.a.com/apath. It would be allowed because it does not match the URL set specified in the deny rule. To block such a request, you should specify http://www.a.com/apath in the URL set.
-
For a URL set that includes the URL a.com, HTTPS requests will be matched, because no path is specified.
-
For a URL set that includes the URL b.com/, HTTPS requests will not be matched, because a path (/) is specified.
Domain Name Sets
Domain name sets define one or more domain names as a single set, so that you can apply firewall policy to the specified domains. When you install ISA Server, the following domain name sets are created:
-
Microsoft Error Reporting Sites. A predefined domain name set used to allow error reporting.
-
System Policy Allowed Sites. A predefined domain name set used to allow access to trusted sites for maintenance and management.
-
Enterprise Configuration Storage Servers. (Enterprise Edition only.) A predefined domain name set for the Configuration Storage server used by the ISA Server computer.
-
Microsoft Update Domain Name Set. A predefined domain name set of all Microsoft update servers. This domain name set is used in the ISA Server Microsoft Update Cache Rule properties.
Specifying Domain Names
When you apply a rule to a domain name set, ISA Server checks whether the request matches the specified domain name set. ISA Server checks the exact name that you specified, including port numbers. For example, consider a Web publishing rule that allows access to a domain name set that includes fabrikam.put:1111. Requests to fabrikam.put will be denied. Requests to fabrikam.put will be allowed only if the domain name set is changed to include fabrikam.put. For this reason, do not specify a port number in a domain name set.
When creating a domain name set, note the following:
-
When you specify a domain name, specify the computer name using the fully qualified domain name (FQDN). For example, computer_name.microsoft.com, and not \\computer_name. You cannot specify a domain name set as an IP address. When specifying the domain name, you can use an asterisk (*) to specify a set of computers. For example, to specify all computers in the Microsoft.com domain, type the domain name as *.microsoft.com. Note that the asterisk can appear only at the start of the domain name, and can be specified only once in the name.
-
When you create a domain with a wildcard character, such as *.microsoft.com, this only includes host computers at the domain, for example www.microsoft.com, ftp.microsoft.com. Note that if the domain name points to a host, *.microsoft.com will have no effect on the URL http://Microsoft.com.
-
We recommend that you enter the domain name as it is returned by the Domain Name System (DNS). If you specify a dot at the end of a domain name, a request for the domain name (without a dot) may not be matched as required.
-
When matching rules, the domain name is not case-sensitive.
Name Resolution and Domain Name Sets
ISA Server determines whether requests should be allowed or denied in accordance with access policy. The ISA Server rules engine attempts to match access rules, and then routing rules, with requests. Rules that include domain name sets and URL sets require name resolution. If there is no rule criteria that prevents rule matching, and the rule may match the request if name resolution is performed, the rule will be subject to name resolution. If the rule contains a URL set, but a schedule limitation on the rule prevents matching, the rule is not subject to name resolution.
The following types of requests may be marked for name resolution:
-
A Web request specified by name encounters a rule that has an address range specified as the destination criteria (forward lookup).
-
A Web request specified by IP address encounters a rule that has a URL set as the destination criteria (reverse lookup).
The Microsoft Firewall service includes its own DNS cache. If the requested IP address or host name resides in this cache, the request is processed without issuing a DNS request. Otherwise, a DNS request is issued. Name resolution provides a host entry, and the rules engine then compares the host entry against the destination criteria of the rule. The rules engine does a string compare against URL sets and domain name set entries.
Note that rules requiring name resolution are evaluated and enforced in accordance with DNS resolution information. If DNS information is not configured correctly or securely, rules may not be applied as required.
Web Listeners
When you create a Web publishing rule, you specify a Web listener to be used when applying the rule. The Web listener properties determine:
-
Type of connections the Web listener will establish with clients, either Secure Sockets Layer (SSL) or HTTP.
-
The ISA Server networks, and which IP addresses and ports on the specified networks, will listen for Web requests.
-
The SSL server certificate that will be used to authenticate the client connection (if SSL is selected).
-
Which authentication method will be used and when authentication is required.
-
The method used by clients to authenticate to ISA Server.
-
The method used by ISA Server to validate client credentials.
Web listeners can be used by more than one Web publishing rule.
Web Listener Network (IP Address) Selection
The Web listener network, or networks, that you select depend on which network clients will use to connect to the published Web server. For example, if the Web site you are publishing allows client requests from the Internet (External network), you should select the External network for the Web listener. By selecting the External network, you are selecting the IP addresses on the ISA Server computer that are associated with the external network adapter. If you do not limit the IP addresses, all IP addresses associated with the selected network adapter will be included in the listener configuration.
Web listeners are used by a Web publishing rule. The rule specifies source network objects in addition to specifying a Web listener. The network objects specified for the Web publishing rule must also be specified for the Web listener.
Selecting SSL Server Certificates
Each Web listener can be used for one or more Web sites. However, ISA Server limits one certificate per IP address. If all the Web sites use the same certificate, you can publish using the same Web listener. However, if different certificates are required, you must do one of the following:
-
Install a wildcard certificate.
-
Add an IP address to the listening network adapter on the ISA Server computer (or array in ISA Server Enterprise Edition) for each SSL-enabled Web site.
For example, you want to publish three SSL Web sites: www.treyresearch.net, www.Finance.treyresearch.net, and www.Marketing.treyresearch.net. All three sites are registered in a public DNS, and resolve to the same IP address. You must install a wildcard certificate for *.treyresearch.net to publish these sites. Alternatively, you could add more IP addresses.
In ISA Server 2004, wildcard certificates are supported only on the ISA Server computer. In HTTPS-to-HTTPS bridging, you cannot use wildcard certificates to authenticate the back-end Web server to ISA Server. In ISA Server 2006, wildcard certificates are supported on both the ISA Server computer and the back-end Web server.
For more information about wildcard certificates, see "Publishing Multiple Web Sites using a Wildcard Certificate in ISA Server 2006" at the Microsoft TechNet Web site. Most of the procedures in this document are applicable for ISA Server 2006.
Limiting Concurrent Connections
By limiting the number of connections allowed simultaneously to the ISA Server computer, you can prevent attacks that overwhelm the system's resources. This is particularly useful when publishing servers. You can limit the number of computers that connect, while allowing for specific clients to continue connecting, even when the limit is surpassed.
Port Specification
By default, ISA Server listens on port 80 for HTTP requests. If, however, connecting clients are expected to use a different port, you should change the port number accordingly. You can also enable the Web listener to listen for SSL requests on the default port 443. If you choose SSL, an appropriate certificate must first be installed on the ISA Server computer. You must select a server certificate to be used by the Web listener so that the ISA Server computer can authenticate itself to the client.
Server Farms
Web applications and sites are often hosted by a Web farm, consisting of two or more mirrored Web servers. A server farm (also referred to as a Web farm) defines an existing load balanced cluster as an ISA Server server farm that can be used for publishing load balanced Web applications. When you create a server farm, you specify the computer name or IP address of each server in the farm.
Server Farm Load Balancing Mechanism
In many scenarios, for load balancing to be effective, affinity must be maintained between the client and the Web server that receives and responds to the client's request. Otherwise, a series of requests from the client and responses from the Web farm will be handled by different Web servers, ignoring the context of the requests. For example, Outlook Web Access is an application that requires client affinity, because the Outlook Web Access server maintains a context for the connected client.
The need for affinity is also demonstrated in a Web shopping scenario, where a client sets up a shopping cart on a Web server. If affinity is not maintained, at some point in the client's session, the client's requests may be directed to another Web server that is unaware of the shopping cart.
When you apply a rule to a server farm, you can also configure if the load balancing mechanism should be cookie based or source-IP based.
We recommend that you use session affinity when possible, because it provides more reliable client affinity when a Web server is restarted. This is sometimes referred to as client stickiness. It also works better in a situation where you are draining a Web server. Session affinity should be used for load balancing Outlook Web Access or Microsoft Windows SharePoint® Services access, both of which use Microsoft Internet Explorer®, and therefore support HTTP cookies.
IP address-based affinity has an advantage over session affinity in that it supports clients that are not fully compliant with HTTP 1.1 (clients that do not support HTTP cookies), such as some mobile devices. IP address-based affinity must also be used in a scenario where you are load balancing RPC over HTTP Outlook access. Outlook does not work with HTTP cookies, and therefore cannot use session affinity.
Note that if you are publishing a server farm with ISA Server 2006 located behind another firewall, you must either use session affinity, or use IP address affinity and verify that the front-end firewall is configured to pass the original client's IP address to ISA Server.
Server Farm Connectivity Verifiers
When you create a server farm, ISA Server creates a connectivity verifier for each Web server. Note that if your Web servers use a port other than port 80, specify that port on the server farm properties Connectivity Verification tab. You can view connectivity verifier status for the server farm in the Monitoring node, on the Connectivity Verifiers tab.
Draining a Server Farm
ISA Server provides a Drain option allowing you to specify that a server in the farm should temporarily stop accepting new connections. When you are ready for the server to begin accepting connections again, the Resume option is available.
Note that Drain and Resume are only active after you click the Apply button on the Apply Changes bar. When you drain a server, it stops accepting new connections. However, existing connections are not dropped.