概念
利用BPF( Berkeley Packet Filter)工具集结合iptables的xt_bpf模块可以实现高性能包过滤,从而应对大规模的ddos攻击。BPF Tools包含一组简单的python脚本,一部分用于分析pcap文件,其它主要用于生成bpf字节码。
一、下载并安装bpftools
在https://github.com/cloudflare/bpftools下载zip文件解压,也可以通过git下载,然后编译,安装脚本如下:
#!/bin/bash
#yum -y kernel-headers
yum -y install python-setuptools libpcap-devel readline-devel binutils-devel bison flex libmnl libmnl-devel libtool-ltdl-devel ipset ipset-devel
easy_install pcappy
easy_install argparse cd ./linux_tools/
make cd ..
二、测试
2.1 抓取部分包数据用于测试
tcpdump -i eth0 -s0 -w sample.pcap -c 10000
2.2 可以把sample.pcap转成ascii查看
cat sample.pcap |./pcap2hex --ascii|head
2.3 用parsedns查看详细dns信息
./parsedns 04f938b79dab00238ba9f9d9080045000041c547000040117b6b3da495fa4137252400355bde002d3a380879800500010000000000000339383205733737776905626361626403636f6d0000010001
2.4 测试过滤规则
cat sample.pcap | ./filter -b "`./bpfgen --offset 14 dns -- *.bcc??.com`" | tcpdump -nr - | more
2.5 和iptables关联
三、布署
参考:
https://blog.cloudflare.com/introducing-the-bpf-tools/
http://blog.****.net/dog250/article/details/9103817
http://blog.****.net/maeom/article/details/6092457
http://blog.****.net/sanbailiushiliuye/article/details/8728888