「Clam AV」の設定

ウィルス対策として、「Clam AV」を導入する。
なお、ここではバージョンが0.92.1である。
0.88の場合、こちらを参照。

「Clam AV」のインストール

「GNU MP」のインストール

当サイトの「Clam AV」のバージョンが0.88のページではインストールしていないが、 バージョンが0.88でもインストールした方が良い。

Solaris# mkdir /usr/local/src/gnump <= 作業用ディレクトリの作成
Solaris# chmod 777 /usr/local/src/gnump <= 作業用ディレクトリのパーミッション変更
Solaris# exit <= 一般ユーザになる
Solaris% cd /usr/local/src/gnump <= 作業用ディレクトリへ移動
Solaris% wget ftp://ftp.gnu.org/gnu/gmp/gmp-4.2.2.tar.gz <= 「GNU MP」のソースをダウンロード
Solaris% gunzip -c gmp-4.2.2.tar.gz | tar xf - <= ダウンロードしたファイルの展開
Solaris% cd gmp-4.2.2 <= 展開したディレクトリに移動
Solaris% ./configure |& tee configure.log
Solaris% gmake |& tee make.log <= コンパイル
Solaris% su <= スーパーユーザになる
Password: <= パスワードの入力
Solaris# gmake install |& tee make-install.log <= インストール

「Clam AV」用ユーザの作成

「Clam AV」用のユーザを作成する。

Solaris# groupadd -g 3310 clamav
Solaris# useradd -u 3310 -g clamav -d /bin/false -s /bin/false clamav

「Clam AV」のインストール

「Clam AV」のソースファイルをダウンロードし、インストールする。

Solaris# mkdir /usr/local/src/clamav <= 作業用ディレクトリの作成
Solaris# chmod 777 /usr/local/src/clamav <= 作業用ディレクトリのパーミッション変更
Solaris# exit <= 一般ユーザになる
Solaris% cd /usr/local/src/clamav <= 作業用ディレクトリへ移動
Solaris% wget http://jaist.dl.sourceforge.net/sourceforge/clamav/clamav-0.92.1.tar.gz <= 「Clam AV」のソースをダウンロード
Solaris% gunzip -c clamav-0.92.1.tar.gz | tar xf - <= ダウンロードしたファイルの展開
Solaris% cd clamav-0.92.1 <= 展開したディレクトリに移動
Solaris% setenv CPPFLAGS "-I/usr/local/include"
Solaris% setenv LDFLAGS "-L/usr/local/lib"
Solaris% ./configure |& tee configure.log
Solaris% gmake |& tee make.log <= コンパイル
Solaris% su <= スーパーユーザになる
Password: <= パスワードの入力
Solaris# gmake install |& tee make-install.log <= インストール

なお、ウィルス定義ファイルを更新する「freshclam」も同時にインストールされる。

「Clam AV」の設定

「Clam AV」の設定

「Clam AV」のバージョン0.90から設定値に真偽値を指定する必要がある。

Solaris# vi /usr/local/etc/clamd.conf <= 設定ファイルの編集
Example
↓
#Example <= コメントアウト

#LogFile /tmp/clamd.log
↓
LogFile /var/log/clamd.log <= ログファイルを指定

#LogTime yes
↓
LogTime yes <= ログファイルに日付と時間を加える

#PidFile /var/run/clamd.pid
↓
PidFile /var/run/clamav/clamd.pid <= PIDファイルを指定

PIDファイルとSocketファイル格納する為のディレクトリを作成し、オーナを変更する。

Solaris# mkdir /var/run/clamav
Solaris# chown clamav:clamav /var/run/clamav
「freshclam」の設定

「freshclam」の設定

Solaris# vi /usr/local/etc/freshclam.conf <= 設定ファイルの編集
Example
↓
#Example <= コメントアウト

#UpdateLogFile /var/log/freshclam.log
↓
UpdateLogFile /var/log/freshclam.log <= コメント解除

#LogTime yes
↓
LogTime yes <= ログファイルに日付と時間を加える

#PidFile /var/run/freshclam.pid
↓
PidFile /var/run/clamav/freshclam.pid <= PIDファイルを指定

ログファイルを作成し、パーミッションとオーナを変更する。

Solaris# touch /var/log/freshclam.log <= ログファイルの作成
Solaris# chmod 644 /var/log/freshclam.log <= ログファイルのパーミッションを変更
Solaris# chown clamav:clamav /var/log/freshclam.log <= ログファイルのオーナの変更
「Clam AV」+「freshclam」の起動

デーモンとして起動する場合、それぞれを起動する。
なお、デーモンとして起動しない場合、これらの作業は必要ない。

「Clam AV」の起動

Solaris# clamd <= 「Clam AV」の起動

「freshclam」の起動

Solaris# freshclam -d -c 12 <= 「freshclam」の起動

「Clam AV」+「freshclam」の自動起動

それぞれの起動スクリプトを作成し、Solaris起動時に自動的に起動するようにする。

「Clam AV」の起動スクリプト

Solaris# vi /etc/init.d/clamav <= 「Clam AV」の起動スクリプトの作成
#!/sbin/sh

MKDIR='/usr/bin/mkdir'
CHOWN='/usr/bin/chown'
CLAMD='/usr/local/sbin/clamd'

PID=`/usr/bin/ps -aef | /usr/bin/grep clamd | /usr/bin/grep -v grep | /usr/bin/awk '{print $2}'`
PIDDIR='/var/run/clamav'

case "$1" in
'start')
        if [ -f $CLAMD ]; then
            if [ $PID ]; then
                echo "ClamAV has started"
            else
                if [ ! -d $PIDDIR ]; then
                    $MKDIR -p $PIDDIR
                    $CHOWN clamav:clamav $PIDDIR
                fi
                $CLAMD
                echo "Running: ClamAV"
            fi
        else
            echo "ClamAV is not installed"
        fi
        ;;

'stop')
        if [ $PID ]; then
            kill -KILL `cat /var/run/clamav/clamd.pid`
            echo "Stopping: ClamAV"
        else
            echo "ClamAV has stopped"
        fi
        ;;

'restart')
        $0 stop
        sleep 3
        $0 start
        ;;

'status')
        if [ $PID ]; then
            echo "ClamAV starts"
        else
            echo "ClamAV stopped"
        fi
        ;;

*)
        echo "Usage: $0 { start | stop | restart | status }"
        exit 1
        ;;

esac
exit 0


Solaris# chmod 744 /etc/init.d/clamav <= 起動スクリプトファイルに実行権限付加
Solaris# ln /etc/init.d/clamav /etc/rc2.d/S99clamav <= ランレベル2で起動する
Solaris# ln /etc/init.d/clamav /etc/rc3.d/S99clamav <= ランレベル3で起動する
Solaris# ln /etc/init.d/clamav /etc/rc0.d/K99clamav <= ランレベル0で停止する

「freshclam」の起動スクリプト

Solaris# vi /etc/init.d/freshclam <= 「freshclam」の起動スクリプトの作成
#!/sbin/sh

MKDIR='/usr/bin/mkdir'
CHOWN='/usr/bin/chown'

PIDDIR='/var/run/clamav'
PID='/var/run/clamav/freshclam.pid'

case "$1" in
'start')
        if [ -f /usr/local/bin/freshclam ]; then
            if [ -f $PID ]; then
                echo "freshclam has started"
            else
                if [ ! -d $PIDDIR ]; then
                    $MKDIR -p $PIDDIR
                    $CHOWN clamav:clamav $PIDDIR
                fi
                /usr/local/bin/freshclam -d -c 12
                echo "Running: freshclam"
            fi
        fi
        ;;

'stop')
        if [ -f $PID ]; then
            kill -KILL `cat $PID`
            echo "Stopping: freshclam"
        else
            echo "freshclam has stopped"
        fi
        ;;

'restart')
        $0 stop
        sleep 3
        $0 start
        ;;

'status')
        if [ -f $PID ]; then
            echo "freshclam starts"
        else
            echo "freshclam stopped"
        fi
        ;;

*)
        echo "Usage: $0 { start | stop | restart | status }"
        exit 1
        ;;

esac
exit 0


Solaris# chmod 744 /etc/init.d/freshclam <= 起動スクリプトファイルに実行権限付加
Solaris# ln /etc/init.d/freshclam /etc/rc2.d/S90freshclam <= ランレベル2で起動する
Solaris# ln /etc/init.d/freshclam /etc/rc3.d/S90freshclam <= ランレベル3で起動する
Solaris# ln /etc/init.d/freshclam /etc/rc0.d/K90freshclam <= ランレベル0で停止する
「freshclam」と「Clam AV」の実行

「freshclam」の実行

ウィルスの定義を最新にする為、まず「freshclam」を実行する。

Solaris# /usr/local/bin/freshclam <= 「freshclam」の実行

ウィルス格納用ディレクトリの作成

ウィルスを発見した場合、いきなり削除せず、別のディレクトリに移動する場合、移動させるディレクトリを作成する。
なお、ウィルス発見と同時に削除する場合、ディレクトリを作成する必要はない。

Solaris# mkdir -p /var/clamav/virus <= ウィルス格納用ディレクトリの作成
Solaris# chown -R clamav:clamav /var/clamav <= オーナの変更

「Clam AV」の実行

「Clam AV」をデーモンとして動作させていない場合

Solaris# clamscan -i --move=/var/clamav/virus -r / <= 全ファイルのスキャン

ウィルス発見と同時に削除する場合、オプションの「-i --move=/var/clamav/virus」を「--remove」に変更する。

「Clam AV」をデーモンとして動作させている場合

「Clam AV」をデーモンとして動作させている場合、以下のコマンドによりウィルススキャンを行う。
この場合もウィルス発見と同時に削除する場合、オプションの「--move=/var/clamav/virus」を「--remove」に変更する。

Solaris# clamdscan --move=/var/clamav/virus / <= 全ファイルのスキャン

ウィルス定義ファイルの自動更新と自動スキャン

Solaris# vi ~/clamav.sh <= ウィルス定義ファイルの自動更新のスクリプトの作成
#!/sbin/sh

/usr/local/bin/freshclam > /var/log/clamav.log
/usr/local/bin/clamscan -i --move=/var/clamav/virus -r / >> /var/log/clamav.log 2>&1
/usr/bin/grep "FOUND" /var/log/clamav.log


Solaris# chmod 755 ~/clamav.sh <= 設定ファイルに実行権限付加
Solaris# crontab -e <= 設定ファイルの編集
00 4 * * * /root/clamav.sh <= 追加(毎日4:00に実施)
▲ページのトップへ