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

Linux服务器
linux下用cron定时执行任务的方法
.htaccess绑定域名到子目录的方法
linux apache下虚拟主机配置方法
apache 局域网访问配置方案
linux Apache服务器系统安全设置与优化
linux中mac地址绑定方法
linux托盘不断闪烁之解决方法
Apache配置 虚拟转向实例
Apache No space left on device的解决办法
Apache rewrite的重写相关的参数说明
LINUX入门级常用命令20条整理
Ubuntu设置开机自动挂载所有格式硬盘分区
5个可能被你忽略的Linux安全设置方法
学习Apache的mod rewrite、access写法
改版时保留原链接,创建新的URL的方法
rsync中文手册之使用rsync实现网站镜像和备份linux
rsync 数据同步使用详解
linux URL的301重定向代码分析
eclipse3.2.2 + MyEclipse5.5 + Tomcat5.5.27 配置数据库连接池
Apache服务器二级域名的完美实现

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-18   浏览: 53 ::
收藏到网摘: 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