http://www.chinaunix.net 作者:llzqq 发表于:2004-02-28 07:39:56
rhas3.0 + qmail + mysql + smtp + vpopmail + igenus + qmailadmin
一、安装说明。
为了方便安装我在安装Redhat3.0时选了apache、php、mysql,注意mysql-devel和mysql-server开发包一定要装上,其中mysql-server可以在网上找原码重编译生成也可以到我的FTP下载:ftp://download:123456@nero.3322.org/DOWNLOAD/POSTFIX/mysql-server-3.23.58-1.i386.rpm,另外大家在安装LINUX时一定要装上软件开发和内核开发两个软件组,这样可以避免不必要的由于编译环境的问题而导致的安装问题,这点对于LINUX新手优为重要。
二、安装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 ##如果你已经卸载了sendmail可省略这步
# cd /usr/sbin
# 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/igenus/temp
chmod -R 0755 /var/www/html/images
chown -R vpopmail:vchkpw /var/www/html/igenus
chown -R vpopmail:vchkpw /var/www/html/igenus/temp
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直接打开修改。我这里就不在一一列举了,另外在redhat as 3.0中安装后会出现邮箱占用为负的问题,这是由于PHP的版本太高所制,可以试着用底一点的版本,或者在redhat 9.0上安装.
关于上面提到的软件包也可以从我这里下载:ftp://test:123456@nero.3322.org/
后来加的补充:
本文说明:
解决在默认安装的RH AS 3.0上安装QMAIL+IGENUS后邮箱占用出现负数的问题。
解决方法:
重新编译安装php到一个新版本,本文用的是php-4.3.4
注意事项:
一定要在完整的安装了qmail后,再进行php的安装,否则会出现mail函数没定义的问题而无法正常使用。
下面是PHP的安装编译过程:
1. 卸载系统自带的PHP组件(如有必要请使用”--nodeps”参数):
# rpm –e php-mysql
# rpm –e php-devel
# rpm –e php
2. 安装PHP-4.2.4
# tar –zxvf php-4.3.4.tar.gz
# cd php-4.3.4
# ./configure
--prefix=/usr/local/php
--with-charset=gb2312
--with-mysql
--with-mail
--with-apxs2=/usr/sbin/apxs
--enable-track-vars
--enable-force-cgi-redirect
--enable-pic
--enable-inline-optimiation
--enable-memory-limit
--enable-bcmath
# make
# make install
# cp php.ini-dist /usr/local/php/lib/php.ini
# vi /usr/local/php/lib/php.ini
register_globals = On
memory_limit = 16M
post_max_size = 6M
upload_max_filesize = 6M
3. 配置一下httpd.conf
DirectoryIndex index.html index.html.var index.php
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
AddDefaultCharset GB2312
ExtendedStatus On
ServerTokens Prod
ServerSignature Email
4.限制PHP请求的数据大小,在httpd.conf中加上:
<Files *.php>
SetOutputFilter PHP
SetInputFilter PHP
LimitRequestBody 5640000
</Files>
5. 后测试一下php是否安装成功:
# vi /var/www/html/test.php
<?php phpinfo(); ?>
6.在浏览器中测试:
http://192.168.0.1/test.php
建立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,说明拨号连接已经建立并且并且能正确的解析动
态域名。