Linux Sniffer进行入侵检测的核心逻辑与实践方法
Linux Sniffer(如tcpdump、Snort)本质是网络流量捕获与分析工具,通过抓取、解析网络数据包,识别异常流量或攻击特征,辅助管理员发现入侵行为。其入侵检测能力需结合规则匹配、流量特征分析及与其他安全工具的联动实现。
tcpdump捕获的.pcap文件。tcpdump:通过包管理器安装(如CentOS用sudo yum install -y tcpdump,Ubuntu用sudo apt install -y tcpdump);Snort:下载源码编译安装(需依赖libpcap、openssl等库),或通过包管理器安装(如sudo apt install -y snort)。sudo执行命令。-i参数指定监听的网络接口(如eth0、wlan0或any监听所有接口),例如:sudo tcpdump -i eth0
port 80(HTTP)、port 22(SSH);src 192.168.1.100(源IP)、dst 10.0.0.1(目标IP);tcp、udp、icmp(ping)。eth0接口上80端口的TCP流量:sudo tcpdump -i eth0 tcp port 80
-w参数将捕获的流量保存为.pcap文件(如output.pcap),便于后续离线分析:sudo tcpdump -i eth0 -w output.pcap port 22
捕获流量后,需通过特征匹配或异常行为识别判断是否存在入侵,常见攻击类型的检测要点:
tcpdump 'tcp[tcpflags] & (tcp-syn) != 0')、高带宽占用(需结合iftop、nload等工具确认)、服务器响应延迟;POST或GET参数,包含union select、or 1=1、--(注释符)等SQL关键字(可通过tcpdump -A显示应用层数据,或用Wireshark过滤http.request.body);/var/log/secure(CentOS)或/var/log/auth.log(Ubuntu)中的failed login记录(如SSH登录失败次数激增),或捕获22端口的频繁登录尝试(tcpdump -i eth0 'port 22 and tcp[tcpflags] & (tcp-syn|tcp-ack) != 0');ss -antp查看当前连接)、C&C服务器通信(如与已知恶意IP的连接,需结合威胁情报库);arp -a查看网关MAC地址是否异常(正常MAC应固定),或捕获大量ARP请求/应答包(tcpdump arp)。snort.conf规则库(如/etc/snort/rules/local.rules),添加自定义规则(如检测SQL注入的关键字),启动入侵检测模式(sudo snort -c /etc/snort/snort.conf -i eth0),实时报警并记录入侵事件(日志默认存放在/var/log/snort);