最終更新日 2024年1月1日以前
CentOS7へのclamAVのインストールと設定方法です。
ClamAVの特長は以下です。
・無料ソフトの中で一番有名
・機能追加、連携する関連ソフトが豊富
・リアルタイムスキャン可能。
※サブディレクトリ不可ですがClamAVメーリングリストなど、対処する
スクリプトを掲載しているサイトは有ります。
本ページの目次
clamscan・・・スキャンを行う。clamscanは起動するたびにウィルスデータベースを解凍、
展開し、検査を行うため遅い。オプションは豊富。
clamscanのオプション
--help
--version
--verbose
--debug
--quiet
--stdout
--log=FILE
--log-verbose
--disable-summary
--infected
--bell
--tempdir=DIRECTORY
--database=FILE/DIR
--recursive
--exclude=PATT
--include=PATT
--remove
--move=DIRECTORY
--force
clamdscan・・・スキャンを行う。clamscanより早い。オプションはclamscanより少ない。
clamdscanのオプション
--help
--version
--verbose
--quiet
--stdout
--log=FILE
--log-verbose
--disable-summary
--config-file=FILE
引用元
RPMforgeリポジトリのインストール
rpm -ivh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
yum install clamd
clamd、clamav、clamav-dbがインストールされます。
ユーザーマニュアル(英語)は
/usr/share/doc/clamav-***/clamdoc.pdfです。
そのフォルダには、その他サンプルファイルなどが有ります。
※clamav、clamav-dbのみを入れる場合
yum install --enablerepo=epel clamav
yum install --enablerepo=rpmforge clamav
clamav自体はepelの方が新バージョンでしたがfreshclamが有りませんでした。
また、clamavのみを入れた場合はclamdに関するファイル(clamd.confなど)は
インストールされません。
vi /etc/yum.repos.d/rpmforge.repo
enabled = 1
を
enabled = 0
に変更
※今後、rpmforgeリポジトリを使用する際は
か、再度enable=1へ変更します。
root権限で動作するようにする。
vi /etc/clamd.conf
#User clamav
※コメントアウトする。195行目に有りました。
※自動起動させるには
※自動起動の停止は
もしくは
systemctlについては以下のページに記載しました。
その後、OSの再起動後に
するとclamdが起動出来ませんでした。
以下のエラーでした。
/var/runディレクトリにclamavディレクトリがそもそも有りませんでしたので
作成しました。
その後clamdを正しく起動出来ました。
その後、OSの再起動を行うと、また起動できず
/var/run/clamavディレクトリも無くなっていました。
(tmpディレクトリのような動作)
そのため、systemdを使用してOS起動時に
/var/run/clamavディレクトリを作成しました。
既に/tmpfiles.dディレクトリにscreen.confや
named.confが有ったので、それをコピーして作成しました。
cp screen.conf clamav.conf
vi clamav.conf
d /var/run/clamav 0755 root root -
その後はOSを再起動しても正常にclamdが起動しました。
別の対処方法として/etc/clamd.confで、ソケットやプロセスの作成場所を
全て違うディレクトリに変更しても良いのかもしれません。
clamconfは、/etcのclamd.confとfreshclam.confの設定値や各バージョンの
確認ができます。
clamconf
Checking configuration files in /etc
Config file: clamd.conf
-----------------------
LogFile = "/var/log/clamav/clamd.log"
clamdtopはclamdの状況をモニタ出来ます。
freshclam.confについて、8行目のExampleがコメントアウトされていることを確認します。
vi /etc/freshclam.conf
#Example
※「/etc/cron.daily/freshclam」によっても
毎日に自動にて実施されます。
freshclamのオプション
--http-proxy=hostname[:port] プロキシを使用する
--proxy-user=user:password プロキシのユーザー、パスワード
※詳細は3.2. freshclamに記載されていました。
freshclam
アップデートパッケージが有るということでした。
yum update --enablerepo=rpmforge clamd
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: ftp.iij.ad.jp
* extras: ftp.iij.ad.jp
* rpmforge: ftp.riken.jp
* updates: ftp.iij.ad.jp
No packages marked for update
まだこちらには無さそうなので今回は放っておきました。
「yum update --enablerepo=rpmforge clamd」を含んだスクリプトをcronで
毎日実行させておこうかと思います。
※スキャン対象とする任意のディレクトリへ移動します。
もしくは
※eicar.comが保存されたことを確認します。
clamscan -r --remove
/root/eicar.com: Eicar-Test-Signature FOUND
----------- SCAN SUMMARY -----------
Known viruses: 3714829
Engine version: 0.98.4
Scanned directories: 153
Scanned files: 183
Infected files: 1
Data scanned: 44.14 MB
Data read: 55.26 MB (ratio 0.80:1)
Time: 18.217 sec (0 m 18 s)
※正しくeicar.comが削除されたことを確認します。
※スキャン対象ディレクトリ、除外ディレクトリ等々、各環境で設定を変えて下さい。
ルートディレクトリをスキャンしたところ、/sysはエラーが出たため、除外としても
良いかもしれません。
上記(/sys、/proc以外を全スキャン)でログを取得したところ、ログファイルのサイズは
3MBでした。スキャン結果(スキャン サマリ)は最後の10行に記載されています。
メール後に以前のログを削除させるか、それか1か月位でログローテーションしても良いですね。
※clamscanではなく「clamdscan」を行う場合は、/etc/clamd.confに
除外ディレクトリを記載します。
※どのディレクトリをスケジュールスキャンするかは以下を参照にして下さい。
一度スクリプトを実行してみて、正しくメール受信出来ることを確認します。
また今後、翌日(翌週)3、4時頃にもメール受信することを確認し正しくクーロン、
スキャンが行えたことを確認しましょう。
./clamav-scan.sh
1週間に1度スケジュールスキャンをする場合
1日に1度スケジュールスキャンをする場合
CentOS6と同一で殆ど何も記載されていません。
CentOS5のように「cron.dailyは4時2分に実行」では有りません。
1台の物理サーバ上で全仮想サーバが4時2分にスクリプトを実行すると
負荷がかかるため、などの理由。
[root@localhost /]# cat /etc/anacrontab
以上のデフォルト設定により日次、週次ともに(スケジュールスキャンが)
午前3時~4時の間に実行されるかと思います。
実行時刻をランダムでは無く、固定するにはcronie-noanacronを
インストールして使用する感じかと思います。
以上で設定完了です。
リアルタイムスキャン(オンアクセススキャン)の設定方法です。
オンアクセススキャンの設定は/etc/clamd.confの526行目からです。
532行目と543行目の#を外し、543行目のOnAccessIncludePathを/rootとしてみました。
また利用するモジュールについては、
「Enable on-access scanning. Currently, this is supported via fanotify.
Clamuko/Dazuko support has been deprecated.」
「オンアクセススキャンを有効にします。現在、これはfanotifyを介して利用します。
Clamuko/Dazukoのサポートは廃止されました。」
fanotify一本となったとのことでした。
以前、CentOS5や6でリアルタイムスキャンによく使用されていたRedirFS、Dazukoは
収束しており、現在はLinux 2.6.36以降のカーネルに最初から入っているfanotify
(filesystem wide access notification)を利用してのリアルタイムスキャンが
多くなっていっています。
IPAのサイトにdnotify・inotify・fsnotify・fanotifyの説明が有りました。
Linuxの無料のウィルス対策ソフトで言うとオンアクセススキャン時に
利用するモジュールは以下です。
また、fanotifyの動作通りサブディレクトリは再帰的に見ないので
1つずつディレクトリを列挙すること、とありました。
そして/etc/clamd.confの編集後、fanotifyを利用するためSELinuxを
無効にしました。セキュアに実施するのであればSELinuxのポリシー変更の
方が良いかと思います。
vi /etc/selinux/config
を
へ変更。
OS再起動後、eicar.comをダウンロードしました。
/rootディレクトリ、/root/aaaディレクトリそれぞれに
eicar.comを置きました。
clamdを再起動しました。
ログを見ておきます。
/root/フォルダを見ると同時にログが更新されました。
翻って/root/aaaフォルダを見ても何も起こりませんでした。
(≒再帰的では有りませんでした。)
初期設定状態でサブディレクトリもスキャン(再帰的スキャン)出来るという点では
AVGの方が優れていますね。
マウントポイント全体のリアルタイムスキャンなど