一、前言
就算有一些公司想到要進行壓力測試也是用一些微軟,官網出的一些軟件,一個ip發起很多訪問。等有一天黑客攻擊來了發現還是頂不住。華盟君認為知此知彼才是壓力測試的關鍵點,應當模擬黑客手法進行壓力測試才是上策。
華安普特網絡科技有限公司2000年開始做防ddos,防cc攻擊防護,現已經可以完美防護CC攻擊,10g攻擊免費防護,可以聯系公眾號,此篇文章只是小范圍對自己的網站進行壓力測試,請勿用於非法用途。
下面我簡單介紹一下什么是Cc攻擊
攻擊者借助代理服務器生成指向受害主機的合法請求,實現DDOS,和偽裝就叫:cc(ChallengeCollapsar)。
CC主要是用來攻擊頁面的。大家都有這樣的經歷,就是在訪問論壇時,如果這個論壇比較大,訪問的人比較多,打開頁面的速度會比較慢,訪問的人越多,論壇的頁面越多,數據庫就越大,被訪問的頻率也越高,占用的系統資源也就相當可觀。
一個靜態頁面不需要服務器多少資源,甚至可以說直接從內存中讀出來發給你就可以了,但是論壇就不一樣了,我看一個帖子,系統需要到數據庫中判斷我是否有讀帖子的權限,如果有,就讀出帖子里面的內容,顯示出來——這里至少訪問了2次數據庫,如果數據庫的數據容量有200MB大小,系統很可能就要在這200MB大小的數據空間搜索一遍,這需要多少的CPU資源和時間?如果我是查找一個關鍵字,那么時間更加可觀,因為前面的搜索可以限定在一個很小的范圍內,比如用戶權限只查用戶表,帖子內容只查帖子表,而且查到就可以馬上停止查詢,而搜索肯定會對所有的數據進行一次判斷,消耗的時間是相當的大。
CC就是充分利用了這個特點,模擬多個用戶(多少線程就是多少用戶)不停的進行訪問(訪問那些需要大量數據操作,就是需要大量CPU時間的頁面).這一點用一個一般的性能測試軟件就可以做到大量模擬用戶並發。
知道是什么是Cc攻擊之后,我們應當如此模擬黑客對自己網站進行CC壓力測試呢?
第一步,我們應當有很多http代理,模擬客戶訪問。,我們先怎么得到http的代理服務器呢?
1,網上有很多免費的http代理服務器,我們可以先收集一些
2,我們自己架設一些http代理服務器,用來做壓力測試。
先介紹一下收集http代理服務器,
在百度搜索“http代理”會有很多網站提供免費的http代理,你只需要復制下來,整理出來,用軟件進行驗證是否可用,
比如這個網站就提供http代理,
http://www.kuaidaili.com/
驗證HTTP代理
驗證軟件,花刺代理驗證就可以,
網上免費的不是怎么好用的,還需要自己架設一些,
Windows架設http代理
下面我們說一下如何在windows,centos,ubuntu開啟http代理
windows下有ccproxy免費綠色帶破解的網上可以搜索到,
運行之后就這樣子,
建議架設好之后,要帳號里設置一個ip為允許的,要不然會被別人掃描,別人也能用你的代理服務器了,
Linux Ubuntu 開啟http代理 tinyproxy
windows系統一直在用ccproxy,非windows系統,怎么開放個http代理呢?這里給搞個簡單的軟件,支持Linux Ubuntu ,用http代理做什么用?比如Cc攻擊測試,隱藏自己的ip什么的,
代理服務器英文全稱是Proxy Server,其功能就是代理網絡用戶去取得網絡信息。形象的說:它是網絡信息的中轉站。
二、搭建環境
* Linux Ubuntu
* tinyproxy
三、ubuntu安裝方法
$sudo apt-get install tinyproxy
安裝后自動以root權限開啟了tinyproxy服務,且默認監聽端口是8888
四、啟動幫助
$tinyproxy --help
Usage: tinyproxy [options]
Options are:
-d Do not daemonize (run in foreground).
-c FILE Use an alternate configuration file.
-h Display this usage information.
-l Display the license.
-v Display version information.
五、根用戶的啟動方法
* 默認啟動
$sudo service tinyproxy start
* 重啟
$sudo service tinyproxy restart
* 停止
$sudo service tinyproxy stop
六、DIY配置
4.1 默認配置文件位置
/etc/tinyproxy.conf
(可以從/etc/init.d/tinyproxy包裝器腳本中查到)
4.2 默認配置說明
* 以根用戶啟動時,在初始化完成后切換uid/gid為nobody/nogroup
* Port 默認監聽端口為8888(該端口無需用root權限綁定)
* 默認在所在網卡上監聽
* Logfile (必須)日志文件, 默認/usr/var/log/tinyproxy/tinyproxy.log,在LogFile文件不存在時會警告,不會運行失敗。
* Pidfile (必須)pid文件, 默認/usr/var/run/tinyproxy/tinyproxy.pid,在PidFile文件不存在時會運行失敗。
* StartServers 初始啟動的代理服務器子進程(默認是10個)
*** Allow 允許使用tinyproxy進行HTTP代理的IP地址。默認是127.0.0.1,如果想要公開tinyproxy代理服務器,則把Allow一行注釋掉。
4.3 Diy配置說明
tinyproxy可以以普通用戶權限運行,只要監聽端口是公開的就可以了。具體Diy配置方法如下:
-- 打包可執行程序與默認配置文件 --
1. $which tinyproxy
/usr/sbin/tinyproxy
2. $cp /usr/sbin/tinyproxy ~/bin
3. $cp /etc/tinyproxy.conf ~/etc
-- 修改配置 --
1. 將Port默認的8888改成你想要的端口(如ljysrv上面的8990 TCP端口)
2. 將Allow 127.0.0.1注釋掉
3. 將Logfile改為/tmp/tinyproxy.log
4. 將PidFile改為/tmp/tinyproxy.pid
-- 啟動 --
1. $cd ~/bin
2. $./tinyproxy -c ~/etc/tinyproxy.conf
-- 關閉 --
1. $killall tinyproxy
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cent os6.5下安裝tinyproxy的教程,
rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
yum update -y
yum install tinyproxy -y
vi /etc/tinyproxy/tinyproxy.conf
Port 8888 //預設是8888 Port,你可以更改
Allow 127.0.0.1 //將127.0.0.1改成你自己的IP
//例如你的IP 是1.2.3.4,你改成Allow 1.2.3.4,那只有你才可以連上這個Proxy
//若你想任何IP都可以臉到Proxy在Allow前面打#注釋
service tinyproxy start
啟動軟件之后,可以
netstat -ntl
查看一下自己的代理端口是否開放,我這開放的8167端口,
架設完代理之后,我們可以用http代理軟件驗證一下,可以用的代理保存一份,
導出可用的代理之后,就是這樣的
下一篇,我們正式開始利用這些http代理進行Cc壓力測試,我們模擬一天80~100萬pv的訪問量對網站進行壓力測試,還測試網站數據庫查詢性能,等................,請關注我們的微信:i77169