Linux 로그 경로 정리 · 28/50 · Part 3. Ubuntu / Debian 로그 경로
선행 학습 → 17. Rocky Linux 로그 경로 종합 정리 · 27. Ubuntu 로그 경로 종합 정리
이번 글 → RHEL과 Ubuntu 로그 경로 차이
이어서 → 29. 배포판별 로그 분석 전략
SOC에서는 한 화면에 RHEL과 Ubuntu 서버의 Alert가 섞여 들어옵니다. 같은 "SSH 로그인 성공"이라도 원본 파일 경로·서비스명·순환 방식이 다르므로, 목적 → 배포판별 위치로 즉시 변환할 수 있어야 합니다.
핵심 요약
- 인증:
secure↔auth.log/ 시스템:messages↔syslog- 커널: RHEL은
messages안, Ubuntu는kern.log/ cron:cron↔syslog- 감사: 둘 다
/var/log/audit/audit.log이지만 Ubuntu는 설치 여부부터 확인- 버전·설정에 따라 달라지므로 표는 "출발점"이지 정답이 아니다.
| 목적 | Rocky / RHEL | Ubuntu / Debian |
|---|---|---|
| 인증 | /var/log/secure | /var/log/auth.log |
| 시스템 | /var/log/messages | /var/log/syslog |
| 커널 | /var/log/messages (kernel: 태그) — 환경별 차이 | /var/log/kern.log |
| cron | /var/log/cron | /var/log/syslog (cron.log 기본 비활성) |
| 메일 | /var/log/maillog | /var/log/mail.log, mail.err |
| 패키지 | /var/log/dnf.log, dnf.rpm.log | /var/log/dpkg.log, /var/log/apt/ |
| 감사 | /var/log/audit/audit.log (기본 설치) | auditd 설정에 따라 다름 (기본 미설치) |
| Apache | /var/log/httpd/access_log, error_log | /var/log/apache2/access.log, error.log |
| Nginx | /var/log/nginx/access.log, error.log | 동일 |
| SSH 유닛 | sshd.service | ssh.service (ssh.socket) |
| 관리자 그룹 | wheel | sudo |
| cron 태그 | CROND | CRON |

Rocky / RHEL Ubuntu / Debian
규칙 파일 /etc/rsyslog.conf /etc/rsyslog.d/50-default.conf
입력 imjournal (journald 읽기) imuxsock + imklog (환경별)
권한 0600 root:root 0640 syslog:adm
형식 Traditional (Sep 20 02:14:52) ISO 8601 (2026-09-20T02:14:52.123456+09:00)
순환 secure-20260920 (비압축) auth.log.1, auth.log.2.gz
감사 auditd 기본 auditd 별도 설치
예외와 주의사항 — 표가 틀리는 대표 상황:
| 상황 | 결과 |
|---|---|
| rsyslog 미설치 (Debian 12 기본, 최소 컨테이너) | 텍스트 파일 없음 → journalctl 만 존재 |
관리자가 규칙 변경 (cron.log 활성화 등) | 표와 다른 파일 존재 |
| 클라우드 이미지·하드닝 템플릿 | 원격 전송만 하고 로컬 저장 최소화 |
서비스 설정 변경 (ErrorLog, log_error) | 서비스 로그 경로 변경 |
| 구버전 (CentOS 7, Ubuntu 18.04 등) | 형식·기본 규칙 상이 |
배포판을 몰라도 쓰는 목적별 조회 함수:
authlog(){ for f in /var/log/secure /var/log/auth.log; do [ -e "$f" ] && echo "$f"; done; }
syslogf(){ for f in /var/log/messages /var/log/syslog; do [ -e "$f" ] && echo "$f"; done; }
A=$(authlog); S=$(syslogf)
echo "auth=$A system=$S"
zgrep -h 'Accepted' "$A"* 2>/dev/null | tail -3 # 인증
zgrep -hE 'CROND?\[' "$S"* /var/log/cron* 2>/dev/null | grep CMD | tail -3 # cron (양쪽 태그)
# 파일이 없으면 저널로 (배포판 무관)
journalctl _COMM=sshd --since today --no-pager | grep Accepted | tail -3

위 이미지는 두 배포판 실습 환경에서 인증 로그 파일명을 실제로 비교한 결과입니다.
아래는 동일 이벤트의 형식 차이를 보여주는 예시 로그입니다.
[예시 · Rocky /var/log/secure ] Sep 20 02:14:52 web01 sshd[4101]: Accepted password for deploy from 203.0.113.45 port 51188 ssh2
[예시 · Ubuntu /var/log/auth.log] 2026-09-20T02:14:52.418220+09:00 web02 sshd[5101]: Accepted password for deploy from 203.0.113.45 port 51188 ssh2
| 필드 | Rocky 위치 | Ubuntu(ISO) 위치 |
|---|---|---|
| 시각 | $1 $2 $3 | $1 |
| 호스트 | $4 | $2 |
| 태그[PID] | $5 | $3 |
| 메시지 | $6~ | $4~ |
awk 필드 번호가 달라지므로 메시지 키워드 기준(for 루프로 from·for 다음 토큰 찾기)으로 파싱하면 두 형식 모두 동작합니다.
/var/log/secure 만 수집 설정).| SIEM 설정 | 권장 |
|---|---|
| 수집 | 배포판별 에이전트 그룹(Wazuh group)으로 localfile 분리 |
| 파싱 | Wazuh 기본 decoder는 두 형식을 모두 처리 — 신규 형식은 wazuh-logtest 로 검증 |
| 룰 | 파일 경로가 아닌 decoder/program_name 기반 룰 작성 |
| 대시보드 | agent.os.platform 필드로 배포판 구분 |
[ ] 목적별 12행 비교표 재현
[ ] 표가 틀리는 5가지 상황 설명
[ ] 배포판 무관 조회 함수 실행
[ ] 형식별 awk 필드 위치 차이 이해
[ ] 혼합 환경 수집·룰 설계 원칙 설명
[ ] SSH 유닛명·관리자 그룹·cron 태그 차이를 실제 서버에서 확인
| 구분 | 글 |
|---|---|
| ◀ 이전 글 | 27. Ubuntu 로그 경로 종합 정리 |
| ▶ 다음 글 | 29. 배포판별 로그 분석 전략 |
| 시리즈 | Linux 로그 경로 정리 전체 보기 |
| 선행 시리즈 | 리눅스 시스템 기초 · 파일 · 권한 · 사용자 관리 · 서비스 · 프로세스 관리 · Linux 시스템 보안 기초 |