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)이 또 발견되어 안전한 조치나 격리 방법이 필요하시다면 언제든 편하게 질문을 이어서 해주세요!