25+ GB 的信全上了, 用 mb2md 下去轉, 現在 courier-imap 讀看起來都正常... 哇哈哈!
我本來以為是 2 GB 多, 轉檔轉老半天轉不完才發現原來容量少算一位數, email 已經累積到 25+ GB 了 ... 真多啊!
Sunday, June 26, 2005
Monday, June 20, 2005
災情慘重
前幾天 MS 出了好幾個 hot fix, 當然大家都不假思索的裝上去, 然後就爆炸了! 很多用祖國奇蹟版 2003 或是叉劈的人都發現裝完 hot fix 就不能 login 進去, 會一直說需要啟動. 更慘的是有一些有 license, 但是為了省麻煩就用祖國奇蹟版硬上的, 這次也中箭落馬 Orz
顯然, ms 在某個 fix 裡面把檢查啟動的東西換掉了.... 爆炸~~~
顯然, ms 在某個 fix 裡面把檢查啟動的東西換掉了.... 爆炸~~~
DHCP
今天跟朋友討論到, 如果一個辦公室裡面的機器, 有些要給上 internet 有些不給上 internet, 那要怎麼從防火牆擋 ip 呢? 如果環境又是 DHCP 的, 那防火牆怎麼知道哪個機器拿到哪個 ip? 後來討論到利用 DHCP 的 user class identification 的功能, 來根據不同的 user 群發給不同的 ip, 那防火牆上面就放行可上網的 ip, 其他全擋掉就好了.
class "int-pass" {
match if substring (option user-class, 0, 4) = "EXTR";
}
subnet 192.168.10.0 netmask 255.255.255.0 {
pool {
allow members of "int-pass";
range 192.168.10.30 192.168.10.100;
}
pool {
deny members of "int-pass";
range 192.168.10.120 192.168.10.200;
}
}
在防火牆上面放行 192.168.10.0~100 其他全擋掉就 ok 了.
class "int-pass" {
match if substring (option user-class, 0, 4) = "EXTR";
}
subnet 192.168.10.0 netmask 255.255.255.0 {
pool {
allow members of "int-pass";
range 192.168.10.30 192.168.10.100;
}
pool {
deny members of "int-pass";
range 192.168.10.120 192.168.10.200;
}
}
在防火牆上面放行 192.168.10.0~100 其他全擋掉就 ok 了.
Friday, June 17, 2005
年紀不同
以前學生時代, 看到新奇的 3C 產品會有出手敗家的衝動, 但是現在看到 3C 產品一點感覺都沒有了. 反倒是以前完全不感興趣的車子房子之類的, 現在看到好標的都會心動. 嗯... 年紀不同...
Jaguar XJ8L 的廣告
配上 Sara Brightman 的音樂, 只在最後講一個字 (Jaguar), 整個廣告看起來好流暢, 好有質感 ... 嗯... 好想要一台 :p
喂~~~ 報告老闆~~~ 配車給我吧 $_$
喂~~~ 報告老闆~~~ 配車給我吧 $_$
Wednesday, June 15, 2005
Monday, June 13, 2005
又下雨
今天去某部會開大堆頭會議出來的時候也是下貓下狗的, 我撐個五百萬大傘走兩分鐘到停車場, 整條褲子就都濕透了, 這時候就開始羨慕那些大官, 開會有黑頭車直達門廊接送, 一滴雨都不會淋到, 連鞋子都不會踩到水, 真是棒! 小咖如我者, 只能在旁邊搖頭歎息啊!
前兩天南部下雨下到淹水, 老家幸運沒有淹水, 可是周邊的道路通通變成河了, 呈現孤島狀態也沒辦法進出, 只剩下爹娘相依為命 :p :p
打電話回去關切的時候, 老爹說生活沒有問題, 外頭有好心的菜販借了大卡車開進孤島賣菜喔! 還有神奇的 ADSL 竟然可以通 (但電話說淹水的關係所以斷掉了), 老爹閒著無聊就用 Skype 打出來找人聊天... Orz
前兩天南部下雨下到淹水, 老家幸運沒有淹水, 可是周邊的道路通通變成河了, 呈現孤島狀態也沒辦法進出, 只剩下爹娘相依為命 :p :p
打電話回去關切的時候, 老爹說生活沒有問題, 外頭有好心的菜販借了大卡車開進孤島賣菜喔! 還有神奇的 ADSL 竟然可以通 (但電話說淹水的關係所以斷掉了), 老爹閒著無聊就用 Skype 打出來找人聊天... Orz
Wednesday, June 8, 2005
Saturday, June 4, 2005
Wednesday, June 1, 2005
太不直覺了
procmail 搭配 Maildir 的時候, 寫 procmailrc 到最後 drop to mailbox 那個敘述會變得很不直覺. 比如說, 我希望 drop 到 trash 下的 spam 的 advertise 的 pchome 這個信件夾, 那本來的寫法是
$MAILDIR/trash/spam/advertise/pchome
以傳統的想法來說, 上面這樣是滿直覺的寫法, 看起來都很 ok, 給 user 來使用接受度也還滿高的. 可是換成 Maildir 之後, 就要改寫成
$MAILDIR/trash.spam.advertise.pchome/
嗯, 一時之間不是很好適應, 尤其是寫第一種敘述寫多了之後, 要轉成第二種常會忘記後面那個 / 號.
我覺得, 可能有必要開發一個 tool 給 end user 用 (比如說是網頁或是啥的), 要不然讓一堆 end user 直接去寫 .procmailrc 可能會大爆炸...
$MAILDIR/trash/spam/advertise/pchome
以傳統的想法來說, 上面這樣是滿直覺的寫法, 看起來都很 ok, 給 user 來使用接受度也還滿高的. 可是換成 Maildir 之後, 就要改寫成
$MAILDIR/trash.spam.advertise.pchome/
嗯, 一時之間不是很好適應, 尤其是寫第一種敘述寫多了之後, 要轉成第二種常會忘記後面那個 / 號.
我覺得, 可能有必要開發一個 tool 給 end user 用 (比如說是網頁或是啥的), 要不然讓一堆 end user 直接去寫 .procmailrc 可能會大爆炸...
Tuesday, May 31, 2005
IMAP Server Software
話說 IMAP Server 百百種... 唔! 好像也沒那麼多, 大概常見的就是 UW-IMAP, Cyrus-IMAP, Courier-IMAP, DBmail 這幾種.
UW-IMAP 用的是 Unix 標準的 mail box 格式, 缺點是一個 Folder 很大的時候就會出現爆炸性的延遲, 慢到頭暈. 再加上這種 mail box 的架構沒辦法搞 sub-folder, 或稱為 dual-used folder, 對 user 來說很不方便. (雖然有 patch 給 UW-IMAP 硬上 Maildir 格式的 Folder, 但也是很糟糕的解法)
Cyrus-IMAP 用的是他自己的特殊格式, 算是 Maildir 的變形. 不過麻煩的是它碰到 Subject 是沒編碼的 8bit 字串就會很機車的把 8bit 字串用 X 替換掉, 經常出現的就是一些中文標題變成一堆 XXX 好像是什麼 A 片宣傳品 :p
是有 8bit 的 hack 讓 Cyrus-IMAP 不會用 X 去替換 Subject 裡面的 8bit 字串, 但是測試發現遇到一些怪字串會爆炸, 可能是衝到它內部的控制碼. 雖然說 8bit subject 應該要編碼是RFC 說的啦, 但是不照 RFC 寫的東西還不少, 起碼一堆電子報都是亂來的, 可是又不能通通擋掉.
DBmail 因為後端要上 SQL 才能顯現他偉大的地方, 所以就沒多測試了... 環境還沒到需要隨便搬 SQL database 出來的地, 三四年內預估也不會長需要端 SQL 出來搞的程度. 再說, 這個 SQL server 沒 tune 好的話, 反而會變成瓶頸 :p
最 後說 Courier-IMAP, 這東西算是測試到現在最棒的了. 他使用標準的 Maildir 格式, 對於 8bit subject 是來者不拒 (個性好), 塞了 n*10 GB 的垃圾電子報還有一大堆亂七八糟的信件進去也面不改色通通吃下去 (不挑食), 再加上提供 mbox 轉 Maildir 的好工具可以快速的把一大堆 user 的舊信件轉過去... 嗯! 這陣子先平行測試看看, 沒爆炸的話應該就是挑這個上吧!
UW-IMAP 用的是 Unix 標準的 mail box 格式, 缺點是一個 Folder 很大的時候就會出現爆炸性的延遲, 慢到頭暈. 再加上這種 mail box 的架構沒辦法搞 sub-folder, 或稱為 dual-used folder, 對 user 來說很不方便. (雖然有 patch 給 UW-IMAP 硬上 Maildir 格式的 Folder, 但也是很糟糕的解法)
Cyrus-IMAP 用的是他自己的特殊格式, 算是 Maildir 的變形. 不過麻煩的是它碰到 Subject 是沒編碼的 8bit 字串就會很機車的把 8bit 字串用 X 替換掉, 經常出現的就是一些中文標題變成一堆 XXX 好像是什麼 A 片宣傳品 :p
是有 8bit 的 hack 讓 Cyrus-IMAP 不會用 X 去替換 Subject 裡面的 8bit 字串, 但是測試發現遇到一些怪字串會爆炸, 可能是衝到它內部的控制碼. 雖然說 8bit subject 應該要編碼是RFC 說的啦, 但是不照 RFC 寫的東西還不少, 起碼一堆電子報都是亂來的, 可是又不能通通擋掉.
DBmail 因為後端要上 SQL 才能顯現他偉大的地方, 所以就沒多測試了... 環境還沒到需要隨便搬 SQL database 出來的地, 三四年內預估也不會長需要端 SQL 出來搞的程度. 再說, 這個 SQL server 沒 tune 好的話, 反而會變成瓶頸 :p
最 後說 Courier-IMAP, 這東西算是測試到現在最棒的了. 他使用標準的 Maildir 格式, 對於 8bit subject 是來者不拒 (個性好), 塞了 n*10 GB 的垃圾電子報還有一大堆亂七八糟的信件進去也面不改色通通吃下去 (不挑食), 再加上提供 mbox 轉 Maildir 的好工具可以快速的把一大堆 user 的舊信件轉過去... 嗯! 這陣子先平行測試看看, 沒爆炸的話應該就是挑這個上吧!
Friday, May 27, 2005
又為了鳥蛋 MS 多做工 (MS-Exchange)
現在剛好有空就一次多寫一點吧 :p
MS-Windows 做的整個 domain 很喜歡用 company.local 這樣的名字當做內部的網域 (也就是 CN=username, OU=office, DC=company, DC=local 這樣的東西). 坦白說, 我很討厭看到 ooxx.local 這樣的東西... 對啊, 我就是看這字串不順眼...
如果只是拿來做 email server 的話 MS-Exchange 又是另外一個討人厭的東西 (不幸的是台灣現在用 MS-Exchange 的中小企業大概十之八九只是要有個 email server). 當然 MS-Exchange 不安全, 又很不耐打, 又容易中毒, 沒事塞門鐵剋防毒軟體還會自己罷工...
反正這些問題大家都已經很了解, 我要說的是他的 email 功能, 他根本不會有 client 的記錄資料在 mail header 上面 (不要拿 RPC 來當藉口呀, 應該要能把 RPC 資料貼到 X- 欄位上的).
而 且 email 往外送的時候, 會很自動的把 ooxx.local 貼到 From: 欄位上, 雖然有某個設定可以把 From: user@ooxx.local 改成 From: user@company.com 不過當 MIS 失手, 或是他自己發春的時候, 這個 From: 欄位就會出現 ooxx.local 這種惹人厭惡的噁心字串. 然後出去的信遇到會檢查 From Domain 的 server 就會因為 domain not exist 而被拒絕 (這種 server 還真不少)
我那個朋友 (對, 又是他... 他應該要去改運了) 就是遇到這種狀況, 一狗票從 MS-Exchange 出來的 email 都帶著 ooxx.local 的 domain 然後通通被丟到火星去了... Orz
為 了避免以後悲劇再次發生, 我就幫他想了一個 solution 出來. 就是 MS-Exchange 不在對外收發信件 (只是把 firewall 上面的 rule 改一下, 這很快, 我也很樂意看到 MS-Exchange 坐監牢 :p) 所有信件進出通通透過 MX Server, 就是一台 FreeBSD + Postfix 的機器.
在這個 postfix 的 /usr/local/etc/postfix/main.cf 裡面加上
sender_canonical_maps = regexp:/etc/mail/sender_rewrite.regexp
然後在 /etc/mail/sender_rewrite.regexp 裡面寫
/^(.+)@ooxx\.local$/ ${1}@company.com
這樣, 不管 exchange 怎麼發春, 用穩定的 postfix 做第一道防線! .... 嗯! Never trust MS!
MS-Windows 做的整個 domain 很喜歡用 company.local 這樣的名字當做內部的網域 (也就是 CN=username, OU=office, DC=company, DC=local 這樣的東西). 坦白說, 我很討厭看到 ooxx.local 這樣的東西... 對啊, 我就是看這字串不順眼...
如果只是拿來做 email server 的話 MS-Exchange 又是另外一個討人厭的東西 (不幸的是台灣現在用 MS-Exchange 的中小企業大概十之八九只是要有個 email server). 當然 MS-Exchange 不安全, 又很不耐打, 又容易中毒, 沒事塞門鐵剋防毒軟體還會自己罷工...
反正這些問題大家都已經很了解, 我要說的是他的 email 功能, 他根本不會有 client 的記錄資料在 mail header 上面 (不要拿 RPC 來當藉口呀, 應該要能把 RPC 資料貼到 X- 欄位上的).
而 且 email 往外送的時候, 會很自動的把 ooxx.local 貼到 From: 欄位上, 雖然有某個設定可以把 From: user@ooxx.local 改成 From: user@company.com 不過當 MIS 失手, 或是他自己發春的時候, 這個 From: 欄位就會出現 ooxx.local 這種惹人厭惡的噁心字串. 然後出去的信遇到會檢查 From Domain 的 server 就會因為 domain not exist 而被拒絕 (這種 server 還真不少)
我那個朋友 (對, 又是他... 他應該要去改運了) 就是遇到這種狀況, 一狗票從 MS-Exchange 出來的 email 都帶著 ooxx.local 的 domain 然後通通被丟到火星去了... Orz
為 了避免以後悲劇再次發生, 我就幫他想了一個 solution 出來. 就是 MS-Exchange 不在對外收發信件 (只是把 firewall 上面的 rule 改一下, 這很快, 我也很樂意看到 MS-Exchange 坐監牢 :p) 所有信件進出通通透過 MX Server, 就是一台 FreeBSD + Postfix 的機器.
在這個 postfix 的 /usr/local/etc/postfix/main.cf 裡面加上
sender_canonical_maps = regexp:/etc/mail/sender_rewrite.regexp
然後在 /etc/mail/sender_rewrite.regexp 裡面寫
/^(.+)@ooxx\.local$/ ${1}@company.com
這樣, 不管 exchange 怎麼發春, 用穩定的 postfix 做第一道防線! .... 嗯! Never trust MS!
為什麼沒有用 pam_ldap
前一個 post 我說我用 Cyrus-SASLauthd 去查 MS-Windows 2003 AD 上面的密碼. 為什麼不用 pam_ldap 呢? 這東西不是應該更好更有彈性嗎?
的確是這樣的, PAM 的確是我一開始就想到要用的 solution, 也是 MS 文件裡面所提到的工具. 不過經過很長一段時間的測試 (debug) 發現, pam_ldap 要跑的好的條件是 DN 裡面沒有中文... Orz
DN 就是 CN=ylchang, OU=office, DC=company, DC=com 這一串東西, 這樣的 DN 如果在英語系的環境裡面那當然是快樂天堂. 但是非常不幸的是, 那個朋友的公司裡面, CN 竟然帶中文字, 也就是他的 DN 看起來是長成 CN=張小毛, OU=office, DC=company, DC=com 這樣子, 這種樣子的 DN 不妙在哪裡呢?
因 為 pam_ldap 的作法是, 用 default binddn 先 bind 到 AD 上面, 然後依據 filter 的內容找出新的 DN, 再用新的 DN 試著 bind 到 AD 上面, 如果 bind 成功就算是密碼正確. 所以在上面的例子裡面, 第二次的 bind 就會把利用 default DN 查到的新 DN (CN=張小毛, OU=office, DC=company, DC=com) 拿來對 AD 做 bind, 可是在查找的過程中, 中文字串『CN=張小毛』已經在轉碼的過程給破壞掉了, 所以不論怎樣搞都沒有辦法利用新的 DN 去 bind AD 成功...
這部分我暫時找不出解法, 加上我的目的只是要確定密碼正確, 還不需要找出 home directory 之類的帳號資料, 所以就用 Cyrus-SASLauthd 上了. 等我有空在來看看 pam_ldap 對於內含中文的 DN 該如何解決.
的確是這樣的, PAM 的確是我一開始就想到要用的 solution, 也是 MS 文件裡面所提到的工具. 不過經過很長一段時間的測試 (debug) 發現, pam_ldap 要跑的好的條件是 DN 裡面沒有中文... Orz
DN 就是 CN=ylchang, OU=office, DC=company, DC=com 這一串東西, 這樣的 DN 如果在英語系的環境裡面那當然是快樂天堂. 但是非常不幸的是, 那個朋友的公司裡面, CN 竟然帶中文字, 也就是他的 DN 看起來是長成 CN=張小毛, OU=office, DC=company, DC=com 這樣子, 這種樣子的 DN 不妙在哪裡呢?
因 為 pam_ldap 的作法是, 用 default binddn 先 bind 到 AD 上面, 然後依據 filter 的內容找出新的 DN, 再用新的 DN 試著 bind 到 AD 上面, 如果 bind 成功就算是密碼正確. 所以在上面的例子裡面, 第二次的 bind 就會把利用 default DN 查到的新 DN (CN=張小毛, OU=office, DC=company, DC=com) 拿來對 AD 做 bind, 可是在查找的過程中, 中文字串『CN=張小毛』已經在轉碼的過程給破壞掉了, 所以不論怎樣搞都沒有辦法利用新的 DN 去 bind AD 成功...
這部分我暫時找不出解法, 加上我的目的只是要確定密碼正確, 還不需要找出 home directory 之類的帳號資料, 所以就用 Cyrus-SASLauthd 上了. 等我有空在來看看 pam_ldap 對於內含中文的 DN 該如何解決.
FreeBSD Cyrus-SASLauthd + MS-Windows 2003 AD
我搞這東西是為了要 (幫某人) 做 Authenticated Relay 的整合, 他的 user 都建在 Windows 2003 AD 裡面, 想當然耳這個 email 服務也應該去參考到 AD 裡面的帳號密碼, 這樣才有一致性也才不會『擾民』... anyway, MS-Windows 真是沒有團隊精神的東西, 要他跟別人合作真是大工程.
LDAP Server: MS-Windows 2003 AD ( 管USER跟密碼 )
windows 2003 AD 的 ip 是 192.168.1.100 , 在 AD 上面開一個假的帳號: freebsd ( 密碼是 power123 )
SMTP server: FreeBSD 5.3-RELEASE-p15
上面裝了 postfix-2.2.2,1 + cyrus-sasl-saslauthd-2.1.20_1 + openldap-client-2.2.24
/etc/rc.conf
saslauthd_flags="-a ldap -c -t 30"
/usr/local/etc/saslauthd.conf
ldap_servers: ldap://192.168.1.100/
ldap_version: 3
ldap_bind_dn: CN=freebsd,OU=lab,DC=institute,DC=local
ldap_bind_pw: power123
ldap_group_scope: sub
ldap_search_base: OU=lab,DC=institute,DC=local
ldap_timeout: 10
ldap_filter: sAMAccountName=%u
ldap_default_domain: institute.local
ldap_auth_method: bind
以上的設定, AD 只用來管密碼, 不能像 pam_ldap 一樣可以管到帳號的資訊 (例如 home dir 之類的), 不過某人的需求只是去做 smtp 的 authenticated relay, 所以這樣就夠了.
重點是 ldap_auth_method: bind 這個設定, saslauthd 會用輸入的帳號與密碼去試著 bind 上 AD, 如果 bind 成功表示輸入的帳號密碼是對的, 就完成密碼認證的程序了.
LDAP Server: MS-Windows 2003 AD ( 管USER跟密碼 )
windows 2003 AD 的 ip 是 192.168.1.100 , 在 AD 上面開一個假的帳號: freebsd ( 密碼是 power123 )
SMTP server: FreeBSD 5.3-RELEASE-p15
上面裝了 postfix-2.2.2,1 + cyrus-sasl-saslauthd-2.1.20_1 + openldap-client-2.2.24
/etc/rc.conf
saslauthd_flags="-a ldap -c -t 30"
/usr/local/etc/saslauthd.conf
ldap_servers: ldap://192.168.1.100/
ldap_version: 3
ldap_bind_dn: CN=freebsd,OU=lab,DC=institute,DC=local
ldap_bind_pw: power123
ldap_group_scope: sub
ldap_search_base: OU=lab,DC=institute,DC=local
ldap_timeout: 10
ldap_filter: sAMAccountName=%u
ldap_default_domain: institute.local
ldap_auth_method: bind
以上的設定, AD 只用來管密碼, 不能像 pam_ldap 一樣可以管到帳號的資訊 (例如 home dir 之類的), 不過某人的需求只是去做 smtp 的 authenticated relay, 所以這樣就夠了.
重點是 ldap_auth_method: bind 這個設定, saslauthd 會用輸入的帳號與密碼去試著 bind 上 AD, 如果 bind 成功表示輸入的帳號密碼是對的, 就完成密碼認證的程序了.
Monday, May 23, 2005
To be or not to be: That is the question
這是 William Shakespeare 的 Hamlet 裡面的名句, 沒看過劇的也都聽過這句話 ^_*
螢幕上面停了一隻肥大的蚊子, 脹大的肚子裡面都是剛吸飽的我的鮮血. 我手拿強力電蚊拍指按開關, 拍上電網滋滋作響, 彷彿就是惡蚊的輓歌! 我這一拍打下去可以輕易的擊殺這隻肥大的惡蚊, 但是稍有閃失就是螢幕隨著手起拍落灰飛煙滅啊! 我遇到的雖然不是像劇中 Hamlet 那樣大的抉擇, 但是對窮人如我者, 也是很嚴重的心理挑戰.
這一拍, 到底打是不打呢? To be or not to be: That is the question...
螢幕上面停了一隻肥大的蚊子, 脹大的肚子裡面都是剛吸飽的我的鮮血. 我手拿強力電蚊拍指按開關, 拍上電網滋滋作響, 彷彿就是惡蚊的輓歌! 我這一拍打下去可以輕易的擊殺這隻肥大的惡蚊, 但是稍有閃失就是螢幕隨著手起拍落灰飛煙滅啊! 我遇到的雖然不是像劇中 Hamlet 那樣大的抉擇, 但是對窮人如我者, 也是很嚴重的心理挑戰.
這一拍, 到底打是不打呢? To be or not to be: That is the question...
下貓下狗
今天下午辦公室外面突然下起暴雨, 套句我老弟說的話『台北快要漂走了! 不要再下啦!』
到了下班時間突然雨停了, 就看到整個院區一大票人往外衝, 大家都想抓住這個好時間, 趕快跑回家! 平常我這層樓都很多人加班的, 結果今天不到七點竟然整層樓走光光剩下我一個, 實在太悲情了啊! 我也好想回家啊!
剛剛在網路上面亂逛, 看到有人在賣下貓下狗的風鈴: Raining Cat and Dog Bitsy Wind Chimes
到了下班時間突然雨停了, 就看到整個院區一大票人往外衝, 大家都想抓住這個好時間, 趕快跑回家! 平常我這層樓都很多人加班的, 結果今天不到七點竟然整層樓走光光剩下我一個, 實在太悲情了啊! 我也好想回家啊!
剛剛在網路上面亂逛, 看到有人在賣下貓下狗的風鈴: Raining Cat and Dog Bitsy Wind Chimes
新玩具入手 -- USB 音效卡
Wednesday, May 18, 2005
英國年輕人"摒棄"傳統紅茶
從 BBC 中文網看來的: 英國年輕人"摒棄"傳統紅茶
我個人認為紅茶喝起來爽度的確不如綠茶或是烏龍. 比如說吃了油膩的台菜以後, 來杯烏龍茶去油解膩, 真是太棒了! 而精神不好的時候來一杯清新的綠茶, 冰的熱的都能提神醒腦.
文章最後面提到一個「白茶」不知道是啥東西...
我個人認為紅茶喝起來爽度的確不如綠茶或是烏龍. 比如說吃了油膩的台菜以後, 來杯烏龍茶去油解膩, 真是太棒了! 而精神不好的時候來一杯清新的綠茶, 冰的熱的都能提神醒腦.
文章最後面提到一個「白茶」不知道是啥東西...
Subscribe to:
Posts (Atom)
