今天看到一个很有意思的命令tcpdump,在这里记录下。
如果想要看tcpdump的详细用法,可以点击。
什么是CC攻击?
关于CC攻击,这里引用百度的解释:
CC攻击的原理就是攻击者控制某些主机不停地发大量数据包给对方服务器造成服务器资源耗尽,一直到宕机崩溃。CC主要是用来攻击页面的,每个人都有这样的体验:当一个网页访问的人数特别多的时候,打开网页就慢了,CC就是模拟多个用户(多少线程就是多少用户)不停地进行访问那些需要大量数据操作(就是需要大量CPU时间)的页面,造成服务器资源的浪费,CPU长时间处于100%,永远都有处理不完的连接直至就网络拥塞,正常的访问被中止。
至于如何防御CC攻击,可以通过禁止网站代理访问,尽量将网站做成静态页面,限制连接数量,修改最大超时时间等方法来预防解决。
明白了CC攻击的原理和防御方法。现在首要解决的一个问题就是,如何检测服务器是否受到了CC攻击。
下面就介绍一种方法来简单判断是否受到了CC攻击:
tcpdump
定于:根据使用者的定义对网络上的数据包进行截获的包分析工具。 tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。
linux系统里是不会默认安装tcpdump的。如果系统内没有安装,可以用下面的方法:
centos安装方法:
yum install -y tcpdump
ubuntu/debian安装方法
apt-get intsall -y tcpdump
安装好后,可以用下面的命令来查看信息:
第一条:
tcpdump -s0 -A -n -i any | grep -o -E '(GET|POST|HEAD) .*'
在系统中运行这一命令后,如果访问网站,一般会显示下面的结果:
正常命令结果以静态文件为主,比如css,js,各种图片。
第二条:
tcpdump -s0 -A -n -i any | grep ^User-Agent
这样可以看到useragent的一些信息,比如系统、浏览器等等。在上图中,前面4个是通过firfox浏览器访问,后面是通过IE进行访问。我们可以轻易的看到这些信息。
这个是查看客户端的useragent,正常的结果中,是各种各样的useragent。
第三条:
tcpdump -s0 -A -n -i any | grep ^Host
如果机器上的网站太多,可以用上面的命令找出是哪个网站在被大量请求。