MOMONGA LAB島根オフィシャルBlog > 開発 > CentOS 6.6 に ClamAV を入れて自動ウィルスチェックを行う

CentOS 6.6 に ClamAV を入れて自動ウィルスチェックを行う

前回 Oracle 11g をインストールした CentOS サーバにウィルス対策ソフトを入れておく必要が出たため,以下の手順でインストールを実施した。

1. ClamAV のインストール

CentOS 6.61 に Oracle 11g を入れた状態で,

と実行してみたが,

というエラーになる。
とりあえず原因もよくわからなかったので,

をそれぞれ実行してからやってみたが,状況は変わらない2

1.1. yum の別リポジトリの登録

どうやら原因としては,yum で取得する先に clamav が存在しないためで,追加の別の場所から取得するようにしなくてはならないそうだ。yum プラグインをインストールする。

を実行する。ちなみにこれは root ユーザが必要。これをインストールすると,yum の実行の際に参照するリポジトリに優先順位をつけることが可能になる。

そこで,以下のように /etc/yum.repos.d/CentOS-Base.repo を編集する。

上記のように各[ ] のセクションに priority=1 もしくは priority=2 を指定していく。

次に,

を実行して EPEL3 というパッケージをインストールする。

インストールが完了したら,/etc/yum.repos.d/epel.repo をエディタで編集する。

編集内容は,上記のように各 [epel] セクションに enabled=1, priority=2 を指定する。あとのセクションは enable=0 のままとする4

1.2. clamav のインストール

この状態で,再度 yum コマンドにより clamav をインストールする。

今回は先ほど追加した EPEL リポジトリから clamav を取得してインストールしてくれる。

2. ClamAV の設定

インストールが完了したら,次は ClamAV の設定を行う。定期的にウィルスデータベースのアップデートを行い,定期的にスキャンしていく処理を登録したい。

2.1. データベースのアップデート

ウィルスデータベースのアップデート5は次のコマンドで実行6する。

2.2. 手動スキャン

手動でウィルススキャンをする場合は,

とする。これで,/home/xxxxx 配下を再帰的にスキャンし,ウィルスの検出をした場合は音で知らせてくれる。

2.3. シェルスクリプトにまとめる

定期実行を楽にするため,データベースのアップデートとスキャンの処理をシェルスクリプトにまとめる。

若干,ログ出力をするための処理が随所に記載してあるが,基本的にはアップデートとスキャンを 1 回ずつ実行するシェルスクリプトとなっている。

2.4. cron への登録

前節で作成したシェルスクリプトを cron へ登録する。以前の Linux では cron の登録は /etc/crontab へ必要な処理を記述することになっていたが,最近の RedHat 系 Linux においては推奨されておらず,代わりに既に crontab へ登録済みの cron.daily, cron.hourly などの定期実行用のフォルダへシェルスクリプトを入れておくだけで定期実行される。

したがって,ここでは上記のシェルスクリプトを cron.hourly へ格納し,1 時間に 1 回実行されるように設定した。


  1. Oracle 11g インストール時は 6.5 だったが,ソフトウェアの自動更新を ON にしておき,当投稿中の yum install update/upgrade を実行したことにより 6.6 にアップデートされていた。 
  2. ubuntu Linux では apt-get で何もしなくても clamav がインストールできたところをみると,ディストリビューションによって取得できるアプリケーションには当然差異があるということである。 
  3. Extras Packages for Enterprise Linux の略。 
  4. この設定により,EPEL のみが「基本リポジトリに見つからない場合に EPEL を探しに行く」という設定になる。 
  5. Windows などのウィルスバスターやノートンユーティリティで言うところの定義ファイルのアップデートである。 
  6. freshclam コマンドはオプションを指定することでデーモン化することが可能だが,データベースのアップデートとスキャンが別々の方法で自動化されていることが管理上よくないため,一元的に cron による自動化を選択している。 
タグ: , , , , ,