今や常識となりつつあるウィルス検知ソフトを導入する。

Clam AntiVirusはシグネチャによるパターンマッチング方式を採用しており、2006年12月27日の時点で約85,000種類のウイルスに対応する、GPLライセンスに従って利用することができるオープンソースのソフトウェアだ。
qmailやpostfix、sendmailなどと連携してウィルス検知を行うこともできる。

Clam AntiVirusが導入されているかを調べる。

# yum list clamav
Loading "installonlyn" plugin
Setting up repositories
core                      100% |=========================| 1.1 kB    00:00
updates                   100% |=========================| 1.2 kB    00:00
extras                    100% |=========================| 1.1 kB    00:00
Reading repository metadata in from local files
Available Packages
clamav.i386                              0.88.7-1.fc6           extras

<

p>一見「インストールされているのかな?」と思ってしまうかもしれないが、clamav.i386の行の一番右側を見ると「extras」となっており、インストールされていないことがわかる。

(インストールされている場合は、「extras」ではなく「installed」となる。)

インストールされている場合は、次の手順まで読み進む。

インストールされていない場合は、下記のようにyumを利用してインストールする。

「yum -y install clamav」と入力することで、途中の「Is this ok [y/N]: y」部分での入力が不要になる。

# yum install clamav
Loading "installonlyn" plugin
Setting up Install Process
Setting up repositories
Reading repository metadata in from local files
Parsing package install arguments
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for clamav to pack into transaction set.
clamav-0.88.7-1.fc6.i386. 100% |=========================|  20 kB    00:00
---> Package clamav.i386 0:0.88.7-1.fc6 set to be updated
--> Running transaction check
--> Processing Dependency: data(clamav) for package: clamav
--> Processing Dependency: clamav-lib = 0.88.7-1.fc6 for package: clamav
--> Processing Dependency: libclamav.so.1 for package: clamav
--> Restarting Dependency Resolution with new changes.
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for clamav-lib to pack into transaction set.
clamav-lib-0.88.7-1.fc6.i 100% |=========================|  17 kB    00:00
---> Package clamav-lib.i386 0:0.88.7-1.fc6 set to be updated
---> Downloading header for clamav-data to pack into transaction set.
clamav-data-0.88.7-1.fc6. 100% |=========================|  18 kB    00:00
---> Package clamav-data.i386 0:0.88.7-1.fc6 set to be updated
--> Running transaction check
--> Processing Dependency: fedora-usermgmt for package: clamav-data
--> Restarting Dependency Resolution with new changes.
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for fedora-usermgmt to pack into transaction set.
fedora-usermgmt-0.8.91-1. 100% |=========================| 5.2 kB    00:00
---> Package fedora-usermgmt.noarch 0:0.8.91-1.fc6 set to be updated
--> Running transaction check
--> Processing Dependency: instance(fedora-usermgmt) for package: fedora-usermgmt
--> Processing Dependency: fedora-usermgmt-core = 0.8.91-1.fc6 for package: fedora-usermgmt
--> Processing Dependency: setup(fedora-usermgmt) for package: fedora-usermgmt
--> Restarting Dependency Resolution with new changes.
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for fedora-usermgmt-shadow-utils to pack into transaction set.
fedora-usermgmt-shadow-ut 100% |=========================| 6.7 kB    00:00
---> Package fedora-usermgmt-shadow-utils.noarch 0:0.8.91-1.fc6 set to be updated
---> Downloading header for fedora-usermgmt-core to pack into transaction set.
fedora-usermgmt-core-0.8. 100% |=========================| 5.8 kB    00:00
---> Package fedora-usermgmt-core.noarch 0:0.8.91-1.fc6 set to be updated
---> Downloading header for fedora-usermgmt-default-fedora-setup to pack into transaction set.
fedora-usermgmt-default-f 100% |=========================| 6.0 kB    00:00
---> Package fedora-usermgmt-default-fedora-setup.noarch 0:0.8.91-1.fc6 set to be updated
--> Running transaction check

Dependencies Resolved

=============================================================================
 Package                 Arch       Version          Repository        Size
=============================================================================
Installing:
 clamav                  i386       0.88.7-1.fc6     extras            599 k
Installing for dependencies:
 clamav-data             i386       0.88.7-1.fc6     extras            7.4 M
 clamav-lib              i386       0.88.7-1.fc6     extras            163 k
 fedora-usermgmt         noarch     0.8.91-1.fc6     extras            6.6 k
 fedora-usermgmt-core    noarch     0.8.91-1.fc6     extras            7.6 k
 fedora-usermgmt-default-fedora-setup  noarch     0.8.91-1.fc6     extras            6.5 k
 fedora-usermgmt-shadow-utils  noarch     0.8.91-1.fc6     extras            7.4 k

Transaction Summary
=============================================================================
Install      7 Package(s)
Update       0 Package(s)
Remove       0 Package(s)

Total download size: 8.1 M
Is this ok [y/N]: y
Downloading Packages:
(1/7): clamav-data-0.88.7 100% |=========================| 7.4 MB    00:20
(2/7): fedora-usermgmt-0. 100% |=========================| 6.6 kB    00:00
(3/7): clamav-lib-0.88.7- 100% |=========================| 163 kB    00:00
(4/7): clamav-0.88.7-1.fc 100% |=========================| 599 kB    00:01
(5/7): fedora-usermgmt-sh 100% |=========================| 7.4 kB    00:00
(6/7): fedora-usermgmt-co 100% |=========================| 7.6 kB    00:00
(7/7): fedora-usermgmt-de 100% |=========================| 6.5 kB    00:00
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing: fedora-usermgmt-default-fedo ######################### [1/7]
  Installing: fedora-usermgmt-core         ######################### [2/7]
  Installing: fedora-usermgmt-shadow-utils ######################### [3/7]
  Installing: fedora-usermgmt              ######################### [4/7]
  Installing: clamav-data                  ######################### [5/7]
  Installing: clamav-lib                   ######################### [6/7]
  Installing: clamav                       ######################### [7/7]

Installed: clamav.i386 0:0.88.7-1.fc6
Dependency Installed: clamav-data.i386 0:0.88.7-1.fc6 clamav-lib.i386 0:0.88.7-1.fc6 fedora-usermgmt.noarch 0:0.8.91-1.fc6 fedora-usermgmt-core.noarch 0:0.8.91-1.fc6 fedora-usermgmt-default-fedora-setup.noarch 0:0.8.91-1.fc6 fedora-usermgmt-shadow-utils.noarch 0:0.8.91-1.fc6
Complete!

本体のインストールが終了したら、パターンファイルのアップデートなどを行うためのファイルが入ったパッケージのインストールを行う。

# yum install clamav-update
Loading "installonlyn" plugin
Setting up Install Process
Setting up repositories
Reading repository metadata in from local files
Parsing package install arguments
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for clamav-update to pack into transaction set.
clamav-update-0.88.7-1.fc 100% |=========================|  19 kB    00:00
---> Package clamav-update.i386 0:0.88.7-1.fc6 set to be updated
--> Running transaction check

Dependencies Resolved

=============================================================================
 Package                 Arch       Version          Repository        Size
=============================================================================
Installing:
 clamav-update           i386       0.88.7-1.fc6     extras             47 k

Transaction Summary
=============================================================================
Install      1 Package(s)
Update       0 Package(s)
Remove       0 Package(s)

Total download size: 47 k
Is this ok [y/N]: y
Downloading Packages:
(1/1): clamav-update-0.88 100% |=========================|  47 kB    00:00
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing: clamav-update                ######################### [1/1]

Installed: clamav-update.i386 0:0.88.7-1.fc6
Complete!

インストールが完了したら、パターンファイル更新用のコンフィグファイルを編集し、更新ができる状態にする。

# sed -i 's/^Example/#Example/g' /etc/freshclam.conf
# sed -i 's/^FRESHCLAM/#FRESHCLAM/g' /etc/sysconfig/freshclam

パターンファイルを更新する。

# freshclam
ClamAV update process started at Wed Dec 27 17:04:15 2006
main.cvd is up to date (version: 41, sigs: 73809, f-level: 10, builder: tkojm)
daily.cvd is up to date (version: 2382, sigs: 11567, f-level: 9, builder: ccordes)

「ERROR: Clamd was NOT notified: Can’t connect to clamd on 127.0.0.1:3310」とエラーが表示される場合は、下記のコマンドを実行する。

# sed -i 's/^NotifyClamd/#NotifyClamd/g' /etc/freshclam.conf

スクリプトを作成し、ウィルスの検知が簡単に行えるように設定を行う。

# mkdir /root/mainte
# vi /root/mainte/clamav.sh
#!/bin/bash

PATH=/usr/bin:/bin
freshclam > /dev/null
clamscan --recursive --remove / | grep FOUND$

# chmod 755 /root/mainte/clamav.sh
# vi /etc/cron.d/clamav
00 05 * * * root /root/mainte/clamav.sh

これで毎日、午前5時にチェックするように設定ができた。

00の部分が、分、05の部分が時を表しているので、環境によって変えても良い。

*の後ろに書いてあるrootは実行するユーザの名前だが、clamavは読み込めないファイルがあると困るため、rootとする。

crondを利用した場合、標準出力があると実行したユーザ宛てに標準出力をメールで送信するため、この設定では、aideで検知した内容はroot宛てにメールで飛ぶようになっている。