Table of Contents

5.2.13 Ensure SSH Idle Timeout Interval is configured (Scored)

Profile Applicability

Level 1 - Server
Level 1 - Workstation 

Description

The two options ClientAliveInterval and ClientAliveCountMax control the timeout of ssh sessions. When the ClientAliveInterval variable is set, ssh sessions that have no activity for the specified length of time are terminated. When the ClientAliveCountMax variable is set, sshd will send client alive messages at every ClientAliveInterval interval. When the number of consecutive client alive messages are sent with no response from the client, the ssh session is terminated. For example, if the ClientAliveInterval is set to 15 seconds and the ClientAliveCountMax is set to 3, the client ssh session will be terminated after 45 seconds of idle time.

Rationale

Having no timeout value associated with a connection could allow an unauthorized user access to another user's ssh session (e.g. user walks away from their computer and doesn't lock the screen). Setting a timeout value at least reduces the risk of this happening.. While the recommended setting is 300 seconds (5 minutes), set this timeout value based on site policy. The recommended setting for ClientAliveCountMax is 0. In this case, the client session will be terminated after 5 minutes of idle time and no keepalive messages will be sent.

Audit

Run the following commands and verify ClientAliveInterval is 300 or less and ClientAliveCountMax is 3 or less:

# grep "^ClientAliveInterval" /etc/ssh/sshd_config 
ClientAliveInterval 300 
# grep "^ClientAliveCountMax" /etc/ssh/sshd_config 
ClientAliveCountMax 0

Remediation

Edit the /etc/ssh/sshd_config file to set the parameter as follows:

ClientAliveInterval 300 
ClientAliveCountMax 0