Troubleshooting Windows Firewall in Microsoft Windows XP Service Pack 2
Abstract
The Windows Firewall feature of Microsoft® Windows® XP Service Pack 2 (SP2), a replacement for the Internet Connection Firewall (ICF) in previous versions of Windows XP, is a stateful host firewall that provides protection for computers against incoming traffic from the Internet or from neighboring network devices on a private network. This article describes how Windows Firewall works, the common problems with using Windows Firewall, and the set of tools used to troubleshoot Windows Firewall issues. This article is intended for network administrators and advanced users who are familiar with Windows XP and Transmission Control Protocol/Internet Protocol (TCP/IP).
On This Page
Windows Firewall Overview
Common Problems with Windows Firewall
General Methodology for Determining and Configuring Exceptions
Windows Firewall Troubleshooting Tools
Summary
Related Links
Windows Firewall Overview
A firewall is a protective boundary between a computer or network and the outside world. Windows Firewall is a stateful host firewall in Windows XP Service Pack 2 (SP2) that drops unsolicited incoming traffic that does not correspond to either traffic sent in response to a request of the computer (solicited traffic) or unsolicited traffic that has been specified as allowed (excepted traffic). This behavior of Windows Firewall provides a level of protection from malicious users and programs that use unsolicited traffic to attack computers. With the exception of some Internet Control Message Protocol (ICMP) messages, Windows Firewall does not drop outgoing traffic.
Unlike the Internet Connection Firewall (ICF) provided in Windows XP with Service Pack 1 (SP1) or Windows XP with no service packs installed, Windows Firewall is designed for use on all network connections, including those that are accessible from the Internet, those connected to small office/home office networks, and those connected to private organization networks.
For many enterprise networks using Windows XP with SP1 or Windows XP with no service packs installed, ICF is disabled on all connections connected to the enterprise network because computers on enterprise networks are not directly reachable from the Internet. The enterprise network firewall, proxy, and other security systems provide some level of protection from the Internet to intranet network computers. However, the absence of host firewalls such as Windows Firewall on intranet connections leaves computers vulnerable to malicious programs brought onto the intranet by mobile computers.
For example, an employee connects an organization laptop to a home network that does not have adequate protections. Because the organization laptop does not have a host firewall enabled on its network connection, it gets infected with a malicious program (such as a virus or worm) that uses unsolicited traffic to spread to other computers. The employee then brings his or her laptop back to the office and connects it to the organization intranet, effectively bypassing the security systems that are at the edge of the intranet. Once connected to the intranet, the malicious program begins to infect other computers. If Windows Firewall was enabled by default, the laptop computer might not get infected with the malicious program when connected to their home network. Even if it did get infected, when it connected to the intranet, the local intranet computers might not become infected because they also have Windows Firewall enabled.
If the computers running Windows XP with SP2 are running client-based programs, then enabling Windows Firewall does not impair communications. Web access, email, Group Policy, and management agents that request updates from a management server are examples of client-based programs. For client-based programs, the client computer always initiates the communication and all response traffic from a server is allowed past the firewall because it is solicited incoming traffic.
In Windows XP with SP1 or Windows XP with no service packs installed, ICF is disabled by default for all connections, unless enabled for an Internet connection by the Network Setup Wizard or Internet Connection Wizard. You can manually enable ICF through a single checkbox on the Advanced tab of the properties of a connection, from which you can also configure the set of excepted traffic by specifying Transmission Control Protocol (TCP) or User Datagram Protocol (UDP) ports.
In Windows XP with SP2, Windows Firewall is enabled by default on all network connections and can be configured with exceptions from the Windows Firewall component in Control Panel, which you can run from the new Windows Security Center. For more information, see Manually Configuring Windows Firewall in Windows XP Service Pack 2.
When Windows Firewall has been enabled on a network connection, the corresponding icon in the Network Connections folder appears with a lock and the connection's details display a status of Enabled, Firewalled when it is selected. The following figure shows an example in which Windows Firewall is enabled on all the connections of the computer.
How Windows Firewall Works
Windows Firewall is a stateful, host-based firewall for incoming traffic. Unlike router-based firewalls deployed at the boundary of a private network and the Internet, Windows Firewall is only designed to act as a firewall for host-based traffic—traffic destined to an IP address on which the computer is listening—rather than for traffic that is destined for another computer.
The basic operation of Windows Firewall is the following:
- An incoming packet is inspected and compared against a list of allowed traffic. If the packet matches an entry in the list, Windows Firewall passes the packet to the TCP/IP protocol for further processing. If the packet does not match an entry in the list, Windows Firewall silently discards the packet and, if enabled, creates an entry in the Windows Firewall logging file.
Traffic in the exceptions list is specified using IP addresses, TCP ports, and UDP ports. There is no way to specify traffic based on the IP Protocol field in the IP header.
The list of allowed traffic is populated in two ways:
When the connection on which Windows Firewall is enabled sends a packet, Windows Firewall creates an entry in the list so that the response to the traffic will be allowed. The response traffic is incoming solicited traffic.
For example, if a Domain Name System (DNS) Name Query Request message is sent to a DNS server, Windows Firewall adds an entry so that the corresponding DNS Name Query Response message sent by the DNS server can be passed to the TCP/IP protocol for further processing. This behavior makes the Windows Firewall a stateful firewall: state about the traffic initiated by the computer is maintained so the corresponding incoming response traffic will be allowed.
When you configure Windows Firewall for exceptions, the excepted traffic is added to the list. This capability allows a computer using Windows Firewall to accept unsolicited incoming traffic when acting as a server, a listener, or a peer.
For example, if your computer is acting as a Web server, you must configure Windows Firewall to except Web traffic so that the computer can respond to requests from Web clients. You can configure exceptions based on programs, in which case the ports opened by the excepted program are automatically added to the exceptions list, or on TCP or UDP ports, in which case the ports are opened whether the application or services using them is active or not.
Common Problems with Windows Firewall
The following are the most common problems encountered when using Windows Firewall:
I cannot configure Windows Firewall
Nobody can ping my computer
Internet users cannot access my game, Web, or other server
Local file and printer shares cannot be accessed
I cannot see the computers on my network in My Network Places
Remote Assistance is not working
I Cannot Configure Windows Firewall
If all the settings on the General, Exceptions, and Advanced tabs for the properties of the Windows Firewall that are not available (appear grayed out), then you are not logged on to the computer with a user account that is a member of the local Administrators group, referred to throughout this article as local administrators. Only local administrators can configure Windows Firewall settings.
If there are settings on the General, Exceptions, and Advanced tabs for the properties of the Windows Firewall that are not available, then your computer is either:
Part of a managed network and the network administrator has used Windows Firewall Group Policy settings to enable and configure Windows Firewall behavior. Windows Firewall Group Policy settings also apply to local administrators. In this case, you would see a "For your security, some settings are controlled by Group Policy" message at the top of the Windows Firewall component in Control Panel.
Contact your network administrator for more information.
Running Windows XP Professional and is not a part of a managed network, but local Group Policy settings have been set to configure Windows Firewall behavior.
To clear local Group Policy settings for the Windows Firewall, use the Local Computer Policy snap-in and set all the settings in Computer Configuration\Administrative Templates\Network\Network Connections\Windows Firewall and in the Domain Profile and Standard Profile folders to Not Configured.
Nobody Can Ping My Computer
A common step in troubleshooting connectivity problems is to use the Ping tool to ping the IP address of the computer to which you are trying to connect. When you ping, you send an ICMP Echo message (also known as an ICMP Echo Request message) and get an ICMP Echo Reply message in response. By default, Windows Firewall does not allow incoming ICMP Echo messages and therefore the computer cannot send an ICMP Echo Reply in response. To configure Windows Firewall locally to allow the incoming ICMP Echo message, you must enable the Allow incoming echo request setting in the ICMP dialog box, available from the ICMP settings on the Advanced tab of the Windows Firewall component of Control Panel. The following figure shows an example.
You can also enable incoming ICMP Echo messages for a specific connection from the ICMP tab of the Advanced Network Settings for a selected connection, available from the Advanced tab of the Windows Firewall component of Control Panel.
If your computer is part of a managed network, then you can also configure ICMP exceptions as part of Windows Firewall Group Policy settings. For more information, see Deploying Windows Firewall Settings for Microsoft Windows XP with Service Pack 2.
Note Only local administrators can change Windows Firewall settings, unless overridden or prohibited by Windows Firewall Group Policy settings.
Enabling incoming ICMP Echo messages will allow others to ping your computer. However, it also leaves your computer vulnerable to the types of attacks that use ICMP Echo messages. Therefore, it is recommended that you enable the Allow incoming echo request setting temporarily, and then disable it when it is no longer needed.
Internet Users Cannot Access My Game, Web, or Other Server
If your application or service listens for unsolicited incoming traffic—for example, it is a server, a listener, or a peer—then the default configuration of Windows Firewall is to drop the unsolicited incoming traffic for your application or service unless there is an exception that is configured and enabled. Exceptions for applications that listen for traffic on your computer are configured in the following ways:
By enabling one of the built-in exceptions from the Exceptions tab of the Windows Firewall component of Control Panel. Built-in exceptions include File and Printer Sharing, Remote Assistance, Remote Desktop, and UPnP Framework.
By manually configuring an exception from the Exceptions tab of the Windows Firewall component of Control Panel.
When the application is run, it uses Windows Firewall application programming interface (API) function calls to request that exceptions be created. If a local administrator runs the application, the exceptions are configured and enabled.
When an application that does not use the Windows Firewall API runs and attempts to listen on TCP or UDP ports, Windows Firewall prompts a local administrator with a Windows Security Alert dialog box, from which they can specify to add to the list of exceptions on the Exceptions tab of the Windows Firewall component of Control Panel but block the traffic for all users (the Keep Blocking option), to add to the exceptions list and allow the traffic for all users (the Unblock option), or to block the traffic for now and prompt again the next time the application is run (the Ask Me Later option).
To determine the path of the application from the Windows Security Alert dialog box, place the mouse pointer over the name or description of the application. The displayed tool tip text indicates the path to the application.
If the user is not a local administrator, the Windows Security Alert dialog box informs that the traffic is being blocked, and to contact their network administrator for more information.
Services do not prompt the user with a Windows Security Alert dialog box. Therefore, you should manually configure exceptions for them.
By manually configuring exceptions with commands in the netsh firewall context.
By configuring exceptions through Windows Firewall Group Policy settings.
Manually configured exceptions can either be based on program names, in which all of the ports needed by the application or service are automatically opened and closed by Windows Firewall as needed, or based on TCP and UDP ports, in which the specified ports are opened, regardless of whether the program using the ports is running or not. The recommended method for security and ease of configuration is to configure program-based exceptions, rather than port-based exceptions.
To manually configure a program-based exception, do the following:
From the Windows XP desktop, click Start, click Control Panel, click Security Center, and then click Windows Firewall.
Click the Exceptions tab.
Click Add Program and specify the program (the application or service) from the list or using the Browse button and, if needed, its scope. For information about specifying the scope, see Manually Configuring Windows Firewall in Windows XP Service Pack 2.
Click OK to save changes to the exception.
To manually configure a port-based exception, do the following:
From the Windows XP desktop, click Start, click Control Panel, click Security Center, and then click Windows Firewall.
Click the Exceptions tab.
Click Add Port and specify the TCP or UDP port name and number and, if needed, its scope.
Click OK to save changes to the exception.
Note You cannot configure an exception based on an IP protocol.
To determine the set of TCP or UDP ports to configure as exceptions, see the program's user guide or Web site for information about how to configure firewalls to allow the program's traffic. If you cannot determine the traffic for your program or the program still does not work after configuring the exception, see the "General Methodology for Determining and Configuring Exceptions" section in this article.
TCP and UDP-based exceptions only work for programs that use static ports. With static ports, the program uses a specific set of ports and those ports do not change. However, some programs use dynamic ports, which change each time the program runs or while it is running. A program that needs to listen on dynamic ports must be configured as a Windows Firewall program-based exception, rather than a TCP or UDP-based exception.
My Local File and Printer Shares Cannot Be Accessed
If you cannot access file or printer shares on a computer that has Windows Firewall enabled, you must enable the pre-defined File and Printer Sharing exception on the Exceptions tab of the Windows Firewall component of Control Panel.
Note Enabling the File and Printer Sharing exception for computers that are directly connected to the Internet (for managed computers, in the Standard profile) is highly discouraged because malicious users can attempt to obtain access to file shares and compromise your personal files. For single-subnet small office/home office (SOHO) networks, only enable the File and Printer Sharing exception on connections that are directly connected to the SOHO subnet and for the local subnet scope (the My network (subnet) only option in the Change Scope dialog box).
I Cannot Remotely Administer a Computer with Windows Firewall Enabled
If you cannot remotely administer a computer that has Windows Firewall enabled, you must enable the pre-defined Remote Assistance exception on the Exceptions tab of the Windows Firewall component of Control Panel.
Note Enabling the Remote Assistance exception for computers that are directly connected to the Internet (for managed computers, in the Standard profile) is highly discouraged because malicious users can attempt to remotely control your computer. For single-subnet small office/home office (SOHO) networks, only enable the Remote Assistance exception on connections that are directly connected to the SOHO subnet and for the local subnet scope (the My network (subnet) only option in the Change Scope dialog box).
I Cannot See the Computers on My Network in My Network Places
This problem is similar to the problem with file and print sharing. If you cannot see the computers on your private network in My Network Places after enabling Windows Firewall, you must enable the pre-defined File and Printer Sharing exception on the Exceptions tab for the properties of the Windows Firewall.
Note Enabling the File and Printer Sharing exception for computers that are directly connected to the Internet is highly discouraged because malicious users can attempt to obtain access to file shares and compromise your personal files. For single-subnet small office/home office (SOHO) networks, only enable the File and Printer Sharing exception on connections that are directly connected to the SOHO subnet and for the local subnet scope (the My network (subnet) only option in the Change Scope dialog box).
Remote Assistance is Not Working
For information about configuring Windows Firewall for Remote Assistance, see Appendix D of Deploying Windows Firewall Settings for Microsoft Windows XP with Service Pack 2.
How To Determine Whether Windows Firewall is Configured with Group Policy Settings
On a managed network, Windows Firewall is configured by the combination of local settings stored in the registry and Group Policy settings. In this case, it is sometimes helpful when troubleshooting to be able to determine if Windows Firewall is using only local settings or whether it is using Group Policy settings, and if so, which Windows Firewall profile is being used (the Standard profile or the Domain profile). Windows XP with SP2 relies on network determination to determine which set of profile settings to apply. For more information, see Network Determination Behavior for Network-Related Group Policy Settings.
To make this determination, type the netsh firewall show state verbose=enable command at a command prompt. Here is an example of the first section of the display:
Firewall status: ------------------------------------------------------------------- Profile = Standard Operational mode = Enable Exception mode = Enable Multicast/broadcast response mode = Enable Notification mode = Enable Group policy version = None Remote admin mode = Disable Scope: *
From the "Firewall status" section, look at the items for "Profile" and for "Group policy version". The following table lists the various values for these items and what they mean.
Value of "Profile" item |
Value of "Group Policy version" item |
Description |
---|---|---|
Standard |
None |
No Windows Firewall Group Policy settings exist. Computer is only using local Windows Firewall settings. |
Standard |
Windows Firewall |
The computer is using Windows Firewall Group Policy settings. |
Domain |
None |
The computer is connected to a network containing your domain, however no Windows Firewall Group Policy settings exist. |
Domain |
Legacy Firewall (ICF) |
The Prohibit use of Internet Connection Firewall on your DNS domain network Group Policy setting has been set to Enabled and Windows Firewall Group Policy settings do not exist. |
Domain |
Windows Firewall |
The computer is connected to a network containing your domain and is using Windows Firewall Group Policy settings. |
Note The Prohibit use of Internet Connection Firewall on your DNS domain network Group Policy setting can disable the Windows Firewall (the "Operational Mode" item in the netsh command display is set to "Disable") if you do not also set the Windows Firewall: Protect All Network Connections Group Policy setting to Enabled.
To determine whether program or port-based exceptions were obtained from local settings or from Group Policy, examine the "Program exceptions" and "Port exceptions" sections of the netsh firewall show state verbose=enable command display. These sections are tables containing the list of exceptions. For each table, there is a "Local policy" column. If the entry in the "Local policy" column for an exception is set to "Yes", the exception was configured through local policy settings. If it is set to "No", the exception was configured through Group Policy settings.
Here is an example of a portion of the "Port exceptions" section of the netsh firewall show state verbose=enable command display:
Note: Some of the lines in the following code have been displayed on multiple lines for better readability.
Port exceptions: Port Protocol Local policy Mode Name / Service type ------------------------------------------------------------------- 137 UDP Yes Enable NetBIOS Name Service / File and Printer Sharing Scope: LocalSubNet 138 UDP Yes Enable NetBIOS Datagram Service / File and Printer Sharing Scope: LocalSubNet 139 TCP Yes Enable NetBIOS Session Service / File and Printer Sharing Scope: LocalSubNet 445 TCP Yes Enable SMB over TCP / File and Printer Sharing Scope: LocalSubNet 3389 TCP No Enable Remote Desktop / Remote Desktop Scope: *
In this example, all the port exceptions except for Remote Desktop were configured through local policy settings.
For a definitive list of Windows Firewall settings that are configured by Group Policy, use the Resultant Set of Policy (RSOP) snap-in. For more information, see Windows XP Help and Support.
General Methodology for Determining and Configuring Exceptions
When an application or service does not work because the Windows Firewall is blocking unsolicited incoming traffic, the solution is not to disable Windows Firewall, but to configure Windows Firewall exceptions so that the blocked traffic is allowed. Disabling Windows Firewall leaves your computer vulnerable to malicious users and programs and is not recommended, unless you are using a third party firewall product.
As described in the "Internet Users Cannot Access My Game, Web, or Other Server" section of this article, applications that listen on ports cause Windows Firewall to prompt the user with a notification. Depending on the selection in the Windows Security Alert dialog box, the application is added to the exceptions list on the Exceptions tab but the traffic is blocked (the Keep Blocking option), added to the exceptions list and allowed (the Unblock option), or not added to the list and blocked (the Ask Me Later option). If you select Keep Blocking, you must enable the application from the Exceptions tab of the Windows Firewall component of Control Panel. Applications can also configure exceptions using the Windows Firewall APIs and you can also manually configure exceptions.
Windows services, unlike applications, do not use the notification feature of Windows Firewall to attempt to automatically configure and enable an exception. Exceptions for Windows services must either be configured by the service using the Windows Firewall APIs or through manually configured program- or port-based exceptions. If the service runs from an executable file (such as an *.exe file), then you can configure a program-based exception. If the service is hosted by another service, such as Svchost.exe, then you must configure port-based exceptions.
If a service needs to be configured for port-based exceptions or ICMP messages, to determine the TCP ports, UDP ports, or ICMP messages that are used by a Windows service, check the documentation for the service or its Web site. Based on the documentation, configure the appropriate port and ICMP message exceptions. If there is no documentation about the TCP ports, UDP ports, or ICMP messages that the service uses, use the following methodology:
From the Advanced tab of the Windows Firewall component of Control Panel, click Settings in the Security Logging section and enable the Log dropped packets option. Click OK to save logging settings and then click OK to close the Windows Firewall component of Control Panel.
From another client computer, note the computer's IP address and attempt to communicate using the client or peer application to the computer on which the Windows Firewall is running with logging enabled. For example, if the server computer is running an email server, then run the appropriate email client program on the client computer.
After the client program on the client computer has failed, go to the server computer and use Windows Explorer to view the contents of the Pfirewall.log file that is stored in your main Windows installation folder.
From the most recent entries on the Pfirewall.log file, look for entries for packets that were dropped with an IP address that matches the IP address of the client computer. From these matching entries, look at the "dst-port" portion of the entry. These are the TCP or UDP ports that need to be configured as port-based exceptions. For ICMP traffic, look at the "icmptype" and "icmpcode" portions of the entry and check the ICMP Parameters Web page for the name of the ICMP message.
Another way to determine the port numbers used by a service is to use audit logging with the following procedure:
Enable audit logging as described in the "Windows Firewall Troubleshooting Tools" section of this article.
Restart your computer. Many services are set for automatic startup. By restarting, you ensure that you can audit your service startup process.
Use the Services snap-in, as described in the "Windows Firewall Troubleshooting Tools" section of this article, to ensure that your service has started.
Use the Event Viewer snap-in, as described in the "Windows Firewall Troubleshooting Tools" section of this article, to look for Failure Audit events in the security event log with an event ID of 861. These events are for applications or services that listen on TCP or UDP ports, but whose traffic was not allowed by Windows Firewall. The text of the error message contains the file path and name of the requestor, the process identifier, whether the requestor is a program or service, and the TCP or UDP port number.
If you can identify the program or service from the information in the Failure Audit event, then use the TCP or UDP port in the event text and configure a port-based exception. Do this for all the ports needed by the program or service.
In some cases, services are run as part of a larger process that hosts multiple services, such as the process named Svchost.exe. In this case, you must use the netstat –abn command to list all of the ports that are being listened to. From the list of components (listed by file name), you can determine the port on which a specific service is listening.
The following is an example of using the netstat –abn command:
F:\>netstat -abn Active Connections Proto Local Address Foreign Address State PID TCP 0.0.0.0:135 0.0.0.0:0 LISTENING 892 f:\xp_pro\system32\WS2_32.dll F:\XP_PRO\system32\RPCRT4.dll f:\xp_pro\system32\rpcss.dll F:\XP_PRO\system32\svchost.exe -- unknown component(s) -- [svchost.exe] TCP 0.0.0.0:445 0.0.0.0:0 LISTENING 4 [System] TCP 127.0.0.1:1029 0.0.0.0:0 LISTENING 1888 [alg.exe] TCP 131.107.81.167:139 0.0.0.0:0 LISTENING 4 [System] UDP 0.0.0.0:500 *:* 688 [lsass.exe] UDP 0.0.0.0:445 *:* 4 [System] UDP 0.0.0.0:4500 *:* 688 [lsass.exe] UDP 127.0.0.1:1900 *:* 1144 f:\xp_pro\system32\WS2_32.dll f:\xp_pro\system32\ssdpsrv.dll F:\XP_PRO\system32\ADVAPI32.dll F:\XP_PRO\system32\kernel32.dll [svchost.exe] UDP 127.0.0.1:1025 *:* 980 f:\xp_pro\system32\WS2_32.dll F:\XP_PRO\system32\WLDAP32.dll F:\XP_PRO\System32\winrnr.dll f:\xp_pro\system32\WS2_32.dll f:\xp_pro\system32\w32time.dll [svchost.exe] UDP 131.107.81.167:137 *:* 4 [System] UDP 131.107.81.167:1900 *:* 1144 f:\xp_pro\system32\WS2_32.dll f:\xp_pro\system32\ssdpsrv.dll F:\XP_PRO\system32\ADVAPI32.dll F:\XP_PRO\system32\kernel32.dll [svchost.exe] UDP 131.107.81.167:138 *:* 4 [System]
Windows Firewall Troubleshooting Tools
Windows XP with SP2 provides the following tools for troubleshooting Windows Firewall issues:
Netsh firewall show commands
Audit logging
Windows Firewall logging file
The Services snap-in
The Event Viewer snap-in
The Netstat tool
Netsh Firewall Show Commands
To obtain information when troubleshooting Windows Firewall, use the following netsh commands:
netsh firewall show state verbose=enable
This command displays the actual state of Windows Firewall for the current set of settings, as configured by the combination of local Windows Firewall settings and Group Policy-based Windows Firewall settings, and the current set of open ports.
netsh firewall show config verbose=enable
This command displays only the local Windows Firewall settings as configured by local settings. Note that unlike the netsh firewall show state verbose=enable command, this command only shows what is configured locally, rather than the current state of the Windows Firewall. You can use this command when you want to compare what is configured locally to the actual state of Windows Firewall, to determine the changes in Windows Firewall settings due to Group Policy.
The following is an example of the netsh firewall show state verbose=enable command:
Note: Some of the lines in the following code have been displayed on multiple lines for better readability.
Firewall status: ------------------------------------------------------------------- Profile = Standard Operational mode = Enable Exception mode = Enable Multicast/broadcast response mode = Enable Notification mode = Enable Group policy version = None Remote admin mode = Disable Scope: * Local exceptions allowed by group policy: ------------------------------------------------------------------- Open ports = Enable Allowed programs = Enable Log settings: ------------------------------------------------------------------- File location = F:\XP_PRO\pfirewall.log Max file size = 4096 KB Dropped packets = Disable Connections = Disable Service settings: Mode Customized Name ------------------------------------------------------------------- Enable No File and Printer Sharing Scope: LocalSubNet Disable No UPnP Framework Scope: * Disable No Remote Desktop Scope: * Program exceptions: Mode Local policy Name / Program ------------------------------------------------------------------- Enable Yes Remote Assistance / F:\XP_PRO\system32\ sessmgr.exe Scope: * Port exceptions: Port Protocol Local policy Mode Name / Service type ------------------------------------------------------------------- 137 UDP Yes Enable NetBIOS Name Service / File and Printer Sharing Scope: LocalSubNet 138 UDP Yes Enable NetBIOS Datagram Service / File and Printer Sharing Scope: LocalSubNet 139 TCP Yes Enable NetBIOS Session Service / File and Printer Sharing Scope: LocalSubNet 445 TCP Yes Enable SMB over TCP / File and Printer Sharing Scope: LocalSubNet 1900 UDP Yes Disable SSDP Component of UPnP Framework / UPnP Framework Scope: LocalSubNet 2869 TCP Yes Disable UPnP Framework over TCP / UPnP Framework Scope: LocalSubNet 3389 TCP Yes Disable Remote Desktop / Remote Desktop Scope: * Ports on which programs want to receive incoming connections: Port Protocol Version PID Type Wildcarded Forced Name / Program ------------------------------------------------------------------- 500 UDP IPv4 688 App No No (null) / F:\XP_PRO\system32\lsass.exe Scope: * 4500 UDP IPv4 688 App No No (null) / F:\XP_PRO\system32\lsass.exe Scope: * 123 UDP IPv4 980 App No No (null) / F:\XP_PRO\system32\svchost.exe Scope: * 123 UDP IPv4 980 App No No (null) / F:\XP_PRO\system32\svchost.exe Scope: * 1900 UDP IPv4 1144 App No No (null) / F:\XP_PRO\system32\svchost.exe Scope: * 1900 UDP IPv4 1144 App No No (null) / F:\XP_PRO\system32\svchost.exe Scope: * 68 UDP IPv4 980 App No No (null) / F:\XP_PRO\system32\svchost.exe Scope: * Ports currently open on all network interfaces: Port Protocol Version Program ------------------------------------------------------------------- 137 UDP IPv4 (null) Scope: LocalSubNet 139 TCP IPv4 (null) Scope: LocalSubNet 138 UDP IPv4 (null) Scope: LocalSubNet 445 TCP IPv4 (null) Scope: LocalSubNet ICMP settings for all network interfaces: Mode Type Description ------------------------------------------------------------------- Disable 2 Allow outbound packet too big Disable 3 Allow outbound destination unreachable Disable 4 Allow outbound source quench Disable 5 Allow redirect Enable 8 Allow inbound echo request Disable 9 Allow inbound router request Disable 11 Allow outbound time exceeded Disable 12 Allow outbound parameter problem Disable 13 Allow inbound timestamp request Disable 17 Allow inbound mask request Additional ICMP settings on Local Area Connection: Mode Type Description ------------------------------------------------------------------- Disable 2 Allow outbound packet too big Disable 3 Allow outbound destination unreachable Disable 4 Allow outbound source quench Disable 5 Allow redirect Disable 8 Allow inbound echo request Disable 9 Allow inbound router request Disable 11 Allow outbound time exceeded Disable 12 Allow outbound parameter problem Disable 13 Allow inbound timestamp request Disable 17 Allow inbound mask request Additional ICMP settings on Wireless Network Connection: Mode Type Description ------------------------------------------------------------------- Disable 2 Allow outbound packet too big Disable 3 Allow outbound destination unreachable Disable 4 Allow outbound source quench Disable 5 Allow redirect Disable 8 Allow inbound echo request Disable 9 Allow inbound router request Disable 11 Allow outbound time exceeded Disable 12 Allow outbound parameter problem Disable 13 Allow inbound timestamp request Disable 17 Allow inbound mask request Local Area Connection firewall settings: ------------------------------------------------------------------- Operational mode = Enable Version = IPv4 GUID = {4C6BDC23-E2CC-4EC3-AF98-2414B6B8DF24} Wireless Network Connection firewall settings: ------------------------------------------------------------------- Operational mode = Enable Version = IPv4 GUID = {04D0C6EE-DB7B-40A1-A4F9-3BA2E03B3053}
The following is an example of the netsh firewall show config verbose=enable command:
Domain profile configuration: ------------------------------------------------------------------- Operational mode = Enable Exception mode = Enable Multicast/broadcast response mode = Enable Notification mode = Enable Service configuration for Domain profile: Mode Customized Name ------------------------------------------------------------------- Enable No File and Printer Sharing Scope: * Disable No UPnP Framework Scope: LocalSubNet Disable No Remote Desktop Scope: * Disable No Remote Administration Scope: * Allowed programs configuration for Domain profile: Mode Name / Program ------------------------------------------------------------------- Enable Remote Assistance / F:\XP_PRO\system32\sessmgr.exe Scope: * Port configuration for Domain profile: Port Protocol Mode Name ------------------------------------------------------------------- 139 TCP Enable NetBIOS Session Service Scope: * 445 TCP Enable SMB over TCP Scope: * 137 UDP Enable NetBIOS Name Service Scope: * 138 UDP Enable NetBIOS Datagram Service Scope: * 1900 UDP Disable SSDP Component of UPnP Framework Scope: LocalSubNet 2869 TCP Disable UPnP Framework over TCP Scope: LocalSubNet 3389 TCP Disable Remote Desktop Scope: * ICMP configuration for Domain profile: Mode Type Description ------------------------------------------------------------------- Disable 2 Allow outbound packet too big Disable 3 Allow outbound destination unreachable Disable 4 Allow outbound source quench Disable 5 Allow redirect Disable 8 Allow inbound echo request Disable 9 Allow inbound router request Disable 11 Allow outbound time exceeded Disable 12 Allow outbound parameter problem Disable 13 Allow inbound timestamp request Disable 17 Allow inbound mask request Standard profile configuration (current): ------------------------------------------------------------------- Operational mode = Enable Exception mode = Enable Multicast/broadcast response mode = Enable Notification mode = Enable Service configuration for Standard profile: Mode Customized Name ------------------------------------------------------------------- Enable No File and Printer Sharing Scope: LocalSubNet Disable No UPnP Framework Scope: LocalSubNet Disable No Remote Desktop Scope: * Disable No Remote Administration Scope: * Allowed programs configuration for Standard profile: Mode Name / Program ------------------------------------------------------------------- Enable Remote Assistance / F:\XP_PRO\system32\sessmgr.exe Scope: * Port configuration for Standard profile: Port Protocol Mode Name ------------------------------------------------------------------- 139 TCP Enable NetBIOS Session Service Scope: LocalSubNet 445 TCP Enable SMB over TCP Scope: LocalSubNet 137 UDP Enable NetBIOS Name Service Scope: LocalSubNet 138 UDP Enable NetBIOS Datagram Service Scope: LocalSubNet 1900 UDP Disable SSDP Component of UPnP Framework Scope: LocalSubNet 2869 TCP Disable UPnP Framework over TCP Scope: LocalSubNet 3389 TCP Disable Remote Desktop Scope: * ICMP configuration for Standard profile: Mode Type Description ------------------------------------------------------------------- Disable 2 Allow outbound packet too big Disable 3 Allow outbound destination unreachable Disable 4 Allow outbound source quench Disable 5 Allow redirect Disable 8 Allow inbound echo request Disable 9 Allow inbound router request Disable 11 Allow outbound time exceeded Disable 12 Allow outbound parameter problem Disable 13 Allow inbound timestamp request Disable 17 Allow inbound mask request Log configuration: ------------------------------------------------------------------- File location = F:\XP_PRO\pfirewall.log Max file size = 4096 KB Dropped packets = Disable Connections = Disable Local Area Connection firewall configuration: ------------------------------------------------------------------- Operational mode = Enable Port configuration for Local Area Connection: Port Protocol Mode Name ------------------------------------------------------------------- 23 TCP Disable Telnet Server 3389 TCP Disable Remote Desktop 21 TCP Disable FTP Server 110 TCP Disable Post-Office Protocol Version 3 (POP3) 25 TCP Disable Internet Mail Server (SMTP) 143 TCP Disable Internet Mail Access Protocol Version 4 (IMAP4) 80 TCP Disable Web Server (HTTP) 220 TCP Disable Internet Mail Access Protocol Version 3 (IMAP3) 443 TCP Disable Secure Web Server (HTTPS) ICMP configuration for Local Area Connection: Mode Type Description ------------------------------------------------------------------- Disable 3 Allow outbound destination unreachable Disable 4 Allow outbound source quench Disable 5 Allow redirect Disable 8 Allow inbound echo request Disable 9 Allow inbound router request Disable 11 Allow outbound time exceeded Disable 12 Allow outbound parameter problem Disable 13 Allow inbound timestamp request Disable 17 Allow inbound mask request Local Area Connection 2 firewall configuration: ------------------------------------------------------------------- Operational mode = Enable Port configuration for Local Area Connection 2: Port Protocol Mode Name ------------------------------------------------------------------- 21 TCP Disable FTP Server 25 TCP Disable Internet Mail Server (SMTP) 3389 TCP Disable Remote Desktop 443 TCP Disable Secure Web Server (HTTPS) 143 TCP Disable Internet Mail Access Protocol Version 4 (IMAP4) 23 TCP Disable Telnet Server 220 TCP Disable Internet Mail Access Protocol Version 3 (IMAP3) 110 TCP Disable Post-Office Protocol Version 3 (POP3) 80 TCP Disable Web Server (HTTP) ICMP configuration for Local Area Connection 2: Mode Type Description ------------------------------------------------------------------- Disable 3 Allow outbound destination unreachable Disable 4 Allow outbound source quench Disable 5 Allow redirect Disable 8 Allow inbound echo request Disable 9 Allow inbound router request Disable 11 Allow outbound time exceeded Disable 12 Allow outbound parameter problem Disable 13 Allow inbound timestamp request Disable 17 Allow inbound mask request Wireless Network Connection firewall configuration: ------------------------------------------------------------------- Operational mode = Enable Port configuration for Wireless Network Connection: Port Protocol Mode Name ------------------------------------------------------------------- 220 TCP Disable Internet Mail Access Protocol Version 3 (IMAP3) 23 TCP Disable Telnet Server 25 TCP Disable Internet Mail Server (SMTP) 443 TCP Disable Secure Web Server (HTTPS) 3389 TCP Disable Remote Desktop 110 TCP Disable Post-Office Protocol Version 3 (POP3) 143 TCP Disable Internet Mail Access Protocol Version 4 (IMAP4) 21 TCP Disable FTP Server 80 TCP Disable Web Server (HTTP) ICMP configuration for Wireless Network Connection: Mode Type Description ------------------------------------------------------------------- Disable 3 Allow outbound destination unreachable Disable 4 Allow outbound source quench Disable 5 Allow redirect Disable 8 Allow inbound echo request Disable 9 Allow inbound router request Disable 11 Allow outbound time exceeded Disable 12 Allow outbound parameter problem Disable 13 Allow inbound timestamp request Disable 17 Allow inbound mask request
Audit Logging
To track changes that are made to Windows Firewall settings and to see which applications and services asked Windows XP to listen on a port, you can enable audit logging and then look for audit events in the security event log.
To enable audit logging on a computer running Windows XP with SP2, do the following:
Log on using an account that is a local administrator.
From the Windows XP desktop, click Start, click Control Panel, click Performance and Maintenance, and then click Administrative Tools.
In Administrative Tools window, double-click Local Security Policy Shortcut.
In the console tree of the Local Security Settings snap-in, click Local Policies, and then click Audit Policy.
In the details pane of the Local Security Settings snap-in, double-click Audit policy change. Select Success and Failure, and then click OK.
In the details pane of the Local Security Settings snap-in, double-click Audit process tracking. Select Success and Failure, and then click OK.
Close the Local Security Settings snap-in.
You can also enable audit logging for multiple computers in an Active Directory® directory service domain using Group Policy by modifying the Audit policy change and Audit process tracking settings at Computer Configuration\Windows Settings\Security Settings\Local Policies\Audit Policy for the Group Policy objects in the appropriate domain system containers.
Once audit logging is enabled, use the Event Viewer snap-in to view audit events in the security event log.
Windows Firewall uses the following event IDs:
848 - Displays the startup configuration of Windows Firewall.
849 - Displays an application exception configuration.
850 - Displays a port exception configuration.
851 - Displays a change made to the application exceptions list.
852 - Displays a change made to the port exceptions list.
853 - Displays a change made to the Windows Firewall operation mode.
854 - Displays a change made to Windows Firewall logging settings.
855 - Displays a change made to ICMP settings.
856 - Displays a change made to the Prohibit unicast response to multicast or broadcast requests setting.
857 - Displays a change made to the Remote Administration setting.
860 - Displays a change made to a different profile.
861 - Displays an application attempting to listen for incoming traffic.
Windows Firewall Logging File
To determine whether a specific computer is dropping packets, enable Windows Firewall logging, either on an individual computer or through Group Policy settings. Then, check the Windows Firewall log file for entries that correspond to the suspected traffic.
The Pfirewall.log file, stored by default in your main Windows folder, records either discarded incoming requests or successful connections based on the Security Logging settings on the Advanced tab in the Windows Firewall component of Control Panel or through the Windows Firewall: Allow logging Group Policy setting. You can use the contents of the Pfirewall.log file to determine whether traffic is reaching the computer on which Windows Firewall is enabled without having to create an exception or enable ICMP traffic.
For example, when you select the Log dropped packets check box, all incoming traffic that is discarded by the firewall is logged in the Pfirewall.log file. You can view this file by double-clicking it in your main Windows folder with Windows Explorer. Use the contents of the log file to determine whether traffic reached your computer and was discarded by Windows Firewall.
Here is an example of the contents of the Pfirewall.log file:
Note: Some of the lines in the following code have been displayed on multiple lines for better readability.
#Version: 1.5 #Software: Microsoft Windows Firewall #Time Format: Local #Fields: date time action protocol src-ip dst-ip src-port dst-port size tcpflags tcpsyn tcpack tcpwin icmptype icmpcode info path 2004-07-08 15:22:30 DROP UDP 157.60.137.221 255.255.255.255 3134 712 88 - - - - - - - RECEIVE 2004-07-08 15:22:31 DROP UDP 157.60.138.21 239.255.255.250 3289 1900 161 - - - - - - - RECEIVE 2004-07-08 15:22:34 DROP UDP 157.60.138.21 239.255.255.250 3289 1900 161 - - - - - - - RECEIVE 2004-07-08 15:22:35 DROP UDP 157.60.138.134 239.255.255.250 3507 1900 161 - - - - - - - RECEIVE 2004-07-08 15:22:37 DROP UDP 157.60.138.21 239.255.255.250 3289 1900 161 - - - - - - - RECEIVE 2004-07-08 15:22:37 DROP UDP 157.60.136.211 239.255.255.250 4274 1900 161 - - - - - - - RECEIVE 2004-07-08 15:22:38 DROP UDP 157.60.138.134 239.255.255.250 3507 1900 161 - - - - - - - RECEIVE 2004-07-08 15:22:38 DROP UDP 192.168.0.1 239.255.255.250 1900 1900 280 - - - - - - - RECEIVE
The following table lists and describes the fields for a Windows Firewall log entry.
Fields |
Description |
---|---|
date |
Displays the year, month, and day that the packet was received. Dates are recorded in the format YYYY-MM-DD, where YYYY is the year, MM is the month, and DD is the day. |
time |
Displays the hour, minute, and seconds when the packet was received. Times are recorded in the format: HH:MM:SS, where HH is the hour in 24-hour format, MM is the number of minutes, and SS is the number of seconds. |
action |
Indicates the operation that was observed by the firewall. The options available to the firewall are OPEN, CLOSE, DROP, and INFO-EVENTS-LOST. An INFO-EVENTS-LOST action indicates the number of events that occurred but that were not recorded in the log. |
protocol |
Displays the protocol that was used for the communication. The protocol can be TCP, UDP, ICMP, or a number corresponding to the Protocol field in the IP header of the dropped packet. |
src-ip |
Displays the source IP address of the packet. |
dst-ip |
Displays the destination IP address of the packet. |
src-port |
Displays the source port number of the TCP or UDP header of the packet. A src-port entry is recorded in the form of a whole number, between 1 and 65,535. Only TCP and UDP traffic displays a valid src-port entry. |
dst-port |
Displays the destination port number of the TCP or UDP header of the packet. A dst-port entry is recorded in the form of a whole number, between 1 and 65,535. Only TCP and UDP traffic displays a valid dst-port entry. |
size |
Displays the packet size in bytes. |
tcpflags |
Displays the TCP control flags in the TCP header for TCP traffic: A – Ack: Acknowledgment field significant F – Fin: No more data from sender P – Psh: Push function R – Rst: Reset the connection S – Syn: Synchronize sequence numbers U – Urg: Urgent Pointer field significant |
tcpsyn |
Displays the TCP sequence number in the TCP header for TCP traffic. |
tcpack |
Displays the TCP acknowledgment number in the TCP header for TCP traffic. |
tcpwin |
Displays the TCP window size in the TCP header for TCP traffic. |
icmptype |
Displays the ICMP type in the ICMP header for ICMP traffic. |
icmpcode |
Displays the ICMP code in the ICMP header for ICMP traffic. |
info |
Displays an information entry that depends on the type of action that occurred. For example, an INFO-EVENTS-LOST action creates an entry for the number of events that occurred but were not recorded in the log from the time of the last occurrence of this event type. |
path |
Displays the direction that the packet was traveling. Typical values are SEND (for sent packets), RECEIVE (for received packets), and FORWARD (for forwarded packets). |
The hyphen (-) is used for fields when there is no information available.
You can also use the contents of the Pfirewall.log file to determine whether a malicious Internet user has scanned your computer.
The Services Snap-in
You use the Services snap-in to check the status of services (programs running on your computer that provide capabilities to other application programs you might run). For Windows Firewall troubleshooting, use the Services snap-in to check the status and properties of the Windows Firewall (WF)/Internet Connection Sharing (ICS) service. Once Windows Firewall has been enabled, the Windows Firewall (WF)/Internet Connection Sharing (ICS) service in the Services snap-in should be started and configured to automatically start.
To use the Services snap-in for Windows Firewall troubleshooting, do the following:
Click Start, click Control Panel, click Performance and Maintenance, click Administrative Tools, and then double-click Services.
In the details pane of the Services snap-in, double-click the Windows Firewall (WF)/Internet Connection Sharing (ICS) service.
Startup type should be set to Automatic and the Service status should be Started.
An example is shown in the following figure.
The Event Viewer Snap-in
If the Windows Firewall (WF)/Internet Connection Sharing (ICS) service is unable to start, then it adds entries to the system event log with information about why it could not start. Additionally, audit log events corresponding to changes in Windows Firewall configuration and program requests to open ports are stored in the security event log. To view the system or security event logs, use the Event Viewer snap-in.
To view the entries in the system or security event logs with the Event Viewer snap-in, do the following:
Click Start, click Control Panel, click Performance and Maintenance, click Administrative Tools, and then double-click Event Viewer.
To look for error events for the Windows Firewall (WF)/Internet Connection Sharing (ICS) service, click System in the console tree of the Event Viewer snap-in.
In the details pane of the Event Viewer, look for Error events.
To look for audit events corresponding to applications or service attempting to open ports, click Security in the console tree of the Event Viewer snap-in.
In the details pane of the Event Viewer, look for events with the event IDs 849, 850, and 861.
The following figure shows an example of an audit event in the security event log.
The Netstat Tool
The Netstat tool displays a variety of information about active TCP connections, ports on which the computer is listening, Ethernet statistics, the IP routing table, and IPv4 and IPv6 statistics. In Windows XP with SP2, the Netstat tool supports a new –b option that displays the set of components by file name that are listening on each open TCP and UDP port.
In Windows XP with SP1 and Windows XP with SP2, you can use the netstat –ano command to display the complete set of ports being listened to in numerical form and their corresponding process IDs (PIDs). You can then look up the PID in the display of the tasklist /svc command to discover the name of the process that owns the port. However, in some cases, there are multiple services within a single process and it is not possible with the netstat –ano command to determine which service within the process owns the port.
With the netstat –anb command, Netstat displays the complete set of TCP or UDP ports in numerical form, the file names corresponding to the components of the service that owns the port, and the corresponding PIDs. From the file names and the PID, you can determine which of the services in the display of the tasklist /svc command opened the port.
Summary
Windows Firewall is a host-based stateful firewall in Windows XP SP2 that discards unsolicited incoming traffic that does not correspond to a configured and enabled exception. Windows Firewall provides a level of security from malicious Internet users who scan computers looking for vulnerabilities. Windows Firewall is enabled by default and can be configured using the new Windows Firewall component of Control Panel and through Group Policy settings. The most common problems with Windows Firewall are the inability of server, peer, or listening applications to receive traffic. In most cases, configuring the appropriate exception is the solution to a lack of connectivity experienced by an application. Windows XP provides several tools to gather information for troubleshooting Windows Firewall issues.
Related Links
See the following resources for further information:
Manually Configuring Windows Firewall in Windows XP Service Pack 2 at https://www.microsoft.com/technet/community/columns/cableguy/cg0204.mspx
Deploying Windows Firewall Settings for Microsoft Windows XP with Service Pack 2 at https://www.microsoft.com/downloads/details.aspx?FamilyID=4454e0e1-61fa-447a-bdcd-499f73a637d1&DisplayLang=en
Windows XP Service Pack 2: Resources for IT Professionals at https://www.microsoft.com/technet/prodtechnol/winxppro/maintain/winxpsp2.mspx
For information about Windows Firewall in the Microsoft Knowledgebase, go to https://support.microsoft.com/default.aspx?scid=fh;EN-US;KBHOWTO and type Windows Firewall in the Search for field.
For the latest information about Windows XP, see the Windows XP Web site at https://www.microsoft.com/windowsxp.