2018年10月27日

CentOS7 アンチウィルスソフト(ClamAV)インストール

アンチウィルスソフトのClamAVをインストールしていく。


インストール


いつも通りyumでインストール。
yum install epel-release #以前に行っていれば不要
yum install clamav clamav-update clamav-scanner-systemd
上記をインストールすれば他の必要なものは依存関係参照しながら大体入れてくれるっぽい。


設定ファイル更新


動作の為の設定をもろもろ。
  1. /etc/clamd.d/scan.conf
    ClamAVの基本設定を行う。
    vi /etc/clamd.d/scan.conf
    
    ファイル内
    #Example #コメントアウト 存在すると動作しなくなる
    LogFile /var/log/clamd/clamd.scan #コメントをはずす&修正 ログの有効化
    LogFileMaxSize 2M #コメントをはずす ログファイルのサイズ
    LogTime yes #コメントをはずす ログに時間を表示
    LogRotate yes #コメントをはずす ログローテーションを有効化
    LocalSocket /var/run/clamd.scan/clamd.sock #コメントをはずす ローカルソケット使用
    FixStaleSocket yes #コメントをはずす 異常終了のときにソケット削除
    ExcludePath ^/proc/ #コメントをはずす 除外フォルダ設定
    ExcludePath ^/sys/ #コメントをはずす 除外フォルダ設定
    ExcludePath ^/boot/ #追加 除外フォルダ設定
    ExcludePath ^/tmp/clamdscan/ #追加 除外フォルダ設定
    User root #追加 実行ユーザ
    

  2. /etc/freshclam.conf
    ClamAVのウィルス定義ファイルの更新についての設定を行う。
    vi /etc/freshclam.conf
    
    ファイル内
    #Example #コメントアウト 存在すると動作しなくなる
    UpdateLogFile /var/log/freshclam/freshclam.log #コメントをはずす&修正 ログの有効化
    LogFileMaxSize 2M #コメントをはずす ログファイルのサイズ
    LogTime yes #コメントをはずす ログに時間を表示
    LogRotate yes #コメントをはずす ログローテーションを有効化
    DatabaseOwner root #追加 検査用データベースの所持者
    DatabaseMirror db.jp.clamav.net #追加 ウィルス定義ファイルの更新先を日本のものにする
    #NotifyClamd /path/to/clamd.conf #コメントアウト 下記に修正
    NotifyClamd /etc/clamd.d/scan.conf #追加 ウィルス定義の更新があった場合の通知先
    
このほか、/etc/sysconfig/freshclamファイルのFRESHCLAM_DELAYをコメントアウトしろっていうのがあるのだけど、自分の環境だと最初からコメントアウトされてた。
この辺り導入のバージョンによって違うっぽい。


シンボリックリンク作成


Clamdを使用する際、設定ファイル /etc/clamd.d/scan.conf ではなく /etc/clamd.conf を見にいくようなので、設定を1本化するため、シンボリックリンクを作成する。
mv /etc/clamd.conf /etc/clamd.conf.bak
ln -s /etc/clamd.d/scan.conf /etc/clamd.conf


ウィルス定義最新化


最新のウィルス定義ファイルを取得する。
freshclam


起動


設定が終わったら起動する。
systemctl start clamd@scan #起動
systemctl enable clamd@scan #自動起動設定


実行テスト


ここまで設定が完了し起動したら、実際にウィルススキャンを行ってみる。
  1. 正常終了の場合
    clamdscan /root #rootフォルダを検索
    /root: OK #ウィルスなし

    ----------- SCAN SUMMARY -----------
    Infected files: 0
    Time: 0.232 sec (0 m 0 s)

  2. ウィルスが存在する場合
    wget http://www.eicar.org/download/eicar.com #ウィルステスト用ファイルのダウンロード
    ls
    anaconda-ks.cfg eicar.com #テスト用ファイルeicar.comが保存されている
    clamdscan /root --remove #rootフォルダを検索。ウィルスファイルを見つけたら削除するよう指定(--remove)
    /root/eicar.com: Eicar-Test-Signature FOUND #ウィルスファイルが検出される
    /root/eicar.com: Removed. #ウィルスファイルを削除

    ----------- SCAN SUMMARY -----------
    Infected files: 1
    Time: 0.065 sec (0 m 0 s)
    ls #ウィルステスト用ファイルeicar.comが削除されているのを確認
    anaconda-ks.cfg


定期実行


定期的に検査を行えるよう、cronに登録を行っておく。
  1. スクリプト作成
    /etc/cron.dailiyフォルダ内にclamdscanという名前でスクリプトを作成する。
    vi /etc/cron.daily/clamdscan
    
    ファイル内
    #!/bin/bash
    MAIL_TO=root
    MAIL_SUBJECT="`hostname -s` `date +%Y%m%d_%H-%M-%S` ClamAV"
    mkdir -p /tmp/clamdscan/
    CLAMD_SCAN_LOG=`mktemp /tmp/clamdscan/temp.XXXXXX`
    QUARANTINE_DIR=`mktemp -d /tmp/clamdscan/quarantinedir-$(date +%Y%m%d).XXXXXX`
    clamdscan --move=${QUARANTINE_DIR} / 2>&1 > ${CLAMD_SCAN_LOG}
    if [ -z "$(grep FOUND$ ${CLAMD_SCAN_LOG})" ]; then
        echo "$MAIL_SUBJECT OK" | mail -s "$MAIL_SUBJECT OK" $MAIL_TO
        rm -rf ${QUARANTINE_DIR}
    else
        grep -A 1 FOUND$ ${CLAMD_SCAN_LOG} | mail -s "$MAIL_SUBJECT NG" $MAIL_TO
    fi
    rm -f ${CLAMD_SCAN_LOG}
    

  2. パーミッション変更
    chmod 744 /etc/cron.daily/clamdscan
    
ウィルス定義ファイルの更新はインストール時に自動でclamav-updateというファイルが/etc/cron.d/に登録されており、3時間おきに更新するようになっている。
なにかあった時の為にメールの宛先だけ修正を行っておく。
vi /etc/cron.d/clamav-update
MAILTO=root #適時修正


ログローテーション


お好みでログローテーションを修正する。
  1. ウィルス定義ファイル更新のfreshclamはclamav-updateという名前で/etc/logrotate.d/に最初から作成されているので、それを適宜修正する。
    vi /etc/logrotate.d/clamav-update
    
    ファイル内
    /var/log/freshclam/freshclam.log {
        daily
        notifempty
        missingok
        rotate 30
        dateext
        compress
        delaycompress
        create 640 root root
    }
    

  2. clamdの方は存在しないので新規作成する。
    vi /etc/logrotate.d/clamd
    
    ファイル内
    /var/log/clamd/clamd.scan {
        daily
        notifempty
        missingok
        rotate 30
        dateext
        compress
        delaycompress
        create 640 root root
    }
    

  3. ログ格納用のフォルダを作成。
    confファイルに設定した通りのフォルダ構成に適時修正すること。
    mkdir /var/log/clamd
    mkdir /var/log/freshclam
    


終わり


次はlogwatch辺りかな。
posted by Ren at 20:00 | Comment(0) | TrackBack(0) | PC サーバ CentOS
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/184752737
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック