讓 Apache 具備基本的防 DoS 攻擊能力!

evasive 這個模組可以提供 Apache 基本的防 DoS 能力,注意,這指的是 DoS 而非 DDoS ,因為 evasive 主要就是依同一 IP 的單位時間連線數請求來作為防禦的依據,對於 DDoS 並沒有太大的效用,但是對於 DoS 則是非常不錯了。

在Ubuntu 16.04 LTS 下的安裝指令如下:

sudo apt-get install libapache2-mod-evasive 
sudo mkdir /var/log/mod_evasive 
sudo chown www-data:www-data /var/log/mod_evasive/ 
sudo vim /etc/apache2/mods-available/evasive.conf 
sudo a2enmod evasive sudo service apache2 restart

安裝之後你必須修改  /etc/apache2/mods-available/evasive.conf 設定檔,簡單的設定內容如下:

架設網站選用虛擬主機?還是自建主機?先從防 DoS 攻擊能力談起!

首先我們來談談 DoS 跟 DDoS 有什麼不同?不要懷疑,很多人都跟我說是一樣的東西,沒錯!它們是很像,但是不完全一樣,DoS 的全名是Denial-of-Service,就是阻斷服務,而 DDoS 則是 Distributed Denial-of-Service ,多了一字,變成分散式阻斷服務,這2種網路攻擊的基本精神相同,但手法有所變化,而後者不管在防禦上或是判斷上難度都高出許多。

站在網站防禦的角度上,DoS 攻擊可以是一台電腦就達到,例如用ApacheBench這隻測試程式就可以達到攻擊的目的,所以我們可以用 IP 來源+單位時間內的連線數,去做出有效的判斷,進而採取防禦手段;但 DDoS 是分散式的,也就是攻擊的來源是由多個不同的來源 IP 在同一段時間內持續發起連線請求,進而佔據目標網站的大量資源,達到阻斷服務的目的,在判斷上跟防禦上,難度都高很多,舉一個簡單的問題為例,誰是真的訪客?誰又是真的來亂的?這就防禦DDoS的難處。

用 PHP 開發的 HTML, CSS, JavaScript Minifier

分享一下在網路上找到,用 PHP 開發的 HTML, CSS, JavaScript minifier,也有人把 minify 稱之為壓縮(compress),我個人認為這並不是真正意義上的"壓縮","壓縮"應該是像是 gzip 或是 apache 的 mod_deflate 才是,所以 minify 會是比較好的說法,minify 是一種瘦身工具,去除了不必要的多餘字元,進而達到減少檔案原始 size 的方式,實際測試呢?本站的首頁原始大小約為 20617 bytes,經過這隻程式 minify 之後,網頁瘦身成 19117 bytes,成功減重 7.27%。

Screenshot from 2017 01 04 153818

Ubuntu 16.04 LTS 的 LAMP 環境架設

當初是為了開發 Android 系統而開始使用 Ubuntu 12.04,過程中其實也沒有時麼不適應的問題,作為一個開發人員,挑系統也不是一個很正確的行為,也因此讓我變成 CentOS(伺服器),  openSUSE(筆電), Ubuntu(Android 開發) 三刀流。但是在AWS(Amazon Web Services) 的 EC2 上,我其實是選用 Ubuntu 16.04 來作為我的 t2.micro instance 的作業系統。

下面簡單紀錄一下啟動 LAMP 環境的安裝過程:

daily usage 201304

安裝 Webalizer 來觀察網站訪客情況

當你採取自己管理主機來架設網站的時候,你可以使用 Webalizer 來觀察網站的訪問情況,Webalizer 主要是使用 Apache Web Server 的 access.log 來進行分析統計,在安裝上不管是 CentOS  或是 Ubuntu 系統都提供相當方便的方式,下面我們以  Ubuntu 16.04 LTS 來當作例子。

安裝指令: