当前位置: 首页 > 图文教程 > 服务器 > Linux服务器 > 设置一个企业级的LinuxPOP3服务器

Linux服务器
在Linux下架设CS1.4服务器的最好方法
使用Twisted实现一个简单Web服务器
基于IP,port和域名三种虚拟主机配置方法
Windows下通过xmanager远程桌面控制Linux(图)
搭建Linux安全的Squid代理服务器(图)
Linux:使用vsftpd构建安全的FTP服务(图)
网管教程:如何使用HTTP压缩优化服务器(图)
Linux+Apache+Mysql+PHP典型配置
FedoraCoreSamba3.0服务器实战调试
FedoraCoreSamba3.0轻松搞定PDC域服务器
在apach5.x中改变servlet的上下文
静态/动态编译在apache+php+mysql的应用
用实验快速掌握web服务器Apache
ApacheHTTP最新官方配置(中译版)
Linux应用:动手加固OpenSSH服务器
linux下的DHCP服务器的配置
Linux下Apache并发连接数和带宽控制
FreeBSD下利用Freemail轻松组建邮件系统
Linux中.htaccess文件使用手册
用实验快速学习Samba服务器设置

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-18   浏览: 43 ::
收藏到网摘: n/a


一:概述
本文旨在介绍如何使用开放源软件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目录,改进服务器性能,特别是有大量用户时)

注:这样的话,如果用户的信箱为[email protected],则文件应存在/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服务,你应该删掉这个文件或者注释出该服务。

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