前一段也許是中秋和國慶的緣故吧,我公司客戶網店的生意比較好,在這生意紅火的時候,一些人就把持不住了,開始對客戶進行威脅,說如果你不給我多少錢的話,我就對你的網站進行***,讓你做不成生意……
面對這樣的威脅,報警有用麼,沒有用,因爲損失也不是很大,所以公安部門是不會立案的,防止惡意******的重任就擔在了我們身上。
在開始講解我們在防禦***之前先簡單的介紹一下DOS和DDOS。
1.DOS
- DOS***是最早出現的,它的***方法說白了就是單挑,是比誰的機器性能好、速度快。舉個這樣的***
- 例子,假如你的機器每秒能夠發送10個***用的數據包,而被你***的機器(性能、網絡帶寬都是頂尖的)
- 每秒能夠接受並處理100***數據包,那樣的話,你的***就什麼用處都沒有了,而且非常有死機的可能。
- 要知道,你若是發送這種1VS1的***,你的機器的CPU佔用率是90%以上的,你的機器要是配置不夠高的
- 話,那你就死定了。
2.DDOS
- 正所謂道高一尺,魔高一仗。經過無數次當機,***們終於又找到一種新的DOS***方法,這就是DDOS
- ***。它的原理說白了就是羣毆,用好多的機器對目標機器一起發動DOS***,但這不是很多***一起
- 參與的,這種***只是由一名***來操作的。這名***不是擁有很多機器,他是通過他的機器在網絡上
- 佔領很多的“肉雞”,並且控制這些“肉雞”來發動DDOS***,要不然怎麼叫做分佈式呢。還是剛纔的那
- 個例子,你的機器每秒能發送10***數據包,而被***的機器每秒能夠接受100的數據包,這樣你的攻
- 擊肯定不會起作用,而你再用10臺或更多的機器來對被***目標的機器進行***的話,嘿嘿!結果我就
- 不說了。
我給大家舉些例子分析一下nginx服務器上的日誌
在這裏我稍微分析一下web服務器訪問日誌的格式,根據自己當時日誌格式定義的不同,日誌內容是不一樣的,但一般都是這樣的類型:
記錄客戶端的IP—記錄訪問時間與時區—記錄請求的url與http協議—記錄請求狀態,成功是200—記錄發送給客戶端主體內容的大小—記錄客戶讀取瀏覽器的相關信息。
再來看一下當時站點被***時的日誌
通過日誌可以看出它是對一個頁面進行不停地訪問,並且速度很快,同一個IP也會多次訪問,但是我們需要特別關注一下瀏覽器的信息。
再看一下另一種***時的日誌
這種***都沒有記錄瀏覽器的信息。
對於這兩種***我們可以在nginx的conf文件裏面加入這樣的信息
- if ( $http_user_agent ~* ^$){
- return 444;
- }
- if ( $http_user_agent ~* "Windows 5.1" )
- {
- return 444;
- }
如果使用的瀏覽器爲空則返回444,使用的瀏覽器爲Windows 5.1也返回444。
返回值444,是幹什麼的呢?你知道麼?
根據官方文檔的介紹“非http標準的返回碼444,它可以用來關閉連接”,這樣的話他就不會佔用我們服務器的任何資源,這三個4真是把訪問殺得很徹底啊!
那有的人會問,爲什麼要封Windows 5.1這種類型的瀏覽器呢,我給大家說一下我發現的正常日誌的瀏覽器類型都有哪些:compatible; MSIE 6.0;MSIE 8.0;MSIE 9.0;Windows NT 5.1;Windows NT 6.1; Trident/4.0;Trident/5.0;這些東西都是不固定的需要自己慢慢發現。
自己感覺對於***要看看日誌不要盲目的就去封IP,但並不是說封IP沒有用啊!
剛纔說的都是nginx的,接下來我們談一談apache上的***。
其實apache服務器自身就有一個模塊mod_evasive可以防禦DDOS***,至於效果麼,自己試試就知道了。
具體這個模塊的安裝和使用可以參照www.wdlinux.cn/mod_evasive裏面有詳細介紹。
回過頭來繼續說***,其實一般簡單的***都是對一些小站點小打小鬧,大型的***人家纔不會對小站點下手的,再說大型的***靠封IP和修改配置文件壓根都不管用的,需要買上萬或是上百萬的硬件防火牆,所以目前對於我們這些小運維來說也用不到,所以能夠簡單的應付一下***就可以了!!!
最後還是那句話多看日誌,三思而後行。