廣告

2025 年 11 月
 12
3456789
10111213141516
17181920212223
24252627282930

彙整

SamSung(三爽) i9000配中華電信優惠密辛

最近看中了三爽 i9000,朋友對於泡菜很感冒,對我說不要買韓國貨,但是人家產品設計很成功,堪稱現在的Android機王一點也不為過………對於科技產品我是沒啥民族意識,只道東西好用否?

我的門號是中華電信,但是中華電信並沒有與 三爽 i9000 有綁約活動,那坊間為何通訊行卻可以做綁約的活動,原來是用iPhone綁約的活動,幫你申請iPhone 4,然後再用i9000跟你換iPhone4,iPhone 4 16g空機價約26000,但i9000 8G約19000,這中間價差就是通訊行願意做的原因………………

有些人想說自己辦 iPhone 4 然後賣掉再買空機 i9000,不過前題是也要賣的出去…

好大的Iphone!

好大的Iphone!

http://mag.udn.com/mag/digital/storypage.jsp?f_MAIN_ID=319&f_SUB_ID=2940&f_ART_ID=281563

使用Mailscanner 的 Archive Mail 備份郵件

最近MAIL常出現主旨為 : Problem Messages

內容為:

Archive:
Number of messages: 5
Tries Message Last Tried
===== ======= ==========
6 3553C24D80D2.A0925 Sat Oct 30 04:57:38 2010
6 10ED024D80EC.AC79E Sat Oct 30 04:56:25 2010
6 2FF5D24D80D7.AD62C Sat Oct 30 04:53:05 2010
6 DC7FD24D80BD.AC95D Sat Oct 30 04:43:07 2010
6 73A4D24D80C2.A16DF Sat Oct 30 04:42:41 2010

找著找著找到了Mailscanner 的 Archive 用法

文章出處:http://i-yow.blogspot.com/2009/07/archive-mailby-mailscanner.html

=====================================================

邪惡的Archive Mail備份郵件(By MailScanner)
MailScanner有一個邪惡又好用的功能:『Archive Mail』
這個比Forward還要厲害的功能,當你想要存留(備份)用戶收、發的信件時,用這就就對了~

1.啟動Archive功能
vim /etc/MailScanner/MailScanner.conf
Archive Mail = /etc/MailScanner/archive.rule

2.編輯Archive規則
vim /etc/MailScanner/archive.rule
基本規則如下:
FromOrTo: User@mail.com* yes forward Admin@mail.com.tw
(收件者或寄件者) (關鍵字,可配合萬用字元) (yes,啟用規則) (forward,動作) (Forward的目標)

※Archive Mail不但可以過濾到本機網域的帳號,也可以以外部帳號作為關鍵字,只要有經過MailScanner掃描的都可以做處理。
※以上只是簡單的例子,Archive Mail還有許多變化跟應用

======================================================

Windows系統日誌管理

今日公司有台SERVER被入侵,修改了帳號密碼,應該也有植入木馬程式………還好前陣子把環境移植到 VM ESXi Server環境,對系統做了備份,故今日很快的恢復系統運作,但對於被入侵的Server,看不出端倪,因為系統日誌檔被刪除了,但對外防火牆的記錄看不出有任何對該台Server異常連線的記錄,故有點擔心是由內部引起的………

已請管理的同事對該台Server做了一些安全上的設定:
1.找時間關閉Guest,要連線請都使用帳號密碼連線(無AD就將使用者本機帳號密碼也建立一份在SERVER上),分享目錄請把Everyone權限拿掉,改特定帳號密碼。
2.關閉奇怪的帳號 kurt$ , 這帳號既然有本機Admin權限。怎麼來的也不清楚,只知道是廠商裝完系統後出現的帳號。

找了一下怎麼備份日誌檔,雖然並不能百分百記錄到駭客入侵前所有記錄,但多一份備份就多一份機會找出問題點,當然希望以後是用不到才是。

=======================================

文章出處:http://forum.slime.com.tw/thread65618.html

日誌對於系統安全的作用是顯而易見的,無論是網路管理員還是黑客都非常重視日誌,一個有經驗的管理員往往能夠迅速通過日誌瞭解到系統的安全效能,而一個聰明的黑客往往會在入侵成功 後迅速清除掉對自己不利的日誌。下面我們就來討論一下日誌的安全和新增問題。
一:概述:
Windows 2000的系統日誌文件有應用程式日誌,安全日誌、系統日誌、DNS伺服器日誌等等,應用程式日誌、安全日誌、系統日誌、DNS日誌預設位置:%systemroot%\system32\config,預設文件大小512KB。
安全日誌文件:%systemroot%\system32\config\SecEvent.EVT
系統日誌文件:%systemroot%\system32\config\SysEvent.EVT
應用程式日誌文件:%systemroot%\system32\config\AppEvent.EVT
這些LOG文件在註冊表中的:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Eventlog有的管理員很可能將這些日誌重定位。其中EVENTLOG下面有很多的子表,裡面可查到以上日誌的定位目錄。
二:作為網路管理員:
1.日誌的安全配置:
預設的條件下,日誌的大小為512KB大小,如果超出則會報錯,並且不會再記錄任何日誌。所以首要工作是更改預設大小,具體方法:註冊表中HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Eventlog對應的每個日誌如系統,安全,應用程式等均有一個maxsize子鍵,修改即可。
下面給出一個來自微軟站點的一個指令碼,利用VMI來設定日誌最大25MB,並允許日誌自行覆蓋14天前的日誌:
該指令碼利用的是WMI對像, WMI(Windows Management Instrumentation)技術是微軟提供的Windows下的系統系統管理工具。通過該工具可以在本機或者管理客戶端系統中幾乎一切的信息。很多專業的網路系統管理工具都是關於WMI開發的。該工具在Win2000以及WinNT下是標準工具,在Win9X下是擴展安裝選項。所以以下的程式碼在2000以上均可執行成功。
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate,(Security)}!\\" & _
strComputer & "\root\cimv2") \’獲得VMI對像
Set colLogFiles = objWMIService.ExecQuery _
("Select * from Win32_NTEventLogFile")
For each objLogfile in colLogFiles
strLogFileName = objLogfile.Name
Set wmiSWbemObject = GetObject _
("winmgmts:{impersonationLevel=Impersonate}!\\.\root\cimv2:" _
& "Win32_NTEventlogFile.Name=\’" & strLogFileName & "\’")
wmiSWbemObject.MaxFileSize = 2500000000
wmiSWbemObject.OverwriteOutdated = 14
wmiSWbemObject.Put_
Next
將上述指令碼用記事本儲存碟為vbs為後面的即可使用。
另外需要說明的是程式碼中的strComputer="."在Windows指令碼中的含義相當於localhost,如果要在遠端主機上執行程式碼,只需要把"."改動為主機名,當然首先得擁有對方主機的管理員權限並建立IPC連接.本文中的程式碼所出現的strComputer均可作如此改動。
2. 日誌的查詢與制作備份:
一個優秀的管理員是應該養成制作備份日誌的習慣,如果有條件的話還應該把日誌轉存到制作備份電腦上或直接轉儲到列印機上,在這裡推薦微軟的resourceKit工具箱中的dumpel.exe,他的常用方法:
dumpel -f filename -s \\server -l log
-f filename 輸出日誌的位置和檔案名
-s \\server 輸出遠端電腦日誌
-l log log 可選的為system,security,application,可能還有別的如DNS等.
如要把目標伺服器server上的系統日誌轉存為backupsystem.log可以用以下格式:
dumpel \\server -l system -f backupsystem.log
再利用計劃工作可以實現定期制作備份系統日誌。
另外利用指令碼編程的VMI對象也可以輕而易舉的實現日誌制作備份:
下面給出制作備份application日誌的程式碼:
backuplog.vbs
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate,(Backup)}!\\" & _
strComputer & "\root\cimv2") \’獲得 VMI對像
Set colLogFiles = objWMIService.ExecQuery _
("Select * from Win32_NTEventLogFile where LogFileName=\’Application\’") \’獲取日誌對像中的應用程式日誌
For Each objLogfile in colLogFiles
errBackupLog = objLogFile.BackupEventLog("f:\application.evt") \’將日誌制作備份為f:\application.evt
If errBackupLog <> 0 Then
Wscript.Echo "The Application event log could not be backed up."
else Wscript.Echo "success backup log"
End If
Next
程序說明:如果制作備份成功將視窗提示:"success backup log" 否則提示:"The Application event log could not be backed up",此處制作備份的日誌為application 制作備份位置為f:\application.evt,可以自行修改,此處制作備份的格式為evt的原始格式,用記事本開啟則為亂碼,這一點他不如dumpel用得方便。
三:作為黑客
1、日至清除
一個入侵系統成功後的黑客第一件事便是清除日誌,如果以圖形界面遠端控制對方機器或是從終端登入進入,刪除日誌不是一件困難的事,由於日誌雖然也是作為一種服務執行,但不同於http,ftp這樣的服務,可以在指令行下先停止,再刪除,在m指令行下用net stop eventlog是不能停止的,所以有人認為在指令行下刪除日誌是很困難的,實際上不是這樣,下面介紹幾種方法:
(1)借助第三方工具:如小榕的elsave.exe遠端清除system,applicaton,security的軟體,使用方法很簡單,首先利用獲得的管理員帳號與對方建立ipc會話,net use \\ip pass /user: user
然後指令行下:elsave -s \\ip -l application -C,這樣就刪除了安全日誌。
其實利用這個軟體還可以進行制作備份日誌,只要加一個參數 -f filename就可以了,在此不再詳述。
(2)利用指令碼編程中的VMI,也可以實現刪除日誌,首先獲得object對象,然後利用其clearEventLog()方法刪除日誌。來源碼:
cleanevent.vbs
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate,(Backup)}!\\" & _
strComputer & "\root\cimv2")
dim mylogs(3)
mylogs(1)="application"
mylogs(2)="system"
mylogs(3)="security"
for Each logs in mylogs
Set colLogFiles = objWMIService.ExecQuery _
("Select * from Win32_NTEventLogFile where LogFileName=\’"&logs&"\’")
For Each objLogfile in colLogFiles
objLogFile.ClearEventLog()
Next
next
在上面的程式碼中,建立一個陣列,為application,security,system如果還有其他日誌也可以加入陣列。
然後用一個for 循環,刪除陣列中的每一個元素,即各個日誌.
2、新增日誌:
刪除日誌後,任何一個有頭腦的管理員面對空空的日誌,馬上就會反應過來被入侵了,所以一個聰明的黑客的學會如何偽造日誌:
(1)利用指令碼編程中的eventlog方法是創造日誌變得非常簡單;下面看一個程式碼
createlog.vbs
set ws=wscript.createobject("Wscript.shell")
ws.logevent 0 ,"write log success" \’新增一個成功執行日誌
這個程式碼很容易閱讀,首先獲得wscript的一個shell對象,然後利用shell對象的logevent方法
logevent的用法:logevent eventtype,"description" [,remote system]
eventtype 為日誌類型,可以使用的如下:0 代表成功執行;1 執行出錯;2 警告;4 信息;8 成功審計;16 故障審計
所以上面程式碼中,把0改為1,2,4,8,16均可,引號下的為日誌描述。
這種方法寫的日誌有一個缺點,只能寫到應用程式日誌,而且日至來源只能為wsh,即Windows scripting host,所以不能起太多的隱蔽作用。
(2)微軟為了方便系統管理員和程序員,在xp下有個新的指令行工具,eventcreate.exe,利用它,新增日誌更加簡單。
eventcreate -s server -l logname -u username -p password -so source -t eventtype -id id -d description
含義:-s 為遠端主機新增日誌: -u 遠端主機的用戶名 -p 遠端主機的用戶密碼
-l 日誌;可以新增system和application 不能新增security日誌,
-so 日誌來源,可以是任何日誌 -t 日誌類型 如information信息,error錯誤,warning 警告,
-d 日誌描述,可以是任意語句 -id 自主日誌為1-1000之內
例如,我們要本機新增一個系統日誌,日至來源為admin,日誌類型是警告,描述為"this is a test",事件ID為500
可以用如下參數
eventcreate -l system -so administrator -t warning -d "this is a test" -id 500
這個工具不能新增安全日誌。至於如何新增安全日誌,希望大家能夠找到一個好方法!

=================================================================

另一篇使用Script自動備份維護LOG檔

文章出處:http://jiemelody.blog.51cto.com/405459/331906

前言:
在管理windows平台的服務器時,常常在系統發生問題或是服務器上運行的服務發生異常時,我們第一個一定是先打開"事件檢查器" 來查看Eventlog,查看是不是有異常的訊息產生,但是windows的log產生默認下是不會以日期來自動備份的,往往要找一個問題都要在一堆 log裡翻呀找呀,好不方便,如果能夠每天在午夜12點59分整以全文字檔備份每天的eventlog,那我們就可以在問題發生時,把我們要查找的 eventlog以照日期調閱出來,方便又快速~以下小弟我就寫了一個很小但又方便的dos scripts提供給大家參考囉!
一.實作:
首先scripts的組成有以下三個檔案
1.Dump_eventlog.cmd  –>這支Scripts是把eventlog Dump出來共以全文字檔 txt來存檔
2.dumpel.exe –>這是一支工具程式,因為如果用windows內建的匯出eventlog功能,匯出來的後綴檔名是.evt,以文字編程工具打開來會是亂碼,一定要用windows的事件檢查器打來看才行,那就太煩人了,所以我們用這支程式加上上一支 scripts就可以匯出後綴檔名為.txt的log檔,要查看就方便多了!
3.del_eventlog.vbs –>這支是用wsh編程編寫的scripts,功用是清空系統的eventlog記錄,有人要問了,我們不是要備份log嗎為什麼需要這支來刪除呀!
還記得剛才說的嗎?我們是要備份每天的系統Log檔,所以用排程排定在每天的午夜12:59備份系統Log後,就利用這支scripts清空系統裡舊的 log,那樣我們每天備份的eventlog就會是完完整整的一整天,而不是好幾天混雜在一起的log備份!
二.代碼說明
接下來我就要解說代源的寫法囉
1.Dump_eventlog.cmd 
———————————- 源代碼 ————————————————————
@echo Off
mkdir %DATE:~0,4%-%DATE:~5,2%-%DATE:~8,2%
@echo ******* start Backup Eventlog ******
dumpel -s 127.0.0.1 -l system -f %DATE:~0,4%-%DATE:~5,2%-%DATE:~8,2%/system.log
dumpel -s 127.0.0.1 -l application -f %DATE:~0,4%-%DATE:~5,2%-%DATE:~8,2%/application.log
dumpel -s 127.0.0.1 -l security -f %DATE:~0,4%-%DATE:~5,2%-%DATE:~8,2%/security.log
@echo ******* Finish Backup Eventlog ******
star /min del_eventlog.vbs
———————————————————————————————————
說明:
代碼不含上下二條虛線喔!第二行是我們要建立一個以日期為名稱的資料夾
因為windows的date抓取的日期變數會是2005/02/23 星期三"這樣的文字,其內的斜線(/)或減號(-)都是用做命令列的選項符號,這樣的組合可能會造成錯誤。
在此最簡單的方法便是用環境變數的擴充功能了,用%DATE:~0,4%-%DATE:~5,2%-%DATE:~8,2%,我們就可以抓取以 2006-10-20這種格式的日期,4~6行則是利用dumpel 這支程式把 security 、application 、system 三項log記錄匯出來以txt檔備份到以當天日期命名的資料夾裡,ip我是用本機,請依照自己的需要改成你自己主機的ip,star /min del_eventlog.vbs這行則是在備份完之後清空系統的log記錄,原因,前面我們己經說過了!把上面的源碼copy並存成.bat或.cmd 的檔名就可以了!
2.del_eventlog.vbs
————————————-源代碼 ———————————————————–
‘刪除Evenlog
strComputer= "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate,(Backup)}!\\" & _
strComputer & "\root\cimv2")
dim mylogs(3)
mylogs(1)="application"
mylogs(2)="system"
mylogs(3)="security"
for Each logs in mylogs
Set colLogFiles=objWMIService.ExecQuery _
("Select * from Win32_NTEventLogFile where LogFileName=’"&logs&"’")
For Each objLogfile in colLogFiles
objLogFile.ClearEventLog()
Next
Next
———————————————————————————————————
說明:
代碼不包含上下二條虛線喔!這支是清空系統eventlog的wsh編程 scripts,這裡就不多做介紹了,有興趣可以到微軟的腳本範例網站看看,上面有對wsh的做很多的介紹也有範例檔可下來研究!
http://www.microsoft.com/china/technet/community/scriptcenter/default.mspx
以上三支scripts我有提供我寫好的碼代碼在附件裡,大家可以玩看看,歡迎修改,
eventlog的備份也許有些人覺得沒什麼重要,但以筆者我,在管理大量主機時,尤其我又是管理線上遊戲服務器,對於系統異常狀況的掌控就是非常重要的了~

Large Mailbox threshold 40MB之Syslog警訊

發現Syslog只要信箱超過40MB都會出現警訊:

Large Mailbox threshold: 40MB (41943040 bytes)
  Warning: Large mailbox: teresa.wu (1151343331)
  Warning: Large mailbox: karen.wang (489717393)

GOOGLE了一下知道怎麼改這個設定:

在 [root@mail ~]# vi /usr/share/logwatch/default.conf/services/sendmail-largeboxes.conf中 <==CentOS 5.5內位置有變動

  # Mailbox size threshold

# can add units KB, MB, GB, TB

# can set to 0 to report spool files being created where they shouldn't

sendmail_largeboxes_size = 40MB

# 改為希望的大小就可以了。

 

文章出處:http://linuxdiary.blogspot.com/2008/10/logwatch.html

Winmail.dat -TNEF格式文件

今天看mail server log看到這樣的訊息:

Message C187524D806E.A9FB1 has had TNEF winmail.dat removed : 1 Time(s)

再查MAILLOG看到:

Oct 27 12:14:35 mail MailScanner[28827]: New Batch: Scanning 1 messages, 50620 bytes
Oct 27 12:14:35 mail MailScanner[28827]: Expanding TNEF archive at /var/spool/MailScanner/incoming/28827/C187524D806E.A9FB1/winmail.dat
Oct 27 12:14:35 mail MailScanner[28827]: Message C187524D806E.A9FB1 has had TNEF winmail.dat removed
Oct 27 12:14:35 mail MailScanner[28827]: Virus and Content Scanning: Starting
Oct 27 12:14:36 mail MailScanner[28827]: Requeue: C187524D806E.A9FB1 to 5610124D80C9

然後GOOGLE一下:TNEF找到下面文章,文章出處:http://translate.google.com.tw/translate?hl=zh-TW&sl=zh-CN&u=http://moment.blog.51cto.com/1125796/330328&ei=HNfITMaCLIGivQPW7tiVCQ&sa=X&oi=translate&ct=result&resnum=9&ved=0CFUQ7gEwCA&prev=/search%3Fq%3DTNEF%26hl%3Dzh-TW%26sa%3DG%26biw%3D1280%26bih%3D905

Winmail.dat -TNEF格式文件

今天看到有個同事收到的郵件,裡邊有個奇怪的附件Winmail.dat不知道怎麼打開,信裡也沒別的有效內容了,沒辦法,只好動用法寶先用記事本強制打開發現含有IPM. Microsoft Mail.Note之類的信息。 再動用google才了解到,原來這是微軟的Email傳輸不確定封裝格式,直接用MS Office Outlook收取才能打開,如果用其它終端收取再用MS Office Outlook 也無法識別打開。 後來在網上找到了好幾個開這種附件的軟件,發現這個Winmail Opener最好用。 放在這裡,方便大家,下載地址: http://www.eolsoft.com/download/winmail_opener.exe

順便介紹一下相關知識:
TNEF
Exchange Server 2003 使用傳輸不確定封裝格式(TNEF) 將MAPI 郵件轉換為RFC 822 格式。 TNEF 以application/ms-tnef 類型的MIME 附件的形式出現在郵件中。 該附件的名稱為Winmail.dat。 它包含完整的郵件內容以及所有附加文件。 只有MAPI 客戶端(如Outlook)能夠對Winmail.dat 附件進行解碼。 非MAPI 客戶端無法對TNEF 進行解碼,並且可能將Winmail.dat 顯示為典型但無用的文件。
Note :
在以下幾種可能的Exchange 對Exchange 傳輸情形下,必須進行MAPI 到RFC 822 的轉換:
收件人在同一路由組中的Exchange 服務器上Exchange Server 2003 將MAPI 郵件轉換為Summary-TNEF (S/TNEF) 格式,這是一種特殊的傳輸不確定封裝格式(TNEF),沒有純文本部分,並且以八位的二進制格式傳送。 S/TNEF 郵件僅僅包含Winmail.dat。 Note :
收件人在另一個路由組中的Exchange 服務器上,並且Exchange 組織在純模式下工作Exchange Server 2003 將MAPI 郵件轉換為Summary-TNEF (S/TNEF) 格式,因為純模式下的Exchange 組織只能包含支持二進制MIME 的Exchange 2000 Server 服務器和Exchange Server 2003 服務器。
收件人在另一個路由組中的Exchange 服務器上,並且Exchange 組織在混合模式下工作在混合模式下,有可能將Exchange Server 5.5 的Internet 郵件服務用作SMTP 連接器,但是Internet 郵件服務不支持二進制MIME。 由於S/TNEF 的RFC 822 表示(由IMAIL 產生)是二進制MIME,因此Internet 郵件服務無法傳輸S/TNEF 郵件。 由於Exchange 分類程序無法預先檢測到郵件將採用什麼路由路徑,因此在混合模式下,分類程序不為本地路由組外部的服務器上的收件人進行郵件轉換,也就是不將郵件轉換為S/TNEF 。 為了在傳輸路徑中容納可能的Internet 郵件服務實例,Exchange 分類程序將郵件轉換為純文本部分以及舊版TNEF 格式附件。 舊版TNEF 格式是Internet 郵件服務能夠傳輸的七位MIME。
收件人是本地Exchange 組織之外的MAPI 收件人用戶和管理員可以為外部郵件環境中使用Outlook 的收件人啟用跨本地Exchange 組織邊界的TNEF 傳輸。 由於收件人不在本地Exchange 組織中,Exchange 分類程序無法確定郵件傳輸中涉及到的所有SMTP 主機是否都支持二進制MIME。 因此,Exchange 分類程序將郵件轉換為純文本部分以及舊版TNEF 格式的附件。

Note :
發送到公用文件夾中的MAPI 郵件發送到公用文件夾中的郵件始終以舊版TNEF 格式中繼。 本節後面提供了有關公用文件夾郵件處理的詳細信息。
通過SMTP 發送到展開服務器的MAPI 郵件如果郵件包含通訊組列表,並且明確指定的展開服務器不是本地服務器,郵件將以舊版TNEF 格式轉發到展開服務器(如果使用SMTP 傳輸郵件)。 在這種情況下,會將一個屬性放入郵件傳輸信封中通過XEXCH50 傳輸。 該屬性通知展開服務器最初通過Exchange 存儲驅動程序收到郵件的時間。 展開服務器上的分類程序展開通訊組列表後,必須分別對每個收件人應用有效的RFC 822 郵件格式。 分類程序使用Exchange 存儲驅動程序將郵件複製到Exchange 存儲中,IMAIL 再從Exchange 存儲中讀取TNEF 數據並用原始郵件的提交時間構建MAPI 郵件。 之後,SMTP 傳輸子系統便能夠從存儲中讀取符合收件人格式要求的RFC 822 格式MAPI 郵件。
可以通過添加以下註冊表項,控制發送郵件的TNEF 格式行為。 數字nn 代表此計算機的虛擬服務器實例。
位置HKey_Local_Machine\Software\Microsoft\Exchange\StoreDriver\Exchange\ nn \EnableTnef
值Disabled
類型REG_DWORD
數值數據0×0
描述如果值為0×0,則禁用TNEF,不使用TNEF 生成郵件。 如果值為0×1,則使用舊版TNEF 生成郵件,此時通常生成S/TNEF。 值為0×2 則沒有任何影響,因為這是默認行為。

Postfix 郵件格式由 mbox 轉 maildir – 解決mbox LOCK與alias群組重複收信問題

2010-10-27

mbox 與 maildir 優缺點比較:

===========================================================

mbox 與 maildir 之優缺點比較

這裡給出一個基本的特性對比,很容易就能清楚自己的程式應該選什麼存儲格式:

可靠性

優選是 maildir,因為 mbox 只有一個檔案,一旦出問題,所有郵件可能一併損毀。

更新效能

這裡主要指的是刪除/ 增加郵件的能力,無疑 maildir 完勝 mbox

搜尋速度

這點 mbox 因為是單檔案,搜尋能力要強於 maildir

並行存取能力

對於繁忙的郵件系統,多個 Process 同時存取同一封郵件是可能的事情,mbox 需要 flock() 的支援,而且如果某一個 Process 操作時間長,則其他所有 Process 都堵塞了。maildir 沒有這個問題。在 NFS 等網路檔案系統上,maildir 相對安全,mbox 則不能用於此類型環境

擴充能力

現下的郵箱容量已經不是十年前的 MB, 而是 GB,mbox 應付大容量已力不從心,無疑 maildir 是比較適合的。

檔案系統倚賴

maildir 較倚賴檔案系統的索引能力,用 ReiserFS 會比較快,對於超大型的 maildir,讀寫性能將受到考驗。相對而言 mbox 則不存在這個問題。

總合結論

使用 maildir 格式,安全可靠,大部分操作都快於 mbox。而且現今支援 maildir 的軟體越來越多。

===========================================================

 

2010-10-26

1.轉換信件後變成一封信一個檔案,因權限沒正確修改好,故手動修正了好一陣子 >_<

2.
/var/spool/maildir/帳號/cur <=看過的信如果還保留在SERVER上的信就存這
/var/spool/maildir/帳號/new <=新進的信還沒看過就存這
/var/spool/maildir/帳號/tmp <=收信件暫存區,收完信後才移到new

3.換了這個maildir格式後,感覺MAIL SERVER很順,以前收發都會卡,可能就是因為mbox的LOCK機制造成。

4.用maildir格式要是使用者人很多,且都有留幾天信在SERVER上的習慣,那要特別留意檔案數量與 Inode 數量,超過就無法在寫入磁碟。

[root@mail ~]# df -i
檔案系統              Inode    I已用  I可用 I已用% 掛載點
/dev/sda1            3840192   24549 3815643    1% /
/dev/sda6            98074624   10654 98063970    1% /var
/dev/sda3            2560864  117080 2443784    5% /usr
/dev/sda2            25624576   10116 25614460    1% /home
tmpfs                 221892       1  221891    1% /dev/shm

 

2010-10-25

Postfix 郵件格式由 mbox 轉 maildir ,maildir格式可避免mbox格式 LOCK鎖檔案造成 aliases 的群組人員重複收到信。

格式說明出處:http://www.creativecrap.com/story/software/mbox-to-maildir

========================================

mbox mail storage format

這是傳統的郵件格式,將所有的信件都存在一個檔案中,所以相對的會有很多的缺點,包含當檔案太大時存取的效率即變差,若郵件檔損毀則所有的信件都沒了,同時只能有一個 process 存取,第二個 process 須等第一個 unlock 之後,才能存取。優點應該是簡單,單一檔案搜尋時較快,大部份預設值都還是 mbox,備份時也方便,因為只有一個檔案。

maildir mail storage format

這就是比較新的格式,沒記錯的話早先是由 Qmail 開始使用。將每一封信件就單獨存成一個檔案。相對於 mbox 的缺點即 maildir 的優點,反過來搜尋速度就是 maildir 的缺點了。

========================================

以下是看旗標 Linux Mail Server 技術實務來測試轉換(因自架MAIL SERVER於VM中,故先行快照,避免有問題時可回復原狀)

停止 MTA 服務(Mailscanner)
[root@mail ~]# /etc/init.d/MailScanner stop
Shutting down MailScanner daemons:
         MailScanner:                                      [  確定  ]
         incoming postfix:                                 [  確定  ]
         outgoing postfix:                                 [  確定  ]

[root@mail ~]# /etc/init.d/dovecot stop
正在停止 Dovecot Imap:                                     [  確定  ]

建立 maildir 格式存放目錄:
[root@mail ~]# mkdir /var/spool/maildir

查看原先mbox存放目錄的擁有者
[root@mail ~]# ls -ld /var/spool/mail
drwxrwxr-x 2 root mail 4096  1月 27  2010 /var/spool/mail

建立 maildir 與 mbox 目錄一樣的擁有者權限
[root@mail ~]# chown root.mail /var/spool/maildir/

建立 maildir 目錄存取權限
[root@mail ~]# chmod 1777 /var/spool/maildir/

修改 vi /etc/postfix/main.cf
[root@mail ~]# vi /etc/postfix/main.cf
………
home_mailbox = Maildir/
mail_spool_directory = /var/spool/maildir/
mailbox_command = /usr/bin/procmail -a "$EXTENSION" DEFAULT=/var/spool/maildir/$USER/ MAILDIR=/var/spool/maildir/$USER/ <==指定收件路徑,不指定會送到mbox信箱
………

修改 vi /etc/dovecot.conf
[root@mail ~]# vi /etc/dovecot.conf
……
mail_location = maildir:/var/spool/maildir/%u (書上寫的是 default_mail_env = maildir:/var/spool/maildir/%u,不過裡面是寫我前面的樣式。)
……

將mbox轉maildir格式:

安裝perl-5* perl-TimeDate*
yum install perl-5* perl-TimeDate*

下載安裝 mb2md
[root@mail ~]# wget http://batleth.sapienti-sat.org/projects/mb2md/mb2md-3.20.pl.gz
[root@mail
~]# gzip -d mb2md-3.20.pl.gz
[root@mail ~]# chmod +x mb2md-3.20.pl
[root@mail ~]# mv mb2md-3.20.pl /usr/local/bin/mb2md

建立 mbox 轉 maildir 批次執行檔:
vim /usr/local/bin/allmb2md
==================================
#!/bin/sh

#設定原本mbox格式郵件目錄
MBOXDIR="/var/spool/mail"

#設定maildir格式目錄
MAILDIR="/var/spool/maildir"

cd $MBOXDIR

for user in *; do
  mkdir -p $MAILDIR/$user
  mb2md -s $MBOXDIR/$user -d $MAILDIR/$user/
  chmod -R 700 $MAILDIR/$user/
  chown $user.mailuser $MAILDIR/$user/   <==這邊若使用者名稱為 名.姓 Roger.Lin 則要使用 :號區隔群組  Roger.Lin:mailuser
done
===================================

給權限
[root@mail ~]# chmod +x /usr/local/bin/allmb2md

執行轉換
[root@mail ~]# allmb2md

POSTFIX MAILQ 指令集 – 管理MAIL Queue

 
文章出處:http://blog.yam.com/rei92/article/28165379
 
如果你要套用其中一筆 Queue 中的郵件,可以先用 mailq 或 postqueue 指令查詢出或篩選出你要重新排 Queue 的郵件 ID,並使用以下指令重新排 Queue:
#postsuper -r 7B8CE830BD

若要套用「所有」郵件,可以使用特殊的 ALL 關鍵字:
#postsuper -r ALL

最後再強制重送所有的信件
#postqueue -f

檢視剩下多少Queue
#postqueue -p

若還是不行的話… 那就考慮刪除掉吧XD

# 列出目前在 Mail Queue 中的信件
    mailq

# 刪除某一個佇列的郵件
   postsuper -d queue_id

# 刪除所有在 Queue 中的郵件
    postsuper -d ALL

# 刪除所有正在 deferred 佇列中的郵件 ( 刪除曾經發送失敗的信 )
    postsuper -d ALL deferred

# 刪除所有正在 deferred 佇列中的郵件 ( 可看出哪些信被刪除了 )
    find /var/spool/postfix/deferred -type f -exec rm -vf \{\} \;

# 刪掉「三天以前」無法發出的郵件
    find /var/spool/postfix/deferred -type f -mtime +3 -exec rm -f \{\} \;

# 列出目前所有無法發出的郵件
    find /var/spool/postfix/deferred -type f -exec ls -l –time-style=+%Y-%m-%d_%H:%M:%S {} \;

# 刪除超過 5 天的 "defer" 佇列中的退信紀錄
    find /var/spool/postfix/defer -type f -mtime +5 -exec rm -f \{\} \;

若你發現在MailQ裡面有相同的地址大量寄送垃圾信件時,可以透過下面的方式來擋掉…

# vi /etc/postfix/header_checks
# 加入要擋掉的來原信
/^From:.service\@kcg\.gov\.tw/ DISCARD Attack Mail

# postmap -q – regexp:/etc/postfix/header_checks < /etc/postfix/header_checks
# 重新讓 Postfix 新 header_checks 生效

# mailq | grep "xxx@abc.com" | cut -d " " -f1 | cut -d’*’ -f1 | postsuper -d –
# 刪掉所有來自xxx@abc.com的MailQ

此內容轉貼自: Mail Attack & Delete Postfix selected mailq

預設所有跟 Postfix 相關的郵件都會放在 /var/spool/postfix/ 目錄下,
想瞭解 Postfix 是如何管理 Mail Queue 的可以參考 qmgr – Postfix queue manager 的手冊。

以下是每個目錄摘要的說明其用途:

MAIL QUEUES

    *
      incoming

          從網路寄信進來本機的信。
          或從本地寄送到本地的信。
    *
      active

          正在準備發送的郵件。
    *
      defered

          無法傳送的信。會持續重試。
    *
      corrupt

          無法讀取或毀損的信。
    *
      hold

          被暫停發送的信。需要手動開啟才會發出。

DELIVERY STATUS REPORTS

    *
      bounce

          每一位收件者的寄送狀態資訊,說明為什麼被「退信」。
          由 bounce(8) 程式控管
    *
      defer

          每一位收件者的寄送狀態資訊,說明為什麼被「延遲寄信」。
          由 defer(8) 程式控管
    *
      trace

          每一位收件者的寄送狀態資訊,說明被 Postfix 用 "sendmail -v" 或 "sendmail -bv" 指令執行過的狀態。
          由 trace(8) 程式控管

postfix 延持與重複收信–unable to lock for exclusive access: Resource temporarily unavailable 訊息作怪–更新20101022

使用/etc/aliases的群組方式,在Postfix為MBox的模式下,因外站遠端連入收信時間很久,故會遇到MBOX模式下 LOCK 檔案造成重複收信的問題,解決這個LOCK的最根本方式就是把 Mbox 改為 maildir 的格式,這兩個格式的介紹:

http://www.extmail.org/forum/viewthread.php?tid=10560&extra=page%3D1&frombbs=1

今天晚上在花時間轉格式看看。

========================================================================

最近我又遇到這個問題,兩間公司合併但還是各自獨立網段,MAIL SERVER 整合後另一邊外站人太多,又習慣用 mail 傳檔, 2M上傳每天都滿載…..又因群組關係,每封信一卡就是好久,重複收信狀況超嚴重,信件延持收到也是很誇張,剛自己寫了個script,然後每10分鐘跑一次,同用到啟用中斷過程非常微小,卻可以把mailq內老是積50封因LOCK問題的信給寄出去清乾淨.

小插曲…如果有個天兵寄了5MB以上的檔案,想想看外站如果40個人同時收這信,2M上傳不知道要傳到何時才能把信傳給大家,這時候又中斷大家收信……想想USER又要重收信,看來要用這個Script真的要小心.

#!/bin/bash
/etc/init.d/dovecot stop
postqueue -f
/etc/init.d/dovecot start

已參照下面修改,暫時停止上面的SCRIPT,星期一再來觀察吧……

=========================================================================

文章出處:http://blog.yam.com/ymwen/article/25977088

mail 的 mbox 檔案由於有可能有兩支程式同時存取的問題,所以需要注意 file lock 的問題,不當的設定可能會造成 deadlock 產生,此時只能重啟 mail service 或將 lock 的 process kill 掉才能解套。
以 mail server 來說,我用的是 Postfix + dovecot,怎麼設定兩邊的 lock 方法,可以參考 http://wiki.dovecot.org/MboxLocking 的說明,主要是兩支程式的鎖定的方法與順序要一致就對了。
我的 postfix 裡的 main.cf 設定:

deliver_lock_attempts = 20 # 嘗試 20 次
deliver_lock_delay = 1s # 每次間隔 1 秒
mailbox_delivery_lock = dotlock, fcntl # 使用系統呼叫的 dotlock 或 fcntl
stale_lock_time = 500s # 500 秒後 lock 失效
virtual_mailbox_lock = dotlock, fcntl # virtual mailbox 的設定 (這個我沒在用也不懂)

我的 dovecot.conf 的設定:

mbox_read_locks = fcntl
mbox_write_locks = dotlock fcntl

不過我遇到了另外一個問題是,mail server 有設定 alias 信箱的情況下,若在寄送給 alias 的轉寄過程中,剛好有一位 alias list 裡的 user mbox 剛好是 lock 的話 (可能正在用 dovecot pop3 收信),mail server 就會因此 fail 而再寄一次,造成其他 alias list 的人收到這封信超過兩次以上。
目前這個問題我尚無解,尤其當有同事在國外收大檔的信件時整個收信時間比較久,剛好別的同事發個公告到 alias 信箱,就會造成全公司同事可能收到三四封公告。
我現在是先加大了 deliver_lock_attempts 和 deliver_lock_delay 的值,讓 postfix 可以試得久一點 (20 x 1s 加大為 30 x 20s),減低遇到 lock 的機會,但偶爾還是會遇上,並非根本辦法就是了。
2010 年 5 月 20 日補充
在 Dovecot 的 wiki 中有提到,dotlock 是很常見的 mbox lock 方式,但是 lock 可發生在讀取 / 寫入兩種事情上面,而讀取上 dotlock 方式並不太具有效能,我猜想是因為讀取不太需要完整的 lock, 寫入才需要很嚴謹的 lock 的緣故?
不管如何,我們發現在 dovecot 安裝完成後,dovecot 在 mbox_read_locks 的設定預設是 fcntl,mbox_write_locks 的設定預設則使用了 dotlock fcntl。換句話說 dovecot 想要使用效能相對較快的 fcntl 來讀 mbox,但可以讓其他 process (可能是另一個 pop3,或是 postfix) 採用 dotlock 來寫。
而 postfix 預設的設定卻是 mailbox_delivery_lock = fcntl, dotlock,看來 postfix 也想使用 fcntl 來 lock 它的 mbox,但 dovecot 的 wiki 明白指出,如果 lock 方法的順序不一樣,可能會造成 deadlock。
所以我就以 postfix  不動為主,把 dovecot 的 mbox_write_locks 預設順序對調,但幾個月觀察下來,某個 user 的 mbox 因為超過 1GB,常會發生 pop3 意外終止的情形,我不知道這是怎麼回事,也拉長了 Outlook 在收信時的逾時設定,但是就不見改善。
因此我回過頭來思考,dovecot 要處理讀與寫 mbox 的工作,postfix 則只要處理寫這件事,我是不是應該以 dovecot 的預設設定比較好呢?所以我就把 dovecot 的設定調回來,而更改了 postfix 寫 mbox 的 lock 方法順序,接下來就持續觀察是否有改善了…

我要一個大手機~~SAMSUNG GALAXY Tab 無限機重量僅 380g 的輕薄精巧外觀設計,是 Apple iPad 的一半。

這個產品真屌,不過如果可以變成軟螢幕折疊,攜帶更方便,我想離這項科技不遠了!

SAMSUNG GALAXY Tab 無限機重量僅 380g 的輕薄精巧外觀設計,是 Apple iPad 的一半。

http://mag.udn.com/mag/digital/storypage.jsp?f_MAIN_ID=320&f_SUB_ID=2942&f_ART_ID=278225