インストール - Clam AntiVirus

提供:MochiuWiki - SUSE, Electronic Circuit, PCB
2022年1月23日 (日) 05:09時点におけるWiki (トーク | 投稿記録)による版 (→‎ClamTKのインストール)
ナビゲーションに移動 検索に移動

概要

Clam AntiVirus(Clam AV)は、オープンソースのクロスプラットフォームのウイルス対策ソフトであり、
ウイルスを含む様々な種類の悪意のあるソフトウェアを検出できるツールキットである。

Clam AntiVirusにおける最も一般的な使い方は、メールサーバ上でのサーバサイドメールウイルススキャナである。
また、Clam AntiVirusには、コマンドラインスキャナ、データベースの自動更新機能、アンチウィルスエンジン上で動作するスケーラブルなマルチスレッドデーモン等が含まれている。

メールゲートウェイのスキャンソフトとして広く使用されており、
Clam AntiVirusには、マルチスレッドのスキャナデーモン、オンデマンドのファイルスキャン用のコマンドラインユーティリティ、自動シグネチャアップデートが含まれている。


Clam AntiVirusのインストール

パッケージ管理システムからインストール

以下のコマンドを入力して、Clam AntiVirusをインストールする。

# CentOS
sudo yum --enablerepo=epel install clamav clamav-update    # Clam AntiVirusをEPELからインストール

# SUSE
sudo zypper install pcre-devel clamav clamav-database clamav-nodb clamz


Clam AntiVirusのインストール完了後、Clam AntiVirusの設定ファイルを以下のように編集する。

sudo sed -i -e "s/^Example/#Example/" /etc/freshclam.conf  # Exampleから始まる行をコメントアウト


CentOSの場合、Clam AntiVirusのウイルスデータベースの自動更新を実施しないようにするため、FRESHCLAM_DELAY項目をdisabled-warnに設定する。

sudo vi /etc/sysconfig/freshclam


# /etc/sysconfig/freshclamファイル

FRESHCLAM_DELAY=disabled-warn


ソースコードからインストール

Clam AntiVirusのビルドに必要な依存関係のライブラリをインストールする。

# CentOS
sudo yum install libcurl-devel libjson-c-devel libmilter1_0 libxml2-devel pcre-devel pcre2-devel libopenssl-devel

# SUSE
sudo zypper install valgrind-devel libbz2-devel check-devel libcjson1 cJSON-devel libjson-c-devel libcjson1 libcurl-devel libxml2-devel \
                    libbz2-devel check-devel python3-pytest ncurses-devel libopenssl-devel pcre-devel pcre2-devel sendmail-devel \
                    zlib-devel libmspack-devel libmilter1_0


Clam AntiVirusの公式Webサイトにアクセスして、Clam AntiVirusのソースコードをダウンロードする。

ダウンロードしたClam AntiVirusを解凍して、ビルド向けディレクトリを作成する。

tar xf clamav-<バージョン名>.tar.gz

cd clamav-<バージョン名>
mkdir build && cd build


Clam AntiVirusをビルドおよびインストールする。

../configure --prefix=<Clam AntiVirusのインストールディレクトリ> \
  --disable-clamav --with-systemdsystemunitdir=no  # ホームディレクトリにインストールする場合
# または
cmake -DCMAKE_INSTALL_PREFIX=<Clam AntiVirusのインストールディレクトリ> \
      -DCMAKE_BUILD_TYPE=Release ENABLE_MILTER=OFF ..

make -j $(nproc)

sudo make install


スーパユーザ権限でmake installコマンドを実行する理由は、/usr/lib/systemd/systemディレクトリにデーモンを作成する必要があるからである。
そのため、Clam AntiVirusのインストールディレクトリに対して、以下のコマンドを実行する。

sudo chown -R <ユーザ名>:<ユーザのグループ名> <Clam AntiVirusのインストールディレクトリ>


次に、/<Clam AntiVirusのインストールディレクトリ>/etcディレクトリにあるclamd.conf.sampleファイルとfreshclam.conf.sampleファイルを元に、
clamd.confファイルとfreshclam.confファイルを作成する。

cp clamd.conf.sample clamd.conf
cp freshclam.conf.sample freshclam.conf


最後に、clamd.confファイルとfreshclam.confファイルを以下のように編集する。

sed -i -e "s/^Example/#Example/" /<Clam AntiVirusのインストールディレクトリ>/clamd.conf  # Exampleから始まる行をコメントアウト
sed -i -e "s/^Example/#Example/" /<Clam AntiVirusのインストールディレクトリ>/freshclam.conf  # Exampleから始まる行をコメントアウト


最後に、ビルドディレクトリにあるinstall_manifest.txtファイルを、Clam AntiVirusのインストールディレクトリにコピーする。

cp install_manifest.txt <ClamAVのインストールディレクトリ>


ソースコードからインストールしたClam AntiVirusをアンインストールする場合、上記のinstall_manifest.txtファイルを使用する。

cd <Clam AntiVirusのインストールディレクトリ>

xargs rm < install_manifest.txt
# または
sudo xargs rm < install_manifest.txt



ウイルスのパターンファイルの更新

Clam AntiVirusのウイルスの定義を更新する。

sudo freshclam



ウイルススキャンの実行

動作確認として、ウイルススキャンを実行する。

sudo clamscan --infected --remove --recursive /home

# スキャン結果
----------- SCAN SUMMARY -----------
Known viruses: 3575245
Engine version: 0.98.4
Scanned directories: 2
Scanned files: 3
Infected files: 0
Data scanned: 0.00 MB
Data read: 0.00 MB (ratio 0.00:1)
Time: 10.369 sec (0 m 10 s)


また、無害ウイルスを使用したウイルススキャンを試すこともできる。
お試しの無害ウィルスをダウンロードする。

sudo curl -O http://www.eicar.org/download/eicar.com


ウイルススキャンを実行する。

sudo clamscan --infected --remove --recursive .

# スキャン結果
./eicar.com: Eicar-Test-Signature FOUND
./eicar.com: Removed.     # 無害ウィルスが検出された
----------- SCAN SUMMARY -----------
Known viruses: 3575245
Engine version: 0.98.4
Scanned directories: 3
Scanned files: 10
Infected files: 1
Data scanned: 0.00 MB
Data read: 256.57 MB (ratio 0.00:1)
Time: 10.307 sec (0 m 10 s)


以下の例では、指定したディレクトリを再帰的にスキャンしている。この時、スキャンするファイルサイズの上限は10[MB]である。

sudo clamscan -r --bell --max-filesize=10M ~/Downloads



ClamTKのインストール

パッケージ管理システムからインストール

# CentOS
sudo yum install clamtk

# SUSE
sudo zypper install clamtk


ソースコードからインストール

ClamTKを実行するために必要なライブラリをインストールする。

sudo zypper install perl-Cairo perl-Cairo-GObject perl-Encode perl-ExtUtils-Depends perl-ExtUtils-PkgConfig perl-Glib \
                    perl-Glib-Object-Introspection perl-Gtk3 perl-JSON perl-JSON-XS perl-Text-CSV perl-Text-CSV_XS \
                    perl-Types-Serialiser perl-common-sense typelib-1_0-GdkPixdata-2_0


ClamTKのGithubにアクセスして、ClamTKをダウンロードする。
または、Gitコマンドを使用してダウンロードする。

tar xf clamtk-<バージョン>.tar.xz
cd clamtk-<バージョン>
# または
git clone https://github.com/dave-theunsub/clamtk.git clamtk
cd clamtk


/usr/lib/perl5/vendor_perl/<Perlのバージョン>/ClamTkディレクトリを作成して、
ダウンロードしたファイルのlibディレクトリ内にあるファイルを、/usr/lib/perl5/vendor_perl/<Perlのバージョン>/ClamTkディレクトリにコピーする。

sudo mkdir -p /usr/lib/perl5/vendor_perl/<バージョン>/ClamTk
sudo cp lib/* /usr/lib/perl5/vendor_perl/<バージョン>/ClamTk


ClamTKを日本語化する場合、ClamTKのGithubにアクセスして、clamtk-<バージョン>.el8.noarch.rpmをダウンロードする。
ダウンロードしたRPMファイルを展開する。
/<展開したディレクトリ>/usr/share/locale/ja/LC_MESSAGES/clamtk.moファイルを、/usr/share/locale/ja/LC_MESSAGESディレクトリにコピーする。

sudo cp /<展開したディレクトリ>/usr/share/locale/ja/LC_MESSAGES/clamtk.mo /usr/share/locale/ja/LC_MESSAGES


ClamTKを起動する。

chmod u+x ./clamtk
./clamtk


もし、Perlファイルのパーミッションでエラーが出力される場合は、グループとその他のユーザに対して読み込み権限を付加する。

sudo chmod go+r /usr/lib/perl5/vendor_perl/<Perlのバージョン>/ClamTk/*