在公有云虚机运维中总结而来的ssh组件安全配置如下:

系统文件有风险操作需谨慎,修改配置前请备份相关文件。

  1. 确保所有者和组都是root,并且不授予组和其他人访问权限。
    运行以下命令设置/etc/ssh/sshd_config的所有权和权限:
chown root:root /etc/ssh/sshd_config 
chmod og-rwx /etc/ssh/sshd_config

  1. PermitEmptyPasswords参数指定SSH服务器是否允许使用空密码字符串登录帐户。
#编辑/etc/ssh/sshd_config文件,加入如下内容:
PermitEmptyPasswords no

  1. HostbasedAuthentication参数指定是否允许受信任的主机通过使用.rhosts 或/etc/hosts.equiv进行认证;当公钥客户端认证成功,用户即登录;此选项仅使用于SSH 2。
#编辑/etc/ssh/sshd_config文件设置参数如下: 
HostbasedAuthentication no

  1. 此变量限制SSH可以在通信期间使用的MAC算法的类型。
#编辑/etc/ssh/sshd_config文件,根据站点策略设置参数。
#以下内容包括所有支持和接受的MAC:
MACs hmac-sha2-512,hmac-sha2-256

  1. SSH的private key与public key文件为服务器访问的私钥和公钥文件。
 chmod 400 <文件名>   //修改文件权限  
 chown -R root:root <文件>  //修改文件属主为root
  1. SSH支持两种不兼容的协议: SSH1和SSH2。SSH1是原始的协议且受到安全问题的影响。SSH2功能更加完善且安全性更好。
#编辑/etc/ssh/sshd_config文件,设置参数如下: 
Protocol 2

  1. 此变量限制SSH在通信期间可以使用的密码类型。
#编辑/etc/ssh/sshd_config文件,加入如下内容:
Ciphers aes256-ctr,aes192-ctr,aes128-ctr

  1. 参数X11Forwarding提供了操作远程连接X11界面的功能。
#编辑/etc/ssh/sshd_config文件确保参数设置如下: 
X11Forwarding no

  1. MaxAuth参数指定了最大认证登录次数;当登录次数达到半数,错误信息将会被写到syslog文件中,记录详细的登录失败信息。
#编辑/etc/ssh/sshd_config文件,设置参数如下: 
MaxAuthTries 4

  1. IgnoreRhosts参数指定.rhosts和.shosts文件不能在RhostsRSAAuthentication或者HostbasedAuthentication中使用。
#编辑/etc/ssh/sshd_config文件设置参数如下: 
IgnoreRhosts yes

  1. PermitUserEnvironment选项允许用户向ssh守护程序呈现环境选项。、
#编辑/etc/ssh/sshd_config文件,加入如下内容:
PermitUserEnvironment no

  1. ClientAliveInterval和ClientAliveCountMax这2个选项控制ssh会话的超时。 设置ClientAliveInterval变量时,将终止在指定时间内没有活动的ssh会话。 设置ClientAliveCountMax变量时,sshd将在每个ClientAliveInterval间隔发送客户端活着的消息。 当连续的客户端活动消息的数量没有来自客户端的响应被发送时,ssh会话被终止。 例如,如果ClientAliveInterval设置为15秒,ClientAliveCountMax设置为3,客户端ssh会话将在空闲时间45秒后终止。
#编辑/etc/ssh/sshd_config文件以设置参数如下:
ClientAliveInterval 300 
ClientAliveCountMax 0

  1. Banner参数指定在允许身份验证之前必须将其内容发送给远程用户的文件。默认情况下,不显示警告信息。
#编辑/etc/ssh/sshd_config文件以设置参数如下:
Banner /etc/issue.net

  1. LoginGraceTime参数指定成功验证SSH服务器的时间。宽限期的时间越长,可以存在更开放的未认证连接。宽限期应限制在适当的组织限制,以确保服务可用于所需的访问。
#编辑/etc/ssh/sshd_config文件,设置参数如下:
LoginGraceTime 60

  1. INFO指定当用户登录或者注销活动将会被记录。VERBOSE级别的日志中会记录使用的SSH公钥的指纹,可在发生安全事件之后进行分析与审计。
#编辑/etc/ssh/sshd_config文件设置参数如下: 
LogLevel INFO 或者 LogLevel VERBOSE
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐