以前寫 PHP 如果要畫圖表,都會自己寫程式畫出來。這兩天在寫一個類似 MRTG 的頻寬監察工具,因為程式沒有用資料庫,是用文字檔儲存資料,在處理資料的過程已花了較多時間,覺得又要畫圖真的很累,所以試試用 JpGraph。
一試之下真的愛上了這工具,如果自己畫一個圖表,計算每一點不同的座標已經要花很長時間,但用 JpGraph 只要把要放入圖表的數值存到 array 裡就可以,而且它的使用手冊內已經附上很多範例,基本上只要在範例上照抄,自己改一改圖表大小、顏色及標題文字便可以,真的是十分方便。
關於 PHP, Linux, Open Source 及個人生活記載的網誌。
以前寫 PHP 如果要畫圖表,都會自己寫程式畫出來。這兩天在寫一個類似 MRTG 的頻寬監察工具,因為程式沒有用資料庫,是用文字檔儲存資料,在處理資料的過程已花了較多時間,覺得又要畫圖真的很累,所以試試用 JpGraph。
一試之下真的愛上了這工具,如果自己畫一個圖表,計算每一點不同的座標已經要花很長時間,但用 JpGraph 只要把要放入圖表的數值存到 array 裡就可以,而且它的使用手冊內已經附上很多範例,基本上只要在範例上照抄,自己改一改圖表大小、顏色及標題文字便可以,真的是十分方便。
在這篇 10 大常用密碼內,列出了 10 個最常用的密碼,不出所料,"password" 及 "123456" 榜上有名,但想不到的是第一名是 "123",而我一直認為應該會是 "password"。
rootkit 是一些常用的木馬程式,做成一組程式套件,在 UNIX Like 環境下要檢查主機是否中了 rootkit,可以安裝 chkrootkit。以下是安裝及使用 chkrootkit 的步驟:
1. 到 http://www.chkrootkit.org/download/ 下載 chkrootkit。
2. 執行以下指令安裝:
tar zxvf chkrootkit.tar.gz
cd chkrootkit-0.46a
make sense
3. 這是 chkrootkit 已經安裝完成,要檢查系統只要鍵入 ./chkrootkit 即可,要將結果儲存成檔案,可以這樣:
./chkrootkit > chk_result
在 Apache 內的虛擬主機預設會使用和 Apache 相同的身份執行 CGI,例如 apache 或 nobody,如果想每個虛擬主機使用不同身份執行,可以透過 suEXEC 實現。
要檢查 Apache 是否支援 suEXEC,可以執行以下指令:
/usr/local/apache/bin/httpd -l | grep suexec
以上 /usr/local/apache/bin 改成你的 Apache 安裝目錄,如果結果出現了 "mod_suexec.c",代表 Apache 已經支援 suEXEC,如果不支援的話請重新編譯 Apache,並在編譯時加上 –enable-suexec 選擇。以下是 suEXEC 使用方法:
Apache 1.3.x
在 httpd.conf 內的 <VirtualHost> 段落下加上兩行,分別是:
User samtang
Group samtang
以上會以 samtang 作為使用者及群組執行這個虛擬主機的 CGI,重新啟動 Apache 後便會生效。
Apache 2.0.x
在 httpd.conf 內的 <VirtualHost> 段落下加上這行:
SuexecUserGroup samtang samtang
重新啟動 Apache 即可。
PHP 在 4.3.0 往後的版本已經預設安裝了 PEAR 管理工具,如果沒有在編譯時加入 –without-pear 選項,那便可以直接安裝 PEAR 套件了。
例如 PHP 在伺服器的安裝目錄是 /usr/local/php,那麼在 /usr/local/php/bin 目錄下便會有一個 pear 的可執行檔,它是 PEAR 的管理工具,如果要安裝 Net_SMTP 套件的做法如下:
/usr/local/php/bin/pear install Net_SMTP
輸入以上指令後,伺服器便會自動連接到 http://pear.php.net 下載指定的套件並進行安裝。如果套件的版本未到 1.0,便要加上 –force 選擇,例如:
/usr/local/php/bin/pear install –force Net_SMTP
另一個做法是自行從 http://pear.php.net 下載套件回來安裝,方法如下:
/usr/local/php/bin/pear install <file>.tgz
在較早時間 Yahoo! 已經發表了新版的網頁,現在已經正式啟用。
新版面使用了大量的 JavaScript 及 Ajax,我最喜歡的部份是右邊的會員工具。只要登入了 Yahoo! Mail 及選擇了記憶這台電腦,在會員工具那裡只要將滑鼠放到 Mail 標籤,可以看最新的郵件標題,按下去便會直接連到 Yahoo! Mail。
現在只有 yahoo.com 用了新版面,Yahoo! Hong Kong 還未轉用。另外如果你瀏覽 yahoo.com 仍然是舊網頁,可以使用 yahoo.com/preview 看看。
如果想一次過檢查多個 php 副檔名的檔案是否有 parse error,可以用以下指令:
find ./ -type f -name \*.php -exec /usr/local/php/bin/php -l {} \;
請將以上的 /usr/local/php/bin/php 改成你伺服器內 php 執行檔的位置。
pktstat 是一個顯示實時網絡連線的工具,會以不同的網絡服務分類,例如 HTTP 及 FTP 等,可以知道各個服務所用的頻寬有多少。
網站: http://www.adaptive-enterprises.com.au/~d/software/pktstat/
以下是免費實時黑名單 (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. 有一行是類似 "/var/qmail/bin/qmail-smtpd \",在這一行前面加上以下內容:
rblsmtpd \
-r sbl.spamhaus.org \
-r bl.spamcop.net \
3. 執行 qmailctl restart 重新啟動 Qmail。
4. 現在已經完成了,執行 qmailctl stat 查看沒有異樣便完成了。
Spamassassin 可以加入不同的 rules,以更有效阻檔垃圾電郵,以下網站有很多現成的 rules 可以下載,把 rules 放到 /etc/mail/spamassassin 目錄下面,然後重新啟動 spamassassin 即可:
SpamAssassin 官方網站
Rules Emporium
我自己是用以下幾個 rules,其中最後一個是針對中文 spam 而設:
http://mywebpages.comcast.net/mkettler/sa/antidrug.cf
http://www.emtinc.net/includes/backhair.cf
http://www.timj.co.uk/linux/bogus-virus-warnings.cf
http://www.emtinc.net/includes/chickenpox.cf
http://www.sa-blacklist.stearns.org/sa-blacklist/sa-blacklist.current.uri.cf
http://www.sa-blacklist.stearns.org/sa-blacklist/random.current.cf
http://www.rulesemporium.com/rules/99_FVGT_Tripwire.cf
http://www.nospamtoday.com/download/mime_validate.cf
http://www.ccert.edu.cn/spam/sa/Chinese_rules.cf
然後重新啟動 Spamassassin,方法如下:
Redhat / Fedora:
/etc/rc.d/init.d/spamassassin restart
Debian:
/etc/init.d/rc.spamd restart
FreeBSD:
/usr/local/etc/rc.d/spamd.sh restart
幾年來我也是使用 Becky! 作為電郵軟件,只要設定正確,繁簡中文也可以顯示。
首先進入 "Tools" -> "General Setup" -> "Languages","Languges" 裡面設定相關語系所用的字體。我個人較喜歡用 Fixedsys 字體觀看郵件,所以繁體中文及預設的字體設定成 Fixedsys 字體。
而我發現有時 Becky! 會將一些 GB20312 編碼的郵件當成為 Korean RFC1557,反正我不會收韓文的郵件(因為不會看),所以便把 Korean RFC1557 也改成用 SimSun 字體。以下幾個編碼是我更改了的,可以正常顯示大部份繁簡體中文,只有一些簡體郵件沒有標明用 GB2312 編碼才會出現亂碼情況:
Default: Fixedsys 10pt.
BIG5 (Chinese Traditional): Fixedsys 10pt.
GB2312 (Chinese Simplifed): SimSun 10pt.
GB18030 (Chinese National Standard): SimSun 10pt.
ISO-2022-KR (Korean RFC1557): SimSun 10pt.
在上一篇文章講到把 DNS Server 的遞迴查詢給關閉,另一個做法是限制只有指定 ip 的電腦可以做遞迴查詢,例如本機或內聯網,做法是打開 named.conf,在 "options" 段落加入:
allow-recursion { 192.168.1.0/100; 127.0.0.1; };
然後重新啟動 BIND,這樣 BIND 就只會允許 192.168.1.0 ~ 100 以及 127.0.0.1 的電腦遞迴查詢。
BIND 在安裝後預設是開放遞迴查詢 (recursive queries),那會造成 DNS Server 負載增加,以及遭受到 DDOS 攻擊,要關閉 BIND 的遞迴查詢,可以打開 named.conf,在 "options" 段落加入:
recursion no;
然後重新啟動 BIND,這樣 BIND 就只會對主機下的域名作出回應。
微軟發佈了很多實用的工具軟件,只要細心搜索一下,定會找到很多實用的工具。
Microsoft Baseline Security Analyzer (MBSA) 是一個簡單易用的安全檢測軟件,能檢查一些微軟產品的漏洞。雖然不會自動修復所檢測到的潛在漏洞,但會提供修復建議。
P.S. 這軟件需要通過 WGA 驗證才可下載。