1 | 检测规则 | 规则:需限制/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 | |
2 | 检测规则 | 规则:使用更加安全的Ciphers算法 |
威胁等级 | High | |
规则描述 | 此变量限制SSH在通信期间可以使用的密码类型。 | |
审计描述 | 运行以下命令并验证使用的算法不包含任何密码块链接(-cbc)算法: # grep 'Ciphers' /etc/ssh/sshd_config Ciphers aes256-ctr,aes192-ctr,aes128-ctr。 不同版本的OpenSSH中Ciphers的默认值不相同,建议增加Ciphers配置项,明确使用的算法。 | |
修改建议 | 编辑/etc/ssh/sshd_config文件,加入如下内容: Ciphers aes256-ctr,aes192-ctr,aes128-ctr | |
3 | 检测规则 | 规则:确保使用更安全的MAC算法 |
威胁等级 | High | |
规则描述 | 此变量限制SSH可以在通信期间使用的MAC算法的类型。 | |
审计描述 | 运行以下命令并检查使用了更加安全的MAC算法 # grep 'MACs' /etc/ssh/sshd_config MACs aes256-ctr,aes192-ctr,aes128-ctr 不同版本的OpenSSH中MACs的默认值不相同,建议增加MACs配置项,明确使用的算法。 | |
修改建议 | 编辑/etc/ssh/sshd_config文件,根据站点策略设置参数,以下内容包括所有支持和接受的MAC: MACs hmac-sha2-512,hmac-sha2-256 | |
4 | 检测规则 | 规则:确保配置了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 #grep '^ClientAliveCountMax' /etc/ssh/sshd_config ClientAliveCountMax 0 | |
修改建议 | 编辑/etc/ssh/sshd_config文件以设置参数如下: ClientAliveInterval 300 ClientAliveCountMax 0 | |
5 | 检测规则 | 规则:确保SSH LoginGraceTime设置为一分钟或更短 |
威胁等级 | Low | |
规则描述 | LoginGraceTime参数指定成功验证SSH服务器的时间。宽限期的时间越长,可以存在更开放的未认证连接。宽限期应限制在适当的组织限制,以确保服务可用于所需的访问。 | |
审计描述 | 运行以下命令并验证输出LoginGraceTime为60或更少: # grep '^LoginGraceTime' /etc/ssh/sshd_config LoginGraceTime 60 | |
修改建议 | 编辑/etc/ssh/sshd_config文件,设置参数如下: LoginGraceTime 60 | |
6 | 检测规则 | 规则:需限制SSH服务使用的密钥文件权限 |
威胁等级 | High | |
规则描述 | SSH的private key与public key文件为服务器访问的私钥和公钥文件。 | |
审计描述 | 确保/etc/ssh/*key,与/etc/ssh/*key.pub相关文件属主为root,权限不大于400。 | |
修改建议 | # chmod 400 <文件名> //修改文件权限 # chown -R root:root <文件> //修改文件属主为root | |
7 | 检测规则 | 规则:确保设置了SSH警告提示信息 |
威胁等级 | Medium | |
规则描述 | Banner参数指定在允许身份验证之前必须将其内容发送给远程用户的文件。默认情况下,不显示警告信息。 | |
审计描述 | 运行以下命令并验证输出是否匹配 # grep '^Banner' /etc/ssh/sshd_config Banner /etc/issue.net | |
修改建议 | 编辑/etc/ssh/sshd_config文件以设置参数如下: Banner /etc/issue.net | |
8 | 检测规则 | 规则:确保SSH协议设置为2 |
威胁等级 | High | |
规则描述 | SSH支持两种不兼容的协议: SSH1和SSH2。SSH1是原始的协议且受到安全问题的影响。SSH2功能更加完善且安全性更好。 | |
审计描述 | 执行下面命令并且确保输出匹配: #grep '^Protocol' /etc/ssh/sshd_config #Protocol 2 | |
修改建议 | 编辑/etc/ssh/sshd_config文件,设置参数如下: Protocol 2 | |
9 | 检测规则 | 规则:确保SSH的LogLevel设置成INFO或VERBOSE |
威胁等级 | Low | |
规则描述 | INFO指定当用户登录或者注销活动将会被记录。VERBOSE级别的日志中会记录使用的SSH公钥的指纹,可在发生安全事件之后进行分析与审计。 | |
审计描述 | 运行以下命令验证输出匹配: #grep '^LogLevel' /etc/ssh/sshd_config #LogLevel INFO or LogLevel VERBOSE | |
修改建议 | 编辑/etc/ssh/sshd_config文件设置参数如下: LogLevel INFO或者LogLevel VERBOSE | |
10 | 检测规则 | 规则:确保SSH X11转发被禁用 |
威胁等级 | Medium | |
规则描述 | 参数X11Forwarding提供了操作远程连接X11界面的功能。 | |
审计描述 | 运行下面的命令并确认输出匹配: # grep '^X11Forwarding' /etc/ssh/sshd_config X11Forwarding no | |
修改建议 | 编辑/etc/ssh/sshd_config文件确保参数设置如下: X11Forwarding no | |
11 | 检测规则 | 规则:确保SSH中MaxAuthTries设置小于等于4 |
威胁等级 | Medium | |
规则描述 | MaxAuth参数指定了最大认证登录次数;当登录次数达到半数,错误信息将会被写到syslog文件中,记录详细的登录失败信息。 | |
审计描述 | 运行如下命令确保MaxAuthTries值是否小于等于4: # grep '^MaxAuthTries' /etc/ssh/sshd_config MaxAuthTries 4 | |
修改建议 | 编辑/etc/ssh/sshd_config文件,设置参数如下: MaxAuthTries 4 | |
12 | 检测规则 | 规则:确保SSH中IgnoreRhosts设置为enabled |
威胁等级 | Medium | |
规则描述 | IgnoreRhosts参数指定.rhosts和.shosts文件不能在RhostsRSAAuthentication或者HostbasedAuthentication中使用。 | |
审计描述 | 运行如下命令并确认输出匹配: # grep '^IgnoreRhosts' /etc/ssh/sshd_config IgnoreRhosts yes | |
修改建议 | 编辑/etc/ssh/sshd_config文件设置参数如下: IgnoreRhosts yes | |
13 | 检测规则 | 规则:确保SSH中HostbasedAuthentication关闭 |
威胁等级 | High | |
规则描述 | HostbasedAuthentication参数指定是否允许受信任的主机通过使用.rhosts 或/etc/hosts.equiv进行认证;当公钥客户端认证成功,用户即登录;此选项仅使用于SSH 2。 | |
审计描述 | 运行如下命令并确认输出匹配: # grep '^HostbasedAuthentication' /etc/ssh/sshd_config HostbasedAuthentication no | |
修改建议 | 编辑/etc/ssh/sshd_config文件设置参数如下: HostbasedAuthentication no | |
14 | 检测规则 | 规则:确保SSH PermitEmptyPasswords被禁用 |
威胁等级 | High | |
规则描述 | PermitEmptyPasswords参数指定SSH服务器是否允许使用空密码字符串登录帐户。 | |
审计描述 | 运行以下命令并验证输出是否匹配: # grep '^PermitEmptyPasswords' /etc/ssh/sshd_config PermitEmptyPasswords no | |
修改建议 | 编辑/etc/ssh/sshd_config文件,加入如下内容: PermitEmptyPasswords no | |
15 | 检测规则 | 规则:确保SSH PermitUserEnvironment被禁用 |
威胁等级 | Medium | |
规则描述 | PermitUserEnvironment选项允许用户向ssh守护程序呈现环境选项。 | |
审计描述 | 运行以下命令并验证输出是否匹配: # grep '^PermitUserEnvironment' /etc/ssh/sshd_config PermitUserEnvironment no | |
修改建议 | 编辑/etc/ssh/sshd_config文件,加入如下内容: PermitUserEnvironment no |
centos---ssh安全脚本配置
最新推荐文章于 2022-04-29 10:11:07 发布