centos7.9 기본 clamav(0.103.x) 설치 및 수동 바이러스패턴 업데이트하기

CentOS 7.9 환경에서 구버전 ClamAV(0.103.x)를 설치하고, 공식 차단을 우회하여 마이크로소프트 미러 서버를 통해 바이러스 패턴 파일을 수동으로 업데이트하는 전체 과정을 일목요연하게 정리해 드립니다.
------------------------------
## 1단계: 기존 잘못 설치된 패키지 및 찌꺼기 제거
이전 작업에서 충돌을 일으켰던 최신 RPM 버전이나 저장소 캐시 찌꺼기를 완전히 지우고 기본 상태로 되돌립니다.

# 1. 수동 연결했던 명령어 심볼릭 링크 삭제
sudo rm -f /usr/bin/freshclam /usr/bin/clamscan
# 2. 충돌 위험이 있는 최신 수동 RPM 패키지 제거
sudo rpm -e clamav-1.4.1.linux.x86_64.rpm --nodeps 2>/dev/null || true
# 3. Docker 관련 저장소 파일 삭제 및 Yum 캐시 초기화
sudo rm -f /etc/yum.repos.d/docker-ce.repo
sudo yum clean all
sudo yum makecache

------------------------------
## 2단계: CentOS 7.9 지원 종료(EOL) 대응 및 ClamAV 기본형 설치
CentOS 7의 미러 서버가 닫혔으므로, 시스템 저장소 주소를 과거 보관소(vault.centos.org)로 돌려놓은 뒤 수동 업데이트가 가능한 최소 버전인 ClamAV 0.103.x를 설치합니다.

# 1. CentOS 기본 저장소 주소를 보관소(Vault)로 강제 전환 (한 줄씩 실행)
sudo sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-Base.repo
sudo sed -i 's/#baseurl=http:\/\/mirror.centos.org/baseurl=http:\/\/vault.centos.org/g' /etc/yum.repos.d/CentOS-Base.repo
# 2. 메타데이터 재생성
sudo yum clean all && sudo yum makecache
# 3. CentOS 7.9용 ClamAV 기본 패키지 설치
sudo yum install -y clamav clamav-update

------------------------------
## 3단계: 자동화 우회 쉘 스크립트 작성 및 등록
공식 자동 업데이트(freshclam)는 차단당하므로, 마이크로소프트 공식 리눅스 패키지 서버에서 순수 원본 주소를 실시간 다운로드 바(Bar)와 함께 가져오는 우회 스크립트를 생성합니다.

sudo tee /root/clamav_manual_update.sh << 'EOF'
#!/bin/bash
set -e

echo "=========================================="
echo " ClamAV 바이러스 패턴 수동 업데이트"
echo "=========================================="

# 1. 기존 백그라운드 자동 업데이트 서비스 중지
echo "[1/4] 기존 freshclam 서비스 중지 중..."
sudo systemctl stop clamav-freshclam 2>/dev/null || true

# 2. 임시 디렉터리로 이동하여 마이크로소프트 실제 ClamAV 패키지 경로에서 다운로드
echo "[2/4] 최신 바이러스 패턴 파일 다운로드 중..."
cd /tmp

echo "-> 1. main.cvd 다운로드 중 (Microsoft 공식 경로)"
wget --progress=bar:force https://packages.microsoft.com/clamav/main.cvd -O main.cvd

echo "-> 2. daily.cvd 다운로드 중 (Microsoft 공식 경로)"
wget --progress=bar:force https://packages.microsoft.com/clamav/daily.cvd -O daily.cvd

echo "-> 3. bytecode.cvd 다운로드 중 (Microsoft 공식 경로)"
wget --progress=bar:force https://packages.microsoft.com/clamav/bytecode.cvd -O bytecode.cvd

# 3. 기존 데이터베이스 폴더 정리 후 파일 이동
echo "[3/4] 데이터베이스 폴더 교체 및 소유권 설정 중..."
sudo rm -rf /var/lib/clamav/*
sudo mv /tmp/main.cvd /tmp/daily.cvd /tmp/bytecode.cvd /var/lib/clamav/

# ClamAV 사용자 권한 부여 (CentOS 7 기본값인 clamupdate 또는 clamav 자동 감지)
if id "clamupdate" &>/dev/null; then
    sudo chown -R clamupdate:clamupdate /var/lib/clamav/
else
    sudo chown -R clamav:clamav /var/lib/clamav/
fi

# 4. 업데이트 결과 및 버전 확인
echo "[4/4] 업데이트 완료! 현재 ClamAV 버전 및 패턴 정보:"
echo "------------------------------------------"
clamscan --version
echo "=========================================="
EOF

------------------------------
## 4단계: 스크립트 실행 및 최신 바이러스 패턴 주입
스크립트에 실행 권한을 부여하고 실행하여 최신 바이러스 데이터베이스를 서버에 먹여줍니다.

# 1. 스크립트 실행 권한 부여
sudo chmod +x /root/clamav_manual_update.sh
# 2. 수동 업데이트 스크립트 실행
sudo /root/clamav_manual_update.sh

(※ 결과창에 ClamAV 0.103.11/28xxx 형태로 최신 데이터베이스 고유 번호가 표기되면 패치가 완벽하게 성공한 것입니다.)
------------------------------
## 5단계: 불필요한 경로를 제외하고 서버 악성코드 스캔하기
서버 부하와 스캔 시간을 크게 잡아먹는 가상 폴더(^/proc, ^/sys, ^/dev)를 제외한 후 실시간 서버 전체를 정밀 검사합니다.

sudo clamscan -r -i --exclude-dir=^/proc --exclude-dir=^/sys --exclude-dir=^/dev /


* -r: 하위 디렉터리까지 정밀 스캔
* -i: 정상 파일은 지나치고 감염된(Infected) 파일만 화면에 출력

------------------------------
## 📅 향후 관리 방법 (매일 자동 패치 예약)
매번 수동으로 켜지 않고 시스템이 자동으로 매일 새벽 2시에 백신 패치를 받아오게 하려면 크론탭 설정을 추가해 둡니다.

# 1. 크론탭 수정창 진입
sudo crontab -e
# 2. 맨 아래 줄에 다음 내용 추가 후 저장 (:wq)0 2 * * * /root/clamav_manual_update.sh > /dev/null 2>&1

정리해 드린 가이드를 바탕으로 터미널에 하나씩 입력해 보시면 안전하고 깨끗하게 수동 백신 세팅을 끝마치실 수 있습니다.
추후 5단계 전체 검사 도중 감염 파일(FOUND)이 또 발견되어 안전한 조치나 격리 방법이 필요하시다면 언제든 편하게 질문을 이어서 해주세요!

centos7.9 에서 clamav rpm 설치하기

CentOS 7.9 환경의 경우, 기본 EPEL 저장소에서 제공하는 ClamAV의 최신 패키지 버전이 낮아 yum update를 수행하더라도 차단이 풀리지 않는 경우가 많습니다. [1, 2] 
Cisco Talos(ClamAV 개발사)가 제공하는 공식 Linux RPM 바이너리 패키지를 수동으로 설치하여 엔진 버전을 최신으로 끌어올려야 정상적인 업데이트가 가능합니다. 아래 순서대로 작업을 진행해 주세요. [3, 4] 
------------------------------
## 1단계: 기존 구버전 패키지 완전히 삭제
버전 충돌을 방지하기 위해 설치되어 있던 구버전 ClamAV 관련 패키지를 먼저 제거합니다. (기존 설정 파일이 지워질 수 있으니 백업이 필요하다면 /etc/clamd.d/ 폴더를 미리 복사해 두세요). [2, 4, 5] 

sudo yum remove -y clamd clamav-data clamav-update clamav-filesystem clamav clamav-devel clamav-lib

------------------------------
## 2단계: 최신 독립형(RPM) 패키지 다운로드 및 설치
공식 다운로드 서버에서 현재 지원되는 최신 릴리스 패키지를 받아 직접 설치합니다. [4] 

# 1. 임시 작업 디렉터리로 이동
cd /usr/local/src
# 2. ClamAV 공식 Linux x86_64 패키지 다운로드 (버전 1.4.1 기준)
sudo wget https://www.clamav.net/downloads/production/clamav-1.4.1.linux.x86_64.rpm
# 3. 다운로드한 RPM 패키지 강제 설치 
sudo rpm -ivh clamav-1.4.1.linux.x86_64.rpm

(설치 중 의존성 오류 발생 시, 해당 패키지를 yum install로 설치 후 재시도)
------------------------------
## 3단계: 쿨다운(차단 기록) 해제 및 수동 업데이트
버전 업그레이드 후에도 기존 차단 기록(Mirrors 데이터)으로 인해 업데이트가 실패할 수 있습니다. [6] 

# 1. 서비스 중지 및 캐시 파일 삭제
sudo systemctl stop clamav-freshclam 2>/dev/null
sudo rm -f /var/lib/clamav/mirrors.dat /var/lib/clamav/daily.cvd /var/lib/clamav/main.cvd
# 2. 데이터베이스 강제 업데이트
sudo freshclam

------------------------------
## 4단계: 버전 검증 및 주의사항
설치 후 아래 명령어로 최신 버전(1.x)을 확인합니다. [7, 8] 

clamscan --version

⚠️ 필수 참고: CentOS 7은 2024년 6월 30일부로 지원이 종료(EOL)되었습니다. 향후 보안 위협에 노출될 수 있으므로, Rocky Linux 9 등 최신 OS로의 마이그레이션을 강력히 권장합니다. [9] 

[1] [https://www.danami.com](https://www.danami.com/clients/knowledgebase/302/How-can-I-fix-the-anti-virus-signature-service-stopping-with-the-error-You-are-running-an-out-of-date-version-of-ClamAV-or-FreshClam-or-You-have-been-blocked-by-the-CDN.html?language=portuguese-br)
[2] [https://serverfault.com](https://serverfault.com/questions/995435/your-clamav-installation-is-outdated)
[3] [https://www.youtube.com](https://www.youtube.com/watch?v=DOopgX-oxas&t=2)
[4] [https://velog.io](https://velog.io/@mimic1995/CentOS7-clamav-%EC%84%A4%EC%B9%98)
[5] [https://gist.github.com](https://gist.github.com/fernandoaleman/50b134b987297f97c803c91b591e5c52)
[6] [https://docs.clamav.net](https://docs.clamav.net/faq/faq-freshclam.html?highlight=update)
[7] [https://www.transip.eu](https://www.transip.eu/knowledgebase/700-installing-clamav-in-centos-almalinux)
[8] [https://hostpresto.com](https://hostpresto.com/tutorials/how-to-install-clamav-on-centos-7/)
[9] [https://forum.centos-webpanel.com](http://forum.centos-webpanel.com/centos-7-problems/clamav-database-update-blocked-by-cdn/)

 

 

설치 완료 후 실행 경로가 맞지 않다면

 

공식 RPM 패키지로 수동 설치할 경우, 실행 파일(freshclam, clamscan)이 일반적인 시스템 경로가 아닌 /usr/local/bin/ 디렉터리에 설치되기 때문에 발생하는 현상입니다. 시스템이 이 경로를 인식하지 못해 명령어를 찾을 수 없다고 나오는 것입니다. [1] 
아래의 순서대로 절대 경로를 지정하여 실행 파일의 위치를 바로잡아 주면 정상적으로 동작합니다. [2] 
------------------------------
## 1단계: 절대 경로로 명령어 위치 확인하기
실행 파일이 해당 위치에 잘 들어있는지 먼저 확인합니다. [2] 

ls -l /usr/local/bin/freshclam
ls -l /usr/local/bin/clamscan

(파일 목록이 정상적으로 출력된다면 설치는 완벽히 완료된 상태입니다.)
------------------------------
## 2단계: 시스템이 명령어를 인식하도록 심볼릭 링크 연결
어느 위치에서든 freshclam과 clamscan을 바로 입력할 수 있도록 표준 시스템 명령어 경로(/usr/bin/)에 링크를 걸어줍니다.

sudo ln -sf /usr/local/bin/freshclam /usr/bin/freshclam
sudo ln -sf /usr/local/bin/clamscan /usr/bin/clamscan

------------------------------
## 3단계: 샘플 설정 파일 활성화 (필수)
공식 RPM 패키지는 기본 설정 파일이 example 상태로 제공되어 그대로 실행하면 에러가 납니다. 이를 실제 설정 파일로 복사하고 활성화해 주어야 합니다. [1, 2] 

# 1. 설정 디렉터리로 이동
cd /usr/local/etc
# 2. 샘플 파일을 실제 설정 파일로 복사
sudo cp freshclahttp://m.conf.sample freshclam.conf
sudo cp clamd.conf.sample clamd.conf
# 3. 설정 파일 내부에 적힌 주석용 'Example' 문자열 제거 (제거해야 정상 작동)
sudo sed -i 's/^Example/#Example/' freshclam.conf
sudo sed -i 's/^Example/#Example/' clamd.conf

------------------------------
## 4단계: 업데이트 다시 실행하기
이제 시스템이 명령어를 완전히 인식하므로, 차단 캐시를 지우고 업데이트를 재시도하면 정상적으로 데이터베이스가 다운로드됩니다. [2] 

# 1. 기존 차단 로그 캐시 삭제
sudo rm -f /usr/local/share/clamav/mirrors.dat
# 2. 업데이트 실행
sudo freshclam

업데이트가 완료되면 바로 sudo clamscan -r -i / 명령어를 사용해 전체 서버 악성코드 검사를 시작하실 수 있습니다. 혹시 freshclam 진행 중 다른 에러 문구가 출력된다면 편하게 말씀해 주세요!

[1] [https://github.com](https://github.com/Cisco-Talos/clamav/issues/946)
[2] [https://docs.clamav.net](https://docs.clamav.net/faq/faq-troubleshoot.html)

 

 

만약, 모두 설치 후 아래와 같은 메세지가 보인다면,

[root@svr etc]# clamscan --version
clamscan: /lib64/libm.so.6: version `GLIBC_2.27' not found (required by /usr/local/lib64/libclamav.so.12)
clamscan: /lib64/libc.so.6: version `GLIBC_2.28' not found (required by /usr/local/lib64/libclamav.so.12)
clamscan: /lib64/libc.so.6: version `GLIBC_2.27' not found (required by /usr/local/lib64/libclamav.so.12)
clamscan: /lib64/libc.so.6: version `GLIBC_2.18' not found (required by /usr/local/lib64/libclamav.so.12)
clamscan: /lib64/libc.so.6: version `GLIBC_2.25' not found (required by /usr/local/lib64/libclamav.so.12)

 

이 오류는 CentOS 7.9의 핵심 시스템 버전(GLIBC 2.17)이 너무 낮아서, 최신 ClamAV 1.4.1 패키지가 요구하는 사양(GLIBC 2.27 이상)을 충족하지 못해 발생하는 문제입니다.CentOS 7 환경에서 GLIBC를 강제로 업데이트하면 전체 운영체제가 망가져 부팅이 안 될 수 있으므로 절대 무리하게 GLIBC를 수동 빌드하시면 안 됩니다.

 

이때는 사용이 불가 하니 설치를 중지하고 이전 버젼을 설치하거나 다른 방법을 강구해야 한다