歡迎您光臨本站 註冊首頁

Cyrus IMAP伺服器安裝與配置

←手機掃碼閱讀     火星人 @ 2014-03-12 , reply:0
  IMAP(Internet Mesage Access Protocol)是INTENET上標準的訪問消息(mail/news等),IMAP伺服器上存儲消息,並提供客戶訪問能力。有關安裝的問題的一些回答請到以下網址查找:
http://andrew2.andrew.cmu.edu/cyrus/imapd/install-FAQ.
有關該軟體的一些反饋的文檔請發送到cyrus-bugs@andrew.cmu.edu. 另外,info-cyrus@andrew.cmu.edu郵件列表討論cyrus IMAP伺服器與其他IMAP服務軟體的一些情況。更多的信息請到in the mailing-list document.
升級情況(略)
首先要說明信息
必須下列的程序或軟體包:
1.makedepend 在本安裝包的makedepend子目錄下,在安裝IMAPD之前先安裝。如果失敗的話,配置腳本將會用一個假的shell腳本代替makedepend,在用「make all」之前,需用「make clean」清除.
2.Tcl 版本必須是.7.5以上。怎樣獲得Tcl請參看comp.lang.tcl FAQ。
3.如果需要Kerberos支持,那麼在在安裝Kerberos時必須包含DES庫文件,包括Solaris在內的一些商業版本可能沒有DES支持,不能用。下面介紹的美國或加拿大的一些網站上可能可以獲得ftp://athena-dist.mit.edu/pub/kerberos/README.KRB4。你也可以從這個網站獲得有關的信息http://www.pdc.kth.se/kth-krb/。
4.建議你的網站安裝snedmail8.7.1以上的版本(筆者用的postfix)。有關sendmail的包可以從以下的網站獲得from ftp://ftp.sendmail.org/ucb/sendmail
5.如果你希望你的IMAP能提供網路新聞組服務,必須從INN的伺服器上接收。
編譯IMAP伺服器
如果你解開了壓縮包(看README文件以獲得更多的信息),「cd」到「cyrus-imapd-1.5.19」目錄(如果你版本是1.5.19.)配置文件和許多子目錄都在此目錄下,用「./configure」就能配置該軟體。
配置的程序在配置過程中將試圖正確地賦予系統變數適當的值,並將結果存在每個目錄的生成的Makefile中,最後,它將生成「config.status」文件,使你可以用它再次創建當前的配置。「config.cache」文件保存結果使得能把配置加速。「 config.log」保存編譯器的輸出結果。
運行「configure」需要一些時間,在運行過程中,它將顯示一些檢查的結果信息。
你可以在不同的目錄下編譯這些源碼,這樣做允許你能同時編譯適合各種情況的IMAP伺服器。不過,make的版本必須支持「VPATH」變數(比如GNU的「make」),」cd」到你所需的目錄下,並執行「configure」。它將自動檢測源碼所在目錄。。。。。。
「make install」默認地把文件安裝在「/usr/local/bin」「/usr/local/man」……下,你也可以通過用「-prefix=PATH」指定安裝路徑。
你也可以單獨列出安裝中的明確或不依賴結構的文件,如果在配置中帶上「—exec-prefix=PATH」的選項,安裝包將會用這個路徑安裝程序和支持庫。文檔和數據文件將會仍然用比較規則的路徑。
默認情況下,服務進程將被安裝在「/usr/cyrus/bin」.你也可以在配置中特別用「—with-cyrus-prefix-PATH」去指定。
以下將簡要列出「configure」選項的說明:
--cache-file=FILE 指定測試輸出文件(默認為config.cache),也可以用「/dev/null/表示關閉」
--help 顯示幫助信息,會顯示有關的選項
--quiet --silent -q
不輸出任何信息
--srcdir=DIR 指定源碼目錄,一般配置程序自動能搜尋。
--version 顯示版本
--with-cyrus-user=USER
指定用戶
--with-cyrus-group=USER
指定組用戶
--with-startdir=PATH
指定pwcheck和ptclient的目錄,默認在/var下。
--with-login=METHOD
指定登陸認證的模塊,一般有如下模塊:
unix /etc/passwd文件
unix_pwcheck unix shadow文件通過pwcheck守侯進程
krb Kerkeros 4
krb_pwcheck krb 和 pwcheck
如果你用shadow來認證,配置時帶上—with-login=unix_pwcheck的懸想。而且不要以root的身份運行它。
--with-pwcheck=METHOD
指定用pwcheck進行密碼檢驗,只有在登陸名稱以「-pwcheck」結尾時這割選項才有用。
--with-auth=METHOD
指定認證模塊,有unix\krb\krv_pts
--with-notify=METHOD
--without-notify
指定郵件確認的方法。確定方法有如下幾種:zephyr/no,默認是zephyr
--with-krb=PATH
--without-krb
指定kerberos的庫文件和頭文件。默認在」/usr/local」下。
--with-inn=PATH
指定INN NEWSLIB庫的目錄。默認會搜索一些目錄。只有在你需提供新聞組服務的時候用這個選項。另外,Kerkeros 4需要DES庫的支持,
--with-tcl=PATH
--without-tcl
指定tcl庫和頭文件的路徑,默認將在「/usr/local」下,在編譯「cyradm」時必須TCL。如果沒有請帶上選項「—disable-cyradm」。
--with-zephyr=PATH
--with-zephyr
指定zephyr庫和頭文件。默認在「/usr/local/」下,
--with—lock=METHOD
指定鎖定方法,一般有兩種:flock(),fcntl().默認是flock();
--disable-cyradm
不編譯cyradm管理客戶端。
--disable-privacy
關閉網路安全驗證選項
--enable-amssync
打開AMS支持
--enbale-cmulocal
打開CMU的內置支持
可能有些系統需要一些不常用的配置選項,你可以通過「./configure」來初始化一些變數的環境。如果你用的是B_shell,可以用如下的命令;
CC=c89 CFLAGS=-02 LIBS=-lposix ./configure
在有「env」的系統里可以用如下命令:
env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
在編譯時,你可能需要修改以下這些環境變數:
CC C編譯器,默認是cc/gcc,
CFLAGS C編譯器的調試和優化選項
CPPFLAGS C預編譯的頭文件搜索項和其他混合選項,默認是空的
DEFS 配置選項,如「-Dfoo -Dbar」
LIBS 鏈接的庫,如「-lfoo ?lbar」
如果你需要一些不常用的包編譯,建議你先仔細熟悉configure的配置,或mail to cyrus-bugs@andrew.cnu.edu
在你順利完成配置后,運行下面命令:
make depend
make all CFLAGS=-0
如果你想設CFLAGS LDFLAGS 或者:
make all CFLAGS=-02 LDFLAGS=-s
配置imap伺服器
以下將介紹shell腳本的運行和配置文件的修改。
1. 為Cyrus建個用戶和組,比如:「Cyrus」用戶,「mail」組。這是configure默認的選項。
2. 以root身份運行
make install
3.Cyrus的IMAP伺服器用BSD4.3的SYSLOG記錄系登錄消息。如果你的系統中沒裝syslog
請到cyrus-imapd-1.5.14/syslog/目錄下拷貝:
mv syslogd /etc/syslogd
mv syslog.conf /etc/syslog.conf
如果你沒copy syslog,請確認支持「local6.debug」:文件應該被包括:
local6.debug /var/adm/imapd.log
創建 imapd.log文件:
touch /var/adm/impad.log
4.創建」/etc/imap.conf」文件,這裡給個例子
configdirectory: /var/imap
partition-default: /var/spool/imap
srvtab: /var/imap/svrtab
要想詳細了解配置文件的信息,請用「man imapd.conf」。
注意:平時的用戶不能是管理員,管理員有權授予普通用戶接收MAIL的許可權。
5.創建配置目錄(目錄名為你在imapd.conf已指定的),配置目跟「/usr/lib/news」目錄很相似,它存儲IMAP的全部信息。
本文已「/var/imap」為例,記住該目錄的所有者是用戶cyrus和mail組,禁止其他用戶訪問。操作命令如下:
cd /var
mkdir imap
chown cyrus imap
chgrp mail imap
chmod 750 imap
6.在該配置目錄下,創建空文件「mailbox」和一些子目錄。
cd imap
true >> mailbox
mkdir user quota proc log msg
chown cyrus *
chgrp mail *
7.創建「/etc/imapd.conf」里指定的partition目錄,本文以「/var/spool/imap」為例,主要是用來存儲郵箱信息的.不象新聞組,Cyrus允許你可以有多個partition。但不能用「new」作為名稱,它是網路新聞組專用的。
cd /var/imap
mkdir imap
chown cyrus imap
chgrp mail imap
chmod 750 imap
8.LINUX.系統上的設置:設置user,quota,partition.,mqueue:
cd /var/imap
chattr +S . user quota
chattr +S /var/spool/imap
chattr +S /var/spool/mqueue
9.如果IMAP被配置成使用pwcheck進程,講用pwcheck進程驗證,而非shadow。創建「/var/pwcheck」目錄,並為cyrus只讀,並且把進程/usr/cyrus/bin/pwcheck設成系統啟動時就運行的。
mkdir /var/pwcheck
chown cyrus /var/pwcheck
chmod 700 /var/pwcheck
10.如果IMAP被編譯成支持Kerberos v4認證,為服務創建一個Kerberos v4身份,在「srvtab」文件里增加服務的關鍵字。此文件為cyrus用戶只讀。IMAP伺服器的身份標識格式為「imap.HOST@REALM 」host為主機的節點名,「REALM」是機器的Kerberos域。
下面給出一例子(主機節點名為foobar,域名為ANDREW。CMU。EDU):
ksrutil ?f /var/imap/srvtab add
文件srvtab如下:
Name: imap
Instance: foobar
Realm:ANDREW.CMU.EDU
Version number:
New principal:imap.foobar@ANDEW.CMU.EDU;version 0
Is this correct?(y,n)[y]
Password:
Vrifying ,please re-enter Password:
Key successfully added.
Would you like to add another key?(y,n)[y]n
如果你要裝Kerberized POP,在srvtab中也要為之創建一個關鍵字pop.HOST@REALM。
改該文件的屬主:
chown cyrus /var/imap/srvtab
11.在/etc/services下打開相關服務。
pop3 110/tcp
imap 143/tcp
imsp 406/tcp
kpop 1109/tcp
12.在/et/inetd.conf文件中增加
imap stream tcp nowait cyrus /usr/cyrus/bin/imapd imapd
如果你想運行pop3協議,加入;
pop3 stream tcp nowait cyrus /usr/cyrus/bin/pop3d pop3d
如果你想運行KPOP,課加入:
kpop stream tcp nowait cyrus /usr/cyrus/bin/pop3d pop3d
13.如果你想支持finger服務,請把「/etc/services」和「/etc/inetd.conf」下的有關選項打開,
注意,必須有finger的客戶端支持,然後分別做如下操作:
在「/etc/services」下增添:
fud 4201/udp
在「/etc/inetd.conf」下增添:
fud dgram udp wait cyrus /usr/cyrus/bin/fud fud
14.重啟inted.在很多系統可以用如下命令「kill ?HUP pid」
15.你的sendmail(如果你用sendmail)版本必須是8.7以上的。
16.配置sendmail使它能發送當地的郵件到IMAP的伺服器。詳細可看sendmail壓縮包中的cf/README和cf/cf/cyrusproto.mc.
17.編輯/etc/group並增加「daemon」用戶到「mail」組,即允許sendmail運行「deliver」程序來投遞郵件給IMAP伺服器。
18.Cyrus IMAP默認重複投遞,可用「deliver」加「-e」來實現,從而使投向同一個郵箱的郵件不會有相同的ID.你也可以用cron來調用「/usr/cyrus/bin/deliver ?E 3」每天定時地清除投遞的資料庫。也可以用「mkdir /var/imap/deliverdb」來創建「deliverdb」目錄儲存資料庫文件。
如果你想讓你的IMAP伺服器能提供netnets newsgroup服務,接著以下步驟:
1.為「news」分區創建一個目錄,此目錄不同於news的spool目錄,比如「/var/spool/imap-news」,則操作如下:
cd /var/spool
mkdir imap-news
chown cyrus imap-news
chgrp mail imap-news
chmod 750 imap-news
2.設置partition-news,newsspool的值。
partition-news:/var/spool/imap-news
newsspool:var/spool/news
3. 用戶cyrus必須對out.going目錄有寫的許可權。
4. 在newsfeeds文件增加以下一行:
collectnews!:*:Tf,WO:collectnews
5. 在crontab中增加兩項調用;
「/usr/cyrus/bin/feedcyrus」(每隔10分鐘)
「/usr/cyrus/bin/syncnews/var/news/active>/dev/null 2>&1」(每晚)

測試IMAP伺服器
必須重啟你的機器以及執行以下的步驟,也可以參看瑞、http://andrew2.andrew.cmu.edu/cyrus/imapd/install-FAQ.
1. 如果你的IMAP服務是支持Kerberos v4認證的,以cyrus用戶的身份運行「krbck」。該程序能診斷你的配置錯誤。
2. telnet到伺服器的IMAP埠:
如:telnet foobar imap
如果服務正在運行,你將看到如下信息:
Trying 128.2.232.95...
Connected to foobar.andrew.cmu.edu.
Escape character is ^].
* OK foobar.andrew.cmu.edu Cyrus IMAP4 v1.5.14 server ready
如果看不到OK的信息,就可能出了問題了。可以用「logout」命令終止連接。
3.用「imtest」命令測試登錄的認證;
/usr/local/bin/imtest ?p foobar imap
如果服務正在運行,你將看到如下信息;
* OK foobar.andrew.cmu.edu Cyrus IMAP4 v1.5.14 server ready
Password:
. LOGIN smith X
. OK User logged in
如果看不到OK的信息,就可能出了問題了,而且在syslog里會有相關的報錯記錄。可以用「logout」命令終止連接。
4.如果你的IMAP伺服器編譯時支持Kerberos v4 認證,用imtest命令測試,轉向cyrus的目錄,做如下操作:
/usr/local/bin/imtest -k foobar imap
* OK foobar.andrew.cmu.edu Cyrus IMAP4 v1.5.14 server ready
. AUTHENTICATE KERBEROS_V4
+ Ln8h6Q==
BAcBQU5EUkVXLkNNVS5FRFUAOCA+0y5YnrqIVikng46sam7RSObZXCVSA9xCx
BZSGgOy9ehHRj8NQjLjxDpib0D9uT0fo7QaXhLM6zCp9dQ1pX4FfNO2V39vBp
Q19QIK4S1410prvM2c45qeizecI7zAvA=
2cRhIC+aH70WHqYaW18YnQ==
. OK User logged in (no protection)
__No integrity protection__

郵箱管理
用「cyradm」可以創建、刪除、限制和控制郵箱(詳細可看幫助)。可用「cyradm 」命令啟動,提示符將變成「>」。你可以用「help」命令,將會出現如下信息:
createmailbox, cm create a mailbox
deleteaclmailbox, dam delete an ACL on a mailbox
deletemailbox, dm delete a mailbox
help get help on commands
listaclmailbox, lam list the ACL on a mailbox
listmailbox, lm list mailboxes
listquota, lq list quota on root
listquotaroot, lqr, lqm list quota roots on mailbox
quit exit program
renamemailbox, renm rename a mailbox
setaclmailbox, sam set an ACL on a mailbox
setquota, sq set quota limits
注意:如果你的系統中,Kerberos v4 沒有在運行,那你必須為用戶設置密碼。
根據郵箱的命名慣例,要求任何用戶的第一級郵箱(收件箱)必須時「user.」格式的。可以用如下命令創建一個新郵箱:
createmailbox user.
比如為userid為"smith"的用戶創建郵箱,可用如下命令:
createmailbox user.smith
用如下命令可限制空間:
setquota user.smith 10000。
在用戶的第一級郵箱建立(收件箱)后,用戶能自己建立下一級的郵箱,比如「smith」用戶為自己分別建立工作和休閑的郵箱:
user.smith.work
user.smith.play
在cyradm的幫助頁(1)里有有關訪問許可權的詳細內容。必須注意的是,管理員在刪除一個郵箱之前必須授權她自己可以刪除訪問。你可用如下命令:
setaclmailbox d
deletemailbox
在你的IMAP服務配置好之後,還要再配置一個MAIL介面,比如Pine.當然這就不是本章的話題了


[火星人 ] Cyrus IMAP伺服器安裝與配置已經有707次圍觀

http://coctec.com/docs/linux/show-post-70016.html