2007年12月21日星期五

卡巴斯基内网升级服务器镜像架设方法

卡巴斯基最近官方封Key沸沸扬扬,而且官方升级速度奇慢-_-,今天早上搞了一下,把过程记录帖下来,仅供参考
---------------------------架设方法开始----------------------
首先是服务器架设思路,主要是通过ftp下载卡巴斯基官方的升级文件到本地,然后建立ftp(匿名),然后客户端使用这个服务器更新
需要解决的问题:
如何实现计划任务自动下载病毒库,并且放到ftp上


解决方案


1.通过ftp脚本命令

脚本命令包含两部分:
get.cmd部分

引用:
@echo off
chdir /d E:\KaperskyUpdate
ftp -s:get.txt

get.txt部分

引用:
open downloads1.kaspersky-labs.com
anonymous
xx@ss.com

cd /bases_new/
lcd E:\KaperskyUpdate\bases\
hash on
prompt
mget *.*

cd /updates_x
lcd E:\KaperskyUpdate
hash on
prompt
mget *.*

cd /index
lcd E:\KaperskyUpdate\index
hash on
prompt
mget *.*

cd /index/6
lcd E:\KaperskyUpdate\index\6
hash on
prompt
mget *.*

cd /index/6b
lcd E:\KaperskyUpdate\index\6b
hash on
prompt
mget *.*
bye


下面对上面的命令行做简单分析
get.cmd
cmd部分很简单,就是切换到目录,然后开始ftp,ftp -s:是指定ftp命令脚本

get.txt
这部分是ftp的命令部分,里面主要下载了官方服务器的/updates_x,/index,/index/6,/index/6b/,/bases_new/这几个文件夹的部分

最后新建计划任务,让get.cmd每3小时执行一次就可以了,这个不多说


引用:
该方法的弊端:
每次下载的时候都是覆盖下载,导致每次下载速度很慢
为了解决这个问题,命令行脚本已经无法实现,问过hit,说比较复杂,因此决定用FTPRush的脚本实现。

2.FTPRush脚本实现
首先建立两个FTPRush站点,一个是Kapersky,地址为downloads1.kaspersky-labs.com,匿名登录,一个是KaperskyIns(内网升级服务器的ftp地址,要可以上传的)
,这两个站点需要在下面的脚本里面用到,建立站点的时候注意给这两个站点单独指定文件存在规则,相同的文件跳过,较大和较小的都覆盖,防止官方修改过更新文件

提醒:这里可以直接在病毒更新服务器上用FtpRush下载,更简单,不用新建什么内网的站点,我因为害怕FtpRush授权挂掉,所以在其他的服务器上先下载后上传的


脚本内容:

引用:
uses
rfScriptEnv, System, Classes, Sysutils;

begin
RushApp.FTP.Login('Kapersky','',0);
RushApp.FTP.Transfer(0, 'Kapersky', '/bases_new/', '', '', 'D:\Kaper\bases\', '', RS_DOWN or RS_DIRDES or RS_DIRSRC or RS_LOGOUT, '', '', '', '', '', 0, 0, 0, 0, 0, 0, 0);
RushApp.FTP.Transfer(0, 'Kapersky', '/index', '', '', 'D:\Kaper\index', '', RS_DOWN or RS_DIRDES or RS_DIRSRC or RS_LOGOUT, '', '', '', '', '', 0, 0, 0, 0, 0, 0, 0);
RushApp.FTP.Login('KaperskyIns','',0);
RushApp.FTP.Transfer(0, '', 'D:\Kaper', '', 'KaperskyIns', '\', '', RS_UP or RS_DIRDES or RS_DIRSRC or RS_LOGOUT, '', '', '', '', '', 0, 0, 0, 0, 0, 0, 0);
end;


这个脚本相对简单,我也是照着帮助文件画瓢画出来的,可能比较sb-_-,主要下载的目录和上面的cmd脚本是一样的,注意需要指定文件存在规则,另外这个脚本是在另外一台机器上下载然后上传文件的,可以考虑直接在病毒更新服务器上用FTPRush脚本下载,更简单方便,最后记得给脚本计划任务



---------------------------架设方法结束----------------------

上面的方法初步测试通过



下面是架设过程中碰到的问题解答:

Q:cmd脚本无法实现增量下载,怎么办?
A:我也不知道怎么办,实在是不会检测文件并且跳过

Q:mget命令下载的时候每个文件都提示,怎么办?
A:前面加一句prompt off就可以关掉提示,友情提示hash on命令是用来看文件下载进度的

Q:下载了updates_x文件夹,怎么客户端总是提示找不到i0607g.xml?
A:我被这个东西搞了许久,updates_x里面根本没这个文件,后来在注册表里面找到的,位置不记得了,好像是HKLM/Software/Kaper...Lab/avp6/environment下面的某个键值里面写着/index/6/i0607g.xml,到官方的ftp一看果然有这个目录,下载这个目录放到ftp上,解决

Q:怎么还是提示i0607g.xml找不到?
A:把updates_x目录里面的blacklist.lst文件清空

PS:好像卡巴斯基安装以后,C:\Documents and Settings\All Users\Application Data\Kaspersky Lab\AVP6\Bases这个目录里面的文件就是病毒库文件(没有i0607g.xml,这个文件还是要在官方下载),不知道可不可以直接FXP这些文件到服务器,没测试,病毒更新服务器上没有装卡巴斯基

没有评论: