Tag: Apache

[Perl Script] 統計記錄檔 IP

如果發現伺服器有大量存取記錄, 要檢查是否 DDOS 攻擊, 可以開啟記錄檔檢查, 但資料量大的話, 要人手檢查也很困難, 所以我寫了這個簡單的 Perl Script, 用作檢查記錄檔內出現次數最多的 IP, 鎖定出現頻率最高的 IP 作檢查會容易得多。 編寫時想到有多種記錄檔也有此需要, 只要記錄檔是一行一個記錄, 而每行只有一個 IP 出現便可以用, 已經試過 apache access log 及 error log, /var/log/secure, /var/log/vsftpd.log …

Apache 2.4 安裝 mod_evasive

在 Apache 2.4 編譯 mod_evasive 時遇到以下錯誤: mod_evasive20.c: In function ‘access_checker’: mod_evasive20.c:142: error: ‘conn_rec’ has no member named ‘remote_ip’ mod_evasive20.c:146: error: ‘conn_rec’ has no member named ‘remote_ip’ mod_evasive20.c:158: error: ‘conn_rec’ …

Apache 2.4 的 VirtualHost 設定

Apache 剛從 2.2 升級到 2.4, 在 Apache 2.4 的 VirtualHost 設定不同以前, 新語法更簡單易用: 舊設定方法: <VirtualHost 123.242.230.29>    ServerName testing.testing.com    DocumentRoot /var/www/html </VirtualHost> Apache 2.4 設定方法 <VirtualHost *:80>    ServerName …

將 .htaccess 檔案改名

.htaccess 可以改變很多網站的設定,這也造成一個安全性的問題,因為有心人都會估計到網站可能會用 .htaccess,如果未有對 .htaccess 進行權限設定,所有人都可以瀏覽 .htaccess 的內容。 除了變更權限外,也可以設定 Apache 讀取其他檔案名稱,那麼其他人便不會那麼容易知道設定檔的位置,但這個方法需要編輯 httpd.conf 才可以實現。 在 Apache 建立的 virtualhost 裡面,只要加入 “AccessFileName” 便可以自訂設定檔的名稱,例如: AccessFileName .htaccess.hidden 以上語句會指定 .htaccess.hidden 代替原本的 .htaccess 檔案。

PHP 及 .htaccess 實現阻擋 ip

如果發現某些 ip 的用戶在網站上搗亂,可以將他/她的 ip 封殺,這不但可以停止搗亂行為,也可以減少主機的資源浪費及頻寬,以下介紹透過 PHP 及 Apache 的 .htaccess 的實現方法。 PHP 如果要阻擋的 ip 不多,可以直接加上以下一行到程式頂端: 以上程式碼很簡單,只要檢查訪客的 ip 是否 192.168.1.101,如果正確則結束程式罷了,但這樣的問題是當要阻擋的 ip 數量增多時,需要每次都在以上程式碼上加上 ip,要維護很不方便。以下的方法是使用文字檔儲存了要阻擋的 ip,每一行一筆資料,檔案為 ban_ip_list.dat,實現方法如下: 以上第一行是從 ban_ip_list.dat 讀入每一行資料,並儲存到 $banned 陣列內,然後用 …

透過 htaccess 設定 Character Set

要設定網站的 Character Set,除了在 httpd.conf 設定外,還可以在 .htaccess 對個別網站設定,格式如下: AddDefaultCharset utf-8 以上這行便會設定網站預設使用 utf-8 編碼,如果只想對特定檔案設定 Character Set,可以這樣做: AddCharset utf-8 .html .htm .css .js .xml .json .rss 這樣就可以設定 .html, .htm, .css, .js, .xml, …

Apache 防止 DDoS 攻擊

DDoS (distributed denial-of-service) 及 DoS (denial-of-service) 在網路上十分常見,而 DoS 攻擊所傳送的請求跟正常的請求一樣,分別在於每秒鐘發出大量請求到伺服器,使伺服器的負載增加,最常見的情況是伺服器暫停服務。 而 mod_evasive 則是一個預防 Apache 遭受 DDos 攻擊的模組,可以防止同一個 IP 對相同 URI 發出的大量請求,可設定的選項有: – 限制同一個 IP 在一定秒數內請求一個頁面或檔案的次數。 – 限制同一個 IP 一秒內只可發出 50 …

Linux 下編譯 Apache 的 mod_rewrite

要為 Apache 加載 mod_rewrite 模組,如果 Apache 並未安裝,可以在編譯時加上 –enable-rewrite 便可以,但如果 Apache 已經安裝好,而又不想重新編譯 Apache 的話,可以用以下方法: 1. 首先 cd 到 Apache 的源代碼目錄並到 mod_rewrite.c 檔案, 1. 在apache的源码安装目录中寻找mod_rewrite.c文件 2. 進入 mod_rewrite.c 的目錄並用 apxs 編譯 …

通過 Apache 實現用戶認證

建立 .htacces 檔案 基本(Basic) 驗證是目前最為廣泛使用的方法,以下例子會替 /var/www/html/dir_protect 加入密碼保護,請先在這目錄建立一個 .htaccess 的檔案,然後加入以下內容: 以上段落的意思為: AuthName “Member Only” — 密碼保錄目錄名稱,這裡可自行修改。 AuthType Basic — 使用基本驗證方法。 AuthUserFile /var/www.html/dir_protect/.htpasswd — 儲存登入帳號的檔案。 — 限制所有 GET 及 POST 方法。 …