1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 |
# インストール yum -y install epel-release yum -y install clamav clamav-data clamav-devel clamav-filesystem clamav-update clamd # データベース更新 freshclam # 全ディレクトリスキャン clamscan --infected --recursive /var clamscan --infected --recursive /home clamscan --infected --recursive /opt # 動作テスト cd /root wget http://www.eicar.org/download/eicar.com # 検知されればOK「Infected files: 1」と出る clamscan /root ----------- SCAN SUMMARY ----------- Known viruses: 8564213 Engine version: 0.103.3 Scanned directories: 1 Scanned files: 9 Infected files: 1 Data scanned: 0.02 MB Data read: 0.01 MB (ratio 2.00:1) Time: 15.678 sec (0 m 15 s) Start Date: 2021:09:13 16:06:58 End Date: 2021:09:13 16:07:13 [root@TZVPNH01 ~]# # 確認用ファイルを削除 rm /root/eicar.com # 設定 vi /etc/clamd.d/scan.conf LogFile /var/log/clamd.scan ← コメントアウトをはずしてログファイル有効化 LogTime yes ← コメントアウトをはずしてログへ時間を挿入 LogRotate yes ← コメントアウトをはずしてログローテーション有効化 ExcludePath ^/proc/ ← スキャンコメントアウトをはずして除外ディレクトリ設定 ExcludePath ^/sys/ ← スキャンコメントアウトをはずして除外ディレクトリ設定 User root ← コメントアウトを外して、root権限で動作するように LocalSocket /var/run/clamd.scan/clamd.sock ← ソケットファイル設定 FixStaleSocket yes ← 異常時にソケットファイルを削除 # Clamd起動 systemctl start clamd@scan systemctl status clamd@scan systemctl enable clamd@scan # 動作テスト cd /root wget http://www.eicar.org/download/eicar.com # 検知されればOK「Infected files: 1」と出る clamdscan /root # ウイルススキャンスクリプトを作成する mkdir -p /scripts/ vim /scripts/clamdscan.sh ------------------------------------ #!/bin/bash # 設定ファイル CONFIG=/etc/clamd.d/scan.conf # ログ CLAMSCANLOG=`mktemp` # 隔離ディレクトリ QUARANTINEDIR=/tmp/clamdscan-quarantinedir-$(date +%Y%m%d) mkdir -p ${QUARANTINEDIR} # スキャン実行 clamdscan -c ${CONFIG} --move=${QUARANTINEDIR} / > ${CLAMSCANLOG} 2>&1 # ウイルス発見したらrootへメール送信 if [ -z "$(grep FOUND$ ${CLAMSCANLOG})" ];then rm -fr ${QUARANTINEDIR} else grep -A 1 FOUND$ ${CLAMSCANLOG} | mail -s "Virus Found in `hostname` => ${QUARANTINEDIR}" root sh ./LINE_Notify.sh "ウイルス検知" "Virus Found in `hostname` => ${QUARANTINEDIR}" fi ------------------------------------ vim /scripts/LINE_Notify.sh ------------------------------------ #!/bin/sh export PATH="/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin" export LANG=C # LINE Notify API のアクセストークン access_token="xxx" # 通知タイトル subject=$1 # 通知本文 body=$2 # LINE Notify 実行 curl -X POST -H "Authorization: Bearer ${access_token}" \ -F "message=${subject}: ${body}" \ https://notify-api.line.me/api/notify exit 0 ------------------------------------ # cron設定(毎日4時に実行) crontab -e 0 4 * * * sh /scripts/clamdscan.sh |