如何检查SSH服务器的安全性并保护其免受攻击

如今,SSH协议对于安全管理服务器,路由器,交换机和其他类型的设备(例如Wi-Fi控制器或AP)至关重要。 该协议是最常用的协议之一,因为它使用对称和非对称密码为传输的数据提供机密性,身份验证和完整性。 今天,在本文中,我们将讨论如何使用外部工具保护SSH服务器,并且还将说明如何执行完整的安全审核。

监视SSH服务器日志以检测攻击

SSHGuard是一个程序,它使我们可以监视SSH服务器的日志,以检测对允许我们连接到服务器的用户的可能的暴力攻击。 为了对组织的信息系统进行良好的管理,监视不同服务的日志非常重要,并且借助SSHGuard,我们将能够对其进行监视,以稍后检测攻击并使用 火墙 操作系统本身。

检查SSH服务器的安全性

该软件将负责监视不同格式的日志,特别是,它能够识别不同格式的这些日志:

  • macos
  • 冶金
  • 多日志
  • 原始日志文件
  • 系统日志
  • 系统日志
  • 系统日志

SSHGuard不仅使您可以保护我们的SSH服务器,而且还准备扫描,检测和保护任何计算机系统上的其他基本服务。 最初它只是与OpenSSH兼容,但是它已经发展了,现在我们拥有所有这些服务:

  • OpenSSH(SSH服务器)
  • Sendmail(邮件服务器)
  • Exim(邮件服务器)
  • Dovecot(邮件服务器)
  • Cucipop(邮件服务器)
  • UWimap(邮件服务器)
  • vsftpd(FTP / FTPES服务器)
  • proftpd(FTP / FTPES服务器)
  • pure-ftpd(FTP / FTPES服务器)
  • FreeBSD ftpd(FTP / FTPES服务器)

当SSHGuard读取不同系统服务的日志并检测到某种攻击时,它将使用操作系统防火墙自动阻止它。 从逻辑上讲,根据操作系统,我们将安装特定的防火墙,当前SSHGuard与以下基于Unix和Linux的系统的防火墙兼容。 Linux:

  • FirewallD
  • 网易
  • IP过滤器
  • 网络过滤器/iptables
  • 网络过滤器/ ipset
  • Pf
  • tcpd的hosts.allow
  • IBM AIX的防火墙

其他有趣的选项是,我们可以自动创建IP地址黑名单,此外,它还能够同时监视多个日志文件。 如果您在专业或家庭网络上使用IPv6协议,则很幸运,因为SSHGuard完全支持IPv6协议。

SSHGuard的安装和调试

Linux发行版的主要软件存储库(例如Debian,ArchLinux, Ubuntu,OpenSUSE以及基于Unix的FreeBSD。 安装必须通过发行版的软件包管理器完成,如果不存在,则可以随时下载软件并自己进行编译,您可以访问 SSHGuard官方网站 访问其下载。

要启动SSHGuard,首先要做的是在服务器上配置日志系统。 如果您不知道该怎么做,那真是太棒了 该软件的官方网站上的文档 。 然后,您将必须在防火墙中配置某些参数,以便SSHGuard能够完全自动地阻止我们可能拥有的攻击者的IP地址,而无需网络或系统管理员的干预。

检查您的SSH服务器的安全性

如果我们已经配置了 SSH服务器具有最高的安全性 ,正如我们在本文中所解释的那样,您应该没有问题,但是,使用外部工具检查服务器的安全性永远没有问题。

Rebex SSH检查

免费和在线工具 Rebex SSH Check将 对密钥交换算法,对称加密算法,密钥算法以及我们当前在SSH服务器上配置的MAC算法进行快速扫描。 如果我们使用当前认为不安全的任何算法,它将告诉我们,以便以后可以正确配置SSH服务器并将该算法从“允许的”算法中删除。

我们要做的第一件事是进入官方网站,我们将看到它询问我们的IP地址或域以及SSH服务器正在侦听的端口。 当我们从SSH服务器输入数据时,单击“测试”按钮。

检查SSH服务器安全性的过程大约需要10秒钟,它将通知我们所有可以使用的算法以及它们是否安全。 例如,在我们使用默认值的XigmaNAS SSH服务器的情况下,由于使用了所有安全的对称和非对称加密算法,因此丢弃了绝大多数旧算法,因此我们获得了出色的安全性。

如您所见,该工具还能够检查服务器密钥算法,它告知我们SHA-1所使用的算法是“安全的”,但它已经告知我们它已过时,建议始终使用SHA2- 256或更高版本,因此在配置文件中,我们可以删除此算法。

我们还将提供对称加密算法,因为在配置文件中已定义了对称加密算法,所以我们只能得到一种。 该工具对于验证安全设置确实是我们想要的也非常有用。

最后,它还表明我们在SSH服务器上可用的MAC算法,如您所见,其中有些被认为是不安全的,因此建议尽快删除它们的支持:

该服务能够为我们提供的其他数据是,如果我们使用任何类型的压缩,并且如果使用它,它将告诉我们在服务器配置文件中激活了哪种类型的压缩。 最后,它还将通知我们有关服务器的公共密钥,包括MD5指纹,SHA2-256甚至我们使用的公共密钥:

如您所见,借助这个功能强大的完全免费的在线工具,我们可以轻松,快速地检查SSH服务器的安全性。

SSH审核

ssh-audit是一个完全免费的工具,用Python编写,它将负责扫描SSH服务器的配置,这一次,我们没有在线工具,但是我们必须在服务器本身上运行它,我们要检查SSH安全性。 ssh-audit会告诉我们所应用的不同配置是否安全,不安全或存在任何弱点,是以后对所述SSH服务器进行更改的理想选择。

这个免费工具的一些主要功能是,如果我们使用的是像SSH1这样的不安全协议,甚至使用zlib库压缩,它都将使我们能够检测到登录标语。 您还可以验证密钥交换算法,主机的公共密钥,已经建立通信时的对称加密以及信息验证消息。

当ssh-audit以完全自动化的方式分析所有这些参数时,它将生成完整的报告,指示特定选项何时可用,是否已被删除,禁用,不安全,脆弱或安全。 根据所进行配置的严重程度,我们可以在警告中看到不同的颜色。

ssh_audit_captura

该工具还将向我们展示所用SSH的版本,此外,它还与OpenSSH和Dropbear(操作系统和设备(如路由器,交换机等)中最常用的两个SSH服务器)兼容。前一个,因为它将为我们提供更多信息。

要使用它,我们要做的就是 从官方ssh-audit GitHub下载.py文件 ,那么我们将像其他任何Python工具一样运行它,如下所示:

python ssh-audit.py [-nv] host[:port]

参数-n将禁用所有信息输出中的不同颜色,并且-v将绝对向我们显示该工具提供给我们的所有信息。

如您所见,使用外部工具进行保护并检查SSH服务器的安全性非常容易。 尽管SSH是一种安全协议,但始终必须正确配置它,以避免出现问题或攻击。