Linux 로그 경로 정리 · 41/50 · Part 5. 로그 관리와 무결성
선행 학습 → 17. Rocky Linux 로그 경로 종합 정리 · 27. Ubuntu 로그 경로 종합 정리 · 기초 38. cron 작업 스케줄링
이번 글 → logrotate 이해
이어서 → 42. 로그 로테이션과 보안관제
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 · delaycompressaudit.log는 logrotate가 아니라 auditd가 직접 순환한다(max_log_file,num_logs).
| 옵션 | 의미 | 보안 영향 |
|---|---|---|
daily / weekly / monthly | 순환 주기 | 주기 × rotate = 보존 기간 |
rotate N | 보관할 순환 파일 개수 | 초과분 삭제 |
maxage N | N일 지난 순환 파일 삭제 | 보존 상한 |
size / maxsize | 크기 기준 순환 | 공격 트래픽 폭증 시 빨리 밀려남 |
compress / delaycompress | gzip 압축 / 직전 1개는 비압축 | zgrep 필요 |
dateext | -YYYYMMDD 접미사 | 파일명에 날짜 → 조사 편리 |
create mode owner group | 새 파일 생성 권한 | 권한 설정 오류 시 노출 |
copytruncate | 복사 후 원본 비우기 | 복사~비우기 사이 로그 유실 가능 |
postrotate / sharedscripts | 순환 후 명령 (rsyslog HUP) | 새 파일로 기록 전환 |
missingok / notifempty | 없는 파일 무시 / 빈 파일 순환 안 함 |

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 초과 순환 파일 삭제
| 항목 | Rocky 9 | Ubuntu 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 자체 순환) | 동일 |
| journal | journald.conf (SystemMaxUse, MaxRetentionSec) | 동일 |
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

위 이미지는 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
}
| 설정 | Rocky 9.8 | Ubuntu 24.04 | 결과 |
|---|---|---|---|
| 주기·세대 | weekly, 4 | weekly, 4 | 약 4~5주 보관 |
| 이름 | dateext → secure-20260920 | 숫자 → auth.log.1 | 날짜 vs 순번 |
| 압축 | 없음 | compress + delaycompress | Ubuntu는 .2.gz 부터 압축 |
| 빈 파일 | 순환함(notifempty 없음) | notifempty | |
| audit.log | 8MB × 5 (auditd) | 동일(설치 시) | 크기 기준 — 이벤트 폭증 시 빨리 밀림 |
| 정상 | 의심 |
|---|---|
| 순환 파일 날짜가 주 단위로 연속 | 순환 파일 누락, 불규칙한 순환 시각 |
rotate 값이 정책과 일치 | rotate 0 / maxage 1 로 변경 → 사실상 즉시 삭제 |
| status 파일 시각이 timer와 일치 | logrotate -f 수동 강제 순환 흔적 (audit EXECVE) |
보존 기간이 짧으면 증거가 사라집니다. 침해는 평균적으로 발견까지 수 주~수개월이 걸리는 경우가 많아, 4주 로컬 보존만으로는 부족합니다 → 중앙 수집·장기 보존 정책 필요(45편).
/etc/logrotate.conf, /etc/logrotate.d/ FIM 감시 + logrotate -f 수동 실행 audit 탐지.[ ] logrotate 주요 옵션 10개 의미 설명
[ ] Rocky / Ubuntu 기본 설정 비교
[ ] logrotate -d 드라이런
[ ] status 파일로 마지막 순환 시각 확인
[ ] audit.log / journal 의 별도 보존 설정 확인
[ ] 로컬 보존 기간 계산
| 구분 | 글 |
|---|---|
| ◀ 이전 글 | 40. auditd로 중요 파일 접근 추적 |
| ▶ 다음 글 | 42. 로그 로테이션과 보안관제 |
| 시리즈 | Linux 로그 경로 정리 전체 보기 |
| 선행 시리즈 | 리눅스 시스템 기초 · 파일 · 권한 · 사용자 관리 · 서비스 · 프로세스 관리 · Linux 시스템 보안 기초 |