MySQL 編譯問題

編譯 MySQL 出現 "Linux thread not found" error

執行以後
# ./configure

出現error message
checking “LinuxThreads”… “Not found”

先執行以下指令,再重新編譯即可。
echo '/* Linuxthreads */' >> /usr/include/pthread.h 

Posted in 標籤: | 0 意見

轉載 - 爸爸,我懷了你的孩子

這是一篇轉載的文章,因為我閱讀後,有些心靈的悸動,心中告訴自已,
把握當下,好好對身邊的人,不要在失去了、離開後,才有後侮或遺憾。

1
第一次認識,我27,她19,我們相差8歲
她說,你老得都可以做我爸啦。
我笑笑,27與19差的8歲,不象37與29差的8歲,是兩個世界的人。
我們戀愛了,她喜歡叫我爸爸。
時常粘過來,坐在我腿上,爸爸,你說我明天去面試好呢,還是和同學去唱歌好?
我喜歡這種感覺,奇怪的是,我竟然喜歡。
當一個女孩子叫你爸爸時,你感到你對她的寵愛絕對應該是無條件的,當她在床上,大汗淋漓地叫,爸爸,快一點,再快一點時。好刺激,簡直讓人獸性大發,當她乖乖地躺在你懷裏,和你一起看碟時,你給她做雞翅吃,她拿著送到你嘴巴裏,然後自己只是抿一抿手指上的醬汁,然後撒嬌地說,我孝順吧?——的時候,她好乖。
這只是我們之間的秘密,當我們一起出門去街上,看起來是這麼般配,她挽著我的手臂,我淡淡地走著,在人群中,她顯得是這麼成熟,這麼遊刃有余,只是回到家,她的孩童本性才暴露無疑,她才19歲,在愛的人面前,9歲都不為過。
的確我也漸漸發現了這一點,剛開始的新鮮刺激都變成了懷疑,她真的只象是我的女兒,永遠在問,我這樣好還是那樣好?永遠調皮搗蛋,永遠在我罵過她後第二天在學校給我發來消息說,爸爸,我錯了,對不起。我工作上的壓力,我在這個人際場上遭遇的挫折,永遠別想在她這裏得到舒解,我跟她探討一些形而上的問題時,她永遠眨著眼睛,在錢櫃裏,她只認識SHE,我只是在不斷地寵愛她,漸漸,這寵大過了愛,這和女兒有什麼區別?和真的女兒有什?區別?
女朋友難道不應該是那個和你有精神交流的人嗎?
戀人之間難道不應該是彼此扶持嗎?我好累。
我說我們還是分開吧,或許你真的只適合做我的女兒。她說爸爸你是不是要給我找個後媽?我看著她,哭笑不得。
她說,那你還會疼我嗎?象爸爸疼女兒一樣,我說恩,我會的。
她走了,雙目含淚,問我,爸爸,我還可以找男朋友嗎?
我有了新的女朋友,和我一般大。她沒有了消息,我們再少聯系。我漸漸忘了她,女朋友很好,我們在一起,我感到甯靜,不那麼累,她是如此善解人意,我開始有信心,工作有起色,只是偶爾會想到,曾經有過一個女孩子叫我爸爸。
有過一次在一個酒吧遇到她,我牽著女友的手走出去的時候,她和一幫男女嬉鬧著擁進來,她沒有看到我,我卻注意到她,頭發長了。
幾個月後的一天,我和女友正准備睡覺,她打電話來,外面正在下雨,她站在我家門口,說太晚了,回不了宿舍,女友過來問是誰,我說是我認識的一個小妹妹,她有些愕然,但馬上甜甜地喚,嫂子好。我給了她另一個房間,去臥室睡了。
半夜睡不著,去洗手間上廁所,一進門差點魂飛魄散,她正穿著牛仔褲坐在馬桶上發呆,我問她在幹什麼,她只是看著我說,爸爸。
我們心急火燎地擁進另一個房間,在房間我們互相脫著彼此的衣服,互相野獸一般地吻,我突然想到套子在我與女友的臥室裏,她說不要緊,進來。
黑暗中我摟著她,問她現在還好嗎,她說好的。
回到臥室,女友已經起來了,在床上吸煙,我問她大半夜吸什麼煙,她淡淡看我一眼,說我在計算時間,一支煙五分鍾,我想看你廁所上了多久。然後一字字道,讓她走。
第二天大清早,她早已不知所蹤,留了張條子說,嫂子,對不起,爸爸是好人。女人嗤了一聲,看我,這什麼亂七八糟的?抄起手機就去上班了。
再一次看到她是再幾個月後,也是在一個酒吧,我也很奇怪怎麼我偶爾去酒吧,怎麼每次都遇到她,她居然是這個酒吧的DANCING QUEEN,她已經不是當初那個甜甜地笑著問我,爸爸,我孝順吧的女孩了,我走出酒吧,回頭發現她站在門口,穿著小可愛,遠遠地用手掌在小腹上劃了一個圈。
這個動作讓我莫名其妙了很久,回到家,用鑰匙插進鎖扭動的?那,突然全身每個毛孔都沁出一滴冷汗。
那晚她說不要緊,進來。
我撥她手機,沒有人接聽,我再撥,接起,我沖著電話喊,你不要那麼任性!突然電話裏是我女友莫名其妙地問,你說什麼?
我一個人呆呆地想,是的,這都是計劃好的,她來我家,與我做愛,然後我撥她電話,第一遍她看著手機不接,然後在我撥第二遍的時候迅速把號碼轉移到我女友手機上。
她行事如此眉頭也不皺,我毛骨悚然。
我們在一起時她曾說過,要和我生個孩子,叫她媽媽,讓他愛上自己的媽媽,她叫我爸爸,我們是亂倫家族。我當時覺得她無比可愛。
其實我不知道她在肚子上劃個圈究竟是不是這個意思,我一點不確定她是否真的懷孕,只是我開始明白,她從來不是我以?的那個小孩子,她太了解我,從一開始她就了解我,她用一個動作就可以讓我魂飛魄散,我一直以為她很幼稚。
原來我從一開始就錯了

2
人有時候喜歡自以為是地去解決什麼問題,到頭來捉襟見肘,我認為我應該主動地坦白從寬。
出乎我的意料,女友並不知道那天晚上我和“女兒”究竟做了什麼,不過現在她知道了。
也知道了爸爸是什麼意思。
她冷笑地看我,我努力讓自己有勇氣面對她。
努力讓自己有勇氣面對我和女友的將來。
可惜,沒有將來了。
女友走了,我一個人在空蕩的房間住了三天,突然跳起來往女兒的學校跑。
我在校門口堵住她。
你那天那個動作是什麼意思?
什麼動作?她眨著眼睛看我。
我閉起眼睛,歎氣。
她笑了,笑得陽光燦爛。
我如墜冰庫。
朝她贊賞地豎起大拇指,話也講不出。
她笑得象只甜蜜的小狐狸,一個男生遠遠跑來。
對不起,下課遲了。
男朋友?我斜著眼,望她。
她朝我吐吐舌頭,摟著男生的手往校門外走去
回頭招手,爸爸再見。
男生遠遠狐疑地問,爸爸?
認的啦!她笑,兩個人如初春的陽光般慢慢離開。
晚上,她和那個男生來了,來做客。
我不動聲色地,“慈祥地”地招待他們。
我“爸爸”對我可好了,他喜歡我的朋友們。
男生膽怯地望著我,我朝他點點頭。
把剛才買的碟拿出來!爸爸這裏音響好!
音響都是我和她一起時買的,我願意砸錢在這種地方,她當時在旁邊,看得心驚肉跳。
什麼,好貴。
貴死啦!
怎麼會有這麼貴的東西?爸爸,你買這個幹嗎呀。
你好羅嗦……
恩……嘟嘴。
我把音響全部打開,把他們的碟放進去,她和男生坐在沙發上。
我……去廚房,給他們做吃的。
看看他們買的一通碟,我實在嗤之以鼻,完全沒興趣陪他們看。
我把薯條,水果,雞翅端到茶幾上。
吃吧吃吧,我說,撐死你們。
謝謝叔叔。男生說。
叔叔……
我真是想掐死他。
轉眼看她,對著雞翅發楞。
怕是想到以前的情景吧。
你們慢慢看。
叔叔你不看嗎?男生問我
這孩子真是傻得可愛。
我去自己房間看書,我跟你們有代溝。
男生真是懂事,好象很體諒地朝我點點頭。
她聽到代溝這個詞,朝我飛了個媚眼。
神采飛揚。
我回到房間,給女友寫MAIL。
我向她求婚,希望她嫁給我。
外屋一聲尖叫。
我張皇沖出去。什麼事?
可樂喝光了。
她拿了可樂瓶沖我招搖。
我下面買!男生蹭地站起來
你給我坐下!她斥道,笑吟吟望我,爸爸,你疼我的吧?
我微笑,我去買。
這男生好愛她,看她的眼神都驚慌。
她不該如此騙他,利用他。
今天周末,不用上班?我微笑看著她,盯著她問。
每個周末她都會是一個酒吧的DANCING QUEEN。
那男生不會知道,果然他瞪大眼睛望她,上班?
她亦微笑地看著我
不用,有爸爸養,我幹嗎要上班呢?她盯著我。
說得也是。我歎氣。
下樓買可樂,突然很想哭,拿著可樂上樓,打開門。
他們正在接吻。
聽到開門,男生想掙脫,她箍住她。
沒關系,就當在自己家好了。我慈祥地說道,把可樂放在桌上。
雞翅一只也沒有動過。
我回房,隱約聽到。
他到底是你什麼人呀?
爸爸呀。
真的嗎?
不信就給我滾!

3
其實關于那天晚上的事情我後來記得不是很清楚。
後來到了一點多,我在臥室裏輾轉反側的時候,她推門進來。
你又想叫我買什麼?女兒?我譏諷地看著她。
她哀求地看著我,不發一言,我突然心軟,摟住她,你怎麼了到底?
不要趕我走。
我看著她的眼神,突然記起以前好多個這樣的夜晚,她調皮搗蛋的樣子浮現在我面前,她對這裏是多?熟悉,這裏曾經是她的家。
如果女友回來怎麼辦?我問自己?
我和女友再無可能。
可她,我說了,我會此生象爸爸一樣疼愛她,寵她。
或許,今夜,事情會有轉折,或許,我會和她重新開始。
你想住下來?我問她。
恩。她重重地點點頭。
我同意了,出乎我意料的,她馬上興高采烈地轉身向客廳裏的那個男生大叫,我爸爸同意啦,我們去睡覺吧。
我呆呆看著她,他也住這裏?
他是我男朋友啊,你不是說我可以找男朋友嗎?
我感到我的心臟因為憤怒而顫抖,是的,她在玩我,她在用盡她19歲的智力在玩她曾經深愛的人。
我想我不會玩不過你。
好啊,我微笑道,當然。
我們注視著對方,她狠狠地盯著我,凶巴巴的。
曾經無數次,她這麼瞪著我,我們在一起時,每當她不高興時,她會大聲宣布,我生氣了!
然後整個人嘟著嘴坐在那裏。
乖啦,我恐嚇她,再不乖把你賣掉!
她就抬起頭,用這種眼神看我,瞪著我,凶巴巴的。
然後跳起來,摟著我的脖子,撒嬌道,爸爸,我看起來嚇人吧?
無可否認,當時她這樣看著我,我沒有感到恐懼。可是,心痛如絞。
他們去睡了,音響,電視,統統不關。
我一一關掉,突然看到一張碟片,是他們剛才買來的。
《我的野蠻女友》
她曾經無數次央著我陪她一起看,說實話,我實在看不下去,看到一半就跑去陽台抽煙,每次被她拽回來,我就開始假寐。到後來,我乘她不注意,把碟找出來,扔掉了。
她看了無數遍,看得台詞都背得出來,居然今天又找人看了一遍。
這個瘋子。
收拾完客廳,我回臥室,剛要進去,他們那邊房間打開,她打開門,笑嘻嘻地說
老爸。
幹嗎?
借個套子。
什麼?
借個套子
我好你大爺!
她呆呆地看著我,過了一會,低下頭開始掰手指——你是我爸,我大爺就是……
我的眼淚突然流下來

4
那天晚上在我印象裏有兩個版本。
在第一個版本裏,我躺在臥室的大床上,瞪大眼珠望著天花板,任憑隔壁歡愉的尖叫潮水般一波波湧來,我跳下床,翻箱搗櫃地找棉花,塞耳朵。
不容懷疑,我是故意翻得驚天動地的,在翻弄的過程中,我腦中反複出現了一個被遺棄的怨婦的經典形象,頭發散亂,動作迅疾且頻率很大,還兼抽搐症狀,如果你有看過尼古拉斯·凱奇演的《離開拉斯維加斯》,那會比較好理解一點,對,就是渾身發抖的那一種,最後我癱在寫字桌下,手裏握著唯一找到的兩片邦迪創可貼,上面還有一只小熊,一只小兔子。那是她上次從樓梯上摔下去,我給她買的,她覺得太可愛,不忍心貼。于是我把它們撕下來,貼在腦門上,呼呼喘氣。
在第二個版本裏,隔壁是很安靜的,好象很純潔,但這安靜在腦中變成了最最恐怖的聲音,他們現在在做什麼?他們在用什麼姿勢?沒有聲音,他們不會在台燈下研究杜蕾斯包裝上的英語語法吧?
老爸,這玩意好好玩哪。
老爸,你戴這個不難受嗎?
老爸,這活象被人死死勒住脖子啊。
老爸,會不會裏面的血倒流啊?
我走出家門,淩晨三點,到了女友家,燈還亮著。
我敲門,她開門。
又是一場相對。
她訝異地看著我。
能不能進來坐一坐,我說,突然發現自己嗓子都是啞的。
你怎麼了?她問,你哭過了?
沒有,我想抱抱你。我說
那天晚上我是在女友家度過的,這是我生平最希奇的一夜。
我住在分手的前女友家,原因是我被自己的前前女友從自己家活生生逼出來。
諷刺吧,生活就是這個樣子的。
女友為我鋪床疊被,當然,好笑的是,她在為我打地鋪。
她睡床,我睡地。
一旦分了手,最狹小的空間也要分隔出最遠的距離。
我躺在地板上,聽著女友安靜而均勻的呼吸聲。
想與之共度余生。
她睡得這麼安穩。
她會同意嗎?
她翻了個身。
她翻身時呼吸的頻率一點沒有改變。
她根本沒有睡著,她在裝睡。
我想她會的。
你會不會嫁給我?黑暗裏我問她。
你說什麼?
你會不會嫁給我?
不會,永遠不會。
我心涼了下去,為什麼?
她沈默了很久,一字字道
你太變態了,我不適合你。
有沒有人告訴你什麼叫萬念俱灰?那個時候我就是萬念俱灰的。
我本來與她有最溫馨的感情,我們一起上班,一起下班,周末看電影,一起逛家具店,經過鑽飾店,她會似笑非笑地看我一眼,讓我覺得,隨時我牽她手進去,出來她就會是我的妻。
直到有一天,那個19歲的女孩闖了回來,把我打回原形。
那段過去,原本是戀人的私密,現在全成了險惡。
我無法往前走,前路全被堵死。
早上回家的路上看到那個男生和她正去上學,迎面走來,她朝我攤開手。
什麼?
給我點錢。
作什麼?
老去你家也不好,還是去開房。
OK。退無可退,也就無需再退了。
那一剎那,我決定正式應戰。
我微笑望著她,伸出手指抵住腦門——那個貼著小熊創可貼的位置,笑。
地獄一共有幾層?
我想,我和我的寶貝女兒很快都會知道

5
我講故事有一個很大的缺點,我從來不喜歡給人物編名字,這是一件非常頭痛的事情,相比之下,我更喜歡稱呼這樣東西。
一個人只有一個名字,但是可以有無數個稱呼。
每一個稱呼是一個故事。
所以這是一個沒有名字,只有稱呼的故事。
但是我不知道這種只靠他和她的稱謂能堅持多久。
要報複一個人有多少辦法?
其實要懲罰她最好的辦法就是接受。
于是我接受了“女兒”和她的男生。讓他們自由進出我的房間,為他們所欲為的任何事。
那段時間是我記憶中最為詭異的時光,每天下班回到家,就可以看到她和那個男生坐在桌子前,要麼在看電視,要麼湊在一起做作業,那個場面極其溫馨,甚至在好幾次,剎那間我產生異樣的幻覺,對面坐著的長發女孩確然便是我的女兒,而她心之所系的並非是我,而是邊上那個男生。
她亦變得溫馴起來,看到我回來抬頭望我,乖乖道,爸爸,你回來了。
男生道,叔叔。
我帶回披薩給他們吃,問他們的功課,陪他們一起看幼稚無聊的韓國片,每當邊上的男生笑得渾身抽搐時,我都感到邊上一雙冷冷的眼神,注視著。
她越來越頻繁地住在我隔壁房間,而他的男朋友則大多回宿舍。每次我們都站在門口,朝他揮手告別。
路上小心。她叫。
有空來玩。我說。
有一次,我私下問那個男生要張照片,他很奇怪,但還是給了我一張報名照。
後來一天晚上我和她一起晚飯,吃完我不動聲色地起身收拾碗筷,她無限幽怨地看著我。
我把剛學的新歌唱得興高采烈。
我洗碗,她從背後抱住我,從額頭抵住我背脊,我轉身,從口袋裏掏出放大N倍的那張報名照,樂呵呵地展示。
她的“男友”在相片裏無限肅穆地望著她,仿佛象遺容。
她無限怨毒地望著我。
豬。
不孝!
一個星期後發生了一件事。
那夜從女友家走出來時,我抱住她喃喃自語,如果你改變了主意,一定要告訴我。
一個星期後的一天,她改變了主意,可我再也沒有機會得到她。
那天我在家,臨時下樓買包煙,上來的時候發現女兒在哭,我沒有理她,回到房間,上網,突然發現MSN裏女友已經消失,我心生不詳,馬上打開聊天記錄。
我沖到她房間,拼命砸門,她死也不開。
女友試圖與我重新開始。
而她則冒充我嚴厲地拒絕了她。
女友覺得不對勁,打電話到我家,她接了電話,甜蜜溫柔。
裝瘋賣傻。
開門!你他媽給我開門!
不開!死也不開!
你給我等著!
那天晚上,我去了一個酒吧,叫了一個雞,把她帶回家。
她在客廳呆呆地看著我帶著一個豔俗女人回家,開門進了房間。
妓女脫了衣服,站在我面前,展示身材。
我一眼沒看她,從皮夾點出一千塊錢。
叫。
叫什麼?
床。
我湊近她,低聲說,我什麼也不跟你幹,你只要使勁叫。
所以說有些東西是需要專業素養的,那只雞在我房間叫,我皺著眉頭在邊上翻雜志。
她困惑地望我,怕是從來沒碰到如此瘋的客人。
十分鍾後,我嘴笑泛起微笑。
她終于來了。
她在門外砸,使勁砸。
開門!開門!
不開!死也不開!我沖著門外叫。
讓她滾!
我置若罔聞,看著站在我面前的雞,不要停!
屋外開始號啕大哭,她已經瘋了。
我甯願和只雞做愛也不想抱她。
開門!你給我開門,她開始門外使勁踹門。
她整整哭鬧了十分鍾,我懶散地去開了門。
她已癱軟在地上,哭著朝我喊,讓她滾。
這是我家,要滾你滾。
她走了。
什麼也沒說,默默走了。
我閉上眼睛,但願從未認識她。睜開眼,我已痛得躬下身去。
事情本來就這樣結束的。
幾天後,我接到那個男生的電話,他問我女兒為什麼好幾天沒去學校。
我默不作聲。
她失蹤了?
電話那裏沈默了很久。
她懷孕了你不知道?男生在電話那頭問我。

6
她懷孕了?
是的。
我心髒一陣痙攣,是我的孩子?
是的。
我閉起眼睛。
電話裏問:你是不是想問,那天晚上我們……,他笑了笑。
我不喜歡女孩子的,他輕輕講。
全明白了。
萬死莫辭。
在普通的故事裏,我找到了她,我們幸福地在一起。
對不起,這可能是你們想看的,卻不是我想說的故事。
我去了她學校,教務處的人說她已經辦了退學手續,我到她寢室,所有的東西都收拾一空,空蕩的床上輕輕飄動著粉紅色的紗帳,那是學期開學時我買給她的。
她寢室的同學說,她整理東西時,大家都問她幹嗎,她笑吟吟地說,搬到男朋友家去住。
大家都羨慕地看著她,東西猜測。
她同學嫌棄地看著我,仿若我是糾纏不清的第三者。
我去了她跳舞的酒吧,所有人都說她辭職了,我不信,天天去那裏等,我拽著新上任的DANCING QUENN,一相情願地肯定她知道她的去向,然後我就被打了。
我做得確然有些過分,我把那個女孩子堵在女洗手間門口,她不告訴我,我決不讓她上台,她聳聳肩,撥了電話,過了會來了幾個人,先是好言相勸,我朝他們翻白眼,他們拖著我往酒吧門口拉,經過一張台子,我抄起一個酒瓶,然後我就被打了。
我爬回家,坐在家門前擦著眼淚一遍遍撥她手機。
沒有“您撥的用戶已關機”,沒有“您撥的是空號”,沒有“您撥的號碼暫時無法接通。”沒有“您撥的用戶正在通話,請稍後撥。”,什?都沒有,就是無止境的空白。
躺在地上,還在癡癡笑。
明天她就會回來了吧,搖著我的胳膊說,老爸,我好餓。
老爸,我出去逛了圈,還是喜歡你這裏。
我就這麼癡癡笑著睡去,我把房間整理得很幹淨,我在門上貼著對聯。
上聯是“歡迎你回來。”
下聯是“不許再走了。”
看了看,對自己的書法很是滿意。
三個月後我撕掉對聯。
揉成一團,放進嘴裏使勁咽,最後趴在馬桶邊幹嘔。
我大病一場。
睡夢中常見一個華麗的景象。
一個嬰兒在天花板上緩慢地爬,轉過臉來,面容與她一般無異。
再也沒有人見過她。
一年後的一天,我有事坐出租車路過一個師範學院,靠在車窗,遠遠看見一個與之一模一樣的背影。我連忙叫司機停車,我沖下車,追上去一把拉住她。
回過頭,是個陌生的女孩子。驚恐地望著我。
對不起,我放開。
她笑了,認錯人了吧。
她要趕去一個地方,打不到出租車,為了抱歉,我送她,到了目的地,她下車,我留下了她的電話。
剛開始在一起的時候,我一直在她後面保持一段距離走著,因為她們有著一模一樣的背影,我常常癡癡地望著那張背影,然後緩緩走上去,摟住她,對她說,別離開我。
她搖著頭笑,傻孩子,我不離開你。
她25歲,叫我傻孩子。
漸漸地,走在一起時,我離她的背影的距離越來越短,當我們終于可以並肩走著,而我轉過臉和她說話時沒有一絲懷疑時,我向她求婚了。
我確實是愛她的。
沒有任何證據表明我不愛她。
愛只是一個詞,內容千差萬別。
我不這樣愛你,不代表我不愛你。
婚禮很簡單,然而我們卻異常幸福,我沒有問過她的過去,她曾與誰戀愛,她也沒有問過我有什?過去。
她從師範學校畢業,在一個幼兒園兼托兒所的所在教授小孩子。
我辭去工作,開了一個廣告公司,漸漸居然也招了些人來,添置了一部車。
周末,便與妻開車去近郊,歸來時買些當地零碎雜食供奉她的同事,我的員工。
時間,就是這樣慢慢過去的,我把她的照片放在最最隱秘的地方,隱秘到自己都不敢翻動,也不敢銷毀。
婚後的四個月零三天,如往常一樣,我去接妻下班。
妻正在和一個穿著長裙,化著淡裝的女子聊天,他們並排坐在綠色的小長木凳上。
一個小孩子在他們四周調皮蹣跚地跑來跑去。
妻看到我,笑著介紹說,這是我先生。
我一動也不敢動,呆呆望著她。
我的女兒,她不再紮著馬尾,長髮流瀉下來。
震驚從她眼眸中一閃而過。
你好,兩秒鍾後,她禮貌地伸出手,淡淡笑道。
小孩子搖搖晃晃地抱著我腿,牙牙地喚,爸爸。
笑得春光燦爛。
妻笑起來。
那不是你爸爸。
那年,我29,她21。

7
如果你日夜思念的人在你面前,你只能裝作完全不認識她,是什麼感覺?
因為她裝作不認識你。
我甚至懷疑她從未認識過我。
她愛憐地整理小男孩的頭發,抱起來朝我們點了點頭,離開了。
我開著車,帶妻去吃飯,不經意問。
那是誰?
哦,她很漂亮吧。
是哎,我嬉皮笑臉地望著妻,不過及不上你。
于是妻滿足地講起了她的來歷。
前兩個月一天,突然看見她隔著幼兒園的欄杆,無限貪婪地看著,我回望她。
她朝我笑笑,我請她進來坐。
過了兩天,她帶了那個孩子來。
她似乎很忙,總是周末來接他,平時都歸我們園照管。
妻的幼稚園有日夜寄宿的一項服務。
類似孤兒院。
那多少次我去接妻時,我的孩子正在我邊上玩著積木?
我極疲倦。
累了吧,早點回去吧,妻溫順極。
晚上,我抱著妻,一次次進入她,流著眼淚。
妻摸著我的臉頰,問我怎麼了。
我說我愛你。
禮拜一,我離開公司去了那裏,妻只是驚訝我怎麼給她驚喜,沒空顧我。
我找到那個孩子,問他媽媽好嗎。
他只是笑著喚爸爸。
似乎媽媽只教過這一句。
第二個周末,我早早等在那邊,她抱著孩子與妻出來,似乎與妻很談得來。
望見我,朝我點點頭。
不如回家一起吃個便飯。我提議。
妻極熱烈地贊成,摟住我。
我老公做的雞翅可好吃。
我迫切盯著她,她惶恐地看了看妻,低下看了看孩子。
好。
我便開車送她們回家,一個人在超市裏買了許多菜,路過速凍雞翅,獨獨跳了過去。
看到她再吃我做的雞翅,會想起“我孝順吧”的笑容,我會崩潰。
回到家,妻正帶著她展覽我們的家。
她何嘗不熟悉每一寸。只是淡淡隨著妻介紹,笑。
望著妻幸福的笑容,我決定與她一樣,當作什麼都沒發生過。
于是這頓飯吃得極其圓滿,我講起公司的趣事,她笑得十分開心。
喝了酒,更是笑得手舞足蹈。
時光剎那倒流。
晚了,妻讓我送她回去,她點頭。
下樓時,她抱著孩子,我心跳得很厲害。
我手裏握著車鑰匙,口袋裏的信用卡還有錢。
如果此刻我拽著她的手,開著車,從此天涯海角,為什麼不?
當時,真有一瞬間是這樣想,豁出去算了。
真的豁出去算了。
房子,公司,一切都留給妻。
這樣的機會,再也沒有。
然而不行。
抵不過,便是責任二字。
恨自己恨到骨子裏。
到得樓下,她說就到這裏吧,我打車回去。
我一把拽住她,裝到什麼時候?
我沒裝呀?她笑了,笑得還是那麼好看的,說,我已經不愛你了。
不相信?
我深呼吸,兩次,笑。
真的?
真的!她看著我,無比認真地回答。
似乎真又有交鋒感。
于是我笑,好呀,那時常來玩。說罷,還是盯著她眼睛。
人,總是鬥不過好勝之心。
只要你沒意見。她笑得眼神複雜。
然後,她便成為我們家的好友,妻會到周末,由我開車送到商業區。
她候在那裏,兩個人親如姐妹般攜手逛街。
買了一堆亂七八糟的衣服回來,在房間裏互相比試,笑著讓我進來評比。
有時候她們甚至在飯桌上同氣連枝地嘲弄我。
喲,今天帶得領帶很帥的嘛,秘書買的呀?
呀,你這個人怎麼那麼開不起玩笑啦。說說你老公,怎麼這樣呀,多不好。
妻笑吟吟地看著我們鬧。
他就象個孩子,什麼都說不起。妻笑著擋駕。
乖噢,媽媽給你買糖吃,妻胡搞我頭髮。
我坐在那裏裝瘋賣傻,謝謝媽媽。
大家笑,一室春光。
我從來沒問她一年多來如何過的,我不敢問。
是怕回答。
她讓我送她了,只是永遠送不到目的地,在快到時,邊叫,下來下來,到了。
一個多月後的一天,我放她下來,她跳下去,象小鹿一樣。
是啊,她才21。
我抱住孩子,逗弄著不肯放。
她先是在邊上看著笑,笑著笑著捂住嘴,然後失聲痛哭。
我走上去,輕輕摟住她。
她一把抱住我。
老爸!
剎那間我肝膽俱裂。
那天晚上下著雨,她在我懷裏哭了很久,渾身顫抖,哭了整整兩個小時,仿佛一年多來的全部爆發出來。
我緊緊抱住她。
貪得一秒是一秒。
最後她放開我,抬起頭。
這不是我們的孩子!
我們的孩子死了!

8
那天我要送她回家,她不肯。
她還是怕我知道她出處。
我堅持。
她望著我,說不如去酒店。
她急需休息或者傾訴。
我們去了附近的一家四星級酒店。
開了房,服務生帶我們進房。
進了房,她將孩子放下,我摟抱住她。
她輕輕將我推開。
告訴我這一年來怎麼過的。我緊緊盯著她。
讓我休息會,她說。
自顧自走過去。
躺在床上,閉著眼睛,一動不動。
我望著她甜美的睡容,突然憶起以前相處時的時光,常常早上醒過來,咫尺間便是這樣一張甜美的睡容,安詳,甯靜,象個孩子一般好看,她的皮膚,好象吹彈便破,每當那時,我便會惡作劇地使勁吹她的臉,看看到底能不能吹破掉。被我吵醒,她都會大叫。
肆無忌憚地尖叫一番。
叫完,翻了個身,又睡著了。
我慢慢走過去,看著她,端詳了很久,慢慢把她遮蓋在臉頰的長發掠過耳邊。
她突然驚醒。
原來剛才真的睡著了。
她朝我笑笑,起來開了罐咖啡。
把孩子抱在床上,蓋好被子,坐在桌角,靜靜望著我。
你想知道什麼?
你知道我想知道什麼,我低沈著嗓子望她。
以前每當我用這種嗓音跟她講話,她都會嚇著,驚恐地望著我。
這次她只是淡淡一笑。
好罷。她說。
那天我從你家離開,我根本就沒有離開,坐在樓道裏。
一個男人走上來,後來我就和他生活在一起,後來他死了,這是他的孩子。
她用寥寥幾句總結了一年。
一年裏她一直住在我樓下。
我們的孩子呢?
他走前,把孩子托付我送去孤兒院,我沒送,把自己的孩子打掉了。她淡淡說。
你好狠。我說。
我愛他!她回敬我,你一直不相信我會愛上別人!可是我愛他,為了他,我可以帶大他和別人生的孩子,把我自己的打掉!
我不信。你怎麼說我都不信。
她突然笑起來。
你真可愛,你不會以為這孩子是我拐帶來的吧?你可以去查查公安局有沒有失蹤案。
你愛他?我冷笑。
你從我房間出來就愛上了另一個男人,第二天從學校搬走所有東西和他住一起?
——你的愛真珍貴!
她毫無征兆地打了我一耳光。
木無表情地看著我。
突然愧疚。
一切是我的錯,我怎能再譏諷她。
不甘心罷了。
歎氣。
好,你真打算帶他長大?你拿什麼養他?
你管得真寬。她微微一笑。
那個時候我和她又四目相對地對峙著。
在她的笑容裏我突然發現我還愛她。
或者說,我竟然重新愛上了她。
戀愛後期,我已疲倦地不想望她。
她突然說了句沒頭沒腦的話。
我看著你第一次領你的老婆進的樓。
我有妻。
我完美的妻。
我站起來,走吧,送你回家。
你先走吧,我想在這裏睡一晚,她看了看氣派溫適的房間。
畢竟付了錢。
況且孩子也已經睡著。
心煩得不知怎麼再去堅持。
我竟然會還愛她。
或者說。
我竟然重新愛上她。
如何區分?
結果不還都一樣?
她已不愛我。
好悲哀。
妻尚在等我。
連悲哀資格都沒有。
好,你早些睡。
我轉身走。
她突然叫住我。
我回頭。
她怔怔望著我,突然問。
我還能到你們家來嗎?
我笑笑,點了點頭。
她似乎一下子鬆弛下來,給了我一個甜美的笑容。
好心疼。
走出房間,下了電梯。
走在大堂,想撥個電話給妻,現編個理由。
盡管並未對她不起,但送她送了三個小時,無論如何講不過去。
摸口袋,手機留在房間。
記起來,剛才調了無聲了,順手放在桌上。
上樓,敲門。她不開。
我使勁敲。
一個服務生走過,我讓他開。
開了門,房間裏空蕩蕩的,毫無一人。
懷疑走錯,抬頭看門號。
你看到這裏的小姐走嗎?我問服務生。
噢,X小姐。他說。
X小姐?X是我的姓。
心中突然不妥。
你認識她?
是,她一直住這裏。只是不是這間房。
我怔怔隨著服務生按了電梯,坐再上一樓。
他將我引到一個房前。退開。
我猶疑著敲門。
門打開,她震驚地望著我。
我突然明白一切。
她用什麼養那孩子。
她已是一個高級妓女。
我一把沖過去,掐住她脖子,將她撞在牆上,喉嚨裏發出野獸受傷的聲音。
嗚嗚作響。

9
她腦袋狠狠撞在牆邊,並不呼痛,只是看著我。
多少錢?
什麼?
多少錢?
什麼?
睡你一晚多少錢?我毫無控制地叫起來。
三千。她說。
當時她說這句話的時候毫無情緒波動。
今天天氣很好。
三千。
我怔怔地望著她,漸漸渾身抽搐,無可遏止,我掏出皮夾,想找三千塊扔過去。
學那電視劇經典情節。
可惜我從不多放現金在皮夾,那多暴發。
我掏出卡。
可以。她開始脫褲子。
我流眼淚了,我走過去輕輕抱住她。
她褲子脫了一半,被我抱著。
什麼話也不說。
只是任我抱著。
我養你。我在她耳邊反複輕聲說,我養你好嗎?
我好貴的。她似乎在說給自己聽。
那晚我從酒店走出來,知道自己命中注定要喂食她一生。
因為她是我女兒。
第二天,我叫秘書拿了報紙給我,查了市區一家小戶型樓盤。
當天下午,自銀行提了三十萬,作首期。
她真的好貴。
戀愛時,一小碗米粉都叫她高興半天,非但如此,還逼我也必須吃得幹淨,不許浪費。
男男女女,就喜歡這麼作踐自己。
這個禮拜,還是按時回家與妻吃晚飯。
她答應我,再也不了。
妻對我的變化毫無察覺,或許是我年歲一大,偽裝功夫高明。
然而,在床上,妻的臉還是毫無障礙地變成了她的。
充滿譏諷。
那時我竟然陽痿。
房子買得很順利,眼看三天後她就可以住進去。
雖然小,可是很溫馨。
而且著實不便宜。
誰說溫馨便宜。
那天晚上做了個夢,夢到我在那間房裏和女兒徹夜做愛,孩子也變成我們的。
除了會叫爸爸。
也會叫媽媽。
她的床上功夫變得好極了。
畢竟伺候過無數男人了。
夢裏我竟哭著笑出聲來。
那天早早地,我去酒店接她,她早已等候著我。
收拾好一切。
穿得象個新學期開學的女生。
我摟住她,她靠在我懷裏。
我帶她去她的新家,她看著,轉頭在我脖子裏吻。
我心中苦笑,終于走上成功男人無可避免的路。
放置好她東西,我開著車去妻的幼兒園,我們再一起回家吃晚飯,晚上她就會回到這裏。
但願鋼絲走到成功。
獲得滿場掌聲。

10
那些日子,准確地說,是一個月零三天,我與妻與女兒維持著友好的情誼。
周末她們都會一起出門。我去接她們回來,在我家吃完飯,我再送她去那棟小屋。
妻給我們開車門,笑問我,這麼下去,你不會愛上她吧?
我轉過臉笑問女兒,這麼下去,你會愛上我嗎?
送她到小屋,我們坐在沙發上,她枕在我腿上,聽著爵士女聲。
不知道什麼時候開始,她不聽SHE了。
可能是樓下那個男人喜歡爵士,以前常聽到樓下放爵士的。
一個叫SOLVERG SLETTAHJEII的挪威女歌手用一種隨時會斷氣的聲音哼唱著。
當然會動情,有時候我會坐著躬下身去,把她的臉完全籠住。
她就開始練習閉氣。
我不屑地抬起臉看著她。
她示威似的繼續閉氣,我捏住她鼻子,她自動抿住嘴。
我得意洋洋地望著她,她雙腳亂蹬,白眼翻飛,終于張嘴深吸一口氣。
誰說那個時候我不想吻她呢?
可是她愛的男人生的小孩在邊上地毯上爬。
音響裏放著她愛的人愛的曲子。
我從不在那裏過夜,再晚,晚上九點必然回去。
我也從不讓她為我做飯。
那具有某種可怕的象征意味。
我與妻會約她一起看電影。
我們一起看過一場《花樣年華》
在電影院裏,妻坐中間,我與她坐兩邊。
看到一半,我去洗手間,出來的時候,她也正好走過來。
我到今天也不能確定她是否有意在我上洗手間的時候也上洗手間。
我只記得我們擦肩而過的瞬間,我在她耳邊問。
好看嗎?
她踹我一腳,飛快地跑向洗手間。
由于大家都上廁所,回來的時候,就妻抱著大爆米花桶,我和她各自探出手去拿。
有時候手就會碰到。
那天晚上,我和她吵了一架。
事情是這樣的,在我們在爆米花桶裏手碰到之後。
也就是電影散場之後,我們一起走出來。
她說她打車回去。
那時電影剛散場,打車的人很多。
妻說我們送你,她堅持不要。
我當然知道為什麼。
那情形尷尬極了。
你再客氣我不睬你了!妻說。
女兒飛快地看了我一眼。
我朝她微微點頭。
她吸口氣,笑,好啊,歡迎來玩。
于是我們去她家了。
那個我為她買的家。
打開門,我誇張地叫。
你家好棒。
我們坐在沙發上,她為我們端出煮好的咖啡。
我兀自在那裏左顧右盼,贊不絕口。
贊了半天,所有歌功頌德的詞全部用光了。
我就坐在那裏傻笑。
女兒突然說了一句我差點摔下去的話。
要不要看我的相冊?
妻大為興奮。
好啊好啊。我要看。
于是她捧出相冊。
那時,我幾乎心跳停止。
她這邊有我們許多合影。
妻打開相冊,一張張照片翻過。
合影全部沒有了。
全是她單人照,在遊樂場裏,在學校裏,在一些商店前。
當中好多張萬分熟悉。
因為是我拍的。
當時她隨口講解,這張是哪裏拍的,那張是哪裏拍的。
好象和我完全沒關系。
我突然又誇張叫起來。
拍得真好!技術真好!
她抬起頭,笑罵,神經病。
送走我們,回到家,妻洗澡,我打電話給她。
她沒有接。
睡到半夜,我悄悄起來。
開車到她家,用鑰匙打開門。
她正坐在地上哭。
我走過去,從背後摟住她。
她瘋狂地踢我。
對不起,我說。
你以後不要再來這裏了。安靜下來後,她說。
什麼?
你以後不要再來這裏了,房子的錢我會慢慢還給你。
你怎麼還?你拿什麼還?!三秒鍾後,我跳起來朝她吼。
你不用管。
你別鬧了你別鬧了你別鬧了。
你很享受嗎?她大叫,你為什麼從來不顧別人的感受?
我若不顧你感受,我就不會過來了!我也沖著她喊。
你腦子真是豬一樣!我不是說我!我是說她!
我呆呆望著她。
你說什麼?
她!她!她!
如果我是她,我會死的!我會自殺的!她對我喊。
我理屈詞窮。
雖然設想過千萬次,但我沒想到先造反的竟是她。
好。掙紮良久,我吐出這個字。
累得半死。
但你答應我,無論如何,你不許幹那種事。
什麼事呀?她突然又調皮起來,笑問我。
我抽了她一耳光。
打我後,我自己也呆住了,她也呆住了。
我從來沒打過她。
我開玩笑的。她低下頭輕道。
我抱住她,反複說,對不起對不起對不起。
在印象中,那個晚上,我說了無數聲對不起。
好象真的沒有機會再說了。
她似乎也明白了,我已決定真的不再來,于是任我抱著。
一個小時後,我走了。
回到家,妻迷迷糊糊地問我去哪裏了。
我說明天提案的資料忘在公司裏。
妻恩了一聲,把腦袋蹭在我懷裏又睡了。
這個理由差到極點。
我決定不再找女兒了,也就沒力氣編更好的理由了。
第二天下班回到家,桌子上有一張紙上寫。
不要來找我。
我怔怔地站在當地。
真覺得在做夢。
噩夢總是連著一個噩夢,永遠做不醒一樣。
天漸漸黑了。
終于有人敲門,我沖過去開。
是女兒。
那時我失去理智,拽住她喊。
你跟她說了什麼!
她只是怔怔望著我說。
孩子失蹤了。
她從口袋裏掏出張照片。
那是相冊中的一張,是三年前拍的。
當時我們都沒有注意到。
她的背後,有一面鏡子。
鏡子裏那個人是我。

11
那個晚上我們通宵都沒有睡,我們坐在彼此熟悉的環境裏。
因為少了一個人,我們變得如此陌生。
近半年以來,我與她的關系是得以妻的存在而賴以維持的,而妻一旦走開,所有的維系在剎那間便呈現出其猙獰的本質。
有時候你認為是阻礙的東西,等到撤消,你才發現是唯一的維系。
這才是最悲哀的事情。
我們根本不敢對視。
于是我們把所有的力量用來尋找妻的下落。
我們尋訪各種我們認識的人。
我們撥打無數個我這輩子都不會撥的電話。
在這種類似同舟共濟的努力上,我們暫時忘卻我們的罪惡。
無論如何,當你用盡全力去贖罪,去彌補的時候,感覺是會好一些的。
盡管你深知,這種努力完全徒勞。

所以每到晚上,共對的時候。
我們就特別地沈默。

四月初的時候,我們收到了妻的信。
嚴格說來,那不是一封信,是一張信封,和裏面的兩張船票。

我記得那天下午,我打開信箱,看到熟悉的筆跡。
心跳幾乎停止。
在拆信的當時,手都在發抖,害怕跌落出一張遺體鑒定書。
竟然是兩張船票。

我把船票交給女兒的時候,她也呆住了。
這是三天後的船。
除此之外什麼都沒有,沒有到了那之後如何,沒有具體的提示,沒有多余一個字,就是光潔的兩張船票。
妻料到我們勢在必行。
我們的確勢在必行。

我們剩下三天。
前途完全未卜。
妻為什麼剩三天給我們呢?是讓我們准備行李嗎?
還是准備後事?
我去公司,召集部門主管開會。
說離開一段時間。
我把工作調配得井然有序,把接下去的工作計劃全部排好。
警告小輩在我不在時不許偷懶。
私交好的同事暗地問我,究竟要出行幾天,我搖頭。

女兒顯得很奇怪,她在這三天裏選擇買衣服。
相對于我,她似乎過節一樣。
讓我無論如何抽出一天來,陪她買衣服。

我們一家家店逛,她拉著我的手興高采烈地流連在不同的商鋪裏。
享受和每一個老板侃價的樂趣。
買了一堆五顏六色的大包小包,又嚷著肚子餓,拽我去餐廳吃飯。
吸著綠色的果汁,兩眼朝我骨溜溜地轉。
隨即笑起來,吸起半吸管,朝著我慢慢吐出來。

有時我真懷疑我和她不是將要去一個完全不可預知的地方,而是壓根就在夏威夷度假。

在起程前的最後一晚,我們做愛了。
這是我們重遇後到那天第一次做愛。

我記得那是從外面購物完回來,我們都在各自默默整理自己的行李。
出差過無數次,第一次不知道往自己的箱子裏放什麼。
她更加絕,買的衣服,沒有一件放進箱子。
我們就這麼互相不說話地,各自理自己的衣服。
我不知道她究竟在箱子裏放了什麼,整個行李箱都合不上,她就跳上去,坐得非常開心。

後來才知道,她放了很多亂七八糟的東西進去,沙發靠墊,地毯,盡量在拖延整理的時間。
因為我們都知道,理完後相對的場面是致命的。

但終究這場面還是到來了。
她終于把箱子合上了。
我和她互相望著。

我們終于慢慢走近,同時伸出手臂抱住對方。
用嘴唇尋找彼此。
從到到尾我們都沒有說過一句話。
用極其緩慢的動作脫著彼此的衣服,好象在進行某種宗教儀式。

我們相對站著,互相打量對方一絲不挂地身體。
我們就這麼安靜地互相望著,不放過對方每一寸肌膚。
我把她慢慢放到地板上,從她的耳垂吻到腳趾。
我進入她的時候,她的指甲深深地扣進了我的手臂。
我沒有叫出聲來。
雖然那時我通徹心扉。

記憶中,那晚她的叫聲是最為淒楚的。

第二天,我們一前一後,提著箱子上了船。

12
妻的卡裏有不少錢,她似乎也極大方地給我們買了兩張頭等艙的船票。
船是豪華郵輪。
具體開往什麼地方,由于和這個故事本身關系不大,我就不多說了。
總之,我與女兒登上船的剎那,我感覺象登上鐵達尼一般。
撞上冰塊,然後一起沈沒,然後手拉手一起葬身。
我那時還不知道,雖然這看起來很悲慘,但相比與今後實在發生的事,那樣要幸福和美麗得多了。
船啟程的時候,是傍晚。
我和她站在欄杆處,望著下面翻滾的江水。
冷吧?我看看她。
還好,她朝我羞澀地看了一眼,轉身進了房間。

自從昨夜那一場看似突如其來卻勢在必行的做愛後,我們就很難正常地說話。
這對我們來說,象一個各自必須珍藏,卻永遠不能放在我們中間,供我們正視的事情。
我盯著船離岸越來越遠。

岸邊送行的人漸漸散去,有一個人還在那裏怔怔地望著我們。
那個人是妻。
我和她逐漸地對視著,視線逐漸拉遠,我想叫出聲喊,但嗓子居然是啞的。
我不知道這船的離開,這妻的站立,是什麼意思。
女兒當時在船艙裏。
我怔怔地望著妻,妻遠遠地,面無表情地看著我,舉手朝我揮別。

這個場面,其實是非常非常恐怖的,非常非常的恐怖。
我們漸漸地開遠了。
妻變成一個再也望不見的點。
海上只有一些浮標,隨著海浪逐漸漂浮,我臉色慘白,象被冰雹砸了五個小時一樣,回到船艙,看著女兒。

怎麼啦?她抬頭問我。
沒有什麼。我勉強笑笑。
她噢了一聲,站起來不看我,我吃飯去了,就蹦蹦跳跳地開了門,去了餐廳。

我不知道為什麼沒有告訴她剛才的景象,可能是怕她承受不住,可能事情本身已經超出了我能預計的範圍,我感覺到船以某種穩定的振幅前進著。

船艙裏的喇叭居然會放音樂。
我坐在船艙的床上安靜地聽著音樂,回憶著妻剛才的眼神,准確說來,那是一種沒有任何感情色彩的眼神,或許,只有在彼此逐漸消失在視線的最後?那,我從中讀到了些許不舍的東西,但那也很有可能是我的一相情願。

到了晚上10點多,女兒回來了,她已然喝醉。
我們去跳舞吧。她一把牽住我手,把我往外拖。
我使勁摔開她手,看著她。
你看我幹嗎?她沖著我喊,你看著我幹嗎?
我其實心裏非常明白,女兒對目的地,對將來可能會發生的一百萬個可能充滿恐懼,在這種恐懼之下她選擇了一種瘋狂的發泄,無論是買衣服,還是跳舞,都是她對此的反抗。
我不能告訴女兒此行已然毫無意義,生活當中隨時會有某種旋渦狀的東西,我已感受到它的存在,可我只能咬住牙關,不便透露,因為這無比險惡。

我安靜地看著她。
她突然笑了,你早點睡,我去玩了。
她在我面前脫下衣服,換了一件無比性感的衣服,打開門頭也不回地出去。
我在房間裏坐了一會。
到開門去了輪船的酒吧,推進門就看見一個長發的女子以無比專業的舞蹈震懾著所有人,贏來所有的掌聲。
每一個男人的眼神都是垂涎欲滴的。
真是幫豬。
這是一種我從來沒有見過的舞蹈,或許我對此本身就不熟悉,它非常的性感,但這種性感因為某種專業性在裏面,故而增添了一種凜然自威的東西在裏面。
N年前,她已是DANCING QUEEN。
我找了吧台處坐下。
她一曲跳完,走到吧台處,不看我,自然有男人上來請她喝酒了。
于是他們就在我邊上。
接下去是對話。
小姐,可以認識一下嗎
小姐,喝杯酒如何?
小姐,你是一個人嗎?
小姐,你是學舞蹈的?
就搭訕的言語的貧乏與庸俗性而言,這個男人實在無藥可救。
女兒低頭笑笑,不說話,那男人更加著迷。
圍著女兒忙得團團轉,小姐,可以請你跳支舞嗎?
女兒笑得非常文雅,好象小家碧玉。
多年前,她就會笑得象只小狐狸了。我不忍再看下去,一個人拿了杯子欲走。
剛要走時,突然聽到她說。
不行,我要和這位先生跳。
突然好幾個人眼光轉向我。
我回敬他們。
女兒走上來,仰頭望著我的眼睛,先生,我可以請你跳支舞嗎?
我微笑,不答。
她繼續問,先生,我可以請你跳支舞嗎?
我微笑,不答。
她執拗地,先生,我可以請你跳支舞嗎?
音樂已經響到一半,只有她一個人在對著我問。
她的眼眶裏已經有東西在閃。
還在苦苦追問,先生,我可以請你跳支舞嗎?

我沒有和她跳舞,直到最後我也沒有和她跳舞,可能當時,本身我心情就無端煩躁的緣故,我看著她這種以甜蜜的方式無比執拗地挾持,她根本不明白我們此行已充滿荒謬,我看著她淚光閃閃地堅持要和我跳支舞,心裏非常地反感,我只是說了一句,你自己玩吧,早點回來。轉身回到船艙,整整一夜她都沒有回來,在淩晨的時候,依稀在夢裏見過她。

那個時候大約是淩晨四五點鍾,我在睡夢中猛地睜開眼。
她正趴在床沿看著我,無聲地流著眼淚。
一時間我根本沒有清醒過來,我以為我還在夢裏,于是伸出手在她臉頰上輕撫。
什麼事不開心了?我問她。
她搖搖頭。
你怎麼還不睡覺?我問她。
我看看你,你睡吧。她說。
我腦子昏昏沈沈地,噢了一聲,然後閉上眼,一會又睡著了。
我不知道她究竟看了我多久,直到再次醒來的時候,天已經大亮了,我清醒得坐起來,皺著眉頭看著女兒床上,一絲都不淩亂的床鋪,她根本一夜都沒有回來。

這個時候我已經充分忘記了昨天半夜的景象,這也是我事後才想起來的,當時我只留意到她的床上有一本日記本。
我把日記本翻開,裏面密密麻麻的小字。我沒有多看,梳洗完畢出艙房找女兒。

走進餐廳,每個人都在討論昨天一個女孩在甲板上割腕自殺的故事。
她坐在甲板上,看著滿天的星星,安靜地用我的刮胡刀割開自己手腕,血無聲地順著甲板流到海裏。
清晨前的一場雨更是把甲板沖刷地幹幹淨淨。
直到早起的人在甲板發現她的時候,她的耳中還塞著MP3的耳機,裏面放著SOLVERG SLETTAHJEII的爵士女聲。
用一種幾乎快斷氣的聲音哼唱著。

13
我在她的項鏈的蕩墜裏發現了一張男人的照片,這個蕩墜在那晚我們做愛時我就看到過的,但是當我試圖撥開時,被她阻止了。
可能她不想讓那個男人目睹當時的景象吧。
畢竟她深愛過她。
哪怕他已經死了。
我回到城裏,整整兩個多月不吃不喝,我沒有再去我與妻的房間,整日把自己關在給女兒買的那棟小屋裏,從早上到深夜,從來不開燈。

我拒絕和任何人接觸,把手機也關掉。
我捧著女兒的骨灰兩個多月後,覺得不能如此霸占她,或許我該把骨灰與那個男人葬在一起。
于是我通過各方手段尋找那個男人葬的地方。
我先到了我住的地方,問各層每個鄰居,有沒有見過這個男人,曾經住在我家樓下。
好些人都說沒有見過。
最後一樓的一個老婆婆告訴我,這個人的確曾經住在我家,但後來搬走了。
我算了算時間,大約是我與妻結婚不久之後。

搬走了?
搬走了是怎?回事?我問那個老婆婆,他不是死了嗎?
你年紀輕輕怎麼老咒人死呢?老婆婆白了我一眼。
我不信,去警署查,又通過我一個做警察的同學,查了半天,的確沒有這個男人的死亡記錄。
他們倒給了我一個地址。

在一個陽光明媚的上午,我捧著一壇骨灰,敲響了這個地址的門。
開門的正是妻。

當時是早上10點多鍾,我敲了這扇門。
門打開後,妻出現在我面前。
那個瞬間,我們都呆住了。

我隱隱感覺到事情還有險惡,也就是說,事情的險惡並沒有到我所認?已經停止的地步,我捧著骨灰的手不斷地抖著。

14
那天上午到深夜,我坐在那個男人的家裏,妻從頭到尾默然地不太說話,我也沒有過多催促,下午四點多的時候,那個男人回家了,于是整個事情才在我面前慢慢鋪展開來。

一年多前,也就是我和妻結婚後不久,與這個男人發生戀情的正是妻。
“我和你結婚不多久就早知道了,你並不愛我。”
妻坐在我對面,平靜地說。
妻常常看到我一個人坐在沙發上怔怔發呆,有時候她叫我,我會在她叫了好幾次後才驚醒,抬頭問她幹什麼。憑一個女人的直覺,她早明白我心中有一種很不甘的東西在壓抑著不流露出來,于是妻也沒有流露出,當然,這是在我面前。

常常妻在吃完晚飯後,下樓去樓下的小區的長椅上坐著,直到認識那個男人。
開始他們只是聊天,坐在長椅上輕聲細語的聊天。
直到妻了解到他身患重疾,並沒有多少生命時,她早已愛上了他。
妻決定離開我。

但這對妻來說無疑是萬分艱難而無法開口說出的決定,我雖然心底有一塊位置早已空缺,而且妻或者任何人也無法填滿,但至少我對妻的好是無可爭議,無可挑剔的。
妻根本說不出任何離開我的話。
直到妻認識了女兒。

按照妻的說法,女兒踏進那所幼兒園的那天,不知為何第一眼相見,妻看到她扒在欄杆旁,貪婪地看著小孩子時,妻就對她有了莫名的好感和信任。
她們變成了好朋友。
漸漸地,妻把與我的事情,與樓下那個男人的事情統統告訴了女兒。
這離我與女兒再次重逢,中間隔了整整一個多月。

女兒一直沒有向妻說明,直到有一天妻說著說著,便把與我的照片給女兒看。
女兒才抖得象一只風中的雞。

在一個夜晚,她們一起通盤想了整件事。那根本不是任何人的孩子,那只是幼稚園裏一個小孩,他的父母每逢周末去外地采購,便托管在妻的幼稚園,女兒很喜歡他。

接下去的半年時間裏,便是妻與女兒精心布置好的局,每一個細節,每一個碰撞,包括每一個交流,事情的每一步。
只有我被蒙在鼓裏。
這其實原本是個對任何人都好,都沒有任何壞處的局。
妻離開我,我與女兒(我一直真愛著的人)從此在一起,妻會陪伴那個男人直到他死。
事情也的確按照她們的預計在進行著,偶爾我有猶豫,她們中間就會有一個人促動一下。
那個男人的病情越來越差,只好在那一天,妻開始發難。

妻隱瞞在人群中,送我們上船,直到我發現她後,朝我揮手告別,那一刻,她的眼神中的確是刻骨的不舍。
她送我們去的地方,正是女兒失蹤後所去的城市。
從頭到尾,她沒有懷過孕。

15

我沒有告訴妻女兒的死,我離開那個房間的時候,妻的眼中是抱歉與祝福並存的眼神。
回到家,我翻開女兒的行李箱,找出那本日記。

10月6日
今天我又看到了他,我已經有整整一年多沒有見過他了,他瘦了,更成熟了,他認出了我,只是他裝得好象啊。

11月2日
一切都按照計劃進行著,只是我越來越不願意這樣,我不想騙他,可是我騙了他,我按照我們一起編的話,一次次騙著他,包括我的小孩,包括我去做雞,他全相信了,他給我買了屋子,他以為這一切都做得很好,我是多麼想告訴他,一切都和他以為的截然不同啊。

11月9日
他一直在我的房間裏呆著,我是多麼享受和他這樣呆在一起的時光啊,我們一起聽SOLVERG SLETTAHJEII的歌,他老是笑我很幼稚,他送過我一盤SOLVERG SLETTAHJEII的CD,可能他自己都忘了吧,那是好幾年前了,我們一起去唱片店,他送給我這張CD,我估計他自己都沒有聽過,只是他很討厭我聽 SHE。

12月1日
姐姐終于離開了,這半年來,我們計劃的整件事情終于達到了效果。
我看著老爸迅速老下去的樣子,怎麼能告訴他,從頭到尾我都是騙他的啊!
我怎麼能告訴他,我還愛他,我根本從來沒有愛過任何其他的人啊。

明天我們就要上船了,我想帶他去看那一年多來我呆的這個城市,我在那個城市裏療傷,在那個城市裏長大,我多想帶他去看,告訴他每一寸土地都是我熟悉的,這是姐姐給我們的船票,她希望我們幸福,希望我帶他去那裏忘掉一切,與我重新開始。可是我心裏明白,他再不可能愛我了,我們以為這個陰謀可以成全任何人,可是我們都沒有想到給他帶來的傷害。

我們怎麼可能再回到從前呢。
這怎麼可能呢。

12月2日
我在黑暗裏一直看著你的臉,老爸,你知道嗎,我一直盯著你看,想把你全部記在腦子裏,帶著滿腦子的你離開。
昨天晚上我們再一次做愛了,你知道嗎,這是我們最後一次做愛,我多麼想告訴你這是我們最後一次做愛啊。
你睡著的樣子,我怎麼都看不厭,可是我知道我不能再看了,再看下去,你會越來越討厭我,直到一切你都知道後,你會恨我,那個時候,我該怎麼來面對你啊。
老爸,我要走了,姐姐已經離開你了,她尋找屬于他自己的幸福去了,我也要走了,我知道這次航行,是我愛你的盡頭。
可是你好可憐啊,老爸,以後沒有人再來照顧你了,沒有人再來關心你了,你會懂得好好照顧自己嗎?
你會懂得,我從來沒有愛過別人,從頭到尾,我只是愛著你一個人,希望你幸福嗎?
老爸,我真的不想離開你,可是我知道,你會一個人勇敢地活下去,你一定要勇敢地生活下去,只有膽小的我,才會選擇逃,老爸,你是最勇敢的,對嗎?
老爸,我真的很想為你生個孩子,可我沒有懷上,我哭了很久,我想我沒有機會了,昨天做愛的時候,我想,如果這次我懷了你的孩子,那麼我和他都會在天上一直祝福你的。

老爸,我真的不想放開,我手裏的筆不斷地在寫,我知道,我一放下筆,就意味著終于就要離開了,你能再抱我一次嗎?象爸爸抱女兒一樣?
從開始到結束,老爸,你從來沒有對我說過,我愛你。
我愛你,老爸。
再見


看完整本日記,已經是淩晨5點了,我呆呆坐了一會,回憶了這半年來與她相處的每一個細節,給自己沖了一杯咖啡,我鎮定地乘著咖啡匙,終于手劇烈地抖動,撒滿了一地棕色的粉末,我再也無法抑制,跪在地上。
看著眼淚將滿地的粉末漸漸稀釋……

幾天後,我將這個屋子賣掉,賣掉的錢全部給了妻,我對那個男人始終不存惡感,他也待我象朋友一般親切與自然。
我把女兒埋在了一個非常漂亮的地方,去了另外一個城市,留下了她一些骨灰,放在一個手指粗細的小瓶裏,挂在我的胸前,這一生我都不能再把她摘除,她已長在我的心裏,我的骨髓中,無法割離。

有的時候半夜無法睡著,我都會想。
如果有一個你愛的女孩子叫你老爸時,你要記得堵住她的嘴,告訴她,她不是你的女兒,是你的愛人,而你,將用整個生命來珍惜她,愛她,不讓她受到傷害,你一定要說出來。

因為有的話,不說,不說,就再也沒有機會說了。

你明白嗎?

Posted in 標籤: | 0 意見

台鐵男播音 盧志銓破百年紀錄 It's My friend,Cool


【聯合報╱記者蔡惠萍/台北報導】

台鐵近來招收一名男性專任播音員,一新「耳」目;據台鐵說,這是台鐵百年來首位專任的男性播音員,據了解,這是台鐵局長范植谷從高鐵得來的靈感,大有台鐵「尬」高鐵的意味。

近來在台北車站出入的旅客可能注意到了,車站廣播出現了有點生澀、偶爾吃螺絲的男「聲」。台鐵在松山、台北、板橋、台中、高雄及花蓮等大站都設有專任播音員,其餘多由站長或副站長「兼任」。從台鐵設有專任播音員以來,向來是「女性天下」,這個紀錄最近被盧志銓給打破。

盧志銓考進台鐵前是家網路公司的工程師,不過,當工程師「手機會一直響個不停。」他在十月考上台鐵基服員被分發到台北站自我介紹時,被站長李永生相中。

播音室裡,盧志銓盯著面前八個不同視窗的監視螢幕,還要注意著顯示各車次進站資訊的電腦螢幕。第一天「上工」,剛好遇到有班列車機車頭在板橋萬華間故障,導致北上列車都受到延誤,電話、擴音器紛湧而至,他忙得像「八爪章魚」。

盧志銓說,雖然播音員不用直接面對旅客,但是剪票、收票口的台鐵人員卻要站在第一線,如果車站廣播向旅客解釋、表達清楚,就可以為第一線同仁省了許多麻煩。

車站廣播聽來千篇一律,但其實有許多竅門,像只有自強號才有英文廣播,剩下的車種都只有國、台、客語;一○五五號次從樹林開往高雄的自強號,是走東幹線而不是西幹線,這也要特別廣播。另外,有的電聯車只有四節車廂,他也會告訴旅客要在第幾到第幾車搭車,以免有些老人家在月台上狂奔,不僅危險,也影響列車準點率。

從工程師到播音員,盧志銓說,適應上沒有什麼太大的問題,「以前也是要常常向客戶解釋(網路)故障原因,很習慣了。」

【2007/12/15 聯合報】

引用udn台灣人物誌

Posted in 標籤: | 0 意見

Exim Gmail Hotmail ACL check

Exim 4.14以前的版本

在Acl Check 中,使用正規表式法,會造成主機誤判。

### Gmail Check Start ###

deny message = Your are not Gmail Server
senders = *@gmail.com
condition = ${if match {$sender_host_name}{\Ngoogle.com$\N}{no}{yes}}

### Gmail Check End ###

### Hotmail Check Start ###

deny message = Your are not Hotmail Server
senders = *@hotmail.com
condition = ${if match {$sender_host_name}{\Nhotmail.com$\N}{no}{yes}}

### Hotmail Check End ###

今天測試結果:
Gmail reject count = 3893
Hotmail reject count = 3967

兩大郵件供應商,在網路上,非來自其各自主機的數量看起來是一樣多的。
表示Spammer使用其作業fake email addree是蠻平均的。

Posted in 標籤: | 0 意見

The Common Address Redundancy Protocol (CARP)

網址: http://www.freebsd.org/releases/5.4R/relnotes-i386.html

Network Protocols

The Common Address Redundancy Protocol (CARP) has been implemented. CARP comes from OpenBSD and allows multiple hosts to share an IP address, providing high availability and load balancing.

中譯: 自OpenBSD移植CARP協定,允許多個host共用一個IP位址,可提高效益及負載平衡

The carp device first appeared in OpenBSD 3.5.
OpenBSD Man page CARP

For more information, see the carp(4) manual page
FreeBSD Man page CARP

FreeBSD的基本作法:簡體中文、繁體中文原廠無提供

Posted in 標籤: | 0 意見

首都客運 宜蘭

期待以久的宜蘭國道客運,
今天終於要嘗試搭乘了,從羅東回台北,
不過先受到第一層的考驗,
先拿個需等2個小時才有位子上車的號碼牌103、104,
服務人員說先去晃晃再回來,
等我2小時後再到車站時,
號碼又已叫到我後面了800多號,
那a安內,到底是怎麼排號的呀。
真的是不知該說什麼,
實際搭車時間為90分鐘到市府站。

跟我的想像真的落差很大,
以為台北的經營模式要移植到宜蘭,
讓宜蘭的服務業有所提升。
結果讓我深深的嘆了一口氣,
一樣一點成長都沒有,
為什麼跟美麗華->基隆線差這多呢?
也沒等超過30分鐘。

其實大部份的宜蘭年輕人都在台北打拼,
有著台北市首都的人文素質,
講求時間、效率、品質。
我想第一次的搭乘,已讓我打退堂鼓,
原來首都的客運到宜蘭,調度也會變退步。

真是有股狠鐵不感鋼的感覺!!~
大家是否也跟我一樣的感受呢?~

Posted in 標籤: | 0 意見

Yahoo!奇摩迷你筆

最近發現Yahoo!奇摩迷你筆這玩意,
原來他是個好用的字典工具,
對一般常使用翻譯軟體的人來說,
又多了一個新的選擇,而且他是沒有版權問題,
而且也是譯典通的字彙,
大家可以安裝起來試試看,
安裝完執行後,桌面最上層會多一支筆顯示,
只要將滑鼠點選該支筆,
拖曳至你要查詢的單字上,
即可即時查詢該單字。

官方網站:Yahoo!奇摩迷你筆
下載點:直接下載

系統需求:Windows 2000/2003/XP/Vista與IE 6.0/7.0
檔案大小:1.8MB

Posted in 標籤: | 0 意見

PChome Mail Server 郵件主機最近常異常

下午開始對PChome郵件主機異常,下班前仍未解決。

2007-12-14 14:32:13 xxx@pchome.com.tw defer: SMTP error from remote mail server after RCPT TO:xxx@pchome.com.tw: host mxs.pchome.com.tw [211.20.188.150]: 451 4.3.5 Server configuration problem

2007-12-14 18:36:37 xxx@pchome.com.tw defer: SMTP error from remote mail server after MAIL FROM:abc@abc.com SIZE=93345: host mxs.pchome.com.tw [211.20.188.150]: 452 4.3.1 Insufficient system storage
其訊息好像storage問題.

2007-12-14 18:37:56 xxx@pchome.com.tw defer: SMTP error from remote mail server after RCPT TO:xxx@pchome.com.tw: host mxs.pchome.com.tw [211.20.188.150]: 451 4.3.5 Server configuration problem


2007-12-19 01:35:34 xxx@pchome.com.tw defer: SMTP error from remote mail server after RCPT TO:xxx@pchome.com.tw: host mxs.pchome.com.tw [211.20.188.150]: 451 4.3.5 Server configuration problem

Posted in 標籤: | 0 意見

硬碟壞了如何送原廠更換

Posted in 標籤: | 0 意見

FreeBSD ipv6 howto book

Posted in 標籤: | 0 意見

FreeBSD 快速設定防火牆 ipfilter

FreeBSD Firewall config ipfilter

kernel 未加入 ipfilter option 時執行用
作法:

設定kld 帶起ipfilter
#kldload ipl.ko

設定ipfilter rule
#vi /etc/ipf.conf
pass in all
pass out all

重新reload ipfilter rule
#ipf -Fa -f /etc/ipf.conf

查詢目前ipfilter的rule
#ipfstat -io


設定重開機時也能帶起ipfilter
#vi /etc/rc.conf
新增以下兩條:
ipfilter_enable="YES" # Start ipf firewall
ipfilter_rules="/etc/ipf.conf" # IPF rule


常用指令說明:
#kldstat ( 看ipfilter有無被驅動 )
#ipf -V ( -V查看ipfilter的版本 )
#ipf -D ( 停止 ipfilter )
#ipf -E ( 啟動 ipfilter )
#ipf -Fa -f /etc/ipf.rules ( -Fa清除所有rule,-f 導入新的rule,為更新ipf.rules後重新啟動必下指令)
#ipfstats ( 統計所有封包狀態 )
#ipfstats -o ( -o看所有output的rule )
#ipfstats -i ( -i看所以input的rule )
#ipmon ( 觀查所有ip及封包走向 IP -> host, PORT -> protocol )

使用NAT時指令:
#ipnat -C ( 清除所有規則 )
#ipnat -l ( 查看目前設置的轉換規則及已經執行過後的轉換關係 )
#ipnat -s ( 查看ipnat的狀態 )
#ipnat -f /etc/ipnat.rules ( 重讀 ipnat.rules )

Posted in 標籤: | 0 意見

Linux Disable IPv6 Config

GNU/Linux 核心

Debian/ Ubuntu
在檔案 /etc/modprobe.d/00local 加入以下兩行:
alias net-pf-10 off
alias ipv6 off
搞定後重新啟動整個系統。

CentOS/Fedora/Mandrake/RedHat
在檔案 /etc/modprobe.conf 加入以下一行:
alias net-pf-10 off
在檔案/etc/sysconfig/network加入以下一行:
NETWORKING_IPV6=NO
搞定後重新啟動整個系統。

引用:http://wiki.linux.org.hk/w/Disable_IPv6

Posted in 標籤: | 0 意見

使用 Eseutil 公用程式 (Eseutil.exe) 進行磁碟重組

注意:如果要對資料庫進行磁碟重組,可用磁碟空間必須等於要處理的資料庫大小的 110 %。

由於資料庫過大,已超過Exchange SP2的資料庫18GB限制,除了先改機碼讓系統可以重新上線服務,再來就是需要使用Eseutil.exe 進行磁碟重組,以解決資料庫過大問題。

作業程序:

系統管理群組->AG->伺服器->EXBE01->預設儲存群組

一、信箱儲存區
1、信箱儲存區 (EXBE01)->右鍵->卸載儲存區
2、執行指令:
c:\Exchsrvr\bin\eseutil.exe /d c:\Exchsrvr\MDBDATA\priv1.edb

二、公用資料夾
1、公用資料夾儲存區 (EXBE01)->右鍵->卸載儲存區
2、執行指令:
c:\Exchsrvr\bin\eseutil.exe /d c:\Exchsrvr\MDBDATA\pub1.edb

三、重新掛載
1、信箱儲存區 (EXBE01)->右鍵->掛上儲存區
2、公用資料夾儲存區 (EXBE01)->右鍵->掛上儲存區


參考資料:
http://support.microsoft.com/kb/192185/zh-tw

Exchange 2000 或 Exchange 2003 資料庫正在進行磁碟重組
注意 如果要對資料庫進行磁碟重組,可用磁碟空間必須等於要處理的資料庫大小的 110 %。

1.在 Exchange 系統管理員中,用滑鼠右鍵按一下要進行磁碟重組的資訊儲存庫,然後按一下 [卸載儲存區]。
2.在命令提示字元中,變更位置到 Exchsrvr\Bin 資料夾,然後輸入 eseutil /d 命令、資料庫參數以及所要使用的任何選項。

例如,下列命令會對信箱儲存區資料庫執行標準的磁碟重組公用程式:
C:\program files\exchsrvr\bin> eseutil /d c:\progra~1\exchsrvr\mdbdata\priv1.edb
使用下列資料庫參數,對特定的資料庫執行 Eseutil 磁碟重組:
eseutil /d [options]

執行前,priv1.stm使用 18GB:


執行後,priv1.stm只剩 5GB:

Posted in 標籤: | 0 意見

如何將 Exchange SP2 18 GB 的資料庫大小限制增加

實際測試新增機碼後,重新掛載mailbox store即可。

修改機碼:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\MSExchangeIS\伺服器名稱\Private-xxx

新增機碼 DWORD

名稱 Database Size Limit in GB
底數 十進位
數值資料 1-75間,我直接設定45,即可

中文說明:
http://support.microsoft.com/kb/912375/
英文說明:
http://technet.microsoft.com/en-us/library/6c4ce7bb-5289-4221-a87c-b9c78ab7c09c.aspx

Posted in 標籤: | 0 意見

FreeBSD 6.x make new kernel

# cd /usr/src/sys/i386/conf/
# cp GENERIC newkernel
# vi newkernel

增加ipfiter 當firewall
options "AUTO_EOI_1"
options QUOTA
options IPFIREWALL #firewall
options IPFIREWALL_VERBOSE
options IPFIREWALL_FORWARD #enable transparent proxy support
options IPFIREWALL_VERBOSE_LIMIT=100 #limit verbosity
options IPFIREWALL_DEFAULT_TO_ACCEPT #allow everything by default
options IPDIVERT #divert socket
options DUMMYNET
options IPFILTER #ipfilter support
options IPFILTER_LOG
options TCP_DROP_SYNFIN #drop TCP packets with SYN+FIN
#options NMBCLUSTERS=65536

雙CPU設定
options SMP # Symmetric MultiProcessor Kernel
#options APIC_IO # Symmetric (APIC) I/O(5.4不支援)

# cd /usr/src
# make buildkernel KERNCONF=newkernel
# make installkernel KERNCONF=newkernel
# sync ; sync ; sync
# reboot

Posted in 標籤: | 0 意見

Gmail uses Google's innovative technology to keep spam out of your inbox.


Gmail fans often cite great spam protection as a key reason they love Gmail. It's relatively easy to catch spam messages; the challenge is to catch the right messages without blocking mail you want along the way.

How do we do it? Our team of leading spam-fighting scientists uses a number of advanced Google technologies. Though in many cases our best weapon is you.

Community clicks

Gmail users play an important role in keeping spammy messages out of millions of inboxes. When the Gmail community votes with their clicks to report a particular email as spam, our system quickly learns to start blocking similar messages. The more spam the community marks, the smarter our system becomes.

Quick adaptation

The same advanced computing infrastructure that powers Google search also tunes our spam filters. As new spam data is released, the scale of Google's computer network allows us to quickly modify Gmail's spam-fighting algorithms. It's often a matter of minutes between the time a spammer sends out a new type of junk mail and when it's blocked from Gmail accounts.

Powered by Google

Many Google teams provide pieces of the spam-protection puzzle, from distributed computing to language detection. For example, we use optical character recognition (OCR) developed by the Google Book Search team to protect Gmail users from image spam. And machine-learning algorithms developed to merge and rank large sets of Google search results allow us to combine hundreds of factors to classify spam.

Authentication, for everyone

Many webmail services support a single authentication system to verify senders and help identify forged messages. Gmail supports multiple authentication systems, including SPF (Sender Policy Framework), DomainKeys, and DKIM (DomainKeys Identified Mail), so we can be more certain that your mail is from who it says it's from. Also, unlike many other providers that automatically let through all mail from certain senders, making it possible for their messages to bypass spam filters, Gmail puts all senders through the same rigorous checks.

Data from:http://www.google.com/mail/help/fightspam/spamexplained.html

Posted in 標籤: | 0 意見

Exim Data returned by DNS lists

39.25 Data returned by DNS lists

DNS lists are constructed using address records in the DNS. The original RBL just used the address 127.0.0.1 on the right hand side of each record, but the RBL+ list and some other lists use a number of values with different meanings. The values used on the RBL+ list are:

127.1.0.1 RBL
127.1.0.2 DUL
127.1.0.3 DUL and RBL
127.1.0.4 RSS
127.1.0.5 RSS and RBL
127.1.0.6 RSS and DUL
127.1.0.7 RSS and DUL and RBL

Some DNS lists may return more than one address record.

http://www.exim.org/exim-html-4.50/doc/html/spec.html

Posted in 標籤: | 0 意見

旅行禁忌

旅行可增廣見聞,不過各國民俗風情不同,一個不小心,諸如用錯手勢或表錯情,輕則被對方會錯意,重則犯了當地禁忌,成為不受歡迎人物,敗了遊興。

1、在伊朗切勿豎起大拇指

若想稱讚對方表現不俗,許多人會豎起大拇指,不過在伊朗,這可是猥褻手勢,意味「坐在這上面」,極為不雅。此外,OK手勢是許多潛水族通用的暗號,表示「我很好」,不過在土耳其與巴西,OK手勢是罵人之意,表示對方下流齷齪。所以下次到巴西潛水時,千萬別隨便OK。

2、切勿觸摸泰國人的頭

在信奉佛教的泰國,頭則是靈魂之所,不可隨便亂摸。此外,也不可用手指指東指西。

3、視國情而挑話題與當地人談論

有時無知也令當地人感冒。諸如,在澳洲詢問原住民的處境,在中國暢談人權,在印度追究女性何以死於嫁妝不足,在西班牙譴責鬥牛等。最好選些安全的話題,諸如食物、小孩、運動、美容與景點等,多說好話包準不會錯。

4、切忌換上牛仔服或印第安傳統服飾出席阿根廷烤肉會

許多人到了海外,難免想入境隨俗,試試當地的服飾,因此到了夏威夷,換上五彩繽紛的夏威夷衫,到了印尼,穿上蠟染的服飾。不過在阿根廷,歐洲人若換上牛仔服或印第安傳統服飾盛裝出席烤肉會,只會被當地人嘲弄,認為他們小題大做。

5、不能穿鞋子進家與入廟

在日本等東方國家,進入室內或廟宇前,一定得脫鞋。稍早英國女星伊莉莎白·赫莉在印度舉行婚禮,因為進入結婚殿堂時拒絕脫鞋,差點把自己婚禮搞砸。

6、送什麼花也有禁忌

受邀到別人家作客,可以送女主人一束鮮花,不過在德國、波蘭、瑞典,千萬別送康乃馨。在比利時、義大利、法國、西班牙、土耳其等國,菊花則是禁忌。因為康乃馨與菊花都是喪禮用花。而玫瑰代表的意義也因國而異。在法國、奧地利,紅玫瑰代表浪漫,不過黃玫瑰在墨西哥與智利,代表離別。此外,花朵數目、包裝與否,都會影響送禮情意,不可不慎。

7、送瓶裝在豬皮製瓶套的白蘭地給阿拉伯主人

這可是大不敬。穆斯林如果喝酒,一定不會公開喝,不管你的東道主愛喝白蘭地或威士忌,讓他喝酒時引人注意絕非好事。豬和狗在阿拉伯國家都是不潔淨的動物,因此不管你送他的酒瓶皮套有多華麗,只要是豬皮製,都是在侮辱主人。送禮是門學問,因此送禮前最好問問當地人意見。在中國,送鐘可是觸人楣頭。在哥倫比亞,禮品最好不要有標記,以免被視為便宜貨。韓國人則喜歡洋貨。

8、在喬治亞或亞塞拜然,舉杯頌祝健康時,切忌自顧飲酒或與人交談。

北歐、俄羅斯、前蘇聯加盟共和國,對於敬酒非常慎重,舉杯時最好眼睛看著主人。在俄國,敬完酒後須一口將杯中的伏特加飲盡。在喬治亞和亞塞拜然,有專人主持敬酒,整個過程往往耗上數個小時。敬酒時,如果和身旁的人交談或逕自獨酌,將會遭致責難或白眼。

9、在中國與日本,切忌將筷子插於米飯上

在中國與日本,用筷也有一套禮儀:千萬別將筷子直直插入碗裡,也不可用筷子指人。

筷子要握在上方三分之二處,握筷子處愈遠離食物,人們愈會覺得你世故老練。千萬不要把筷子當叉子用,也不要把筷子架成十字形、分開來擺在餐具兩邊,將尖端指向別人。最糟糕的莫過於將筷子插在米飯上,這樣做會讓人聯想到喪禮儀式。

引用來源

Posted in 標籤: | 0 意見

台灣MSN首頁遭轉址

引用 taiwan.cnet.com

微軟MSN台灣地區首頁今(6)日傳出遭轉址的事件,微軟在傍晚表示問題已經排除。

微軟線上服務品牌MSN的台灣首頁,發生遭駭客轉址事件,使用者今天若嘗試由網址www.msn.com.tw連結MSN首頁,便可能被轉址至 www.julianhaight.com/msnhack.html#。署名為Julian的駭客在轉址後的網站上聲稱並不會利用此項疑似微軟DNS設定錯誤的事件做壞事,但他在該網頁上呼籲網友不要依賴微軟的資安服務,還不忘鼓勵網友嘗試Linux。

Julian在網站上解釋轉址手法。他表示,微軟可能是在設定域名系統(DNS)時,把網址錯打成一個不存在的網域名稱,他發現後便順勢申請了這個原本不存在的網址,導致連至該DNS網址的使用者,皆會被轉址到他的網頁。他同時引用微軟向TWNIC註冊的DNS資訊表示,由於微軟同時設定了五組DNS主機位址,但僅有一個網址設定錯誤,因此並非所有今日連上www.msn.com.tw網址的使用者,都會被轉址到該網頁。

http://taiwan.cnet.com/news/software/0,2000064574,20123305,00.htm

Posted in 標籤: | 0 意見

Exim + Cyrus-IMAPD + Cyrus-sasl2-saslauthd Install 簡易安裝

Exim 設定
cyrus-sasl2-saslauthd 安裝
cyrus-imapd 安裝設定


1.安裝 cyrus-sasl2-saslauthd

cd /usr/ports/security/cyrus-sasl2-saslauthd
make 都不選
make install

vi /etc/rc.conf
saslauthd_enable="YES"


2.安裝 cyrus-imapd2

cd /usr/ports/mail/cyrus-imapd2
make
make install

vi /etc/rc.conf
cyrus_imapd_enable="YES"


Configuring IMAP:
1) Create /var/imap and /var/spool/imap

#mkdir /var/imap /var/spool/imap
#chown cyrus:mail /var/imap /var/spool/imap
#chmod 750 /var/imap /var/spool/imap


2) Edit /usr/local/etc/imapd.conf

Make sure you have the following:

admins: cyrus
allowanonymouslogin: no
sasl_pwcheck_method: saslauthd

3) Change to user cyrus and execute this

# su cyrus
% /usr/local/cyrus/bin/mkimap

This should create all the required directories with proper permission.

4) Make sure you have the following in /etc/services
pop3 110/tcp
imap 143/tcp
imsp 406/tcp
acap 674/tcp
imaps 993/tcp
pop3s 995/tcp
kpop 1109/tcp
sieve 2000/tcp
lmtp 2003/tcp
fud 4201/udp


5) Remove any imap, imaps, pop3, pop3s, kpop, lmtp and sieve lines from /etc/inetd.conf


6) Add the following lines to the end of /etc/syslog.conf
local6.debug /var/log/imapd.log

kill -HUP `cat /var/run/syslog.pid `


7) Create the files by

# touch /var/log/imapd.log


8) Start the saslauthd server by doing

#/usr/local/etc/rc.d/saslauthd.sh start


9) Start the IMAPD server (copy imapd.sh.sample to imapd.sh)

#/usr/local/etc/rc.d/imapd.sh start


10) Set the passwd for user cyrus

#saslpasswd2 cyrus
Enter the passwd:


11) Now su as cyrus and test the IMAP server

#su cyrus
%imtest -m login -p imap localhost

Enter the password, if you see OK. User logged in.. then the server is working..Press . logout to exit..

12) Add user mailboxes by logging using cyradm

%cyradm localhost
localhost@xxxx>cm user.lani
localhost@xxxx>quit
%exit
#

the step is create user mailbox


13) Now set passwd for lani using saslpasswd2 (as root)

#saslpasswd2 lani
EnterPasswd:


13.1) cyrus 設定方式:

建立cyrus 連線
cyradm -user cyrus localhost
Password:
localhost.oio.idv.tw>

建立mailbox
localhost.oio.idv.tw>createmailbox user.lani
localhost.oio.idv.tw> listmailbox
user.lani (\HasNoChildren)

設定 mailbox quota
localhost.oio.idv.tw> setquota user.lani 50000
quota:50000

列出 mailbox quota
localhost.oio.idv.tw> listquota user.lani
STORAGE 0/50000 (0%)

刪帳號
localhost.oio.idv.tw> setaclmailbox user.lani cyrus c
localhost.oio.idv.tw> listaclmailbox user.lani
lani lrswipcda
cyrus c
localhost.oio.idv.tw> deletemailbox user.lani

13.2) 認証方式

修改 /usr/local/etc/imapd.conf
# The mechanism used by the server to verify plaintext passwords. Possible
# values include "auxprop" or "saslauthd"
#
#sasl_pwcheck_method: auxprop # auth by sasldb
#sasl_pwcheck_method: saslauthd # auth by saslauthd
sasl_pwcheck_method: saslauthd


13.2.a) 使用sasldb認証

修改 /usr/local/etc/rc.d/saslauthd ,

#saslauthd_flags=${saslauthd_flags:-"-a pam"} # Flags to saslauthd program 預設 pam
saslauthd_flags=${saslauthd_flags:-"-a sasldb"} # Flags to saslauthd program ## sasldb

sasldb
Authenticate against the SASL authentication database.

Now set passwd for lani using saslpasswd2 (as root)
建立lani passwd 於 sasldb

設定帳號lani 於 sasldb密碼
#saslpasswd2 lani
EnterPasswd:

13.2.b) 使用localhost passwd file

修改 /usr/local/etc/rc.d/saslauthd ,

#saslauthd_flags=${saslauthd_flags:-"-a pam"} # Flags to saslauthd program 預設 pam
saslauthd_flags=${saslauthd_flags:-"-a getpwent"} # Flags to saslauthd program ## localhost passwd

getpwent
Authenticate using the getpwent() library function. Typically this authenticates against the local password file.

設定系統密碼
#passwd lani
EnterPasswd:


14) Woohoo that's it... Test from someother machine by doing a telnet to imap port and see if you get something similar to this..

# telnet 127.0.0.1 imap
Trying 127.0.0.1...
Connected to localhost.oio.idv.tw.
Escape character is '^]'.
* OK oio.idv.tw Cyrus IMAP4 v2.1.18 server ready
. logout
* BYE LOGOUT received
. OK Completed
Connection closed by foreign host.



Exim 設定

vi /usr/local/etc/cyrus.conf

SERVICES {
...
lmtp cmd="lmtpd -a" listen="127.0.0.1:lmtp" prefork=0
}

/usr/local/etc/rc.d/imapd restart

netstat -an | grep LIST |grep 127.0.0.1
tcp4 0 0 127.0.0.1.2003 *.* LISTEN


## ROUTERS CONFIGURATION ##

localuser:
driver = accept
check_local_user
# local_part_suffix = +* : -*
# local_part_suffix_optional
transport = local_delivery
cannot_route_message = Unknown user


change transpot

transport = cyrus_lmtp

## TRANSPORTS CONFIGURATION ##

cyrus_lmtp:
driver = smtp
protocol = lmtp
hosts = 127.0.0.1
allow_localhost
port = 2003


測試寄信:

Exim log

2007-08-12 03:38:21 message accepted: sender= recipients count=(1) H=localhost (.) [127.0.0.1]
2007-08-12 03:38:22 1IJwmz-000Jm9-QG <= test@oio.idv.tw H=localhost (.) [127.0.0.1] P=smtp S=317
2007-08-12 03:38:23 1IJwmz-000Jm9-QG => test@oio.idv.tw R=localuser T=cyrus_lmtp H=127.0.0.1 [127.0.0.1]
2007-08-12 03:38:23 1IJwmz-000Jm9-QG Completed


測試收信:

tail -f /var/log/imapd.log

Aug 12 03:47:35 oio.idv.tw master[76073]: about to exec /usr/local/cyrus/bin/pop3d
Aug 12 03:47:35 oio.idv.tw pop3[76073]: executed
Aug 12 03:47:35 oio.idv.tw pop3d[76073]: accepted connection
Aug 12 03:47:44 oio.idv.tw pop3d[76073]: login: localhost.oio.idv.tw[127.0.0.1] test plaintext
Aug 12 03:53:18 oio.idv.tw master[76069]: process 76073 exited, status 0



Configuring with ssl

Create a server key and certificate (we're wrapping both of this into one file, although splitting would be possible)
#su - cyrus
#openssl req -new -x509 -nodes -out /var/imap/server.pem -keyout /var/imap/server.pem -days 3650

Generating a 1024 bit RSA private key
....++++++
.....++++++
unable to write 'random state'
writing new private key to '/var/imap/server.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:TW
State or Province Name (full name) [Some-State]:Taiwan
Locality Name (eg, city) []:Taipei
Organization Name (eg, company) [Internet Widgits Pty Ltd]:oio.idv.tw
Organizational Unit Name (eg, section) []:Se
Common Name (eg, YOUR name) []:Lani
Email Address []:se@oio.idv.tw



Make sure the following options exist in /usr/local/etc/imapd.conf

sasl_pwcheck_method: auxprop # this should be the default, anyway
tls_key_file: /var/imap/server.pem
tls_ca_file: /var/imap/server.pem
tls_cert_file: /var/imap/server.pem


restart imapd

#/usr/local/etc/rc.d/imapd restart

howto test pop3s:
#openssl s_client -connect localhost:995



參考資料:
Cyrus-IMAP:http://www.soe.ucsc.edu/~venkat/tutorial1.html
Exim Tranfer LMTP:http://wiki.exim.org/CyrusImap?highlight=%28cyrus%29

Posted in 標籤: | 0 意見

MSN 新病毒~

剛有MSN的朋友傅了一個檔案,檔名:img1756.zip
送到VIRUSTOTAL進行掃毒,發現只有兩個新的病毒碼可偵測出。
所以大家小心囉。

Posted in 標籤: | 1 意見

逛資展



星期日去逛資展,真的好多人,
那種感覺真的很不錯,
讓人覺得國人消費動能有在增加,
因為看展出的店家,
個個都開心,努力的叫賣著。

讓人覺得台灣的經濟還有希望!!!

走累了,坐在101下休息~

Posted in 標籤: | 0 意見

Exim with DomainKeys Config

一、運作原理:
網域認證鑰匙 如何運作

網域認證鑰匙 如何運作 - 寄信伺服器
首先,網域認證鑰匙將先進行兩道設定措施:
1.設定鑰匙:網域在寄信時產生兩組「鑰匙」,公開鑰匙以及非公開鑰匙。公開鑰匙將在寄信的過程中被存入「網域名稱伺服器(DNS)」中,而非公開鑰匙將暫時存在寄信伺服器中。即右圖寄信流程中的步驟 "A"。此時虛擬的網域將在第一時間被系統排除。
2.傳送鑰匙:當網域經過認證後,此時系統會根據非公開鑰匙而自動產生一組數位認證簽名檔,此簽名檔將會依附在寄出信件的標頭中,並且傳送到收件者的郵件伺服器裡。即右圖寄信流程中的步驟 "B"。

網域認證鑰匙 如何運作 - 收信伺服器
接下來,網域認證鑰匙將採取三道確認過程:
1.蒐集鑰匙:在網域認證鑰匙運作下,收信伺服器將收到夾帶在寄出信件裡的非公開鑰匙以及自動擷取「網域名稱伺服器(DNS)」裡的公開鑰匙。即右圖寄信流程中的步驟 "C"。
2.比對鑰匙:系統將開始比對兩組鑰匙,比對信件的寄件者名稱是否符合此網域,一旦發現兩組鑰匙不相符,代表著這封信是偽造他人網域而寄出信件,很有可能就是垃圾信或是詐騙信。
3.確定傳送:在比對結束後,比對成功的信件將被順地地寄到收件者的信箱中,而比對失敗的信件將會被系統阻擋、加上標記或是被系統隔離。即右圖寄信流程中的步驟 "D"。


二、安裝方法:
1、安裝Libdomainkey module,直接使用ports安裝libdomainkeys-0.68.tar.gz
cd /usr/ports/mail/libdomainkeys
make
make install

2、重新編譯Exim4,將以下三行,加入Exim Local/Makefile內,重新編譯即可。
EXPERIMENTAL_DOMAINKEYS=yes
CFLAGS += -I/usr/local/include
LDFLAGS += -ldomainkeys -L/usr/local/lib


三、設定方法:
1、產生Public key / Private key
執行下列指令:
執令列 網域名稱 位元組
/usr/ports/mail/libdomainkeys/work/libdomainkeys-0.68/dknewkey rbl.oio.idv.tw 1024
執行後,會自動產生Public key 於dns須設定的txt record。
rbl.oio.idv.tw._domainkey IN TXT "k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDIz9mdp6hZJaMQcmKjxZvimLyJkUHOyZCAqcZJw3EJne/nnqsi6Fae9BkGn8PDWJFGY5z2C4Zoo7D6WvVuVXhWoUfbmTo1bCb8XeICLwQlH0Ou42PUsiQaD4ZY10bBqtRwizrFv+RrJdCXdH+Jp6vdP4cfe+JzBVbF5ksaoM+ExQIDAQAB"
只需將rbl.oio.idv.tw._domainkey 異動為private._domainkey.rbl.oio.idv,設定即可生效。

同時自動產生rbl.oio.idv.tw的檔案,內容如下為Private key。
-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQDIz9mdp6hZJaMQcmKjxZvimLyJkUHOyZCAqcZJw3EJne/nnqsi
6Fae9BkGn8PDWJFGY5z2C4Zoo7D6WvVuVXhWoUfbmTo1bCb8XeICLwQlH0Ou42PU
siQaD4ZY10bBqtRwizrFv+RrJdCXdH+Jp6vdP4cfe+JzBVbF5ksaoM+ExQIDAQAB
AoGBALNPpen5A4JW8TyGZz4F/iRgbjoI0tJrefTppH3JXu5PcSFJtVb+UBqvrIkV
sCCGvXI1ELtDn0lgoW9sOSvEdiaORO1wfmFMe6tfp7I0JopP7cGxDyoaml9ZaQgO
jWKMRcKlWdJaVWd9r/us+ybN8vXgr8+mc1bdE7q6y8/L5cUBAkEA+Lt4iiZZesAx
zsNlDvV5rA6xipYmSMqMmL3dKvQCeLZE27byIF8G8i/KPVbTvqdDUgtJ5suTGmqc
UMbs2o3rXQJBAM6t7rTf6pgRikpxX1/aUlIHqXcbUyrua2VRdAuzOkWBLkMBiSHZ
cfoPoTzwR4+p+negFtvN6yZV2lu1VnEV0IkCQH2b7tuVUkqzFHQeKMLNJIzHPtGF
0f+gii/4ceBnKXhcU5nBYbUHSDK1/6PKXVRCk7SzDrcGx1rny9jfHG2ijeECQFF6
KByOGYGRiJ8ISr0S6FkGRDx8PTEzhIsQrVrfcR1ta7tmo5UAj/owpzPK1atBK0h1
iA1nBEi8l7SHrGgwXWECQAT4idmoGF7H3CCFLg/4LXDxpJzjZVy2goJZMyk/X49W
zkzF9wkzHh6qNrwwr+8DHn/HxramKf+7Zb0D851LcIQ=
-----END RSA PRIVATE KEY-----


2、Exim Configure
Outgoing Mail:

## ROUTERS Configuration ##
dnslookup:
driver = dnslookup
domains = ! +local_domains
# transport = remote_smtp
transport = dk_smtp
ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
no_more

## TRANSPORTS Configuration ##
dk_smtp:
driver = smtp
dk_private_key = /usr/exim/dk/rbl.oio.idv.tw ## private key
dk_selector = private
dk_domain = rbl.oio.idv.tw
dk_canon = nofws
#dk_canon = simple

##### to yahoo mail header #####
From xxx@rbl.oio.idv.tw Wed Jul 25 17:56:27 2007
Return-Path:
Authentication-Results: mta194.mail.tp2.yahoo.com from=rbl.oio.idv.tw; domainkeys=pass (ok)
Received: from 210.68.43.7 (EHLO rbl.oio.idv.tw) (210.68.43.7)
by mta194.mail.tp2.yahoo.com with SMTP; Wed, 25 Jul 2007 17:56:27 +0800
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=private; d=rbl.oio.idv.tw;
h=Received:subject:from:rcpt:DomainKeys-Status;
b=XkyCN9f/bymGRW8tZejjxBbRxkQyNc5iXd2jv9pz7XyI1Pq8M5JCm2SethinzoVVbrSsgJcEq3dYyISUkap2tQ==;
Received: from localhost ([127.0.0.1] helo=.)
by rbl.oio.idv.tw with smtp (Exim 4.67)
(envelope-from )
id 1IDdbQ-0003cL-Sz
for xxxx@yahoo.com.tw; Wed, 25 Jul 2007 17:56:46 +0800
subject:test
from:xxxx@rbl.oio.idv.tw
rcpt:xxxx@yahoo.com.tw
DomainKeys-Status: no signature


Incoming Mail:

## ACL Configuration ##
rcpt acl:
warn control = dk_verify ## dk function enable

data acl:
warn message = DomainKeys-Status: $dk_status
log_message = DK status: $dk_status testing: $dk_testing signall: $dk_signsall
deny message = DomainKeys signature did not verify.
condition = ${if eq{$dk_testing}{0}{1}{0}}


測試結果:
1、data acl check 未帶signature而reject的log
2007-07-30 18:20:53 1IFSMv-0008QW-Fj H=rbl.oio.idv.tw (rbl.oio.idv.tw) [210.68.43.7] Warning: DK status: no signature testing: 0 signall: 0
2007-07-30 18:20:53 1IFSMv-0008QW-Fj H=rbl.oio.idv.tw (rbl.oio.idv.tw) [210.68.43.7] F= rejected after DATA: DomainKeys signature did not verify.

2、data acl check 有帶signature而pass的log
2007-07-30 18:22:01 1IFSO1-0008QZ-3I H=web72805.mail.tp2.yahoo.com [203.188.200.195] Warning: DK status: good testing: 1 signall: 0
2007-07-30 18:22:01 1IFSO1-0008QZ-3I <= xx@yahoo.com.tw H=web72805.mail.tp2.yahoo.com [203.188.200.195] P=smtp S=2304 id=869287.96999.qm@web72805.mail.tp2.yahoo.com 2007-07-30 18:22:01 1IFSO1-0008QZ-3I => xxx R=localuser T=local_delivery
2007-07-30 18:22:01 1IFSO1-0008QZ-3I Completed


四、參考資料:
Libdomainkey下載點:http://sourceforge.net/projects/domainkeys/
http://domainkeys.sourceforge.net/
Exim wiki http://wiki.exim.org/DomainKeys
Yahoo 中文說明:http://tw.promo.yahoo.com/antispam/domainkeys.html
Yahoo 英文說明:http://antispam.yahoo.com/domainkeys

Posted in 標籤: | 0 意見

針對大陸郵件問題 - 各大服務商提供的說明

引用Black-Xstarcnbeta 針對大陸郵件問題各大服務商提供的說明

問題進一步加重 各服務商均告急 大量外貿郵件放發不正常

新浪關於海外郵件通信問題的說明
http://vip.sina.com.cn/loginbefore/news-maintext070717.html

網易關於海外郵件通信問題的說明
http://vip.163.com/vip/notice.html

萬網關於海外郵件通信問題的說明
http://www.net.cn/service/a/zytz/200707/2312.html

新網關於海外郵件通信問題的說明
http://bulletin.xinnet.com/News/200771710226.html

中國頻道關於與海外收發郵件的特殊問題
http://www.china-channel.com/hot_news.asp?ID=737

中資源關於海外郵件通信問題的說明
http://www.zzy.cn/file/07-07-17.htm

35互聯關於與海外收發郵件的特殊問題
http://www.35.com/xinwenzx/xinwenzx_news.asp?ID=516

263關於與海外收發郵件的特殊問題
http://gmail.263.net/news1-0.html

尚易關於與海外收發郵件的特殊問題
http://www.corpease.net/service_12_87.htm

21cn聲明
http://www.5dmail.net/bbs/attachments/month_0707/20070717_4fc8a29fb5cf8a436324ImRGkDTBp7iV.jpg

在郵件技術論壇5DMAIL的有一個介绍的帖子,闡明了原由:
http://www.5dmail.net/bbs/viewthread.php?tid=158276&highlight=gfw

Posted in 標籤: | 0 意見

Email 寄往大陸問題--只好一半

今天早上7點起,寄往大陸端似乎已正常,
終於可以過正常的日子,不然我可要一直想辦法,
讓主機上的Queue信導進大陸端主機。

不過不知是否還會再發生.....希望不....

我的希望果然無法實現,因為只有問題最大宗163.com 126.com 163.net暫時解決,
而其他.com.cn的有些信,下午也再度開始發生Queue信的狀況。

這次不知要多久才能解決。

Posted in 標籤: | 1 意見

Email 寄往大陸問題

Today is not my day.

MailServer主機上queue了一堆寄往大陸失敗的信件:

802 163.com
384 vip.163.com
373 126.com

大陸端主機一堆 defer message:

Remote host mx.mail.163.split.netease.com [220.181.12.74] closed connection in response to initial connection

Remote host mx.mail.163.split.netease.com [220.181.12.68] closed connection in response to MAIL FROM:

Remote host mx.vip.163.com [202.108.5.190] closed connection in response to RCPT TO:

Operation timed out: SMTP timeout while connected to mx.mail.163.split.netease.com [220.181.12.51] after RCPT TO:

Remote host mx.mail.163.split.netease.com [220.181.12.75] closed connection in response to pipelined DATA
Remote host mx.vip.163.com [202.108.5.190] closed connection in response to pipelined DATA

Broken pipe: mx.mail.163.split.netease.com [220.181.12.73]
Broken pipe: mx.vip.163.com [202.108.5.193]

連線上皆正常:
220 163.com Anti-spam GT for Coremail System (163com[20050206])

Anti-spam GT for Coremail System 今天是加了什麼Rule,待解...

Posted in 標籤: | 0 意見

分享Tomcat 安裝教學動畫

Posted in 標籤: | 1 意見

Sender Policy Framework SPF Wizard 設定方法

Sender Policy Framework project
http://www.openspf.org

微軟提供SPF設定精靈
Sender ID Framework SPF Record Wizard
http://www.microsoft.com/mscorp/safety/content/technologies/senderid/wizard/

MS Exchange 2003 SP2 新功能:Sender ID 認證(伺服器端)設定
範例:
http://www.wretch.cc/blog/josephphoto&article_id=4487491

SPF DNS 驗証工具:
http://www.mxtoolbox.com/spf.aspx

Posted in 標籤: | 0 意見

剛收到最新病毒,大家小心囉~

檔案名稱:
看了很多次還想笑1.bat
看了很多次還想笑2.bat

目前多家未提供病毒碼,別中毒囉~!!

Posted in 標籤: | 0 意見

一起響應數位造林

中華電信與您一起響應數位造林,只要你Click響應種樹,中華電信就代你真正種大樹!每達到一萬次,中華電信就支持一所學校成為「珍古德協會」的夥伴,培育更多本土的原生植物。

數位造林用網路多棵樹

活動網頁:http://cht.arcww.com.tw/tree/
串聯網頁:http://tw.promo.yahoo.com/2007marketing/tree/


Posted in 標籤: | 0 意見

Exim system filter sample config

# Exim filter

### Precautions, precautions...

# Drop out if the message is an error message.

if error_message then finish endif

### Assorted spam filtering stuff follows

## My users are trustworthy (because they're me!) - don't check locally sent mail.
if "arkane.demon.co.uk:arkane.net:arkane.co.uk" contains $sender_address_domain then
finish
endif

## Arrange log file
logfile /exim/filterlog

## First, handle the white list
# These are the blessed mail addresses which don't get filtered.
# And always allow postmaster mail through.

if "${lookup {${lc:$sender_address}}dbm{/etc/filters/whitelist} {white} {grey}}" is white or
$header_to: contains "postmaster@" then
finish
endif

## If they've used the magic word, let the mail go through.
if $header_subject: contains "DELETED FOR PUBLIC CONSUMPTION" then
finish
endif

## Then, handle the black list.
# Bounce all mail from these sites or addresses with a nasty message.

if "${lookup {${lc:$sender_address_domain}}dbm{/etc/filters/blacklist} {black} {grey}}" is black or
"${lookup {${lc:$sender_address}}dbm{/etc/filters/blacklist} {black} {grey}}" is black then
fail
finish
endif

## Heuristic spam filtering

# Tell-tale spam headers - X-UIDL, X-PMFLAGS, X-Advertisement

if "${if def:header_x-uidl: {spam}}" is spam then
log "message $message_id from $header_from: to $header_to: failed.\n\
x-uidl header indicates probable spam.\n\
------------------------------------------------------------------------------"
fail
finish
endif

if "${if def:header_x-1: {spam}}" is spam then
log "message $message_id from $header_from: to $header_to: failed.\n\
x-1 header indicates probable spam.\n\
------------------------------------------------------------------------------"
fail
finish
endif

if "${if def:header_x-pmflags: {spam}}" is spam then
log "message $message_id from $header_from: to $header_to: failed.\n\
x-pmflags header indicates probable spam.\n\
------------------------------------------------------------------------------"
fail
finish
endif

if "${if def:header_x-advertisment: {spam}}" is spam then
log "message $message_id from $header_from: to $header_to: failed.\n\
x-advertisement header indicates probable spam.\n\
------------------------------------------------------------------------------"
fail
finish
endif

# Authenticated sender, and not from pegasus

if "$h_comments" contains "authenticated sender" and
"$h_x-mailer" does not contain "pegasus" then
log "message $message_id from $header_from: to $header_to: failed.\n\
authenticated sender (not from pegasus) indicates probable spam.\n\
------------------------------------------------------------------------------"
fail
finish
endif

# Claims to be from hotmail.com
if "$h_from" contains "hotmail.com" and
"${if !def:header_x-originating-ip {nospam}}" is nospam then
log "message $message_id from $header_from: to $header_to: failed.\n\
claimed to be from hotmail, but not verifiable - probable spam.\n\
------------------------------------------------------------------------------"
fail
finish
endif

# claims to be from juno.com

if "$h_from" contains "juno.com" and
"${if def:header_x-mailer {juno} {spam}}" is spam then
log "message $message_id from $header_from: to $header_to: failed.\n\
claimed to be from juno, but not verifiable - probable spam.\n\
------------------------------------------------------------------------------"
fail
finish
endif

# Broken message-IDs

if $header_message-id does not contain "@" then
log "message $message_id from $header_from: to $header_to: failed.\n\
Message-ID does not contain '@' - probable spam.\n\
------------------------------------------------------------------------------"
fail
finish
endif

# Is the host (From||To) numeric?

if "$header_from: $header_to:" contains "@\\\\d+\\." then
log "message $message_id from $header_from: to $header_to: failed.\n\
From: or To: header contains numeric hostname - probable spam.\n\
------------------------------------------------------------------------------"
fail
finish
endif

# Is the local-part numeric and 8 digits?

if $local_part matches "^\\\\d{8}\\$" then
log "message $message_id from $header_from: to $header_to: failed.\n\
Local part is an 8 digit numeric - probable spam.\n\
------------------------------------------------------------------------------"
fail
finish
endif

# Is the To: address contained in the From: address?
if ( $header_from: contains $header_to: )
and ( "${if def:header_to: {present}}" is present ) then
log "message $message_id from $header_from: to $header_to: failed.\n\
From: contains To: which indicates probable spam.\n\
------------------------------------------------------------------------------"
fail
finish
endif

# Is neither a To: nor a Cc: header present?
if ( "${if def:header_to: {present}}" is not present )
and ( "${if def:header_cc: {present}}" is not present ) then
log "message $message_id from $header_from: to $header_to: failed.\n\
Neither To: nor Cc: headers present - probable spam.\n\
------------------------------------------------------------------------------"
fail
finish
endif

# Other funny Received headers?
if $header_received: contains "[000.000.000.000]" then
log "message $message_id from $header_from: to $header_to: failed.\n\
Received: included the invalid IP [000.000.000.000] - probable spam.\n\
------------------------------------------------------------------------------"
fail
finish
endif

if $header_received: contains "-0600 (EST)" then
log "message $message_id from $header_from: to $header_to: failed.\n\
Received: included the dubious time zone setting -0600 (EST) - probable spam.\n\
------------------------------------------------------------------------------"
fail
finish
endif

if $header_received: contains "CLOAKED" then
log "message $message_id from $header_from: to $header_to: failed.\n\
Received: included the string 'CLOAKED' - probable spam.\n\
------------------------------------------------------------------------------"
fail
finish
endif

# Bcc'ed to public addresses?
if ( $header_bcc: contains "-usenet" ) or
( $header_bcc: contains "-sig" ) then
log "message $message_id from $header_from: to $header_to: failed.\n\
Bcc'ed to a public address (-usenet or -sig) - probable spam.\n\
------------------------------------------------------------------------------"
fail
finish
endif

# Bogus To: headers.
if $header_to: contains "Friend@" then
log "message $message_id from $header_from: to $header_to: failed.\n\
To: header included bogus local-part 'Friend' - probable spam.\n\
------------------------------------------------------------------------------"
fail
finish
endif

if $header_to: contains "you@" then
log "message $message_id from $header_from: to $header_to: failed.\n\
To: header included bogus local-part 'you' - probable spam.\n\
------------------------------------------------------------------------------"
fail
finish
endif

### That's it!

Posted in 標籤: | 0 意見

Exim ACL Spam Filters Config

Stopping Spam in the ACL

Exim ACL Spam Filters

This is a mirror of http://vamos-wentworth.org/exim-tricks.html (With a few very minor ammendments)
I have been unable to get to the site since september so I decided to mirror the above URL, It was very useful information for me when I first started out with exim hence my sharing it.

All credit goes to the original author, THIS IS NOT A DOCUMENT WRITTEN BY MYSELF so all rights go to the original author. rossz-work [at] vamos-wentworth [dot] org as well.

These antispam tips are for Exim 4.x. If you don't know how to modify the helo, rcpt, and data ACLs, then these suggestions won't do you much good.

###############################################################################
HELO ACL
###############################################################################

You can block a lot of spammers right after they say HELO. They have a tendency to lie but, fortunately, it's often easy to catch them in their lie.

The first thing a remote system is supposed to do when it connects is to say "HELO domain.com". It is legal to use an ip address with the HELO, but losing acceptance. A spammer might try to HELO with your own ip address. There is absolutely no legitimate reason for someone else to use your ip address here. Plug your own ip address in here where it says ##.##.##.##. Repeat this for each IP address you handle.

deny message = HELO/EHLO with my ip address. You are not me.
log_message = HELO/EHLO my.ip
condition = ${if eq {$sender_helo_name}{##.##.##.##} {yes}{no}}

Basically the same thing as the previous filter, but using your domain name instead of your ip address. You should repeat this filter for each domain you control.

deny message = HELO/EHLO with my domain name. You are not me.
log_message = HELO/EHLO my.domain
condition = ${if match {$sender_helo_name}{your-domain.com} {yes}{no}}

Giving a domain name of 'none' isn't valid, so tell them to bugger off. This filter can be left out since the "period" filter below will catch it.

deny message = No HELO/EHLO name specified.
log_message = HELO/EHLO none
condition = ${if match {$sender_helo_name}{none} {yes}{no}}

A remote system saying they are localhost? Sure they are. This filter can also be omitted if you use the "period" filter below.

deny message = You are not localhost.
log_message = HELO/EHLO localhost
condition = ${if match {$sender_helo_name}{localhost} {yes}{no}}

A proper domain will contain at least one period. A good percentage of spam worms HELO with random characters without a period.

deny message = Invalid HELO/EHLO. You are either spam/a virus, or your system administrator has incorrectly configured your network.
condition = ${if match{$sender_helo_name}{\\.}{no}{yes}}

###############################################################################
RCPT ACL
###############################################################################

Spammers like to forge some big names when they send you email. We can't easily check all of them, not until Sender Permitted From (SPF) is widely used. At least we can check for some of the most commonly abused domains, Yahoo, Hotmail, MSN, and AOL. These four filters will reject email with forged From: addresses containing the "big four" domains.

#Fake Yahoo
deny message = Suspected Faked Yahoo Account, E-mail Rejected.
log_message = Fake Yahoo
senders = *@yahoo.com
condition = ${if match{$sender_host_name}{\Nyahoo.com$\N}{no}{yes}}

#Fake Hotmail
deny message = Suspected Faked Hotmail Account, E-mail Rejected.
log_message = Fake hotmail
senders = *@hotmail.com
condition = ${if match {$sender_host_name}{\Nhotmail.com$\N}{no}{yes}}

#Fake MSN
deny message = Suspected Faked MSN Account, E-mail Rejected.
log_message = Fake MSN
senders = *@msn.com
condition = ${if match {$sender_host_name}{\N(hotmail|msn).com$\N}{no}{yes}}

# Fake AOL
deny message = Suspected Faked AOL Account, E-mail Rejected.
log_message = Fake AOL
senders = *@aol.com
condition = ${if match {$sender_host_name}{\Nmx.aol.com$\N}{no}{yes}}

Of course, using a few good blacklists is a good idea. I put my blacklist checks immediately after the big four filters.

###############################################################################
DATA ACL
###############################################################################
A valid email should have a message id. Spamming software (and viruses) often don't. So refuse them. Note, this filter has been known to break the rare email sent from a highly customized Qmail server. Personally, I dont' care.

deny condition = ${if !def:h_Message-ID: {1}}
message = Message SHOULD have Message-ID: but does not

Email should have a proper date. So goodbye if it doesn't.

deny condition = ${if !def:h_Date: {1}}
message = Message SHOULD have Date: but does not

You'll need the Exiscan patch for the mime handling to work.

Required to do any mime handling, plus, a broken mime attachment might be an attempt to infect or break into your system.

deny message = Serious MIME defect detected ($demime_reason)
log_message = Broken MIME ($mime_reason)
demime = *
condition = ${if >{$demime_errorlevel}{2}{1}{0}}

Refuse dangerous attachments. This gets a large number of viruses. It also catches a lot of spam with hidden surprises.

deny message = $found_extension files are not accepted here
log_message = Dangerous extension ($found_extension)
demime = com:vbs:bat:pif:scr:exe

For Windows clients, Microsoft has included a lovely little surprise. It is possible to attach a file with a CLSID in the name which causes Windows to hide the file extension. This is entirely independent of the "Hide file extensions for known file types" folder option. This is extremely dangerous, so lets just refuse the bastards.

deny message = Hiding of file extensions is not allowed!
log_message = Dangerous extension (CLSID hidden)
regex = ^(?i)Content-Disposition::(.*?)filename=\\s*"+((\{[a-hA-H0-9-]{25,}\})|((.*?)\\s{10,}(.*?)))"+\$

http://vamos-wentworth.org/exim-tricks.html
http://www.carbonstudios.co.uk/site/44/180.html

Posted in 標籤: | 0 意見

Apache 壓力測試

在 apache 本身的套件中, 有個叫 ab(ApacheBench) 的程式.
ApacheBench 主要是用來測試 apache 執行效率.

ab 參數:
Usage: /usr/sbin/ab [options] [http[s]://]hostname[:port]/path
Options are:
-n requests Number of requests to perform
-c concurrency Number of multiple requests to make
-t timelimit Seconds to max. wait for responses
-p postfile File containg data to POST
-T content-type Content-type header for POSTing
-v verbosity How much troubleshooting info to print
-w Print out results in HTML tables
-i Use HEAD instead of GET
-x attributes String to insert as table attributes
-y attributes String to insert as tr attributes
-z attributes String to insert as td or th attributes
-C attribute Add cookie, eg. 'Apache=1234' (repeatable)
-H attribute Add Arbitrary header line, eg. 'Accept-Encoding: zop'
Inserted after all normal header lines. (repeatable)
-A attribute Add Basic WWW Authentication, the attributes
are a colon separated username and password.
-P attribute Add Basic Proxy Authentication, the attributes
are a colon separated username and password.
-X proxy:port Proxyserver and port number to use
-V Print version number and exit
-k Use HTTP KeepAlive feature
-d Do not show percentiles served table.
-S Do not show confidence estimators and warnings.
-g filename Output collected data to gnuplot format file.
-e filename Output CSV file with percentages served
-s Use httpS instead of HTTP (SSL)
-h Display usage information (this message)

ex: 要執行 1000 次的 connection, 20 次的 concurrent (並行, 同時).
語法: ab -n 1000 -c 20 http://localhost/abc.php
產生出來的結果. 主要要注意的是以下幾個.
Time taken for tests: 總共執行花了多久的時間.(以上 1000 次共多久)
Requests per second: 每秒平均可以處理多少個 connection.

源自:http://blog.longwin.com.tw/archives/000513.html

Posted in 標籤: | 0 意見

Php5.idv.tw

Posted in 標籤: | 0 意見

MLB》台灣球員史上第一轟 郭泓志

美國記者問:「他是台灣來的球員,第一個打出全壘打,你知這事嗎?」道奇教練利托回答:「我沒注意到這點,不過這是很漂亮的打擊,事實上很少有投手可以打這麼遠,特別是剛到大聯盟不久的球員。」




Posted in 標籤: | 0 意見

測試SMTPS or POP3S 主機服務正常。

openssl s_client -connect servername:465

smtps 465/tcp #smtp protocol over TLS/SSL (was ssmtp)


openssl s_client -connect servername:995

pop3s 995/tcp spop3 # pop3 protocol over TLS/SSL

Posted in 標籤: , | 0 意見

Openwebmail 錯誤訊息

openwebmail 登入速度變慢
加入排程
/pathto/cgi-bin/openwebmail/openwebmail-tool.pl -q -a -p -i > /dev/null 2>&1
遇到openwebmail錯誤訊息
使用者欲連上openwebmail
出現session 錯誤xxxoooxxx
原因: quota 限制已到
解法:edquota -u user

查看目前連線至本機的ip 及數量(Debian)
netstat -nta | fgrep "ESTABLISHED" | cut -b 43-75 | cut -d ':' -f1 | sort | uniq -c |sort -n -r --key=1,7 | head -25
netstat -nta | fgrep "SYN_RECV" | cut -b 43-75 | cut -d ':' -f1 | sort | uniq -c | sort -n -r --key=1,7 | head -25

Posted in 標籤: | 0 意見

Exim 停用實體帳戶

由於exim 本身configure 並沒辦法定義某些實體帳戶暫時停用後, 也不收到信 這邊依exim-user 提供的方法並測試已成功,備忘紀錄一下
vi /usr/exim/configure

於begin routers 加入

block_expired_accounts:
driver = redirect
domains = +local_domains
local_parts = /usr/exim/blocked/accounts
data = :fail: account closed
allow_fail

echo id > /usr/exim/blocked/accounts

chown exim /usr/exim/blocked/accounts

/etc/init.d/exim restart

Posted in 標籤: | 0 意見

Exim 安裝並使用Sasl

wget exim-xxx.tgz
tar -zxvf exim-xxx.tgz
cd exim-xxxx
cp src/EDITME Local/Makefile
vi Local/Makefile
需修改的地方
EXIM_USER=exim (如果要使用exim 此user執行,記得先新增)
#EXIM_MONITOR=eximon.bin
AUTH_CRAM_MD5=yes
AUTH_CYRUS_SASL=yes
AUTH_PLAINTEXT=yes
AUTH_LIBS=-lsasl2
SUPPORT_TLS=yes
TLS_LIBS=-lssl -lcrypto
TLS_LIBS=-L/usr/local/openssl/lib -lssl -lcrypto
TLS_INCLUDE=-I/usr/local/openssl/include/
CYRUS_PWCHECK_SOCKET=/var/pwcheck/pwcheck
CYRUS_SASLAUTHD_SOCKET=/var/run/saslauthd/mux
以上是支援sasl認證需unmark 的部份 預設是mark的
LOG_FILE_PATH=/var/log/exim_%slog
wq
useradd -s /sbin/nologin exim
touch /var/log/exim_mainlog
^mainlog^paniclog
^paniclog^rejectlog
chown exim:exim /var/log/exim_*
make
make install
vi /usr/exim/configure
primary_hostname = yourdomain
hostlist relay_from_hosts = allow relay ip/submask
#host_lookup = *
begin authenticators 區段加入

plain:
driver = plaintext
public_name = PLAIN
server_condition = ${if saslauthd{{$2}{$3}}{1}{0}}

login:
driver = plaintext
public_name = LOGIN
server_prompts = "Username:: : Password::"
server_condition = ${if saslauthd{{$1}{$2}}{1}{0}}

/usr/exim/bin/exim –bd –q 15m 啟動exim

Posted in 標籤: | 0 意見

Exim 常用參數 指令

/usr/exim/bin/ (以我安裝路徑為例)
-M 強迫傳送
-Mar 增加接收者
-Meb 修改信件內容
-Mes 修改傳送者
-Mf 凍結
-Mmad 標記所有queue 的信件為已傳送
-Mmd 標記為已傳送
-Mt 解除凍結

移除queue
/usr/exim/bin/exim -Mrm 移除spool內信件但不會出現回應訊息
-Mg 移除並回應訊息

檢查信件
/usr/exim/bin/exim -Mvb 檢查body
/usr/exim/bin/exim -Mvl 檢查log
/usr/exim/ibn/exim -Mvh 檢查header

檢閱參數

/usr/exim/bin/exim -bv 確認exim binary 可使用且成功讀取configure
/usr/exim/bin/exim -bP 所有exim設定的參數值 (配合grep找出需要檢查的地方)
/usr/exim/bin/exim -bp 所有在queue 內的信件
/usr/exim/bin/exim -brt 查詢針對某些網域的重試規則

原廠資料:http://www.exim.org/exim-html-current/doc/html/spec_html/ch05.html

Posted in 標籤: | 0 意見

Apache 預防 Denial of Service module

Denial of Service
Filed under: 電腦 — Chris at 7:56 pm on Sunday, February 27, 2005

Denial of Service 或者可以稱為 “阻絕服務攻擊”。
這個名稱您也經常聽見,在很多地方都發生。
其實 Denial of Service 所傳送的請求和正常的是一樣,只是每分鐘傳送數以十計以上請求傳送至伺服器中。
令伺服器每秒處理十分大量的工作。
受到這一種攻擊,輕則只有伺服器暫時停止服務。重則張會把伺服器中的硬件破壞。
有不少例子都是由於伺服器在同一時間處理十分大量的工作後,CPU 最後壞了。

最近我的其中一個網站受到這些不明來歷的 Denial of Service 攻擊,令伺服器停了。
不過搜尋了不少網站,終於找到了一個方法。不過不知道是否可行的。
我所使用的是 mod_dosevasive。雖然是第一次用,不過是否真的能夠防止就必須等到下一次受到攻擊使知道。

mod_dosevasive 的使用方法:

1. 首次下載 mod_dosevasive 1.1 版本。
2. 然後解壓 mod_dosevasive_1.10.tar.gz
tar zxvf mod_dosevasive_1.10.tar.gz
3. 把您的 httpd.conf 備份
4. 開始安裝 mod_dosevasive

Apache 1.3.x:
cd mod_dosevasive
apxs -cia mod_dosevasive.c

Apache 2.0.x:
cd mod_dosevasive
apxs -cia mod_dosevasive20.c
5. 修改您的 httpd.conf 加入

Apache 1.3.x:

DOSHashTableSize 3097
DOSPageCount 5
DOSSiteCount 100
DOSPageInterval 2
DOSSiteInterval 2
DOSBlockingPeriod 600


Apache 2.0.x:

DOSHashTableSize 3097
DOSPageCount 5
DOSSiteCount 100
DOSPageInterval 2
DOSSiteInterval 2
DOSBlockingPeriod 10
DOSBlockingPeriod 600


這樣使完成。httpd.conf 當中的設定方面解釋:

* DOSHashTableSize
這是佔中您記憶體的大少。當數目越大處理越快,當您的伺服器是很多人流的,您必須加大這個數字。
* DOSPageCount
同一頁同一人時能夠在同一個時區中請求幾多次,多於會禁止。時區可以在 DOSPageInterval 中設定。
* DOSSiteCount
同一個網站同一人在伺服器中所佔有幾多個 Object,多於會禁止。時區可以在 DOSSiteInterval 中設定。
* DOSPageInterval
DOSPageCount 中所計算的每一個時區時間,以無秒計算。預設是 1 秒。

>
* DOSSiteInterval
DOSSiteCount 中所計算的每一個時區時間,以無秒計算。預設是 1 秒。
* DOSBlockingPeriod
當發現後暫停多久?預設是 10 秒。當發現後,他會接收到 403 (Forbidden) 的。
* DOSEmailNotify
設定接收攻擊信息的電郵地址。
DOSEmailNotify you@yourdomain.com
* DOSSystemCommand
這是收到攻擊信息時所使用的指令。
DOSSystemCommand ”su - someuser -c \’/sbin/… %s …\’”
* DOSLogDir
記錄檔案設定。
DOSLogDir ”/var/lock/mod_dosevasive”

希望這文件能夠幫助到受到 Denial of Service 的人仕。

Posted in 標籤: | 0 意見

Exim 設置 SmartHost Config

Exim 設置smart host

透過exim configure router sector 設置smarthost

於configure 內 begin router 區段加入

smart_msa:
condition = {${lookup{$domain} lsearch{/usr/exim/smarthost_multiple} {$value} fail}}

driver = manualroute
domains = !+local_domains
transport = remote_smtp
route_list = "* ms25.hinet.net" #hinet提供的mx
no_more

設置/usr/exim/configure 加入符合條件就使用上層isp 提供的smtp server 幫忙寄送

smart_sonet:
condition = ${if match {${lc:$domain}} {yahoo.com.tw} {true} fail}
by 寄出的目的地
#condition = {${lookup{$domain} lsearch{/usr/exim/smarthost_multiple} {$value} fail}}
by 檔案
# condition = ${if match {${lc:$sender_address}} {usnei@oio.idv.tw} {true} fail}
by 寄信的本機使用者
driver = manualroute
domains = !+local_domains
transport = remote_smtp
route_list = * so-net.net.tw #sonet 提供的mx

smart_directly:
condition = ${if match {${lc:$domain}} {yahoo.com.tw} {true} fail}
driver = manualroute
domains = !+local_domains
transport = remote_smtp
route_list = * seed.net.tw #seednet 提供的mx

引用:funnyd.idv.tw

Posted in 標籤: | 0 意見

Evotalk

好站~

Posted in 標籤: | 0 意見

grep的用法

語法 : grep [options] pattern 檔案

[options] 說明
-n 附帶列號
-i 不區分大小寫
-v 和pattern相反
-l 印出含有pattern之檔名
-c 只印出列號
-w 符合整個word,非部分符合
-r 遞迴遍歷目錄
-2 找到pattern那一列,並印出前後兩列,包含自已
-A 2 找到pattern那一列,並印出後兩列,包含自已
-B 2 找到pattern那一列,並印出前兩列,包含自已
-e 視pattern裡的所有character為一般的character
-x 除非pattern 符合 entire line , 否則不列印出來
-f 把patten放到檔案中

Posted in 標籤: | 0 意見

Lotus Notes Blank Message Id

Lotus Notes Mail to Cyrus problem

問題:

cyrus installed on the mailsystem. Have the Problem to received blank message-id. The error messages is:
LMTP error after end of data: 554 5.6.0 Message contains invalid header

In the mail header have a blank message-id.

.....
To: xxx@xxxxxx
Cc:
X-Mailer: Lotus Notes Release 5.0.10 March 22, 2002
From: cdcdcd@xxxxxxxx
Date: 25-Aug-2005 10:05:50 CEDT
Message-ID:
X-MIMETrack: Serialize by ....

That's because the Message-ID: header is blank (rfc2822 not withstanding), and so when exim attempts to deliver this to cyrus, cyrus rejects it with "554 5.6.0 Message contains invalid header".

解決方法:

1.開啟Notes Client 後右下角有【編輯目前配置】

2.找到郵件頁簽,最後一個選項【傳送至Internet 地址的訊息格式】,預設是【Notes Rich Text 格式】,會造成Message-ID 欄空白

3.將該欄位改成【MIME 格式】後,存檔重開Notes Client 即可。寄出去的信件就會有完整的Message-ID

Posted in 標籤: |

BlackBerry Gmail使用說明

BlackBerry Gmail使用說明

設定您的電子郵件用戶端:BlackBerry Internet Service ™

1. 登入您的 BlackBerry Internet Service 帳戶。
2. 按一下 [Home Page] (首頁) 上方的 [Profile] (設定檔)。
3. 在您設定檔的 [Email Accounts] (電子郵件帳戶) 區段中按一下 [other email accounts] (其他電子郵件帳戶)。
4. 按一下 [Add Account] (新增帳戶)。
5. 輸入您的 Gmail 帳戶資訊。
* Email Address (電子郵件地址):輸入您的完整 Gmail 電子郵件地址 (包括「@gmail.com」)。
* User Name (使用者名稱):輸入您的 Gmail 使用者名稱 (包括「@gmail.com」)。
* Password (密碼):輸入您的 Gmail 密碼。
* Re-enter password (重新輸入密碼):重新輸入您的 Gmail 密碼。

6. 按一下 [Submit] (送出)。

如果您的 BlackBerry 帳戶已成功完成設定,您會看到 BlackBerry [Email Accounts] (電子郵件帳戶) 網頁。這樣就大功告成了!

來自:BlackBerry Gmail使用說明

Posted in 標籤: | 0 意見

Exchange2003 拒絕接收非AD目錄下的User

如何設定收件者篩選,設定方法:

如果要建立收件者篩選器,請依照下列步驟執行:
1、啟動 [Exchange 系統管理員]。
2、展開 [通用設定],用滑鼠右鍵按一下 [郵件傳遞],再按一下 [內容]。
3按一下 [收件者篩選] 索引標籤。
4、如果要根據特定電子郵件地址篩選電子郵件,請按一下 [新增],輸入電子郵件地址,再按一下 [確定]。
5、如果要篩選掉傳到不存在您組織內的電子郵件地址的郵件,請按一下以選取 [篩選不在目錄中的收件者] 核取方塊。

可參考以下原廠連結:
http://support.microsoft.com/kb/823866/zh-tw

Posted in 標籤: | 0 意見

Vista use PPPoE

今天有使用者詢問如何使用,研究了一下,如下:

控制台 => 網路和共用中心 => 設定連線或網路 => 連線到網際網路 => 寬頻(PPPoE) => 輸入user & passwd & 連線名稱 => 連線

Posted in 標籤: | 0 意見

Do you add I'm in MSN Messager

台灣微軟MSN部門行銷經理鍾婉珍表示,這是一個在美國推出的公益捐助計畫,在Windows Live Messenger 8.1版(8.1版本前均不支援)暱稱上輸入一串「特定碼」,MSN暱稱除了出現「I'm」符號之外,微軟將按照訊息量,拆分一定比例的廣告營收捐贈給代碼所表示的慈善機構,在第一年每個機構的捐款下限是十萬美元,聊越多微軟也將捐贈的越多,由於這個計畫是在美國實行,捐贈的對象將是美國慈善團體,而且限定對話的雙方必須有一方是在美國網站註冊的用戶。

目前受贈機構包括American Red Cross(美國紅十字會,特定碼*red+u)、Boys & Girls Club(兒童群益會,特定碼*bgca)、National AIDS Fund(美國國家愛滋基金,特定碼*naf)、National Multiple Sclerosis Society(國家多發性硬化症學會,特定碼*mssoc)、ninemillion.org(國際兒童難民援助組織,特定碼*9mil)、Sierra Club 山巒協會(保護自然生態的地球環境協會,特定碼*sierra)、StopGlobalWarming.org(防止全球溫室效應惡化的機構,特定碼*help) 、Susan G. Komen for the Cure(乳癌基金會,特定碼*komen) 、The US fund for UNICEF(美國地區聯合國兒童基金會,特定碼*unicef)、World Wildlife Fund for Nature(世界自然基金會,特定碼*wwf)、 The Oxford Committee for Famine Relief (樂施會;協助解決當時世界各地饑荒及貧窮問題,特定碼*oxfam)、國際關懷協會(特定碼*care)、The Humane Society of the United States(美國人道協會,特定碼*hsus)、American Cancer Society(美國癌症協會,特定碼*acs)、ONE Campaign-(全球消除貧困與對抗愛滋的組織(GCAP),特定碼*one)

鍾婉珍說,這個計畫在美國3月1日正式實施,未來將視成果來決定是否推行到其他地區,所以,如果效果不錯,將有可能把這個捐贈計畫移植到台灣。

相關說明:http://im.live.com/Messenger/IM/Home/

文章引用:news.yam.com

Posted in 標籤: | 0 意見

日本天氣預報

從易遊網上看到的,日本天氣預報網站,去日本前可以參考一下。

日本天氣預報網站

Posted in 標籤: | 0 意見

Vista use telnet

Vista 預設沒有載入 telnet 程式﹐若要於 Vista上使用telnet 指令,
必須在:控制台 => 程式和功能 => 開啟與關閉windows程式 => 將telnet client勾選 => 確認即可。

Posted in 標籤: | 0 意見

喜鴻-不錯的日本旅遊資訊

Posted in 標籤: | 0 意見

MessageLabs Intelligence: January 2007「Phishing Attacks Overtake Viruses」

郵件安全服務商♪MessageLabs♪ 發表2007年1月報告:
電子郵件中,網路釣魚攻擊首度超越病毒與特洛伊木馬攻擊的威脅。

每93.3封信中,就有一封是網路釣魚的攻擊
每119.9封信中,就有一封是病毒的攻擊

Top line results of this report include:
Spam - 75.8% in January (an increase of 1.5% since December)
Viruses - One in 119.9 emails in January contained malware (an increase of 0.08% since December)
Phishing - One in 93.3 emails comprised a phishing attack (an increase of 0.55% since December)

原廠報告:download
Taiwan CNET 中文說明
資料取自:MessageLabs

Posted in 標籤: | 0 意見