Debian 上使用 Dumpcap 进行网络安全审计
一 环境准备与权限配置
sudo apt update && sudo apt install wireshark 或 sudo apt install dumpcapsudo setcap 'cap_net_raw,cap_net_admin+eip' /usr/bin/dumpcapgetcap /usr/bin/dumpcap(应返回包含 cap_net_raw,cap_net_admin 的能力)sudo groupadd packet_capture && sudo usermod -aG packet_capture $USER二 捕获策略与常用命令
dumpcap -Ddumpcap -i any -w /var/log/dumpcap/audit_$(date +%F_%H%M%S).pcapdumpcap -i any -w /var/log/dumpcap/audit.pcap -C 10M -W 5dumpcap -i any -f "tcp port 80 or tcp port 443" -w https_audit.pcapdumpcap -i any -f "host 192.168.1.100" -w host_audit.pcapdumpcap -i any -s 65535 -w full_audit.pcapdumpcap -i any -e -w l2_audit.pcapdumpcap -i any -w - | wireshark -k -i -dumpcap -i any -w - 'port 80' | tcpdump -r -dumpcap -i eth0 -i wlan0 -w multi_if_audit.pcap-i 接口;-w 输出文件;-f 捕获过滤器;-s 快照长度;-c 抓包数量-C 单文件大小;-W 文件数量;-e 链路层头;-t 时间戳格式;-v 详细输出。三 审计场景与过滤表达式示例
dumpcap -i any -f "not port 22 and not port 80 and not port 443 and outbound" -w suspicious_out.pcapdumpcap -i any -f "tcp[tcpflags] & (tcp-syn|tcp-ack) == tcp-syn and (port 22 or 3389 or 445 or 3306 or 6379)" -w scan_audit.pcapdumpcap -i any -f "udp port 53 or tcp port 53" -w dns_audit.pcapdumpcap -i any -f "tcp port 21 or tcp port 23 or tcp port 110 or tcp port 143" -w cleartext_audit.pcapdumpcap -i any -f "tcp port 20 or tcp port 21 or tcp port 445 or tcp port 139" -w ftp_smb_audit.pcap四 自动化与长期运行
0 * * * * /usr/bin/dumpcap -i any -w /var/log/dumpcap/audit_%Y-%m-%d_%H%M%S.pcap -C 100M -W 24[Unit]
Description=Dumpcap Network Packet Capture
After=network.target
[Service]
ExecStart=/usr/bin/dumpcap -i any -w /var/log/dumpcap/audit.pcap -C 100M -W 48
Restart=always
User=audituser
Group=packet_capture
ProtectSystem=strict
ReadWritePaths=/var/log/dumpcap
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload && sudo systemctl enable --now dumpcap五 分析与合规要点
tshark -r dns_audit.pcap -Y "dns.flags.response == 0" -T fields -e dns.qry.name | sort | uniq -c | sort -nr-s(如 128/256 字节)以减轻负载