SSH 广泛用于安全访问 Linux 服务器。建立接大多数用户使用默认设置的全连 SSH 连接来连接到远程服务器。然而,种方不安全的建立接默认配置也会带来各种安全风险 。
具有开放 SSH 访问的全连服务器的 root 帐户可能会面临风险 。特别是种方如果您使用公共IP地址 ,破解root密码就更容易。建立接因此 ,全连了解SSH安全是种方必要的 。
以下是高防服务器建立接如何在 Linux 上建立 SSH 安全连接的方法。

首先,种方禁用 root 用户的建立接 SSH 访问并创建具有 root 特权的新用户 。关闭 root 用户的全连服务器访问是一种防御策略,可防止攻击者达到入侵系统的种方目的 。例如 ,您可以创建名为 exampleroot 的用户,香港云服务器如下所示 :
复制useradd -m exampleroot passwd exampleroot usermod -aG sudo exampleroot1.2.3.以下是上述命令的简要解释 :
useradd 命令用于创建新用户,-m 参数会在 home 目录下为所创建的用户创建一个文件夹 。passwd 命令用于给新用户分配密码 。请记住,分配给用户的密码应该是复杂的 、难以猜测的密码 。usermod -aG sudo 将新创建的用户添加到管理员组 。在创建用户后 ,亿华云需要对 sshd_config 文件进行一些更改。您可以在 /etc/ssh/sshd_config 找到此文件。使用任何文本编辑器打开该文件并进行以下更改:
复制# Authentication: #LoginGraceTime 2m PermitRootLogin no AllowUsers exampleroot1.2.3.4.5.
PermitRootLogin参数可以防止root用户使用SSH获得远程访问权限 。将exampleroot包含在AllowUsers列表中授予用户必要的权限 。
最后,使用以下命令重启SSH服务 :
复制sudo systemctl restart ssh1.如果失败并收到错误消息 ,请尝试下面的命令 。这可能因您使用的Linux发行版而异 。
复制sudo systemctl restart sshd1. 2、更改默认SSH端口默认的SSH连接端口是22 。当然,云计算所有攻击者都知道这一点,因此需要更改默认端口号以确保SSH安全性 。虽然攻击者可以使用Nmap扫描轻松找到新端口号,但这里的目标是使攻击者的工作更加困难 。
要更改端口号,请打开/etc/ssh/sshd_config并对文件进行以下更改:
复制Include /etc/ssh/sshd_config.d/*.conf Port 59221.2.3.完成此步骤后,再次使用sudo systemctl restart ssh命令重启SSH服务 。现在,您可以使用刚定义的端口访问服务器。
如果您正在使用防火墙,则必须在那里进行必要的规则更改 。源码库运行netstat -tlpn命令 ,您可以看到SSH的端口号已更改。
3、禁止使用空密码登录在您的系统上可能存在没有密码的用户,这可能是您不小心创建的。为了防止这样的用户访问服务器,您可以将sshd_config文件中的PermitEmptyPasswords行值设置为no。
复制PermitEmptyPasswords no1. 4 、限制登录/访问尝试次数默认情况下,源码下载您可以使用任意多的密码尝试来访问服务器。但是,攻击者可以利用此漏洞对服务器进行暴力破解。
您可以通过在sshd_config文件中指定允许的密码尝试次数来自动终止SSH连接。
为此 ,请更改MaxAuthTries值。
复制MaxAuthTries 31. 5、使用SSH Version 2SSH Version 2 的发布是因为第一版存在许多漏洞 。默认情况下,您可以通过将 Protocol 参数添加到您的 sshd_config 文件中来启用使用SSH Version 2。
这样,您所有未来的连接都将使用 SSH2 。
Include /etc/ssh/sshd_config.d/*.conf
复制Protocol 21.
攻击者可以通过SSH连接进行端口转发 ,尝试获取访问您其他系统的权限 。为了防止这种情况发生,您可以在sshd_config文件中关闭AllowTcpForwarding和X11Forwarding功能 。
复制X11Forwarding no AllowTcpForwarding no1.2. 7、使用SSH密钥连接连接到服务器最安全的方法之一是使用SSH密钥。使用SSH密钥,您可以无需密码访问服务器 。此外 ,您可以通过更改sshd_config文件中的与密码相关的参数来完全关闭服务器的密码访问。
创建SSH密钥时 ,有两个密钥:公钥和私钥。公钥上传到您要连接的服务器 ,私钥存储在使用该密钥进行连接的计算机上 。
在计算机上使用ssh-keygen命令创建SSH密钥 。不要留空Passphrase字段,并记住您在此输入的密码 。
如果您留空该字段 ,则只能通过SSH密钥文件进行访问。但是,如果设置了密码,您可以防止拥有密钥文件的攻击者访问它。
例如,您可以使用以下命令创建SSH密钥:
复制ssh-keygen1. 8 、SSH连接的IP限制大多数情况下 ,防火墙使用其标准框架阻止访问并旨在保护服务器。但是,这并不总是足够的 ,您需要增加此安全性潜力。
要做到这一点,请打开/etc/hosts.allow文件。通过在此文件中进行添加,您可以限制SSH权限,允许特定IP块或输入单个IP并使用拒绝命令阻止所有其余IP地址 。
下面是一些示例设置 。完成这些操作后 ,像往常一样重新启动SSH服务以保存更改。
复制IP-Restriction-for-SSH-Connection-11.
您可以配置sshd配置文件以有选择地允许或禁止用户和组从SSH登录到您的服务器 。默认情况下,所有用户和组都允许访问。当您管理不应由除那些具有适当权限的人以外的任何人访问的生产服务器时 ,这是一种安全风险 。
以下是您需要添加以允许/拒绝用户和组访问SSH的行:
复制AllowUsers: username sshuser@ip:port AllowGroups: groupname DenyUsers: username1 username2 sshuser@ip:port DenyGroups: groupname1.2.3.4. 10、设置空闲超时时间间隔如果一个受信任的用户离开他们的桌面未经注销,那么拥有他们电脑访问权限的对手可以利用这一点 ,在缺席或不活动的受信任用户的情况下对服务器进行恶意操作。
抵御这种情况的最简单方法是设置一个空闲超时时间间隔。在定义的一段不活动时间后,服务器将终止与用户的SSH连接,以防止在缺席或不活动的情况下未经授权的访问。
以下是您需要添加到ssh配置文件中以开启此设置的行:
复制ClientAliveInterval 1201.根据配置文件中发出的命令,经过120秒的不活动时间后,连接将被终止 。您可以更改数字以适应自己的喜好 。
12、添加 Banner 警告语言虽然这不是一种主动的安全措施,但添加 Banner 警告语言可以是一种有用的心理策略 ,用于防止不受欢迎的访客,并在他们试图以恶意意图连接到您的服务器时使对手处于不利位置 。
要添加自定义 Banner 警告语言,请首先仔细准备横幅的文本或从互联网上抓取一个通用的文本文件 ,然后将以下行添加到您的配置文件中:
复制Banner /path/to/banner/banner.txt1. 13、强制使用强大的MAC算法在SSH的上下文中,MAC代表消息认证码。MAC是一种加密算法 ,用于验证和确认客户端与服务器之间的数据传输。
设置强大的MAC算法非常重要 ,以确保数据的完整性和保密性 ,这是网络安全的两个关键支柱。以下是您需要在配置文件中添加的行:
复制Banner /path/to/banner/banner.txt1. 14 、将LogLevel设置为监视SSH活动您可以监视SSH活动的不同详细程度。默认情况下 ,此功能可能已关闭 。建议您打开此功能,并将其设置为基本日志记录级别 – INFO,该级别仅记录用户的错误、消息、密钥验证、登录和注销活动 。
如果您愿意 ,可以将其更改为更详细的级别,例如VERBOSE或DEBUG。以下是您需要在sshd配置文件中添加的行:
复制LogLevel INFO1.现在,您的SSH服务器将生成基本日志数据,您可以通过导航到并读取基于Debian / Ubuntu的机器上的/var/log/auth.log*文件和基于RHEL / CentOS / Fedora的机器上的/var/log/secure文件来阅读此日志数据 。
您可以查看整个日志文件并导航到带有sshd的部分,或者使用grep命令过滤内容并仅阅读sshd日志。
Linux 服务器安全的重要性数据和数据安全问题非常详细,所有服务器管理员都应考虑。服务器安全是非常敏感的问题 ,因为攻击的主要焦点是Web服务器,它们包含有关系统的几乎所有信息。
由于大多数服务器运行在Linux基础架构上,因此熟悉Linux系统和服务器管理非常重要。
SSH 安全仅是保护服务器的一种方式。您可以通过停止 、阻止或减缓攻击来将所遭受的损害最小化。除提供 SSH 安全外 ,还可以实施许多不同的方法来保护您的 Linux 服务器 。
(责任编辑:人工智能)