14-Security Configuration Guide

HomeSupportResource CenterH3C FAT AP Configuration Guide(R5436)-6W10114-Security Configuration Guide
09-Session management
Title Size Download
09-Session management 90.29 KB

Managing sessions

About session management

Session management is a common module, providing basic services for and attack detection and protection to implement their session-based services.

Session management defines packet exchanges at transport layer as sessions. It updates session states and ages out sessions according to data flows from the initiators or responders. Session management allows multiple features to process the same service packet.

Session management operation

Session management tracks the session status by inspecting the transport layer protocol information. It performs unified status maintenance and management of all connections based on session tables and relation tables.

When a connection request passes through the device from a client to a server, the device creates a session entry. The entry can contain the request and response information, such as:

·     Source IP address and port number.

·     Destination IP address and port number.

·     Transport layer protocol.

·     Application layer protocol.

·     Protocol state of the session.

A multichannel protocol requires that the client and the server negotiate a new connection based on an existing connection to implement an application. Session management enables the device to create a relation entry for each connection during the negotiation phase. The entry is used to associate the connection with the application. Relation entries will be removed after the associated connections are established.

If the destination IP address of a packet is a multicast IP address, the packet will be forwarded out of multiple ports. When a multicast connection request is received on an inbound interface, the device performs the following operations:

·     Creates a multicast session entry on the inbound interface.

·     Creates a corresponding multicast session entry for each outbound interface.

Unless otherwise stated, "session entry" in this chapter refers to both unicast and multicast session entries.

In actual applications, session management works with security modules to dynamically determine whether a packet can pass the firewall and enter the internal network according to connection status, thus preventing intrusion.

Session management only tracks connection status. It does not block potential attack packets.

Session management functions

Session management enables the device to provide the following functions:

·     Creates sessions for protocol packets, updates session states, and sets aging time for sessions in different protocol states.

·     Sets aging time for sessions based on application layer protocols.

·     Supports ICMP/ICMPv6 error packet mapping, enabling the device to search for original sessions according to the payloads in the ICMP/ICMPv6 error packets.

Because error packets are generated due to host errors, the mapping can help speed up the aging of the original sessions.

·     Supports persistent sessions, which are kept alive for a long period of time.

·     Supports session management for the control channels and dynamic data channels of application layer protocols, for example, FTP.

·     Supports real-time synchronization for sessions and for dynamic entries of session-based services, such as .

Restrictions and guidelines: Session management configuration

For a TCP session in ESTABLISHED state, the priority order of the associated aging time is as follows:

·     Aging time for persistent sessions.

·     Aging time for sessions of application layer protocols.

·     Aging time for sessions in different protocol states.

If the device has excessive sessions, do not set the aging time shorter than the default for a certain protocol state or an application layer protocol. Short aging time settings can make the device slow in response.

Setting the session aging time for different protocol states

About this task

If a session in a certain protocol state has no packet hit before the aging time expires, the device automatically removes the session.

Procedure

1.     Enter system view.

system-view

2.     Set the session aging time for different protocol states.

session aging-time state { fin | icmp-reply | icmp-request | rawip-open | rawip-ready | syn | tcp-close | tcp-est | tcp-time-wait | udp-open | udp-ready } time-value

The default aging time for sessions in different protocol states is as follows:

¡     FIN_WAIT: 30 seconds.

¡     ICMP-REPLY: 30 seconds.

¡     ICMP-REQUEST: 60 seconds.

¡     RAWIP-OPEN: 30 seconds.

¡     RAWIP-READY: 60 seconds.

¡     TCP SYN-SENT and SYN-RCV: 30 seconds.

¡     TCP-CLOSE: 2 seconds.

¡     TCP ESTABLISHED: 3600 seconds.

¡     TCP-TIME-WAIT: 2 seconds.

¡     UDP-OPEN: 30 seconds.

¡     UDP-READY: 60 seconds.

Setting the session aging time for different application layer protocols or applications

About this task

The aging time for sessions of different application layer protocols or applications are valid for TCP sessions in ESTABLISHED state or UDP sessions in READY state. For sessions used by other application layer protocols, the aging time for sessions in different protocol states applies.

Procedure

1.     Enter system view.

system-view

2.     Set the session aging time for different application layer protocols.

session aging-time application application-name time-value

By default, the aging time is 1200 seconds for sessions of application layer protocols or applications except for the following sessions:

¡     BOOTPC sessions: 120 seconds.

¡     BOOTPS sessions: 120 seconds.

¡     DNS sessions: 1 second.

¡     FTP sessions: 3600 seconds.

¡     FTP-DATA sessions: 240 seconds.

¡     GPRS-DATA sessions: 60 seconds.

¡     GPRS-SIG sessions: 60 seconds.

¡     GTP-CONTROL sessions: 60 seconds.

¡     GTP-USER sessions: 60 seconds.

¡     H.225 sessions: 3600 seconds.

¡     H.245 sessions: 3600 seconds.

¡     HTTPS sessions: 600 seconds.

¡     ILS sessions: 3600 seconds.

¡     L2TP sessions: 120 seconds.

¡     MGCP-CALLAGENT sessions: 60 seconds.

¡     MGCP-GATEWAY sessions: 60 seconds.

¡     NETBIOS-DGM sessions: 3600 seconds.

¡     NETBIOS-NS sessions: 3600 seconds.

¡     NETBIOS-SSN sessions: 3600 seconds.

¡     NTP sessions: 120 seconds.

¡     PPTP sessions: 3600 seconds.

¡     QQ sessions: 120 seconds.

¡     RAS sessions: 300 seconds.

¡     RIP sessions: 120 seconds.

¡     RSH sessions: 60 seconds.

¡     RTSP session: 3600 seconds.

¡     SCCP sessions: 3600 seconds.

¡     SIP sessions: 300 seconds.

¡     SNMP sessions: 120 seconds.

¡     SNMPTRAP sessions: 120 seconds.

¡     SQLNET sessions: 600 seconds.

¡     STUN sessions: 600 seconds.

¡     SYSLOG sessions: 120 seconds.

¡     TACACS-DS sessions: 120 seconds.

¡     TFTP sessions: 60 seconds.

¡     WHO sessions: 120 seconds.

¡     XDMCP sessions: 3600 seconds.

Specifying persistent sessions

About this task

This task is only for TCP sessions in ESTABLISHED state. You can specify TCP sessions that match the permit statements in the specified ACL as persistent sessions, and set longer lifetime or never-age-out persistent sessions.

A persistent session is not removed until one of the following events occurs:

·     The session entry ages out.

·     The device receives a connection close request from the initiator or responder.

·     You manually clear the session entries.

Procedure

1.     Enter system view.

system-view

2.     Specify persistent sessions.

session persistent acl [ ipv6 ] acl-number [ aging-time time-value ]

Enabling session statistics collection software fast forwarding

About this task

This feature enables the device to collect session-based outbound and inbound packets and bytes. You can display session statistics based on different criteria.

·     To display statistics per unicast session, use the display session table command.

·     To display statistics per unicast packet type, use the display session statistics command.

·     To display statistics per multicast session, use the display session table multicast command.

·     To display statistics per multicast packet type, use the display session statistics multicast command.

Procedure

1.     Enter system view.

system-view

2.     Enable session statistics collection for software fast forwarding.

session statistics enable

By default, session statistics collection is disabled for software fast forwarding.

Specifying the loose mode for session state machine

About this task

For asymmetric-path networks, if session synchronization is not enabled, to prevent the device from dropping packets abnormally, set the mode of the session state machine to loose.

As a best practice, use the default strict mode on symmetric-path networks.

Procedure

1.     Enter system view.

system-view

2.     Specify the loose mode for session state machine.

session state-machine mode loose

By default, session state machine is in strict mode.

Display and maintenance commands for session management

 

Execute display commands in any view and reset commands in user view.

 

Task

Command

Display the aging time for sessions of different application layer protocols.

display session aging-time application

Display the aging time for sessions in different protocol states.

display session aging-time state

Display relation table entries.

display session relation-table { ipv4 | ipv6 }

Display unicast session statistics.

display session statistics [ history-max | summary ]

Display IPv4 unicast session statistics.

display session statistics ipv4 { destination-ip destination-ip | destination-port destination-port | protocol { dccp | dns | ftp | gtp | h323 | http | icmp | ils | mgcp | nbt | pptp | raw-ip | rsh | rtsp | sccp | sctp | sip | smtp | sqlnet | ssh | tcp | telnet | tftp | udp | udp-lite | xdmcp } | source-ip source-ip | source-port source-port } *

Display IPv6 unicast session statistics.

display session statistics ipv6 { destination-ip destination-ip | destination-port destination-port | protocol { dccp | dns | ftp | gtp | h323 | http | icmpv6 | ils | mgcp | nbt | pptp | raw-ip | rsh | rtsp | sccp | sctp | sip | smtp | sqlnet | ssh | tcp | telnet | tftp | udp | udp-lite | xdmcp } | source-ip source-ip | source-port source-port } *

Display multicast session statistics.

display session statistics multicast

Display IPv4 unicast session table entries.

display session table ipv4 [ [ responder ] { application application-name | destination-ip start-destination-ip [ end-destination-ip ] | destination-port destination-port | protocol { dccp | icmp | raw-ip | sctp | tcp | udp | udp-lite } | source-ip start-source-ip [ end-source-ip ] | source-port source-port | state { dccp-closereq | dccp-closing | dccp-open | dccp-partopen | dccp-request | dccp-respond | dccp-timewait | icmp-reply | icmp-request | rawip-open | rawip-ready | sctp-closed | sctp-cookie-echoed | sctp-cookie-wait | sctp-established | sctp-shutdown-ack-sent | sctp-shutdown-recd | sctp-shutdown-sent | tcp-close | tcp-close-wait | tcp-est | tcp-fin-wait | tcp-last-ack | tcp-syn-recv | tcp-syn-sent | tcp-syn-sent2 | tcp-time-wait | udp-open | udp-ready | udplite-open | udplite-ready } } * ] [ verbose ]

Display IPv6 unicast session table entries.

display session table ipv6 [ [ responder ] { application application-name | destination-ip start-destination-ip [ end-destination-ip ] | destination-port destination-port | protocol { dccp | icmpv6 | raw-ip | sctp | tcp | udp | udp-lite } | source-ip start-source-ip [ end-source-ip ] | source-port source-port | state { dccp-closereq | dccp-closing | dccp-open | dccp-partopen | dccp-request | dccp-respond | dccp-timewait | icmpv6-reply | icmpv6-request | rawip-open | rawip-ready | sctp-closed | sctp-cookie-echoed | sctp-cookie-wait | sctp-established | sctp-shutdown-ack-sent | sctp-shutdown-recd | sctp-shutdown-sent | tcp-close | tcp-close-wait | tcp-est | tcp-fin-wait | tcp-last-ack | tcp-syn-recv | tcp-syn-sent | tcp-syn-sent2 | tcp-time-wait | udp-open | udp-ready | udplite-open | udplite-ready } } * ] [ verbose ]

Display IPv4 multicast session table entries.

display session table multicast ipv4 [ [ responder ] { destination-ip start-destination-ip [ end-destination-ip ] | destination-port destination-port | protocol { dccp | icmp | raw-ip | sctp | tcp | udp | udp-lite } | source-ip start-source-ip [ end-source-ip ] | source-port source-port } * ] [ verbose ]

Display IPv6 multicast session table entries.

display session table multicast ipv6 [ [ responder ] { destination-ip start-destination-ip [ end-destination-ip ] | destination-port destination-port | protocol { dccp | icmpv6 | raw-ip | sctp | tcp | udp | udp-lite } | source-ip start-source-ip [ end-source-ip ] | source-port source-port } * ] [ verbose ]

Clear relation table entries.

reset session relation-table [ ipv4 | ipv6 ]

Clear unicast session statistics.

reset session statistics

Clear multicast session table entries.

reset session statistics multicast

Clear IP unicast session table entries.

reset session table

Clear IPv4 unicast session table entries.

reset session table ipv4 [ source-ip source-ip ] [ destination-ip destination-ip ] [ protocol { dccp | icmp | raw-ip | sctp | tcp | udp | udp-lite } ] [ source-port source-port ] [ destination-port destination-port ]

Clear IPv6 unicast session table entries.

reset session table ipv6 [ source-ip source-ip ] [ destination-ip destination-ip ] [ protocol { dccp | icmpv6 | raw-ip | sctp | tcp | udp | udp-lite } ] [ source-port source-port ] [ destination-port destination-port ]

Clear IP multicast session table entries.

reset session table multicast

Clear IPv4 multicast session table entries.

reset session table multicast ipv4 [ source-ip source-ip ] [ destination-ip destination-ip ] [ protocol { dccp | icmp | raw-ip | sctp | tcp | udp | udp-lite } ] [ source-port source-port ] [ destination-port destination-port ]

Clear IPv6 multicast session table entries.

reset session table multicast ipv6 [ source-ip source-ip ] [ destination-ip destination-ip ] [ protocol { dccp | icmpv6 | raw-ip | sctp | tcp | udp | udp-lite } ] [ source-port source-port ] [ destination-port destination-port ]