在 Linux 中防止 SSH 暴力登录攻击的 5 个最佳实践
在当今的科技世界中,安全至关重要。保护我们的系统免受未经授权的访问至关重要,而获取 Linux 系统未经授权访问的最常见方法之一就是通过 SSH 进行暴力登录攻击。SSH(安全外壳)是一种用于安全访问和管理远程系统的网络协议。在本文中,我们将讨论在 Linux 中防止 SSH 暴力登录攻击的 5 个最佳实践。
使用强密码
保护 SSH 服务器安全的第一步是使用强密码。强密码长度至少应为 8 个字符,并混合使用大小写字母、数字和特殊字符。避免使用容易被猜到的密码,例如"password123"或"admin123",这些密码很容易被暴力破解。
要创建强密码,您可以使用在线密码生成器、密码管理器,甚至可以使用随机单词的组合。此外,定期更改密码至关重要,至少每三个月更改一次。
使用公钥身份验证
与使用密码相比,公钥身份验证是一种更安全的登录 SSH 服务器的方法。此方法需要创建一对公钥和私钥,公钥存储在服务器上,私钥安全地保存在您的本地计算机上。
当您登录 SSH 服务器时,服务器将检查您的公钥以验证您的身份。这种方法比使用密码更安全,因为即使攻击者设法获取了您的密码,他们也无法在没有私钥的情况下登录。
要使用公钥身份验证,您可以在本地计算机上使用 ssh-keygen 命令生成密钥对。然后,将公钥复制到服务器的 authorized_keys 文件中。之后,您就可以使用私钥登录服务器了。
更改默认 SSH 端口
默认情况下,SSH 服务器监听 22 端口,而该端口是攻击者熟知的。将默认端口更改为随机或非标准端口会使攻击者更难找到您的 SSH 服务器并发起暴力攻击。
要更改默认 SSH 端口,您需要修改 SSH 服务器配置文件,通常位于 /etc/ssh/sshd_config。查找指定端口号的行并将其更改为其他值。之后,重启 SSH 服务以应用更改。
请务必记住,更改默认 SSH 端口并不能阻止所有攻击,但它可以使攻击者更难找到您的服务器。
限制 SSH 访问
限制 SSH 访问有助于防止未经授权的服务器访问。您可以使用防火墙限制对特定 IP 地址或网络范围的访问。这样,您就可以仅允许来自受信任来源(例如您的办公室网络或家庭网络)的访问。
要使用防火墙限制 SSH 访问,您需要创建一条规则,仅允许来自受信任 IP 地址或网络范围的传入流量进入 SSH 端口。例如,如果您只想允许来自 IP 地址 192.168.1.100 的访问,可以创建如下规则: -
iptables -A INPUT -p tcp --dport 22 -s 192.168.1.100 -j ACCEPT
此规则仅允许来自 IP 地址 192.168.1.100 的 SSH 端口的传入流量。您可以根据需要添加更多 IP 地址或网络范围。
安装并使用 Fail2ban
Fail2ban 是一款软件工具,可以帮助保护您的 SSH 服务器免受暴力登录攻击。Fail2ban 会监控服务器日志中失败的登录尝试,并在一定次数的失败尝试后阻止攻击者的 IP 地址。这使得攻击者更难成功发起暴力攻击。
要在 Linux 服务器上安装 Fail2ban,您可以使用特定于发行版的软件包管理器。例如,在基于 Debian 的系统上,您可以使用 apt-get 命令 -
sudo apt-get install fail2ban
安装完成后,您需要配置 Fail2ban 来监控您的 SSH 日志。默认情况下,Fail2ban 附带一个 SSH 配置文件,位于 /etc/fail2ban/jail.conf。您可以修改此文件,指定 IP 地址在登录失败次数后将被阻止的次数。
例如,如果您想在三次登录失败后阻止某个 IP 地址,您可以在配置文件的 SSH 部分添加以下行:
[ssh] enabled = true port = ssh filter = sshd logpath = /var/log/auth.log maxretry = 3
更改后,重新启动 Fail2ban 服务以应用新配置。
禁用 Root 登录
默认情况下,Root 用户拥有系统的完全访问权限,是攻击者的主要目标。最佳做法是禁用通过 SSH 直接以 root 身份登录,改用具有 sudo 权限的普通用户帐户。这样,即使攻击者设法破解了普通用户帐户的密码,他们也无法获得系统的 root 访问权限。
要禁用 root 登录,您需要修改 SSH 服务器配置文件 (/etc/ssh/sshd_config),并将 PermitRootLogin 选项设置为"no"。
使用双因素身份验证
双因素身份验证 (2FA) 为 SSH 登录过程增加了额外的安全保障。除了密码或私钥之外,2FA 还要求用户提供第二个因素,例如智能手机应用程序生成的代码或物理令牌。
要为 SSH 启用双因素身份验证,您可以使用 Google Authenticator 或 Authy 等工具,它们可以生成基于时间的一次性密码 (TOTP)。您需要在本地计算机和 SSH 服务器上安装 2FA 工具,并将两者配置为使用相同的 TOTP 密钥。
监控 SSH 日志
监控 SSH 日志可以帮助您检测和预防暴力登录攻击及其他安全事件。您可以使用 Logwatch、Logrotate 或 Logwatcher 等工具来监控 SSH 日志,并在检测到异常活动时发出警报。
定期检查 SSH 日志也很重要,以识别任何可疑的登录尝试、异常 IP 地址或失败的登录尝试。这样做,您可以快速采取措施,防止潜在的安全漏洞。
保持系统更新
使用最新的安全补丁和更新来保持 Linux 系统更新对于预防已知漏洞和漏洞利用至关重要。您应该定期检查更新并尽快应用。
此外,定期检查 SSH 服务器配置或文件是否存在任何未经授权的更改至关重要,因为这些更改可能是安全漏洞的征兆。
使用堡垒主机或跳转服务器
堡垒主机或跳转服务器是充当网络或基础架构单一入口点的专用服务器。所有到您网络的 SSH 连接都通过堡垒主机路由,堡垒主机可以配置为强制执行安全策略,例如访问控制和身份验证。
使用堡垒主机或跳转服务器可以帮助您减少网络的攻击面,并防止未经授权的系统访问。
结论
总而言之,保护您的 SSH 服务器对于防止未经授权的 Linux 系统访问至关重要。遵循上述 5 个最佳实践,您可以显著降低 SSH 服务器遭受暴力登录攻击的风险。请记住使用强密码、启用公钥身份验证、更改默认 SSH 端口、限制 SSH 访问,以及安装并使用 Fail2ban 监控您的 SSH 日志。通过实施这些实践,您可以确保 Linux 系统的安全,并保护您的数据免遭未经授权的访问。
相关文章
有用资源
linux 参考教程 - 该教程包含有关 linux 的更多信息:https://www.cainiaomax.com/linux/

