网站搜索

如何在 Linux 中审核网络性能、安全性和故障排除 - 第 12 部分


对计算机网络的合理分析首先要了解执行任务的可用工具有哪些、如何为每一步选择正确的工具,以及最后但并非最不重要的一点:从哪里开始。

这是LFCELinux基金会认证工程师)系列的最后一部分,在这里我们将回顾一些著名的工具来检查性能并提高网络的安全性,以及当事情没有按预期进行时该怎么办。

Linux 基金会认证计划简介

请注意,此列表并不假装很全面,因此,如果您想添加我们可能缺少的另一个有用的实用程序,请随时使用底部的表格对这篇文章发表评论。

正在运行哪些服务以及为什么?

系统管理员需要了解每个系统的第一件事就是正在运行哪些服务以及为什么运行。掌握了这些信息后,禁用所有非严格必要的服务并避免在同一台物理计算机上托管太多服务器是明智的决定。

例如,如果您的网络不需要 FTP 服务器,则需要禁用该服务器(顺便说一句,有更安全的方法可以通过网络共享文件)。此外,您应该避免在同一系统中拥有 Web 服务器和数据库服务器。如果一个组件受到损害,其余组件也会面临受到损害的风险。

使用 ss 研究套接字连接

ss 用于转储套接字统计信息,并显示类似于 netstat 的信息,尽管它可以比其他工具显示更多的 TCP 和状态信息。此外,它在 man netstat 中被列为 netstat 的替代品,后者已过时。

但是,在本文中,我们将仅关注与网络安全相关的信息。

示例 1:显示我们服务器上打开的所有 TCP 端口(套接字)

所有在其默认端口上运行的服务(即 80 上的 http,3306 上的 mysql)均由其各自的名称指示。其他的(出于隐私原因在此处被隐藏)以数字形式显示。

ss -t -a

第一列显示 TCP 状态,而第二列和第三列显示当前排队等待接收和传输的数据量。第四列和第五列显示每个连接的源套接字和目标套接字。
另外,您可能需要检查 RFC 793 来刷新您对可能的 TCP 状态的记忆,因为您还需要检查打开的 TCP 连接的数量和状态,以便了解 (D)DoS 攻击。

示例 2:显示所有活动 TCP 连接及其计时器
ss -t -o

在上面的输出中,您可以看到有 2 个已建立的 SSH 连接。如果您注意到 timer: 第二个字段的值,您会注意到第一个连接中的值为 36 分钟。这是发送下一个保活探测之前的时间量。

由于它是一个保持活动状态的连接,因此您可以安全地假设它是一个不活动的连接,因此可以在找到其 PID 后终止该进程。

至于第二个连接,您可以看到它当前正在使用(如 on 所示)。

示例 3:按套接字过滤连接

假设您想通过套接字过滤 TCP 连接。从服务器的角度来看,您需要检查源端口为 80 的连接。

ss -tn sport = :80

导致..

使用 NMAP 防止端口扫描

端口扫描是黑客用来识别网络上活动主机和开放端口的常用技术。一旦发现漏洞,就会利用它来获取对系统的访问权限。

明智的系统管理员需要检查外部人员如何看待他或她的系统,并通过经常审核来确保万无一失。这就是所谓的“防御性端口扫描”。

示例4:显示开放端口信息

您可以使用以下命令扫描系统或远程主机上打开的端口:

nmap -A -sS [IP address or hostname]

上述命令将扫描主机以进行操作系统版本检测、端口信息和跟踪路由(-A)。最后,-sS 发送 TCP SYN 扫描,阻止 nmap 完成 3 路 TCP 握手,因此通常不会在目标计算机上留下任何日志。

在继续下一个示例之前,请记住端口扫描不是非法活动。非法行为是将结果用于恶意目的。

例如,针对本地大学的主服务器运行上述命令的输出返回以下内容(为了简洁起见,仅显示了部分结果):

正如您所看到的,我们发现了一些异常情况,我们应该向这所当地大学的系统管理员报告。

此特定端口扫描操作提供也可以通过其他命令获取的所有信息,例如:

示例 5:显示有关本地或远程系统中特定端口的信息
nmap -p [port] [hostname or address]
示例 6:显示跟踪路由并查找服务版本和操作系统类型、主机名
nmap -A [hostname or address]
示例7:同时扫描多个端口或主机

您还可以扫描多个端口(范围)或子网,如下所示:

nmap -p 21,22,80 192.168.0.0/24 

注意:以上命令扫描该网段内所有主机的21、22、80端口。

您可以查看手册页以获取有关如何执行其他类型的端口扫描的更多详细信息。 Nmap 确实是一个非常强大且多功能的网络映射实用程序,您应该非常熟悉它,以便保护您负责的系统免受外部人员恶意端口扫描后发起的攻击。