draft-ietf-v6ops-icmpv6-filtering-recs-03.txt | rfc4890.txt | |||
---|---|---|---|---|
IPv6 Operations E. Davies | Network Working Group E. Davies | |||
Internet-Draft Consultant | Request for Comments: 4890 Consultant | |||
Intended status: Informational J. Mohacsi | Category: Informational J. Mohacsi | |||
Expires: August 17, 2007 NIIF/HUNGARNET | NIIF/HUNGARNET | |||
February 13, 2007 | ||||
Recommendations for Filtering ICMPv6 Messages in Firewalls | Recommendations for Filtering ICMPv6 Messages in Firewalls | |||
draft-ietf-v6ops-icmpv6-filtering-recs-03.txt | ||||
Status of this Memo | ||||
By submitting this Internet-Draft, each author represents that any | Status of This Memo | |||
applicable patent or other IPR claims of which he or she is aware | ||||
have been or will be disclosed, and any of which he or she becomes | ||||
aware will be disclosed, in accordance with Section 6 of BCP 79. | ||||
Internet-Drafts are working documents of the Internet Engineering | ||||
Task Force (IETF), its areas, and its working groups. Note that | ||||
other groups may also distribute working documents as Internet- | ||||
Drafts. | ||||
Internet-Drafts are draft documents valid for a maximum of six months | ||||
and may be updated, replaced, or obsoleted by other documents at any | ||||
time. It is inappropriate to use Internet-Drafts as reference | ||||
material or to cite them other than as "work in progress." | ||||
The list of current Internet-Drafts can be accessed at | ||||
http://www.ietf.org/ietf/1id-abstracts.txt. | ||||
The list of Internet-Draft Shadow Directories can be accessed at | ||||
http://www.ietf.org/shadow.html. | ||||
This Internet-Draft will expire on August 17, 2007. | 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 Notice | |||
Copyright (C) The IETF Trust (2007). | Copyright (C) The IETF Trust (2007). | |||
Abstract | Abstract | |||
In networks supporting IPv6 the Internet Control Message Protocol | In networks supporting IPv6, the Internet Control Message Protocol | |||
version 6 (ICMPv6) plays a fundamental role with a large number of | version 6 (ICMPv6) plays a fundamental role with a large number of | |||
functions, and a correspondingly large number of message types and | functions, and a correspondingly large number of message types and | |||
options. ICMPv6 is essential to the functioning of IPv6 but there | options. ICMPv6 is essential to the functioning of IPv6, but there | |||
are a number of security risks associated with uncontrolled | are a number of security risks associated with uncontrolled | |||
forwarding of ICMPv6 messages. Filtering strategies designed for the | forwarding of ICMPv6 messages. Filtering strategies designed for the | |||
corresponding protocol, ICMP, in IPv4 networks are not directly | corresponding protocol, ICMP, in IPv4 networks are not directly | |||
applicable, because these strategies are intended to accommodate a | applicable, because these strategies are intended to accommodate a | |||
useful auxiliary protocol that may not be required for correct | useful auxiliary protocol that may not be required for correct | |||
functioning. | functioning. | |||
This document provides some recommendations for ICMPv6 firewall | This document provides some recommendations for ICMPv6 firewall | |||
filter configuration that will allow propagation of ICMPv6 messages | filter configuration that will allow propagation of ICMPv6 messages | |||
that are needed to maintain the functioning of the network but drop | that are needed to maintain the functioning of the network but drop | |||
messages which are potential security risks. | messages that are potential security risks. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
2. Classifying ICMPv6 Messages . . . . . . . . . . . . . . . . . 6 | 2. Classifying ICMPv6 Messages . . . . . . . . . . . . . . . . . 6 | |||
2.1. Error and Informational ICMPv6 Messages . . . . . . . . . 6 | 2.1. Error and Informational ICMPv6 Messages . . . . . . . . . 6 | |||
2.2. Addressing of ICMPv6 . . . . . . . . . . . . . . . . . . . 7 | 2.2. Addressing of ICMPv6 . . . . . . . . . . . . . . . . . . . 6 | |||
2.3. Network Topology and Address Scopes . . . . . . . . . . . 7 | 2.3. Network Topology and Address Scopes . . . . . . . . . . . 7 | |||
2.4. Role in Establishing and Maintaining Communication . . . . 8 | 2.4. Role in Establishing and Maintaining Communication . . . . 7 | |||
3. Security Considerations . . . . . . . . . . . . . . . . . . . 8 | 3. Security Considerations . . . . . . . . . . . . . . . . . . . 8 | |||
3.1. Denial of Service Attacks . . . . . . . . . . . . . . . . 9 | 3.1. Denial-of-Service Attacks . . . . . . . . . . . . . . . . 9 | |||
3.2. Probing . . . . . . . . . . . . . . . . . . . . . . . . . 9 | 3.2. Probing . . . . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
3.3. Redirection Attacks . . . . . . . . . . . . . . . . . . . 10 | 3.3. Redirection Attacks . . . . . . . . . . . . . . . . . . . . 9 | |||
3.4. Renumbering Attacks . . . . . . . . . . . . . . . . . . . 10 | 3.4. Renumbering Attacks . . . . . . . . . . . . . . . . . . . 10 | |||
3.5. Problems Resulting from ICMPv6 Transparency . . . . . . . 10 | 3.5. Problems Resulting from ICMPv6 Transparency . . . . . . . 10 | |||
4. Filtering Recommendations . . . . . . . . . . . . . . . . . . 10 | 4. Filtering Recommendations . . . . . . . . . . . . . . . . . . 10 | |||
4.1. Common Considerations . . . . . . . . . . . . . . . . . . 11 | 4.1. Common Considerations . . . . . . . . . . . . . . . . . . 11 | |||
4.2. Interaction of Link Local Messages with | 4.2. Interaction of Link-Local Messages with | |||
Firewall/Routers and Firewall/Bridges . . . . . . . . . . 12 | Firewall/Routers and Firewall/Bridges . . . . . . . . . . 12 | |||
4.3. Recommendations for ICMPv6 Transit Traffic . . . . . . . . 13 | 4.3. Recommendations for ICMPv6 Transit Traffic . . . . . . . . 13 | |||
4.3.1. Traffic that Must Not be Dropped . . . . . . . . . . . 13 | 4.3.1. Traffic That Must Not Be Dropped . . . . . . . . . . . 14 | |||
4.3.2. Traffic that Normally Should Not be Dropped . . . . . 14 | 4.3.2. Traffic That Normally Should Not Be Dropped . . . . . 14 | |||
4.3.3. Traffic that will be Dropped Anyway - No Special | 4.3.3. Traffic That Will Be Dropped Anyway -- No Special | |||
Attention Needed . . . . . . . . . . . . . . . . . . . 14 | Attention Needed . . . . . . . . . . . . . . . . . . . 15 | |||
4.3.4. Traffic for which a Policy Should be Defined . . . . . 15 | 4.3.4. Traffic for Which a Policy Should Be Defined . . . . . 16 | |||
4.3.5. Traffic which Should be Dropped Unless a Good Case | 4.3.5. Traffic That Should Be Dropped Unless a Good Case | |||
can be Made . . . . . . . . . . . . . . . . . . . . . 16 | Can Be Made . . . . . . . . . . . . . . . . . . . . . 17 | |||
4.4. Recommendations for ICMPv6 Local Configuration Traffic . . 17 | 4.4. Recommendations for ICMPv6 Local Configuration Traffic . . 18 | |||
4.4.1. Traffic that Must Not be Dropped . . . . . . . . . . . 17 | 4.4.1. Traffic That Must Not Be Dropped . . . . . . . . . . . 18 | |||
4.4.2. Traffic that Normally Should Not be Dropped . . . . . 18 | 4.4.2. Traffic That Normally Should Not Be Dropped . . . . . 19 | |||
4.4.3. Traffic that will be Dropped Anyway - No Special | 4.4.3. Traffic That Will Be Dropped Anyway -- No Special | |||
Attention Needed . . . . . . . . . . . . . . . . . . . 18 | Attention Needed . . . . . . . . . . . . . . . . . . . 19 | |||
4.4.4. Traffic for which a Policy Should be Defined . . . . . 19 | 4.4.4. Traffic for Which a Policy Should Be Defined . . . . . 20 | |||
4.4.5. Traffic which Should be Dropped Unless a Good Case | 4.4.5. Traffic That Should Be Dropped Unless a Good Case | |||
can be Made . . . . . . . . . . . . . . . . . . . . . 19 | Can Be Made . . . . . . . . . . . . . . . . . . . . . 21 | |||
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 20 | 5. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 21 | |||
6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 20 | 6. References . . . . . . . . . . . . . . . . . . . . . . . . . . 21 | |||
7. References . . . . . . . . . . . . . . . . . . . . . . . . . . 20 | 6.1. Normative References . . . . . . . . . . . . . . . . . . . 21 | |||
7.1. Normative References . . . . . . . . . . . . . . . . . . . 20 | 6.2. Informative References . . . . . . . . . . . . . . . . . . 22 | |||
7.2. Informative References . . . . . . . . . . . . . . . . . . 21 | Appendix A. Notes on Individual ICMPv6 Messages . . . . . . . . . 24 | |||
Appendix A. Notes on Individual ICMPv6 Messages . . . . . . . . . 22 | A.1. Destination Unreachable Error Message . . . . . . . . . . 24 | |||
A.1. Destination Unreachable Error Message . . . . . . . . . . 22 | A.2. Packet Too Big Error Message . . . . . . . . . . . . . . . 24 | |||
A.2. Packet Too Big Error Message . . . . . . . . . . . . . . . 22 | A.3. Time Exceeded Error Message . . . . . . . . . . . . . . . 25 | |||
A.3. Time Exceeded Error Message . . . . . . . . . . . . . . . 23 | A.4. Parameter Problem Error Message . . . . . . . . . . . . . 25 | |||
A.4. Parameter Problem Error Message . . . . . . . . . . . . . 23 | A.5. ICMPv6 Echo Request and Echo Response . . . . . . . . . . 26 | |||
A.5. ICMPv6 Echo Request and Echo Response . . . . . . . . . . 24 | ||||
A.6. Neighbor Solicitation and Neighbor Advertisement | A.6. Neighbor Solicitation and Neighbor Advertisement | |||
Messages . . . . . . . . . . . . . . . . . . . . . . . . . 24 | Messages . . . . . . . . . . . . . . . . . . . . . . . . . 26 | |||
A.7. Router Solicitation and Router Advertisement Messages . . 25 | A.7. Router Solicitation and Router Advertisement Messages . . 27 | |||
A.8. Redirect Messages . . . . . . . . . . . . . . . . . . . . 25 | A.8. Redirect Messages . . . . . . . . . . . . . . . . . . . . 27 | |||
A.9. SEND Certificate Path Messages . . . . . . . . . . . . . . 25 | A.9. SEND Certificate Path Messages . . . . . . . . . . . . . . 27 | |||
A.10. Multicast Listener Discovery Messages . . . . . . . . . . 25 | A.10. Multicast Listener Discovery Messages . . . . . . . . . . 27 | |||
A.11. Multicast Router Discovery Messages . . . . . . . . . . . 26 | A.11. Multicast Router Discovery Messages . . . . . . . . . . . 28 | |||
A.12. Router Renumbering Messages . . . . . . . . . . . . . . . 26 | A.12. Router Renumbering Messages . . . . . . . . . . . . . . . 28 | |||
A.13. Node Information Query and Reply . . . . . . . . . . . . . 26 | A.13. Node Information Query and Reply . . . . . . . . . . . . . 28 | |||
A.14. Mobile IPv6 Messages . . . . . . . . . . . . . . . . . . . 26 | A.14. Mobile IPv6 Messages . . . . . . . . . . . . . . . . . . . 28 | |||
A.15. Unused and Experimental Messages . . . . . . . . . . . . . 27 | A.15. Unused and Experimental Messages . . . . . . . . . . . . . 29 | |||
Appendix B. Example Script to Configure ICMPv6 Firewall Rules . . 28 | Appendix B. Example Script to Configure ICMPv6 Firewall Rules . . 30 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 35 | ||||
Intellectual Property and Copyright Statements . . . . . . . . . . 36 | ||||
1. Introduction | 1. Introduction | |||
When a network supports IPv6 [RFC2460], the Internet Control Message | When a network supports IPv6 [RFC2460], the Internet Control Message | |||
Protocol version 6 (ICMPv6) [RFC4443] plays a fundamental role | Protocol version 6 (ICMPv6) [RFC4443] plays a fundamental role | |||
including being an essential component in establishing and | including being an essential component in establishing and | |||
maintaining communications both at the interface level and for | maintaining communications both at the interface level and for | |||
sessions to remote nodes. This means that overly aggressive | sessions to remote nodes. This means that overly aggressive | |||
filtering of ICMPv6 by firewalls may have a detrimental effect on the | filtering of ICMPv6 by firewalls may have a detrimental effect on the | |||
establishment and maintenance of IPv6 communications. On the other | establishment and maintenance of IPv6 communications. On the other | |||
hand, allowing indiscriminate passage of all ICMPv6 messages can be a | hand, allowing indiscriminate passage of all ICMPv6 messages can be a | |||
major security risk. This document recommends a set of rules which | major security risk. This document recommends a set of rules that | |||
seek to balance effective IPv6 communication against the needs of | seek to balance effective IPv6 communication against the needs of | |||
site security. | site security. | |||
In a few cases the appropriate rules will depend on whether the | In a few cases, the appropriate rules will depend on whether the | |||
firewall is protecting | firewall is protecting | |||
o an individual host, | o an individual host, | |||
o an end site where all ICMPv6 messages originate or terminate | o an end site where all ICMPv6 messages originate or terminate | |||
within the site, or | within the site, or | |||
o a transit site such as an Internet Service Provider's site where | o a transit site such as an Internet Service Provider's site where | |||
some ICMPv6 messages will be passing through. | some ICMPv6 messages will be passing through. | |||
The document suggests alternative rules appropriate to each situation | The document suggests alternative rules appropriate to each situation | |||
where it is relevant. It also notes some situations where | where it is relevant. It also notes some situations where | |||
alternative rules could be adopted according to the nature of the | alternative rules could be adopted according to the nature of the | |||
work being carried out on the site and consequent security policies. | work being carried out on the site and consequent security policies. | |||
In general Internet Service Providers should not filter ICMPv6 | In general, Internet Service Providers should not filter ICMPv6 | |||
messages transiting their sites so that all the necessary | messages transiting their sites so that all the necessary | |||
communication elements are available to their customers to decide and | communication elements are available to their customers to decide and | |||
filter according to their policy. | filter according to their policy. | |||
Readers familiar with ICMPv6 can skip to the recommended filtering | Readers familiar with ICMPv6 can skip to the recommended filtering | |||
rules in Section 4 and an example configuration script for Linux | rules in Section 4 and an example configuration script for Linux | |||
netfilter in Appendix B. | Netfilter in Appendix B. | |||
ICMPv6 has a large number of functions defined in a number of sub- | ICMPv6 has a large number of functions defined in a number of sub- | |||
protocols, and there are a correspondingly large number of messages | protocols, and there are a correspondingly large number of messages | |||
and options within these messages. The functions currently defined | and options within these messages. The functions currently defined | |||
fall into a number of categories: | fall into a number of categories: | |||
Returning Error Messages | Returning Error Messages | |||
* Returning error messages to the source if a packet could not | * Returning error messages to the source if a packet could not | |||
be delivered. Four different error messages, each with a | be delivered. Four different error messages, each with a | |||
number of sub-types are specified in [RFC4443]. | number of sub-types, are specified in [RFC4443]. | |||
Connection Checking | Connection Checking | |||
* Simple monitoring of connectivity through echo requests and | * Simple monitoring of connectivity through echo requests and | |||
responses used by the ping and traceroute utilities. The | responses used by the ping and traceroute utilities. The | |||
Echo Request and Echo Response messages are specified in | Echo Request and Echo Response messages are specified in | |||
[RFC4443]. | [RFC4443]. | |||
Discovery Functions | Discovery Functions | |||
* Finding neighbors (both routers and hosts) connected to the | * Finding neighbors (both routers and hosts) connected to the | |||
same link and determining their IP and link layer addresses. | same link and determining their IP and link layer addresses. | |||
These messages are also used to check the uniqueness of any | These messages are also used to check the uniqueness of any | |||
addresses that an interface proposes to use (Duplicate | addresses that an interface proposes to use (Duplicate | |||
Address Detection - DAD). Four messages - Neighbor | Address Detection - DAD). Four messages -- Neighbor | |||
Solicitation (NS), Neighbor Advertisement (NA), Router | Solicitation (NS), Neighbor Advertisement (NA), Router | |||
Solicitation (RS) and Router Advertisement (RA) - are | Solicitation (RS) and Router Advertisement (RA) -- are | |||
specified in [RFC2461]. | specified in [RFC2461]. | |||
* Ensuring that neighbors remain reachable using the same IP | * Ensuring that neighbors remain reachable using the same IP | |||
and link layer addresses after initial discovery (Neighbor | and link layer addresses after initial discovery (Neighbor | |||
Unreachability Discovery - NUD) and notifying neighbors of | Unreachability Discovery - NUD) and notifying neighbors of | |||
changes to link layer addresses. Uses NS and NA [RFC2461]. | changes to link layer addresses. Uses NS and NA [RFC2461]. | |||
* Finding routers and determining how to obtain IP addresses | * Finding routers and determining how to obtain IP addresses | |||
to join the subnets supported by the routers. Uses RS and | to join the subnets supported by the routers. Uses RS and | |||
RA [RFC2461]. | RA [RFC2461]. | |||
* If stateless auto-configuration of hosts is enabled, | ||||
* If stateless autoconfiguration of hosts is enabled, | ||||
communicating prefixes and other configuration information | communicating prefixes and other configuration information | |||
(including the link Maximum Transfer Unit (MTU) and | (including the link Maximum Transmission Unit (MTU) and | |||
suggested hop limit default) from routers to hosts. Uses RS | suggested hop limit default) from routers to hosts. Uses RS | |||
and RA [RFC2462]. | and RA [RFC2462]. | |||
* Using SEcure Neighbor Discovery (SEND) to authenticate a | ||||
router attached to a link, the Certificate Path Solicitation | * When using SEcure Neighbor Discovery (SEND) to authenticate | |||
and Advertisement messages specified in [RFC3971] are used | a router attached to a link, the Certificate Path | |||
by hosts to retrieve the trust chain between a trust anchor | Solicitation and Advertisement messages specified in | |||
and the router certificate from the router. | [RFC3971] are used by hosts to retrieve the certificates | |||
* Determining the Maximum Transmission Unit (MTU) along a | documenting the trust chain between a trust anchor and the | |||
path. The Packet Too Big error message is essential to this | router from the router. | |||
function [RFC1981]. | ||||
* Determining the MTU along a path. The Packet Too Big error | ||||
message is essential to this function [RFC1981]. | ||||
* Providing a means to discover the IPv6 addresses associated | * Providing a means to discover the IPv6 addresses associated | |||
with the link layer address of an interface (the inverse of | with the link layer address of an interface (the inverse of | |||
Neighbor Discovery, where the link layer address is | Neighbor Discovery, where the link layer address is | |||
discovered given an IPv6 address). Two messages, Inverse | discovered given an IPv6 address). Two messages, Inverse | |||
Neighbor Discovery Solicitation and Advertisement messages | Neighbor Discovery Solicitation and Advertisement messages, | |||
are specified in [RFC3122]. | are specified in [RFC3122]. | |||
* Communicating which multicast groups have listeners on a | * Communicating which multicast groups have listeners on a | |||
link to the multicast capable routers connected to the link. | link to the multicast capable routers connected to the link. | |||
Uses messages Multicast Listener Query, Multicast Listener | Uses messages Multicast Listener Query, Multicast Listener | |||
Report (two versions) and Multicast Listener Done (version 1 | Report (two versions), and Multicast Listener Done (protocol | |||
only) as specified in Multicast Listener Discovery MLDv1 | version 1 only) as specified in Multicast Listener Discovery | |||
[RFC2710] and MLDv2[RFC3810]. | MLDv1 [RFC2710] and MLDv2 [RFC3810]. | |||
* Discovering multicast routers attached to the local link. | * Discovering multicast routers attached to the local link. | |||
Uses messages Multicast Router Advertisement, Multicast | Uses messages Multicast Router Advertisement, Multicast | |||
Router Solicitation and Multicast Router Termination as | Router Solicitation, and Multicast Router Termination as | |||
specified in Multicast Router Discovery [RFC4286]. | specified in Multicast Router Discovery [RFC4286]. | |||
Reconfiguration Functions | Reconfiguration Functions | |||
* Redirecting packets to a more appropriate router on the | * Redirecting packets to a more appropriate router on the | |||
local link for the destination address or pointing out that | local link for the destination address or pointing out that | |||
a destination is actually on the local link even if it is | a destination is actually on the local link even if it is | |||
not obvious from the IP address (where a link supports | not obvious from the IP address (where a link supports | |||
multiple subnets). The Redirect message is specified in | multiple subnets). The Redirect message is specified in | |||
[RFC2461]. | [RFC2461]. | |||
* Supporting renumbering of networks by allowing the prefixes | * Supporting renumbering of networks by allowing the prefixes | |||
advertised by routers to be altered. Uses NS, NA, RS and RA | advertised by routers to be altered. Uses NS, NA, RS and RA | |||
together with the Router Renumbering message specified in | together with the Router Renumbering message specified in | |||
[RFC2894]. | [RFC2894]. | |||
Mobile IPv6 Support | Mobile IPv6 Support | |||
* Providing support for some aspects of Mobile IPv6 especially | * Providing support for some aspects of Mobile IPv6 especially | |||
dealing with the IPv6 Mobile Home Agent functionality | dealing with the IPv6 Mobile Home Agent functionality | |||
provided in routers and needed to support a Mobile node | provided in routers and needed to support a Mobile node | |||
homed on the link. The Home Agent Address Discovery Request | homed on the link. The Home Agent Address Discovery Request | |||
and Reply; and Mobile Prefix Solicitation and Advertisement | and Reply and the Mobile Prefix Solicitation and | |||
messages are specified in [RFC3775] | Advertisement messages are specified in [RFC3775]. | |||
Experimental Extensions | Experimental Extensions | |||
* An experimental extension to ICMPv6 specifies the ICMP Node | * An experimental extension to ICMPv6 specifies the ICMP Node | |||
Information Query and Response messages which can be used to | Information Query and Response messages that can be used to | |||
retrieve some basic information about nodes [RFC4620]. | retrieve some basic information about nodes [RFC4620]. | |||
* The SEAmless IP MOBility (seamoby) working group specified a | ||||
pair of experimental protocols which use an ICMPv6 message | * The SEAmless IP MOBility (SEAMOBY) working group specified a | |||
pair of experimental protocols that use an ICMPv6 message | ||||
specified in [RFC4065] to help in locating an access router | specified in [RFC4065] to help in locating an access router | |||
and moving the attachment point of a mobile node from one | and moving the attachment point of a mobile node from one | |||
access router to another. | access router to another. | |||
Many of these messages should only be used in a link-local context | Many of these messages should only be used in a link-local context | |||
rather than end-to-end, and filters need to be concerned with the | rather than end-to-end, and filters need to be concerned with the | |||
type of addresses in ICMPv6 packets as well as the specific source | type of addresses in ICMPv6 packets as well as the specific source | |||
and destination addresses. | and destination addresses. | |||
Compared with the corresponding IPv4 protocol, ICMP, ICMPv6 cannot be | Compared with the corresponding IPv4 protocol, ICMP, ICMPv6 cannot be | |||
treated as an auxiliary function with packets that can be dropped in | treated as an auxiliary function with packets that can be dropped in | |||
most cases without damaging the functionality of the network. This | most cases without damaging the functionality of the network. This | |||
means that firewall filters for ICMPv6 have to be more carefully | means that firewall filters for ICMPv6 have to be more carefully | |||
configured than was the case for ICMP, where typically a small set of | configured than was the case for ICMP, where typically a small set of | |||
blanket rules could be applied. | blanket rules could be applied. | |||
2. Classifying ICMPv6 Messages | 2. Classifying ICMPv6 Messages | |||
2.1. Error and Informational ICMPv6 Messages | 2.1. Error and Informational ICMPv6 Messages | |||
ICMPv6 messages contain an eight bit Type field interpreted as an | ICMPv6 messages contain an eight-bit Type field interpreted as an | |||
integer between 0 and 255. Messages with Type values less than or | integer between 0 and 255. Messages with Type values less than or | |||
equal to 127 are Error Messages. The remainder are Informational | equal to 127 are Error messages. The remainder are Informational | |||
Messages. In general terms, Error Messages with well-known | messages. In general terms, Error messages with well-known | |||
(standardized) Type values would normally be expected to be allowed | (standardized) Type values would normally be expected to be allowed | |||
to be sent to or pass through firewalls, and may be essential to the | to be sent to or pass through firewalls, and may be essential to the | |||
establishment and maintenance of communications (see Section 2.4) | establishment and maintenance of communications (see Section 2.4) | |||
whereas Informational Messages will generally be the subject of | whereas Informational messages will generally be the subject of | |||
policy rules, and those passing through end site firewalls can, in | policy rules, and those passing through end site firewalls can, in | |||
many but by no means all cases, be dropped without damaging IPv6 | many but by no means all cases, be dropped without damaging IPv6 | |||
communications. | communications. | |||
2.2. Addressing of ICMPv6 | 2.2. Addressing of ICMPv6 | |||
ICMPv6 messages are sent using various kinds of source and | ICMPv6 messages are sent using various kinds of source and | |||
destination address types. The source address is usually a unicast | destination address types and scopes. The source address is usually | |||
address, but during address autoconfiguration message exchanges, the | a unicast address, but during address autoconfiguration message | |||
unspecified address :: is also used as a source address [RFC2462]. | exchanges, the unspecified address (::) is also used as a source | |||
address [RFC2462]. | ||||
Multicast Listener Discovery (MLD) Report and Done messages are sent | Multicast Listener Discovery (MLD) Report and Done messages are sent | |||
with a link-local address as the IPv6 source address, if a valid | with a link-local address as the IPv6 source address, if a valid | |||
address is available on the interface. If a valid link-local address | address is available on the interface. If a valid link-local address | |||
is not available (e.g., one has not been configured), the message is | is not available (e.g., one has not been configured), the message is | |||
sent with the unspecified address (::) as the IPv6 source address. | sent with the unspecified address (::) as the IPv6 source address. | |||
Subsequently the node will generate new MLD Report messages with | Subsequently, the node will generate new MLD Report messages with | |||
proper link-local source address once it has been configured | proper link-local source address once it has been configured | |||
[RFC3590]. | [RFC3590]. | |||
The destination address can be either a well-known multicast address, | The destination address can be either a well-known multicast address, | |||
a generated multicast address such as the solicited-node multicast | a generated multicast address such as the solicited-node multicast | |||
address, an anycast address or a unicast address. While many ICMPv6 | address, an anycast address, or a unicast address. While many ICMPv6 | |||
messages use multicast addresses most of the time, some also use | messages use multicast addresses most of the time, some also use | |||
unicast addresses. For instance, the Router Advertisement messages | unicast addresses. For instance, the Router Advertisement messages | |||
are sent to the all-nodes multicast address when unsolicited, but can | are sent to the all-nodes multicast address when unsolicited, but can | |||
also be sent to a unicast address in response to a specific Router | also be sent to a unicast address in response to a specific Router | |||
Solicitation, although this is rarely seen in current | Solicitation, although this is rarely seen in current | |||
implementations. | implementations. | |||
2.3. Network Topology and Address Scopes | 2.3. Network Topology and Address Scopes | |||
ICMPv6 messages can be classified according to whether they are meant | ICMPv6 messages can be classified according to whether they are meant | |||
for end-to-end communications or communications within a link. There | for end-to-end communications or local communications within a link. | |||
are also messages that we can classify as 'any-to-end', which can be | There are also messages that we can classify as 'any-to-end', which | |||
sent from any point within a path back to the source; typically these | can be sent from any point within a path back to the source; | |||
are used to announce an error in processing the original packet. For | typically, these are used to announce an error in processing the | |||
instance, the address resolution messages are solely for local | original packet. For instance, the address resolution messages are | |||
communications [RFC2461], whereas the Destination Unreachable | solely for local communications [RFC2461], whereas the Destination | |||
messages are any-to-end in nature. Generally end-to-end and any-to- | Unreachable messages are any-to-end in nature. Generally, end-to-end | |||
end messages might be expected to pass through firewalls depending on | and any-to-end messages might be expected to pass through firewalls | |||
policies but local communications must not. | depending on policies but local communications must not. | |||
Local communications will use link-local addresses in many cases but | Local communications will use link-local addresses in many cases but | |||
may also use global unicast addresses when configuring global | may also use global unicast addresses when configuring global | |||
addresses, for example. Also some ICMPv6 messages used in local | addresses, for example. Also, some ICMPv6 messages used in local | |||
communications may contravene the usual rules requiring compatible | communications may contravene the usual rules requiring compatible | |||
scopes for source and destination addresses. | scopes for source and destination addresses. | |||
2.4. Role in Establishing and Maintaining Communication | 2.4. Role in Establishing and Maintaining Communication | |||
Many ICMPv6 messages have a role in establishing or maintaining | Many ICMPv6 messages have a role in establishing or maintaining | |||
communications to and from the firewall and such messages have to be | communications to and from the firewall and such messages have to be | |||
accepted by firewalls for local delivery. Generally a firewall will | accepted by firewalls for local delivery. Generally, a firewall will | |||
also be acting as a router so that all the messages that might be | also be acting as a router so that all the messages that might be | |||
used in configuring a router interface need to be accepted and | used in configuring a router interface need to be accepted and | |||
generated. These messages should not transit through a firewall that | generated. These messages should not transit through a firewall that | |||
is also acting as a router as they are normally intended for use | is also acting as a router as they are normally intended for use | |||
within a link. | within a link. | |||
On the other hand, most ICMPv6 error messages traveling end-to-end or | On the other hand, most ICMPv6 error messages traveling end-to-end or | |||
any-to-end are essential to the establishment and maintenance of | any-to-end are essential to the establishment and maintenance of | |||
communications. These messages must be passed through firewalls and | communications. These messages must be passed through firewalls and | |||
might also be sent to and from firewalls to assist with establishment | might also be sent to and from firewalls to assist with establishment | |||
and maintenance of communications. For example the Packet Too Big | and maintenance of communications. For example, the Packet Too Big | |||
error message is needed to determine the MTU along a path both when a | error message is needed to determine the MTU along a path both when a | |||
communication session is established initially and later if the path | communication session is established initially and later if the path | |||
is rerouted during the session. | is rerouted during the session. | |||
The remaining ICMPv6 messages which are not associated with | The remaining ICMPv6 messages that are not associated with | |||
communication establishment or maintenance will normally be | communication establishment or maintenance will normally be | |||
legitimately attempting to pass through a firewall from inside to out | legitimately attempting to pass through a firewall from inside to out | |||
or vice versa, but in most cases decisions as to whether to allow | or vice versa, but in most cases decisions as to whether or not to | |||
them to pass or not can be made on the basis of local policy without | allow them to pass can be made on the basis of local policy without | |||
interfering with IPv6 communications. | interfering with IPv6 communications. | |||
The filtering rules for the various message roles will generally be | The filtering rules for the various message roles will generally be | |||
different. | different. | |||
3. Security Considerations | 3. Security Considerations | |||
This memo recommends filtering configurations for firewalls designed | This memo recommends filtering configurations for firewalls designed | |||
to minimize the security vulnerabilities that can arise in using the | to minimize the security vulnerabilities that can arise in using the | |||
many different sub-protocols of ICMPv6 in support of IPv6 | many different sub-protocols of ICMPv6 in support of IPv6 | |||
communication. | communication. | |||
A major concern is that it is generally not possible to use IPsec or | A major concern is that it is generally not possible to use IPsec or | |||
other means to authenticate the sender and validate the contents of | other means to authenticate the sender and validate the contents of | |||
many ICMPv6 messages. To a large extent this is because a site can | many ICMPv6 messages. To a large extent, this is because a site can | |||
legitimately expect to receive certain error and other messages from | legitimately expect to receive certain error and other messages from | |||
almost any location in the wider Internet, and these messages may | almost any location in the wider Internet, and these messages may | |||
occur as a result of the first message sent to a destination. | occur as a result of the first message sent to a destination. | |||
Establishing security associations with all possible sources of | Establishing security associations with all possible sources of | |||
ICMPv6 messages is therefore impossible. | ICMPv6 messages is therefore impossible. | |||
The inability to establish security associations to protect some | The inability to establish security associations to protect some | |||
messages that are needed to establish and maintain communications | messages that are needed to establish and maintain communications | |||
means that alternative means have to used to reduce the vulnerability | means that alternative means have to be used to reduce the | |||
of sites to ICMPv6 based attacks. The most common way of doing this | vulnerability of sites to ICMPv6-based attacks. The most common way | |||
is to establish strict filtering policies in site firewalls to limit | of doing this is to establish strict filtering policies in site | |||
the unauthenticated ICMPv6 messages that can pass between the site | firewalls to limit the unauthenticated ICMPv6 messages that can pass | |||
and the wider Internet. This makes control of ICMPv6 filtering a | between the site and the wider Internet. This makes control of | |||
delicate balance between protecting the site by dropping some of the | ICMPv6 filtering a delicate balance between protecting the site by | |||
ICMPv6 traffic passing through the firewall and allowing enough of | dropping some of the ICMPv6 traffic passing through the firewall and | |||
the traffic through to make sure that efficient communication can be | allowing enough of the traffic through to make sure that efficient | |||
established. | communication can be established. | |||
SEND [RFC3971] has been specified as a means to improve the security | SEND [RFC3971] has been specified as a means to improve the security | |||
of local ICMPv6 communications. SEND sidesteps security association | of local ICMPv6 communications. SEND sidesteps security association | |||
bootstrapping problems that would result if IPsec was used. SEND | bootstrapping problems that would result if IPsec was used. SEND | |||
affects only link local messages and does not limit the filtering | affects only link-local messages and does not limit the filtering | |||
which firewalls can apply and its role in security is therefore not | that firewalls can apply, and its role in security is therefore not | |||
discussed further in this document. | discussed further in this document. | |||
Firewalls will normally be used to monitor ICMPv6 to control the | Firewalls will normally be used to monitor ICMPv6 to control the | |||
following security concerns: | following security concerns: | |||
3.1. Denial of Service Attacks | 3.1. Denial-of-Service Attacks | |||
ICMPv6 can be used to cause a Denial of Service(DoS) in a number of | ICMPv6 can be used to cause a denial of service (DoS) in a number of | |||
ways, including simply sending excessive numbers of ICMPv6 packets to | ways, including simply sending excessive numbers of ICMPv6 packets to | |||
destinations in the site and sending error messages which disrupt | destinations in the site and sending error messages that disrupt | |||
established communications by causing sessions to be dropped. Also | established communications by causing sessions to be dropped. Also, | |||
if spurious communication establishment or maintenance messages can | if spurious communication establishment or maintenance messages can | |||
be infiltrated on to a link it might be possible to invalidate | be infiltrated onto a link, it might be possible to invalidate | |||
legitimate addresses or disable interfaces. | legitimate addresses or disable interfaces. | |||
3.2. Probing | 3.2. Probing | |||
A major security consideration is preventing attackers probing the | A major security consideration is preventing attackers from probing | |||
site to determine the topology and identify hosts that might be | the site to determine the topology and identify hosts that might be | |||
vulnerable to attack. Carefully crafted but, often, malformed | vulnerable to attack. Carefully crafted but, often, malformed | |||
messages can be used to provoke ICMPv6 responses from hosts thereby | messages can be used to provoke ICMPv6 responses from hosts thereby | |||
informing attackers of potential targets for future attacks. However | informing attackers of potential targets for future attacks. | |||
the very large address space of IPv6 makes probing a less effective | However, the very large address space of IPv6 makes probing a less | |||
weapon as compared with IPv4 provided that addresses are not | effective weapon as compared with IPv4 provided that addresses are | |||
allocated in an easily guessable fashion. This subject is explored | not allocated in an easily guessable fashion. This subject is | |||
in more depth in [I-D.ietf-v6ops-scanning-implications]. | explored in more depth in [SCAN-IMP]. | |||
3.3. Redirection Attacks | 3.3. Redirection Attacks | |||
A redirection attack could be used by a malicious sender to perform | A redirection attack could be used by a malicious sender to perform | |||
man-in-the-middle attacks or divert packets either to a malicious | man-in-the-middle attacks or divert packets either to a malicious | |||
monitor or to cause DoS by blackholing the packets. These attacks | monitor or to cause DoS by blackholing the packets. These attacks | |||
would normally have to be carried out locally on a link using the | would normally have to be carried out locally on a link using the | |||
Redirect message. Administrators need to decide if the improvement | Redirect message. Administrators need to decide if the improvement | |||
in efficiency from using Redirect messages is worth the risk of | in efficiency from using Redirect messages is worth the risk of | |||
malicious use. Factors to consider include the physical security of | malicious use. Factors to consider include the physical security of | |||
skipping to change at page 10, line 27 | skipping to change at page 10, line 11 | |||
link in a secure building with complex addressing and redundant | link in a secure building with complex addressing and redundant | |||
routers, the efficiency gains might well outweigh the small risk of a | routers, the efficiency gains might well outweigh the small risk of a | |||
rogue node being connected. | rogue node being connected. | |||
3.4. Renumbering Attacks | 3.4. Renumbering Attacks | |||
Spurious Renumbering messages can lead to the disruption of a site. | Spurious Renumbering messages can lead to the disruption of a site. | |||
Although Renumbering messages are required to be authenticated with | Although Renumbering messages are required to be authenticated with | |||
IPsec, so that it is difficult to carry out such attacks in practice, | IPsec, so that it is difficult to carry out such attacks in practice, | |||
they should not be allowed through a site boundary firewall. On the | they should not be allowed through a site boundary firewall. On the | |||
other hand a site may employ multiple "layers" of firewall. In this | other hand, a site may employ multiple "layers" of firewalls. In | |||
case Renumbering messages might be expected to be allowed to transit | this case, Renumbering messages might be expected to be allowed to | |||
interior firewalls but not pass across the outer boundary. | transit interior firewalls but not pass across the outer boundary. | |||
3.5. Problems Resulting from ICMPv6 Transparency | 3.5. Problems Resulting from ICMPv6 Transparency | |||
Because some ICMPv6 error packets need to be passed through a | Because some ICMPv6 error packets need to be passed through a | |||
firewall in both directions, malicious users can potentially use | firewall in both directions, malicious users can potentially use | |||
these messages to communicate between inside and outside, bypassing | these messages to communicate between inside and outside, bypassing | |||
administrative inspection. For example it might be possible to carry | administrative inspection. For example, it might be possible to | |||
out a covert conversation through the payload of ICMPv6 error | carry out a covert conversation through the payload of ICMPv6 error | |||
messages or tunnel inappropriate encapsulated IP packets in ICMPv6 | messages or tunnel inappropriate encapsulated IP packets in ICMPv6 | |||
error messages. This problem can be alleviated by filtering ICMPv6 | error messages. This problem can be alleviated by filtering ICMPv6 | |||
errors using a deep packet inspection mechanism to ensure that the | errors using a deep packet inspection mechanism to ensure that the | |||
packet carried as a payload is associated with legitimate traffic to | packet carried as a payload is associated with legitimate traffic to | |||
or from the protected network. | or from the protected network. | |||
4. Filtering Recommendations | 4. Filtering Recommendations | |||
When designing firewall filtering rules for ICMPv6, the rules can be | When designing firewall filtering rules for ICMPv6, the rules can be | |||
divided into two classes: | divided into two classes: | |||
skipping to change at page 10, line 48 | skipping to change at page 10, line 32 | |||
messages or tunnel inappropriate encapsulated IP packets in ICMPv6 | messages or tunnel inappropriate encapsulated IP packets in ICMPv6 | |||
error messages. This problem can be alleviated by filtering ICMPv6 | error messages. This problem can be alleviated by filtering ICMPv6 | |||
errors using a deep packet inspection mechanism to ensure that the | errors using a deep packet inspection mechanism to ensure that the | |||
packet carried as a payload is associated with legitimate traffic to | packet carried as a payload is associated with legitimate traffic to | |||
or from the protected network. | or from the protected network. | |||
4. Filtering Recommendations | 4. Filtering Recommendations | |||
When designing firewall filtering rules for ICMPv6, the rules can be | When designing firewall filtering rules for ICMPv6, the rules can be | |||
divided into two classes: | divided into two classes: | |||
o Rules for ICMPv6 traffic transiting the firewall, with some minor | o Rules for ICMPv6 traffic transiting the firewall, with some minor | |||
variations for | variations for | |||
* firewalls protecting end sites or individual hosts, and | * firewalls protecting end sites or individual hosts, and | |||
* firewalls protecting transit sites | * firewalls protecting transit sites | |||
o Rules for ICMPv6 directed to interfaces on the firewall | o Rules for ICMPv6 directed to interfaces on the firewall | |||
Firewalls integrated with an individual host ("end host firewalls") | Firewalls integrated with an individual host ("end host firewalls") | |||
can be treated as end site firewalls but the special considerations | can be treated as end site firewalls, but the special considerations | |||
discussed in Section 4.2 may be relevant because the firewall is not | discussed in Section 4.2 may be relevant because the firewall is not | |||
a router. | a router. | |||
This section suggests some common considerations which should be | This section suggests some common considerations that should be borne | |||
borne in mind when designing filtering rules and then categorizes the | in mind when designing filtering rules and then categorizes the rules | |||
rules for each class. The categories are: | for each class. The categories are: | |||
o Messages that must not be dropped: usually because establishment | o Messages that must not be dropped: usually because establishment | |||
or maintenance of communications will be prevented or severely | or maintenance of communications will be prevented or severely | |||
impacted. | impacted. | |||
o Messages that should not be dropped: administrators need to have a | o Messages that should not be dropped: administrators need to have a | |||
very good reason for dropping this category | very good reason for dropping this category. | |||
o Messages that may be dropped in firewall/routers, but these | o Messages that may be dropped in firewall/routers, but these | |||
messages may already be targeted to drop for other reasons, (e.g., | messages may already be targeted to drop for other reasons (e.g., | |||
because they are using link-local addresses), or because the | because they are using link-local addresses) or because the | |||
protocol specification would cause the messages to be rejected if | protocol specification would cause the messages to be rejected if | |||
they had passed through a router. Special considerations apply to | they had passed through a router. Special considerations apply to | |||
transit traffic if the firewall is not a router as discussed in | transit traffic if the firewall is not a router as discussed in | |||
Section 4.2. | Section 4.2. | |||
o Messages that administrators may or may not want to drop depending | o Messages that administrators may or may not want to drop depending | |||
on local policy. | on local policy. | |||
o Messages that administrators should consider dropping (e.g., ICMP | o Messages that administrators should consider dropping (e.g., ICMP | |||
node information name lookup queries) | node information name lookup queries). | |||
More detailed analysis of each of the message types can be found in | More detailed analysis of each of the message types can be found in | |||
Appendix A. | Appendix A. | |||
4.1. Common Considerations | 4.1. Common Considerations | |||
Depending on the classification of the message to be filtered (see | Depending on the classification of the message to be filtered (see | |||
Section 2), ICMPv6 messages should be filtered based on the ICMPv6 | Section 2), ICMPv6 messages should be filtered based on the ICMPv6 | |||
type of the message and the type (unicast, multicast, etc.) and scope | type of the message and the type (unicast, multicast, etc.) and scope | |||
(link-local, global unicast, etc) of source and destination | (link-local, global unicast, etc.) of source and destination | |||
addresses. In some cases it may be desirable to filter on the Code | addresses. In some cases, it may be desirable to filter on the Code | |||
field of ICMPv6 error messages. | field of ICMPv6 error messages. | |||
Messages that can be authenticated on delivery, probably because they | Messages that can be authenticated on delivery, probably because they | |||
contain an IPsec AH header or ESP header with authentication, may be | contain an IPsec AH header or ESP header with authentication, may be | |||
subject to less strict policies than messages that cannot be | subject to less strict policies than messages that cannot be | |||
authenticated. In the remainder of this section, we are generally | authenticated. In the remainder of this section, we are generally | |||
considering what should be configured for unauthenticated messages. | considering what should be configured for unauthenticated messages. | |||
In many cases it is not realistic to expect more than a tiny fraction | In many cases, it is not realistic to expect more than a tiny | |||
of the messages to be authenticated. | fraction of the messages to be authenticated. | |||
Where messages are not essential to the establishment or maintenance | Where messages are not essential to the establishment or maintenance | |||
of communications, local policy can be used to determine whether a | of communications, local policy can be used to determine whether a | |||
message should be allowed or dropped. | message should be allowed or dropped. | |||
Depending on the capabilities of the firewall being configured, it | Depending on the capabilities of the firewall being configured, it | |||
may be possible for the firewall to maintain state about packets that | may be possible for the firewall to maintain state about packets that | |||
may result in error messages being returned or about ICMPv6 packets | may result in error messages being returned or about ICMPv6 packets | |||
(e.g., Echo Requests) that are expected to receive a specific | (e.g., Echo Requests) that are expected to receive a specific | |||
response. This state may allow the firewall to perform more precise | response. This state may allow the firewall to perform more precise | |||
checks based on this state, and to apply limits on the number of | checks based on this state, and to apply limits on the number of | |||
ICMPv6 packets accepted incoming or outgoing as a result of a packet | ICMPv6 packets accepted incoming or outgoing as a result of a packet | |||
traveling in the opposite direction. The capabilities of firewalls | traveling in the opposite direction. The capabilities of firewalls | |||
to perform such stateful packet inspection vary from model to model, | to perform such stateful packet inspection vary from model to model, | |||
and it is not assumed that firewalls are uniformly capable in this | and it is not assumed that firewalls are uniformly capable in this | |||
respect. | respect. | |||
Firewalls which are able to perform deep packet inspection may be | Firewalls that are able to perform deep packet inspection may be able | |||
able to check the header fields in the start of the errored packet | to check the header fields in the start of the errored packet that is | |||
which is carried by ICMPv6 error messages. If the embedded packet | carried by ICMPv6 error messages. If the embedded packet has a | |||
has a source address which does not match the destination of the | source address that does not match the destination of the error | |||
error message the packet can be dropped. This provides a partial | message, the packet can be dropped. This provides a partial defense | |||
defense against some possible attacks on TCP that use spoofed ICMPv6 | against some possible attacks on TCP that use spoofed ICMPv6 error | |||
error messages, but the checks can also be carried out at the | messages, but the checks can also be carried out at the destination. | |||
destination. For further information on these attacks see | For further information on these attacks see [ICMP-ATTACKS]. | |||
[I-D.ietf-tcpm-icmp-attacks]. | ||||
In general, the scopes of source and destination addresses of ICMPv6 | In general, the scopes of source and destination addresses of ICMPv6 | |||
messages should be matched, and packets with mismatched addresses | messages should be matched, and packets with mismatched addresses | |||
should be dropped if they attempt to transit a router. However some | should be dropped if they attempt to transit a router. However, some | |||
of the address configuration messages carried locally on a link may | of the address configuration messages carried locally on a link may | |||
legitimately have mismatched addresses. Node implementations must | legitimately have mismatched addresses. Node implementations must | |||
accept these messages delivered locally on a link and administrators | accept these messages delivered locally on a link, and administrators | |||
should be aware that they can exist. | should be aware that they can exist. | |||
ICMPv6 messages transiting firewalls inbound to a site may be treated | ICMPv6 messages transiting firewalls inbound to a site may be treated | |||
differently depending on whether they addressed to a node on the site | differently depending on whether they are addressed to a node on the | |||
or to some other node. For end sites packets addressed to nodes not | site or to some other node. For end sites, packets addressed to | |||
on the site should be dropped but would generally be forwarded by | nodes not on the site should be dropped, but would generally be | |||
firewalls on transit sites. | forwarded by firewalls on transit sites. | |||
4.2. Interaction of Link Local Messages with Firewall/Routers and | 4.2. Interaction of Link-Local Messages with Firewall/Routers and | |||
Firewall/Bridges | Firewall/Bridges | |||
Firewalls can be implemented both as IP routers (firewall/routers) | Firewalls can be implemented both as IP routers (firewall/routers) | |||
and as link layer bridges (e.g., Ethernet bridges) that are | and as link layer bridges (e.g., Ethernet bridges) that are | |||
transparent to the IP layer although they will actually be inspecting | transparent to the IP layer although they will actually be inspecting | |||
the IP packets as they pass through (firewall/bridges). | the IP packets as they pass through (firewall/bridges). | |||
Many of the messages used for establishment and maintenance of | Many of the messages used for establishment and maintenance of | |||
communications on the local link will be sent with link-local | communications on the local link will be sent with link-local | |||
addresses for at least one of their source and destination. Routers | addresses for at least one of their source and destination. Routers | |||
conforming to the IPv6 standards will not forward these packets; | conforming to the IPv6 standards will not forward these packets; | |||
there is no need to configure additional rules to prevent these | there is no need to configure additional rules to prevent these | |||
packets traversing a firewall/router, although administrators may | packets traversing a firewall/router, although administrators may | |||
wish to configure rules that would drop these packets for insurance | wish to configure rules that would drop these packets for insurance | |||
and as a means of monitoring for attacks. Also the specifications of | and as a means of monitoring for attacks. Also, the specifications | |||
ICMPv6 messages intended for use only on the local link specify | of ICMPv6 messages intended for use only on the local link specify | |||
various measures which would allow receivers to detect if the message | various measures that would allow receivers to detect if the message | |||
had passed through a router, including: | had passed through a router, including: | |||
o Requiring that the hop limit in the IPv6 header is set to 255 on | o Requiring that the hop limit in the IPv6 header is set to 255 on | |||
transmission. Receivers verify that the hop limit is still 255, | transmission. Receivers verify that the hop limit is still 255, | |||
to ensure that the packet has not passed through a router. | to ensure that the packet has not passed through a router. | |||
o Checking that the source address is a link-local unicast address. | o Checking that the source address is a link-local unicast address. | |||
Accordingly it is not essential to configure firewall/router rules to | ||||
drop out-of-specification packets of these types. If they have non- | Accordingly, it is not essential to configure firewall/router rules | |||
link-local source and destination addresses, allowing them to | to drop out-of-specification packets of these types. If they have | |||
non-link-local source and destination addresses, allowing them to | ||||
traverse the firewall/router, they would be rejected because of the | traverse the firewall/router, they would be rejected because of the | |||
checks performed at the destination. Again, firewall administrators | checks performed at the destination. Again, firewall administrators | |||
may still wish to configure rules to log or drop such out-of- | may still wish to configure rules to log or drop such out-of- | |||
specification packets. | specification packets. | |||
For firewall/bridges, slightly different considerations apply. The | For firewall/bridges, slightly different considerations apply. The | |||
physical links on either side of the firewall/bridge are treated as a | physical links on either side of the firewall/bridge are treated as a | |||
single logical link for the purposes of IP. Hence the link local | single logical link for the purposes of IP. Hence, the link local | |||
messages used for discovery functions on the link must be allowed to | messages used for discovery functions on the link must be allowed to | |||
transit the transparent bridge. Administrators should assure for | transit the transparent bridge. Administrators should ensures that | |||
themselves that routers and hosts attached to the link containing the | routers and hosts attached to the link containing the firewall/bridge | |||
firewall/bridge are built to the correct specifications so that out- | are built to the correct specifications so that out-of-specification | |||
of-specification packets are actually dropped as described in the | packets are actually dropped as described in the earlier part of this | |||
earlier part of this section. | section. | |||
An end host firewall can generally be thought of as a special case of | An end host firewall can generally be thought of as a special case of | |||
a firewall/bridge but the only link local messages that need to be | a firewall/bridge, but the only link-local messages that need to be | |||
allowed through are those directed to the host's interface. | allowed through are those directed to the host's interface. | |||
4.3. Recommendations for ICMPv6 Transit Traffic | 4.3. Recommendations for ICMPv6 Transit Traffic | |||
This section recommends rules that should be applied to ICMPv6 | This section recommends rules that should be applied to ICMPv6 | |||
traffic attempting to transit a firewall. | traffic attempting to transit a firewall. | |||
4.3.1. Traffic that Must Not be Dropped | 4.3.1. Traffic That Must Not Be Dropped | |||
Error messages that are essential to the establishment and | Error messages that are essential to the establishment and | |||
maintenance of communications: | maintenance of communications: | |||
o Destination Unreachable (Type 1) - All codes | o Destination Unreachable (Type 1) - All codes | |||
o Packet Too Big (Type 2) | o Packet Too Big (Type 2) | |||
o Time Exceeded (Type 3) - Code 0 only | o Time Exceeded (Type 3) - Code 0 only | |||
o Parameter Problem (Type 4) - Codes 1 and 2 only | o Parameter Problem (Type 4) - Codes 1 and 2 only | |||
Appendix A.4 suggests some more specific checks that could be | Appendix A.4 suggests some more specific checks that could be | |||
performed on Parameter Problem messages if a firewall has the | performed on Parameter Problem messages if a firewall has the | |||
necessary packet inspection capabilities. | necessary packet inspection capabilities. | |||
Connectivity checking messages: | Connectivity checking messages: | |||
o Echo Request (Type 128) | o Echo Request (Type 128) | |||
o Echo Response (Type 129) | o Echo Response (Type 129) | |||
For Teredo tunneling [RFC4380] to IPv6 nodes on the site to be | For Teredo tunneling [RFC4380] to IPv6 nodes on the site to be | |||
possible, it is essential that the connectivity checking messages are | possible, it is essential that the connectivity checking messages are | |||
allowed through the firewall. It has been common practice in IPv4 | allowed through the firewall. It has been common practice in IPv4 | |||
networks to drop Echo Request messages in firewalls to minimize the | networks to drop Echo Request messages in firewalls to minimize the | |||
risk of scanning attacks on the protected network. As discussed in | risk of scanning attacks on the protected network. As discussed in | |||
Section 3.2, the risks from port scanning in an IPv6 network are much | Section 3.2, the risks from port scanning in an IPv6 network are much | |||
less severe and it is not necessary to filter IPv6 Echo Request | less severe, and it is not necessary to filter IPv6 Echo Request | |||
messages. | messages. | |||
4.3.2. Traffic that Normally Should Not be Dropped | 4.3.2. Traffic That Normally Should Not Be Dropped | |||
Error messages other than those listed in Section 4.3.1: | ||||
Error messages other than those listed in Section 4.3.1 | ||||
o Time Exceeded (Type 3) - Code 1 | o Time Exceeded (Type 3) - Code 1 | |||
o Parameter Problem (Type 4) - Code 0 | o Parameter Problem (Type 4) - Code 0 | |||
Mobile IPv6 messages that are needed to assist mobility: | Mobile IPv6 messages that are needed to assist mobility: | |||
o Home Agent Address Discovery Request (Type 144) | o Home Agent Address Discovery Request (Type 144) | |||
o Home Agent Address Discovery Reply (Type 145) | o Home Agent Address Discovery Reply (Type 145) | |||
o Mobile Prefix Solicitation (Type 146) | o Mobile Prefix Solicitation (Type 146) | |||
o Mobile Prefix Advertisement(Type 147) | o Mobile Prefix Advertisement(Type 147) | |||
Administrators may wish to apply more selective rules as described in | Administrators may wish to apply more selective rules as described in | |||
Appendix A.14 depending on whether the site is catering for mobile | Appendix A.14 depending on whether the site is catering for mobile | |||
nodes which would normally be at home on the site and/or foreign | nodes that would normally be at home on the site and/or foreign | |||
mobile nodes roaming onto the site. | mobile nodes roaming onto the site. | |||
4.3.3. Traffic that will be Dropped Anyway - No Special Attention | 4.3.3. Traffic That Will Be Dropped Anyway -- No Special Attention | |||
Needed | Needed | |||
The messages listed in this section are all involved with local | The messages listed in this section are all involved with local | |||
management of nodes connected to the logical link on which they were | management of nodes connected to the logical link on which they were | |||
initially transmitted. All these messages should never be propagated | initially transmitted. All these messages should never be propagated | |||
beyond the link on which they were initially transmitted. If the | beyond the link on which they were initially transmitted. If the | |||
firewall is a firewall/bridge rather than a firewall/router, these | firewall is a firewall/bridge rather than a firewall/router, these | |||
messages should be allowed to transit the firewall as they would be | messages should be allowed to transit the firewall as they would be | |||
intended for establishing communications between the two physical | intended for establishing communications between the two physical | |||
parts of the link that are bridged into a single logical link. | parts of the link that are bridged into a single logical link. | |||
During normal operations these messages will have destination | During normal operations, these messages will have destination | |||
addresses, mostly link local but in some cases global unicast | addresses, mostly link local but in some cases global unicast | |||
addresses, of interfaces on the local link. No special action is | addresses, of interfaces on the local link. No special action is | |||
needed to filter messages with link-local addresses in a firewall/ | needed to filter messages with link-local addresses in a firewall/ | |||
router. As discussed in Section 4.1 these messages are specified so | router. As discussed in Section 4.1, these messages are specified so | |||
that either the receiver is able to check that the message has not | that either the receiver is able to check that the message has not | |||
passed through a router or it will be dropped at the first router it | passed through a router or it will be dropped at the first router it | |||
encounters. | encounters. | |||
Administrators may also wish to consider providing rules in firewall/ | Administrators may also wish to consider providing rules in firewall/ | |||
routers to catch illegal packets sent with hop limit = 1 to avoid | routers to catch illegal packets sent with hop limit = 1 to avoid | |||
ICMPv6 Time Exceeded messages being generated for these packets. | ICMPv6 Time Exceeded messages being generated for these packets. | |||
Address Configuration and Router Selection messages (must be received | Address Configuration and Router Selection messages (must be received | |||
with hop limit = 255): | with hop limit = 255): | |||
skipping to change at page 15, line 30 | skipping to change at page 15, line 43 | |||
o Router Solicitation (Type 133) | o Router Solicitation (Type 133) | |||
o Router Advertisement (Type 134) | o Router Advertisement (Type 134) | |||
o Neighbor Solicitation (Type 135) | o Neighbor Solicitation (Type 135) | |||
o Neighbor Advertisement (Type 136) | o Neighbor Advertisement (Type 136) | |||
o Redirect (Type 137) | o Redirect (Type 137) | |||
o Inverse Neighbor Discovery Solicitation (Type 141) | o Inverse Neighbor Discovery Solicitation (Type 141) | |||
o Inverse Neighbor Discovery Advertisement (Type 142) | o Inverse Neighbor Discovery Advertisement (Type 142) | |||
Link-local multicast receiver notification messages (must have link- | Link-local multicast receiver notification messages (must have link- | |||
local source address): | local source address): | |||
o Listener Query (Type 130) | o Listener Query (Type 130) | |||
o Listener Report (Type 131) | o Listener Report (Type 131) | |||
o Listener Done (Type 132) | o Listener Done (Type 132) | |||
o Listener Report v2 (Type 143) | o Listener Report v2 (Type 143) | |||
SEND Certificate Path notification messages (must be received with | SEND Certificate Path notification messages (must be received with | |||
hop limit = 255): | hop limit = 255): | |||
o Certificate Path Solicitation (Type 148) | o Certificate Path Solicitation (Type 148) | |||
o Certificate Path Advertisement (type 149) | o Certificate Path Advertisement (Type 149) | |||
Multicast Router Discovery messages (must have link-local source | Multicast Router Discovery messages (must have link-local source | |||
address and hop limit = 1): | address and hop limit = 1): | |||
o Multicast Router Advertisement (Type 151) | o Multicast Router Advertisement (Type 151) | |||
o Multicast Router Solicitation (Type 152) | o Multicast Router Solicitation (Type 152) | |||
o Multicast Router Termination (Type 153) | o Multicast Router Termination (Type 153) | |||
4.3.4. Traffic for which a Policy Should be Defined | 4.3.4. Traffic for Which a Policy Should Be Defined | |||
The message type that the experimental Seamoby protocols are using | The message type that the experimental Seamoby protocols are using | |||
will be expected to have to cross site boundaries in normal | will be expected to have to cross site boundaries in normal | |||
operation. Transit sites must allow these messages to transit the | operation. Transit sites must allow these messages to transit the | |||
site. End site administrators should determine if they need to | site. End site administrators should determine if they need to | |||
support these experiments and otherwise messages of this type should | support these experiments and otherwise messages of this type should | |||
be dropped: | be dropped: | |||
o Seamoby Experimental (Type 150) | o Seamoby Experimental (Type 150) | |||
Error messages not currently defined by IANA: | Error messages not currently defined by IANA: | |||
o Unallocated Error messages (Types 5-99 and 102-126, inclusive) | o Unallocated Error messages (Types 5-99 inclusive and 102-126 | |||
inclusive) | ||||
The base ICMPv6 specification suggests that error messages which are | The base ICMPv6 specification suggests that error messages that are | |||
not explicitly known to a node should be forwarded and passed to any | not explicitly known to a node should be forwarded and passed to any | |||
higher level protocol that might be able to interpret them. There is | higher-level protocol that might be able to interpret them. There is | |||
a small risk that such messages could be used to provide a covert | a small risk that such messages could be used to provide a covert | |||
channel or form part of a DoS attack. Administrators of end sites | channel or form part of a DoS attack. Administrators of end sites | |||
should be aware of this and determine whether they wish to allow | should be aware of this and determine whether they wish to allow | |||
these messages through the firewall. Firewalls protecting transit | these messages through the firewall. Firewalls protecting transit | |||
sites must allow all types of error messages to transit the site but | sites must allow all types of error messages to transit the site but | |||
may adopt different policies for error messages addressed to nodes | may adopt different policies for error messages addressed to nodes | |||
within the site. | within the site. | |||
All informational messages with types not explicitly assigned by | All informational messages with types not explicitly assigned by | |||
IANA, currently: | IANA, currently: | |||
skipping to change at page 16, line 40 | skipping to change at page 17, line 15 | |||
messages through the firewall, relying on end hosts to drop | messages through the firewall, relying on end hosts to drop | |||
unrecognized messages, or drop all such messages at the firewall. | unrecognized messages, or drop all such messages at the firewall. | |||
Different policies could be adopted for inbound and outbound | Different policies could be adopted for inbound and outbound | |||
messages. | messages. | |||
If administrators choose to implement policies that drop currently | If administrators choose to implement policies that drop currently | |||
unallocated error or informational messages, it is important to | unallocated error or informational messages, it is important to | |||
review the set of messages affected in case new message types are | review the set of messages affected in case new message types are | |||
assigned by IANA. | assigned by IANA. | |||
4.3.5. Traffic which Should be Dropped Unless a Good Case can be Made | 4.3.5. Traffic That Should Be Dropped Unless a Good Case Can Be Made | |||
Node Information enquiry messages should generally not be forwarded | Node Information enquiry messages should generally not be forwarded | |||
across site boundaries. Some of these messages will be using non- | across site boundaries. Some of these messages will be using non- | |||
link-local unicast addresses so that they will not necessarily be | link-local unicast addresses so that they will not necessarily be | |||
dropped by address scope limiting rules: | dropped by address scope limiting rules: | |||
o Node Information Query (Type 139) | o Node Information Query (Type 139) | |||
o Node Information Response (Type 140) | o Node Information Response (Type 140) | |||
Router Renumbering messages should not be forwarded across site | Router Renumbering messages should not be forwarded across site | |||
boundaries. As originally specified, these messages may use a site | boundaries. As originally specified, these messages may use a site | |||
scope multicast address or a site local unicast address. They should | scope multicast address or a site local unicast address. They should | |||
be caught by standard rules that are intended to stop any packet with | be caught by standard rules that are intended to stop any packet with | |||
a multicast site scope or site local destination being forwarded | a multicast site scope or site local destination being forwarded | |||
across a site boundary provided these are correctly configured. | across a site boundary provided these are correctly configured. | |||
Since site local addresses have now been deprecated it seems likely | Since site local addresses have now been deprecated, it seems likely | |||
that changes may be made to allow the use of unique local addresses | that changes may be made to allow the use of unique local addresses | |||
or global unicast addresses. Should this happen, it will be | or global unicast addresses. Should this happen, it will be | |||
essential to explicitly filter these messages at site boundaries. If | essential to explicitly filter these messages at site boundaries. If | |||
a site has internal as well as boundary firewalls, individual | a site has internal as well as boundary firewalls, individual | |||
policies should be established for the internal firewalls depending | policies should be established for the internal firewalls depending | |||
on whether the site wishes to use Router Renumbering or not: | on whether or not the site wishes to use Router Renumbering: | |||
o Router Renumbering (Type 138) | o Router Renumbering (Type 138) | |||
Messages with types in the experimental allocations: | Messages with types in the experimental allocations: | |||
o Types 100, 101, 200 and 201. | ||||
o Types 100, 101, 200, and 201. | ||||
Messages using the extension type numbers until such time as ICMPv6 | Messages using the extension type numbers until such time as ICMPv6 | |||
needs to use such extensions: | needs to use such extensions: | |||
o Types 127 and 255. | o Types 127 and 255. | |||
4.4. Recommendations for ICMPv6 Local Configuration Traffic | 4.4. Recommendations for ICMPv6 Local Configuration Traffic | |||
This section recommends filtering rules for ICMPv6 traffic addressed | This section recommends filtering rules for ICMPv6 traffic addressed | |||
to an interface on a firewall. For a small number of messages, the | to an interface on a firewall. For a small number of messages, the | |||
desired behavior may differ between interfaces on the site or private | desired behavior may differ between interfaces on the site or private | |||
side of the firewall and the those on the public Internet side of the | side of the firewall and the those on the public Internet side of the | |||
firewall. | firewall. | |||
skipping to change at page 17, line 31 | skipping to change at page 18, line 13 | |||
o Types 127 and 255. | o Types 127 and 255. | |||
4.4. Recommendations for ICMPv6 Local Configuration Traffic | 4.4. Recommendations for ICMPv6 Local Configuration Traffic | |||
This section recommends filtering rules for ICMPv6 traffic addressed | This section recommends filtering rules for ICMPv6 traffic addressed | |||
to an interface on a firewall. For a small number of messages, the | to an interface on a firewall. For a small number of messages, the | |||
desired behavior may differ between interfaces on the site or private | desired behavior may differ between interfaces on the site or private | |||
side of the firewall and the those on the public Internet side of the | side of the firewall and the those on the public Internet side of the | |||
firewall. | firewall. | |||
4.4.1. Traffic that Must Not be Dropped | 4.4.1. Traffic That Must Not Be Dropped | |||
Error messages that are essential to the establishment and | Error messages that are essential to the establishment and | |||
maintenance of communications: | maintenance of communications: | |||
o Destination Unreachable (Type 1) - All codes | o Destination Unreachable (Type 1) - All codes | |||
o Packet Too Big (Type 2) | o Packet Too Big (Type 2) | |||
o Time Exceeded (Type 3) - Code 0 only | o Time Exceeded (Type 3) - Code 0 only | |||
o Parameter Problem (Type 4) - Codes 1 and 2 only | o Parameter Problem (Type 4) - Codes 1 and 2 only | |||
Connectivity checking messages: | Connectivity checking messages: | |||
o Echo Request (Type 128) | o Echo Request (Type 128) | |||
o Echo Response (Type 129) | o Echo Response (Type 129) | |||
As discussed in Section 4.3.1, dropping connectivity checking | As discussed in Section 4.3.1, dropping connectivity checking | |||
messages will prevent the firewall being the destination of a Teredo | messages will prevent the firewall being the destination of a Teredo | |||
tunnel and it is not considered necessary to disable connectivity | tunnel and it is not considered necessary to disable connectivity | |||
checking in IPv6 networks because port scanning is less of a security | checking in IPv6 networks because port scanning is less of a security | |||
risk. | risk. | |||
There are a number of other sets of messages which play a role in | There are a number of other sets of messages that play a role in | |||
configuring the node and maintaining unicast and multicast | configuring the node and maintaining unicast and multicast | |||
communications through the interfaces of a node. These messages must | communications through the interfaces of a node. These messages must | |||
not be dropped if the node is to successfully participate in an IPv6 | not be dropped if the node is to successfully participate in an IPv6 | |||
network. The exception to this is the Redirect message for which an | network. The exception to this is the Redirect message for which an | |||
explicit policy decision should be taken (see Section 4.4.4). | explicit policy decision should be taken (see Section 4.4.4). | |||
Address Configuration and Router Selection messages: | Address Configuration and Router Selection messages: | |||
o Router Solicitation (Type 133) | o Router Solicitation (Type 133) | |||
o Router Advertisement (Type 134) | o Router Advertisement (Type 134) | |||
o Neighbor Solicitation (Type 135) | o Neighbor Solicitation (Type 135) | |||
o Neighbor Advertisement (Type 136) | o Neighbor Advertisement (Type 136) | |||
o Inverse Neighbor Discovery Solicitation (Type 141) | o Inverse Neighbor Discovery Solicitation (Type 141) | |||
o Inverse Neighbor Discovery Advertisement (Type 142) | o Inverse Neighbor Discovery Advertisement (Type 142) | |||
Link-Local Multicast Receiver Notification messages: | ||||
Link-local multicast receiver notification messages: | ||||
o Listener Query (Type 130) | o Listener Query (Type 130) | |||
o Listener Report (Type 131) | o Listener Report (Type 131) | |||
o Listener Done (Type 132) | o Listener Done (Type 132) | |||
o Listener Report v2 (Type 143) | o Listener Report v2 (Type 143) | |||
SEND Certificate Path notification messages: | SEND Certificate Path Notification messages: | |||
o Certificate Path Solicitation (Type 148) | o Certificate Path Solicitation (Type 148) | |||
o Certificate Path Advertisement (type 149) | o Certificate Path Advertisement (Type 149) | |||
Multicast Router Discovery messages : | Multicast Router Discovery messages : | |||
o Multicast Router Advertisement (Type 151) | o Multicast Router Advertisement (Type 151) | |||
o Multicast Router Solicitation (Type 152) | o Multicast Router Solicitation (Type 152) | |||
o Multicast Router Termination (Type 153) | o Multicast Router Termination (Type 153) | |||
4.4.2. Traffic that Normally Should Not be Dropped | 4.4.2. Traffic That Normally Should Not Be Dropped | |||
Error messages other than those listed in Section 4.4.1: | Error messages other than those listed in Section 4.4.1: | |||
o Time Exceeded (Type 3) - Code 1 | o Time Exceeded (Type 3) - Code 1 | |||
o Parameter Problem (Type 4) - Code 0 | o Parameter Problem (Type 4) - Code 0 | |||
4.4.3. Traffic that will be Dropped Anyway - No Special Attention | 4.4.3. Traffic That Will Be Dropped Anyway -- No Special Attention | |||
Needed | Needed | |||
Router Renumbering messages must be authenticated using IPsec, so it | Router Renumbering messages must be authenticated using IPsec, so it | |||
is not essential to filter these messages even if they are not | is not essential to filter these messages even if they are not | |||
allowed at the firewall/router: | allowed at the firewall/router: | |||
o Router Renumbering (Type 138) | o Router Renumbering (Type 138) | |||
Mobile IPv6 messages that are needed to assist mobility: | Mobile IPv6 messages that are needed to assist mobility: | |||
o Home Agent Address Discovery Request (Type 144) | o Home Agent Address Discovery Request (Type 144) | |||
o Home Agent Address Discovery Reply (Type 145) | o Home Agent Address Discovery Reply (Type 145) | |||
o Mobile Prefix Solicitation (Type 146) | o Mobile Prefix Solicitation (Type 146) | |||
o Mobile Prefix Advertisement(Type 147) | o Mobile Prefix Advertisement(Type 147) | |||
It may be desirable to drop these messages, especially on public | It may be desirable to drop these messages, especially on public | |||
interfaces, if the firewall is not also providing mobile Home Agent | interfaces, if the firewall is not also providing mobile home agent | |||
services, but they will be ignored otherwise. | services, but they will be ignored otherwise. | |||
The message used by the experimental Seamoby protocols may be dropped | The message used by the experimental Seamoby protocols may be dropped | |||
but will be ignored if the service is not implemented: | but will be ignored if the service is not implemented: | |||
o Seamoby Experimental (Type 150) | o Seamoby Experimental (Type 150) | |||
4.4.4. Traffic for which a Policy Should be Defined | 4.4.4. Traffic for Which a Policy Should Be Defined | |||
Redirect messages provide a significant security risk, and | ||||
administrators should take a case-by-case approach to whether | ||||
firewalls, routers in general, and other nodes should accept these | ||||
messages: | ||||
Redirect messages provide a significant security risk and | ||||
administrators should take a case-by-case view of whether firewalls, | ||||
routers in general and other nodes should accept these messages: | ||||
o Redirect (Type 137) | o Redirect (Type 137) | |||
Conformant nodes must provide configuration controls which allow | ||||
nodes to control their behavior with respect to Redirect messages so | Conformant nodes must provide configuration controls that allow nodes | |||
that it should only be necessary to install specific filtering rules | to control their behavior with respect to Redirect messages so that | |||
under special circumstances, such as if Redirect messages are | it should only be necessary to install specific filtering rules under | |||
accepted on private interfaces but not public ones. | special circumstances, such as if Redirect messages are accepted on | |||
private interfaces but not public ones. | ||||
If a node implements the experimental Node Information service, the | If a node implements the experimental Node Information service, the | |||
administrator needs to make an explicit decision as to whether the | administrator needs to make an explicit decision as to whether the | |||
node should respond to or accept Node Information messages on each | node should respond to or accept Node Information messages on each | |||
interface: | interface: | |||
o Node Information Query (Type 139) | o Node Information Query (Type 139) | |||
o Node Information Response (Type 140) | o Node Information Response (Type 140) | |||
It may be possible to disable the service on the node if it is not | It may be possible to disable the service on the node if it is not | |||
wanted in which case these messages will be ignored and no filtering | wanted, in which case these messages will be ignored and no filtering | |||
is necessary. | is necessary. | |||
Error messages not currently defined by IANA: | Error messages not currently defined by IANA: | |||
o Unallocated Error messages (Types 5-99 and 102-126, inclusive) | ||||
The base ICMPv6 specification suggests that error messages which are | o Unallocated Error messages (Types 5-99 inclusive and 102-126 | |||
inclusive) | ||||
The base ICMPv6 specification suggests that error messages that are | ||||
not explicitly known to a node should be forwarded and passed to any | not explicitly known to a node should be forwarded and passed to any | |||
higher level protocol that might be able to interpret them. There is | higher-level protocol that might be able to interpret them. There is | |||
a small risk that such messages could be used to provide a covert | a small risk that such messages could be used to provide a covert | |||
channel or form part of a DoS attack. Administrators should be aware | channel or form part of a DoS attack. Administrators should be aware | |||
of this and determine whether they wish to allow these messages to be | of this and determine whether they wish to allow these messages to be | |||
sent to the firewall. | sent to the firewall. | |||
4.4.5. Traffic which Should be Dropped Unless a Good Case can be Made | 4.4.5. Traffic That Should Be Dropped Unless a Good Case Can Be Made | |||
Messages with types in the experimental allocations: | Messages with types in the experimental allocations: | |||
o Types 100, 101, 200 and 201. | ||||
o Types 100, 101, 200, and 201. | ||||
Messages using the extension type numbers until such time as ICMPv6 | Messages using the extension type numbers until such time as ICMPv6 | |||
needs to use such extensions: | needs to use such extensions: | |||
o Types 127 and 255. | o Types 127 and 255. | |||
All informational messages with types not explicitly assigned by | All informational messages with types not explicitly assigned by | |||
IANA, currently: | IANA, currently: | |||
o Types 154 - 199 inclusive and 202 - 254 inclusive. | o Types 154 - 199 inclusive and 202 - 254 inclusive. | |||
Note that the base ICMPv6 specification requires that received | Note that the base ICMPv6 specification requires that received | |||
informational messages with unknown types must be silently discarded. | informational messages with unknown types must be silently discarded. | |||
5. IANA Considerations | 5. Acknowledgements | |||
There are no IANA considerations defined in this document. | ||||
6. Acknowledgements | ||||
Pekka Savola created the original IPv6 Security Overview document | Pekka Savola created the original IPv6 Security Overview document, | |||
which contained suggestions for ICMPv6 filter setups. This | which contained suggestions for ICMPv6 filter setups. This | |||
information has been incorporated into this document. He has also | information has been incorporated into this document. He has also | |||
provided important comments. Some analysis of the classification of | provided important comments. Some analysis of the classification of | |||
ICMPv6 messages and the term 'any-to-end' were used by Jari Arkko in | ICMPv6 messages and the term 'any-to-end' were used by Jari Arkko in | |||
a draft relating to ICMPv6 and IKE. | a document relating to ICMPv6 and IKE. | |||
The Netfilter configuration script in Appendix C was contributed by | The Netfilter configuration script in Appendix B was contributed by | |||
Suresh Krishnan. | Suresh Krishnan. | |||
7. References | 6. References | |||
7.1. Normative References | 6.1. Normative References | |||
[RFC1981] McCann, J., Deering, S., and J. Mogul, "Path MTU Discovery | [RFC1981] McCann, J., Deering, S., and J. Mogul, "Path MTU | |||
for IP version 6", RFC 1981, August 1996. | Discovery for IP version 6", RFC 1981, August 1996. | |||
[RFC2460] Deering, S. and R. Hinden, "Internet Protocol, Version 6 | [RFC2460] Deering, S. and R. Hinden, "Internet Protocol, | |||
(IPv6) Specification", RFC 2460, December 1998. | Version 6 (IPv6) Specification", RFC 2460, | |||
December 1998. | ||||
[RFC2461] Narten, T., Nordmark, E., and W. Simpson, "Neighbor | [RFC2461] Narten, T., Nordmark, E., and W. Simpson, "Neighbor | |||
Discovery for IP Version 6 (IPv6)", RFC 2461, | Discovery for IP Version 6 (IPv6)", RFC 2461, | |||
December 1998. | December 1998. | |||
[RFC2462] Thomson, S. and T. Narten, "IPv6 Stateless Address | [RFC2462] Thomson, S. and T. Narten, "IPv6 Stateless Address | |||
Autoconfiguration", RFC 2462, December 1998. | Autoconfiguration", RFC 2462, December 1998. | |||
[RFC2710] Deering, S., Fenner, W., and B. Haberman, "Multicast | [RFC2710] Deering, S., Fenner, W., and B. Haberman, "Multicast | |||
Listener Discovery (MLD) for IPv6", RFC 2710, | Listener Discovery (MLD) for IPv6", RFC 2710, | |||
October 1999. | October 1999. | |||
[RFC2894] Crawford, M., "Router Renumbering for IPv6", RFC 2894, | [RFC2894] Crawford, M., "Router Renumbering for IPv6", | |||
August 2000. | RFC 2894, August 2000. | |||
[RFC3122] Conta, A., "Extensions to IPv6 Neighbor Discovery for | [RFC3122] Conta, A., "Extensions to IPv6 Neighbor Discovery for | |||
Inverse Discovery Specification", RFC 3122, June 2001. | Inverse Discovery Specification", RFC 3122, | |||
June 2001. | ||||
[RFC3590] Haberman, B., "Source Address Selection for the Multicast | [RFC3590] Haberman, B., "Source Address Selection for the | |||
Listener Discovery (MLD) Protocol", RFC 3590, | Multicast Listener Discovery (MLD) Protocol", | |||
September 2003. | RFC 3590, September 2003. | |||
[RFC3775] Johnson, D., Perkins, C., and J. Arkko, "Mobility Support | [RFC3775] Johnson, D., Perkins, C., and J. Arkko, "Mobility | |||
in IPv6", RFC 3775, June 2004. | Support in IPv6", RFC 3775, June 2004. | |||
[RFC3810] Vida, R. and L. Costa, "Multicast Listener Discovery | [RFC3810] Vida, R. and L. Costa, "Multicast Listener Discovery | |||
Version 2 (MLDv2) for IPv6", RFC 3810, June 2004. | Version 2 (MLDv2) for IPv6", RFC 3810, June 2004. | |||
[RFC3971] Arkko, J., Kempf, J., Zill, B., and P. Nikander, "SEcure | [RFC3971] Arkko, J., Kempf, J., Zill, B., and P. Nikander, | |||
Neighbor Discovery (SEND)", RFC 3971, March 2005. | "SEcure Neighbor Discovery (SEND)", RFC 3971, | |||
March 2005. | ||||
[RFC4065] Kempf, J., "Instructions for Seamoby and Experimental | [RFC4065] Kempf, J., "Instructions for Seamoby and Experimental | |||
Mobility Protocol IANA Allocations", RFC 4065, July 2005. | Mobility Protocol IANA Allocations", RFC 4065, | |||
July 2005. | ||||
[RFC4286] Haberman, B. and J. Martin, "Multicast Router Discovery", | [RFC4286] Haberman, B. and J. Martin, "Multicast Router | |||
RFC 4286, December 2005. | Discovery", RFC 4286, December 2005. | |||
[RFC4443] Conta, A., Deering, S., and M. Gupta, "Internet Control | [RFC4443] Conta, A., Deering, S., and M. Gupta, "Internet | |||
Message Protocol (ICMPv6) for the Internet Protocol | Control Message Protocol (ICMPv6) for the Internet | |||
Version 6 (IPv6) Specification", RFC 4443, March 2006. | Protocol Version 6 (IPv6) Specification", RFC 4443, | |||
March 2006. | ||||
[RFC4620] Crawford, M. and B. Haberman, "IPv6 Node Information | [RFC4620] Crawford, M. and B. Haberman, "IPv6 Node Information | |||
Queries", RFC 4620, August 2006. | Queries", RFC 4620, August 2006. | |||
7.2. Informative References | 6.2. Informative References | |||
[I-D.ietf-tcpm-icmp-attacks] | ||||
Gont, F., "ICMP attacks against TCP", | ||||
draft-ietf-tcpm-icmp-attacks-01 (work in progress), | ||||
October 2006. | ||||
[I-D.ietf-v6ops-scanning-implications] | [ICMP-ATTACKS] Gont, F., "ICMP attacks against TCP", Work | |||
Chown, T., "IPv6 Implications for Network Scanning", | in Progress, October 2006. | |||
draft-ietf-v6ops-scanning-implications-01 (work in | ||||
progress), October 2006. | ||||
[RFC3041] Narten, T. and R. Draves, "Privacy Extensions for | [RFC3041] Narten, T. and R. Draves, "Privacy Extensions for | |||
Stateless Address Autoconfiguration in IPv6", RFC 3041, | Stateless Address Autoconfiguration in IPv6", | |||
January 2001. | RFC 3041, January 2001. | |||
[RFC4380] Huitema, C., "Teredo: Tunneling IPv6 over UDP through | [RFC4380] Huitema, C., "Teredo: Tunneling IPv6 over UDP through | |||
Network Address Translations (NATs)", RFC 4380, | Network Address Translations (NATs)", RFC 4380, | |||
February 2006. | February 2006. | |||
[netfilter] | [SCAN-IMP] Chown, T., "IPv6 Implications for Network Scanning", | |||
netfilter.org, "The netfilter.org project", Firewalling, | Work in Progress, March 2007. | |||
NAT and Packet Mangling for Linux , 2006, | ||||
<http://www.netfilter.org/>. | [netfilter] netfilter.org, "The netfilter.org project", | |||
Firewalling, NAT and Packet Mangling for Linux , | ||||
2006, <http://www.netfilter.org/>. | ||||
Appendix A. Notes on Individual ICMPv6 Messages | Appendix A. Notes on Individual ICMPv6 Messages | |||
A.1. Destination Unreachable Error Message | A.1. Destination Unreachable Error Message | |||
Destination Unreachable (Type 1) error messages [RFC4443] are sent | Destination Unreachable (Type 1) error messages [RFC4443] are sent | |||
any-to-end between unicast addresses. The message can be generated | any-to-end between unicast addresses. The message can be generated | |||
from any node which a packet traverses when the node is unable to | from any node that a packet traverses when the node is unable to | |||
forward the packet for any reason except congestion. | forward the packet for any reason except congestion. | |||
Destination Unreachable messages are useful for debugging but are | Destination Unreachable messages are useful for debugging, but are | |||
also important to speed up cycling through possible addresses, as | also important to speed up cycling through possible addresses, as | |||
they can avoid the need to wait through timeouts and hence can be | they can avoid the need to wait through timeouts and hence can be | |||
part of the process of establishing or maintaining communications. | part of the process of establishing or maintaining communications. | |||
It is a common practice in IPv4 to refrain from generating ICMP | It is a common practice in IPv4 to refrain from generating ICMP | |||
Destination Unreachable messages in an attempt to hide the networking | Destination Unreachable messages in an attempt to hide the networking | |||
topology and/or service structure. The same idea could be applied to | topology and/or service structure. The same idea could be applied to | |||
IPv6 but this can slow down connection if a host has multiple | IPv6, but this can slow down connection if a host has multiple | |||
addresses, some of which are deprecated, as they may be when using | addresses, some of which are deprecated, as they may be when using | |||
privacy addresses [RFC3041]. If policy allows the generation of | privacy addresses [RFC3041]. If policy allows the generation of | |||
ICMPv6 Destination Unreachable messages, it is important that nodes | ICMPv6 Destination Unreachable messages, it is important that nodes | |||
provide the correct reason code, one of: no route to destination, | provide the correct reason code, one of: no route to destination, | |||
administratively prohibited, beyond scope of source address, address | administratively prohibited, beyond scope of source address, address | |||
unreachable, port unreachable, source address failed ingress/egress | unreachable, port unreachable, source address failed ingress/egress | |||
policy, reject route to destination. | policy, or reject route to destination. | |||
A.2. Packet Too Big Error Message | A.2. Packet Too Big Error Message | |||
Packet Too Big (Type 2) error messages [RFC4443] are sent any-to-end | Packet Too Big (Type 2) error messages [RFC4443] are sent any-to-end | |||
between unicast addresses. The message can be generated from any | between unicast addresses. The message can be generated from any | |||
node which a packet traverses on the path when the node is unable to | node that a packet traverses on the path when the node is unable to | |||
forward the packet because the packet is too large for the MTU of the | forward the packet because the packet is too large for the MTU of the | |||
next link. This message is vital to the correct functioning of Path | next link. This message is vital to the correct functioning of Path | |||
MTU Discovery and hence is part of the establishment and maintenance | MTU Discovery and hence is part of the establishment and maintenance | |||
of communications. Since routers are not allowed to fragment | of communications. Since routers are not allowed to fragment | |||
packets, informing sources of the need to fragment large packets is | packets, informing sources of the need to fragment large packets is | |||
more important than for IPv4. If these messages are not generated | more important than for IPv4. If these messages are not generated | |||
when appropriate, hosts will continue to send packets which are too | when appropriate, hosts will continue to send packets that are too | |||
large or may assume that the route is congested. Effectively parts | large or may assume that the route is congested. Effectively, parts | |||
of the Internet will become inaccessible. | of the Internet will become inaccessible. | |||
If a network chooses to generate packets that are no larger than the | If a network chooses to generate packets that are no larger than the | |||
Guaranteed Minimum MTU (1280 octets) and the site's links to the | Guaranteed Minimum MTU (1280 octets) and the site's links to the | |||
wider internet have corresponding MTUs, Packet Too Big messages | wider Internet have corresponding MTUs, Packet Too Big messages | |||
should not be expected at the firewall and could be dropped if they | should not be expected at the firewall and could be dropped if they | |||
arrive. | arrive. | |||
A.3. Time Exceeded Error Message | A.3. Time Exceeded Error Message | |||
Time Exceeded (Type 3) error messages [RFC4443] can occur in two | Time Exceeded (Type 3) error messages [RFC4443] can occur in two | |||
contexts: | contexts: | |||
o Code 0 are generated at any node on the path being taken by the | o Code 0 are generated at any node on the path being taken by the | |||
packet and sent, any-to-end between unicast addresses, if the Hop | packet and sent, any-to-end between unicast addresses, if the Hop | |||
Limit value is decremented to zero at that node. | Limit value is decremented to zero at that node. | |||
o Code 1 messages are generated at the destination node and sent | o Code 1 messages are generated at the destination node and sent | |||
end-to-end between unicast addresses if all the segments of a | end-to-end between unicast addresses if all the segments of a | |||
fragmented message are not received within the reassembly time | fragmented message are not received within the reassembly time | |||
limit | limit. | |||
Code 0 messages can be needed as part of the establishment of | Code 0 messages can be needed as part of the establishment of | |||
communications if the path to a particular destination requires an | communications if the path to a particular destination requires an | |||
unusually large number of hops. | unusually large number of hops. | |||
Code 1 messages will generally only result from congestion in the | Code 1 messages will generally only result from congestion in the | |||
network and it is less essential to propagate these messages. | network, and it is less essential to propagate these messages. | |||
A.4. Parameter Problem Error Message | A.4. Parameter Problem Error Message | |||
The great majority of Parameter Problem (Type 4) error messages will | The great majority of Parameter Problem (Type 4) error messages will | |||
be generated by the destination node when processing destination | be generated by the destination node when processing destination | |||
options and other extension headers, and hence are sent end-to-end | options and other extension headers, and hence are sent end-to-end | |||
between unicast addresses. Exceptionally, these messages might be | between unicast addresses. Exceptionally, these messages might be | |||
generated by any node on the path if a faulty or unrecognized hop-by- | generated by any node on the path if a faulty or unrecognized hop-by- | |||
hop option is included or from any routing waypoint if there are | hop option is included or from any routing waypoint if there are | |||
faulty or unrecognized destination options associated with a Type 0 | faulty or unrecognized destination options associated with a Type 0 | |||
routing header. In these cases the message will be sent any-to-end | routing header. In these cases, the message will be sent any-to-end | |||
using unicast source and destination addresses. | using unicast source and destination addresses. | |||
Parameter Problem Code 1 (Unrecognized Next Header) and Code 2 | Parameter Problem Code 1 (Unrecognized Next Header) and Code 2 | |||
(Unrecognized IPv6 Option) messages may result if a node on the path | (Unrecognized IPv6 Option) messages may result if a node on the path | |||
(usually the destination) is unable to process a correctly formed | (usually the destination) is unable to process a correctly formed | |||
extension header or option. If these messages are not returned to | extension header or option. If these messages are not returned to | |||
the source communication cannot be established, as the source would | the source, communication cannot be established, as the source would | |||
need to adapt its choice of options probably because the destination | need to adapt its choice of options probably because the destination | |||
does not implement these capabilities. Hence these messages need to | does not implement these capabilities. Hence, these messages need to | |||
be generated and allowed for effective IPv6 communications. | be generated and allowed for effective IPv6 communications. | |||
Code 0 (Erroneous Header) messages indicate a malformed extension | Code 0 (Erroneous Header) messages indicate a malformed extension | |||
header generally as a result of incorrectly generated packets. Hence | header generally as a result of incorrectly generated packets. | |||
these messages are useful for debugging purposes but it is unlikely | Hence, these messages are useful for debugging purposes, but it is | |||
that a node generating such packets could establish communications | unlikely that a node generating such packets could establish | |||
without human intervention to correct the problem. | communications without human intervention to correct the problem. | |||
Code 2 messages, only, can be generated for packets with multicast | Code 2 messages, only, can be generated for packets with multicast | |||
destination addresses. | destination addresses. | |||
It is possible that attackers may seek to probe or scan a network by | It is possible that attackers may seek to probe or scan a network by | |||
deliberately generating packets with unknown extension headers or | deliberately generating packets with unknown extension headers or | |||
options, or faulty headers. If nodes generate Parameter Problem | options or with faulty headers. If nodes generate Parameter Problem | |||
error messages in all cases and these outgoing messages are allowed | error messages in all cases and these outgoing messages are allowed | |||
through firewalls, the attacker may be able to identify active | through firewalls, the attacker may be able to identify active | |||
addresses that can be probed further or learn about the network | addresses that can be probed further or learn about the network | |||
topology. The vulnerability could be mitigated whilst helping to | topology. The vulnerability could be mitigated whilst helping to | |||
establish communications if the firewall was able to examine such | establish communications if the firewall was able to examine such | |||
error messages in depth and was configured to only allow Parameter | error messages in depth and was configured to only allow Parameter | |||
Problem messages for headers which had been standardized but were not | Problem messages for headers that had been standardized but were not | |||
supported in the protected network. If the network administrator | supported in the protected network. If the network administrator | |||
believes that all nodes in the network support all legitimate | believes that all nodes in the network support all legitimate | |||
extension headers then it would be reasonable to drop all outgoing | extension headers, then it would be reasonable to drop all outgoing | |||
Parameter Problem messages. Note that this is not a major | Parameter Problem messages. Note that this is not a major | |||
vulnerability in a well-designed IPv6 network because of the | vulnerability in a well-designed IPv6 network because of the | |||
difficulties of performing scanning attacks (see Section 3.2). | difficulties of performing scanning attacks (see Section 3.2). | |||
A.5. ICMPv6 Echo Request and Echo Response | A.5. ICMPv6 Echo Request and Echo Response | |||
Echo Request (Type 128) uses unicast addresses as source addresses, | Echo Request (Type 128) uses unicast addresses as source addresses, | |||
but may be sent to any legal IPv6 address, including multicast and | but may be sent to any legal IPv6 address, including multicast and | |||
anycast addresses [RFC4443]. Echo Requests travel end-to-end. | anycast addresses [RFC4443]. Echo Requests travel end-to-end. | |||
Similarly Echo Responses (Type 129) travel end-to-end and would have | Similarly, Echo Responses (Type 129) travel end-to-end and would have | |||
a unicast address as destination and either a unicast or anycast | a unicast address as destination and either a unicast or anycast | |||
address as source. They are mainly used in combination for | address as source. They are mainly used in combination for | |||
monitoring and debugging connectivity. Their only role in | monitoring and debugging connectivity. Their only role in | |||
establishing communication is that they are required when verifying | establishing communication is that they are required when verifying | |||
connectivity through Teredo tunnels[RFC4380]: Teredo tunneling to | connectivity through Teredo tunnels[RFC4380]: Teredo tunneling to | |||
IPv6 nodes on the site will not be possible if these messages are | IPv6 nodes on the site will not be possible if these messages are | |||
blocked. It is not thought that there is a significant risk from | blocked. It is not thought that there is a significant risk from | |||
scanning attacks on a well-designed IPv6 network (see Section 3.2) | scanning attacks on a well-designed IPv6 network (see Section 3.2), | |||
and so connectivity checks should be allowed by default. | and so connectivity checks should be allowed by default. | |||
A.6. Neighbor Solicitation and Neighbor Advertisement Messages | A.6. Neighbor Solicitation and Neighbor Advertisement Messages | |||
ICMPv6 Neighbor Solicitation and Neighbor Advertisement (Type 135 and | ICMPv6 Neighbor Solicitation and Neighbor Advertisement (Type 135 and | |||
136) messages are essential to the establishment and maintenance of | 136) messages are essential to the establishment and maintenance of | |||
communications on the local link. Firewalls need to generate and | communications on the local link. Firewalls need to generate and | |||
accept these messages to allow them to establish and maintain | accept these messages to allow them to establish and maintain | |||
interfaces onto their connected links. | interfaces onto their connected links. | |||
Note that the address scopes of the source and destination addresses | Note that the address scopes of the source and destination addresses | |||
on Neighbor Solicitations and Neighbor Advertisements may not match. | on Neighbor Solicitations and Neighbor Advertisements may not match. | |||
The exact functions which these messages will be carrying out depends | The exact functions that these messages will be carrying out depends | |||
on the mechanism being used to configure IPv6 addresses on the link | on the mechanism being used to configure IPv6 addresses on the link | |||
(Stateless, Stateful or Static configuration). | (Stateless, Stateful, or Static configuration). | |||
A.7. Router Solicitation and Router Advertisement Messages | A.7. Router Solicitation and Router Advertisement Messages | |||
ICMPv6 Router Solicitation and Router Advertisement(Type 133 and 134) | ICMPv6 Router Solicitation and Router Advertisement (Type 133 and | |||
messages are essential to the establishment and maintenance of | 134) messages are essential to the establishment and maintenance of | |||
communications on the local link. Firewalls need to generate (since | communications on the local link. Firewalls need to generate (since | |||
the firewall will generally be behaving as a router) and accept these | the firewall will generally be behaving as a router) and accept these | |||
messages to allow them to establish and maintain interfaces onto | messages to allow them to establish and maintain interfaces onto | |||
their connected links. | their connected links. | |||
A.8. Redirect Messages | A.8. Redirect Messages | |||
ICMPv6 Redirect Messages(Type 137) are used on the local link to | ICMPv6 Redirect Messages(Type 137) are used on the local link to | |||
indicate that nodes are actually link-local and communications need | indicate that nodes are actually link-local and communications need | |||
not go via a router, or to indicate a more appropriate first hop | not go via a router, or to indicate a more appropriate first-hop | |||
router. Although they can be used to make communications more | router. Although they can be used to make communications more | |||
efficient, they are not essential to the establishment of | efficient, they are not essential to the establishment of | |||
communications and may be a security vulnerability, particularly if a | communications and may be a security vulnerability, particularly if a | |||
link is not physically secured. Conformant nodes are required to | link is not physically secured. Conformant nodes are required to | |||
provide configuration controls which suppress the generation of | provide configuration controls that suppress the generation of | |||
Redirect messages and allow them to be ignored on reception. Using | Redirect messages and allow them to be ignored on reception. Using | |||
Redirect messages on, for example, a wireless link without link level | Redirect messages on, for example, a wireless link without link level | |||
encryption/authentication is particularly hazardous because the link | encryption/authentication is particularly hazardous because the link | |||
is open to eavesdropping and packet injection. | is open to eavesdropping and packet injection. | |||
A.9. SEND Certificate Path Messages | A.9. SEND Certificate Path Messages | |||
SEND [RFC3971] uses two messages (Certificate Path Solicitation and | SEND [RFC3971] uses two messages (Certificate Path Solicitation and | |||
Advertisement - Types 148 and 149) sent from nodes to supposed | Advertisement - Types 148 and 149) sent from nodes to supposed | |||
routers on the same local link to obtain a certificate path which | routers on the same local link to obtain a certificate path that will | |||
will allow the node to authenticate the router's claim to provide | allow the node to authenticate the router's claim to provide routing | |||
routing services for certain prefixes. If a link connected to a | services for certain prefixes. If a link connected to a firewall/ | |||
firewall/router is using SEND, the firewall must be able to exchange | router is using SEND, the firewall must be able to exchange these | |||
these messages with nodes on the link that will use its routing | messages with nodes on the link that will use its routing services. | |||
services. | ||||
A.10. Multicast Listener Discovery Messages | A.10. Multicast Listener Discovery Messages | |||
Multicast Listener Discovery (MLD) version 1 [RFC2710] (Listener | Multicast Listener Discovery (MLD) version 1 [RFC2710] (Listener | |||
Query, Listener Report and Listener Done - Types 130, 131 and 132) | Query, Listener Report, and Listener Done - Types 130, 131, and 132) | |||
and version 2 [RFC3810] (Listener Query and Listener Report Version 2 | and version 2 [RFC3810] (Listener Query and Listener Report version 2 | |||
- Types 130 and 143) messages are sent on the local link to | - Types 130 and 143) messages are sent on the local link to | |||
communicate between multicast capable routers and nodes which wish to | communicate between multicast-capable routers and nodes that wish to | |||
join or leave specific multicast groups. Firewalls need to be able | join or leave specific multicast groups. Firewalls need to be able | |||
to generate Listener messages in order to establish communications | to generate Listener messages in order to establish communications | |||
and may generate all the messages if they also provide multicast | and may generate all the messages if they also provide multicast | |||
routing services. | routing services. | |||
A.11. Multicast Router Discovery Messages | A.11. Multicast Router Discovery Messages | |||
Multicast Router Discovery [RFC4286] (Router Advertisement, Router | Multicast Router Discovery [RFC4286] (Router Advertisement, Router | |||
Solicitation and Router Termination - Types 151, 152 and 153) | Solicitation, and Router Termination - Types 151, 152, and 153) | |||
messages are sent by nodes on the local link to discover multicast | messages are sent by nodes on the local link to discover multicast- | |||
capable routers on the link, and by multicast capable routers to | capable routers on the link, and by multicast-capable routers to | |||
notify other nodes of their existence or change of state. Firewalls | notify other nodes of their existence or change of state. Firewalls | |||
which also act as multicast routers need to process these messages on | that also act as multicast routers need to process these messages on | |||
their interfaces. | their interfaces. | |||
A.12. Router Renumbering Messages | A.12. Router Renumbering Messages | |||
ICMPv6 Router Renumbering (Type 138) command messages can be received | ICMPv6 Router Renumbering (Type 138) command messages can be received | |||
and results messages sent by routers to change the prefixes which | and results messages sent by routers to change the prefixes that they | |||
they advertise as part of Stateless Address Configuration [RFC2461], | advertise as part of Stateless Address Configuration [RFC2461], | |||
[RFC2462]. These messages are sent end-to-end to either the all- | [RFC2462]. These messages are sent end-to-end to either the all- | |||
routers multicast address (site or local scope) or specific unicast | routers multicast address (site or local scope) or specific unicast | |||
addresses from a unicast address. | addresses from a unicast address. | |||
Router Renumbering messages are required to be protected by IPsec | Router Renumbering messages are required to be protected by IPsec | |||
authentication since they could be readily misused by attackers to | authentication since they could be readily misused by attackers to | |||
disrupt or divert site communications. Renumbering messages should | disrupt or divert site communications. Renumbering messages should | |||
generally be confined to sites for this reason. | generally be confined to sites for this reason. | |||
A.13. Node Information Query and Reply | A.13. Node Information Query and Reply | |||
ICMPv6 Node Information Query and Reply (Type 139 and 140) messages | ICMPv6 Node Information Query and Reply (Type 139 and 140) messages | |||
defined in [RFC4620] are sent end-to-end between unicast addresses, | defined in [RFC4620] are sent end-to-end between unicast addresses, | |||
and can also be sent to link-local multicast addresses. They can, in | and they can also be sent to link-local multicast addresses. They | |||
theory, be sent from any node to any other but it would generally not | can, in theory, be sent from any node to any other, but it would | |||
be desirable for nodes outside the local site to be able to send | generally not be desirable for nodes outside the local site to be | |||
queries to nodes within the site. Also these messages are not | able to send queries to nodes within the site. Also, these messages | |||
required to be authenticated. | are not required to be authenticated. | |||
A.14. Mobile IPv6 Messages | A.14. Mobile IPv6 Messages | |||
Mobile IPv6 [RFC3775] defines four ICMPv6 messages which are used to | Mobile IPv6 [RFC3775] defines four ICMPv6 messages that are used to | |||
support mobile operations: Home Agent Address Discovery Request, Home | support mobile operations: Home Agent Address Discovery Request, Home | |||
Agent Address Discovery Reply, Mobile Prefix Solicitation and ICMP | Agent Address Discovery Reply, Mobile Prefix Solicitation, and ICMP | |||
Mobile Prefix Advertisement(Type 144, 145, 146 and 147) messages. | Mobile Prefix Advertisement (Type 144, 145, 146, and 147) messages. | |||
These messages are sent end-to-end between unicast addresses of a | These messages are sent end-to-end between unicast addresses of a | |||
mobile node and its home agent. They must be expected to be sent | mobile node and its home agent. They must be expected to be sent | |||
from outside a site and must traverse site-boundary firewalls to | from outside a site and must traverse site-boundary firewalls to | |||
reach the home agent in order for Mobile IPv6 to function. The two | reach the home agent in order for Mobile IPv6 to function. The two | |||
Mobile prefix messages should be protected by the use of IPsec | Mobile prefix messages should be protected by the use of IPsec | |||
authentication. | authentication. | |||
o If the site provides home agents for mobile nodes, the firewall | o If the site provides home agents for mobile nodes, the firewall | |||
must allow incoming Home Agent Address Discovery Request and | must allow incoming Home Agent Address Discovery Request and | |||
Mobile Prefix Solicitation messages, and outgoing Home Agent | Mobile Prefix Solicitation messages, and outgoing Home Agent | |||
Address Discovery Reply and ICMP Mobile Prefix Advertisement | Address Discovery Reply and ICMP Mobile Prefix Advertisement | |||
messages. It may be desirable to limit the destination addresses | messages. It may be desirable to limit the destination addresses | |||
for the incoming messages to links that are known to support home | for the incoming messages to links that are known to support home | |||
agents. | agents. | |||
o If the site is prepared to host roaming mobile nodes, the firewall | o If the site is prepared to host roaming mobile nodes, the firewall | |||
must allow outgoing Home Agent Address Discovery Request and | must allow outgoing Home Agent Address Discovery Request and | |||
Mobile Prefix Solicitation messages, and incoming Home Agent | Mobile Prefix Solicitation messages, and incoming Home Agent | |||
Address Discovery Reply and ICMP Mobile Prefix Advertisement | Address Discovery Reply and ICMP Mobile Prefix Advertisement | |||
messages. | messages. | |||
o Administrators may find it desirable to prevent static nodes which | ||||
o Administrators may find it desirable to prevent static nodes that | ||||
are normally resident on the site from behaving as mobile nodes by | are normally resident on the site from behaving as mobile nodes by | |||
dropping Mobile IPv6 messages from these nodes. | dropping Mobile IPv6 messages from these nodes. | |||
A.15. Unused and Experimental Messages | A.15. Unused and Experimental Messages | |||
A large number of ICMPv6 Type values are currently unused. These | A large number of ICMPv6 Type values are currently unused. These | |||
values have not had a specific function registered with IANA. This | values have not had a specific function registered with IANA. This | |||
section describes how to treat messages which attempt to use these | section describes how to treat messages that attempt to use these | |||
Type values in a way of which the network administrator (and hence | Type values in a way of which the network administrator (and hence | |||
the firewall) is not aware. | the firewall) is not aware. | |||
[RFC4443] defines a number of experimental Type values for ICMPv6 | [RFC4443] defines a number of experimental Type values for ICMPv6 | |||
Error and Informational messages, which could be used in site | Error and Informational messages, which could be used in site- | |||
specific ways. These values should be treated in the same way as | specific ways. These messages should be dropped by transit networks | |||
values which are not registered by IANA unless the network | and at site edges. They should also not be propagated within sites | |||
administrator is explicitly made aware of usage. | unless the network administrator is explicitly made aware of usage. | |||
The codes reserved for future extension of the ICMPv6 Type space | The codes reserved for future extension of the ICMPv6 Type space | |||
should currently be dropped as this functionality is as yet | should currently be dropped as this functionality is as yet | |||
undefined. | undefined. | |||
Any ICMPv6 Informational messages of which the firewall is not aware | Any ICMPv6 Informational messages of which the firewall is not aware | |||
should not be allowed to pass through the firewall or be accepted for | should be allowed to transit through the firewall but should not be | |||
local delivery on any of its interfaces. | accepted for local delivery on any of its interfaces. | |||
Any incoming ICMPv6 Error messages of which the firewall is not aware | Unknown ICMPv6 Error messages should be allowed to pass through | |||
may be allowed through the firewall in line with the specification in | transit networks. At end site boundaries any incoming ICMPv6 Error | |||
[RFC4443], which requests delivery of unknown error messages to | messages of which the firewall is not aware may be allowed through | |||
higher layer protocol processes. However, administrators may wish to | the firewall in line with the specification in [RFC4443], which | |||
disallow forwarding of these incoming messages as a potential | requests delivery of unknown error messages to higher-layer protocol | |||
security risk. Unknown outgoing Error messages should be dropped as | processes. However, administrators may wish to disallow forwarding | |||
the administrator should be aware of all messages that could be | of these incoming messages as a potential security risk. Unknown | |||
generated on the site. | outgoing Error messages should be dropped as the administrator should | |||
be aware of all messages that could be generated on the site. | ||||
Also the Seamoby working group has had an ICMPv6 message (Type 150) | Also, the SEAMOBY working group has had an ICMPv6 message (Type 150) | |||
allocated for experimental use in two protocols. This message is | allocated for experimental use in two protocols. This message is | |||
sent end-to-end and may need to pass through firewalls on sites that | sent end-to-end and may need to pass through firewalls on sites that | |||
are supporting the experimental protocols. | are supporting the experimental protocols. | |||
Appendix B. Example Script to Configure ICMPv6 Firewall Rules | Appendix B. Example Script to Configure ICMPv6 Firewall Rules | |||
This appendix contains an example script to implement most of the | This appendix contains an example script to implement most of the | |||
rules suggested in this document when using the Netfilter packet | rules suggested in this document when using the Netfilter packet | |||
filtering system for Linux [netfilter]. When used with IPv6, the | filtering system for Linux [netfilter]. When used with IPv6, the | |||
'ip6tables' command is used to configure packet filtering rules for | 'ip6tables' command is used to configure packet filtering rules for | |||
skipping to change at page 35, line 29 | skipping to change at page 37, line 29 | |||
Example Netfilter Configuration Script for ICMPv6 Filtering | Example Netfilter Configuration Script for ICMPv6 Filtering | |||
Authors' Addresses | Authors' Addresses | |||
Elwyn B. Davies | Elwyn B. Davies | |||
Consultant | Consultant | |||
Soham, Cambs | Soham, Cambs | |||
UK | UK | |||
Phone: +44 7889 488 335 | Phone: +44 7889 488 335 | |||
Email: elwynd@dial.pipex.com | EMail: elwynd@dial.pipex.com | |||
Janos Mohacsi | Janos Mohacsi | |||
NIIF/HUNGARNET | NIIF/HUNGARNET | |||
Victor Hugo u. 18-22 | Victor Hugo u. 18-22 | |||
Budapest, H-1132 | Budapest, H-1132 | |||
Hungary | Hungary | |||
Phone: +36 1 4503070 | Phone: +36 1 4503070 | |||
Email: mohacsi@niif.hu | EMail: mohacsi@niif.hu | |||
Full Copyright Statement | Full Copyright Statement | |||
Copyright (C) The IETF Trust (2007). | Copyright (C) The IETF Trust (2007). | |||
This document is subject to the rights, licenses and restrictions | This document is subject to the rights, licenses and restrictions | |||
contained in BCP 78, and except as set forth therein, the authors | contained in BCP 78, and except as set forth therein, the authors | |||
retain all their rights. | retain all their rights. | |||
This document and the information contained herein are provided on an | This document and the information contained herein are provided on an | |||
skipping to change at page 36, line 45 | skipping to change at page 38, line 45 | |||
such proprietary rights by implementers or users of this | such proprietary rights by implementers or users of this | |||
specification can be obtained from the IETF on-line IPR repository at | specification can be obtained from the IETF on-line IPR repository at | |||
http://www.ietf.org/ipr. | http://www.ietf.org/ipr. | |||
The IETF invites any interested party to bring to its attention any | The IETF invites any interested party to bring to its attention any | |||
copyrights, patents or patent applications, or other proprietary | copyrights, patents or patent applications, or other proprietary | |||
rights that may cover technology that may be required to implement | rights that may cover technology that may be required to implement | |||
this standard. Please address the information to the IETF at | this standard. Please address the information to the IETF at | |||
ietf-ipr@ietf.org. | ietf-ipr@ietf.org. | |||
Acknowledgment | Acknowledgement | |||
Funding for the RFC Editor function is provided by the IETF | Funding for the RFC Editor function is currently provided by the | |||
Administrative Support Activity (IASA). | Internet Society. | |||
End of changes. 223 change blocks. | ||||
358 lines changed or deleted | 406 lines changed or added | |||
This html diff was produced by rfcdiff 1.33. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |