CentOS中Sniffer配置技巧
在CentOS上配置Sniffer前,需完成以下基础准备:
sudo yum groupinstall "Development Tools" -y
sudo yum install ncurses-devel zlib-devel awk flex quilt git-lfs openssl-devel xz -y
tcpdump(轻量、灵活)和图形化的Wireshark(功能丰富)。根据需求选择:
sudo yum install tcpdump -ysudo yum install wireshark -y使用以下命令查看系统可用网络接口(如eth0、ens33):
ip link show # 或 ifconfig -a(需安装net-tools)
选择需要监控的接口(通常为有线连接或无线网卡)。
使用tcpdump进行简单捕获:
sudo tcpdump -i eth0 # 指定接口eth0捕获所有流量
常用选项说明:
-n:不解析主机名和端口名(提升性能);-nn:不解析主机名、端口名及协议名称;-v/-vv/-vvv:增加输出详细程度;-w capture.pcap:将捕获的数据包保存到文件(便于后续分析);-r capture.pcap:读取已保存的pcap文件。通过过滤器减少不必要的数据捕获,提升效率。常见过滤器示例:
192.168.1.100):sudo tcpdump -i eth0 host 192.168.1.100
sudo tcpdump -i eth0 port 80
sudo tcpdump -i eth0 tcp # 仅捕获TCP流量
192.168.1.100的TCP 80端口流量):sudo tcpdump -i eth0 'tcp and src host 192.168.1.100 and dst port 80'
过滤器语法需遵循tcpdump的BPF(Berkeley Packet Filter)规则。
若使用netsniff等高级Sniffer,可通过修改配置文件/etc/netsniff/netsniff.conf调整参数:
CAPTURE_ENABLED 1(启用)或0(禁用);MODE promisc(混杂模式,捕获所有经过接口的数据包)或MODE nonpromisc(非混杂模式,仅捕获目标为本机的数据包);INTERFACE eth0(指定接口);FILTER "tcp and src host 192.168.1.100"(设置过滤条件)。
修改后,使用以下命令启动Sniffer:sudo /usr/local/bin/sniff
可将Sniffer添加到系统服务(如systemd),实现开机自启。
localedef -c -f UTF-8 -i en_US en_US.UTF-8),减少编码开销;setenforce 0)或永久禁用(修改/etc/selinux/config中的SELINUX=disabled),降低对网络流量的监控;systemctl stop firewalld),但需注意安全性(建议仅在测试环境使用)。tcpdump的-B选项增大缓冲区(如-B 4096),避免因缓冲区满导致数据丢失。-C选项限制每个捕获文件的大小(如-C 100,单位为MB),避免单个文件过大;-W选项限制捕获时长(如-W 60,单位为分钟),自动停止捕获。sudo执行命令,避免普通用户获取敏感权限;