如何审核 Linux 中的网络性能、安全性和故障排除 - 第 12 部分
对计算机网络进行合理的分析首先要了解可用于执行任务的工具有哪些、如何为每个步骤选择合适的工具,以及最后但并非最不重要的是,从哪里开始。
这是LFCE(Linux 基金会认证工程师)系列的最后一部分,在这里我们将回顾一些知名的工具来检查性能和提高网络的安全性,以及当事情没有按预期进行时该怎么做。
Linux 基金会认证计划简介
请注意,此列表并不全面,因此如果您想添加我们可能遗漏的另一个有用的实用程序,请随意使用底部的表格对此帖子发表评论。
哪些服务正在运行以及为什么运行?
系统管理员需要了解的关于每个系统的第一件事就是正在运行哪些服务以及为什么运行。掌握了这些信息后,明智的做法是禁用所有不必要的服务,并避免在同一台物理机器上托管过多的服务器。
例如,如果您的网络不需要FTP服务器,则需要禁用它(顺便说一句,有更安全的方法可以通过网络共享文件)。此外,您应避免在同一个系统中安装 Web 服务器和数据库服务器。如果一个组件受到损害,其余组件也面临受到损害的风险。
使用 ss 调查套接字连接
ss用于转储套接字统计信息,并显示与netstat类似的信息,但它可以显示比其他工具更多的 TCP 和状态信息。此外,它在man netstat中被列为netstat 的替代品,后者已过时。
但是,在本文中我们将仅关注与网络安全相关的信息。
示例 1:显示服务器上打开的所有 TCP 端口(套接字)
所有在默认端口上运行的服务(例如 http 在 80 上,mysql 在 3306 上)都以各自的名称表示。其他服务(出于隐私原因,此处已隐藏)以数字形式显示。
# ss -t -a
第一列显示TCP状态,而第二列和第三列显示当前排队等待接收和传输的数据量。第四列和第五列显示每个连接的源套接字和目标套接字。
顺便提一下,您可能需要查看RFC 793以刷新您对可能的 TCP 状态的记忆,因为您还需要检查打开的 TCP 连接的数量和状态,以便意识到 (D)DoS 攻击。
示例 2:显示所有活动 TCP 连接及其计时器
# ss -t -o
在上面的输出中,您可以看到已建立 2 个 SSH 连接。如果您注意timer : 的第二个字段的值,您会注意到第一个连接的值为36分钟。这是发送下一个 keepalive 探测之前的时间。
由于它是一个保持活动的连接,因此您可以安全地假设这是一个非活动的连接,因此可以在找出其PID后终止该进程。
至于第二个连接,您可以看到它当前正在被使用(如 on 所示)。
示例 3:按套接字过滤连接
假设你想通过套接字过滤 TCP 连接。从服务器的角度来看,你需要检查源端口为 80 的连接。
# ss -tn sport = :80
导致..
使用 NMAP 防范端口扫描
端口扫描是黑客常用的一种技术,用于识别网络上的活动主机和开放端口。一旦发现漏洞,就会利用该漏洞获取对系统的访问权限。
明智的系统管理员需要检查外部人员如何看待自己的系统,并通过频繁审核来确保万无一失。这称为“防御性端口扫描”。
示例 4:显示有关开放端口的信息
您可以使用以下命令来扫描您的系统或远程主机上打开的端口:
# nmap -A -sS [IP address or hostname]
上述命令将扫描主机以检测操作系统和版本、端口信息和跟踪路由(-A)。最后,-sS发送TCP SYN扫描,阻止 nmap 完成三次 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确实是一个非常强大且用途广泛的网络映射实用程序,您应该非常熟悉它,以便保护您负责的系统免受外部人员恶意端口扫描后发起的攻击。