今天看到一個很有意思的命令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
如果機器上的網站太多,可以用上面的命令找出是哪個網站在被大量請求。