Table of Contents
- 1. epel-releaseパッケージのインストール
- 2. clamscanでウィルススキャンを実行する
- 3. 手動でウィルスデータベースを更新する
- 4. 自動的にウィルスデータベースを更新する
- 5. clamdでウィルススキャンを実行する
- 6. clamtkでウィルススキャンを実行する
1 epel-releaseパッケージのインストール
clamavパッケージ郡はEPELリポジトリにあるので、最初にepel-releaseパッケージをインストールしてください。
$ sudo yum install -y epel-release
2 clamscanでウィルススキャンを実行する
clamavパッケージをインストールします。
$ sudo yum install -y clamav
clamscanでウィルススキャンを実行します。
- -rオプションでディレクトリを再帰的に走査します。
- -iオプションで検出ファイルのみ表示します。
- –moveオプションで検出ファイルを指定のディレクトリへ移動します。
$ mkdir ~/virus$ clamscan -r -i –move=$HOME/virus .
3 手動でウィルスデータベースを更新する
ウィルスデータベースを更新するにはfreshclamコマンドを実行します。freshclamコマンドはclamav-updateパッケージに含まれます。
$ sudo yum install -y clamav-update$ sudo freshclam
4 自動的にウィルスデータベースを更新する
clamav-updateパッケージをインストールすると3時間毎に/usr/share/clamav/freshclam-sleepを実行するcronジョブが有効になります。
freshclam-sleepは/etc/sysconfig/freshclamで設定されるFRESHCLAM_DELAYがdisabled-warnとdisabledでない場合にfreshclamを実行します。/etc/sysconfig/freshclamのデフォルトではFRESHCLAM_DELAYはdisable-warnが設定されておりfreshclam-sleepはfreshclamを実行しません。
よって、自動的にウィルスデータベースを更新するには、clamav-updateパッケージをインストールして、/etc/sysconfig/freshclamでFRESHCLAM_DELAYにdisabled-warnやdisabledを設定しないようにします。
$ sudo yum install -y clamav-update$ sudo sed -e ‘s/^FRESHCLAM_DELAY/#FRESHCLAM_DELAY/g’ -i /etc/sysconfig/freshclam
ウィルスデータベースの更新間隔を変更するには以下のファイルを編集します。
/etc/cron.d/clamav-update
5 clamdでウィルススキャンを実行する
clamdは予めデータベースを読み込み、clamdscanコマンドのリクエストに答えてウィルススキャンを実行するデーモンです。データベースの分だけ常にメモリを消費しますが、clamdscanはclamscanに比べて実行速度が段違いに早いです。clamscanとは異なり、clamdscanの挙動はclamdに依存します。
WEBサイトにアップロードされるファイルをスキャンする場合はこちらを利用すべきでしょう。
clamdの動作に必要なパッケージをインストールします。
$ sudo yum install -y clamav-server clamav-server-systemd clamav-scanner
clamd.scan.serviceが読み込む/etc/clamd.d/scan.confを編集します。
$ sudo sed -e ‘s/^Example/#Example/g’ -e ‘s/^User.*/User root/g’ -e ‘s/^#LocalSocket /LocalSocket /g’ -e ‘s/^#LocalSocketGroup.*/LocalSocketGroup clamscan/g’ -e ‘s/^#LocalSocketMode /LocalSocketMode /g’ -e ‘s/^#FixStaleSocket /FixStaleSocket /g’ -e ‘s/^#ExcludePath /ExcludePath /g’ -i /etc/clamd.d/scan.conf
clamd.scan.serviceを有効にします。
$ sudo systemctl enable clamd.scan
clamdscanコマンドが利用する/etc/clamd.confを/etc/clamd.d/scan.confのシンボリックリンクにします。
$ sudo ln -s /etc/clamd.d/scan.conf /etc/clamd.conf
clamdの動作に必要なSELinuxの設定を許可します。
$ sudo setsebool -P antivirus_can_scan_system 1$ sudo setsebool -P clamd_use_jit 1
clamdscanを実行するユーザをclamscanグループに所属させます。
$ sudo gpasswd -a “${USER}” clamscan
gpasswdの設定を反映させる為に一度再起動します。
$ sudo reboot
再起動後にclamdscanが実行できるようになります。
$ clamdscan <file-or-dir>
6 clamtkでウィルススキャンを実行する
clamtkパッケージはclamavをGUI操作できるようにするパッケージです。デスクトップで使うのに向いています。
$ DL=https://bitbucket.org/dave_theunsub/clamtk/downloads$ wget -q ${DL}/clamtk-5.24-1.el7.noarch.rpm$ sudo yum localinstall -y clamtk-5.24-1.el7.noarch.rpm
起動画面は以下の通りです。私の環境だと各項目を選択するのにダブルクリックする必要がありました。
Settingsで”scan directories recursively”にチェックを入れておきます。
“Scan a directory”からホームディレクトリを再帰的にスキャンできます。