Behavior of and Requirements for Internet Firewalls
Behavioral requirements intended to keep firewalls from breaking legitimate network traffic.
Freed, N., "Behavior of and Requirements for Internet Firewalls", RFC 2979, DOI 10.17487/RFC2979, October 2000, <https://www.rfc-editor.org/info/rfc2979>.
@misc{rfc2979,
series = {Request for Comments},
number = 2979,
howpublished = {RFC 2979},
publisher = {RFC Editor},
doi = {10.17487/RFC2979},
url = {https://www.rfc-editor.org/info/rfc2979},
author = {N. Freed},
title = {{Behavior of and Requirements for Internet Firewalls}},
pagetotal = 7,
year = 2000,
month = oct,
} RFC text
Contents
Network Working Group N. Freed
Request for Comments: 2979 Sun
Category: Informational October 2000
Behavior of and Requirements for
Internet Firewalls
Status of this Memo
This memo provides information for the Internet community. It does
not specify an Internet standard of any kind. Distribution of this
memo is unlimited.
Copyright Notice
Copyright (C) The Internet Society (2000). All Rights Reserved.
Abstract
This memo defines behavioral characteristics of and interoperability
requirements for Internet firewalls. While most of these things may
seem obvious, current firewall behavior is often either unspecified
or underspecified and this lack of specificity often causes problems
in practice. This requirement is intended to be a necessary first
step in making the behavior of firewalls more consistent across
implementations and in line with accepted IP protocol practices.
1. Introduction
The Internet is being used for an increasing number of mission
critical applications. Because of this many sites find isolated
secure intranets insufficient for their needs, even when those
intranets are based on and use Internet protocols. Instead they find
it necessary to provide direct communications paths between the
sometimes hostile Internet and systems or networks which either deal
with valuable data, provide vital services, or both.
The security concerns that inevitably arise from such setups are
often dealt with by inserting one or more "firewalls" on the path
between the Internet and the internal network. A "firewall" is an
agent which screens network traffic in some way, blocking traffic it
believes to be inappropriate, dangerous, or both.
Note that firewall functions are disjoint from network address
translation (NAT) functions -- neither implies the other, although
sometimes both are provided by the same device. This document only
discusses firewall functions.
1.1. Requirements notation
This document occasionally uses terms that appear in capital letters.
When the terms "MUST", "SHOULD", "MUST NOT", "SHOULD NOT", and "MAY"
appear capitalized, they are being used to indicate particular
requirements of this specification. A discussion of the meanings of
these terms appears in RFC 2119 [2].
2. Characteristics
Firewalls either act as a protocol end point and relay (e.g., a SMTP
client/server or a Web proxy agent), as a packet filter, or some
combination of both.
When a firewall acts a protocol end point it may
(1) implement a "safe" subset of the protocol,
(2) perform extensive protocol validity checks,
(3) use an implementation methodology designed to minimize
the likelihood of bugs,
(4) run in an insulated, "safe" environment, or
(5) use some combination of these techniques in tandem.
Firewalls acting as packet filters aren't visible as protocol end
points. The firewall examines each packet and then
(1) passes the packet through to the other side unchanged,
(2) drops the packet entirely, or
(3) handles the packet itself in some way.
Firewalls typically base some of their decisions on IP source and
destination addresses and port numbers. For example, firewalls may
(1) block packets from the Internet side that claim a source
address of a system on the internal network,
(2) block TELNET or RLOGIN connections from the Internet to the
internal network,
(3) block SMTP and FTP connections to the Internet from internal
systems not authorized to send email or move files,
(4) act as an intermediate server in handling SMTP and HTTP
connections in either direction, or
(5) require the use of an access negotiation and encapsulation
protocol such as SOCKS [1] to gain access to the Internet, to
the internal network, or both.
(This list of decision criteria is only intended to illustrate the
sorts of factors firewalls often consider; it is by no means
exhaustive, nor are all firewall products able to perform all the
operations on this list.)
3. Firewall Requirements
Applications have to continue to work properly in the presence of
firewalls. This translates into the following transparency rule:
The introduction of a firewall and any associated tunneling or
access negotiation facilities MUST NOT cause unintended failures
of legitimate and standards-compliant usage that would work were
the firewall not present.
A necessary corollary to this requirement is that when such failures
do occur it is incumbent on the firewall and associated software to
address the problem: Changes to either implementations of existing
standard protocols or the protocols themselves MUST NOT be necessary.
Note that this requirement only applies to legitimate protocol usage
and gratuitous failures -- a firewall is entitled to block any sort
of access that a site deems illegitimate, regardless of whether or
not the attempted access is standards-compliant. This is, after all,
the primary reason to have a firewall in the first place.
Also note that it is perfectly permissible for a firewall to provide
additional facilities applications can use to authenticate or
authorize various sorts of connections, and for the firewall to be
configurable to require the use of such facilities. The SOCKS
protocol [1] is one example of such a facility. However, the
firewall MUST also allow configurations where such facilities are not
required for traversal.
3.1. Examples
The following sections provide some examples of how the transparency
rule actually applies to some specific protocols.
3.1.1. Path MTU Discovery and ICMP
ICMP messages are commonly blocked at firewalls because of a
perception that they are a source of security vulnerabilities. This
often creates "black holes" for Path MTU Discovery [3], causing
legitimate application traffic to be delayed or completely blocked
when talking to systems connected via links with small MTUs.
By the transparency rule, a packet-filtering router acting as a
firewall which permits outgoing IP packets with the Don't Fragment
(DF) bit set MUST NOT block incoming ICMP Destination Unreachable /
Fragmentation Needed errors sent in response to the outbound packets
from reaching hosts inside the firewall, as this would break the
standards-compliant usage of Path MTU discovery by hosts generating
legitimate traffic.
On the other hand, it's proper (albeit unfriendly) to block ICMP Echo
and Echo Reply messages, since these form a different use of the
network, or to block ICMP Redirect messages entirely, or to block
ICMP DU/FN messages which were not sent in response to legitimate
outbound traffic.
3.1.2. SMTP Extensions
The original SMTP protocol [4] didn't provide a mechanism for
negotiating protocol extensions. When this was added [5], some
firewall implementations reacted by simply adding the EHLO command to
the list of accepted commands. Unfortunately, this is not
sufficient: What is necessary is for the firewall to scan the list of
EHLO responses and only allow the ones the firewalls understands
through. If this isn't done the client and server can end up
agreeing to use an extension the firewalls doesn't understand, which
can then lead to unnecessary protocol failures.
4. Application Requirements
Firewalls are a fact of life that application protocols must face.
As such, application protocols SHOULD be designed to facilitate
operation across firewalls, as long as such design choices don't
adversely impact the application in other ways. In addition,
application protocol specifications MAY include material defining
requirements firewalls must meet to properly handle a given
application protocol.
Examples of proper and improper application protocol design include:
(1) Wrapping a new protocol around HTTP and using port 80 because
it is likely to be open isn't a good idea, since it will
eventually result in added complexity in firewall handling of
port 80.
(2) Defining a secure subset of a protocol is a good idea since it
simplifies the firewall design process.
(3) Specificating an appropriate firewall traversal mechanism if
one exists is a good idea.
(4) Registering a separate port for new protocols is a good idea.
5. Security Considerations
Good security may occasionally result in interoperability failures
between components. This is understood. However, this doesn't mean
that gratuitous interoperability failures caused by security
components are acceptable.
The transparency rule impacts security to the extent that it
precludes certain simpleminded firewall implementation techniques.
Firewall implementors must therefore work a little harder to achieve
a given level of security. However, the transparency rule in no way
prevents an implementor from achieving whatever level of security is
necessary. Moreover, a little more work up front results in better
security in the long run. Techniques that do not interfere with
existing services will almost certainly be more widely deployed than
ones that do interfere and prevent people from performing useful
work.
Some firewall implementors may claim that the burden of total
transparency is overly onerous and that adequate security cannot be
achieved in the face of such a requirement. And there is no question
that meeting the transparency requirement is more difficult than not
doing so.
Nevertheless, it is important to remember that the only perfectly
secure network is one that doesn't allow any data through at all and
that the only problem with such a network is that it is unusable.
Anything less is necessarily a tradeoff between usability and
security. At present firewalls are being circumvented in ad hoc ways
because they don't meet this transparency requirement and this
necessarily weakens security dramatically. In other words, the only
reason that some firewalls remain in use is because they have
essentially been disabled. As such, one reason to have a
transparency requirement is to IMPROVE security.
6. Acknowlegements
Bill Sommerfeld provided the text for the Path MTU Discovery example.
This document has benefited from discussions with a number of people,
including but not limited to: Brian Carpenter, Leslie Daigle, John
Klensin, Elliot Lear, and Keith Moore.
7. References
[1] Leech, M., Ganis, M., Lee, Y., Kuris, R., Koblas, D. and L.
Jones, "SOCKS Protocol Version 5", RFC 1928, April, 1996.
[2] Bradner, S., "Key Words for Use in RFCs to Indicate Requirement
Levels", BCP 14, RFC 2119, March 1997.
[3] Mogul, J. and S. Deering, "Path MTU discovery", RFC 1191,
November 1990.
[4] Postel, J., "Simple Mail Transfer Protocol", STD 10, RFC 821,
August 1982.
[5] Klensin, J., Freed, N., Rose, M., Stefferud, E. and D. Crocker,
"SMTP Service Extensions", STD 10, RFC 1869, November 1995.
8. Author's Address
Ned Freed
Sun Microsystems
1050 Lakes Drive
West Covina, CA 91790
USA
Phone: +1 626 919 3600
Fax: +1 626 919 3614
EMail: ned.freed@innosoft.com
9. Full Copyright Statement
Copyright (C) The Internet Society (2000). All Rights Reserved.
This document and translations of it may be copied and furnished to
others, and derivative works that comment on or otherwise explain it
or assist in its implementation may be prepared, copied, published
and distributed, in whole or in part, without restriction of any
kind, provided that the above copyright notice and this paragraph are
included on all such copies and derivative works. However, this
document itself may not be modified in any way, such as by removing
the copyright notice or references to the Internet Society or other
Internet organizations, except as needed for the purpose of
developing Internet standards in which case the procedures for
copyrights defined in the Internet Standards process must be
followed, or as required to translate it into languages other than
English.
The limited permissions granted above are perpetual and will not be
revoked by the Internet Society or its successors or assigns.
This document and the information contained herein is provided on an
"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Acknowledgement
Funding for the RFC Editor function is currently provided by the
Internet Society.
ISO Plain Language
On this page
§1What a Firewall Does
A firewall screens network traffic and may block traffic it considers inappropriate or dangerous. It can act as a protocol endpoint and relay, as a packet filter, or use both approaches.
Firewall functions are separate from Network Address Translation (NAT), though one device can provide both. RFC 2979 addresses firewall behavior because inconsistent or underspecified behavior can cause practical interoperability problems.
A firewall decides which network traffic can pass. It may inspect packets directly or take part in a protocol as a server or relay.
§3The Transparency Rule
The memo says that adding a firewall or related tunneling and access-negotiation facilities MUST NOT cause unintended failures of legitimate, standards-compliant use that would work without the firewall. If such failures occur, the firewall and its associated software must address them.
The rule does not require a site to allow every connection. A site may block access it considers illegitimate. A firewall may also offer authentication or authorization facilities, but it MUST allow configurations that do not require those facilities for traversal.
A firewall may block access a site rejects. But when it permits a legitimate protocol use, it should not break that use by mishandling the traffic.
§3.1ICMP and SMTP Examples
Path MTU Discovery depends on ICMP Fragmentation Needed errors. If a packet-filtering firewall allows outgoing packets with the Don't Fragment bit set, it MUST allow the corresponding incoming errors to reach the inside host.
For SMTP extension negotiation, a firewall acting as an endpoint cannot simply allow the EHLO command. It must also inspect the server's response and pass through only extensions it understands, or the client and server may agree to use an extension that the firewall cannot handle.
Letting an SMTP request through is not enough if the firewall mishandles the answer. Likewise, a firewall that allows a large packet must not block the ICMP message needed to adjust its size.
§4Advice for Application Designers
Application protocols SHOULD make firewall operation easier when this does not harm the application in other ways. Specifications MAY state what firewalls need to do to handle a protocol correctly.
The memo discourages wrapping a new protocol in HTTP and using port 80 just because it is likely to be open. It recommends a secure subset, an appropriate traversal mechanism where one exists, and a separate registered port for a new protocol.
Design applications so firewalls can handle them clearly. Do not disguise a new protocol as HTTP just to get through a firewall.
§5Security and Interoperability
The memo recognizes that security measures can sometimes cause interoperability failures. It rejects gratuitous failures, arguing that users may otherwise disable or work around firewalls in ways that weaken security.
The transparency rule does not set a site's security policy; it concerns how the firewall handles permitted, legitimate traffic. The memo's aim is to make firewall behavior more consistent with accepted IP protocol practices.
A firewall that breaks useful traffic may lead people to disable it or bypass it. Clear behavior can support both interoperability and security.