个人工具

UbuntuHelp:ClamAV

来自Ubuntu中文

跳转至: 导航, 搜索


ClamAV is a command line virus scanner. It can only detect viruses; it cannot remove them from files. It detects viruses on all platforms, but due to the popularity of the platform, it primarily detects Windows viruses and malware. Others antivirus running on Ubuntu can be found here.

Installing ClamAV

  • Ubuntu 8.04: ClamAV is in the Universe repository. (If you do not have Universe enabled, see AddingRepositoriesHowto).
  • Ubuntu 8.10 and up: ClamAV is in the Main repository, so no repositories need to be added. To read more about the differences between Main and Universe, see Ubuntu Components.

ClamAV has two modes of operation; a program that loads into memory only when you want to scan a file, or for more regular use (such as scanning all incoming e-mail), a program that connects to a daemon that is always running. Database updates can also be downloaded automatically .

  • For manual use: install the package clamav.
  • For automated use: install the package clamav-daemon.

Both methods will also install clamav-freshclam, the updater. After installing, you may be asked some questions about how to get virus signature updates. Select the download site closest to you. ClamAV updates are a very small download and it is well worth scheduling them to happen automatically. If you see a message about ClamAV engine being outdated, most likely you aren't running the latest stable Ubuntu. For example on a hardy LTS machine...

root@hevelius:~# /etc/init.d/clamav-daemon restart
 * Stopping ClamAV daemon clamd                                          [ OK ]
 * Starting ClamAV daemon clamd                                                
LibClamAV Warning: ***  This version of the ClamAV engine is outdated.     ***
LibClamAV Warning: *** DON'T PANIC! Read http://www.clamav.net/support/faq ***
LibClamAV Warning: ***********************************************************
                                                                         [ OK ]

Installing ClamAV from the PPA

Updated packages are usually available from the Ubuntu-clamav team, https://launchpad.net/~ubuntu-clamav/+archive/ppa. Note that the packages may not be completely functional and are supported by the community only. ClamAV has official support in Ubuntu for packages installed from the Main repository, since Ubuntu 8.10 (Intrepid). It takes some time to get them tested. The package for 0.95.1 that was initially released was somewhat broken (clamav-milter was non-functional). The Ubuntu-clamav team notes we are probably one more update away from having that sorted out. Once we have a solid package for Jaunty we'll start working on backports. To install the updated PPA packages on Ubuntu 8.04 (Hardy):

  1. Edit your sources.list, ie. "nano -w /etc/apt/sources.list" to include:
    deb http://ppa.launchpad.net/ubuntu-clamav/ppa/ubuntu hardy main
    
  2. Or add the repository via the graphical interface as shown at Other Repositories|https://help.ubuntu.com/community/Repositories/Ubuntu#Adding Other Repositories.
  3. Add the package's OpenPGP key to your keyring, so the package(s) can be authenticated, then update your packages list:
    sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xf80220d0e695a455e651ac4d8ab767895adc2037 
    sudo apt-get update
    sudo apt-get upgrade
    

The code "0xf80..." must be entered on the same line as the "sudo apt-get" command. It may not be shown that way in your browser due to the text wrapping. The update process will detect an existing ClamAV install and update it with more recent versions from the PPA.

Using ClamAV

How can I...

Update my virus definitions?

Use freshclam. You will see an output like this:

user@ubuntu:/etc/clamav # freshclam
ClamAV update process started at Wed Apr 27 00:06:47 2005
main.cvd is up to date (version: 31, sigs: 33079, f-level: 4, builder: tkojm)
daily.cvd is up to date (version: 855, sigs: 714, f-level: 4, builder: ccordes)  
Proxy

If you are using a http proxy to connect to the internet you will have to edit the file /etc/clamav/freshclam.conf adding:

HTTPProxyServer serveraddress
HTTPProxyPort portnumber

Scan files for viruses using clamav?

Use clamscan. Examples:

  • To check files in the all users home directories: clamscan -r /home
  • To check all files on the computer, displaying the name of each file: clamscan -r /
  • To check all files on the computer, but only display infected files and ring a bell when found: clamscan -r --bell -i /

When ClamAV has scanned all the files you asked it to, it will report a summary:

----------- SCAN SUMMARY -----------
Known viruses: 33840
Scanned directories: 145
Scanned files: 226
Infected files: 1
Data scanned: 54.22 MB
I/O buffer size: 131072 bytes
Time: 20.831 sec (0 m 20 s)  

IconsPage?action=AttachFile&do=get&target=info.png ClamAV can only read files that the user running it can read. If you want to check all files on the system, use the sudo command (see UsingSudo for more information).

Run ClamAV as a daemon?

Install clamav-daemon. You can then use clamdscan where you would previously have used clamscan. Lots of programs, especially e-mail servers, can connect to a ClamAV daemon. This speeds up virus scanning as the program is always in memory. The clamav-daemon package creates a 'clamav' user; in order to allow ClamAV to scan system files, such as your mail spool, you can add clamav to the group that owns the files.

Tell if clamav-daemon is running?

Look for it in the processt list, or use this handy shortcut: ps ax | grep [c]lamd

Remove files infected with viruses?

You can add --remove to the clamscan or clamdscan commandline. IconsPage?action=AttachFile&do=get&target=warning.png Note: No virus scanner is 100% accurate. It is always best to manually check the files you delete, if you are not totally sure that this is what you want to do.

Find out what version of ClamAV I have?

Use clamdscan -V:

user@ubuntu:/etc/clamav # clamdscan -V
ClamAV 0.83/855/Tue Apr 26 06:40:32 2005  

Learn about other options?

Try man clamscan.

Schedule ClamAV to run automatically?

You can use the at command to schedule clamscan or freshclam. For example:

at 3:30 tomorrow
at>clamscan -i /home/user | mail [email protected]
at> <CTRL-D> 
job 3 at 2005-04-28 03:30

You have now scheduled a ClamAV scan to happen on your home directory at 3:30 AM tomorrow. The output (showing only infected files) will be sent to you by e-mail.