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)이 또 발견되어 안전한 조치나 격리 방법이 필요하시다면 언제든 편하게 질문을 이어서 해주세요!
'ClamAV'에 해당되는 글 2건
centos7.9 기본 clamav(0.103.x) 설치 및 수동 바이러스패턴 업데이트하기
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를 수동 빌드하시면 안 됩니다.
이때는 사용이 불가 하니 설치를 중지하고 이전 버젼을 설치하거나 다른 방법을 강구해야 한다