为了顺应当前形势和更好的发展,黑基网已于9月19日正式更名为【安基网】,域名更换为www.safebase.cn,请卸载旧的APP并安装新的APP,给您带来不便,敬请理解!谢谢

黑基Web安全攻防班
安基网 首页 IT技术 网络管理 查看内容

Cyrus IMAP服务器安装与配置

2005-5-28 07:47| 投稿: Linux

摘要: IMAP(Internet Mesage Access Protocol)是INTENET上标准的访问消息(mail/new...
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 指定认证模块,有unixkrbkrv_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服

小编推荐:欲学习电脑技术、系统维护、网络管理、编程开发和安全攻防等高端IT技术,请 点击这里 注册黑基账号,公开课频道价值万元IT培训教程免费学,让您少走弯路、事半功倍,好工作升职加薪!



免责声明:本文由投稿者转载自互联网,版权归原作者所有,文中所述不代表本站观点,若有侵权或转载等不当之处请联系我们处理,让我们一起为维护良好的互联网秩序而努力!联系方式见网站首页右下角。


鲜花

握手

雷人

路过

鸡蛋

相关阅读

最新评论

最新

返回顶部