Home
Packages
Forums
Wiki
GitLab
Security
AUR
Download
コンテンツにスキップ
メインメニュー
メインメニュー
サイドバーに移動
非表示
案内
メインページ
目次
コミュニティに貢献
最近の出来事
おまかせ表示
特別ページ
交流
ヘルプ
貢献
最近の更新
最近の議論
新しいページ
統計
リクエスト
ArchWiki
検索
検索
表示
アカウント作成
ログイン
個人用ツール
アカウント作成
ログイン
ClamAVのソースを表示
ページ
議論
日本語
閲覧
ソースを閲覧
履歴を表示
ツール
ツール
サイドバーに移動
非表示
操作
閲覧
ソースを閲覧
履歴を表示
全般
リンク元
関連ページの更新状況
ページ情報
表示
サイドバーに移動
非表示
←
ClamAV
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
[[Category:セキュリティ]] [[en:ClamAV]] [[es:ClamAV]] [[fr:CLAMAV]] [[it:ClamAV]] [[ko:ClamAV]] [[pt:ClamAV]] [[ru:ClamAV]] [[sr:ClamAV]] [[zh-hans:ClamAV]] [https://www.clamav.net Clam AntiVirus] は UNIX 用のオープンソースの (GPL) アンチウイルスツールキットです。柔軟性がありマルチスレッドで動作するデーモンやコマンドラインスキャナー、データベースを自動的に更新するツールなど、さまざまなユーティリティが含まれています。ClamAV は主として Windows デスクトップのためのファイル・メールサーバーで使われることを想定しているので、基本的には Windows のウイルスやマルウェアを検知します。 == インストール == ClamAV は {{Pkg|clamav}} パッケージで[[pacman|インストール]]できます。さらに以下のパッケージをインストールすることもできます: * {{Pkg|clamtk}} - ClamAV の GUI フロントエンド * アドオン ** {{AUR|clamtk-gnome}} - [[Nautilus]] ファイルマネージャでファイルやフォルダを右クリックしてコンテキストメニューからスキャンできるようにする ClamTk のプラグイン。 ** {{AUR|thunar-sendto-clamtk}} - [[Thunar]] でファイルやフォルダを右クリックしてスキャンできるようにするシンプルなプラグイン。 == データベースの更新 == 次のコマンドでウイルス定義を更新します: # freshclam データベースのファイルは以下に保存されます: /var/lib/clamav/daily.cvd /var/lib/clamav/main.cvd /var/lib/clamav/bytecode.cvd ウイルス定義をアップデートするサービスは {{ic|clamav-freshclam.service}} です。このサービスを起動・有効化することでウイルス定義が最新になります。 == デーモンの起動 == {{Note| * 初めてサービスを開始する前に freshclam を実行する必要があります。そうしないと、ClamAV が正しく起動できなくなるトラブル/エラーが発生します。 * スタンドアロンスキャンを行うだけであれば、デーモンは必要ありません。以下の [[#ウイルスのスキャン|ウイルスのスキャン]] を参照してください。 }} サービス名は {{ic|clamav-daemon.service}} です。これを [[起動]] し、[[有効化]] します。 == ソフトウェアのテスト == ClamAV とウイルス定義が正しくインストールされているかどうか確かめるには、clamscan で [https://www.eicar.org/86-0-Intended-use.html EICAR テストファイル] (ウイルスコードは含まれていない無害な署名です) をスキャンします。 $ curl https://www.eicar.org/download/eicar.com.txt | clamscan - 以下が出力されれば検出成功です: stdin: Win.Test.EICAR_HDB-1 FOUND 上記の表示が出ない場合、トラブルシューティングを読むか、あるいは [https://bbs.archlinux.jp/ Arch フォーラム] に投稿してください。 == データベースや署名リポジトリの追加 == ClamAV は他のリポジトリやセキュリティベンダーから提供されたデータベースや署名を使うことができます。 {{AUR|clamav-unofficial-sigs}} をインストールして {{ic|/etc/clamav-unofficial-sigs/user.conf}} で設定するだけで MalwarePatrol, SecuriteInfo, Yara, Linux Malware Detect などの署名・データベースを追加できます。データベースについては [https://github.com/extremeshok/clamav-unofficial-sigs#description GitHub リポジトリの説明] を読んでください。 {{Note|ClamAV ミラーからの正式な署名の更新を行うには、{{ic|clamav-freshclam.service}} が [[起動]] している必要があります。}} === オプション1: Fangfrisch の設定 === [https://rseichter.github.io/fangfrisch/ Fangfrisch] は clamav-unofficial-sigs のより安全で柔軟かつ便利な代替品として設計され、[https://rseichter.github.io/fangfrisch/#_configuration ほとんど設定が必要ありません] 最も重要なことは、Fangfrisch は clamav-unofficial-sigs とは異なり、ルート権限で実行する必要がないことです。 実行することでデータベース構造を作成します。 # sudo -u clamav /usr/bin/fangfrisch --conf /etc/fangfrisch/fangfrisch.conf initdb {{ic|fangfrisch.timer}} を [[有効化]] してください。 === オプション2:clamav-unofficial-sigs の設定 === まず {{ic|/etc/clamav-unofficial-sigs/user.conf}} を編集して以下の行を変えてください: # Uncomment the following line to enable the script user_configuration_complete="yes" そして以下のコマンドを実行して非公式の署名サービスを有効化 (マニュアルページやログローテーション、cron ジョブなどが含まれています): # clamav-unofficial-sigs.sh --install-all ClamAV で署名アップデートを行うために {{ic|clamav-daemon}} サービスは動作させ続ける必要があります。 clamav-unofficial-sigs スクリプトで使われているデータベースと {{ic|/etc/clamav-unofficial-sigs}} の設定ファイルで設定されているデータベースから署名が更新されます。手動でデータベースから署名を更新するには、以下のコマンドを実行: # clamav-unofficial-sigs.sh cron ジョブの実行を止めるには {{ic|/etc/cron.d/clamav-unofficial-sigs}} ファイルを削除してください。 ==== MalwarePatrol データベース ==== MalwarePatrol データベースを使用したい場合 https://www.malwarepatrol.net/ でアカウントを登録してください。 {{ic|/etc/clamav-unofficial-sigs/user.conf}} の以下の行を変えることで有効にできます: malwarepatrol_receipt_code="YOUR-RECEIPT-NUMBER" # enter your receipt number here malwarepatrol_product_code="8" # Use 8 if you have a Free account or 15 if you are a Premium customer. malwarepatrol_list="clamav_basic" # clamav_basic or clamav_ext malwarepatrol_free="yes" # Set to yes if you have a Free account or no if you are a Premium customer. 詳しくは https://www.malwarepatrol.net/clamav-configuration-guide/ を参照。 == ウイルスのスキャン == オンデマンドスキャンには2つのオプションがあります。 === スタンドアロンスキャナーを使用する === {{ic|clamscan}} を使って特定のファイルやホームディレクトリ、もしくはシステム全体をスキャンすることができます: $ clamscan myfile $ clamscan --recursive --infected /home # or -r -i $ clamscan --recursive --infected --exclude-dir='^/sys|^/dev' / 感染しているファイルを {{ic|clamscan}} に削除して欲しい場合はコマンドに {{ic|--remove}} オプションを使って下さい。隔離したい場合は {{ic|1=--move=/dir}} を使います。 {{ic|clamscan}} で巨大なファイルをスキャンするときは、コマンドに {{ic|1=--max-filesize=4000M}} や {{ic|1=--max-scansize=4000M}} オプションを追加してください。4000M というサイズは最大値です。必要に応じて低い値に置き換えてください。 {{ic|-l ''path/to/file''}} オプションを使うと {{ic|clamscan}} のログがテキストファイルに出力されます。 === デーモンの使用 === {{ic|clamdscan}} は上記と似ていますが、コマンドが動作するためにはデーモンが起動している必要があります。デーモンは {{ic|/etc/clamav/clamd.conf}} で指定された設定を読み込むので、ほとんどのオプションは無視されます。 == milter を使う == Milter を使ってメールにウイルスが含まれていないか sendmail サーバーでスキャンすることができます。 {{ic|/etc/clamav/clamav-milter.conf.sample}} を {{ic|/etc/clamav/clamav-milter.conf}} にコピーして必要に応じて編集してください。例: {{hc|/etc/clamav/clamav-milter.conf|2=<nowiki> MilterSocket /run/clamav/clamav-milter.sock MilterSocketMode 660 FixStaleSocket yes User clamav PidFile /run/clamav/clamav-milter.pid TemporaryDirectory /tmp ClamdSocket unix:/var/lib/clamav/clamd.sock LogSyslog yes LogInfected Basic </nowiki>}} {{ic|/etc/systemd/system/clamav-milter.service}} を作成: {{hc|/etc/systemd/system/clamav-milter.service|2=<nowiki> [Unit] Description='ClamAV Milter' After=clamd-daemon.service [Service] Type=forking ExecStart=/usr/bin/clamav-milter --config-file /etc/clamav/clamav-milter.conf [Install] WantedBy=multi-user.target </nowiki>}} サービス {{ic|clamav-milter.service}} を[[有効化]]して[[起動]]してください。 == オンアクセススキャン == : ''(オリジナルソース: https://blog.clamav.net/2016/03/configuring-on-access-scanning-in-clamav.html)'' オンアクセススキャンはファイルを読み書き実行した際にスキャンを実行する機能です。 {{Warning | この時点(2021年11月)では、ClamAV でのオンアクセススキャンはまだ未成熟であり、原因不明の clamd クラッシュが発生する可能性があり、コンテナ化されたプロセスは保護されません。したがって、それがセキュリティの向上であるかどうかは議論の余地があります。規制や契約、あるいは自分自身の好奇心でそうせざるを得ない場合を除き、有効にしないでください。}} オンアクセススキャンを使うには ''fanotify'' を有効にしてコンパイルしたカーネルが必要です (カーネル 3.8 以上)。オンアクセススキャンを有効にする前に ''fanotify'' が有効になっているか確認してください: $ zgrep FANOTIFY /proc/config.gz {{ic|/etc/clamav/clamd.conf}} を編集することでオンアクセススキャンを有効にできます: {{Warning | ファイルの他の部分を変更する場合は、clamd ポートのセキュリティに関する次の警告に注意してください。通常、ローカル UNIX ソケットを使用しますが、このポートは認証または保護されていないことに注意してください。デーモンと ClamD のセクションの詳細については、[https://docs.clamav.net/manual/Usage/Scanning.html#clamd-v0101] を参照してください。}} {{hc|/etc/clamav/clamd.conf| # Enable son-access scan, required clamd service running ScanOnAccess true # Set the mount point where to recursively perform the scan, # this could be every path or multiple path (one line for path) OnAccessMountPath /usr OnAccessMountPath /home/ OnAccessExcludePath /var/log/ # flag fanotify to block any events on monitored files to perform the scan OnAccessPrevention false # perform scans on newly created, moved, or renamed files OnAccessExtraScanning true # check the UID from the event of fanotify OnAccessExcludeUID 0 # action to perform when clamav detects a malicious file # it is possibile to specify ad inline command too VirusEvent /etc/clamav/detected.zsh # WARNING: clamd should run as root User root }} 以下のファイルを作成してください: {{hc|/etc/clamav/detected.sh|2=<nowiki> #!/bin/bash PATH=/usr/bin alert="Signature detected: $CLAM_VIRUSEVENT_VIRUSNAME in $CLAM_VIRUSEVENT_FILENAME" # Send the alert to systemd logger if exist, othewise to /var/log if [[ -z $(command -v systemd-cat) ]]; then echo "$(date) - $alert" >> /var/log/clamav/infected.log else # as "emerg", this could cause your DE to show a visual alert. Happen in Plasma. but the next visual alert is much nicer echo "$alert" | /usr/bin/systemd-cat -t clamav -p emerg fi #send an alrt to all graphical user XUSERS=($(who|awk '{print $1$NF}'|sort -u)) for XUSER in $XUSERS; do NAME=(${XUSER/(/ }) DISPLAY=${NAME[1]/)/} DBUS_ADDRESS=unix:path=/run/user/$(id -u ${NAME[0]})/bus echo "run $NAME - $DISPLAY - $DBUS_ADDRESS -" >> /tmp/testlog /usr/bin/sudo -u ${NAME[0]} DISPLAY=${DISPLAY} \ DBUS_SESSION_BUS_ADDRESS=${DBUS_ADDRESS} \ PATH=${PATH} \ /usr/bin/notify-send -i dialog-warning "clamAV" "$alert" done </nowiki>}} [[AppArmor]] を使用している場合、clamd を root で実行できるように設定してください: # aa-complain clamd 設定後 {{ic|clamav-daemon.service}} を[[再起動]]してください。 詳しくは http://blog.clamav.net/2016/03/configuring-on-access-scanning-in-clamav.html を参照。 == トラブルシューティング == === Error: Clamd was NOT notified === freshclam を実行した後に以下のメッセージが表示される場合: {{bc| WARNING: Clamd was NOT notified: Cannot connect to clamd through /var/lib/clamav/clamd.sock connect(): No such file or directory }} ClamAV の sock ファイルを追加してください: {{bc| # touch /var/lib/clamav/clamd.sock # chown clamav:clamav /var/lib/clamav/clamd.sock }} それから、{{Ic|/etc/clamav/clamd.conf}} を編集して次の行をアンコメントしてください: LocalSocket /var/lib/clamav/clamd.sock ファイルを保存して[[デーモン|デーモンを再起動]]してください。 === Error: No supported database files found === デーモンを起動した時に次のエラーが表示される場合: {{bc| LibClamAV Error: cli_loaddb(): No supported database files found in /var/lib/clamav ERROR: Not supported data format }} この問題は {{ic|/etc/freshclam.conf}} の {{ic|DatabaseDirectory}} の設定と {{ic|/etc/clamd.conf}} の {{ic|DatabaseDirectory}} の設定が一致していないことが原因です。{{ic|/etc/freshclam.conf}} が {{ic|/var/lib/clamav}} を指定しているのに、{{ic|/etc/clamd.conf}} (デフォルトディレクトリ) は {{ic|/usr/share/clamav}} など別のディレクトリを指定してしまっています。{{ic|/etc/clamd.conf}} を編集して DatabaseDirectory が {{ic|/etc/freshclam.conf}} と同じになるようにしてください。設定後 clamav は問題なく起動するはずです。 === Error: Can't create temporary directory === 次のエラーが UID と GID の番号を含む 'HINT' と一緒に表示される場合: # can't create temporary directory パーミッションを直して下さい: # chown UID:GID /var/lib/clamav & chmod 755 /var/lib/clamav == ヒントとテクニック == === 複数のスレッドで実行 === ==== clamscan の使用方法 ==== コマンドラインから {{ic|clamscan}} を使ってファイルやディレクトリをスキャンする場合、1つの CPU スレッドのみが使用されます。タイミングが重要でない場合や、コンピュータが重くなることを望まない場合は、これでよいかもしれません。大きなフォルダや USB ドライブを高速にスキャンする必要がある場合は、利用可能なすべての CPU を使用してプロセスを高速化することができます。 {{ic|clamscan}} はシングルスレッドで設計されているので、{{ic|xargs}} を使って並列にスキャンを実行することができます。 $ find /home/archie -type f -print0 | xargs -0 -P $(nproc) clamscan この例では、{{ic|xargs}} の {{ic|-P}} パラメータは、({ic|nproc}} によって報告される)と同じだけプロセスで {{ic|clamscan}} を実行します。{{ic|--max-lines}} と {{ic|--max-args}} オプションにより、スレッド間のワークロードのバッチ処理をさらに細かく制御することができます。 ==== clamdscan の使用方法 ==== すでに {{ic|clamd}} デーモンが動作している場合は、代わりに {{ic|clamdscan}} を使うことができます (参照 [[ClamAV#デーモンの起動]]) $ clamdscan --multiscan --fdpass /home/archie ここでは、{{ic|--multiscan}} パラメータによって {{ic|clamd}} が利用可能なスレッドを使用してディレクトリの内容を並行してスキャンすることを可能にしています。{{ic|--fdpass}} パラメータは、{{ic|clamav}} ユーザとグループの下でデーモンが動作しているので、ファイル記述子のパーミッションを {{ic|clamd}} に渡すために必要です。 {{ic|clamdscan}} で利用可能なスレッド数は {{ic|/etc/clamav/clamd.conf}} の {{man|5|clamd.conf}} パラメータで決定されます.コマンドラインから {{ic|MaxThreads}} を指定してスキャンを開始しても、{{ic|--multiscan}} オプションを指定しない場合は、有効な CPU スレッドが 1 つしかスキャンに使用されません(現在のデフォルトは 10 です) == 参照 == * [[Wikipedia:ja:Clam AntiVirus]] * [[ClamSMTP]]
このページで使用されているテンプレート:
テンプレート:AUR
(
ソースを閲覧
)
テンプレート:Bc
(
ソースを閲覧
)
テンプレート:Hc
(
ソースを閲覧
)
テンプレート:Ic
(
ソースを閲覧
)
テンプレート:Man
(
ソースを閲覧
)
テンプレート:Note
(
ソースを閲覧
)
テンプレート:Pkg
(
ソースを閲覧
)
テンプレート:Warning
(
ソースを閲覧
)
ClamAV
に戻る。
検索
検索
ClamAVのソースを表示
話題を追加