さて、Clam AntiVirusインストールをインストするかな。
> cd
> wget http://。。。
-bash: wget: コマンドが見つかりません
と云う訳で wget からですね。
> yum -y install wget –disablerepo=* –enablerepo=local
・・・
Installed:
wget.i686 0:1.12-1.4.el6
Complete!
> wget http://sourceforge.net/projects/clamav/files/clamav/0.97.1/clamav-0.97.1.tar.gz/download
・・・
jaist.dl.sourceforge.net|150.65.7.130|:80 に接続しています… 接続しました。
HTTP による接続要求を送信しました、応答を待っています… 200 OK
長さ: 43913867 (42M) [application/x-gzip]
`clamav-0.97.1.tar.gz’ に保存中
・・・
100%[======================================>] 43,913,867 215K/s 時間 3m 23s
2011-07-21 22:36:53 (211 KB/s) – `clamav-0.97.1.tar.gz’ へ保存完了 [43913867/43913867]
> tar zxvf clamav-0.97.1.tar.gz
(長いので全略)
> cd clamav-0.97.1
ではチェック&ビルド
> ./configure && make && make install
・・・
configure: error: in `/root/clamav-0.97.1':
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details
Cコンパイラと一緒にC++コンパイラも入れる。
> yum -y install gcc gcc-c++ --disablerepo=* --enablerepo=local
Installed:
gcc.i686 0:4.4.4-13.el6 gcc-c++.i686 0:4.4.4-13.el6
Dependency Installed:
cloog-ppl.i686 0:0.15.7-1.2.el6 cpp.i686 0:4.4.4-13.el6
glibc-devel.i686 0:2.12-1.7.el6 glibc-headers.i686 0:2.12-1.7.el6
kernel-headers.i686 0:2.6.32-71.el6 libgomp.i686 0:4.4.4-13.el6
libstdc++-devel.i686 0:4.4.4-13.el6 mpfr.i686 0:2.4.1-6.el6
ppl.i686 0:0.10.2-11.el6
Complete!
再びチェック&ビルド
configure: error: Please install zlib and zlib-devel packages
> yum -y install zlib-devel --disablerepo=* --enablerepo=local
Installed:
zlib-devel.i686 0:1.2.3-25.el6
Dependency Installed:
pkgconfig.i686 1:0.23-9.1.el6
Complete!
再びチェック&ビルド
configure: error: User clamav (and/or group clamav) doesn’t exist. Please read the documentation !
悪いが、ドキュメントを読まずにユーザを作らせてもらう。
> useradd -s /sbin/nologin clamav -m -d /usr/local/share/clamav -k /dev/null
再びチェック&ビルド
-bash: make: コマンドが見つかりません
※ボクの勝ち! しかし、続く。
> yum -y install make –disablerepo=* –enablerepo=local
Installed:
make.i686 1:3.81-19.el6
Complete!
再びチェック&ビルド
(かなり長い)
make[2]: ディレクトリ `/root/clamav-0.97.1′ から出ます
make[1]: ディレクトリ `/root/clamav-0.97.1′ から出ます
なのでビルド完了。
/usr/local/etc/clamd.confを設定する。
以下、差分。
8c8
< #Example
—
> Example
15d14
< LogFile /var/log/clamd.log
36d34
< LogTime yes
83d80
< LocalSocket /tmp/clamd.socket
96d92
< FixStaleSocket yes
/usr/local/etc/freshclam.confを設定する。
以下、差分。
8c8
< #Example
—
> Example
18d17
< UpdateLogFile /var/log/freshclam.log
75,76c74
< #DatabaseMirror database.clamav.net
< DatabaseMirror db.jp.clamav.net
—
> DatabaseMirror database.clamav.net
124d121
< NotifyClamd /usr/local/etc/clamd.conf
ログ用に空ファイルを作る
touch /var/log/freshclam.log
chown clamav:clamav /var/log/freshclam.log
走らせて見る。
> freshclam
-bash: freshclam : コマンドが見つかりません
何ぃ~!
> find / -name freshclam -print
> ls /usr/local/bin/
clamav-config clambc clamconf clamdscan clamscan freshclam sigtool
> echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
変だな。
こう云う時は、もう一回。
> freshclam
ClamAV update process started at Thu Jul 21 23:12:26 2011
main.cvd is up to date (version: 53, sigs: 846214, f-level: 53, builder: sven)
WARNING: getfile: daily-13172.cdiff not found on remote server (IP: 211.10.155.48)
WARNING: getpatch: Can’t download daily-13172.cdiff from db.jp.clamav.net
WARNING: getfile: daily-13172.cdiff not found on remote server (IP: 120.29.176.126)
WARNING: getpatch: Can’t download daily-13172.cdiff from db.jp.clamav.net
WARNING: getfile: daily-13172.cdiff not found on remote server (IP: 219.106.242.51)
WARNING: getpatch: Can’t download daily-13172.cdiff from db.jp.clamav.net
WARNING: Incremental update failed, trying to download daily.cvd
Downloading daily.cvd [100%]
daily.cvd updated (version: 13344, sigs: 161057, f-level: 60, builder: neo)
Downloading bytecode.cvd [100%]
bytecode.cvd updated (version: 144, sigs: 41, f-level: 60, builder: edwin)
Database updated (1007312 signatures) from db.jp.clamav.net (IP: 219.94.128.99)
WARNING: Clamd was NOT notified: Can’t connect to clamd through /tmp/clamd.socket
connect(): No such file or directory
> とりあえずcrom化。
> vi freshclam
#!/bin/sh /usr/local/bin/freshclam --quiet
> chmod 700 freshclam
> mv freshclam /etc/cron.hourly/
ログローテート設定もする。
vi /etc/logrotate.d/clamd
/var/log/clamd.log { sharedscripts postrotate /etc/rc.d/init.d/clamd restart > /dev/null || true endscript }
vi /etc/logrotate.d/freshclam
/var/log/freshclam.log { missingok notifempty create 644 clamav clamav }
> cp /root/clamav-0.97.1/clamd/clamd /etc/rc.d/init.d/
> /etc/rc.d/init.d/clamd start
Bytecode: Security mode set to “TrustSigned”.
> chkconfig –add clamd
サービス clamd は、chkconfig をサポートしていません。
なので、CentOS5.6を参考に、clamdの2行目に
# chkconfig: – 61 39
を差し込む。
> chkconfig –add clamd
> chkconfig clamd on
> chkconfig –list clamd
clamd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
> vi /etc/cron.daily/clamav.sh Clam AntiVirus実行スクリプト作成
#!/bin/bash
PATH=/bin:/usr/local/bin
# excludelist
excludelist=/root/clamscan.exclude
# make excludelist
if [ -s $excludelist ]; then
for i in `cat $excludelist`
do
if [ $(echo “$i”|grep \/$) ]; then
i=`echo $i|sed -e ‘s/^\([^ ]*\)\/$/\1/p’ -e d`
excludeopt=”${excludeopt} –exclude-dir=^$i”
else
excludeopt=”${excludeopt} –exclude=^$i”
fi
done
fi
# update virus databases & ClamAV
freshclam > /dev/null 2>&1
# scan virus
CLAMSCANTMP=`mktemp`
clamscan –recursive –remove ${excludeopt} / > $CLAMSCANTMP 2>&1
# virus detect message send
[ ! -z “$(grep FOUND$ $CLAMSCANTMP)” ] && \
grep FOUND$ $CLAMSCANTMP | mail -s “Virus Found in `hostname`” root
rm -f $CLAMSCANTMP
mod 700 /etc/cron.daily/clamav.sh
次はアップデータ
http://sourceforge.jp/projects/clamav-update/releases/ を見てみる。
wgetで取れなかったのでFTPで/rootにコピー >
tar zxvf clamav-update-2.2.7.tar.gz > cd clamav-update-2.2.7
> ./install.sh
vi /usr/local/etc/freshclam.conf 少し修正
DatabaseOwner root
OnOutdatedExecute /usr/local/bin/clamav-update.pl --config /usr/local/etc/clamav-update.conf