#author("2016-04-24T00:54:19+09:00","","") #author("2016-04-24T17:03:41+09:00","","") [[Computer/OpenSource]] *概要 [#edd169c6] Clam AntiVirus は各種 UNIX 系のシステム(Linux, Mac OS Xなどを含む)で動作するアンチウイルスソフトである.パターンマッチング方式を採用しており,2008年4月16日の時点で約260,000種類のウイルスに対応している.GPL ライセンスに従って利用することができるオープンソースのソフトウェアである. Clam AntiVirusは各種UNIX系のシステム(Linux, Mac OS Xなどを含む)で動作するアンチウイルスソフトである.パターンマッチング方式を採用しており,2016年4月の時点で約4,300,000種類のウイルスに対応している.GPLライセンスに従って利用することができるオープンソースのソフトウェアである.Windows版もある. -http://www.clamav.net/ (公式ページ) -http://clamav-jp.sourceforge.jp/ (日本語ページ) *インストール [#gafa0628] Vine Linux 3.2 では clamav は VinePlus の extras カテゴリに入っているので,apt の設定を確認してインストールする.Vine Linux 4.1 では plus カテゴリに入っているので次の作業は必要ない. /etc/apt/sources.list の例(末尾に extras を加える) # (ECCS mirror) rpm [vine] ftp://ftp.ecc.u-tokyo.ac.jp/VINELINUX/apt/ 3.2/$(ARCH) main devel plus updates extras rpm-src [vine] ftp://ftp.ecc.u-tokyo.ac.jp/VINELINUX/apt/ 3.2/$(ARCH) main devel plus updates extras sources.list を更新したあと,apt-get でインストールする. # apt-get install clamav なお,clamav パッケージは頻繁にアップデートされているので,ウィルスデータベース同様,更新を怠らないこと. **ソースからのインストール [#o9fd795f] -http://nchc.dl.sourceforge.net/sourceforge/clamav/clamav-0.93.tar.gz などからダウンロードする. インストール方法は通常通り $ ./configure $ make # make install でできるが,先に gmp パッケージをインストールしておくと,Digital Signature 対応になる.参考:[[gmp>Computer/OpenSource/gmp]] **トラブル対応 [#a1e9376e] 場合によってはうまくコンパイルできないことがある.次の例を参考にしてほしい. -[[OS X 10.10 Yosemiteへの対応>Computer/OpenSource/ClamAV/Yosemite]] -[[zlibのエラー>Computer/OpenSource/ClamAV/zlib]] -[[gcc-4.0.1 on Mac OS X(10.4 Tiger & 10.5 Leopard)でのエラー(clamav-0.92 以降)>Computer/OpenSource/ClamAV/gcc-4.0.1]] -[[Mac OS X 10.4 Tiger で上書きインストールできない場合>Computer/OpenSource/ClamAV/Tiger]] -[[Mac OS X 10.5 Leopard への対応(clamav-0.92 以前)>Computer/OpenSource/ClamAV/Leopard]] *共通設定 [#hf32b332] 以下の設定は,クライアント/サーバとも行う必要がある. **clamd.conf の設定 [#sf27ae8b] ***テスト用設定の解除 [#e3af6200] /etc/clamd.conf の8行目付近にある「Example」と書かれた行をコメントアウトする. # Comment or remove the line below. # Example ***ログファイルの設定 [#n86a6dcb] ログファイルを出力したければ,次の部分のコメントを解除し,ファイルのパスを指定する. # Uncomment this option to enable logging. # LogFile must be writable for the user running daemon. # A full path is required. # Default: disabled LogFile /var/log/clamd.log //指定したら,ファイルを作成して所有者とパーミッションを設定しておく. // # touch /var/log/clamd.log // # chown clamav:clamav /var/log/clamd.log // # chmod 640 /var/log/clamd.log //パーミッションはお好みで. ***ソケットの設定 [#d8e3f250] 72行目付近のソケットの設定は,任意で LocalSocket /var/run/clamav/clamd に変更する. # Path to a local socket file the daemon will listen on. # Default: disabled LocalSocket /var/run/clamav/clamd **freshclam.conf の設定 [#jd0a23bf] ***テスト用設定の解除 [#ebb0d3f2] /etc/freshclam.conf の9行目付近にある「Example」と書かれた行をコメントアウトする. # Comment or remove the line below. # Example ***サーバの変更 [#jc0365b5] サーバを日本のものに変更しておく.55行目付近の記述を変更する. # Uncomment the following line and replace XY with your country # code. See http://www.iana.org/cctld/cctld-whois.htm for the full list. # Default: There is no default, which results in an error when running freshclam DatabaseMirror db.jp.clamav.net *クライアント用設定 [#paa3f4cc] **freshclam [#a9e7450f] ウィルスデータベースの更新は # freshclam で行う.ウィルスデータベースはほぼ1日に1回更新されている.常時接続環境にあれば,「サーバ用設定」−「cron への登録」−「freshclam」で,/etc/cron.daily/freshclam を作成するとよい{{fn 常時マシンが起動されていなくても,マシンが起動してからしばらくたつと自動的に cron が実行される(anacron).}}. **clamscan [#ya75620c] ウィルスチェックを行うときは, $ clamscan -r <Directory> を実行すると,<Directory> 以下のファイル/ディレクトリが再帰的に検査される. 自動的にウィルスチェックを行わせるためには,「サーバ用設定」−「cron への登録」−「clamscan」で,/etc/cron.daily/clamscan を作成するとよい. *サーバ用設定 [#oa4f198f] **cron への登録 [#j703a57f] ***freshclam [#sf3d84b4] 毎日 freshclam を実行させるために,/etc/cron.daily/freshclam を作成する. /etc/cron.daily/freshclam #***/bin/sh /usr/bin/freshclam –daemon-notify –quiet –log=/var/log/freshclam.log 実行権限を与えておく. # chmod 755 /etc/cron.daily/freshclam 次に /var/log/freshclam.log を作成する{{fn うまくログが作成されないときは,所有者/グループを clamav にしておくとよいかもしれない.# chown clamav:clamav /var/log/freshclam.log}}. # touch /var/log/freshclam.log ***clamscan [#a377068f] 自動的にウィルスに感染したファイルを検索させるには,cron に登録しておくとよい. /etc/cron.{hourly,daily,weekly,monthly}/clamscan を作成する(個人的には weekly で十分だと思う). /etc/cron.{hourly,daily,weekly,monthly}/clamscan #***/bin/sh # # clamscan v1.0 2006/05/16 MATSUURA Takashi # PATH=/usr/bin clamscan -r -i –log=/var/log/clamscan.log /home –log= と /home の部分は自分の管理しているシステムに合わせて変更しておく.検索ディレクトリは,/var や /tmp も加えておくとよい. 実行権限を与えておく. # chmod 755 /etc/cron.{hourly,daily,weekly,monthly}/clamscan clamscan の結果は,root 宛にメールが届き,/var/log/clamscan.log にも記録される. 次に /var/log/clamscan.log を作成する.log に記録されたファイル名などが(管理者以外の)他人にわかってしまっては困るので,パーミッションを変えておく. # touch /var/log/clamscan.log # chmod 600 /var/log/clamscan.log **logrotate の設定 [#l07920ad] ***freshclam [#a28d28d8] freshclam のログは /var/log/freshclam.log にできる.これを lotate する.あまり大きなログではないので,1ヶ月に一回 lotate することにする. /etc/logrotate.d/freshclam /var/log/freshclam.log { monthly missingok } ***clamscan [#h1d3d16a] clamscan のログは /var/log/clamscan.log にできる.これを lotate する.これもあまり大きなログではないので,1ヶ月に一回 lotate することにする. /etc/logrotate.d/clamscan /var/log/clamscan.log { monthly missingok } **clamd を自動的にスタートさせる設定 [#r1649826] サーバマシンの起動時に clamd も起動させるように設定する. ***起動スクリプトの作成 [#lf88a5aa] clamd を起動するスクリプトを /etc/rc.d/init.d/clamd に作成する. /etc/rc.d/init.d/clamd #***/bin/bash # chkconfig: 345 80 20 # description: Clamd daemon . /etc/init.d/functions prog="/usr/sbin/clamd" prog_base="$(basename ${prog})" prog_config_file="/etc/clamd.conf" RETVAL=0 case "$1" in start) action $"Starting ${prog_base}:" ${prog} -c ${prog_config_file} RETVAL=$? echo ;; stop) echo $"Shutting down ${prog_base}" killproc ${prog_base} RETVAL=$? echo ;; status) status $"${prog_base}" RETVAL=$? echo ;; restart) $0 stop $0 start RETVAL=$? ;; reload) pid=`pidofproc ${prog_base}` kill -USR2 ${pid} RETVAL=$? ;; -) echo "Usage: $0 {start>stop>status>restart>reload}" exit 1 esac exit $RETVAL ***起動スクリプトの登録 [#g209cc71] 起動スクリプトを作成したら実行権限を与え,サーバマシンを起動するたびに起動されるように設定する.そして,ソケット用に指定した /var/run/clamav を作成し,最後に clamd を起動する. # chmod 755 /etc/rc.d/init.d/clamd # chkconfig clamd on # mkdir /var/run/clamav # service clamd start *使い方 [#x5811670] **freshclam [#we6031ef] # freshclam を実行すると,ウィルスデータベースが更新される. **clamscan [#tdef1b98] $ clamscan を実行するとウィルス検索ができる.詳しくは $ clamscan –help や $ man clamscan で確認する. *エラー対応 [#ub974090] **clamd [#l8804dca] clamd の起動に失敗する場合は,/var/log/clamd.log などの log ファイルを参考にする. ***ソケットの削除 [#b2a847ec] ソケットファイルが残っていて起動に失敗することがあるので,削除する. # cd /var/run/clamav # rm -rf clamd *参考 [#xbf86b75] -[[@IT:Linuxで動く便利ツール[ClamAV]:http://www.atmarkit.co.jp/flinux/prodreview/tool_clamav/clamav.html]]