服务器 频道

为Linux各种应用服务器配置Clamav防毒工具

  【IT168 专稿】很少的病毒能够在linux的运行和繁衍。而且,由于目前客户端计算机都使用的是Windows,所以病毒制造者们更愿意去写Windows下的病毒。但是还有很多的原因能致使您使用一些病毒扫描程序的,比如:

  " 扫描在您计算机上的Windows设备

  " 扫描在本地网络中的Windows计算机

  " 扫描您即将要传送给别人的文件

  " 扫描您将要发送给别人的电子邮件

  Clamav是一个UNIX下开源(GPL)杀毒软件包,这个软件最主要目的是集成在邮件服务器里,查杀邮件附件中的病毒。软件中包含主要一个灵活可升级的多线程后台程序,一个命令行扫描程序,一个自动升级程序,软件运行基于随Clam Anti使用编辑器修改rus软件包同时发布的共享库文件。你也可以在你的软件中使用这些共享库文件,最重要的是,病毒库升级的很快很及时。 主要特征:

  命令行扫描程序

  高效,多线程后台运行

  支持sendmail的milter接口

  支持数字签名的病毒库升级程序

  支持病毒扫描C语言库

  支持按访问扫描(Linux FreeBSD Solaris)

  病毒库每天多次升级(可以查杀的总病毒数量见主页)

  内置支持RAR(2.0),Zip,Gzip,Bzip2,Tar,MS OLE2,MS Cabinet files,MS CHM(压缩的HTML),MS SZDD压缩格式

  内置支持mbox,Maildir和原始邮件文件格式

  内置支持UPX,FSG,和Petite压缩的PE可执行文件

  一、 Clamav 基本安装

  1 首先检查Zlib库

  Clamav需要zlib库 1.22 以上,zlib是个支持gzip文件格式的函数库,它使得gz文件的存取就犹如开档关档一样地容易,您可以很容易地为您的程序加入gz档的支持。使用#rpm -qa|grep zlib 命令查看。

  2 建立用户和用户组的命令:

  # groupadd clamav

  # useradd -g clamav -s /bin/false -c "Clam Antivirus" clamav

  3 下载安装软件

  #wget http://www.hacker-soft.net/tools/Assessment/clamav-0.91.2.tar.gz

  # tar -zxvf clamav-0.91.2.tar.gz

  # cd clamav-0.91.2

  # ./configure --sysconfdir=/etc

  # make

  # su -c "make install"

  完成安装。Clamav配置文件如表-1 。

  4 修改配置文件

  使用编辑器修改 /etc/clamd.conf

  在 Example 前面加 #

  使用编辑器修改 /etc/freshclam.conf

  在 Example 前面加 #

  把 Checks 从 "24" 改为 "4"

  这样是每4小时更新一次病毒码。

  在 DatabaseMirror database.clamav.net 行下面在加入几个地址,更多镜像地址请参考文档 clamav.pdf

  DatabaseMirror clamav.inet6.fr

  DatabaseMirror clamav.netopia.pt

  DatabaseMirror clamav.sonic.net

  5 设置clamav随服务器开机自动启动

  使用编辑器修改 /etc/rc.d/rc.local

  加入下面二行:

  /usr/local/bin/freshclam

  /usr/local/bin/clamd

  6 测试

  clamdscan -文件及目录的扫毒

  #  clamdscan -v /usr/share/doc/clamav*

  #  clamdscan -v /home/<user>

  说明:ClamAV只会去扫描对于ClamAV可以读取的文件。如果您想扫描所有文件,在命令前加上 sudo参数。

  其他具体参数详解:

  -n 在扫描邮件时不加入 clamav的版本号

  -N 当用户发送带病毒的邮件时不警告他,而是立刻丢弃。但收件人会得到提示。

  -q 安静方式, 不发出任何信息 (包括在日志中也不做过多提示,遇到病毒时也只有 Milter : discard 一句话)

  -o 对从系统向外发的邮件做过滤

  -l 对发到系统的邮件做过滤

  这里是一些clamav些例子

  " 扫描所有用户的主目录就使用 clamscan -r /home

  " 扫描您计算机上的所有文件并且显示所有的文件的扫描结果,就使用 clamscan -r /

  " 扫描您计算机上的所有文件并且显示有问题的文件的扫描结果, 就使用 clamscan -r -bell -i /

  使用clamav删除病毒文件

  在扫描的时候,您可以添加'--remove'参数,图 1是工作界面。

  图 1使用clamav删除病毒文件

  7升级clamav的病毒库

  自动定时更新病毒码,防毒程序最重要的工作之一就是更新病毒码,否则防毒软件功能无法防止最新的病毒。根据一般的建议企业最好每四个小时至六个小时更新一次,

  以一般命令启动 freshclam -l /var/log/clamav/freshclam.log

  以守护进程的方式(以下设定每天更新6次)

  freshclam -d -c 6 -l /var/log/clamav.freshclam.log 6

  8 定时运行clamav

  at 命令可计划在特定的时间执行某项任务,且仅执行一次。可采用两种方法使用 at 命令。第一个是直接键入 at 和希望命令运行的时间(可以选择指定日期)。例如:

  $ at 17:20

  echo It's 17:20!

  job 1 at Tue Apr 11 17:20:00 2006

  输入了 at 命令后,它将等待您输入要在指定时间运行的命令。可以输入任意多的命令,这些命令将作为 Shellscript 执行。要终止输入,请使用 end-of-file 命令(通常为 Control-D)。 您所键入的命令将在调用 at 命令的环境副本中执行。这意味着,将记录您的活动 PATH、库和其他环境设置,并用于执行您生成的脚本。通常会在命令完成时将结果通过电子邮件发送给您。指定时间时,可以使用标准时间格式(如前面的示例中所示),也可以使用其他各种缩写技术。如果指定了时间,则将使用该时间的下一个匹配项。例如,如果当前时间是 17:00,而您指定的时间是 17:20,命令将在 20 分钟后执行。如果指定 09:00,则命令将在第二天的上午 9 点执行。

  通常可以使用以下特殊的替换项:

  midnight--12:00 a.m./00:00

  noon--12:00 p.m.

  now--立即执行

  还可以使用 today 和 tomorrow。一些环境(BSD 和 Linux)还可能支持通过加上表示分、时、天、周、月和年的数值来增加指定值的时间的选项。例如,可以使用以下命令来指定某个作业在一周后的当前时间运行:

  $ at now + 1 week

  如果您希望重新计划作业在上次执行之后的一段时间执行,则可以使用这种指定方式。例如,您可能在运行一个运行时间长达数小时的报告,但又希望在一周后再次运行次报告。

  本文使用后者运行'at'命令来使clamscan和freshclam定时运行,比如

  at 6:30 tomorrow

  at>clamscan -i /home/user > mail goodcjh@example.com

  at> <CTRL-D>

  job 3 at 2008-04-28 03:30

  二 、邮件服务器防毒设置

  这里以postfix邮件服务器为例。安装 Postfix, 并将 Postfix 设定成 邮件服务器网关。

  yum install postfix

  service sendmail stop

  chkconfig sendmail off

  使用编辑器修改 /etc/postfix/main.cf

  myhostname = mail.domain.com

  mydomain = domain.com

  myorigin = $mydomain

  inet_interfaces = all

  mydestination = $mydomain, localhost.$mydomain, localhost

  local_recipient_maps = (空白)

  networks_style = host

  relay_domains = domain.com

  transport_maps = hash:/etc/postfix/transport

  append_at_myorigin = no

  使用编辑器修改 /etc/postfix/transport

  domain.com    smtp:[192.168.1.1]

  postmap /etc/postfix/transport

  service postfix start

  使用编辑器修改 /etc/ld.so.conf,加入几行

  /usr/local/lib

  ldconfig

  MailScanner简介和工作流程

  MailScanner这是扫描程序可以和你的邮件服务器沟通,能对邮件的内容,如主旨,寄件者,附件,本文做处理,有两个选择MailScanner,AMaVis,但是MailScanner有webmin的模块,及mrtg的统计图表,因此可以简化管理而安装也比软容易,但其实两个程序都是以perl为程序主题语言,因此有一些模块需要安装, MailScanner已经在套件中内含了perl模块。

  MailScanner工作流程如下:

  在执行MailScanner之后, MailScanner重复执行的工作如下:

  1. 收集由Incoming queue来的邮件

  2. 检查邮件是否可以spam,并且如果需要标记它

  3. 选择性的移除简单的纯文字的邮件到 outgoing queue并触发使其被传送

  4. 解压缩出含有MIME结构的所有的邮件及附件

  5. 扫描病毒

  6. 扫描文件名合乎使用者设定的规则

  7. 扫描所有攻击性的e-mail client 程序,如Outlook 或 Eudora

  8. 移除被感染或危检的附件到一个隔离区(quarantine area),如果你有设定

  9. 取代感染或危险的附件使用你指定的文字内容来解释,准备送给使用者

  10. 加入一个短的讯息在原始文件的前面

  11. 移动安全及不受感染的邮件到outgoing queue

  12. 重建修改的邮件到outgoing queue

  13. 删除在incoming queue中的邮件

  14. 触发传送outgoing queue中的邮件

  15. 通知本地的postmaster, 和邮件传送者,一个感染或是危险的邮件发现

  16. 如果可能,不受感染的原始附件送它们到原始收件人,并使用一个通知说明发生了什么事 图 2  MailScanner是工作流程图。

  图 2  MailScanner是工作流程图。

  下载安装MailScanner

  #wget http://www.mailscanner.info/files/4/rpm/MailScanner-4.70.7-1.rpm.tar.gz

  tar zxf MailScanner-4.70.7-1.rpm.tar.gz

  cd MailScanner-4.70.7-1

  ./install.sh

  MailScanner 配置文件如表-2 。

  使用编辑器修改 /etc/MailScanner/MailScanner.conf

  Run As User = postfix

  Run As Group = postfix

  Incoming Queue Dir = /var/spool/postfix/hold

  Outgoing Queue Dir = /var/spool/postfix/incoming

  MTA = postfix

  Virus Scanning = yes

  Virus Scanners = clamav

  Use SpamAssassin = yes

  SpamAssassin User State Dir = /var/spool/MailScanner/spamassassin

  Sign Clean Message = no (不在信尾加注 "This message has been scanned...")

  mkdir /var/spool/MailScanner/spamassassin

  chown postfix:postfix /var/spool/MailScanner/*

  使用编辑器修改 /etc/postfix/main.cf

  header_checks = regexp:/etc/postfix/header_checks

  使用编辑器修改 /etc/postfix/header_checks

  /^Received:/ HOLD

  service postfix stop

  service MailScanner start

  设置webmail 的防毒功能,这里采用OpenWebmail来作为外挂的WEBMAIL邮件服务器,它与postfix和Sendmail无缝连接,支持中文语言包,具有自动回信、自动删除垃圾邮件等功能。

  #编辑 openwebmail.conf 修改为:

  enable_viruscheck   yes

  viruscheck_pipe       /usr/local/bin/clamdscan --mbox --disable-summary --stdout -

  viruscheck_source_allowed       all

 

  三、设置Web服务器防毒设置

  mod_clamav 是一个Apache服务器的一个防毒插件,它可以调用clavam的病毒库。

  mod_clamav下载安装方法:

  #wget http://software.othello.ch/mod_clamav/mod_clamav-0.22.tar.gz

  #gunzip mod_clamav-0.22.tar.gz;tar mod_clamav-0.22.tar ;cd mod_clamav-0.22

  # ./configure --with-apache=/usr/local/apache2

  # make

  # make install

  四、设置FTP服务器防毒设置

  mod_clamav同样支持ProFTPD 服务器,安装配置如下:

  wget ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.1.tar.gz

  tar xzvf proftpd-1.3.1.tar.gz

  cp mod_clamav-0.7/mod_clamav.* proftpd-1.3.1/contrib

  打一个补丁:

  # cd proftpd-1.3.1

  #patch -p1 < ../mod_clamav-0.7/proftpd.patch

  编译文件

  #./configure --with-modules=mod_clamav

  #make

  #make install

  使用编辑器修改proftpd 配置文件:/usr/local/etc/proftpd.conf

  PassivePorts   60000 65000

  IdentLookups   off

  UseReverseDNS   off

  AllowStoreRestart   on

  AuthPAM   off

  RequireValidShell   off

  DefaultRoot   ~/ftp

  User   nobody

  Group   nobody

  #启用防毒功能

  <IfModule mod_clamav.c>

  ClamAV on

  ClamLocalSocket /tmp/clamd.socket

  </IfModule>

  #启动 clamd, clamd 的执行身份必须是 root权限 (mod_clamav 0.7 需要 clamd)

  clamd

  #启动 proftpd服务器

  proftpd

 

  五、配置Samab文件 服务器防毒功能

  安装samba-3.0.21c.tar.gz

  #wget samba-3.0.21c.tar.gz

  # cd .. /usr/src/

  #tar zxvf samba-3.0.21c.tar.gz

  #tar jxvf samba3-vscan-0.4.0-snapshot1.tar

  # mv samba3-vscan-0.4.0-snapshot  /usr/src/samba-3.0.21rc2/examples/VFS

  # cd samba-3.0.21c/source/

  # ./configure && make headers

  # make && make install   samba被默认安装到/usr/local/samba

  2 安装编译samba-vscan

  # cd .. /usr/src/samba-3.0.21rc2/examples/VFS/samba3-vscan-0.4.0-snapshot

  # ./configure && make

  3 .修改配置文件

  复制vscan的配置文件, VSCAN可以结合多种杀毒软件起用,如symantec, Kaspersky, trend等这里用的是clamav,因此,只需要把clamav中的vscan-clamav.conf复制到/etc/就去就行了。

  # cd   /share1/src/samba-3.0.21c/examples/VFS/samba3-vscan-0.4.0-snapshot1

  # cp /clamav lamav/vscan-clamav.conf  /etc/

  修改一些配置,使其与 clamd.conf的一些设置匹配

  使用编辑器修改 /etc/vscan-clamav.conf

  在Example 前面加上#号注释掉此行把clamd socket name ,设为

  clamd socket name = /tmp/clamd.socket  (相同clamd.conf中的 LocalSocket /tmp/clamd.socket)

  把infected file action = delete

  修改infected file action = nothing

  则表示对感染的文件不处理,是infected file action = delete 则删除感染的文件。

  5.修改 smb.conf

  在 [global] 区段中,加入两行

  vfs object = vscan-clamav

  vscan-clamav: config-file = /etc/vscan-clamav.conf

  完成修改,重新启动 samba

  /etc/rc.d/rc.samba restart

  启动clamav

  /usr/local/sbin/clamd --config-file=/etc/clamd.conf

  总结:到此为止本章以Clamav 防毒工具及其相关工具为Web服务器、邮件服务器、smaba服务器、FTP服务器配置了防病毒工具。笔者对Linux平台下病毒的防范总结出以下几条建议,仅供参考:

  ● 日常操作尽量不要使用root权限进行;

  ● 不要在重要的服务器上运行一些来历不明的可执行程序或脚本;

  ● 对于连接到互联网的Linux服务器,要定期检测Linux病毒,检查蠕虫和木马是否存在;

  ● 对于提供Samba文件服务的Linux服务器,最好部署一款可以同时查杀Windows和Linux病毒的软件,并定期升级病毒代码库;;

  ● 对于提供邮件服务的Linux服务器,最好配合使用一个E-mail病毒扫描器。

 

0
相关文章