⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1410.html

📁 著名的linux英雄站点的文档打包
💻 HTML
📖 第 1 页 / 共 4 页
字号:
                          <TR>
                            <TD background="images/bgi.gif" tppabs="http://www.linuxhero.com/docs/images/bgi.gif" 
                          height=30></TD></TR></TBODY></TABLE>
                        <TABLE cellSpacing=0 cellPadding=3 width="95%" 
                        align=center border=0>
                          <TBODY>
                          <TR>
                            <TD>
                              <TABLE cellSpacing=0 cellPadding=3 width="100%" 
                              border=0>
                                <TBODY>
                                <TR>
                                      <TD vAlign=top> 
<p><FONT class=normalfont><B><font color=blue>qmail+vpopmail+squirrelmail安装经验谈</font></B></FONT><BR><FONT class=smallfont color=#ff9900>2004-04-23 15:18 pm</FONT><BR><FONT class=normalfont>作者:作者<br>来自:Linux知识宝库<br>联系方式:无名<br><br>参考文档: http://www.pipeline.com.au/staff/mbowe/isp/webmail-server.htm<br>
http://www.jerfu.com/toaster/FullToaster_1.0.6.html<br>
http://shupp.org/toaster/<br>
<br>
本文将结合以上三个文档,介绍自己在 Solaris 8 下和 RedHat 7.2 下的安装经验。<br>
LAMP 的安装,不再赘述,包括 SSL 的支持也不在这里叙述。笔者尽量用简明的<br>
安装脚本来解释安装中需要注意的问题。<br>
<br>
作者:FreeLAMP.com 徐永久<br>
最后更新:2003年6月10日 星期二<br>
<br>
各种软件的下载地点在文后列出。我喜欢把下载以后的文件集中在一个目录存放,<br>
假设我们把下载后的文件存放的目录叫做 $QM_GZDIR 表示存放 qmail 相关的 .tar.gz 的目录。<br>
在下面的安装脚本中,你可以用 export QM_GZDIR=/root/download/qmail 等来使用这个变量。<br>
<br>
一、安装 UCSPI-TCP<br>
<br>
cd /usr/local/src<br>
tar xzf $QM_GZDIR/ucspi-tcp-0.88.tar.gz<br>
chown -R root.root ucspi-tcp-0.88<br>
cd ucspi-tcp-0.88<br>
# 对 rblsmtpd 打补丁,使之能够使用所有最新的 RBL 区<br>
# 这个补丁可以定制一个错误信息返回给发信人。<br>
patch -p0 rblsmtpd.c &lt; $QM_GZDIR/ucspi-rss.diff<br>
# 修改 rblsmtpd.c 以增加错误文本的最大长度,从 200个字符修改为 500 个。<br>
# 这样就可以把足够说明问题的信息返回给被 RBL 过滤掉的发件人。<br>
<br>
vi rblsmtpd.c<br>
去 166 行,修改<br>
<br>
if (text.len &gt; 200) text.len = 200;<br>
<br>
为:<br>
<br>
if (text.len &gt; 500) text.len = 500;<br>
<br>
make<br>
make setup check<br>
<br>
<br>
二、安装 DAEMONTOOLS<br>
<br>
mkdir -p /package<br>
chmod 1755 /package<br>
cd /package<br>
tar xzfp $QM_GZDIR/daemontools-0.76.tar.gz<br>
cd admin/daemontools-0.76<br>
package/install<br>
<br>
安装完毕,用 ps -ef|grep sv 就可以看到有进程在跑了。<br>
需要注意的是,在 Solaris 上需要修改 /etc/inittab 中的<br>
SV:123456:respawn:/command/svscanboot<br>
为:<br>
SV:123456:respawn:/command/svscanboot &lt;/dev/null &gt;/dev/msglog 2&gt;&1<br>
才可以看到进程运行。<br>
无论是 Solaris 还是 Linux ,如果不想 daemontools 运行,可以注释掉<br>
inittab 中的这句话,然后用 init q 命令重新刷新一下运行级别即可。<br>
<br>
三、安装 qmail<br>
这部分是最冗长,也是最核心的部分。各人有各人的做法,真的是千奇百怪。<br>
或许是系统的体例或者习惯不一样吧,例如很多的文档喜欢把 .tar.gz 解压到<br>
/var/src 下,我认为 Linux 下的作风是 /usr/local/src ,因此我固执的把这种作风<br>
移植到了 Solaris 上面。<br>
<br>
cd /usr/local/src<br>
groupadd nofiles<br>
useradd -g nofiles -d /var/qmail qmaild<br>
useradd -g nofiles -d /var/qmail qmaill<br>
useradd -g nofiles -d /var/qmail qmailp<br>
useradd -g nofiles -d /var/qmail/alias alias<br>
groupadd qmail<br>
useradd -g qmail -d /var/qmail qmailq<br>
useradd -g qmail -d /var/qmail qmailr<br>
useradd -g qmail -d /var/qmail qmails<br>
tar xzf $QM_GZDIR/qmail-1.03.tar.gz<br>
cd qmail-1.03<br>
# 对 dns 打补丁<br>
patch -p1 &lt; $QM_GZDIR/qmail-103.patch<br>
# 对 qmailqueue 打补丁<br>
# 这个补丁能支持其他一些流行的附加产品,例如 Qmail-Scanner<br>
patch -p1 &lt; $QM_GZDIR/qmailqueue-patch<br>
# 针对 qmail-local 和 qmail-pop3d 能和 maildir++ quota 兼容而打补丁<br>
patch &lt; $QM_GZDIR/qmail-maildir++.patch<br>
# 针对本地时间戳打补丁,使邮件头上的时间显示为本地时间而不是 GMT。<br>
patch -p1 &lt; $QM_GZDIR/qmail-date-localtime.patch.txt<br>
# 支持 badmailfrom 的日志记录以及 badrcptto 功能。<br>
patch &lt; $QM_GZDIR/qmail-badmailfrom-badrcptto.patch.txt<br>
# 修改qmail-smtpd.c ,以防止远程服务器发送非法格式的邮件,导致服务死循环。<br>
vi qmail-smtpd.c<br>
在大约 51 行左右把 straynewline 函数的 451 修改成 553<br>
<br>
make<br>
make setup check<br>
(cd ~alias; touch .qmail-postmaster .qmail-mailer-daemon .qmail-root)<br>
chmod 644 ~alias/.qmail*<br>
./config-fast mail.abc.com<br>
cp $QM_GZDIR/qmailctl.txt /var/qmail/bin/qmailctl<br>
chmod 755 /var/qmail/bin/qmailctl<br>
ln -s /var/qmail/bin/qmailctl /etc/rc.d/init.d/qmail<br>
ln -s /var/qmail/bin/qmailctl /usr/bin<br>
mkdir -p /var/qmail/supervise/qmail-send/log<br>
mkdir -p /var/qmail/supervise/qmail-smtpd/log<br>
mkdir -p /var/qmail/supervise/qmail-pop3d/log<br>
chmod +t /var/qmail/supervise/qmail-send<br>
chmod +t /var/qmail/supervise/qmail-smtpd<br>
chmod +t /var/qmail/supervise/qmail-pop3d<br>
<br>
vi /var/qmail/supervise/qmail-send/run<br>
#!/bin/sh<br>
exec env - PATH="/var/qmail/bin:$PATH" qmail-start ./Maildir/<br>
<br>
vi /var/qmail/supervise/qmail-send/log/run<br>
#!/bin/sh<br>
# Keep 30 logs of max 10Mb each<br>
#<br>
# They will get rotated when they reach 10Mb in size,<br>
# or at midnight when our crontab script fires (whichever event comes 1st)<br>
exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t s10000000 n30 /var/log/qmail/send<br>
<br>
vi /var/qmail/supervise/qmail-smtpd/run<br>
#!/bin/sh<br>
QMAILDUID=`id -u qmaild`<br>
NOFILESGID=`id -g qmaild`<br>
<br>
exec /usr/local/bin/softlimit -m 2000000 <br>
/usr/local/bin/tcpserver <br>
-v -x /home/vpopmail/etc/tcp.smtp.cdb <br>
-c 20 -R -u "$QMAILDUID" -g "$NOFILESGID" 0 smtp <br>
/usr/local/bin/rblsmtpd -b -C <br>
-r 'relays.ordb.org:Your message was rejected because the mail server you use is configured to allow OPEN RELAY - More detailed information regarding this problem is available from http://www.ordb.org/lookup/?%IP% - Please forward this error through to your email server support staff for easy resolution.' <br>
-r 'inputs.relays.osirusoft.com:Your message was rejected because the mail server you use is either configured to allow OPEN RELAY - More information regarding this problems is available at http://relays.osirusoft.com/cgi-bin/rbcheck.cgi?addr=%IP% - Please forward this error to your email server support staff for resolution.' <br>
-r 'proxies.relays.monkeys.com:Your message was rejected because the message was sent from an OPEN PROXY - More information regarding this problems is available at http://www.monkeys.com/upl/listed-ip-0.cgi?ip=%IP% - Please forward this error to your email server support staff for resolution.' <br>
/var/qmail/bin/qmail-smtpd 2&gt;&1<br>
<br>
<br>
vi /var/qmail/supervise/qmail-smtpd/log/run<br>
#!/bin/sh<br>
# Keep 30 logs of max 10Mb each<br>
#<br>
# They will get rotated when they reach 10Mb in size,<br>
# or at midnight when our crontab script fires (whichever event comes 1st)<br>
exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t s10000000 n30 /var/log/qmail/smtpd<br>
<br>
vi /var/qmail/supervise/qmail-pop3d/run<br>
#!/bin/sh<br>
exec /usr/local/bin/softlimit -m 3000000 <br>
/usr/local/bin/tcpserver <br>
-v -x /etc/tcp.pop3.cdb -c 30 -R 0 pop3 <br>
/var/qmail/bin/qmail-popup mail.abc.com <br>
/home/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir 2&gt;&1<br>
<br>
vi /var/qmail/supervise/qmail-pop3d/log/run<br>
#!/bin/sh<br>
# Keep 30 logs of max 10Mb each<br>
# They will get rotated when they reach 10Mb in size,<br>
# or at midnight when our crontab script fires (whichever event comes 1st)<br>
exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t s10000000 n30 /var/log/qmail/pop3d<br>
<br>
修改 crontab ,使之每天转储 qmail 的日志文件。<br>
<br>
crontab -e<br>
0 0 * * * /usr/local/bin/svc -a /service/qmail-smtpd/log<br>
0 0 * * * /usr/local/bin/svc -a /service/qmail-send/log<br>
0 0 * * * /usr/local/bin/svc -a /service/qmail-pop3d/log<br>
<br>
<br>
chmod 755 /var/qmail/supervise/qmail-send/run<br>
chmod 755 /var/qmail/supervise/qmail-send/log/run<br>
chmod 755 /var/qmail/supervise/qmail-smtpd/run<br>
chmod 755 /var/qmail/supervise/qmail-smtpd/log/run<br>
chmod 755 /var/qmail/supervise/qmail-pop3d/run<br>
chmod 755 /var/qmail/supervise/qmail-pop3d/log/run<br>
mkdir /var/log/qmail<br>
mkdir /var/log/qmail/smtpd<br>
mkdir /var/log/qmail/send<br>
mkdir /var/log/qmail/pop3d<br>
chown -R qmaill /var/log/qmail<br>
ln -s /var/qmail/supervise/qmail-send /var/qmail/supervise/qmail-smtpd /var/qmail/supervise/qmail-pop3d /service<br>
<br>
当您实施到这里的时候,运行 qmailctl start 你就可以看到四个 qmail 的进程在运行了。在我的机器上用<br>
ps -ef|grep qmail 可以看到其中有如下四行:<br>
qmails 18985 18975 0 16:28 ? 00:00:00 qmail-send<br>
root 18993 18985 0 16:28 ? 00:00:00 qmail-lspawn ./Maildir/<br>
qmailr 18994 18985 0 16:28 ? 00:00:00 qmail-rspawn<br>
qmailq 18995 18985 0 16:28 ? 00:00:00 qmail-clean<br>
<br>
这个时候,并不能保证你能用 telnet localhost 25 或者 110 正常登录了。<br>
如果缺少 /home/vpopmail/etc/tcp.smtp 文件,那么系统也不能正常工作。<br>
这个文件作在 /home/vpopmail 下的原因是 vpopmail 配置默认就在这里。<br>
这个文件用于控制允许 relay 的服务器。<br>
<br>
vi /home/vpopmail/etc/tcp.smtp<br>
#------------------------------------------------------<br>
# DESCRIPTION OF THE RULES TO REMIND ME OF HOW THIS FILE WORKS<br>
#<br>
# If you set 'allow', this means that our mail server will allow<br>
# the specified ip range to make a TCP connection to our server<br>
#<br>
# If you set 'deny', this means that our mail server will not allow<br>
# the specified ip range to make a TCP connection to our server<br>
#<br>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -