Press "Enter" to skip to content

SSH 安全配置

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

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

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

chown root:root /etc/ssh/sshd_config 
chmod og-rwx /etc/ssh/sshd_config

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

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

3.HostbasedAuthentication参数指定是否允许受信任的主机通过使用.rhosts 或/etc/hosts.equiv进行认证;当公钥客户端认证成功,用户即登录;此选项仅使用于SSH 2。

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

4.此变量限制SSH可以在通信期间使用的MAC算法的类型。

#编辑/etc/ssh/sshd_config文件,根据站点策略设置参数。
#以下内容包括所有支持和接受的MAC:
MACs hmac-sha2-512,hmac-sha2-256

5.SSH的private key与public key文件为服务器访问的私钥和公钥文件。

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

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

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

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

#编辑/etc/ssh/sshd_config文件,加入如下内容:
Ciphers aes256-ctr,aes192-ctr,aes128-ctr

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

#编辑/etc/ssh/sshd_config文件确保参数设置如下: 
X11Forwarding no

9.MaxAuth参数指定了最大认证登录次数;当登录次数达到半数,错误信息将会被写到syslog文件中,记录详细的登录失败信息。

#编辑/etc/ssh/sshd_config文件,设置参数如下: 
MaxAuthTries 4

10.IgnoreRhosts参数指定.rhosts和.shosts文件不能在RhostsRSAAuthentication或者HostbasedAuthentication中使用。

#编辑/etc/ssh/sshd_config文件设置参数如下: 
IgnoreRhosts yes

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

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

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

#编辑/etc/ssh/sshd_config文件以设置参数如下:
ClientAliveInterval 300 
ClientAliveCountMax 0

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

#编辑/etc/ssh/sshd_config文件以设置参数如下:
Banner /etc/issue.net

14.LoginGraceTime参数指定成功验证SSH服务器的时间。宽限期的时间越长,可以存在更开放的未认证连接。宽限期应限制在适当的组织限制,以确保服务可用于所需的访问。

#编辑/etc/ssh/sshd_config文件,设置参数如下:
LoginGraceTime 60

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

#编辑/etc/ssh/sshd_config文件设置参数如下: 
LogLevel INFO 或者 LogLevel VERBOSE

注:本文转自https://blog.csdn.net/samginshen/article/details/104852042

Be First to Comment

发表回复

您的电子邮箱地址不会被公开。