设置一个高容量的Linux POP3服务器

2016-01-29 19:05 7 1 收藏

设置一个高容量的Linux POP3服务器,设置一个高容量的Linux POP3服务器

【 tulaoshi.com - Linux 】

  一: 概述 
本文旨在介绍如何使用开放源软件Procmail和Qpopper来配置一台可供大量用户使用的POP3服务器,重点在于如何保持最佳的服务器性能。 
二: 步骤 
软件环境为RedHat Linux 7.1 
1. 下载最新版的Procmail和Qpopper 
Procmail 最新版本现在是3.21 可从
http://www.procmail.org/procmail-3.21.tar.gz下载。 
Qpopper 最新版本现在是4.0 可从
http://www.eudora.com/qpopper_general/下载 
2. 编译Qpopper 
假设下载的文件放在/root
#cd /root 
#tar xvfz qpopper4.0.3.tar.gz 
#cd qpopper4.0.3 
#./configure --enable-hash-spool=2
--enable-log-login
--enable-server-mode
--enable-fast-update
--enable-shy
--enable-spool-dir=/usr/mail
--enable-specialauth 
注释: 
--enable-specialauth 使用/etc/shadow 密码认证 
--enable-hash-spool=2 使用二级hash结构 
--enable-spool-dir=/usr/mail 则用户信箱文件为/usr/mail/j/e/jephe 
--enable-log-login 记录下成功的POP3登录进入syslog 
--enable-server-mode 和 --enable-fast-update
不要让qpopper在用户存取信箱时拷贝信箱文件到临时文件
减少磁盘I/O,增强性能
--enable-shy 让服务器响应时不要显示版本信息,增强安全性 
#make 
#make install 
编辑文件/etc/inetd.conf 
在/etc/xinetd.d下创建文件pop3,包含下面的内容: 
service pop3 

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

注释:
-F enable fast update
-S enable server mode (在用户对该服务器没有shell存取时做)
-s 打开LOG功能
-c 忽略用户名的大小写
-R 不对连接进来的IP地址做反向域名检查
-T 设定超时时间
这样设定之后,如果用户jephe收取信件时,则先锁定信箱文件/usr/mail/j/e/jephe创建锁文件.jephe.pop,检查信件数目,退时出更新状态,生成.jephe.cache文件。
否则正常模式下是先把/usr/mail/j/e/jephe拷贝成.jephe.pop,最后用户检查信箱完毕再拷贝回来,增加了I/O处理时间
如果不是redhat 7.1则在/etc/inetd.conf中注释以pop-3开头的行,然后在后面再添加下面的行: pop-3 stream tcp nowait.400 root /usr/local/sbin/popper -F -S -s -c -R -T120
nowait:400中的400是指每分钟最多可接受的连接请求数目 
如果你在/etc/hosts.deny中设置了ALL:ALL,则要在/etc/hosts.allow中输入 
popper:ALL 
3. 编译Procmail 
假设下载的文件放在/root 
#cd /root 
#tar xvfz procmail-3.21.tar.gz 
#cd procmail-3.21 
#vi src/authenticate.c 
改#define MAILSPOOLDIR行后面的/var/spool/mail为 "/usr/mail/" (这里我用的是
/usr/mail) 
改#define MAILSPOOLHASH 后面的0 为 2 (用二级hash目录,改进服务器文件系统性能,特别是有大量用户时)
注:这样的话,如果用户的信箱为jephe@domain.com,则文件应存在
/usr/mail/j/e/jephe 
#mv /var/spool/mail /var/spool/mail.bak 
注:先换名这个目录,因为可能当编译时如果能找到该目录,则优先用该目录及hash层次结构,这样的话将存储用户邮件到文件/var/spool/mail/j/e/jephe.如果你就想用这个目录,就不用改上面的MAILSPOOLDIR行。 
#make 
#make install 
#make install-suid 
然后以root身份运行#procmail -v检查用户的邮件路径确认为/usr/mail/r/o/root。 
4. 创建POP3用户 
你不需要为mail用户分配home目录,也不需要设置其主目录为/usr/mail/j/e (假定用户为jephe),用下面的命令创建用户。 
#useradd jephe -c "Jephe Wu" -g mail -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 
5. FAQ
a. 编译qpopper后,仍需在命令行上使用-F -S参数以启动服务器模式和快速更新,请放-F在-S

来源:https://www.tulaoshi.com/n/20160129/1508421.html

延伸阅读
       Squid -- Linux下的一个优秀代理服务器软件使用详解   · 闫建勇·CPCW       做为眼下最流行的操作系统,Linux已经越来越受到世人的关注。虽然目前Linux的软件还不是很丰富,替代WINDOWS作为普通PC机操作系统还为时过早,但是在服务器领域,Linux的稳定性,可操...
标签: ASP
  2000082805.aspx ------------------------------------------------------------- <%@ Register TagPrefix="CJ" Namespace="cjServerControls" % <html   <head   </head   <body     <form method="post" action="2000...
本文的对象是COM编程初学者,其目的旨在描述如何用ATL创建COM服务器,以及如何在VC或VB编写的客户端应用程序中调用COM服务器。为了不给初学者增加负担,本文不打算深入讨论COM和IDL的细节,而是展示用ATL创建简单的COM对象所需要的步骤。希望通过这篇文章能刺激你学习COM编程的欲望。 第一步:运行ATL COM向导(参见图一) 你要...
标签: 服务器
登陆路由器管理界面 打开浏览器,输入登陆地址,登陆路由器管理界面,接着输入用户名和密码进行登陆。 点击“dhcp服务器” 点击“dhcp服务器”选项,然后勾选“启用 dhcp服务器”。接着输入“地址池开始地址”和“地址池结束地址”。 (这两部分的设置要确保与路由器处于同一网段) 重启路由器 设置完成后,点击“保存”按钮,然后...
标签: 电脑入门
POP3/SMTP开关如何开启_QQ邮箱里的POP3/SMTP什么开启 为了保障用户邮箱的安全,QQ邮箱设置了POP3/SMTP的开关。系统缺省设置是“关闭”,在用户需要POP3/SMTP功能时请“开启”。

经验教程

572

收藏

32
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部