确保SSH X11转发被禁用
威胁等级:Medium
规则描述
参数X11Forwarding提供了操作远程连接X11界面的功能。
审计描述
运行下面的命令并确认输出匹配:
X11Forwarding no
检测用例信息
执行grep '^X11Forwarding' /etc/ssh/sshd_config,检查结果符合预期
X11Forwarding no
X11Forwarding yes
修改建议
编辑/etc/ssh/sshd_config文件确保参数设置如下:
X11Forwarding no
确保SSH中MaxAuthTries设置小于等于4
威胁等级:Medium
规则描述
MaxAuth参数指定了最大认证登录次数;当登录次数达到半数,错误信息将会被写到syslog文件中,记录详细的登录失败信息。
审计描述
运行如下命令确保MaxAuthTries值是否小于等于4:
MaxAuthTries 4(默认值为6)
检测用例信息
执行grep '^MaxAuthTries' /etc/ssh/sshd_config,检查结果符合预期
MaxAuthTries N (0<N<=4)
MaxAuthTries 6
修改建议
编辑/etc/ssh/sshd_config文件,设置参数如下:
MaxAuthTries 4
确保SSH中IgnoreRhosts设置为enabled
威胁等级:Medium
规则描述
IgnoreRhosts参数指定.rhosts和.shosts文件不能在RhostsRSAAuthentication或者HostbasedAuthentication中使用。
审计描述
运行如下命令并确认输出匹配:
IgnoreRhosts yes
检测用例信息
执行grep '^IgnoreRhosts' /etc/ssh/sshd_config,检查结果符合预期
IgnoreRhosts yes
修改建议
编辑/etc/ssh/sshd_config文件设置参数如下:
IgnoreRhosts yes
确保SSH中HostbasedAuthentication关闭
威胁等级:High
规则描述
HostbasedAuthentication参数指定是否允许受信任的主机通过使用.rhosts 或/etc/hosts.equiv进行认证;当公钥客户端认证成功,用户即登录;此选项仅使用于SSH 2。
审计描述
运行如下命令并确认输出匹配:
HostbasedAuthentication no
检测用例信息
执行grep '^HostbasedAuthentication' /etc/ssh/sshd_config,检查结果符合预期
HostbasedAuthentication no
修改建议
编辑/etc/ssh/sshd_config文件设置参数如下:
HostbasedAuthentication no
确保SSH PermitEmptyPasswords被禁用
威胁等级:High
规则描述
PermitEmptyPasswords参数指定SSH服务器是否允许使用空密码字符串登录帐户。
审计描述
运行以下命令并验证输出是否匹配:
PermitEmptyPasswords no
检测用例信息
执行grep '^PermitEmptyPasswords' /etc/ssh/sshd_config,检查结果符合预期
PermitEmptyPasswords no
修改建议
编辑/etc/ssh/sshd_config文件,加入如下内容:
PermitEmptyPasswords no
确保SSH PermitUserEnvironment被禁用
威胁等级:Medium
规则描述
PermitUserEnvironment选项允许用户向ssh守护程序呈现环境选项。
审计描述
运行以下命令并验证输出是否匹配:
PermitUserEnvironment no
检测用例信息
执行grep '^PermitUserEnvironment' /etc/ssh/sshd_config,检查结果符合预期
PermitUserEnvironment no
修改建议
编辑/etc/ssh/sshd_config文件,加入如下内容:
PermitUserEnvironment no
使用更加安全的Ciphers算法
威胁等级:High
规则描述
此变量限制SSH在通信期间可以使用的密码类型。
审计描述
运行以下命令并验证使用的算法不包含任何密码块链接(-cbc)算法:
Ciphers aes256-ctr,aes192-ctr,aes128-ctr。
Ciphers默认值为:aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-gcm@openssh.com,aes256-gcm@openssh.com,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour。
检测用例信息
使用更加安全的Ciphers算法
Ciphers aes256-ctr,aes192-ctr,aes128-ctr
Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-gcm@openssh.com,aes256-gcm@openssh.com,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour
修改建议
编辑/etc/ssh/sshd_config文件,加入如下内容:
Ciphers aes256-ctr,aes192-ctr,aes128-ctr
确保使用更安全的MAC算法
威胁等级:High
规则描述
此变量限制SSH可以在通信期间使用的MAC算法的类型。
审计描述
运行以下命令并检查使用了更加安全的MAC算法
MACs hmac-sha2-512,hmac-sha2-256
MACs的默认值:hmac-md5-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-ripemd160-etm@openssh.com,hmac-sha1-96-etm@openssh.com,hmac-md5-96-etm@openssh.com,hmac-md5,hmac-sha1,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,hmac-sha1-96,hmac-md5-96。
检测用例信息
确保使用更安全的MAC算法
MACs hmac-sha2-512,hmac-sha2-256
MACs hmac-md5-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-ripemd160-etm@openssh.com,hmac-sha1-96-etm@openssh.com,hmac-md5-96-etm@openssh.com,hmac-md5,hmac-sha1,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,hmac-sha1-96,hmac-md5-96
修改建议
编辑/etc/ssh/sshd_config文件,根据站点策略设置参数,以下内容包括所有支持和接受的MAC:
MACs hmac-sha2-512,hmac-sha2-256
确保配置了SSH空闲超时间隔
威胁等级:Medium
规则描述
ClientAliveInterval和ClientAliveCountMax这2个选项控制ssh会话的超时。 设置ClientAliveInterval变量时,将终止在指定时间内没有活动的ssh会话。 设置ClientAliveCountMax变量时,sshd将在每个ClientAliveInterval间隔发送客户端活着的消息。 当连续的客户端活动消息的数量没有来自客户端的响应被发送时,ssh会话被终止。 例如,如果ClientAliveInterval设置为15秒,ClientAliveCountMax设置为3,客户端ssh会话将在空闲时间45秒后终止。
审计描述
运行以下命令并验证ClientAliveInterval为300以下,ClientAliveCountMax为3或更小:
ClientAliveInterval 300(默认值为0)
ClientAliveCountMax 0(默认值为3)
检测用例信息
执行grep '^ClientAliveInterval' /etc/ssh/sshd_config,检查结果符合预期
ClientAliveInterval N (0<N<=300)
ClientAliveInterval 0
修改建议
编辑/etc/ssh/sshd_config文件以设置参数如下:
ClientAliveInterval 300
ClientAliveCountMax 0
确保SSH LoginGraceTime设置为一分钟或更短
威胁等级:Low
规则描述
LoginGraceTime参数指定成功验证SSH服务器的时间。宽限期的时间越长,可以存在更开放的未认证连接。宽限期应限制在适当的组织限制,以确保服务可用于所需的访问。
审计描述
运行以下命令并验证输出LoginGraceTime为60或更少:
LoginGraceTime 60(默认值为120)
检测用例信息
执行grep '^LoginGraceTime' /etc/ssh/sshd_config,检查结果符合预期
LoginGraceTime N (0<N<=60)
LoginGraceTime 120
修改建议
编辑/etc/ssh/sshd_config文件,设置参数如下:
LoginGraceTime 60
需限制SSH服务使用的密钥文件权限
威胁等级:High
规则描述
SSH的private key与public key文件为服务器访问的私钥和公钥文件。
审计描述
确保/etc/ssh/*key,与/etc/ssh/*key.pub相关文件属主为root,权限不大于400。
检测用例信息
检查所有秘钥文件权限,结果符合预期
root root 0400或更严格
/etc/ssh/ssh_host_rsa_key root root 600
/etc/ssh/ssh_host_dsa_key root root 600
/etc/ssh/ssh_host_ecdsa_key root root 600
/etc/ssh/ssh_host_ed25519_key root root 600
/etc/ssh/ssh_host_dsa_key.pub root root 644
/etc/ssh/ssh_host_ecdsa_key.pub root root 644
/etc/ssh/ssh_host_ed25519_key.pub root root 644
/etc/ssh/ssh_host_rsa_key.pub root root 644
修改建议
确保设置了SSH警告提示信息
威胁等级:Medium
规则描述
Banner参数指定在允许身份验证之前必须将其内容发送给远程用户的文件。默认情况下,不显示警告信息。
审计描述
运行以下命令并验证输出是否匹配
Banner /etc/issue.net(路径配置不唯一)
检测用例信息
执行grep '^Banner' /etc/ssh/sshd_config,检查结果符合预期
Banner <file>
修改建议
编辑/etc/ssh/sshd_config文件以设置参数如下:
Banner /etc/issue.net
需限制/etc/ssh/sshd_config的访问权限
威胁等级:High
规则描述
/etc/ssh/sshd_config文件包含sshd的配置内容。
审计描述
运行以下命令并验证Uid和Gid都是0/root,Access不向组或其他组授予权限:
Access: (0600/-rw-------) Uid: ( 0/ root) Gid: ( 0/ root)
检测用例信息
修改建议
运行以下命令设置/etc/ssh/sshd_config的所有权和权限:
确保SSH协议设置为2
威胁等级:High
规则描述
SSH支持两种不兼容的协议: SSH1和SSH2。SSH1是原始的协议且受到安全问题的影响。SSH2功能更加完善且安全性更好。
审计描述
执行下面命令并且确保输出匹配:
检测用例信息
修改建议
编辑/etc/ssh/sshd_config文件,设置参数如下: Protocol 2
确保SSH的LogLevel设置成INFO或VERBOSE
威胁等级:Low
规则描述
INFO指定当用户登录或者注销活动将会被记录。VERBOSE级别的日志中会记录使用的SSH公钥的指纹,可在发生安全事件之后进行分析与审计。
审计描述
运行以下命令验证输出匹配:
检测用例信息
修改建议
编辑/etc/ssh/sshd_config文件设置参数如下: LogLevel INFO或者LogLevel VERBOSE