设置一个企业级的LinuxPOP3服务器
点击次数:28 次 发布日期:2008-11-22 09:42:42 作者:源代码网
|
源代码网推荐一:概述 源代码网推荐本文旨在介绍如何使用开放源软件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 "to"IMPLEMENTATION ". 源代码网推荐为什么? 源代码网推荐因为如果不改的话,用户用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服务,你应该删掉这个文件或者注释出该服务。 源代码网推荐 源代码网推荐3.创建POP3用户 源代码网推荐 源代码网推荐你不需要为mail用户分配home目录,也不需要设置其主目录为/usr/mail/j/e(假定用户为jephe),用下面的命令创建用户。 源代码网推荐 源代码网推荐#useraddmailuser1-c"MailUser1"-gmail-d/dev/null-s/bin/false 源代码网推荐 源代码网推荐再可以写一个批命令用chpasswd给每个用户以同样的password. 源代码网推荐 源代码网推荐a.首先用passwd为mailuser1设置密码,假定为"abc123",检查/etc/shadow中的密码,我的机器上"abc123"为$1$G22Plicn$r5.bSe0U7DbaHN7tCevTR/ 源代码网推荐 源代码网推荐b.创建一个新文件/tmp/password,每行包括一个用户名:密码,可从/etc/passwd用下面的命令取得cat/etc/passwd|awk-F:"{print$1}"|sed-e"s/$/:$$1$G22Plicn$r5.bSe0U7DbaHN7tCevTR//g" 源代码网推荐 源代码网推荐c.然后运行chpasswd</tmp/password源代码网供稿. |
