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

12/3/2006来源:Qmail人气:6904

所需软件:
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,说明拨号连接已经建立并且并且能正确的解析动
态域名。,