本文档列出了可以对服务器进行的一些有用的更改,以提高SSH安全性。我们 强烈 建议您限制并正确配置Secure Shell(SSH)访问权限以保护您的服务器。

小心你授予谁SSH访问权限
如果用户不需要SSH访问权限,请 不要 授予他们访问权限。要删除用户的SSH访问权限,请使用WHM的 管理外壳访问 界面(WHM >>主页>>帐户功能>>管理外壳访问)。

某些用户可能需要SSH访问,但只需要访问其home 目录中的 文件。我们建议您为这些用户分配一个jailed shell环境。有关jailed shell的更多信息,请阅读我们的 VirtFS - Jailed Shell 文档。

设置SSH法律消息
motd当有人通过SSH登录到您的服务器时,系统可以显示SSH法律消息(当天的消息或 )。

要设置消息,请使用首选文本编辑器编辑 /etc/motd 文件并保存更改。例如,我们的技术分析师之一使用以下消息:

1
2
3
4

6
7
<font style="vertical-align: inherit;"><font style="vertical-align: inherit;">警报!</font><font style="vertical-align: inherit;">您已进入安全区域!</font><font style="vertical-align: inherit;">系统已记录</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
您的IP和登录信息,并已通知管理员。</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
该系统仅限于授权访问。</font><font style="vertical-align: inherit;">所有活动</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
记录并记录此系统。</font><font style="vertical-align: inherit;">系统管理员将完全</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
调查并报告适当法律的未经授权的活动</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
执法机构。</font></font>
使用SSH密钥
您可以在服务器上禁用SSH的密码身份验证,这将强制用户使用密钥而不是密码通过SSH登录。

为此,请执行以下操作:

使用WHM的 管理根的SSH密钥 接口 (WHM >>主页 >>安全中心>>管理root的SSH密钥) 为root用户生成和下载密钥。
使用WHM的 SSH密码授权调整 界面(WHM >>首页 >>安全中心>> SSH密码授权调整)来禁用SSH的密码验证。
加强SSH安全性
该 /etc/ssh/sshd_config 文件包含SSH的服务器配置设置。

我们建议您更改以下设置:

Port - sshd 守护程序侦听连接的端口号 。可接受的最高值是 49151。

注意:

我们建议您使用特权端口1- 1023其他服务当前不使用。只有root用户可以绑定到端口1- 1023。任何人都可以使用无特权的端口1024和更大的端口。

Protocol - 服务器使用的SSH协议。我们建议您将此值更改为 2。
ListenAddress - sshd 守护程序侦听连接的IP地址 。您的服务器 必须 拥有此IP地址。我们 强烈 建议您不要将主共享IP地址用于此值。您可以专门为新的SSH IP地址创建自定义DNS条目。为此,请创建一个区域文件(例如, ssh.example.com)并在区域文件中为新的名称服务器条目添加一个A条目。
PermitRootLogin - 此选项指定是否允许人们以root 用户身份直接登录SSH 。我们强烈建议您将此值设置为 no。
编辑 sshd_config 文件
要配置 /etc/ssh/sshd_config 文件以加强服务器的安全性,请执行以下步骤:

注意:

对于CentOS 7,CloudLinux 7和RHEL 7防火墙管理,我们建议您使用该/etc/firewalld/services/cpanel.xml文件管理服务器的防火墙。您可以在我们的如何为cPanel服务配置防火墙 文档中阅读有关此文件的更多信息 。

root 通过SSH 以用户身份登录服务器 。
如果您的服务器不允许直接 root 登录SSH,请以wheel用户身份登录并使用该 su 命令成为 root 用户。例如:

1
2
3
user@example.com [~]# su -<font></font>
Password: <font></font>
root@host [~]#
sshd_config 使用以下命令备份 文件:

cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak`date +%F`
/etc/ssh/sshd_config 使用文本编辑器打开 文件。
要更改 sshd_config 文件中的参数,请取消注释包含该参数的行。为此,请删除数字符号(#)并更改该行的值。

重要:

如果更改默认SSH端口,则必须更新服务器的防火墙配置以允许流量到新端口。有关防火墙配置的更多信息,请阅读我们的如何为cPanel服务文档配置防火墙。

例如,默认SSH端口显示在类似于以下示例的行中:

#Port 22
要将SSH端口更改为 456,请编辑该行以类似于以下示例:

Port 456
配置SSH后,运行 /scripts/restart_sshd 脚本或 service sshd restart 命令以重新启动SSH守护程序。

重新启动SSH后,注销服务器并使用您在sshd_config 文件中指定的用户,IP地址和端口号再次登录 。

警告:

如果您不小心错误配置了SSH配置文件,请导航到Web浏览器中的以下链接(其中example.com代表服务器的主机名或主IP地址):

https://example.com:2087/scripts2/doautofixer?autofix=safesshrestart
此脚本尝试临时为端口配置其他SSH配置文件 22,这将允许您访问,编辑和修复原始SSH配置文件。如果另一个服务或守护程序使用端口22,则该脚本将为端口配置其他SSH配置文件23。

示例 sshd_config 文件
警告:

千万 不能 复制下面的示例文件,并尝试使用它您的服务器上。它将破坏您的SSH服务配置。这个文件只是一个例子。如何保护SSH-IDC帮帮忙