设置一个企业级的LinuxPOP3服务器

2009-05-13 01:07:53来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折


一:概述
本文旨在介绍如何使用开放源软件Procmail和Qpopper来设置一台可供企业级客户使用的POP3服务器,同时保证极好的性能和安全性。重点介绍如何设置Procmail和Qpopper利用hashspool目录结构存储用户邮件。

二:步骤
软件环境为RedHatLinux6.2

1.下载最新版的Procmail和Qpopper

Procmail最新版本现在是3.21可从[url=www.procmail.org/procmail-3.21.tar.gz下载。]http://www.procmail.org/procmail-3.21.tar.gz下载。[/url]Qpopper最新版本现在是4.0可从http://www.eudora.com/qpopper_general/下载

2.编译Procmail

假设下载的文件放在/root

#cd/root

#tarxvfzprocmail-3.21.tar.gz
#cdprocmail-3.21

#visrc/authenticate.c
改#defineMAILSPOOLHASH后面的0为2(二级hash目录,改进服务器性能,特别是有大量用户时)

注:这样的话,如果用户的信箱为jephe@domain.com,则文件应存在/usr/mail/j/e/jephe

再改src/autoconf文件,这里我用的mailspool目录为/usr/mail,则
#visrc/autoconf
搜索/usr/mail,改forain/var/spool/mail/usr/spool/mail/var/mail/usr/mail/spool/mail到forain/usr/mail

#make
#makeinstall-suid

然后以root身份运行#procmail-v检查用户的邮件路径是不是/usr/mail/r/o/root。

3.编译Qpopper

假设下载的文件在/root

#cd/root
#tarxvfzqpopper4.0.4.tar.gz
#cdqpopper4.0.4
#vipopper/pop_extend.c
change"IMPLEMENTATION%s%.*s%s-version-%s\r\n"to"IMPLEMENTATION\r\n".
为什么?
因为如果不改的话,用户用telnetserver110命令然后用userusernameandpasspassword命令通过认证后,可以用capa命令得到服务器的qpopper版本号。

##./configure--enable-hash-spool=2 --enable-log-login--enable-server-mode--enable-shy
--enable-spool-dir=/usr/mail--enable-specialauth--enable-temp-drop-dir=/var/spool/cache
--enable-fast-update--disable-check-pw-max--disable-old-spool-loc

note:

你也可以编译成独立运行模式,在上面的编译选项后加上
--enable-standalone即可,这样就不用下面介绍的xinetd中的设置和/etc/inetd.conf中的设置而直接运行了命令行为/usr/local/sbin/popper-S-F-s-c-R-T120

注:--enable-specialauth使用/etc/shadow密码认证
--enable-hash-spool=2用二级hash结构
--enable-spool-dir=/usr/mail则用户信箱文件为/usr/mail/j/e/jephe

关于--enable-fast-update?
如果你的临时spool目录/var/spool/cache所在的分区和mailspool/usr/mail所在的分区不同,则不要用--enable-fast-update,因为不仅你享受不到fast-update模式带来的好处,还会在maillog中留下多余的错误信息。

#make
#makeinstall

你需要在/usr/mail和/var/spool/cache下创建两层hash目录结构,可以写一个script来做。

编辑文件/etc/inetd.conf
注释以pop-3开头的行,然后在后面再添加下面的行:
pop-3streamtcpnowait.400root/usr/local/sbin/popper-F-S-s-c-R-T120

如果是Redhat7.1,则在/etc/xinetd.d下创建文件pop3,包含下面的内容:

servicepop3
{
socket_type=stream
protocol=tcp
wait=no
user=root
server=/usr/local/sbin/popper
server_args=qpopper-S-F-s-c-R-T120
port=110
}

如果你在/etc/hosts.deny中设置了ALL:ALL,则要在/etc/hosts.allow中输入

popper:ALL

另外,在Redhat7中在/etc/xinetd.d下面有个文件ipop3,是默认的pop3服务,你应该删掉这个文件或者注释出该服务。

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:用低代价的服务器过程将文档处理自动化

下一篇:WEB服务器Apache编译指南及高级技巧