引言:Windows中的病毒數(shù)量繁多,活動很猖獗。同Windows相比,Linux系統(tǒng)的安全性較高,不適合病毒的活動。實際情況并不盡然,Linux并非病毒的禁地,一些針對Linux的病毒完全可以對其構(gòu)成相當(dāng)大的威脅。
在大家的印象中,Windows中的病毒數(shù)量繁多,活動很猖獗。同Windows相比,Linux系統(tǒng)的安全性較高,不適合病毒的活動。實際情況并不盡然,Linux并非病毒的禁地,一些針對Linux的病毒完全可以對其構(gòu)成相當(dāng)大的威脅。
對付病毒最好的辦法就是使用殺毒軟件,在Windows中可選擇的殺軟種類不少,世界上公認的比較著名的殺毒軟件有卡巴斯基、F-SECURE、MACFEE、諾 頓、趨 勢 科技、熊貓、NOD32、AVG和F-PORT等等。安裝配置和使用都比較方便。
在Linux中同樣也可以運行殺軟清除病毒,例如ClamAV、Avast、Avria、AVG以及F-PROT等等,都可以保護Linux免受病毒威脅。這里以最常用的ClamAV為例,來說明其使用方法,以及如何保護Linux中的各種服務(wù)程序。
打開網(wǎng)址“http://pkgs.repoforge.org/clamav/”,可以看到支持各個Linix版本的ClamAV安裝包。例如在Red Hat Enterprise Linux 5.X版本下,依次執(zhí)行“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”命令,執(zhí)行“clamav-devel-0.98.4-1.el5.rf.i386.rpm”命令,完成ClamAV防毒軟件的安裝操作。
執(zhí)行“setsebool –P clamd_disable_trans=1”命 令,讓Clamav擺 脫SELinux的控制,避免在啟動系統(tǒng)時出現(xiàn)錯誤。使用VI編輯器,打開“/etc/clamd.conf”文件,將其中“LocalSocket/tmp/clamd.socket”行的內(nèi)容修改為“LocalSocket /var/run/clamav/clamd.sock”。 執(zhí)行“service clamd start”命令,啟動Clamd服務(wù)。執(zhí)行“chkconfig clamd on”命令,可以讓該服務(wù)自動運行。為了獲得最新的病毒庫,可以執(zhí) 行“/usr/bin/freshclam--deamon”來實現(xiàn)。將該行命令添加到“/etc/rc.d/rc.local”文件中,可以實現(xiàn)開機自動升級病毒庫操作。
Clamav主要包括掃描程序,服務(wù)程序,掃描守護程序,更新程序,特征庫添加程序等部分組成。其中Clamscan程序主要功能是掃描病毒,當(dāng)其對目標(biāo)文件掃描時,會將其和病毒庫進行比對,來發(fā)現(xiàn)染毒文件,這是一個獨立的程序,不需要守護進程。
Clamdscan也是一個病毒掃描程序,不過其必須配合Clamd服務(wù)程序運作。Freshclam程序的作用是更新病毒庫,例如,打開其配置 文 件“/etc/freshclam.conf”,在其中添加“checks 10”,可以每隔10個小時升級一次病毒庫。對于沒有被ClamAV掃描到病毒文件,通過Sigtool程序可以將其特征添加到病毒庫中。
使用Clamscan命令,可以對指定的文件或者目錄進行掃描,其語法為“clamscan[-rv] [-l <掃描記錄文件>][--move <目錄>][--remove][<目錄>|<文件 >]”。其中的“-r”參數(shù)可以遞歸掃描指定目錄下的所有文件,“-v”表示表示執(zhí)行快速掃描動作。參數(shù)“-l <掃描記錄文件>”將掃描報告寫入指定文件?!?-move”參數(shù)用于將病毒文件移動到指定的目錄中。“--remove”參數(shù)表示刪除病毒文件。例如,執(zhí)行“clamscan -r”命令,可以掃描當(dāng)前目錄。執(zhí)行“clamscan-r -bell -i /”命令,可以掃描系統(tǒng)中的所有文件,在發(fā)現(xiàn)病毒文件時會發(fā)出警告音,在掃描結(jié)束會顯示存在問題的文件信息。執(zhí)行“clamscan -r --remove /home”命令,對“/home”中的所有文件進行掃描,并將發(fā)現(xiàn)的病毒文件刪除。執(zhí)行“clamscan -r --move=/tmp/virus /home”命 令,將發(fā)現(xiàn)的病毒文件移動到“/tmp/virus”目錄中。
執(zhí) 行“clamscan -r /home --exclude-dir=/home/jeny”命 令,對“/home”目錄進行遞歸掃描,但是排除“/home/jeny”目錄。執(zhí)行“clamscan -r /home –exclude="*.txt"--log=/tmp/clamscan.log”命令,對“/home”目錄進行掃描,但是排斥其中的“.txt”文件,并且產(chǎn)生名為“clamscan.log”的日志文件。也可以利用Linux計劃任務(wù)功能,自動執(zhí)行病毒掃描操作。例如執(zhí)行“service crond start” 命令,啟動定時執(zhí)行服務(wù),編輯“/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,還可以掃描數(shù)據(jù)流。例如執(zhí)行“cat /bin/sh | clamscan-”,“cat /etc/services |clamscan -”等命令,可以掃描指定的數(shù)據(jù)流。僅僅使用ClamAV掃描和刪除病毒文件是遠遠不夠的,在Linux中通常還運行有各種服務(wù)程序,同樣可以使用ClamAV對其進行保護。
在Linux中利用Apache可以提供Web服務(wù),為了防止病毒攻擊Apache,可以從網(wǎng)址“http://software.othello.ch/mod_clamav/mod_clamav-0.23.tar.gz”下載針對Apache的防毒插件,并依靠ClamAV病毒庫來保護Apache的安全。執(zhí)行“yum -yinstall httpdevel.i*”命令,來安裝相關(guān)的軟件包。執(zhí)行“tar –zxvf mod_clamav-0.23.tar.gz”命 令,對插件包進行解壓處理。執(zhí)行“cd mod_clamav-0.23”,“./configure -withapxs=usr/sbin/apxs”,“make”,“make install”命令,執(zhí)行對該插件的編譯安裝動作。之后執(zhí)行“service httpd restart”命令,重啟Apache服務(wù)即可。
在Linux中使用Samba服務(wù),可以實現(xiàn)文件共享功能。但是,如何保護Samba服務(wù)的安全,避免病毒侵入文件共享空間呢?可以使用Samba-vscan模 塊,利用ClamAV病毒庫,來禁止病毒文件侵入到文件服務(wù)器中。
執(zhí)行“yum y install pcre-devel.i* gmp-devel.i*”命令,安裝相關(guān)的軟件包。之后產(chǎn)看當(dāng)前系統(tǒng)的Samba服務(wù)器版本,再下載對應(yīng)的服務(wù)器源碼包。例如針對Samba3.033版本,可以從網(wǎng)址“ftp://ftp.hkmirror.org/pub/samba/sambaftp/oldversions/samba-3.0.33.tar.gz”下載所需的源碼包。
執(zhí)行“tarxvz fsmaba-3.0.33.tar.gz”,“cd smaba-3.0.33/source”,“./configure”,“make headers”命 令,編譯該版本的Samba服務(wù)器源碼包。從網(wǎng)址“http://www.openantivirus.org/download/samba-vscan-0.3.6c-beta5.tar.gz”下載Samba-vscan源碼包。執(zhí)行“tar -zxvf sambavscan-0.3.6c-beta5.tar.gz”命令,執(zhí)行包解壓處理。
之后執(zhí)行,“mv sambavscan-0.3.6c-beta5 samba-3.033/examples/VFS”命 令,將其移動到Samba源碼目錄下的“examples/VFS”目錄下。執(zhí) 行“cd samba-3.0.33/examples/VFS/sambavscan-0.3.6c-beta5”,“./configure”,“make” 命令,對Samba-vscan進行編輯處理。執(zhí)行“cp vscanclamav.so /usr/lib/samba/vfs/”,“cp clamav/vscan-clamav.conf /etc/samba/”命令,將病毒掃描配置文件復(fù)制到“etc/samba”目錄
然后使用VI等編輯器,來修改“/etc/samba/vscan-clamav.conf”文件。
將其中的“clamd socket name = /var/run/clamd”修改為“clamd socket name = /var/run/clamav/clamd.sock”,將Clamav的Socket目錄設(shè)置為正確值。將“infected file acton = nothing”修改為“infected file acton =delete”,即發(fā)現(xiàn)病毒文件后就將其刪除,而原來的設(shè)置是對病毒文件不采取任何處理方式。
當(dāng)然,在該文件中有很多配置信息,例如將“scan on open=”的值設(shè)置為“yes”,可以在每次打開文件時都執(zhí)行掃描操作。將“send warning message=”的值設(shè)置為“yes”,可以在Windows客戶端向Samba服務(wù)器發(fā)送文件時,如果檢測到病毒,就會向客戶端發(fā)送報警信息。在“quarntion directory=”欄中可以設(shè)置隔離區(qū)目錄。當(dāng)發(fā)現(xiàn)病毒文件后,就將其發(fā)送到隔離區(qū)中。
各項配置信息可以根據(jù)自己的實際需要進行調(diào)整。修改“/etc/samba/smb.conf”文件,在其中的“global”框體中添加“vfs object = vscan-clamav”和“vscan-clamav: configfile = /etc/samba/vscanclamav.conf”兩行,讓Samba服務(wù)器可以正確的調(diào)用Samba-vscan模塊掃描病毒。之后執(zhí)行“service smb restart”,命令重啟Samba服務(wù),執(zhí)行“service clamd restart”命令,重啟Clamd服務(wù)。
之后可以測試防毒效果,在Windows客戶端訪問Samba服務(wù)器,在認證窗口中輸入Samba用戶名和密碼,打開目標(biāo)共享文件夾,將向其中存儲的文件包含病毒時,Samba服務(wù)器就會項客戶端發(fā)送提示信息,警告發(fā)現(xiàn)病毒文件,并將病毒文件刪除。當(dāng)然,前提是在Windows客戶端必須開啟Messager信息服務(wù)。
利用Squid代理服務(wù),可以在局域網(wǎng)和外網(wǎng)之間開啟防護屏障。Squid代理服務(wù)雖然功能強大,但是并沒有提供防病毒功能,使用HAVP模塊,可以使用ClamAV病毒庫來保護Squid代理服務(wù)安全。HAVP是Squid的父代理,支持殺毒功能,當(dāng)內(nèi)網(wǎng)用戶的代理連接請求到達Squid之前,就必須經(jīng)過HAVP的安全檢測。
執(zhí)行“wget-c http://www.serverside.de/download/havp-0.92a.tar.gz”命令,下載HAVP安裝包。執(zhí)行“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”兩行,設(shè)置HAVP運行的賬戶和組信息。注意,必須使用Clamav的賬戶信息,否則將無法啟動HAVP程序。
輸入“LOG_OKS flase”行,表示只記錄病毒檢測日志。輸入“PORT 8080”行,設(shè)置其監(jiān)聽端口。輸入“TEMPDIR /var/tmp”行,設(shè)置病毒掃描臨時目錄。輸入“TRANSPARENT false” 和“FORWARDED_IP ture” 兩行,使之可以成為Squid的父代理。輸入“BIND_ADDRESS 127.0.0.1”行,為其綁定IP地址。將“ENABLE CLAMLIB false” 行修改為“ENABLE CLAMLIB true”,讓其可以讀取ClamAV殺毒軟件的病毒庫。 輸入“CLAMDBDIR/var/clamav” 行,設(shè) 置ClamAV病毒庫路徑。輸入“SERVERNUMBER 40”和“MAXSERVERS 200”兩行,設(shè)置掃描線程的數(shù)量。輸入“LOGLEVEL 0”行,只記錄錯誤的日志信息。輸入“SCANIMAGES false”行,禁止掃描圖片文件。當(dāng)然,上述各項在原配置文件中都處于注釋狀態(tài),這里選擇單獨輸入,您也可以將對應(yīng)行的注釋標(biāo)記“#”去除,之后對其進行修改即可。
因為HAVP代理需要獨立的磁盤空間,可以采取在磁盤上劃分一個獨立的分區(qū),作為數(shù)據(jù)掃描的分區(qū)。這里就利用現(xiàn)有分區(qū)的空閑區(qū)域建立一個獨立的虛擬分區(qū),提供給HAVP使用。 執(zhí) 行“cd /root”,“dd if=/dev/zero of=/root/havp_part.img bs=128K count=1 seek=1024”命令,在“/root”目錄下創(chuàng)建一個名為“havp_part.img”的鏡像文件,其容量為128MB,并將其虛擬為獨立分區(qū)。執(zhí)行“mkfs.ext3 /root/havp_part.img”命令,對其進行格式化處理。
執(zhí)行“echo "/root/havp_part.img /var/tmp/havp ext3 defaults,loop,mand 00" >> /etc/fstab”命令,將該虛擬盤信息添加到“/etc/fstab”文件中,該文件負責(zé)在開始時處理磁盤掛載操作。這樣,在開機后就可以自動掛載該虛擬分區(qū)了。執(zhí)行“mount -a”命令,掛載該虛擬分區(qū)。
因為對HAVP的運行文件進行了修改,而且ClamAV需要讀取HAVP的緩存文件分區(qū),所以需要修改其文件存取權(quán)限,讓ClamAV可以讀取HAVP的緩存目錄。執(zhí)行“chown-R clamav.clamav /var/log/havp/”,“chown –R clamav.clamav /var/tmp/havp/”,“chown-R clamav.clamav /var/run/havp/”命 令,可 以讓ClamAV掃描這幾個文件夾?!癱hmod -R 700 /var/log/havp/”,“chmod-R 700 /var/tmp/havp/”,“chmod -R 700/var/run/havp/”等命令,修改這幾個目錄的權(quán)限,使其所有者才擁有讀和寫以及執(zhí)行的權(quán)限。
之后對Squid代理服務(wù)的配置文件“/etc/squid/squid.conf”進行修改,在其中添加“dns_name servers 202.103.29.69202.103.0.197”之類的信息,為其設(shè)置DNS服務(wù)器地址,當(dāng)然的地址為假設(shè)的IP。
添 加“visible_host name 192.168.0.19” 之類的信息,設(shè)置其主機地址。輸入“cache_mem 200 MB”之類的信息,設(shè)置緩存容量??梢栽O(shè)置允許訪問本代理服務(wù)器的網(wǎng)段,例如 輸入“acl lanclient src 192.168.0.0/20”,“http access allow lanclient”之類的信息,讓指定的網(wǎng)段可以訪問本服務(wù)器,當(dāng)然,這只是Squid代理服務(wù)的簡單設(shè)置。
為了讓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”等行。保存該文件后,執(zhí)行“/usr/local/sbin/havp”命令,啟動HAVP程序。 執(zhí)行“service squid restart”命令,重啟Squid代理服務(wù)。
之后可以在客戶端設(shè)置代理服務(wù)器信息,例如在Windows打開IE設(shè)置界面,在局域網(wǎng)設(shè)置窗口中輸入代理服務(wù)器的IP和端口,這里的端口應(yīng)為Squid的代理端口3128。之后當(dāng)在IE中訪問的網(wǎng)站包含病毒時,就會顯示HAVP的攔截界面,提示其中發(fā)現(xiàn)了病毒信息。
如果想得到更好的攔截界面,可以使用VIM等編輯 器,對“/usr/local/etc/havp/templates/en/virus.html”文件進行修改,在這里面修改病毒攔截的提示信息。