インストール - Clam AntiVirus
概要
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/*