Author: Sam Tang

Apache 防止 DDoS 攻擊

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

檢查 IP 連線數量及封鎖 IP

以下是幾條有用的指令,檢查 IP 連線數量及封鎖 IP 封鎖 IP iptables -A INPUT -p all -s IPHERE/32 -j DROP 解除封鎖 IP iptables -D INPUT -p all -s IPHERE/32 -j DROP 列出最多連接數的 5 個 IP …

實用 crontab 寫法

本站另一篇文章 Unix Crontab 簡介 介紹了 Crontab 的用法,今天發現了一個實用的寫法:@daily /usr/local/www/awstats/cgi-bin/awstats.sh以上用 @daily 語法,便會在每天零時零分執行,以下是其他用法:@reboot: 在每次開機時執行。 @yearly: 等同 0 0 1 1 * 寫法,即每年一月一日零時零分。 @annually: 與 @yearly 相同。 @monthly: 在每月一號零時零分執行。 @weekly: 在星期天零時零分執行。 Run once a …

Linux 的搜尋技巧

在檔案內搜尋指定文字,search_key 是搜尋字串,/path/to/filename 是檔案名稱: grep search_key /path/to/filename功能同上,但不分大小寫: grep -i search_key /path/to/filename搜尋檔案:在指定目錄中搜尋檔案,以下是在 /var/www/ 目錄下搜尋 upload.php 的檔案: find /var/www/ -name upload.php功能同上,但目標不是檔案,而是目錄: find /var/www/ -name uploads -type d還有更多有用的功能,以上只列出較常用的用法。

刪除 Qmail queue 內的郵件

在 sendmail 要刪除在 queue 內的郵件很簡單,只需直接在 /var/spool/mqueue 下面刪除就好,但在 Qmail 就較麻煩,執行以下指令會刪除 queue 內所有郵件:qmailctl stop find /var/qmail/queue/mess -type f -exec rm {} ; find /var/qmail/queue/info -type f -exec rm {} ; find /var/qmail/queue/local …

Sed 做 Search & replace

在本站另一篇文章介紹了用 Perl 來做 search and replace,而用 sed 也可以做到相同效果,語法為:sed -i ‘s/src_str/new_str/g’ filename以上指令會將 filename 檔案內的 src_str 替換成 new_str。

Qmail 使用 RBL 過濾垃圾郵件

有些機構提供 RBL (Remote Black Lists) 供 Email Server 阻檔垃圾電郵,這些 RBL 的好處是不用在本機加入大量 spam rules,而且免除更新的程序。在 QMail Scanner 配合 RBL 使用後,系統發現郵件符合 RBL 規則,那便不會接收該郵件,並把紀錄寫入 /var/log/qmail/smtpd/current 內。以下是在 QMail Scanner 加入支援 RBL 的方法:1. 開啟 /var/qmail/supervise/qmail-smtpd/run 檔案2. …

MySQL 重設 root 忘記密碼

如果忘記了 MySQL 的 root 密碼,可以用以下方法重新設定:1. 關閉 MySQL 伺服器。2. 用以下指令啟動 MySQL,以跳過檢查權限的資料表mysqld_safe –skip-grant-tables & update mysql.user set password=PASSWORD(“new_password”) where User=’root’; mysql> flush privileges; mysql> quit5. 最後只需重新啟動 MySQL,便可以用新設定的密碼進入了。

Unix Crontab

Crontab 是在 Unix Like 系統下設定排程自動執行的工具,最常用到的地方是備份。而 crontab 有 4 個不同的參數,作用分別是:crontab -e 編輯 crontab 檔案,如果檔案不存在則會自動建立。 crontab -l 顯示 crontab 檔案內容。 crontab -r 刪除 crontab 檔案。 crontab -v 顯示上一次編輯 crontab 的時間,但不是所有系統適用。編輯 crontab 在指令模式輸入 …

字串處理工具: Awk

AWK 的名字由來是三位作者的姓氏 — “Aho, Weinberger 及 Kernighan”, AWK 是一種專門處理文字的直譯語言。AWK 會把檔案逐行讀入, 並預設以空格作為分隔符號, 將一行字串分割成不同欄位, 第一個欄位用 $1 表示, 第二個用 $2, 如此類推, 而 $0 則表示整行資料, 這樣可以更好的分析處理。除了對檔案進行分析外, 跟其他 Linux 工具一樣, awk 同樣可以讀取管線輸入。不論在指令模式或者撰寫 Shell Script 時, …