SSH基线检查项目

本文详细介绍了如何优化SSH配置,包括禁用X11转发、限制登录尝试、启用安全认证机制、调整密钥权限等,以提升服务器安全性。

确保SSH X11转发被禁用

威胁等级:Medium

规则描述

参数X11Forwarding提供了操作远程连接X11界面的功能。

审计描述

运行下面的命令并确认输出匹配: 
# grep '^X11Forwarding' /etc/ssh/sshd_config 
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: 
# grep '^MaxAuthTries' /etc/ssh/sshd_config 
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中使用。

审计描述

运行如下命令并确认输出匹配: 
# grep '^IgnoreRhosts' /etc/ssh/sshd_config 
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。

审计描述

运行如下命令并确认输出匹配: 
# grep '^HostbasedAuthentication' /etc/ssh/sshd_config 
HostbasedAuthentication no

检测用例信息

#### 检测描述
执行grep '^HostbasedAuthentication' /etc/ssh/sshd_config,检查结果符合预期
#### 期望结果
HostbasedAuthentication no
#### 检测结果

修改建议

编辑/etc/ssh/sshd_config文件设置参数如下: 
HostbasedAuthentication no

确保SSH PermitEmptyPasswords被禁用

威胁等级:High

规则描述

PermitEmptyPasswords参数指定SSH服务器是否允许使用空密码字符串登录帐户。

审计描述

运行以下命令并验证输出是否匹配:
# grep '^PermitEmptyPasswords' /etc/ssh/sshd_config    
PermitEmptyPasswords no

检测用例信息

#### 检测描述
执行grep '^PermitEmptyPasswords' /etc/ssh/sshd_config,检查结果符合预期
#### 期望结果
PermitEmptyPasswords no
#### 检测结果

修改建议

编辑/etc/ssh/sshd_config文件,加入如下内容:
PermitEmptyPasswords no

确保SSH PermitUserEnvironment被禁用

威胁等级:Medium

规则描述

PermitUserEnvironment选项允许用户向ssh守护程序呈现环境选项。

审计描述

运行以下命令并验证输出是否匹配:
# grep '^PermitUserEnvironment' /etc/ssh/sshd_config 
PermitUserEnvironment no

检测用例信息

#### 检测描述
执行grep '^PermitUserEnvironment' /etc/ssh/sshd_config,检查结果符合预期
#### 期望结果
PermitUserEnvironment no
#### 检测结果

修改建议

编辑/etc/ssh/sshd_config文件,加入如下内容:
PermitUserEnvironment no

使用更加安全的Ciphers算法

威胁等级:High

规则描述

此变量限制SSH在通信期间可以使用的密码类型。

审计描述

运行以下命令并验证使用的算法不包含任何密码块链接(-cbc)算法:
# grep 'Ciphers' /etc/ssh/sshd_config 
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算法 
# grep 'MACs' /etc/ssh/sshd_config 
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或更小:
#grep '^ClientAliveInterval' /etc/ssh/sshd_config
ClientAliveInterval 300(默认值为0) 
#grep '^ClientAliveCountMax' /etc/ssh/sshd_config
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或更少:
# grep '^LoginGraceTime' /etc/ssh/sshd_config
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

修改建议

# chmod 400 <文件名>   //修改文件权限  
# chown -R root:root <文件>  //修改文件属主为root

确保设置了SSH警告提示信息

威胁等级:Medium

规则描述

Banner参数指定在允许身份验证之前必须将其内容发送给远程用户的文件。默认情况下,不显示警告信息。

审计描述

运行以下命令并验证输出是否匹配 
# grep '^Banner' /etc/ssh/sshd_config 
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不向组或其他组授予权限:
#stat /etc/ssh/sshd_config
Access: (0600/-rw-------) Uid: ( 0/ root) Gid: ( 0/ root)

检测用例信息

修改建议

运行以下命令设置/etc/ssh/sshd_config的所有权和权限:
#chown root:root /etc/ssh/sshd_config
#chmod og-rwx /etc/ssh/sshd_config

确保SSH协议设置为2

威胁等级:High

规则描述

SSH支持两种不兼容的协议: SSH1和SSH2。SSH1是原始的协议且受到安全问题的影响。SSH2功能更加完善且安全性更好。

审计描述

执行下面命令并且确保输出匹配: 
#grep '^Protocol' /etc/ssh/sshd_config
#Protocol 2(默认值为2)

检测用例信息

修改建议

编辑/etc/ssh/sshd_config文件,设置参数如下: Protocol 2

确保SSH的LogLevel设置成INFO或VERBOSE

威胁等级:Low

规则描述

INFO指定当用户登录或者注销活动将会被记录。VERBOSE级别的日志中会记录使用的SSH公钥的指纹,可在发生安全事件之后进行分析与审计。

审计描述

运行以下命令验证输出匹配: 
#grep '^LogLevel' /etc/ssh/sshd_config
#LogLevel INFO or LogLevel VERBOSE or 空

检测用例信息

修改建议

编辑/etc/ssh/sshd_config文件设置参数如下: LogLevel INFO或者LogLevel VERBOSE
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值