- Zone-Based Policy Firewalls
- Zone-Based Policy Firewall IPv6 Support
- VRF-Aware Cisco IOS XE Firewall
- Layer 2 Transparent Firewalls
- Nested Class Map Support for Zone-Based Policy Firewall
- Zone Mismatch Handling
- Configuring Firewall Stateful Interchassis Redundancy
- Box-to-Box High Availability Support for IPv6 Zone-Based Firewalls
- Interchassis Asymmetric Routing Support for Zone-Based Firewall and NAT
- Interchassis High Availability Support in IPv6 Zone-Based Firewalls
- Firewall Box to Box High Availability Support for Cisco CSR1000v Routers
- Firewall Stateful Inspection of ICMP
- Firewall Support of Skinny Client Control Protocol
- Configuring the VRF-Aware Software Infrastructure
- IPv6 Zone-Based Firewall Support over VASI Interfaces
- Protection Against Distributed Denial of Service Attacks
- Configuring Firewall Resource Management
- IPv6 Firewall Support for Prevention of Distributed Denial of Service Attacks and Resource Management
- Configurable Number of Simultaneous Packets per Flow
- LISP and Zone-Based Firewalls Integration and Interoperability
- Firewall High-Speed Logging
- TCP Reset Segment Control
- Loose Checking Option for TCP Window Scaling in Zone-Based Policy Firewall
- Enabling ALGs and AICs in Zone-Based Policy Firewalls
- Configuring Firewall TCP SYN Cookie
- Object Groups for ACLs
- Cisco Firewall-SIP Enhancements ALG
- MSRPC ALG Support for Firewall and NAT
- Sun RPC ALG Support for Firewalls and NAT
- vTCP for ALG Support
- ALG—H.323 vTCP with High Availability Support for Firewall and NAT
- FTP66 ALG Support for IPv6 Firewalls
- SIP ALG Hardening for NAT and Firewall
- SIP ALG Resilience to DoS Attacks
- Zone-Based Firewall ALG and AIC Conditional Debugging and Packet Tracing Support
- Finding Feature Information
- Restrictions for FTP66 ALG Support for IPv6 Firewalls
- Information About FTP66 ALG Support for IPv6 Firewalls
- How to Configure FTP66 ALG Support for IPv6 Firewalls
- Configuration Examples for FTP66 ALG Support for IPv6 Firewalls
- Additional References for FTP66 ALG Support for IPv6 Firewalls
- Feature Information for FTP66 ALG Support for IPv6 Firewalls
FTP66 ALG Support for IPv6 Firewalls
The FTP66 ALG Support for IPv6 Firewalls feature allows FTP to work with IPv6 firewalls. This module describes how to configure a firewall, Network Address Translation (NAT), and Stateful NAT64 to work with the FTP66 application-level gateway (ALG).
- Finding Feature Information
- Restrictions for FTP66 ALG Support for IPv6 Firewalls
- Information About FTP66 ALG Support for IPv6 Firewalls
- How to Configure FTP66 ALG Support for IPv6 Firewalls
- Configuration Examples for FTP66 ALG Support for IPv6 Firewalls
- Additional References for FTP66 ALG Support for IPv6 Firewalls
- Feature Information for FTP66 ALG Support for IPv6 Firewalls
Finding Feature Information
Your software release may not support all the features documented in this module. For the latest caveats and feature information, see Bug Search Tool and the release notes for your platform and software release. To find information about the features documented in this module, and to see a list of the releases in which each feature is supported, see the feature information table.
Use Cisco Feature Navigator to find information about platform support and Cisco software image support. To access Cisco Feature Navigator, go to www.cisco.com/go/cfn. An account on Cisco.com is not required.
Restrictions for FTP66 ALG Support for IPv6 Firewalls
Information About FTP66 ALG Support for IPv6 Firewalls
Application-Level Gateways
-
Allow client applications to use dynamic TCP or UDP ports to communicate with the server application.
-
Recognize application-specific commands and offer granular security control over them.
-
Synchronize multiple streams or sessions of data between two hosts that are exchanging data.
-
Translate the network-layer address information that is available in the application payload.
The firewall opens a pinhole, and NAT performs translation service on any TCP or UDP traffic that does not carry the source and destination IP addresses in the application-layer data stream. Specific protocols or applications that embed IP address information require the support of an ALG.
FTP66 ALG Support Overview
Firewalls support the inspection of IPv6 packets and stateful Network Address Translation 64 (NAT64). For FTP to work over IPv6 packet inspection, the application-layer gateway (ALG) (also called the application-level gateway [ALG]), FTP66, is required. The FTP66 ALG is also called all-in-one FTP ALG and one FTP ALG.
-
Packet segmentation attack—The FTP ALG state machine can detect segmented packets, and the state machine processing is stopped until a complete packet is received.
-
Bounce attack—The FTP ALG does not create doors (for NAT) or pinholes (for firewalls) with a data port number less than 1024. The prevention of a bounce attack is activated only when the firewall is enabled.
FTP Commands Supported by FTP66 ALG
The FTP66 application-level gateway (ALG) is based on RFC 959. This section describes the main RFC 959 and RFC 2428 FTP commands and responses that the FTP66 ALG processes.
PORT Command
The PORT command is used in active FTP mode. The PORT command specifies the address and the port number to which a server should connect. When you use this command, the argument is a concatenation of a 32-bit Internet host address and a 16-bit TCP port address. The address information is broken into 8-bit fields, and the value of each field is transmitted as a decimal number (in character string representation). The fields are separated by commas.
PORT h1,h2,h3,h4,p1,p2
PASV Command
The PASV command requests a server to listen on a data port that is not the default data port of the server and to wait for a connection, rather than initiate another connection, when a TRANSFER command is received. The response to the PASV command includes the host and port address the server is listening on.
Extended FTP Commands
Extended FTP commands provide a method by which FTP can communicate the data connection endpoint information for network protocols other than IPv4. Extended FTP commands are specified in RFC 2428. In RFC 2428, the extended FTP commands EPRT and EPSV, replace the FTP commands PORT and PASV, respectively.
EPRT Command
The EPRT command allows you to specify an extended address for data connection. The extended address must consist of a network protocol, network address, and transport address. The format of an EPRT command is as follows:
EPRT<space><d><net-prt><d><net-addr><d><tcp-port><d>
-
The <net-prt> argument must be an address family number and must be defined as described in the table below.
Table 1 The <net-prt> Argument Definitions Address Family Number
Protocol
1
IPv4 (Pos81a)
2
IPv6 (DH96)
-
The <net-addr> argument is a protocol-specific string representation of the network address. For the two address family numbers specified in the table above (address family numbers 1 and 2), the addresses must be in the format listed in the table below.
Address Family Number
Address Format
Example
1
Dotted decimal
10.135.1.2
2
IPv6 string representations defined in DH96
2001:DB8:1::1
-
The <tcp-port> argument must be a string representation of the number of the TCP port on which the host is listening for data connection.
-
The following command shows how to specify the server to use an IPv4 address to open a data connection to host 10.235.1.2 on TCP port 6275: EPRT |1|10.235.1.2|6275|
-
The following command shows how to specify the server to use an IPv6 network protocol and a network address to open a TCP data connection on port 5282: EPRT |2|2001:DB8:2::2:417A|5282|
-
The <d> argument is the delimiter character and it must be in ASCII format, in the range from 33 to 126.
EPSV Command
The EPSV command requests that a server listen on a data port and wait for a connection. The response to this command includes only the TCP port number of the listening connection. The response code for entering passive mode by using an extended address must be 229.
(<d><d><d><tcp-port><d>)
-
The portion of the string enclosed in parentheses must be the exact string needed by the EPRT command to open the data connection.
The first two fields in parentheses must be blank. The third field must be a string representation of the TCP port number on which the server is listening for a data connection. The network protocol used by the data connection is the same network protocol used by the control connection. The network address used to establish the data connection is the same network address used for the control connection.
-
The following is a sample response string: Entering Extended Passive Mode (|||6446|)
The following FTP responses and commands are also processed by the FTP66 ALG. The results of processing these commands are used to drive the transition in the state machine.
How to Configure FTP66 ALG Support for IPv6 Firewalls
Configuring a Firewall for FTP66 ALG Support
You need to explicitly enable the FTP66 ALG by using the match protocol ftp command.
1.
enable
2.
configure terminal
3.
class-map type inspect match-any
class-map-name
4.
match protocol
protocol-name
5.
exit
6.
policy-map type inspect
policy-map-name
7.
class type inspect
class-map-name
8.
inspect
9.
exit
10.
class class-default
11.
exit
12.
exit
13.
zone security
zone-name
14.
exit
15.
zone-pair security
zone-pair
source
source-zone
destination
destination-zone
16.
service-policy type inspect
policy-map-name
17.
exit
18.
interface
type number
19.
no ip address
20.
ip virtual-reassembly
21.
zone-member security
zone-name
22.
negotiation auto
23.
ipv6 address
ipv6-address/prefix-length
24.
cdp enable
25.
exit
26.
ipv6 route
ipv6-prefix/prefix-length interface-type interface-number
27.
ipv6 neighbor
ipv6-address interface-type interface-number hardware-address
28.
end
DETAILED STEPS
Configuring NAT for FTP66 ALG Support
1.
enable
2.
configure terminal
3.
interface
type number
4.
ip address
ip-address mask
5.
ip nat inside
6.
zone-member security
zone-name
7.
exit
8.
interface
type number
9.
ip address
ip-address mask
10.
ip nat outside
11.
zone-member security
zone-name
12.
exit
13.
ip nat inside source static
local-ip global-ip
14.
end
DETAILED STEPS
Configuring NAT64 for FTP66 ALG Support
1.
enable
2.
configure terminal
3.
ipv6 unicast-routing
4.
interface
type number
5.
no ip address
6.
ipv6 virtual-reassembly
7.
zone-member security
zone-name
8.
negotiation auto
9.
ipv6 address
ipv6-address
10.
ipv6 enable
11.
nat64 enable
12.
cdp enable
13.
exit
14.
interface
type number
15.
ip address
type number
16.
ip virtual-reassembly
17.
zone member security
zone-name
18.
negotiation auto
19.
nat64 enable
20.
exit
21.
ipv6 route
ipv6-address interface-type interface-number
22.
ipv6 neighbor
ipv6-address interface-type interface-number hardware-address
23.
nat64 v6v4 static
ipv6-address ipv4-address
24.
end
DETAILED STEPS
Configuration Examples for FTP66 ALG Support for IPv6 Firewalls
Example: Configuring an IPv6 Firewall for FTP66 ALG Support
Device# configure terminal Device(config)# class-map type inspect match-any in2out-class Device(config-cmap)# match protocol ftp Device(config-cmap)# exit Device(config)# policy-map type inspect in-to-out Device(config-pmap)# class type inspect in2out-class Device(config-pmap-c)# inspect Device(config-pmap-c)# exit Device(config-pmap)# class class-default Device(config-pmap-c)# exit Device(config-pmap)# exit Device(config)# zone security inside Device(config-sec-zone)# exit Device(config)# zone security outside Device(config-sec-zone)# exit Device(config)# zone-pair security in2out source inside destination outside Device(config-sec-zone-pair)# service-policy type inspect in-to-out Device(config-sec-zone-pair)# exit Device(config)# interface gigabitethernet 0/0/1 Device(config-if)# no ip address Device(config-if)# ip virtual-reassembly Device(config-if)# zone-member security inside Device(config-if)# negotiation auto Device(config-if)# ipv6 address 2001:DB8:1::1/96 Device(config-if)# cdp enable Device(config-if)# exit Device(config)# interface gigabitethernet 0/1/1 Device(config-if)# no ip address Device(config-if)# ip virtual-reassembly Device(config-if)# zone-member security outside Device(config-if)# negotiation auto Device(config-if)# ipv6 address 2001:DB8:2::2/96 Device(config-if)# exit Device(config)# ipv6 route 2001::/96 gigabitethernet 0/0/1 Device(config)# ipv6 route 2001::/96 gigabitethernet 0/1/1 Device(config)# ipv6 neighbor 2001:DB8:1::1 gigabitethernet 0/0/1 0000.29f1.4841 Device(config)# ipv6 neighbor 2001:DB8:2::2 gigabitethernet 0/1/1 0000.29f1.4842 Device(config)# end
Example: Configuring NAT for FTP66 ALG Support
Device# configure terminal Device(config)# interface gigabitethernet 0/1/2 Device(config-if)# ip address 10.1.1.1 255.255.255.0 Device(config-if)# ip nat inside Device(config-if)# zone-member security inside Device(config-if)# exit Device(config)# interface gigabitethernet 0/1/1 Device(config-if)# ip address 10.2.1.1 255.255.255.0 Device(config-if)# ip nat outside Device(config-if)# zone-member security outside Device(config-if)# exit Device(config-if)# ip nat inside source static 10.1.1.10 10.1.1.80
Example: Configuring NAT64 for FTP66 ALG Support
Device# configure terminal Device(config)# ipv6 unicast-routing Device(config)# interface gigabitethernet 0/0/0 Device(config-if)# no ip address Device(config-if)# ipv6 virtual-reassembly Device(config-if)# zone-member security inside Device(config-if)# negotiation auto Device(config-if)# ipv6 address 2001:DB8:1::2/96 Device(config-if)# ipv6 enable Device(config-if)# nat64 enable Device(config-if)# cdp enable Device(config-if)# exit Device(config)# interface gigabitethernet 0/1/1 Device(config-if)# ip address 209.165.201.25 255.255.255.0 Device(config-if)# ip virtual-reassembly Device(config-if)# zone member security outside Device(config-if)# negotiation auto Device(config-if)# nat64 enable Device(config-if)# exit Device(config)# ipv6 route 2001:DB8:1::2/96 gigabitethernet 0/0/0 Device(config)# 2001:DB8:1::103 gigabitethernet 0/0/0 0000.29f1.4841 Device(config)# nat64 v6v4 static 2001:DB8:1::103 209.165.201.32
Additional References for FTP66 ALG Support for IPv6 Firewalls
Related Documents
Related Topic |
Document Title |
---|---|
Cisco IOS commands |
|
Security commands |
|
NAT commands |
Standards and RFCs
Standard/RFC |
Title |
---|---|
RFC 959 |
File Transfer Protocol |
RFC 2428 |
FTP Extensions for IPv6 and NATs |
Technical Assistance
Description |
Link |
---|---|
The Cisco Support and Documentation website provides online resources to download documentation, software, and tools. Use these resources to install and configure the software and to troubleshoot and resolve technical issues with Cisco products and technologies. Access to most tools on the Cisco Support and Documentation website requires a Cisco.com user ID and password. |
Feature Information for FTP66 ALG Support for IPv6 Firewalls
The following table provides release information about the feature or features described in this module. This table lists only the software release that introduced support for a given feature in a given software release train. Unless noted otherwise, subsequent releases of that software release train also support that feature.
Use Cisco Feature Navigator to find information about platform support and Cisco software image support. To access Cisco Feature Navigator, go to www.cisco.com/go/cfn. An account on Cisco.com is not required.Feature Name |
Releases |
Feature Information |
---|---|---|
FTP66 ALG Support for IPv6 Firewalls |
Cisco IOS XE Release 3.7S |
The FTP66 ALG Support for IPv6 Firewalls feature allows FTP to work with IPv6 firewalls. This module describes how to configure a firewall, Network Address Translation (NAT), and NAT64 to work with the FTP66 application-level gateway (ALG). |