기술 가이드

CentOS 7에서 자동 보안 업데이트 설정

5 min read 서버 업데이트됨 17 Oct 2025
CentOS 7 자동 보안 업데이트 설정 가이드
CentOS 7 자동 보안 업데이트 설정 가이드

개요

보안 업데이트는 시스템 안정성과 데이터 보호에 매우 중요합니다. 일반 권장사항은 배포된 보안 패치를 30일 이내에 적용하는 것입니다. 이 튜토리얼에서는 CentOS 7에서 yum-cron을 사용해 시스템과 패키지의 보안 업데이트를 자동으로 처리하는 방법을 다룹니다.

핵심 내용:

  • yum-cron 설치 및 서비스 관리
  • yum-cron 구성: 보안 업데이트만 적용
  • 특정 패키지 제외 방법
  • yum-cron 로그 확인 및 문제 해결
  • 테스트 및 롤백 절차, 운영 체크리스트

중요 대상: CentOS 7 서버와 루트 권한

무엇을 기대할 수 있나

이 설정을 적용하면 시스템이 정기적으로(일간 기본) 보안 업데이트를 확인하고 필요한 패키지를 자동으로 다운로드 및 설치합니다. 알림은 이메일로 받을 수 있으며, 특정 패키지(예: kernel, mysql*)를 자동 업데이트에서 제외할 수 있습니다.

중요: 자동 업데이트는 편리하지만, 주요 서비스에 즉시 적용되는 업데이트는 사전 테스트가 필요할 수 있습니다. 프로덕션 환경에서는 스테이징 테스트와 유지보수 윈도우를 고려하세요.

1 단계 - yum-cron 설치

Yum-cron은 CentOS에서 패키지 업데이트를 관리하는 커맨드라인 유틸리티입니다. 저장소에서 설치할 수 있습니다.

yum -y install yum-cron

설치 후 서비스 시작 및 부팅 시 자동 시작 설정:

systemctl start yum-cron
systemctl enable yum-cron

서비스 상태 확인(추가 권장 명령):

systemctl status yum-cron

설치가 완료되면 다음 단계로 구성 파일을 편집합니다.

2 단계 - yum-cron을 보안 업데이트만 적용하도록 구성

설정 파일은 /etc/yum/yum-cron.conf 입니다. 여기서 update_cmd, emit_via, 이메일 옵션 등을 변경합니다.

편집 예:

cd /etc/yum/
vim yum-cron.conf

파일에서 아래 항목을 찾아 변경합니다:

update_cmd = security
update_messages = yes
download_updates = yes
apply_updates = yes

이 설정은 보안 관련 업데이트만 다운로드하고 자동으로 적용하도록 지정합니다.

이미지: yum-cron을 보안 업데이트 전용으로 구성하는 설정 화면

메일 전송 방식 설정: yum-cron은 STDIO 출력 또는 이메일 전송을 지원합니다. 이메일로 알림을 받으려면 emit_via 값을 email로 설정하고 발신자/수신자/메일호스트를 지정합니다.

emit_via = email
email_from = root@hakase-labs
email_to = [email protected]
email_host = hakase-labs

이미지: yum-cron 이메일 통지 설정 예시 화면

설정을 저장한 뒤 yum-cron 서비스를 재시작합니다:

systemctl restart yum-cron

추가 권장 설정(운영 팁):

  • 시스템에 메일 전송 에이전트(MTA)가 없다면 Postfix 또는 ssmtp 등을 설치해야 이메일 알림이 제대로 동작합니다.
  • 보안 업데이트만 적용할 때도 커널 업데이트는 신중히 다뤄야 합니다. 재부팅이 필요한 커널 업데이트는 운영시간을 고려하세요.

3 단계 - 자동 업데이트에서 특정 패키지 제외

특정 패키지를 자동 업데이트에서 제외하려면 yum-cron.conf의 [base] 섹션(또는 해당 파일 끝부분)에 exclude 지시자를 추가합니다.

cd /etc/yum/
vim yum-cron.conf

파일에서 [base] 섹션을 찾아 다음처럼 추가합니다:

exclude = mysql* kernel*

이 예시는 이름이 mysql로 시작하는 모든 패키지와 kernel로 시작하는 패키지를 자동 업데이트에서 제외합니다. 변경 후 서비스 재시작:

systemctl restart yum-cron

이미지: 업데이트 제외 패키지 설정 예시 화면

중요: 와일드카드를 사용할 수 있으니 패턴 정의에 주의하세요. 잘못된 패턴은 의도치 않은 패키지 제외로 이어질 수 있습니다.

4 단계 - yum-cron 로그 확인 및 감사

yum-cron은 cron 작업을 통해 자동 실행되며 표준 로그는 /var/log 디렉터리에 있습니다. 관련 명령 예:

cd /var/log/
cat cron | grep yum-daily

업데이트된 패키지 목록 확인:

cat yum.log | grep Updated

추가 로그 소스:

  • /var/log/messages 또는 시스템저널(journalctl)에서 추가 오류를 확인하세요.

문제 해결 팁:

  • 서비스가 동작하지 않으면 systemctl status와 journalctl -u yum-cron을 확인합니다.
  • 이메일 알림이 오지 않으면 로컬 MTA 로그(/var/log/maillog 등)를 확인하세요.

롤백과 테스트

자동 업데이트 후 문제가 발생하면 yum history를 사용해 변경을 추적하고 필요 시 롤백할 수 있습니다.

예: 최근 트랜잭션 확인

yum history

특정 트랜잭션 롤백 예:

yum history undo 

주의: 모든 롤백이 항상 완전한 복원을 보장하는 것은 아니므로 프로덕션에서 롤백을 사용하기 전에는 스냅샷(예: LVM 스냅샷, VM 스냅샷)이나 백업을 확보하세요.

보안 고려사항 및 운영 권장사항

  • 자동 업데이트는 운영 편의성을 높이지만, 상태 확인과 테스트 절차 없이는 서비스 중단을 초래할 수 있습니다.
  • 커널 및 주요 데이터베이스 관련 패키지는 자동 적용에서 제외하고 수동으로 테스트한 뒤 설치하는 것을 권장합니다.
  • 시스템 재부팅이 필요한 업데이트가 적용될 수 있으므로 자동 재부팅을 구성할지 여부를 명확히 결정하세요.

중요: 패치 정책은 비즈니스 요구사항, SLA, 변경관리 프로세스에 맞춰 수립해야 합니다.

부록: 운영 체크리스트 (역할별)

운영자(시스템 관리자):

  • yum-cron 설치 및 활성화 확인
  • yum-cron.conf에서 update_cmd와 이메일 설정 검증
  • 제외 패키지 목록 검증(exclude 패턴)
  • MTA(Postfix 등) 설치 및 발신 테스트
  • 업데이트 후 서비스 상태 점검 스크립트 준비

보안 담당자:

  • 보안 패치가 정책 범위 내인지 검토
  • 패치 적용 감사 로그 보관 정책 확인

개발/서비스 팀:

  • 중요한 변경에 대한 롤백 절차 문서화
  • 스테이징 환경에서 패치 테스트

테스트 케이스 및 수용 기준

테스트 목적: yum-cron이 보안 업데이트만 다운로드하고 적용하는지 검증

테스트 케이스 예:

  • TC1: 보안 업데이트가 있는 경우

    • 절차: 보안 업데이트가 있는 패키지가 존재하도록 테스트 환경 구성
    • 기대 결과: 해당 보안 패키지가 다운로드·설치되고 yum.log에 Updated 항목이 남음
  • TC2: 제외된 패키지 업데이트

    • 절차: exclude에 추가한 패키지의 보안 업데이트를 포함
    • 기대 결과: 해당 패키지는 자동으로 설치되지 않음
  • TC3: 이메일 알림

    • 절차: 알림이 정상 전송되는지 확인
    • 기대 결과: 이메일 수신자에게 업데이트 요약이 도착

수용 기준:

  • 보안 업데이트만 자동 적용되고, 제외된 패키지는 설치되지 않아야 함
  • 업데이트 로그가 /var/log/yum.log와 cron 로그에 기록되어야 함
  • 이메일 알림(emit_via = email)을 선택한 경우 알림이 정상 도착해야 함

소규모 운영 SOP(표준작업절차)

  1. yum-cron.conf 백업
cp /etc/yum/yum-cron.conf /etc/yum/yum-cron.conf.bak.$(date +%F)
  1. 구성 변경 및 저장
  2. 서비스 재시작
systemctl restart yum-cron
  1. 로그 확인
cat /var/log/cron | grep yum-daily
cat /var/log/yum.log | tail -n 50
  1. 이메일 수신 확인 및 서비스 점검

  2. 문제가 있으면 yum history로 롤백하거나 스냅샷 복원

대안과 고려할 점

  • 자동화 도구 사용: 기업 환경에서는 Spacewalk, Satellite 또는 Ansible 같은 중앙 관리 도구를 사용해 패치 정책을 더 세밀하게 적용할 수 있습니다.
  • 패치 창 관리: 자동 적용 대신 그룹별로 롤아웃(예: Canary 배포)을 고려하세요.
  • 컨테이너 환경: 컨테이너 이미지는 빌드 단계에서 패치를 적용하고 이미지를 재배포하는 방식이 일반적입니다.

빠른 명령어 요약(치트시트)

# 설치
yum -y install yum-cron
systemctl start yum-cron
systemctl enable yum-cron

# 구성 편집
vim /etc/yum/yum-cron.conf

# 재시작
systemctl restart yum-cron

# 상태확인
systemctl status yum-cron
journalctl -u yum-cron

# 로그확인
cat /var/log/cron | grep yum-daily
cat /var/log/yum.log | grep Updated

# yum 트랜잭션 확인 및 롤백
yum history
yum history undo 

결론

이 가이드에서는 CentOS 7 서버에서 yum-cron을 설치하고 보안 업데이트만 자동으로 다운로드·적용하도록 구성하는 전체 흐름을 다뤘습니다. 이메일 알림 설정, 특정 패키지 제외, 로그 감사, 테스트 및 롤백 절차까지 포함하여 운영 관점에서 실무에 바로 적용할 수 있는 내용으로 구성했습니다.

요약: yum-cron을 통해 보안 업데이트를 자동화하면 관리 부담을 크게 줄일 수 있지만, 커널·데이터베이스와 같은 핵심 패키지는 수동 테스트와 배포 창구를 두는 것이 안전합니다.

추가 자료

공유하기: X/Twitter Facebook LinkedIn Telegram
저자
편집

유사한 자료

Debian 11에 Podman 설치 및 사용하기
컨테이너

Debian 11에 Podman 설치 및 사용하기

Apt-Pinning 간단 소개 — Debian 패키지 우선순위 설정
시스템 관리

Apt-Pinning 간단 소개 — Debian 패키지 우선순위 설정

OptiScaler로 FSR 4 주입: 설치·설정·문제해결 가이드
그래픽 가이드

OptiScaler로 FSR 4 주입: 설치·설정·문제해결 가이드

Debian Etch에 Dansguardian+Squid(NTLM) 구성
네트워크

Debian Etch에 Dansguardian+Squid(NTLM) 구성

안드로이드 SD카드 설치 오류(Error -18) 완전 해결
안드로이드 오류

안드로이드 SD카드 설치 오류(Error -18) 완전 해결

KNetAttach로 원격 네트워크 폴더 연결하기
네트워킹

KNetAttach로 원격 네트워크 폴더 연결하기