ClamAVアンチウイルス(clamscan、clamdscan、およびfreshclam)を使用する際に発生する最も一般的なエラーを説明し、解決します。
ここでは、ClamAVをソースからコンパイルする際のエラーは取り上げません。
clamdscan「Can't open file or directory ERROR」
ファイルやディレクトリをスキャンする際に、一部がこのエラーを引き起こす場合があります。該当するファイルはスキャンされず、マルウェアの存在チェックを回避してしまいます。
これはディレクトリやファイルの権限に起因する可能性があるため、clamdscanがこれらのフォルダーやファイルに対して読み取りおよび書き込みの権限を持っていることを確認してください。
また、apparmorが原因の場合もあります。この場合、clamdをapparmorの「complain」モードに設定する必要があります。Debianの場合の解決方法は以下の通りです:
apt-get install apparmor-utils
aa-complain /usr/sbin/clamd
clamdscan「File path check failure: Permission denied. ERROR」
このエラーを修正するには、次の3つの解決策を試してください:
- スキャンするファイルやディレクトリの権限を666に設定する:chmod 666 *
- --fdpassオプションを使用してclamdscanを実行する:clamdscan --fdpass
- --streamオプションを使用してclamdscanを実行する:clamdscan --stream
freshclamのログに「Ignoring mirror (due to previous errors)」
このエラーメッセージが表示される場合、アンチウイルスのシグネチャデータベースをダウンロードできていないことを意味します。
このメッセージはClamAVバージョン0.102以前に対応しています。
バージョン0.102以降では、freshclamのネットワーク部分のコードが大幅に変更されました。そのため、このエラーを解決するには、ClamAVのバージョンを更新する必要があります。
freshclamのログに「nonblock_connect: connect(): fd=5 errno=101: Network is unreachable」や「WARNING: getpatch: Can't download daily-xxx.cdiff from db.local.clamav.net」
このメッセージは、ClamAVのサーバーに接続してアンチウイルスのシグネチャデータベースをダウンロードできないことを示しています。
- サーバーがインターネット接続の問題を抱えている場合。
- プロキシ(透過型または非透過型)を使用している場合。FreshclamはClamAVのサーバーへの直接接続を好み、プロキシ接続は非常に苦手です。特に、プロキシがHTTP(S)接続のプロパティを変更する場合(例:User-Agentを変更する場合)。
- 非常に古いバージョンのClamAVを使用している場合。この場合はClamAVを更新する必要があります。
freshclamのログに「WARNING: Can't read main.cvd header from db.local.clamav.net (IP: )」
アンチウイルスのシグネチャデータベースをダウンロードできません。
mirrors.datファイルがいっぱいになっている可能性があります。このファイルは、エラーが発生しているClamAVのミラーサーバーをブラックリスト化するためのものです。インターネット接続が切断された場合、freshclamがすべてのミラーをブラックリストに登録して利用可能なミラーがなくなることがあります。
解決策としては、このファイルを削除し(Debianの場合は/var/lib/clamav/mirrors.datなど)、freshclamを再起動してください。
バージョン0.100以降では、この問題は発生しなくなりました。そのため、この種のエラーが表示される場合は、ClamAVを更新することが重要です。
"WARNING: Message: SSL peer certificate or SSH remote key was not OK"がfreshclamのログに表示される
アンチウイルスのシグネチャデータベースを更新できず、このメッセージが表示されます。
コンピューターの時刻が正確でない可能性があります。NTPで日付と時刻を更新してください。
"ERROR: This tool requires libclamav with functionality level XXX or higher (current f-level: XXX)"
システムに異なるバージョンのlibclamavが2つインストールされている可能性があります。これは、オペレーティングシステムによって提供される2つのバージョンである場合があります。この場合、古い方を削除してください。また、ClamAVのソースコードによるインストールと、オペレーティングシステムが提供するバージョンが混在している場合もあります。システムには常に1つのバージョンのlibclamavのみをインストールするようにしてください。
"LibClamAV Error: yyerror()"および"LibClamAV Warning: cli_loadyara: failed to parse or load 1 yara rules from file"
ClamAVはYARA形式のウイルス対策シグネチャをサポートしています。しかし、ClamAVで使用されるYARAエンジンは特定の内部エンジンであり、公式のYARAインタープリタとは完全に互換性がありません。
そのため、一部のYARAルールはClamAVで完全には機能しません。
この問題を解決するには:
- 問題のあるYARAルールをClamAVと互換性があるように書き換える。
- 将来的にClamAVのYARAエンジンが改善されることを期待する。
ClamAV使用時の"LibClamAV Error"、例えば"LibClamAV Error: [scan_biff_for_xlm_macros] Unexpected state value 4"
これらのエラーは非常に特定のものであり、ClamAVが適切に処理できないデータのスキャン問題を示している可能性があります。この情報をClamAVの開発チームに報告することをお勧めします。
公式Githubをご利用ください。
"LibClamAV Warning: fmap: map allocation failed"、"LibClamAV Error: CRITICAL: fmap() failed"、および"Can't allocate memory ERROR"がClamAV使用時に表示される
このエラーメッセージは通常、スキャン中のRAM不足を示しています。対処方法:
- メモリが不足している場合、サーバーまたはVPSのRAMを増設してください。
- スキャン対象のオブジェクトが大きすぎる場合、オブジェクトのサイズ制限を設定してください:コマンドラインで--max-filesizeまたは--max-scansizeを使用します。
- Linuxの/procディレクトリのようなシステムファイルやディレクトリをスキャンしている場合、これは禁止されています。実行しないでください。
"Segmentation fault (core dumped)"がClamAV使用時に表示される
このエラーメッセージは非常に重要であり、アンチウイルスがクラッシュしてOSがClamAVプロセスを強制終了したことを示します。
ただし、このメッセージは非常に一般的であり、原因として考えられるのはOSの設定、利用可能なリソース(RAM)、またはスキャン対象のオブジェクト(大きすぎる、または/procのようなシステムファイル)など、多岐にわたります。
正確な原因を特定することは難しいため、ClamAVの開発チームに
公式Githubでバグチケットを提出することをお勧めします。
TCP: No tcp AF_INET/AF_INET6 SOCK_STREAM socket received from systemd
ClamAVデーモンは実行中ですが、TCPポート3310が開いていません:"lsof -i|grep clamd"コマンドが何も返しません。
clamdの起動時に次のエラーメッセージが表示されます:"TCP: No tcp AF_INET/AF_INET6 SOCK_STREAM socket received from systemd"。
解決方法は、/etc/systemd/system/clamav-daemon.socket.d/ディレクトリを作成し、そこに/etc/systemd/system/clamav-daemon.socket.d/extend.confファイルを配置することです:
cat /etc/systemd/system/clamav-daemon.socket.d/extend.conf
[Socket]
SocketUser=clamav
ListenStream=3310
その後、サーバーを再起動してください。
アンチウイルスClamAVのサポート終了(End-Of-LifeまたはEOL)ポリシーについて
2024年12月15日以降、
ClamAVアンチウイルスのバージョン1.0.x、1.3.x、1.4.xのみがサポートおよびメンテナンスされています。
それ以前のバージョンを使用している場合、新しいシグネチャデータベースがこれらの古いバージョンと互換性がなくなるため、ClamAVは正常に動作しない可能性があります。そのため、
ClamAV用の追加シグネチャ(プロフェッショナルバージョン以上)を使用するか、ClamAVを緊急で更新する必要があります。あるいはその両方を行うことが最適です!
さらに詳しく知りたい場合は、
古いバージョンのClamAVアンチウイルスの利用に関する記事をご覧ください。
ClamWinアンチウイルスはもう機能しません
ClamWinは、ClamAVをWindows向けに移植したものですが、サードパーティによって開発されています。そのため、ClamWinはCisco/Sourcefireのチームによってサポートおよび開発されているわけではありません。残念ながら、このWindows向けアンチウイルスは所有者による開発が終了しており、最終バージョンは0.103.2.1です。前述のように、0.103バージョンはClamAVによってサポートされなくなったため、ClamWinのためのシグネチャデータベースのダウンロードが無効化されており、完全に無効となっています。そのため、ClamWinを企業や本番環境で使用することは推奨されません。
私たちが推奨する解決策は、
Windows向け公式ClamAVバージョンをダウンロードすることです。32ビット版と64ビット版の両方が利用可能です。このバージョンにはGUI(グラフィカルユーザーインターフェース)はありませんが、ClamAVのコマンドラインはそれほど難しくなく、数個のシンプルなBATファイルを作成するだけでハードディスクのスキャンを自動化できます。
また、非常に古いWindows(WinNTやWindows 98)で動作する
非公式のClamAVのWindows移植版もあります。しかし、これもコマンドラインで動作し、GUIはありません。
SecuriteInfo.comのシグネチャでエラー426が発生する
freshclamを使用して
私たちのアンチウイルスシグネチャをダウンロードしようとすると、エラー426が発生する場合、無料アカウントを使用しているか、古いClamAVアンチウイルスを使用している可能性があります。
この問題を解決するには、ClamAVを更新するか、"プロフェッショナル"サブスクリプションを選択してシグネチャをダウンロードする必要があります。あるいはその両方を行うことで、マルウェア検出率を大幅に向上させることができます。
securiteinfoold.hdbをダウンロードできない、または'nonblock_recv: recv timing out (30 secs)'や'Download failed (28) ... Message: Timeout was reached'エラーが発生する
- ClamAV 0.102.2より古いバージョンの場合、"ReceiveTimeout 2400"をfreshclam.confファイルに追加し、freshclamデーモンを再起動してください。
- ClamAV 0.102.2以降の場合、freshclam.confファイルからReceiveTimeoutを削除し、freshclamデーモンを再起動してください。
ClamAVのバージョンを更新する
ご覧の通り、ほとんどの問題はClamAVを最新バージョンに更新することで解決します。これを行う方法はいくつかありますので、環境に適した方法を選んでください。
- ClamAVをソースから再コンパイルしている場合、ClamAVの最新ソースファイルを取得し、環境内で再コンパイルするだけです。ただし、OSのバージョンには注意が必要です。古すぎるOSを使用している場合、最新バージョンのClamAVでコンパイルエラーが発生する可能性があります。
- ClamAVの実行可能バージョン(例:ClamAV Windows)を使用している場合、新しいバージョンの実行可能パッケージをインストールするだけで済みます。これは最も簡単な方法です!
- OSがClamAVを提供している場合(ほとんどのLinux環境:Ubuntu、Debian、Red Hat、CentOSなど)、OSを更新する必要があります。この更新が難しい場合、OSからClamAVパッケージを削除し、ソースからClamAVをインストールおよび再コンパイルすることをお勧めします。ただし、先述の通り、OSが古すぎる場合、ClamAVが再コンパイルできない可能性があります。
さらに詳しくは、
古いバージョンのClamAVアンチウイルスを使用するリスクに関する記事をご覧ください。
SecuriteInfo.comのサポート
ClamAVに関する特定のニーズ(例:メンテナンス契約、コンパイルサポート、技術情報の提供)については、
お問い合わせいただき、ニーズをお知らせください。ClamAVを使用したアンチウイルス保護に関するサポートをご提供します。
ClamAVの公式サポート
その他のエラーメッセージがある場合や、ClamAVの開発チームとの直接サポートを希望する場合、以下の2つの方法があります:
- 公式メーリングリスト(英語のみ)に登録し、メールで質問を投稿できます。コミュニティやClamAVの一部の開発者がメーリングリストで回答します。
- または、公式Githubでチケットを作成します。ただし、これには開発者向けの技術的な詳細が必要です。一般ユーザー向けではありません。
豆知識
SecuriteInfo.comは、
ClamAVアンチウイルス用の追加シグネチャを提供しています。これにより、マルウェアやスパムの検出率が大幅に向上します。
注:ClamAVはCiscoの登録商標です。
Tags
ANTIVIRUS
CLAMAV
LINUX
WINDOWS
MACOS
Inscription à notre lettre d'information
Inscrivez-vous à notre
lettre d'information pour vous tenir au courant de nos actualités et de nos dernières trouvailles.