《不花钱解决网络安全问题》摘记
这一系列文章是阅读《Secure Your Network for Free: Using NMAP, WIRESHARK, SNORT, NESSUS, and MRTG》时的摘要记录,并非原文翻译,仅供学习者参考。如果对部分技术内容的细节感兴趣,可以查阅原书或其他相关技术讨论文章。
第七章 网络报告和问题解决
报告带宽使用和其它指标
软件名称 | 说明 | 授权 |
---|---|---|
Multi Router Traffic Grapher (MRTG) | 支持 Unix/Linux, Windows, Netware 系统;需要 SNMP 支持 | 免费 |
MZL & Novatech TrafficStatistic | 给于对网络流量的全面嗅探 | 免费 |
PRTG Traffic Grapher | 可提取 NetFlow 协议,SNMP 和 网络嗅探数据 | 免费版支持三个“传感器” |
ntop | 给予浏览器界面的网络流量分析工具 | 免费 |
收集用于分析的数据
根据各种工具收集数据的要求不同,能够分析的指标和分析主机部署的位置也有所不同。
- 嗅探数据:在网络层截取所有经过分析主机所在网段的流量。对处理器和各种资源要求较高。需要准确选择部署位置以保证目标流量可以经过分析主机所在网段。
- SNMP:获取通过网络连接的设备信息,可以通过配置进提取目标信息。分析主机不需要部署在数据路径,只需要保证可以通过网络访问产生或接收数据的设备即可。
- NetFlow:主要支持思科设备,设计模式与 SNMP 相似。
理解 SNMP
- SNMP 中通过 Management Information Base (MIB)树结构对目标系统的配置进行分类。MIB 中某些部分具有系统普遍适用性,同时也存在部分内容可针对不同的发型版本进行定制。
- 管理节点针对 MIB 对象的操作主要包括 Get 和 Set。其中 Get 用于获取 MIB 中的某项参数;Set 用于设置参数。
- Trap 是 SNMP 的一个关键功能,可以理解为针对某些给定条件激发的报警,与 PRTG Traffic Graphher 中的通知消息相似。
- 可以将 SNMP 理解为管理节点和被管理设备之间的“聊天”协议。
- SNMP 版本 1 和 2 未对传输数据进行加密,同时授权机制较弱,因此存在一定的安全隐患。版本 3 解决了部分问题,当多被一些商业级平台选用。因此对于免费解决方案,较合适的方案仍然是使用版本 1 和 2,通过引入访问控制列表和诸如 IPsec 一类的加密方法以提高安全性。
配置 Multi Router Traffic Grapher
- 运行依赖 Perl。
- 需要设置 SNMP 的安全配置以支持 MRTG 运行。
- 可以后台程序(Daemon)模式运行。
- 对采集数据的目标系统的数目没有限制。
配置 MZL & Novatech TrafficStatistic
- 只使用嗅探数据。因此需要讲运行 TrafficStatistic 的主机部署在可以获取所需数据的位置。
- 采用基本监测功能免费,插件付费的商业模式。
配置 PRTG Traffic Grapher
- 支持嗅探数据、SNMP 和 NetFlow。
- 通过 Web 浏览器访问服务器的分析报告。
配置 ntop
- ntop 支持多种系统,但不同系统下的安装略有区别。Windows 下提供源码安装和预编译的二进制程序。但预编译版本仅可以抓取 2000 个包。源码安装和 Linux 系统预编译版本没有此限制。
- OPENXTRA 公司提供了许多免费软件的预编译版本,其中也包括 ntop 的 Windows 预编译版本,且没有抓取包数量的限制。
- ntop 没有原生的报警和处理机制,需要额外处理。例如可以通过 OPENXTRA 设置快捷操作链接。
在 Windows 主机启用 SNMP
- 通过“控制面板->添加删除 Windows 组件->管理和监控工具->详细内容->SImple Network Management Protocol” 启用 SNMP。
- 通过 “开始->运行” 启动 services.msc,可以对 SNMP 服务进行设置。
- 可以在 PRTG 中将 Windows 主机的控制台添加为“传感器”。注意 PRTG 的免费版本限制最多使用3个“传感器”。
在 Linux 主机启用 SNMP
-
确认 SNMP 后台程序(snmmpd)是否已安装。
chkconfig --list snmpd
-
可以通过编辑 /etc/snmp/snmpd.conf 来配置 SNMP 服务。
解决网络问题
大部分情况下可以通过分析错误报告或 syslog 日志来明确问题并确定解决方案。特殊情况下,需要使用网络嗅探器获取更多信息。
使用带 GUI 的嗅探器
Ethereal 是历史最悠久、功能最齐全的嗅探工具之一。目前该项目已经更名为 Wireshark,在 Windows 和 Linux 下均可使用。Wireshark 需要 WinPcap 驱动,以支持数据包级别的网络通信控制。
使用命令行交互的嗅探器
软件名称 | 说明 | 授权 |
---|---|---|
Tcpdump | Linux 原生工具,大部分 Linux 版本默认自带 | 免费 |
Windump | 类似于大多数 Linux 系统默认自带的 tcpdump 的 Windows 工具 | 免费 |
ngSniff | 相较于 tcpdump/Windows 鲁棒性略低,无需安装 | 免费 |
其他的“问题解决”工具
- Netcat:“问题解决”工具中的“瑞士军刀”;可便利的在两台主机之间建立控制连接;可以支持将对话 session 保存为十六进制的文件。另外,还有一个与 netcat 功能类似的工具 – socat。
- Tracetcp:了解网络包的传递路径往往是解决网络问题所需的关键步骤。Linux 下通常可以用 traceroute,Windows 下可以用 tracert 来达到此目的。与 tracerout 使用 ICMP 协议不同,tracetcp 提供基于 TCP 协议的数据包路径追踪。
- Netstat:支持在 Windows 和 Linux 下查看连接的信息。
- Linux 系统和老版本的 Windows 系统下可以使用 fport 查看端口信息。
- Windows 系统下,tcpview 提供支持 GUI 的端口进程查看功能,tcpvcon 是其命令行版本。
- Linux 系统下,可以通过 lsof 查看进程使用的端口信息。