如何审计Linux中的网络性能、安全性和故障排除 – 第12部分

A sound analysis of a computer network begins by understanding what are the available tools to perform the task, how to pick the right one(s) for each step of the way, and last but not least, where to begin.

这是LFCELinux Foundation Certified Engineer)系列的最后一部分,我们将回顾一些常见的工具来检查网络性能并增加安全性,以及在事情不如预期时应该怎么做。

Linux Foundation Certified Engineer – Part 12
介绍Linux Foundation认证计划

请注意,此列表并不打算全面,所以如果您想添加另一个有用的工具,请随时在底部的表单中评论此帖。

哪些服务正在运行以及原因?

系统管理员需要了解每个系统正在运行的服务以及原因是什么。有了这些信息,禁用所有不是绝对必需的服务,并避免在同一物理机上托管太多服务器是明智的决定。

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

使用ss调查套接字连接

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

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

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

所有运行在它们默认端口上的服务(即http在80上,mysql在3306上)都用它们各自的名称表示。其他服务(此处出于隐私原因而模糊)则以其数字形式显示。

# ss -t -a
Check All Open TCP Ports

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

示例2:显示所有活动的TCP连接及其定时器
# ss -t -o
Check all Active Connections

在上面的输出中,您可以看到有2个已建立的SSH连接。如果您注意第二个字段的计时器值,则会注意到第一个连接中的36分钟的值。这是下一次保持活动探测将被发送的时间量。

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

Kill Active Process

至于第二个连接,您可以看到它目前正在使用中(由on指示)。

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

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

# ss -tn sport = :80

结果是..

Filter Connections by Socket

使用 NMAP 防御端口扫描

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

A wise sysadmin needs to check how his or her systems are seen by outsiders, and make sure nothing is left to chance by auditing them frequently. That is called “defensive port scanning”.

示例 4:显示有关开放端口的信息

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

# nmap -A -sS [IP address or hostname]

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

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

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

Check Open Ports

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

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

示例 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。

您可以查看 man 页面 以获取有关执行其他类型端口扫描的详细信息。Nmap确实是一个非常强大且多才多艺的网络映射工具,您应该非常熟悉它,以便在外部恶意端口扫描后防御您负责的系统遭受攻击。

Source:
https://www.tecmint.com/audit-network-performance-security-and-troubleshooting-in-linux/