ClamAV 안티바이러스(clamscan, clamdscan, freshclam) 사용 중 발생하는 가장 일반적인 오류를 설명하고 해결합니다.
소스에서 ClamAV를 컴파일할 때 발생하는 오류는 여기서 다루지 않습니다.
clamdscan "파일 또는 디렉토리를 열 수 없습니다(ERROR)"
파일 또는 디렉토리를 스캔할 때 일부 항목이 이 오류를 발생시킬 수 있습니다. 해당 파일은 스캔되지 않아 악성코드 유무를 확인할 수 없습니다.
이 문제는 디렉토리나 파일의 권한 문제일 수 있으므로, clamdscan이 해당 디렉토리 및 파일에 대한 읽기 및 쓰기 권한을 가지고 있는지 확인해야 합니다.
또한, 이 문제는 AppArmor 때문일 수도 있습니다. 해결 방법은 AppArmor에서 clamd를 "complain" 모드로 설정하는 것입니다. Debian에서의 해결 방법은 다음과 같습니다:
apt-get install apparmor-utils
aa-complain /usr/sbin/clamd
clamdscan "파일 경로 확인 실패: 권한이 거부되었습니다(ERROR)"
이 오류를 해결하려면 다음 세 가지 방법을 시도할 수 있습니다:
- 스캔할 파일 및 디렉토리 권한을 666으로 설정: chmod 666 *
- --fdpass 옵션을 사용하여 clamdscan 실행: clamdscan --fdpass
- --stream 옵션을 사용하여 clamdscan 실행: clamdscan --stream
"Ignoring mirror (due to previous errors)"가 freshclam 로그에 표시됨
이 오류 메시지가 나타나면 안티바이러스 서명 데이터베이스를 다운로드할 수 없다는 것을 의미합니다.
이 메시지는 ClamAV 0.102 이전 버전에 해당합니다.
0.102 버전부터 freshclam의 네트워크 코드가 대폭 변경되었습니다. 따라서 이 오류를 해결하려면 ClamAV 버전을 업데이트해야 합니다.
"nonblock_connect: connect(): fd=5 errno=101: Network is unreachable" 및 "WARNING: getpatch: Can't download daily-xxx.cdiff from db.local.clamav.net"이 freshclam 로그에 표시됨
이 메시지는 ClamAV 서버에 연결하여 안티바이러스 서명 데이터베이스를 다운로드할 수 없다는 것을 나타냅니다.
- 서버가 인터넷 연결 문제를 겪고 있을 수 있습니다.
- 프록시(투명 또는 비투명)를 사용 중일 수 있습니다. Freshclam은 ClamAV 서버에 직접 연결하는 것을 선호하며, 프록시를 통해 연결할 경우 문제가 발생할 수 있습니다. 특히 프록시가 HTTP(S) 연결 속성을 변경(예: User-Agent 변경)하는 경우 문제가 심각해집니다.
- 아주 오래된 버전의 ClamAV를 사용 중일 수 있으며, 업데이트가 필요합니다.
"WARNING: Can't read main.cvd header from db.local.clamav.net (IP: )"이 freshclam 로그에 표시됨
안티바이러스 서명 데이터베이스를 다운로드할 수 없습니다.
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 버전이 설치되어 있을 가능성이 있습니다. 이는 운영 체제가 제공하는 두 가지 버전일 수 있습니다. 따라서 더 오래된 버전을 삭제하면 됩니다. 또는 ClamAV 소스 코드 설치와 운영 체제가 제공하는 버전이 혼합된 경우일 수 있습니다. 시스템에 항상 하나의 libclamav 버전만 설치되어 있어야 합니다.
"LibClamAV Error: yyerror()" 및 "LibClamAV Warning: cli_loadyara: failed to parse or load 1 yara rules from file"
ClamAV는 YARA 형식의 바이러스 서명을 지원합니다. 그러나 ClamAV에서 사용하는 Yara 해석 엔진은 특정하고 내부적으로 사용되며, 공식 Yara 해석기와 100% 호환되지 않습니다.
따라서 일부 YARA 규칙은 ClamAV에서 완전히 작동하지 않을 수 있습니다.
이 문제를 해결하려면:
- 문제를 일으키는 YARA 규칙을 ClamAV와 호환되도록 다시 작성하십시오.
- 또는 ClamAV의 Yara 엔진이 곧 개선되기를 기다리십시오.
ClamAV 사용 중 "LibClamAV Error" 오류 예: "LibClamAV Error: [scan_biff_for_xlm_macros] Unexpected state value 4"
이 오류는 매우 특정하며 ClamAV가 제대로 처리하지 못한 데이터 스캔 문제를 나타낼 수 있습니다. ClamAV 개발팀에 이 문제를
공식 Github을 통해 보고하는 것이 좋습니다.
ClamAV 사용 중 "LibClamAV Warning: fmap: map allocation failed", "LibClamAV Error: CRITICAL: fmap() failed" 및 "Can't allocate memory ERROR"
이 오류 메시지는 일반적으로 스캔 중 RAM 부족을 나타냅니다. 따라서:
- 메모리가 부족하다면, 서버나 VPS의 RAM 용량을 늘리는 것이 좋습니다.
- 너무 큰 객체를 스캔 중일 수 있습니다. 이를 방지하려면 스캔할 객체의 크기에 제한을 설정하십시오: --max-filesize 또는 --max-scansize 명령줄 옵션 사용
- /proc 디렉토리와 같은 시스템 파일 또는 디렉토리를 스캔 중일 수 있습니다. 이는 금지되어 있으므로 하지 마십시오.
ClamAV 사용 중 "Segmentation fault (core dumped)"
이 오류 메시지는 가장 중요한 오류 중 하나입니다. 이는 안티바이러스가 치명적으로 충돌하여 운영 체제가 ClamAV 프로세스를 강제로 종료했음을 나타냅니다.
하지만 이 메시지는 너무 일반적이며 시스템 운영 체제 설정, 사용 가능한 리소스(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의 오래된 버전에 대한 기사를 읽어보시길 권장합니다.
ClamWin 안티바이러스가 더 이상 작동하지 않음
ClamWin은 ClamAV의 Windows 포트이지만 제3자가 개발한 프로그램입니다. 따라서 ClamWin은 Cisco/Sourcefire 팀에서 지원하거나 개발하지 않습니다. 불행히도 이 Windows용 안티바이러스는 더 이상 개발되지 않으며, 최신 버전은 0.103.2.1입니다. 이전 단락에서 설명한 바와 같이 0.103 버전은 ClamAV에서 더 이상 지원되지 않으므로 ClamAV는 ClamWin용 서명 데이터베이스 다운로드를 비활성화했습니다. 이로 인해 ClamWin은 완전히 비효율적이므로, 기업이나 생산 환경에서의 사용을 권장하지 않습니다.
권장 솔루션은
ClamAV의 공식 Windows 버전을 다운로드하는 것입니다. 32비트 버전과 64비트 버전이 제공됩니다. 이 버전은 GUI(그래픽 사용자 인터페이스)가 없지만, ClamAV의 명령줄은 복잡하지 않으며 하드 디스크 스캔을 자동화하기 위해 간단한 BAT 파일 몇 개만 필요합니다.
또한,
Windows용 ClamAV의 비공식 포트도 있습니다. 이 포트는 매우 오래된 Windows(WinNT 및 Windows 98)에서도 작동하므로 흥미롭습니다. 그러나 명령줄만 제공되며 GUI는 없습니다.
SecuriteInfo.com 서명에서 426 오류
freshclam을 사용하여
SecuriteInfo.com의 바이러스 서명을 다운로드할 때 426 오류가 발생한다면, 이는 무료 계정과 오래된 ClamAV를 사용하고 있기 때문입니다.
해결 방법은 ClamAV를 업데이트하거나, "전문가" 구독을 선택하여 서명을 다운로드하는 것입니다. 둘 다 실행하면 악성코드 탐지율이 크게 향상됩니다.
securiteinfoold.hdb를 다운로드할 수 없거나 'nonblock_recv: recv timing out (30 secs)' 또는 'Download failed (28)... Message: Timeout was reached' 오류 발생
- 0.102.2 이전의 ClamAV인 경우 freshclam.conf 파일에 "ReceiveTimeout 2400"을 추가하고 freshclam 데몬을 다시 시작하십시오.
- 0.102.2 이상의 ClamAV인 경우 freshclam.conf 파일에서 ReceiveTimeout을 제거하고 freshclam 데몬을 다시 시작하십시오.
ClamAV 버전 업데이트
보시다시피, 대부분의 문제는 최신 버전으로 ClamAV를 업데이트하면 해결됩니다. 이를 수행하는 방법은 여러 가지가 있으며, 환경에 맞는 방법을 선택하십시오.
- ClamAV를 소스에서 컴파일한 경우, ClamAV의 최신 소스 파일을 다운로드하여 환경에서 다시 컴파일하십시오. 단, 운영 체제 버전에 주의하십시오. 운영 체제가 너무 오래된 경우, 최신 ClamAV 버전이 컴파일 오류를 일으킬 수 있습니다.
- ClamAV 실행 파일 버전을 사용하는 경우(예: Windows ClamAV), 새 실행 파일 버전이 포함된 패키지를 설치하기만 하면 됩니다. 이 방법이 가장 간단합니다!
- 운영 체제에서 ClamAV를 제공하는 경우(대부분의 Linux 환경인 Ubuntu, Debian, Red Hat, CentOS 등), 운영 체제를 업데이트하는 것이 필수적입니다. 업데이트가 너무 번거로워서 불가능한 경우, ClamAV 패키지를 제거한 후 소스에서 ClamAV를 다운로드하여 다시 컴파일하는 것을 권장합니다. 하지만 앞서 언급했듯이 운영 체제가 너무 오래된 경우 ClamAV가 컴파일되지 않을 수 있습니다.
더 자세한 정보는
오래된 ClamAV 버전을 사용하는 위험성에 관한 기사를 읽어보시길 권장합니다.
SecuriteInfo.com 지원
ClamAV와 관련하여 특정 요구사항(예: 유지보수 계약, 컴파일 지원, 기술 모니터링)이 있는 경우,
저희에게 연락하여 필요 사항을 설명하십시오. ClamAV를 사용한 바이러스 방어 요구를 만족시키기 위해 기꺼이 도움을 드리겠습니다.
ClamAV 공식 지원
다른 오류 메시지가 있거나 ClamAV 개발팀과 직접 지원을 받고 싶다면 두 가지 옵션이 있습니다:
- 공식 메일링 리스트(영어 전용)에 가입한 후 이메일로 질문을 제출할 수 있습니다. 커뮤니티와 일부 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.