一、怎樣防御CC?
? ? ? ? 防御CC攻擊首先需要從根本上做起:禁止網(wǎng)站代理訪問、盡量將網(wǎng)站做成靜態(tài)頁面、限制連接數(shù)量、修改最大超時時間,當然也有非常直接的方法,就是從日志中分析出所有可能是"肉雞"的IP地址然后將其寫入iptables防火墻中拒絕訪問,簡單介紹如何使用腳本實現(xiàn)自動化的拒絕異常IP訪問。

1、分析日志格式
? ? ? ? 使用head命令查看前幾行的的日志格式從而分析,但說白了關心的東西也就那么幾點,首先是第一個字段,這是請求過來的真是IP地址,其次則是 requesthost后面說跟著的字段,則是請求訪問的域名

分析完成后,我們接下來需要確定一下整體的思路流程
(1)把一分鐘之內訪問超過100次的IP地址給拒絕訪問;
(2)拒絕的IP地址需要記錄到一個日志當中;
(3)每次進行檢測前把之前的IP解除拒絕訪問;
(4)解除拒絕訪問的IP地址也需要記錄到一個日志當中。
2、awk處理字符串
? ? ? ? awk是一種編程語言,用于在linux/unix下對文本和數(shù)據(jù)進行處理。數(shù)據(jù)可以來自標準輸入(stdin)、一個或多個文件,或其它命令的輸出。它支持用戶自定義函數(shù)和動態(tài)正則表達式等先進功能,是linux/unix下的一個強大編程工具。它在命令行中使用,但更多是作為腳本來使用。awk有很多內建的功能,比如數(shù)組、函數(shù)等,這是它和C語言的相同之處,靈活性是awk最大的優(yōu)勢。
(1)語法形式
awk [options] 'script' var=value file(s)
awk [options] -f scriptfile var=value file(s)
(2)常用命令選項
-F fs fs指定輸入分隔符,fs可以是字符串或正則表達式,如-F:
-v var=value 賦值一個用戶定義變量,將外部變量傳遞給awk
-f scripfile 從腳本文件中讀取awk命令
-m[fr] val 對val值設置內在限制,-mf選項限制分配給val的最大塊數(shù)目;-mr選項限制記錄的最大數(shù)目。這兩個功能是Bell實驗室版awk的擴展功能,在標準awk中不適用。
3、sort排序
? ? ? ? ?sort命令是在Linux里非常有用,它可以將文件進行排序,并將排序結果標準輸出。sort命令既可以從特定的文件,也可以從stdin中獲取輸入。
(1)語法形式
sort(選項)(參數(shù))
(2)常用命令選項
-b:忽略每行前面開始出的空格字符;
-c:檢查文件是否已經(jīng)按照順序排序;
-d:排序時,處理英文字母、數(shù)字及空格字符外,忽略其他的字符;
-f:排序時,將小寫字母視為大寫字母;
-i:排序時,除了040至176之間的ASCII字符外,忽略其他的字符;
-m:將幾個排序號的文件進行合并;
-M:將前面3個字母依照月份的縮寫進行排序;
-n:依照數(shù)值的大小排序;
-o<輸出文件>:將排序后的結果存入制定的文件;
-r:以相反的順序來排序;
-t<分隔字符>:指定排序時所用的欄位分隔字符;
+<起始欄位>-<結束欄位>:以指定的欄位來排序,范圍由起始欄位到結束欄位的前一欄位。
4、uniq去除重復
? ? ? ? ?uniq命令用于報告或忽略文件中的重復行,一般與sort命令結合使用。
(1)語法形式
uniq(選項)(參數(shù))
(2)常用命令選項
-c或——count:在每列旁邊顯示該行重復出現(xiàn)的次數(shù);
-d或--repeated:僅顯示重復出現(xiàn)的行列;
-f<欄位>或--skip-fields=<欄位>:忽略比較指定的欄位;
-s<字符位置>或--skip-chars=<字符位置>:忽略比較指定的字符;
-u或——unique:僅顯示出一次的行列;
-w<字符位置>或--check-chars=<字符位置>:指定要比較的字符。
? ? ? ? 這里要注意的是要先排好序然后才能正常統(tǒng)計,所以一般會和sort搭配使用。