Linuxにアンチウイルスをインストールする方法

当ページのリンクには広告が含まれています。
Linuxにアンチウイルスをインストールする方法

Linuxにアンチウイルスは必要ないと思っていたのですが、Linuxも増えてきて、ノーガードではリスクが高いと思いアンチウイルスを入れることにしました。

その手順を紹介します。

今回はClamAVというアンチウイルスを使用します。フリーですが、シェアもあり人気があるため、これを採用しました。(日本語サイトはこちら

スワップの作成からアンチウィルスのインストール設定を行い、Timer起動までを行います。

AWSのEC2(Amazon Linux 2)を環境として使用しています。

目次

スワップの作成

スワップとはディスクをメモリのように使う技術のことを言います。

rootユーザでログインを行い、以下のコマンドでスワップの作成を行います。

dd if=/dev/zero of=/swapfile bs=1M count=2048

countの箇所をどのくらいのサイズにするか決める場所です。単位はMB(メガバイト)です。Linuxの推奨としては実メモリの倍程度が良いとされています。(今回は2048にしました)

swapfileのファイル権限を600(ロク・ゼロ・ゼロ)に設定します。

chmod 600

skswapコマンドでスワップとして登録します。

mkswap /swapfile

Linuxが起動した時にswapfileが読み込まれるようにします

vim /etc/fstab
/swapfile          swap     swap defaults     1  1

下記のように入力して保存してください。

スワップを有効化します。swaponの前後を比較してみましょう。

swapon -a

swapon -a前

swapon -a後

スワップの無効化には以下のコマンドを入れます。

swapoff -a

アンチウイルスのインストール時にメモリを多く使うため、インストール前にスワップを作っておいた方がいいです。

アンチウイルスのインストール

ClamAVを入れる前にepelのインストールを行ってください。

sudo amazon-linux-extras install epel -y

EPEL リポジトリは Amazon Linux のオリジナルバージョンに既にインストールされていますが、有効にする必要があります。このリポジトリを有効にするには、yum-config-manager コマンドを使用します。

sudo yum-config-manager --enable epel

ClamAVのインストールを行います。

yum install –enablerepo=epel clamav clamav-devel clamav-update clamd

yを入力しEnterを押してください。

yを入力しEnterを押してください。

インストールが完了しました。

ClamAVの定義ファイルを最新化します。

freshclam

freshclamの定義を変更します。

vim /etc/freshclam.conf

ログをONにします。(コメントを解除)

UpdateLogFile /var/log/freshclam.log

ログのMAXサイズを2Mにします。(コメントを解除)

LogFileMaxSize 2M

時間の記録をします。(コメントを解除)

LogTime yes

LogRotateを有効化します。(コメントを解除)

LogRotate yes

DatabaseのMirrosサイトを追加します。

DatabaseMirror db.jp.clamv.net
DatabaseMirror database.ClamAV.netz

DatabaseOwner をrootユーザに変更します。(ウイルス定義ファイルがroot所有になります)

DatabaseOwner root

ClamAVの実行ファイルを作成します

scan.shファイルを新規作成し、以下のプログラムに保存してください。(ファイルの新規作成)

vim /usr/bin/scan.sh

scan.shの内容

#!/bin/sh

# ClamAVによるウイルススキャンスクリプト scan.sh
# ウイルススキャンを実行し、ウイルスを検知した場合隔離を行う。
# スキャンの実行前には、ClamAVプログラムおよびウイルス定義をアップデートする。
# スキャンの除外対象ディレクトリの末尾には、/ をつける。
export LANG=C

## ログ格納先
LOGFILE=/var/log/scanvirus.log
SCAN_RESULT=/var/log/scanresult.txt

MAX_FILESIZE=50M
MAX_SCANSIZE=50M

## スキャン除外リスト
excludeopt=""
excludeopt="${excludeopt} --exclude-dir=^/sys/"
excludeopt="${excludeopt} --exclude-dir=^/proc/"
excludeopt="${excludeopt} --exclude-dir=^/dev/"
excludeopt="${excludeopt} --exclude-dir=^/tmp/clamdscan-quarantinedir-.*/"

## 隔離ディレクトリ
QUARANTINEDIR=/tmp/clamdscan-quarantinedir-$(date +%Y%m%d)
mkdir -p ${QUARANTINEDIR}

echo "===== Scan Virus =====" >> ${LOGFILE}
echo "`date` Scan Virus start" >> ${LOGFILE}

# 1. ClamAVプログラムのアップデート
echo "`date` Update ClamAV start" >> ${LOGFILE}
yum -y --enablerepo=epel update ClamAV 1>> ${LOGFILE} 2>&1
echo "`date` Update ClamAV end" >> ${LOGFILE}

# 2. ウイルス定義の更新
echo "`date` Update Database start" >> ${LOGFILE}
/usr/bin/freshclam 1>> ${LOGFILE} 2>&1
echo "`date` Update Database end" >> ${LOGFILE}

# 3. ウイルススキャンの実施
echo "`date` Do Scan Virus start" >> ${LOGFILE}
echo "excludeopt: ${excludeopt}" >> ${LOGFILE}

/usr/bin/clamscan \
                --max-filesize=${MAX_FILESIZE} --max-scansize=${MAX_SCANSIZE} \
                        --infected --move=${QUARANTINEDIR} --recursive ${excludeopt} / 1> ${SCAN_RESULT} 2>> ${LOGFILE}

cat ${SCAN_RESULT} >> ${LOGFILE}
echo "`date` Do Scan Virus end" >> ${LOGFILE}
echo "`date` Scan Virus complete" >> ${LOGFILE}

# EOF

ClamAVサービスを作成します。

clamscan.serviceを作成します。

vim /etc/systemd/system/clamscan.service
clamscan.serviceの内容
[Unit]
Description=ClamScanOnchotService
RefuseManualStart=noRefuseManualStop=yes
User=root

[Service]
Type=oneshot
ExecStart=/usr/bin/scan.sh

ClamAVサービスの定期実行を設定します。

clamscan.timerを作成します。

vim /etc/systemd/system/clamscan.timer

clamscan.timerの内容

[Unit]
Description=ClamScanTimer

[Timer]
OnCalendar=*-*-* 11:00:00

[Install]
WantedBy=timers.target

scan.shをリストアします。
restorecon -R /usr/bin/scan.sh

systemdの変更後のリロードを行う
systemctl deamon-reload

ClamAVタイマーを自動実行設定する

サーバ再起動後に自動でClamAVタイマーが立ち上がるように設定

systemctl enable clamscan.timer

タイマーのステータスを確認します。

systemctl status clamscan.timer

タイマーのリストを確認します。

systemctl list-timers

ClamAVタイマーの時間を変更する場合

clamscan.timerの時間を変更した場合、リスタートが必要です。

systemctl restart clamscan.timer

すると、Warningが表示されます。

systemd/system内の内容を変更した場合、deamonのリロードを毎回行ってください。

systemctl deamon-reload

以上で、ClamAVアンチウイルスの導入完了です。

お疲れ様でした。

まとめ

Linuxにアンチウイルスソフト(ClamAV)を導入してみました。

これでちょっとは安心して枕を高くして寝れそうです。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

ITの事や自分の経験談など綴っていきたいと思っています。

コメント

コメントする

CAPTCHA


目次