Linux 로그 경로 정리 · 02/50 · Part 1. Linux 로그 기본 구조

선행 학습 → 01. Linux 로그란 무엇인가 · 기초 48. Linux 로그와 journalctl
이번 글 → Linux 로그가 생성되는 과정
이어서 → 03. /var/log 디렉터리 구조

1. 들어가며

"이 이벤트는 왜 /var/log/secure 에도 있고 journalctl 에도 있고 audit.log 에도 있을까?"

이 질문에 답할 수 있어야 로그를 교차검증할 수 있습니다. 이번 글은 사용자의 행동 하나가 여러 로그로 갈라져 저장되는 과정을 따라갑니다.

핵심 요약

  • Linux에는 로그를 남기는 경로가 여러 개(journald, rsyslog, auditd, 애플리케이션 자체 파일) 있다.
  • 같은 사건이 서로 다른 관점으로 여러 곳에 남는다 → 교차검증의 근거.
  • 한 경로가 끊겨도(삭제·미설정) 다른 경로에 흔적이 남을 수 있다.

2. 핵심 개념

구성요소역할입력출력
syslog API프로그램이 로그를 보내는 표준 창구 (syslog(3), /dev/log)애플리케이션journald / rsyslog
systemd-journald모든 로그의 1차 수집기 (구조화된 바이너리 저널)stdout/stderr, syslog, 커널/run/log/journal, /var/log/journal
rsyslog규칙(facility.severity)에 따라 텍스트 파일로 분배·전송journald(imjournal) 또는 소켓/var/log/*, 원격 서버
auditd커널 감사 서브시스템의 기록자커널 audit (netlink)/var/log/audit/audit.log
애플리케이션 자체 로그Apache, Nginx 등이 직접 파일에 기록서비스/var/log/httpd 등

3. 로그 생성 구조

로그 생성 흐름 (발생 → 저장 → SOC)

User Action (ssh 로그인)
    ↓
Application / Service (sshd, PAM)
    ↓
System Call (execve, open, connect ...)
    ↓
Kernel ────────────────────────────┐ (audit 서브시스템)
    ↓                              ↓
Logging Mechanism                auditd
 ├─ journald (1차 수집)             ↓
 │    └─ rsyslog (imjournal)     /var/log/audit/audit.log
 │          ↓
 │     /var/log/secure · messages
 └─ journal 파일 (/var/log/journal)
    ↓
Log Storage ──▶ Log Collector ──▶ SIEM / SOC

포인트: RHEL 9 계열 기본 설정에서 rsyslog는 소켓(imuxsock)을 끄고 journald에서 읽어오는(imjournal) 구조입니다. 즉, journald가 멈추면 rsyslog 파일에도 기록되지 않을 수 있습니다. 반대로 auditd는 journald와 독립된 경로입니다.

4. 실제 로그 경로

[journald]  /run/log/journal/<machine-id>/   (휘발성, 재부팅 시 소멸)
            /var/log/journal/<machine-id>/   (영구 저장, 디렉터리 존재 시)
[rsyslog]   /etc/rsyslog.conf 규칙에 따라 /var/log/messages, /var/log/secure ...
[auditd]    /var/log/audit/audit.log         (/etc/audit/auditd.conf 의 log_file)
[앱]        /var/log/httpd/, /var/log/nginx/, /var/log/mariadb/ ...

5. 명령어 실습

한 번의 로그인 이벤트가 몇 군데에 남는지 직접 확인합니다.

# 1) 로그 경로별 동작 여부
systemctl is-active systemd-journald rsyslog auditd

# 2) rsyslog 가 journald 에서 읽는지(imjournal) 확인
grep -n "imjournal\|imuxsock" /etc/rsyslog.conf

# 3) 같은 SSH 로그인을 세 곳에서 조회
grep "Accepted" /var/log/secure | tail -1                 # rsyslog 파일
journalctl -u sshd --since "-1h" | grep Accepted | tail -1 # journald
ausearch -m USER_LOGIN -ts recent -i | tail -4             # auditd

6. 로그 예시

실제 실행 결과 — Rocky Linux 9.8 · root@rocky9-lab — 한 이벤트가 여러 곳에 남는다

위 이미지는 Rocky Linux 9.8 실습 환경의 실제 실행 결과로, 동일한 이벤트가 파일·저널·감사 로그 각각에 남는 모습을 보여줍니다.

아래는 세 경로가 같은 로그인을 어떻게 다르게 표현하는지 비교한 예시 로그입니다.

[예시 · rsyslog 파일]  Sep 20 02:14:52 web01 sshd[4101]: Accepted password for deploy from 203.0.113.45 port 51188 ssh2
[예시 · journald]      _PID=4101 _COMM=sshd _SYSTEMD_UNIT=sshd.service MESSAGE=Accepted password for deploy ...
[예시 · auditd]        type=USER_LOGIN msg=audit(...): pid=4101 uid=0 auid=1001 ses=12 ... addr=203.0.113.45 terminal=ssh res=success

7. 로그 필드 분석

관점rsyslog 파일journaldauditd
형식텍스트 한 줄구조화 필드(key=value)레코드 타입별 key=value
강점grep/awk로 빠른 검색서비스 단위(_SYSTEMD_UNIT) 필터auid(최초 로그인 사용자) 추적, 커널 수준
약점필드가 비정형기본 휘발성일 수 있음룰이 없으면 기록 안 됨
교차검증 키시간 + PID_PIDpid, ses

8. 보안관점

  • 정상: 세 경로의 시간·PID·사용자가 서로 일치한다.
  • 의심:
    • secure 에는 없는데 journald·audit 에는 있는 로그인 → 파일 변조 가능성 (44편)
    • audit 에는 sudo 실행이 있는데 secure 에 sudo 기록이 없음 → 로그 삭제 또는 rsyslog 규칙 변경
    • rsyslog가 중지된 시간대 → 공격자가 로깅을 끈 흔적일 수 있으나, 재부팅·패키지 업데이트도 확인

9. SOC 관점

단계로그 생성 구조를 알면 가능한 것
Detection어떤 소스를 SIEM으로 보내야 탐지가 가능한지 판단 (auditd 없으면 명령 실행 탐지 불가)
TriageAlert 원본이 어느 경로에서 왔는지 파악 → 다른 경로로 재확인
Investigation한 소스가 변조돼도 다른 소스로 복원
Response로깅 파이프라인 자체의 중단 여부(rsyslog·auditd 상태)를 대응 항목에 포함

10. 실습 체크리스트

[ ] journald / rsyslog / auditd 동작 여부 확인
[ ] rsyslog 입력 모듈(imjournal / imuxsock) 확인
[ ] 동일 이벤트를 3개 경로에서 조회
[ ] 경로별 필드 차이 설명 가능
[ ] 경로 간 불일치가 의미하는 바 설명 가능
[ ] 로깅 서비스 중단 시각 확인 방법 이해

11. 핵심 정리

  • 로그는 journald · rsyslog · auditd · 애플리케이션 자체 파일 네 갈래로 남는다.
  • RHEL 9 기본값에서 rsyslog는 journald를 읽어 파일로 분배한다(imjournal).
  • auditd는 커널 감사 경로로 journald와 독립적이다.
  • 같은 이벤트가 여러 곳에 남는다는 사실이 교차검증과 변조 탐지의 근거다.
  • 경로 간 불일치는 변조·설정 변경·서비스 중단의 신호다. 단정하지 말고 원인을 확인한다.

12. 다음 편 연결

구분글
◀ 이전 글01. Linux 로그란 무엇인가
▶ 다음 글03. /var/log 디렉터리 구조
시리즈Linux 로그 경로 정리 전체 보기
선행 시리즈리눅스 시스템 기초 · 파일 · 권한 · 사용자 관리 · 서비스 · 프로세스 관리 · Linux 시스템 보안 기초
profile
코드에 숨겨진 위협을 읽고 AI로 보안의 미래를 설계합니다. 프론트엔드 개발 경험을 자산 삼아 더 견고하고 지능적인 보안 운영 시스템을 구축해 나가는 과정을 기록합니다

0개의 댓글