Apache mod dosevasive 防止DDOS模組

Apache mod dosevasive 防止DDOS模組

林子大了,什麼鳥都有.
目前最常見的網站攻擊方式就是DDOS. 什麼是DDOS?
「分散式拒絕服務(DDoS:Distributed Denial of Service)攻擊指借助于客戶/伺服器技術,將多個電腦聯合起來作為攻擊平臺,對一個或多個目標發動DoS攻擊,從而成倍地提高拒絕服務攻擊的威力。通常,攻擊者使用一個偷竊帳號將DDoS主控程式安裝在一個電腦上,在一個設定的時間主控程式將與大量代理程式通訊,代理程式已經被安裝在Internet上的許多電腦上。代理程式收到指令時就發動攻擊。利用客戶/服務器技術,主控程式能在幾秒鐘內啟動成百上千次代理程式的運行。」

滿多網站架設好後出現速度和效率不理想,這時你就要分析是不是被DDOS了?
然而Apache有提供這個模組使用,方法是比較陽春,他會判斷一個IP在幾秒內訪問幾次,超過一定的限度就封鎖這個IP.
快來看看怎麼裝吧~~~

1. 先到官網下載最新模組
http://www.zdziarski.com/blog/wp-content/uploads/2010/02/mod_evasive_1.10.1.tar.gz
2. 解壓
tar -xzvf mod_dosevasive.版本.tar.gz
3. 切換到該目錄
cd mod_dosevasive
4.
如果Apache版本是v1.3, 執行 apache路徑/bin/apxs -i -a -c mod_dosevasive.c
EX:
/usr/local/apache/bin/apxs -i -a -c mod_dosevasive.c
如果Apache版本v2.0, 直行 apache目錄/bin/apxs -i -a -c mod_dosevasive20.c
EX:
/usr/local/apache/bin/apxs -i -a -c mod_dosevasive20.c
5. 安裝完畢, Restart apache.
6. 將模組加至apache:
LoadModule dosevasive20_module modules/mod_dosevasive20.so

設定(非必需):
修改 /etc/httpd/conf/httpd.conf

Apache v1.3版
<IfModule mod_dosevasive.c>
DOSHashTableSize 3097
DOSPageCount 2
DOSSiteCount 50
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 10
</IfModule>

Apache v2.0 版本:
<IfModule mod_dosevasive20.c>
DOSHashTableSize 3097
DOSPageCount 2
DOSSiteCount 50
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 10
</IfModule>

設定檔說名:

DOSHashTableSize 3097 記錄和存放黑名單的哈西表大小,如果伺服器訪問量很大,可以加大該值
DOSPageCount 2 同一個頁面在同一時間內可以被 同一個用戶訪問的次數,超過該數字就會被列為攻擊,同一時間的數值可以在DosPageInterval參數中設置。
DOSSiteCount 50 同一個用戶在同一個網站內可以同時打開的訪問數,同一個時間的數值在DOSSiteInterval中設置。
DOSPageInterval 1 設置DOSPageCount中時間長度標準,預設值為1。
DOSSiteInterval 1 設置DOSSiteCount中時間長度標準。
DOSBlockingPeriod 10 被封時間間隔秒,這中間會收到 403 (Forbidden) 的返回。

VMware incompatible hypervisor 解決方法

VMware incompatible hypervisor 解決方法

最近在一台 Win2003的VPS上,打算在裡面安裝VMware架設Linux,
這樣就可以用一台VPS 同時跑win和Linux.
結果發現在Win上的VMware 啟動虛擬機時會出現這樣的錯誤
「You are running VMware Workstation via an incompatible hypervisor. You may not power on a virtual machine until this hypervisor is disabled.」
上網查了一下,大家都說要在虛擬機器上裝虛擬機是不可行的…
就在我萬念俱灰時,解決了這個問題.

解決敘述如下:
To get this VMware Player VM running inside an Amazon EC2 instance, all I needed to do was edit the instance.vmx file and add the following line to it:
vmx.allowNested = “TRUE”

就是到VM虛擬機的目錄裡面,找到xxxx.vmx 用筆記本打開修改,在最底下加入這行
vmx.allowNested = “TRUE”

之後就能快樂啟動.

覺得滿不錯的SEO文章

覺得滿不錯的SEO文章

通常身為一個網站管理員,網站做完了下一步就是行銷和推廣,
這時才是管理員遇到的最大困難度,然後近年(應該已經很久了XD)最盛行的就是關鍵字廣告和SEO,
我個人認為每個行業都是需要SEO的,一家公司有了產品,下一步就是行銷和推廣.
只是大家搜尋廣告不同,最佳化方式不同,哈哈.
也因此站長們通常身兼數職,除了要會架網站還要會網路行銷,..真是苦呀

SEO
什麼是SEO? 我們來看看百科的解釋
「搜尋引擎最佳化(Search Engine Optimization,簡稱SEO)是一種利用搜尋引擎的搜尋規則來提高目的網站在有關搜尋引擎內的排名的方式。」

我以我理解一句話來說明什麼是SEO, 就是「追求在搜尋引擎中排名第一的位置」。
至於為什麼要排第一,大家都心知肚明了.
172017hoovwbh1kw81d1yh

分享我在網路上看到的文章↓

第一步:嚴格遵守搜索引擎的錄入和排名規律去開發網站。
這是陳詞濫調的一步,許多人看到這樣的建議會不以為然,個人認為這一步應該導致我們的滿足注重,這一步做得好與壞直接影響今後的推行功率。乃至能夠說直接影響網站的命運。

第二步:網站推行前期需求充分利用好軟文推行。
網站剛剛樹立(樹立)之初,網站在搜索引擎的權重是十分低的,雖然有很好的內容和網站構架也缺乏于與樹立多時的網站抗衡。充分利用好軟文推行能夠加速網站權重的堆集
第三步:注重中前期的內容更新數量和品質。
許多站長都有這樣的缺點,尤其是那些自認為技能高明的人,只需受點小小的波折就簡單拋棄。通過長時刻的理論發現網站運營到了中前期時網站就簡單進入難以打破的狀況,這個時刻許多站長就按耐不住要改弦更張,這個時分筆者再次告戒這些站長們注重中前期的內容更新數量和品質,網站就很快獲得打破。
第四步:中時間加速網站的搜索引擎優化。
第五步:長時刻的友情鏈結堆集。
第六步:參與同行的網路活動和社會活動。
第七步:做有品質的外鏈,進步外鏈的數量

簡單來說就是 認真經營網站,正常經營網站,做個(網頁)美麗的乖寶寶

透過 GTmetrix 檢測網頁讀取速度

透過 GTmetrix 檢測網頁讀取速度

猶記得十年前做網頁時用的FrontPage,讓網頁HTML亂七八糟!而初次做網頁只追求結果不求效率.
如今網頁開啟的速率從0.02~0.09 我都會計較,現在回想起來還滿好笑的.
推薦可以用 GTmetrix 來檢測你網頁開啟的速度,這網站很強大,還會給你最佳化建議.

http://gtmetrix.com/ 連結進去後應該就不用作操作教學了吧 我想?

關鍵在最後的結果分析!
Page Speed
1. Specify image dimensions 指定圖像大小
img的標籤裡面指定圖片大小 (width & height)
會讓瀏覽器解析的較快
此外,不需要半透明的圖,用jpg或gif會比png的檔案小很多!

2. Leverage browser caching 瀏覽器暫存
不常變動的檔案讓使用者暫存在本機,可以加快速度

3. Enable gzip compression 使用gzip壓縮js和css檔案

4. Defer parsing of JavaScript 延後javascript的載入
在網頁末端再載入js,可以讓網頁先出現,節省等待js的時間

5. Minify CSS 最小化css檔案
利用軟體可以移除css中的斷行、不必要的空白等可以使檔案更精簡

Yslow
1. Add Expires headers 在靜態檔案中指定暫存時間
和Page Speed的 2 一樣目的

2. Compress components with gzip 使用gzip壓縮js和css檔案

3. Use a Content Delivery Network (CDN) 使用CDN
例如jQuery和jQueryUI 可以利用google提供的CDN讀取

4. Make fewer HTTP requests 減少伺服器要求
利用軟體將多個js合併成一個檔案,css也一樣

後記
通常把你分數較低的檢測項目拿去GOOGLE就會有答案,我就不寫教學了:P
最讓我搞不定的就是「Optimize images」 因為網站常會有網友上傳圖片,圖片是自動新增的,無法人為控管,
而目前找不到最好的linux 最佳化圖片模組, 只好加減用沒這麼棒的了.

下面轉錄網上找到的相關筆記:
「GTmetrix」在首頁開宗明義的說,當你的網頁載入超過4秒鐘的話,將會有很多用戶因此離開你的網站。Google不久前也清楚明白的提到,「網頁速度」是Google搜尋排序的參考指標之一,或許所佔比重不大,但確實已經納入參考。而「GTmetrix」則是一個網站效能分析服務,提供免費的測試與建議工具,指出我們應該如何去優化網頁速度的可行作法。

之前類似的網頁速度免費測量工具,比較知名的有「Pingdom Tools」;不過相較之下,「GTmetrix」在免費、不需註冊的前提中,提供了更豐富的測量結果與「具體的分析建議」;GTmetrix不僅可以讓你觀察網頁中每個元素的載入速度,更重要的是會根據網站目前的效能缺陷,提供實際的網站優化建議,例如會直接告訴你應該延後JavaScript載入、應該壓縮圖檔等等。

對於網站、部落格經營者來說,免費、不需註冊登入但又功能豐富的「GTmetrix」,是用來檢測網站速度優化成果的好工具。
內建Google、Yahoo推出的網站效能分析工具:
來到GTmetrix,你只要在網頁中間的輸入欄位,填上你的網站網址,按下〔Go!〕,就可以開始分析自己的網頁載入速度。

這邊GTmetrix使用了兩個知名的工具幫你檢測,一個是Yahoo的YSlow,一個是Google的Page Speed,現在你不用自己額外安裝這兩款測試工具,直接利用GTmetrix,就能獲得Google、Yahoo兩大搜尋引擎所提供的網站效能檢測成果。

前面有提到,網頁速度也是搜尋引擎排序的指標,所以觀察Google和Yahoo如何測試你的網站效能,當然是優化網站非常重要的一環。

簡單易懂的網站效能指標評等:
開始測試分析後,等待一小段時間就能看到檢測結果,首先你可以在「Summary(摘要)」中,看到兩個總評分數,分別代表透過Yahoo YSlow和Google Page Speed分析後獲得的評等。

這裡的等級制度,是透過許多分項指標綜合評比後獲得的,當然「A」級是最好的結果。
拉到分析網頁的下方,就可以看到網站在每個分項指標中獲得的個別分數(評等),你可以透過標籤分頁查看「YSlow」和「Page Speed」提供的不同評比。

這邊GTmetrix會把網站最需要優化的項目排列在清單的最前面,讓你直接看到應該針對哪些項目對症下藥。而你也可以透過這裡提供的分項指標,去了解優化網站應該顧及的各種層面。

你可以打開每個分項指標,就可以看到更詳細的相關內容,GTmetrix也透過「what does this mean?」提供了每個分項指標的意義說明。我覺得GTmetrix除了是一個好用的網站效能分析工具外,也可以當做一個優化網站的學習教科書來使用。
測試網頁元素的個別載入速度:
在測試結果中切換到〔Timeline〕分頁,可以看到類似Pingdom所提供的「個別網頁元素載入速度」,你可以從清單中,很清楚的看到哪些元素佔用了最多的載入時間,從而你可以決定應該優化哪個部分。

多組網站對比測試:
最後,你還可以在單一網站測試分析結果的左方,點選「Compare to another URL」,輸入另外一個網站的網址,就可以透過GTmetrix比較兩個網站在各種層面的效能評比。
老牌、免費、不需登入的「Pingdom Tools」,提供的是很直覺的網頁速度測量工具,顯示每個網頁元素的載入時間,讓你知道哪些元件拖慢了網頁速度。

但是「GTmetrix」則更進一步,它不僅僅是一個免費、不需登入的測量工具,而且還具備了分析、建議功能。利用Google Page Speed、Yahoo YSlow這兩大工具的指標評等,GTmetrix能夠從「如何優化」的角度,讓你不只知道哪個元件比較慢,更可以知道應該怎麼去修改。推薦給想要優化網站的朋友試用看看(註冊GTmetrix帳戶後,則可以記錄每次的評比測量結果)。

解決 strtotime(): It is not safe to rely on the system’s timezone settings. PHP5.3時區問題

解決 strtotime(): It is not safe to rely on the system’s timezone settings. PHP5.3時區問題

剛把PHP升級到5.3後立刻就發現了phpmyadmin 報的時區錯誤。
Warning: strtotime(): It is not safe to rely on the system’s timezone settings.
原來是php.ini沒有設定時區. 改一下即可

設定php.ini
#vi /etc/php.ini
找到
;date.timezone =
改成
date.timezone = “Asia/Taipei”
service httpd restart

收工.

在CentOS 安裝 OpenVPN 指南

在CentOS 安裝 OpenVPN 指南

有時候人會在大陸出差,或是公司網路防火牆封鎖一些通道,
而VPS就可以萬能的破解,實在方便。
這邊紀錄我在CentOS 5 上面架設OpenVPN的一些筆記。
由於是筆記所以針對指令就不再多做說明了.

先參考這一篇
可以知道yum並沒有內建OpenVPN
所以需要加入RPMForge 軟件庫.

一.加入RPMForge
Install DAG’s GPG key
rpm –import http://apt.sw.be/RPM-GPG-KEY.dag.txt
rpm -K rpmforge-release-0.5.2-2.el5.rf.*.rpm
rpm -i rpmforge-release-0.5.2-2.el5.rf.*.rpm

二.開始安裝
需要的套件
lzo
lzo-devel (可能不用)
openssl (可能不用)
openssl-devel (可能不用)

[root@centos ~]# wget http://www.oberhumer.com/opensource/lzo/download/lzo-2.05.tar.gz
[root@centos ~]# wget http://openvpn.net/release/openvpn-2.1_rc22.tar.gz
[root@centos ~]# tar zxvf lzo-2.05.tar.gz
[root@centos ~]# cd lzo-2.05
[root@centos ~]# ./configure;make;make install
[root@centos ~]# yum -y install openssl openssl-devel

三.建立OpenVPN使用者憑証
cp -rp /usr/share/doc/openvpn-2.2.2/easy-rsa /etc/openvpn
cd /etc/openvpn/easy-rsa/2.0
file *|grep executable | cut -d: -f1 |while read file;do echo $file; chmod +x $file; done
vi vars
. ./vars
. ./clean-all
. ./build-ca
./build-key-server server
./build-key client1
./build-dh

四.安裝完後最常遇到的就是成功連線了,但是無法上網,通常就是防火牆問題。
把下方的防火牆SH於開機時啟動往往可以解決大半問題。
=======防火牆的SH=========
#!/bin/bash

ipt=”/sbin/iptables”

# Clean the all rules
$ipt -F
$ipt -X
$ipt -t nat -F
$ipt -t nat -X

# Enable ip_forward
echo “1” > /proc/sys/net/ipv4/ip_forward

# For NAT routing
$ipt -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
$ipt -t nat -L

五. 修改iptable端口, openvpn強大的地方就是你可以隨意選則端口
================================
vi /etc/sysconfig/iptables
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 443 -j ACCEPT

-A INPUT -i tun+ -j ACCEPT
-A OUTPUT -o tun+ -j ACCEPT
================================

六.建立Server端的設定檔
把下方設定檔存到/etc/openvpn
================================
SERVER CONF
port 443
proto tcp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
server 10.8.0.0 255.255.255.0
push “redirect-gateway”
push “dhcp-option DNS 8.8.8.8”
ifconfig-pool-persist ipp.txt
;client-to-client
keepalive 10 120
comp-lzo
persist-key
persist-tun
status openvpn-status.log
verb 3

七.客戶端安裝Openvpn Client程式後,建立client設定檔
=================================
Client CONF(xxx.ovpn)
client
dev tun
proto tcp-client
nobind
remote 主機IP 443
resolv-retry infinite
persist-key
persist-tun
ca ca.crt
cert client1.crt
key client1.key
ns-cert-type server
comp-lzo
verb 3
mssfix 1400

總結
================================
SERVER要有的東東
ca.crt dh1024.pem server.crt server.key
Client要有的東東
ca.crt client.crt client-key 主機.ovpn
注意時間日期 (不對的話CA會錯誤)
================================
其他詳細參考:

http://wiki.centos.org/TimothyLee/zh-tw_CentOS5OpenVPN

 

 

linux CentOS 5 php yum 5.1 5.2 升級 5.3

linux CentOS 5 php yum 5.1 5.2 升級 5.3

剛要裝WordPress 結果發現CentOS PHP版本最高只到5.1,
上網搜尋了一些文章都沒有用,在最後還是成功了,分享一下我找到的文章.

yum 目前已經有把php5.3的版本放上去了

更新方法如下:
1. 先停止apache server
# service httpd stop
2. 先移除原來的5.1.x的php 和 其他php套件
# yum remove php php-*
3. 開始安裝php5.3的版本
# yum install php53-*
4. # service httpd restart
P.S 需要修改一下php.ini 不然像是沒加上tag的如<?php ?> 程式會不能run.