阅读量:78
1. 安装必要的Sniffer工具
在Ubuntu系统中,需先安装核心的Sniffer工具(如tcpdump、Wireshark)及入侵检测工具(如snort)。tcpdump是命令行数据包捕获工具,Wireshark提供图形化分析界面,snort是开源网络入侵检测系统(NIDS),支持签名检测与协议分析。安装命令如下:
tcpdump:sudo apt-get install tcpdumpWireshark:sudo add-apt-repository ppa:wireshark-dev/stable && sudo apt update && sudo apt install wireshark(安装时需允许非超级用户捕获数据包)snort:sudo apt-get install snort(默认安装为嗅探模式,如需入侵预防需额外配置inline模式)。
2. 捕获网络流量数据
使用Sniffer工具捕获目标网络接口的流量,为后续分析提供原始数据。常用命令示例:
- tcpdump:捕获
eth0接口的所有流量并保存到capture.pcap文件(便于后续离线分析):
sudo tcpdump -i eth0 -w capture.pcap - Wireshark:启动后选择
eth0接口,点击“开始捕获”,实时查看流量详情(如HTTP请求、DNS查询等)。
3. 分析流量中的入侵特征
通过过滤规则筛选可疑流量,识别常见入侵行为的特征:
- 端口扫描:检测短时间内对多个端口的连接请求(如
nmap扫描),tcpdump过滤命令:sudo tcpdump -i eth0 'tcp[tcpflags] & (tcp-syn) != 0 and tcp[tcpflags] & (tcp-ack) = 0'(仅显示SYN包,无ACK包的连接尝试)。 - DDoS攻击:识别大量重复或异常流量(如SYN Flood),
tcpdump过滤SYN包:sudo tcpdump -i eth0 'tcp[tcpflags] & (tcp-syn) != 0' | wc -l(统计SYN包数量,短时间内超过阈值则可能为攻击)。 - 恶意流量:通过Wireshark查看数据包负载,识别SQL注入(如
' OR 1=1 --)、XSS(如[removed]标签)等攻击特征。
4. 利用Snort实现实时入侵检测
snort通过规则库匹配流量,实时报警并记录入侵行为。配置步骤:
- 编辑规则文件:修改
/etc/snort/snort.conf,启用常用规则集(如community.rules,包含针对DDoS、端口扫描等的规则),取消对应行的注释:
include $RULE_PATH/community.rules - 启动Snort检测:以NIDS模式运行(监听
eth0接口,日志输出到/var/log/snort/alert):
sudo snort -i eth0 -c /etc/snort/snort.conf -A console(-A console表示实时输出报警信息到控制台)。 - 查看报警日志:使用
tail -f /var/log/snort/alert实时查看入侵报警(如“TCP SYN Flood attack detected”)。
5. 响应与处理入侵行为
当检测到入侵行为时,需及时采取措施阻止攻击:
- 记录证据:保存
tcpdump捕获的capture.pcap文件或snort的报警日志,用于后续分析攻击来源与方式。 - 阻断攻击源:通过
iptables添加规则,拒绝攻击源IP的流量(如攻击源IP为192.168.1.100):
sudo iptables -A INPUT -s 192.168.1.100 -j DROP - 修复漏洞:若检测到端口扫描或SQL注入等攻击,检查系统是否存在未修复的漏洞(如未关闭的端口、未更新的软件),并及时修补。