分享
 
 
 

rhas3.0上建立一个完整的邮件系统(内含四部分)修正版II

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

rhas3.0 + qmail + mysql + smtp + vpopmail + igenus + qmailadmin

一、安装说明。

为了方便安装我在安装Redhat3.0时选了apache、php、mysql,注意mysql-devel开发包一定要装上,

二、安装ucspi-tcp-0.88

1.这是由于redhat3.0(包括redhat 9.0)的glibc的版本有问题,必须有下列软件及补丁才能编译

http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz

http://qmail.te8.com/rpms/glibc-2.3.1/ucspi-tcp-0.88.a_record.patch

http://qmail.te8.com/rpms/glibc-2.3.1/ucspi-tcp-0.88.errno.patch

http://qmail.te8.com/rpms/glibc-2.3.1/ucspi-tcp-0.88.nobase.patch

2.安装ucspi-tcp-0.88

#tar zxvf ucspi-tcp-0.88.tar.gz

#cd ucspi-tcp-0.88

#patch -p1 < ../ucspi-tcp-0.88.a_record.patch

#patch -p1 < ../ucspi-tcp-0.88.errno.patch

#patch -p1 < ../ucspi-tcp-0.88.nobase.patch

#make

#make setup check

三、安装qmail

1.需要的软件及补丁

http://cr.yp.to/software/qmail-1.03.tar.gz

http://www.ckdhr.com/ckd/qmail-103.patch

http://www.qmail.org/qmailqueue-patch

http://www.shupp.org/patches/qmail-maildir++.patch

http://qmail.te8.com/rpms/glibc-2.3.1/qmail-1.03.errno.patch

http://qmail.te8.com/rpms/glibc-2.3.1/qmail-1.03.qmail_local.patch

http://members.elysium.pl/brush/qmail-smtp-auth/dist/qmail-smtpd-auth-0.31.tar.gz

2.建立目录

# mkdir /var/qmail

# mkdir /var/qmail/alias

3.建组及用户

# groupadd nofiles

# groupadd qmail

# useradd alias -g nofiles -d /var/qmail/alias -s /nonexistent

# useradd qmaild -g nofiles -d /var/qmail -s /nonexistent

# useradd qmaill -g nofiles -d /var/qmail -s /nonexistent

# useradd qmailp -g nofiles -d /var/qmail -s /nonexistent

# useradd qmailq -g qmail -d /var/qmail -s /nonexistent

# useradd qmailr -g qmail -d /var/qmail -s /nonexistent

# useradd qmails -g qmail -d /var/qmail -s /nonexistent

4.打补丁及编绎安装qmail

#tar zxvf qmail-1.03.tar.gz

#tar zxvf qmail-smtpd-auth-0.31.tar.gz

#cp qmail-smtpd-auth-0.31/base64.* qmail-1.03

#patch -d qmail-1.03 < qmail-smtpd-auth-0.31/auth.patch

#cd qmail-1.03

#patch -p1 < ../qmail-103.patch

#patch -p1 < ../qmailqueue-patch

#patch -p1 < ../qmail-maildir++.patch

#patch -p1 < ../qmail-1.03.errno.patch

#patch -p1 < ../qmail-1.03.qmail_local.patch

#vi qmail-smtpd.c 将函数straynewline中的451改为553

#make setup check

#./config-fast domain.com

5.添加别名用户

# touch /var/qmail/alias/.qmail-root

# touch /var/qmail/alias/.qmail-postmaster

# touch /var/qmail/alias/.qmail-mailer-daemon

6.如果存在postfix和sendmail,将它们停用。

#/etc/rc.d/init.d/sendmail stop

#cp /var/qmail/bin/sendmail /usr/sbin/qmail.sendmail

#rm -f /etc/alternatives/mta

#ln -s /usr/sbin/qmail.sendmail /etc/alternatives/mta

#rm -f /usr/lib/sendmail

#rm -f /usr/sbin/sendmail

#ln -s /var/qmail/bin/sendmail /usr/lib/sendmail

#ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail

#chmod 777 /usr/sbin/sendmail

四、安装vpopmail

1.下载vpopmail

http://www.inter7.com/vpopmail/vpopmail-5.2.1.tar.gz

2.建立目录

#mkdir /home/vpopmail

#mkdir /home/vpopmail/etc

3.添加用户和组

#groupadd vchkpw

#useradd -g vchkpw vpopmail

4.添加mysql的vpopmail用户,用于操作vpopmail数据库

#mysqladmin -u root password **** 设置mysql的root密码。

#mysql -u root -p

mysql>create database vpopmail;

mysql>grant all on vpopmail.* to vpopmail@localhost identified by "密码";

5.编译安装vpopmail

#tar zxvf vpopmail-5.2.1.tar.gz

#cd vpopmail-5.2.1

#vi vmysql.h

=========================== vmysql.h ==============================

#define MYSQL_UPDATE_SERVER "localhost"

#define MYSQL_UPDATE_USER "vpopmail"

#define MYSQL_UPDATE_PASSWD "****" (改成你设置的密码)

#define MYSQL_READ_SERVER "localhost"

#define MYSQL_READ_USER "vpopmail"

#define MYSQL_READ_PASSWD "****" (改成你设置的密码)

==========================================================

6.创建tcp.smtp

# vi /home/vpopmail/etc/tcp.smtp

==================== tcp.smtp ============================

127.0.0.1:allow,RELAYCLIENT=""

:allow

==========================================================

#cd /home/vpopmail/etc

#tcprules tcp.smtp.cdb tcp.smtp.tmp < tcp.smtp

7.进行编译:

# ./configure

--prefix=/home/vpopmail

--enable-mysql=y

--enable-incdir=/usr/include/mysql

--enable-libdir=/usr/lib/mysql

--enable-default-domain=domain.com

--enable-passwd=n

--enable-defaultquota=52428800s (10485760:10MB,20971520:20MB,52428800s:50MB)

--enable-tcprules-prog=/usr/local/bin/tcprules

--enable-tcpserver-file=/home/vpopmail/etc/tcp.smtp

--enable-vpopuser=vpopmail

--enable-vpopgroup=vchkpw

--enable-ip-alias-domains=n

# make

# make install-strip

8.创建虚拟域

# cd /home/vpopmail/bin

# /home/vpopmail/bin/vadddomain 域名 密码

# /home/vpopmail/bin/vadduser 用户名 密码 (用户名要带域名,如demo@demo.com)

删除创建域的命令是:./vdeldomain 域名

五、设置smtp-auth

1.修改vchkpw的属性

#chmod 4755 vchkpw

#chown root.root vchkpw

2.下载安装cmd5checkpw

wget http://members.elysium.pl/brush/cmd5checkpw/dist/cmd5checkpw-0.22.tar.gz

#tar zxvf cmd5checkpw-0.22.tar.gz

#cd cmd5checkpw-0.22

#make

#make install

六、生成qmail的启动脚本

#cp /var/qmail/boot/home /var/qmail/rc

# vi /var/qmail/rc //对rc文件进行修改,以决定投送方式:

================= rc =========================

#!/bin/sh

# Using splogger to send the log through syslog.

# Using dot-forward to support sendmail-style ~/.forward files.

# Using qmail-local to deliver messages to ~/Mailbox by default.

exec env - PATH="/var/qmail/bin:$PATH" qmail-start ./Maildir/ splogger qmail &

================== rc ==========================

#vi /var/qmail/smtp

=================== smtp ========================

#!/bin/sh

QMAILDUID=qmaild

NOFILESGID=nofiles

/usr/local/bin/tcpserver -H -R -l 0 -t 1 -v -p -x /home/vpopmail/etc/tcp.smtp.cdb -u $QMAILDUID -g $NOFILESGID 0 smtp /var/qmail/bin/qmail-smtpd domain.com /home/vpopmail/bin/vchkpw /bin/true /bin/cmd5checkpw /bin/true 2>&1 | /var/qmail/bin/splogger smtpd 3 &

=================== smtp ============================

#vi /var/qmail/pop3 //编辑pop3服务的启动脚本

====================== pop3 =========================

#!/bin/sh

/usr/local/bin/tcpserver -H -R 0 pop3 /var/qmail/bin/qmail-popup domain.com /home/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir &

======================= pop3==============================

#chmod 755 /var/qmail/rc

#chmod 755 /var/qmail/smtp

#chmod 755 /var/qmail/pop3

七、运行qmail并测试

#/var/qmail/rc

#/var/qmail/smtp

# /var/qmail/pop3

#ps aux | grep "qmail"

查看POP3和SMTP是否工作

# telnet 192.168.0.1 110

# telnet 192.168.0.1 25

注意在outlook中设置邮件帐号时,用户名后要加上域名,如llzqq@domain.com。如果qmail出现问题,可查看mysql中的vpopmail数据库,/var/log下的mysqld和maillog日志记录。

八、安装并运行igenus

1.下载最新的安装包:igenus_2_20030516_snap.tgz

#tar zxvf igenus_2_20030516_snap.tgz -C /var/www/html

2.建temp文件夹

cd /var/www/html/igenus

mkdir temp

chmod -R 0755 temp

chown -R vpopmail:vchkpw temp

在httpd.conf中设置权限不允许访问temp目录。

<Directory "/var/www/html/webmail/temp">

deny from all

</Directory>

3.修改httpd.conf

#vi /etc/httpd/conf/httpd.conf

User Apache

Group Apache

修改为:

User vpopmail

Group vchkpw

为了解决APACHE的默认语言问题添加这个:

AddDefaultCharset GB2312

#/etc/rc.d/init.d/httpd restart

4.解决个别邮箱拒收邮件的问题(如新浪网)

修改邮件签名信息

#vi /var/www/html/igenus/config/config_inc.php

$CFG_BASEPATH = "/var/www/html/igenus";

$CFG_MYSQL_HOST = 'localhost';

$CFG_MYSQL_USER = 'vpopmail';

$CFG_MYSQL_PASS = '******'; 改成你的密码

$CFG_MYSQL_DB = 'vpopmail';

$CFG_TEMP = $CFG_BASEPATh."/temp";

删除其中的

“iGENUS is a free webmail interface, NO fee, FREE download”

修改其中的http://www.igenus.org为http://domain.com

#vi /var/qmail/control/helohost

=============== helohost ====================

domain.com

=============== helohost ====================

#chmod 755 /var/qmail/control/helohost

如果你用的邮件服务器是postfix就这样处理

postconf -e "smtp_helo_name = 我的邮件服务器的域名(A记录)"

如果你用的邮件服务器是sendmail就这样处理

vi /etc/sendmail.cf

Cw我的邮件服务器的域名(A记录)

5.修正邮箱无退信问题

# rm -f /usr/sbin/sendmail

# ln -s /var/qmail/bin/sendmail

如果用qmailadmin管理邮箱则这样处理

进入qmailadmin -->主菜单“邮件账号”-->Set no default catch all account 就OK了。这时网页上面的CatchAll应该显示为Bounced。

6.修改config_inc.php文件

# cd /var/www/html/igenus/config

# vi config_inc.php

=============== config_inc.php ====================

$CFG_BASEPATH = "/var/www/html/igenus";

$CFG_MYSQL_HOST = 'localhost';

$CFG_MYSQL_USER = 'vpopmail';

$CFG_MYSQL_PASS = '****'; 这里改成你的密码

$CFG_MYSQL_DB = 'vpopmail';

$CFG_TEMP = $CFG_BASEPATh."/temp";

==============================================

7.重新编制Mysql数据库表格

#mysql -u root -p

mysql>use vpopmail;

mysql>alter table vpopmail drop primary key;

mysql>alter table vpopmail add column pw_id int(5) NOT NULL primary key auto_increment;

mysql>create table address (

id int(11) unsigned NOT NULL auto_increment,

pw_id int(5) unsigned NOT NULL default '0',

name varchar(64) NOT NULL default '',

email varchar(128) NOT NULL default '',

UNIQUE KEY id (id),

KEY pw_id (pw_id)

) TYPE=MyISAM;

8.如果需要,用vadddomain和vadduser添加新域名和新用户

9.Qmail限制附件的大小

在/var/qmail/control/databytes 文件中设置附件的大小,可以实现对qmail附件大小的限制,一般安装完成后,这个文件是没有的,你可以自己创建。

smtp方式是以qmail的databytes作限制的

创建databytes并设置邮件最大为4m

# echo 4000000 >/var/qmail/control/databyte

10.限制单域的邮箱数量

vi /home/vpopmail/domains/domain.com/.qmailadmin-limits

===============.qmailadmin-limits ====================

maxpopaccounts 200

default_quota 52428800s

===============.qmailadmin-limits ====================

chmod 700 /home/vpopmail/domains/domain.com/.qmailadmin-limits

chwod vpopmail:vchkpw /home/vpopmail/domains/domain.com/.qmailadmin-limits

这样就把邮箱总数限制在200个,每个邮箱为50M了

11.用qmail封mailfrom

vi/var/qmail/control/badmailfrom

这个控制文件实现拒收邮件功能的,每一个地址要单独一行。而且,不用重起qmail就能生效。例如:

peng@96633.net -----限制一个特定的用户

@sina.com -----限制整个域中的邮件

12.设置igenus 定义允许上传下载的邮件的大小

# vi /etc/php.ini

max_execution_time = 60

memory_limit = 16M

post_max_size = 4M

upload_max_filesize = 4M

file_uploads = On

session.auto_start = 1

register_globals = On

session.bug_compat_42 = 1

session.bug_compat_warn = 0

# vi /etc/httpd/conf.d/php.conf

<Files *.php>

SetOutputFilter PHP

SetInputFilter PHP

LimitRequestBody 4242880

</Files>

九、编辑qmail自启动脚本

#vi /etc/rc.d/init.d/qmail

===================== qmail ======================

#! /bin/sh

# chkconfig: 2545 90 90

# description: qmail (include smtp and pop3) auto start/stop scripts.

. /etc/rc.d/init.d/functions

case "$1" in

start)

echo -n "start qmail:"

/var/qmail/rc &

echo "."

echo -n "start smtp service:"

/var/qmail/smtp

echo "."

echo -n "start pop3 service:"

/var/qmail/pop3

echo "."

;;

stop)

echo "stop qmail:"

killproc qmail-send

killproc qmail-clean

killproc qmail-rspawn

killproc qmail-lspawn

killproc splogger

killproc tcpserver

;;

*)

exit 1

;;

esac

exit 0

==============================================

#chmod 755 /etc/rc.d/init.d/qmail

#chkconfig --add qmail

十、安装autorespond

#tar xzvf autorespond-2.0.2.tar.gz

#cd autorespond-2.0.2

#vi Makefile

将其中的INSTALL_DIR =修改为 /var/qmail/bin

#make

#make install

#cp autorespond /usr/local/bin

十一、安装qmailadmin-1.0.6.tar.gz

tar xzvf qmailadmin-1.0.6.tar.gz

cd qmailadmin-1.0.6

./configure --enable-cgibindir=/var/www/cgi-bin --enable-htmldir=/var/www/html --disable-ezmlmdir

make

make install-strip

再一次执行

chmod -R 0755 /var/www/html/igenus

chmod -R 0755 /var/www/html/images

chown -R vpopmail:vchkpw /var/www/html/igenus

chown -R vpopmail:vchkpw /var/www/html/images

汉化qmailadmin

首先删除qmailadmin安装的菜单文件

rm –f /usr/local/share/qmailadmin/html/en

rm –f /usr/local/share/qmailadmin/html/en-us

生成自己的简体中文菜单文件/usr/local/share/qmailadmin/html/en

vi /usr/local/share/qmailadmin/html/en

000 gb2312

001 主菜单

002 邮件帐号

003 添加邮件机器人:

004 邮件机器人的名字:

005 发送拷贝到邮件地址:

006 标题:

007 添加转发帐号:

008 转发到邮件地址:

009 本地邮件用户名:

010 要转发的邮件地址的格式是:user@domain.com.

本地邮件用户的格式是: popaccount

例如,

如果转发 本地用户: sales到邮件地址: joe@domain.com

那么所有发到sales用户的邮件都将转发到 joe@domain.com这个邮件地址中

011 Add List Moderator

012 Add Moderator to mailing list

013 邮件地址:

014 添加新的用户到邮件类别

015 创建新的邮件列表

016 邮件列表的名字

017 邮件列表所有者的邮件地址:

018 Archived

019 Not archived

020 Block archive. Only moderators are allowed to access the archive.

021 Archive access is open to anyone or subscribers only, depending on the Guard setting.

022 No digest. Do not set up the digest list.

023 Prefix. Set up the list so that the outgoing subject will be prefixed with the list name.

024 No prefix.

025 Guard archive. Archive access requests from unrecognised SENDERs will be rejected.

026 Do not guard archive. Archive access request from any SENDERs will be serviced.

027 Subscriptions do not require confirmation.

028 Subscription requires confirmation by reply to a message sent to the subscription address.

029 Indexed for WWW archive access.

030 The list is created without WWW archive index

031 Unsubscribe does not require confirmation.

032 Unsubscribe requires confirmation by a reply to a message sent to the subscription address.

033 List subscribers. Remote administrators can request a subscriber list, and search the subscriber log.

034 The subscriber list cannot be obtained.

035 Message moderation.

036 Message posting is not moderated.

037 Posts from addresses other than moderators are rejected. This is applicable to message moderated lists only.

038 Others not rejected. For moderated lists, all posts are forwarded to the moderators. The switch has effects only on message moderated lists.

039 Respond to adminstrative requests and allow archive retrieval.

040 Allow only digest creation, remote adminstration, and archive retrieval by remote administrators, (if the list is configured with this options).

041 Allow remote administrators to edit files in text directory

042 Text file editing is not allowed

043 ReQuest address is serviced

044 Do not process messages sent to the request address

045 Enables remote administration

046 No remote administration.

047 Subscription moderation.

048 Subscriptions are not moderated.

049 Trailer

050 No trailer

051 User posts only

052 Do not restrict posts based on SENDER address

053 允许数据库支持

054 主机名

055 端口

056 用户名

057 密码

058 数据库

059 表

060 添加

061 邮件帐号

062 CatchAll:

063 说明

064 修改

用户

065 删除

帐号

066 CatchAll

帐号

067 创建新的邮件帐号

068 帐号别名

069 别名

070 邮件帐号

071 修改

072 删除

073 创建新的别名

074 Forward Accounts

075 转发

076 创建新的转发

077 邮件机器人

078 邮件机器人

079 新的邮件机器人

080 邮件列表

081 列表

082 打开.qmail-default时出错

083 添加

订阅人

084 删除

订阅人

085 列出

订阅人

086 添加

Moderator

087 删除

Moderator

088 列出

Moderators

089 新的邮件列表

090 创建邮件帐号

091 密码 (again):

092 真实姓名

093 列表名

094 提交用户

095 提交新用户到下列邮件列表

096 删除别名

097 确认删除

098 删除邮件机器人

099 数据库设置

100 删除转发

101 删除邮件列表

102 删除用户

103 转发邮件

104 是的, 将它转发到:

105 修改邮件机器人

106 名字

107 说明

108 创建新的邮件地址

109 修改用户

110 新的密码

111 修改用户

112 管理员帐号

113 域名

114 登录

115 Redirects for user

116 Current redirects

117 Add/Replace redirect email

118 Delete rediect

119 添加成功

120 无法添加

121 别名

122 转发

123 Show redirect

124 快捷链接

125 创建新的邮件帐号

126 创建新的别名

127 创建新的转发

128 创建新的邮件机器人

129 创建新的邮件列表

130 CatchAll: Bounced

131 没有用户可供浏览,请返回到上一页

132 默认

133 索引:

134 Set no default catch all account

135 上一页

136 刷新

137 下一页

138 Type in password

139 邮件用户的密码更改成功。

140 密码修改失败。

141 用删除成功。

142 没有认证

143 目录权限错误

144 文件权限错误

145 无效用户内部错误

146 Cannot Do redirect

147 Redirect Now

148 无效邮件地址

149 Cannot Delete Last Entry

150 文件错误

151 Line Deleted Succesfully

152 转发添加成功

153 用户名不存在

154 别名添加成功

155 Invalid Action

156 达到最大的别名数目限制

157 达到最大的转发数目限制

158 达到最大邮件机器人数目限制

159 Invalid DotQmail Type: adddotqmail()

160 别名无效

161 Did not add alias. POP Account must be an existing POP Account.

162 邮件用户名无效

163 本地用户名无效

164 Invalid Alias Type : adddotqmailnow()

165 添加邮件用户的别名失败

166 添加邮件用户的别名成功

167 删除用户的别名/转发出错。

168 添加用户的别名/转发成功。

169 Error deleting redirect/forward for POP Account

170 Redirect/forward for POP Account deleted successfully

171 Error: could not change to directory

172 Only one person can log in as system postmaster at one time. Someone else has logged in. Please only have one login at a time.

173 登录过期,请重新登录

174 无效的邮件机器人名

175 用户名已存在

176 Please fill in Mail Robot name

177 Invalid Owner Email Address

178 请输入标题

179 Please type in something to send

180 邮件机器人添加成功

181 无法删除邮件机器人

182 邮件机器人删除成功

183 邮件机器人修改成功

184 达到最大的邮件列表数

185 无法删除邮件列表数

186 邮件列表删除成功

187 邮件列表添加成功

188 无效的邮件列表名

189 邮件列表中邮件地址一览

190 End of list

191 邮件列表中moderator用户的邮件地址一览

192 返回主菜单

193 添加到主菜单

194 Email address added as a moderator to mailing list

195 从邮件列表中删除订阅人

196 从邮件列表中删除moderator

197 removed as a moderator for mailing list

198 登录无效

199 达到最大的邮件用户数目

200 密码不匹配,请重新输入

201 内存耗尽

202 Where the parameters are:

203 从邮件列表中移除

204 Go user

205 禁止 转发/假期(Vacation)

206 Set remote catch all account

207 Set Remote CatchAll

208 Remote CatchAll Address:

209 允许转发

210 允许保存拷贝和转发

211 转发邮件到:

212 允许假期(Vacaction)

213 Vacation 标题:

214 Vacation 信息:

215 必须提供转发地址

216 必须提供标题

217 刷新主菜单

218 退出

219 Moderators列表

220 Moderator

地址

221 订阅人列表

222 提交

地址

223 用户不存在

224 (点击修改)

225 修改邮件列表

226 邮件列表修改成功

227 诊断

228 总数:

229 不限制

230 订阅人总数:

231 没有列表可供显示

232 没有别名和转发可供显示

233 没有邮件机器人可供显示

生成自己的简体中文菜单文件/usr/local/share/qmailadmin/html/en-us

cp /usr/local/share/qmailadmin/html/en /usr/local/share/qmailadmin/html/en-us

生成admin表

mysql>use vpopmail;

mysql>CREATE TABLE `admin` (

`id` tinyint(3) unsigned NOT NULL auto_increment,

`domain` varchar(128) NOT NULL default '',

`quota` smallint(5) unsigned NOT NULL default '0',

`total` smallint(5) unsigned NOT NULL default '0',

`createtime` timestamp(14) NOT NULL,

`login` char(1) NOT NULL default '',

`cur_total` smallint(5) NOT NULL default '0',

`cur_quota` smallint(5) NOT NULL default '0',

PRIMARY KEY (`id`),

UNIQUE KEY `domain` (`domain`)

) TYPE=MyISAM PACK_KEYS=1 AUTO_INCREMENT=1 ;

十二、建立QMAIL防火墙FOR ADSL。

echo 1 >/proc/sys/net/ipv4/ip_forward

/sbin/iptables -F INPUT

/sbin/iptables -F FORWARD

### enable client to vist the web-server on internet

/sbin/iptables -A OUTPUT -o ppp0 -p tcp --sport 1024:65535 -d any/0 --dport 80 -j ACCEPT

/sbin/iptables -A INPUT -i ppp0 -p tcp ! --syn -s any/0 --sport 80 --dport 1024:65535 -j ACCEPT

### SET IP-MASQUERADE

/sbin/iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

### ip packets limit

/sbin/iptables -A FORWARD -f -m limit --limit 10/s --limit-burst 10 -j ACCEPT

/sbin/iptables -A FORWARD -p icmp -m limit --limit 1/s --limit-burst 3 -j ACCEPT

/sbin/iptables -A INPUT -i ppp0 -p icmp -j DROP

### enable some internet-service on intranet for the clients on internet

/sbin/iptables -A INPUT -p tcp --dport 80 -j ACCEPT

### open some port for ftp-users to use passive mode

/sbin/iptables -A INPUT -i ppp0 -p tcp --dport 25 -j ACCEPT

/sbin/iptables -A INPUT -i ppp0 -p tcp --dport 110 -j ACCEPT

### disable any port you don't want to be visited

/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

/sbin/iptables -A INPUT -i ppp0 -j DROP

十三、补充说明

如果你按照上面的步骤进行了安装,你还需要对一些PHP页面进行修改以便适合你的应用,

可使用VI直接打开修改。我这里就不在一一列举了。

关于上面提到的软件包也可以从我这里下载:ftp://test:123456@nero.3322.org/qmail

测试邮箱:http://nero.3322.org/igenus

管理邮箱:http://domain.com/cgi-bin/qmailadmin

建立qmail服务器的防病毒系统

所需软件:

maildrop-1.5.2.20030423.tar.gz

perl-Time-HiRes-1.38-3.i386.rpm

clamav-0.65.tar.gz

qmail-scanner-1.20.tgz

安装maildrop:

tar zxvf maildrop-1.5.2.20030423.tar.gz

cd maildrop-1.5.2.20030423

./configure

make

make install-strip

make install-man

安装 perl-Time-HiRes-1.38-3.i386.rpm

rpm -ivh perl-Time-HiRes-1.38-3.i386.rpm

安装clamav-0.65.tar.gz

groupadd clamav

useradd –g clamav –s /bin/false clamav

tar zxvf clamav-0.65.tar.gz

cd clamav-0.65

./configure

make check

make install

更新病毒库

运行freshclam

把freshclam加入crontab 定时更新病毒库,

vi /usr/local/etc/clamav.conf

注释掉Example

执行clamscan

执行clamd

然后执行clamdscan

安装qmail-scanner-1.20.tgz

groupadd qscand

useradd -g qscand -s /bin/false qscand

tar zxvf qmail-scanner-1.20.tgz

cd qmail-scanner-1.20

./configure --qmail-queue-binary /var/qmail/bin/qmail-queue --admin postmaster

--domain nero.3322.org --notify sender,admin --local-domains nero.3322.org --lang en_GB --debug yes --unzip yes --scanners clamscan --install

在编译过程中需要安装perl-DB_File-x.x.x.rpm,在光盘中可找到。

chown qscand:qscand /var/qmail/bin/qmail-scanner-queue.pl

chmod 4755 /var/qmail/bin/qmail-scanner-queue.pl

然后用一个普通用户登陆,执行/var/qmail/bin/qmail-scanner-queue.pl -z

如果没有Can't do setuid出现,恭喜你,如果有

回到安装文件目录,有个contrib目录,

make

make install

附加步骤:

chown qscand:qscand /var/qmail/bin/qmail-scanner-queue

chmod 4755 /var/qmail/bin/qmail-scanner-queue

chmod 0755 /var/qmail/bin/qmail-scanner-queue.pl

然后用一个普通用户登陆,执行

/var/qmail/bin/qmail-scanner-queue -z

/var/qmail/bin/qmail-scanner-queue -g

修改环境变量

1.在你的qmail启动脚本加入

QMAILQUEUE=/var/qmail/bin/qmail-scanner-queue.pl

如果作了附加步骤用下面的

QMAILQUEUE=/var/qmail/bin/qmail-scanner-queue

export QMAILQUEUE

2.修改qmail-scanner-queue.pl中的

my $clamscan_options="-r --disable-summary --max-recursion=10 --max-space=1000000";为

my $clamscan_options="-r --mbox --disable-summary --max-recursion=10 --max-space=1000000";

重起qmail 测试

这里有测试程序

/software/qmail-scanner-1.20/contrib/test_installation.sh

主要的排错监测日志

/var/spool/qmailscan/quarantine.log

/var/spool/qmailscan/qmail-queue.log

/var/log/clamd.log

/var/log/maillog

给qmail + vpopmail + igenus邮件服务器添加新功能

1.注册新用户和找回密码

建立数据库

mysql -u root -p

mysql> use vpopmail;

mysql> CREATE TABLE password (

id int(11) unsigned NOT NULL auto_increment,

pw_name varchar(32) NOT NULL default '',

pw_domain varchar(64) NOT NULL default '',

problem varchar(32) NOT NULL default '',

answer varchar(32) NOT NULL default '',

PRIMARY KEY (id)

) TYPE=MyISAM PACK_KEYS=1;

安装软件包 password.rar其中有五个文件

signup.php,submit.php是注册用的

getpassword.php,getpassword2.php,getpassword3.php是找回密码用的.

中间有关默认域名的地方.自行修改为自己的默认域名.

如果igenus安装到/var/www/html/igenus的话,就把这五个文件解压缩到/var/www/html目录下,然后在首页的index.php文件中增加相应的链接就可以了.

2.自动转发

把发往自己邮箱的邮件定向到其他邮箱

mysql> use vpopmail;

mysql> CREATE TABLE forword (

id int(11) unsigned NOT NULL auto_increment,

pw_id int(5) NOT NULL default '0',

email varchar(64) NOT NULL default '',

success int(1) NOT NULL default '0',

save int(1) NOT NULL default '0',

PRIMARY KEY (id)

) TYPE=MyISAM PACK_KEYS=1;

3.个人资料

mysql> use vpopmail;

mysql> CREATE TABLE personal (

id int(11) unsigned NOT NULL auto_increment,

pw_id int(5) NOT NULL default '0',

truename varchar(10) NOT NULL default '',

fax varchar(20) NOT NULL default '',

telephone varchar(15) NOT NULL default '',

sex int(1) NOT NULL default '0',

year int(4) NOT NULL default '',

month int(2)NOT NULL default '',

day int(2)NOT NULL default '',

education varchar(4) NOT NULL default '',

marital int(1) NOT NULL default '',

occupation varchar(15) NOT NULL default '',

companyname varchar(30) NOT NULL default '',

province varchar(6) NOT NULL default '',

PRIMARY KEY (id)

) TYPE=MyISAM PACK_KEYS=1;

4.通告栏

只有域管理员可以发给该域的所有用户通告,而该域的所有用户只可以查看通告

mysql> use vpopmail;

mysql> CREATE TABLE board (

id int(11) unsigned NOT NULL auto_increment,

num int(5) NOT NULL default '0',

title varchar(50) NOT NULL default '',

content varchar(255) NOT NULL default '',

host varchar(50) NOT NULL default '',

allhost int(1) NOT NULL default '0',

PRIMARY KEY (id)

) TYPE=MyISAM PACK_KEYS=1;

5.收藏夹

mysql>use vpopmail;

mysql>CREATE TABLE stow (

id int(11) unsigned NOT NULL auto_increment,

pw_id int(5) NOT NULL default '0',

name varchar(64) NOT NULL default '',

http varchar(128) NOT NULL default '',

memo varchar(255) NOT NULL default '',

PRIMARY KEY (id)

) TYPE=MyISAM PACK_KEYS=1;

6.名片夹

mysql>use vpopmail;

mysql>CREATE TABLE card (

id int(11) unsigned NOT NULL auto_increment,

pw_id int(5) NOT NULL default '0',

addrname varchar(10) NOT NULL default '',

companyname varchar(30) NOT NULL default '',

address varchar(255) NOT NULL default '',

job varchar(255) NOT NULL default '',

telephone varchar(20) NOT NULL default '',

mobile varchar(15) NOT NULL default '',

email varchar(50) NOT NULL default '',

bearing varchar(4) NOT NULL default '',

note varchar(255) NOT NULL default '',

PRIMARY KEY (id)

) TYPE=MyISAM PACK_KEYS=1;

Linux+adsl+qdns

一、安装拨号软件包

为了以后的防火墙应用我安装了两块网卡要确保其工作正常:

# ifconfig eth0 eth0接内网

# ifconfig eth1 eth1接ADSL

删除默认网关:

在文件 /etc/sysconfig/network 中删除 GATEWAY= 这一行,然后执行:

# service network restart

安装pppd软件包。

如果存在文件 /usr/sbin/pppd,则说明已经安装了pppd;

如果未安装,从RedHatLinux安装光盘上可找到这个软件包。

# rpm –ivh rp-pppoe-3.5.2.i386.rpm

二、配置PPPOE客户端软件

adsl安装很简单我就不多说了

# adsl-setup

安装完软件包后配置/etc/sysconfig/network-scripts/ifcfg-ppp0

# vi /etc/sysconfig/network-scripts/ifcfg-ppp0,修改

PPPOE-TIMEOUT=0

CONECT-TIMEOUT=0

# cp /etc/sysconfig/network-scripts/ifcfg-

ppp0 /etc/ppp/pppoe.conf

三、安装设置动态域名QDNS

登录www.3322.org网站,注册一个用户,申请一个动态域名

domain.3322.org,

并下载linux客户端软件:ez-ipupdate-3.0.10-linux-i386.tgz

安装软件:

# tar zxvf ez-ipupdate-3.0.10-linux-i386.tgz

# mv ez-ipupdate-3.0.10-linux-i386 /usr/local/ezip

# chmod 755 /usr/local/ezip/ez-ipupdate

# chmod 755 /usr/local/ezip/qdns.conf

# cp /usr/local/ezip/qdns.conf /usr/local/bin

# cp /usr/local/ezip/ez-ipupdate /usr/local/bin

编辑/usr/local/ezip/qdns.conf文件:

# vi /usr/local/ezip/qdns.conf

service-type=qdns

user=your use rname:your password

host=domain.3322.org

interface=ppp0

max-interval=2073600

cache-file=/tmp/ez-ipupdate.cache

将当前ip更新到我们申请的域名:

# /usr/local/ezip/ez-ipupdate –c qdns.conf

系统会提示数据更新成功。

实现拨号连接建立后自动更新域名:

修改/etc/ppp/ip-up脚本

# vi /etc/ppp/ip-up

在exit 0前增加一行:

/usr/local/ezip/ez-ipupdate -c /usr/local/ezip/qdns.conf

设置每隔五分钟自动同步一下你的域名:

# crontab -e然后加入下面一行:

0-59/50-59/5 * * * * /usr/local/bin/ez-ipupdate -

c /usr/local/bin/qdns.conf

四、测试

# adsl-start

# adsl-status

在输出中应该含有关于 ppp0 的信息,包括从dhcp得到的IP 地址。

# ping domain.3322.org

如果解析出正确的ip,说明拨号连接已经建立并且并且能正确的解析动

态域名。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
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- 王朝網路 版權所有