分享
 
 
 

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

王朝system·作者佚名  2008-05-18
窄屏简体版  字體: |||超大  

一: 概述

本文旨在介绍如何使用开放源软件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的前面

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有