기술 가이드

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
저자
편집

유사한 자료

iPhone 배터리 수명 극대화 가이드
모바일 배터리

iPhone 배터리 수명 극대화 가이드

Windows 11 언어 팩 오류 0x800F0909 빠른 해결법
Windows

Windows 11 언어 팩 오류 0x800F0909 빠른 해결법

Unity 런처 프로필 관리: launcher-list-indicator 사용법
리눅스

Unity 런처 프로필 관리: launcher-list-indicator 사용법

Windows 0x8007025D 오류 해결 가이드
Windows

Windows 0x8007025D 오류 해결 가이드

오디오 출력 장치가 설치되지 않음 오류 해결
Windows 문제해결

오디오 출력 장치가 설치되지 않음 오류 해결

Ubuntu 7.10에서 8.04 LTS로 업그레이드 가이드
리눅스

Ubuntu 7.10에서 8.04 LTS로 업그레이드 가이드