Linux 로그 경로 정리 · 41/50 · Part 5. 로그 관리와 무결성

선행 학습 → 17. Rocky Linux 로그 경로 종합 정리 · 27. Ubuntu 로그 경로 종합 정리 · 기초 38. cron 작업 스케줄링
이번 글 → logrotate 이해
이어서 → 42. 로그 로테이션과 보안관제

1. 들어가며

Part 5는 로그를 관리하고 지키는 방법입니다. 첫 주제는 logrotate입니다. 로그는 계속 쌓이므로 언젠가 디스크를 채웁니다. logrotate는 일정 주기로 파일 이름을 바꾸고(순환), 압축하고, 오래된 것을 지웁니다. 문제는 "오래된 것을 지운다" 가 사고 조사에서 증거 소실을 뜻한다는 점입니다.

핵심 요약

  • logrotate = 순환(rotation) + 압축(compression) + 보존(retention) 자동화
  • Rocky 9 기본: weekly · rotate 4 · create · dateext (압축 없음) → 약 4~5주 보관
  • Ubuntu 24.04 기본(rsyslog 파일): weekly · rotate 4 · compress · delaycompress
  • audit.log 는 logrotate가 아니라 auditd가 직접 순환한다(max_log_file, num_logs).

2. 핵심 개념

옵션의미보안 영향
daily / weekly / monthly순환 주기주기 × rotate = 보존 기간
rotate N보관할 순환 파일 개수초과분 삭제
maxage NN일 지난 순환 파일 삭제보존 상한
size / maxsize크기 기준 순환공격 트래픽 폭증 시 빨리 밀려남
compress / delaycompressgzip 압축 / 직전 1개는 비압축zgrep 필요
dateext-YYYYMMDD 접미사파일명에 날짜 → 조사 편리
create mode owner group새 파일 생성 권한권한 설정 오류 시 노출
copytruncate복사 후 원본 비우기복사~비우기 사이 로그 유실 가능
postrotate / sharedscripts순환 후 명령 (rsyslog HUP)새 파일로 기록 전환
missingok / notifempty없는 파일 무시 / 빈 파일 순환 안 함

3. 로그 생성 구조

logrotate 순환 주기 (weekly · rotate 4)

systemd timer (logrotate.timer) 또는 /etc/cron.daily/logrotate
   ↓
logrotate /etc/logrotate.conf ── include /etc/logrotate.d/*
   ↓ 상태 파일(/var/lib/logrotate/logrotate.status)로 마지막 순환 시각 확인
   ↓ 주기 도래
rename  secure → secure-20260920   (Ubuntu: auth.log → auth.log.1, .1 → .2.gz)
create  새 secure (권한 적용)
postrotate: rsyslog HUP → 새 파일에 기록 시작
rotate 초과 순환 파일 삭제

4. 실제 로그 경로

항목Rocky 9Ubuntu 24.04
메인 설정/etc/logrotate.conf동일 (+ su root adm)
로그별 설정/etc/logrotate.d/rsyslog 등동일
상태 파일/var/lib/logrotate/logrotate.status/var/lib/logrotate/status
실행 주체logrotate.timer (systemd)logrotate.timer
audit.log/etc/audit/auditd.conf (auditd 자체 순환)동일
journaljournald.conf (SystemMaxUse, MaxRetentionSec)동일

5. 명령어 실습

grep -vE '^#|^$' /etc/logrotate.conf
cat /etc/logrotate.d/rsyslog
systemctl list-timers logrotate.timer --no-pager

# 드라이런: 실제로 순환하지 않고 무엇을 할지 출력
logrotate -d /etc/logrotate.conf 2>&1 | grep -A6 'rotating pattern: /var/log/secure'

# 마지막 순환 시각
cat /var/lib/logrotate/logrotate.status 2>/dev/null | grep -E 'secure|auth.log|messages|syslog'

# 보존 기간 계산: 주기 × rotate
ls -l --time-style=+%F /var/log/secure* /var/log/auth.log* 2>/dev/null

# audit / journal 보존 설정
grep -E '^(max_log_file|num_logs|max_log_file_action) ' /etc/audit/auditd.conf
grep -E '^\s*#?\s*(SystemMaxUse|MaxRetentionSec)' /etc/systemd/journald.conf

6. 로그 예시

실제 실행 결과 — Rocky Linux 9.8 · root@rocky9-lab — logrotate 기본 설정

위 이미지는 Rocky Linux 9.8 실습 환경에서 logrotate 기본 설정을 실제로 조회한 결과입니다. 기본 logrotate.conf 에는 compress 가 없어(주석 처리) 순환 파일이 압축되지 않습니다.

같은 방식으로 확인한 Ubuntu 24.04 실습 환경의 실제 설정:

[실제 실행 결과 · Ubuntu 24.04]
$ grep -vE "^#|^$" /etc/logrotate.conf
weekly
su root adm
rotate 4
create
include /etc/logrotate.d
$ cat /etc/logrotate.d/rsyslog
/var/log/syslog
/var/log/mail.log
/var/log/kern.log
/var/log/auth.log
/var/log/user.log
/var/log/cron.log
{
	rotate 4
	weekly
	missingok
	notifempty
	compress
	delaycompress
	sharedscripts
	postrotate
		/usr/lib/rsyslog/rsyslog-rotate
	endscript
}

7. 로그 필드 분석

설정Rocky 9.8Ubuntu 24.04결과
주기·세대weekly, 4weekly, 4약 4~5주 보관
이름dateext → secure-20260920숫자 → auth.log.1날짜 vs 순번
압축없음compress + delaycompressUbuntu는 .2.gz 부터 압축
빈 파일순환함(notifempty 없음)notifempty
audit.log8MB × 5 (auditd)동일(설치 시)크기 기준 — 이벤트 폭증 시 빨리 밀림

8. 보안관점

정상의심
순환 파일 날짜가 주 단위로 연속순환 파일 누락, 불규칙한 순환 시각
rotate 값이 정책과 일치rotate 0 / maxage 1 로 변경 → 사실상 즉시 삭제
status 파일 시각이 timer와 일치logrotate -f 수동 강제 순환 흔적 (audit EXECVE)

보존 기간이 짧으면 증거가 사라집니다. 침해는 평균적으로 발견까지 수 주~수개월이 걸리는 경우가 많아, 4주 로컬 보존만으로는 부족합니다 → 중앙 수집·장기 보존 정책 필요(45편).

9. SOC 관점

  • Detection: /etc/logrotate.conf, /etc/logrotate.d/ FIM 감시 + logrotate -f 수동 실행 audit 탐지.
  • Investigation: 조사 범위를 정할 때 "로컬에 며칠치가 남아 있나"를 먼저 계산.
  • Policy: 로컬 보존(logrotate) ≠ 증거 보존(중앙 SIEM/아카이브). 두 정책을 분리해 문서화.

10. 실습 체크리스트

[ ] logrotate 주요 옵션 10개 의미 설명
[ ] Rocky / Ubuntu 기본 설정 비교
[ ] logrotate -d 드라이런
[ ] status 파일로 마지막 순환 시각 확인
[ ] audit.log / journal 의 별도 보존 설정 확인
[ ] 로컬 보존 기간 계산

11. 핵심 정리

  • logrotate는 순환·압축·삭제를 자동화하며 삭제는 곧 증거 소실이다.
  • Rocky 기본은 날짜 접미사·비압축, Ubuntu 기본은 순번·지연 압축이다.
  • 기본 보존은 약 4~5주로 사고 조사에는 짧을 수 있다.
  • audit.log는 auditd, journal은 journald가 각자 순환·보존한다.
  • 순환 설정 변경과 강제 순환은 탐지 대상이다.

12. 다음 편 연결

구분글
◀ 이전 글40. auditd로 중요 파일 접근 추적
▶ 다음 글42. 로그 로테이션과 보안관제
시리즈Linux 로그 경로 정리 전체 보기
선행 시리즈리눅스 시스템 기초 · 파일 · 권한 · 사용자 관리 · 서비스 · 프로세스 관리 · Linux 시스템 보안 기초
profile
코드에 숨겨진 위협을 읽고 AI로 보안의 미래를 설계합니다. 프론트엔드 개발 경험을 자산 삼아 더 견고하고 지능적인 보안 운영 시스템을 구축해 나가는 과정을 기록합니다

0개의 댓글