2007年10月30日 星期二

[VirtualBox]Panic: CPU too old for this kernal.

為了轉台到 Ubuntu ,裝了個 innotek VirtualBox 來安裝 ubuntu-7.10-server-i386.iso 。好容易裝起來了,結果如下:

virtualbox 安裝 ubuntu server 的結果

上網查了一下,好像是 VirtualBox 的問題。殘念 -_-

有大德能指點一下明燈嗎?若沒有,只好去用還要註冊碼的 VMWare 了。

2007年10月25日 星期四

[postfix procmail spamassassin]搞定垃圾郵件過濾最終解決方案

搞了一個禮拜的東西,記一下,做個紀念!

遇到的問題:

  1. amavisd-new 在當時無法從套件庫安裝。 解決方法:考慮大量相依性問題 ( 可能還有缺少的很多套件 ) ,放棄使用。
  2. procmail 必需能搭配郵件目錄使用 Maildir/ 格式,而非 mbox 檔案格式。 解決方法:見前一篇「 [postfix procmail Maildir]procmail 與 Maildir 信箱格式的搭配」。
  3. 有人很少 ( 或根本 ) 不收信,家目錄的 quota 用完後,無法收信會讓 spamd / spamc 的執行環境錯亂無法過濾垃圾郵件。 本篇目的就是解決這個問題。

使用 procmail 替代直接遞送 mail box ,是造成上述問題的原因。如果是由 postfix 遞送郵件到收件人信箱,無法遞送時 ( 如我遇到的收件者信箱 quota exceeded 問題 ) 會由 postfix 退信。但是如果是由 promail 遞送到收件者信箱, postfix 把信交給 procmail 時,就算完工了,而 procmail 則是無法退信 ( 註1 ) ,於是送信到預設的 mbox 信箱去了。

我決定採用 Postfix After-Queue Content Filter 裡的 Simple content filter ,讓 procmail 做為 mail filter ( 註2 ) ,將郵件 pipe 給 spamc 過濾加標籤,再 pipe 給 sendmail ,讓郵件重回 postfix 的 mail queue ,讓 postfix 做最後的遞送到收件人信箱。如此,就可以解決收件人信箱 quota exceeded 的問題了。

以下是各項設定:

2007年10月23日 星期二

[postfix procmail Maildir]procmail 與 Maildir 信箱格式的搭配

以前使用 procmail + spamassassin 過濾垃圾信,只會搭配 mbox 信箱使用,後來為了設定用戶信箱的 qutoa ,將信箱格式改為 Maildir/ 目錄信箱格式,就不再使用 procmail ,而改用 amavisd-new 了。

現在放棄 amavisd-new ,回頭改用 procmail ,搭配 Maildir/ 的問題得想辦法解決。終於給我搞定了,紀錄如下:

[spamassassin]自己動手安裝spamc/spamd

上週升級 mail 主機的痛苦之一,是套件庫裡雖有 spamassassin ,但是少了 spamc / spamd 。學校的 mail 主機,真正在用的人雖然不多,但是垃圾著實不少,還是得用 spamc / spamd 來得安全些。

既然套件庫沒有,那就自己抓 source 來安裝吧。

2007年10月22日 星期一

[碎碎唸]升級主機的作業系統要懂得忍

上週把 mail 主機的 Mandriva 升級為最新的 2008.0 Free 版本,結果,讓我一週來吃不好睡不好,日子難過。為什麼?因為我升級的「太早」。

為什麼,因為我不懂得要忍一下,沒有等到台灣的 mirror 站完全 mirror 完所有套件。

mail 主機的 email 服務,我是使用 postfix + amavisd-new + spamassassin ( spamd / spamc ) 的組合做 spam filter 。最早是用 postfix + procmail + spamassassin ,但是因為資源有限,必需控管用戶信箱的 quota ,所以 postfix 改用 Maildir/ 格式的信箱。但是當時 procmail 搞不定 Maildir/ 格式信箱,只能使用 mbox 格式,不合用。後來就改用 amavisd-new 當 postfix 的 filter server 取代使用 mailbox_command 的 procmail 。

在 Mandrake 2006 時,因為 postfix / amavisd-new / spamassassin / spamd /spamc 都有現成的套件,而且相依性的處理很好,只要簡單的 urpmi xxx ,然後修改設定檔就可以搞定了。

這回升級到 2008.0 Free 時,問題可大了:

2007年10月18日 星期四

[poppassd]使用 MD5 密碼

poppassd 透過 pam 來改密碼,預設是使用 DES 編碼,要改用比較安全的 MD5 ,要修改 /etc/pam.d/poppassd

#%PAM-1.0
auth required pam_pwdb.so shadow nullok
account required pam_pwdb.so
password required pam_cracklib.so retry=3
password required pam_pwdb.so md5 use_authtok nullok

在第四行的 pam_pwdb.so 加上 md5 參數就行了。

[poppassd]500 Old password is incorrect

以前用 SquirrelMail 時,有一個 change_password plugin 很好用,我是用 poppassd backend ,可以讓使用者直接在 webmail 裡修改自己帳號的密碼。

後來因故放棄 SquirrelMail 後,改用 V-webmail ,界面什麼都不錯,中文問題也修得差不多了,就是沒有線上改密碼的功能。於是,動手把 SquirrelMail 的 change_password plugin 裡的 poppassd beckend 給移植過來用,效果蠻不錯的。

V-webmail change password

最近將 Mail 主機升級 ( 其實是重新安裝 ) 成 Mandriva 2008.0 Free ,結果慘劇發生,完全相同的程式碼,不管輸入的密碼是多麼的正確,一律給錯:

500 Old password is incorrect

好不容易終於解決了。因為是 poppassd 的問題,所以,解決這個問題後, SquirrelMail 的 change_password plugin 不能換密碼的問題也可以一併解決。

2007年10月8日 星期一

[碎碎唸]這個可能要用電腦…

huihui 今天有感而發,寫了這篇「這個可能要用電腦…」。以下的內容原本是那篇文章的回應,後來想想,這樣的言論還是放自己的 blog 好了。

對於那些 動不動 / 一有機會 就把「這個可能要用電腦…」掛在嘴邊的業務執行人員,想理所當然的把工作推給「懂電腦的人」,我想回應你們幾句話:

「沒那個屁股,就不要吃那堆泄藥。」

「這可能要用電腦…」「可以啊,自己做」

「我又不會?」「那就不要用電腦做啊!」

「你比較厲害啦!」「要你管。」

「這一定得用電腦啦!」「既然如此,幹嘛不早學?」

「這個馬上就要,我做不出來。」「那是你家的事。」

「我不管了,就給他開天窗吧。」「那還是你家的事。」

就這樣。

2007年10月4日 星期四

[ssh]Server refused our key

為了讓努力不懈的大陸網友能有繼續努力永不休止的機會, Server 的 ssh 全面使用 ssh-key 認證,密碼登入沒有了。

不過,改用過程中發生一件怪事,我的帳號沒有問題,可以用 ssh-key 登入 ssh console / sftp ,但是同事的帳號卻發生 "Server refused our key" 的訊息拒絕連線。

經過一番檢查,原來是 ~/.ssh/authorized_keys 的權限錯了。

2007年10月3日 星期三

[hack]使用SSL連線的管理界面

伙伴 huihui 最近在玩 ca 認證主機,幫 blog 簽了一個 SSL 憑證,要試試虛擬主機是否能使用獨立的憑證

試完了,想說 SSL 憑證不用白不用,於是動手改一改 LifeType 程式,看看能否做到後台管理界面都在 SSL 連線下作業,至少 login 時輸入帳號密碼會比較安全。

初步試驗算蠻成功的,只修改兩個地方:

[apache]虛擬主機與SSL憑證

純筆記!

IP-based Virtual host 可以各自擁有獨立的 SSL 憑證, Name-based Virtual host 則只能共用一個 SSL 憑證。

原因: SSL 為比 http 更底層的協定, Name-based Virtual host 是在 http 層才能分辨,而 SSL 憑證早在這之前就載入了。

若 Virtual host 要同時支援 http 與 https 協定,要當成兩個 Virtual host 設定,分別監聽 80 port 與 443 port ,但是把網址與文件目錄設為相同。至於 access log 與 error log 最好是分開以方便未來利用。