APP下载

在Linux系统中清剿病毒

2016-03-14

网络安全和信息化 2016年8期
关键词:代理服务命令分区

引言:Windows中的病毒数量繁多,活动很猖獗。同Windows相比,Linux系统的安全性较高,不适合病毒的活动。实际情况并不尽然,Linux并非病毒的禁地,一些针对Linux的病毒完全可以对其构成相当大的威胁。

在大家的印象中,Windows中的病毒数量繁多,活动很猖獗。同Windows相比,Linux系统的安全性较高,不适合病毒的活动。实际情况并不尽然,Linux并非病毒的禁地,一些针对Linux的病毒完全可以对其构成相当大的威胁。

对付病毒最好的办法就是使用杀毒软件,在Windows中可选择的杀软种类不少,世界上公认的比较著名的杀毒软件有卡巴斯基、F-SECURE、MACFEE、诺 顿、趋 势 科技、熊猫、NOD32、AVG和F-PORT等等。安装配置和使用都比较方便。

在Linux中同样也可以运行杀软清除病毒,例如ClamAV、Avast、Avria、AVG以及F-PROT等等,都可以保护Linux免受病毒威胁。这里以最常用的ClamAV为例,来说明其使用方法,以及如何保护Linux中的各种服务程序。

安装ClamAV

打开网址“http://pkgs.repoforge.org/clamav/”,可以看到支持各个Linix版本的ClamAV安装包。例如在Red Hat Enterprise Linux 5.X版本下,依次执行“rpm -ivh clamav-db-0.98.4-1.el5.rf.i386.rpm”,“rpm-ivh clamav-0.98.4-1.el5.rf.i386.rpm”,“rpm-ivh clamd-0.98.4-1.el5.rf.i386.rpm”命令,执行“clamav-devel-0.98.4-1.el5.rf.i386.rpm”命令,完成ClamAV防毒软件的安装操作。

配置ClamAV

执行“setsebool –P clamd_disable_trans=1”命 令,让Clamav摆 脱SELinux的控制,避免在启动系统时出现错误。使用VI编辑器,打开“/etc/clamd.conf”文件,将其中“LocalSocket/tmp/clamd.socket”行的内容修改为“LocalSocket /var/run/clamav/clamd.sock”。 执行“service clamd start”命令,启动Clamd服务。执行“chkconfig clamd on”命令,可以让该服务自动运行。为了获得最新的病毒库,可以执 行“/usr/bin/freshclam--deamon”来实现。将该行命令添加到“/etc/rc.d/rc.local”文件中,可以实现开机自动升级病毒库操作。

Clamav主要包括扫描程序,服务程序,扫描守护程序,更新程序,特征库添加程序等部分组成。其中Clamscan程序主要功能是扫描病毒,当其对目标文件扫描时,会将其和病毒库进行比对,来发现染毒文件,这是一个独立的程序,不需要守护进程。

Clamdscan也是一个病毒扫描程序,不过其必须配合Clamd服务程序运作。Freshclam程序的作用是更新病毒库,例如,打开其配置 文 件“/etc/freshclam.conf”,在其中添加“checks 10”,可以每隔10个小时升级一次病毒库。对于没有被ClamAV扫描到病毒文件,通过Sigtool程序可以将其特征添加到病毒库中。

使用ClamAV扫描病毒

使用Clamscan命令,可以对指定的文件或者目录进行扫描,其语法为“clamscan[-rv] [-l <扫描记录文件>][--move <目录>][--remove][<目录>|<文件 >]”。其中的“-r”参数可以递归扫描指定目录下的所有文件,“-v”表示表示执行快速扫描动作。参数“-l <扫描记录文件>”将扫描报告写入指定文件。“--move”参数用于将病毒文件移动到指定的目录中。“--remove”参数表示删除病毒文件。例如,执行“clamscan -r”命令,可以扫描当前目录。执行“clamscan-r -bell -i /”命令,可以扫描系统中的所有文件,在发现病毒文件时会发出警告音,在扫描结束会显示存在问题的文件信息。执行“clamscan -r --remove /home”命令,对“/home”中的所有文件进行扫描,并将发现的病毒文件删除。执行“clamscan -r --move=/tmp/virus /home”命 令,将发现的病毒文件移动到“/tmp/virus”目录中。

执 行“clamscan -r /home --exclude-dir=/home/jeny”命 令,对“/home”目录进行递归扫描,但是排除“/home/jeny”目录。执行“clamscan -r /home –exclude="*.txt"--log=/tmp/clamscan.log”命令,对“/home”目录进行扫描,但是排斥其中的“.txt”文件,并且产生名为“clamscan.log”的日志文件。也可以利用Linux计划任务功能,自动执行病毒扫描操作。例如执行“service crond start” 命令,启动定时执行服务,编辑“/etc/crontab”文件,在其中添加“03 * * * root/usr/bin/clamscan -r--remove /var”行,可以在每天凌晨3点对指定目录进行病毒扫描。

添 加“06 * * *root /usr/bin/freshclam--quiet -l /var/log/clamav/clamav.log”行,可以在每天凌晨6点升级病毒库。利用ClamAV,还可以扫描数据流。例如执行“cat /bin/sh | clamscan-”,“cat /etc/services |clamscan -”等命令,可以扫描指定的数据流。仅仅使用ClamAV扫描和删除病毒文件是远远不够的,在Linux中通常还运行有各种服务程序,同样可以使用ClamAV对其进行保护。

ClamAV保护Apache服务

在Linux中利用Apache可以提供Web服务,为了防止病毒攻击Apache,可以从网址“http://software.othello.ch/mod_clamav/mod_clamav-0.23.tar.gz”下载针对Apache的防毒插件,并依靠ClamAV病毒库来保护Apache的安全。执行“yum -yinstall httpdevel.i*”命令,来安装相关的软件包。执行“tar –zxvf mod_clamav-0.23.tar.gz”命 令,对插件包进行解压处理。执行“cd mod_clamav-0.23”,“./configure -withapxs=usr/sbin/apxs”,“make”,“make install”命令,执行对该插件的编译安装动作。之后执行“service httpd restart”命令,重启Apache服务即可。

ClamAV保护Samba服务

在Linux中使用Samba服务,可以实现文件共享功能。但是,如何保护Samba服务的安全,避免病毒侵入文件共享空间呢?可以使用Samba-vscan模 块,利用ClamAV病毒库,来禁止病毒文件侵入到文件服务器中。

执行“yum y install pcre-devel.i* gmp-devel.i*”命令,安装相关的软件包。之后产看当前系统的Samba服务器版本,再下载对应的服务器源码包。例如针对Samba3.033版本,可以从网址“ftp://ftp.hkmirror.org/pub/samba/sambaftp/oldversions/samba-3.0.33.tar.gz”下载所需的源码包。

执行“tarxvz fsmaba-3.0.33.tar.gz”,“cd smaba-3.0.33/source”,“./configure”,“make headers”命 令,编译该版本的Samba服务器源码包。从网址“http://www.openantivirus.org/download/samba-vscan-0.3.6c-beta5.tar.gz”下载Samba-vscan源码包。执行“tar -zxvf sambavscan-0.3.6c-beta5.tar.gz”命令,执行包解压处理。

之后执行,“mv sambavscan-0.3.6c-beta5 samba-3.033/examples/VFS”命 令,将其移动到Samba源码目录下的“examples/VFS”目录下。执 行“cd samba-3.0.33/examples/VFS/sambavscan-0.3.6c-beta5”,“./configure”,“make” 命令,对Samba-vscan进行编辑处理。执行“cp vscanclamav.so /usr/lib/samba/vfs/”,“cp clamav/vscan-clamav.conf /etc/samba/”命令,将病毒扫描配置文件复制到“etc/samba”目录

然后使用VI等编辑器,来修改“/etc/samba/vscan-clamav.conf”文件。

将其中的“clamd socket name = /var/run/clamd”修改为“clamd socket name = /var/run/clamav/clamd.sock”,将Clamav的Socket目录设置为正确值。将“infected file acton = nothing”修改为“infected file acton =delete”,即发现病毒文件后就将其删除,而原来的设置是对病毒文件不采取任何处理方式。

当然,在该文件中有很多配置信息,例如将“scan on open=”的值设置为“yes”,可以在每次打开文件时都执行扫描操作。将“send warning message=”的值设置为“yes”,可以在Windows客户端向Samba服务器发送文件时,如果检测到病毒,就会向客户端发送报警信息。在“quarntion directory=”栏中可以设置隔离区目录。当发现病毒文件后,就将其发送到隔离区中。

各项配置信息可以根据自己的实际需要进行调整。修改“/etc/samba/smb.conf”文件,在其中的“global”框体中添加“vfs object = vscan-clamav”和“vscan-clamav: configfile = /etc/samba/vscanclamav.conf”两行,让Samba服务器可以正确的调用Samba-vscan模块扫描病毒。之后执行“service smb restart”,命令重启Samba服务,执行“service clamd restart”命令,重启Clamd服务。

之后可以测试防毒效果,在Windows客户端访问Samba服务器,在认证窗口中输入Samba用户名和密码,打开目标共享文件夹,将向其中存储的文件包含病毒时,Samba服务器就会项客户端发送提示信息,警告发现病毒文件,并将病毒文件删除。当然,前提是在Windows客户端必须开启Messager信息服务。

ClamAV保护Squid服务

利用Squid代理服务,可以在局域网和外网之间开启防护屏障。Squid代理服务虽然功能强大,但是并没有提供防病毒功能,使用HAVP模块,可以使用ClamAV病毒库来保护Squid代理服务安全。HAVP是Squid的父代理,支持杀毒功能,当内网用户的代理连接请求到达Squid之前,就必须经过HAVP的安全检测。

执行“wget-c http://www.serverside.de/download/havp-0.92a.tar.gz”命令,下载HAVP安装包。执行“tar-zxvf havp-0.92a.tar.gz”,“cd havp-0.92a”,“./configure”,“make”,“make install”命令,编译HAVP模块。使用VIM等工具修改其配置文件“/usr/local/etc/havp/havp.config”,将 其 中的“REMOVETHISLINE deleteme”一行删除,在其后输入“USER clamav”,“GROUP clamav”两行,设置HAVP运行的账户和组信息。注意,必须使用Clamav的账户信息,否则将无法启动HAVP程序。

输入“LOG_OKS flase”行,表示只记录病毒检测日志。输入“PORT 8080”行,设置其监听端口。输入“TEMPDIR /var/tmp”行,设置病毒扫描临时目录。输入“TRANSPARENT false” 和“FORWARDED_IP ture” 两行,使之可以成为Squid的父代理。输入“BIND_ADDRESS 127.0.0.1”行,为其绑定IP地址。将“ENABLE CLAMLIB false” 行修改为“ENABLE CLAMLIB true”,让其可以读取ClamAV杀毒软件的病毒库。 输入“CLAMDBDIR/var/clamav” 行,设 置ClamAV病毒库路径。输入“SERVERNUMBER 40”和“MAXSERVERS 200”两行,设置扫描线程的数量。输入“LOGLEVEL 0”行,只记录错误的日志信息。输入“SCANIMAGES false”行,禁止扫描图片文件。当然,上述各项在原配置文件中都处于注释状态,这里选择单独输入,您也可以将对应行的注释标记“#”去除,之后对其进行修改即可。

因为HAVP代理需要独立的磁盘空间,可以采取在磁盘上划分一个独立的分区,作为数据扫描的分区。这里就利用现有分区的空闲区域建立一个独立的虚拟分区,提供给HAVP使用。 执 行“cd /root”,“dd if=/dev/zero of=/root/havp_part.img bs=128K count=1 seek=1024”命令,在“/root”目录下创建一个名为“havp_part.img”的镜像文件,其容量为128MB,并将其虚拟为独立分区。执行“mkfs.ext3 /root/havp_part.img”命令,对其进行格式化处理。

执行“echo "/root/havp_part.img /var/tmp/havp ext3 defaults,loop,mand 00" >> /etc/fstab”命令,将该虚拟盘信息添加到“/etc/fstab”文件中,该文件负责在开始时处理磁盘挂载操作。这样,在开机后就可以自动挂载该虚拟分区了。执行“mount -a”命令,挂载该虚拟分区。

因为对HAVP的运行文件进行了修改,而且ClamAV需要读取HAVP的缓存文件分区,所以需要修改其文件存取权限,让ClamAV可以读取HAVP的缓存目录。执行“chown-R clamav.clamav /var/log/havp/”,“chown –R clamav.clamav /var/tmp/havp/”,“chown-R clamav.clamav /var/run/havp/”命 令,可 以让ClamAV扫描这几个文件夹。“chmod -R 700 /var/log/havp/”,“chmod-R 700 /var/tmp/havp/”,“chmod -R 700/var/run/havp/”等命令,修改这几个目录的权限,使其所有者才拥有读和写以及执行的权限。

之后对Squid代理服务的配置文件“/etc/squid/squid.conf”进行修改,在其中添加“dns_name servers 202.103.29.69202.103.0.197”之类的信息,为其设置DNS服务器地址,当然的地址为假设的IP。

添 加“visible_host name 192.168.0.19” 之类的信息,设置其主机地址。输入“cache_mem 200 MB”之类的信息,设置缓存容量。可以设置允许访问本代理服务器的网段,例如 输入“acl lanclient src 192.168.0.0/20”,“http access allow lanclient”之类的信息,让指定的网段可以访问本服务器,当然,这只是Squid代理服务的简单设置。

为了让Squid绑定HAVP作为父代理,需要输入“cache_peer 127.0.0.1 parent 80800 no-query no-digest no-netdbexchange default”,“cache_peer_access 127.0.0.1 allow all”,“acl Scan_HTTP proto HTTP”,“never_direct allow Scan_HTTP”等行。保存该文件后,执行“/usr/local/sbin/havp”命令,启动HAVP程序。 执行“service squid restart”命令,重启Squid代理服务。

之后可以在客户端设置代理服务器信息,例如在Windows打开IE设置界面,在局域网设置窗口中输入代理服务器的IP和端口,这里的端口应为Squid的代理端口3128。之后当在IE中访问的网站包含病毒时,就会显示HAVP的拦截界面,提示其中发现了病毒信息。

如果想得到更好的拦截界面,可以使用VIM等编辑 器,对“/usr/local/etc/havp/templates/en/virus.html”文件进行修改,在这里面修改病毒拦截的提示信息。

猜你喜欢

代理服务命令分区
贵州省地质灾害易发分区图
只听主人的命令
上海实施“分区封控”
浪莎 分区而治
移防命令下达后
农村“三资”代理服务浅析
网络安全与防火墙技术
这是人民的命令
大空间建筑防火分区设计的探讨
对卢沟桥事变期间一份“作战命令”的考析