Linux 로그 경로 정리 · 20/50 · Part 2. RHEL / Rocky Linux 로그 경로

선행 학습 → 17. Rocky Linux 로그 경로 종합 정리 · 18. Rocky Linux 인증 이벤트 추적 · 19. Rocky Linux 서비스 이벤트 추적 · 기초 50. 보안관제 실습
이번 글 → Rocky Linux 로그 기반 초동조사
이어서 → 21. Ubuntu 주요 로그 경로

1. 들어가며

Alert를 받고 서버에 접속한 첫 10분이 조사의 품질을 결정합니다. 순서 없이 이것저것 열어보면 증거를 훼손(atime 변경, 로그 추가, 휘발성 정보 소실)하고 중요한 단서를 놓칩니다. Part 2의 마무리로 RHEL 초동조사 동선을 정리합니다.

핵심 요약

  • 원칙: 보존 → 확인 → 분석. 먼저 기록하고, 원본은 읽기만 한다.
  • 순서: 환경 → 로깅 상태 → 휘발성 정보 → 인증 → 권한 → 지속성 → 네트워크 → 수집
  • 모든 명령과 출력은 조사자 기록으로 남긴다.

2. 핵심 개념

원칙이유실천
조사 행위도 로그를 남긴다조사자의 로그인·sudo가 secure에 섞임접속 시각·계정을 먼저 기록
휘발성 우선프로세스·네트워크 연결은 재부팅·종료 시 사라짐ps, ss 결과를 먼저 저장
원본 불변vim, sed -i 는 원본 변경cp -a 후 사본 분석, 해시 기록
단정 금지로그 공백·이상 = 가설교차검증 후 판정

3. 로그 생성 구조

RHEL 초동조사 동선

[0] 조사 기록 시작 (접속 시각, 조사자 계정, 목적)
 ↓
[1] 환경: OS, 시간대, NTP, uptime
 ↓
[2] 로깅 상태: rsyslog / auditd / journald, 영구 저널 여부
 ↓
[3] 휘발성: 현재 세션(w), 프로세스(ps), 연결(ss)
 ↓
[4] 인증: secure — 실패 IP, 실패 후 성공
 ↓
[5] 권한: sudo COMMAND, useradd/usermod
 ↓
[6] 지속성: cron, systemd 유닛, authorized_keys
 ↓
[7] 실행·파일: audit EXECVE / 감시 키
 ↓
[8] 수집: 로그 사본 + SHA256 (45편)

4. 실제 로그 경로

단계경로/도구
인증·권한/var/log/secure, /var/log/secure-*
지속성/var/log/cron, /var/spool/cron/, /etc/cron.d/, /etc/systemd/system/, ~/.ssh/authorized_keys
서비스/var/log/messages, journalctl
실행/var/log/audit/audit.log
로그인 기록/var/log/wtmp, /var/log/btmp

5. 명령어 실습

모든 출력을 조사 디렉터리에 저장합니다(원본 로그 디렉터리에 쓰지 않음).

IR=/root/ir-$(date +%Y%m%d-%H%M); mkdir -p $IR; exec > >(tee -a $IR/triage.txt) 2>&1
echo "[0] start=$(date '+%F %T %Z') by=$(logname 2>/dev/null) host=$(hostname)"

echo "[1]"; cat /etc/rocky-release; timedatectl | grep -E 'zone|synchronized'; uptime
echo "[2]"; systemctl is-active rsyslog auditd systemd-journald; auditctl -l | wc -l; ls -d /var/log/journal 2>/dev/null
echo "[3]"; w; ps -eo pid,ppid,user,lstart,cmd --sort=start_time | tail -25; ss -tnp state established
echo "[4]"; grep 'Failed password' /var/log/secure | grep -oE 'from [0-9.]+' | sort | uniq -c | sort -rn | head -5
        grep 'Accepted' /var/log/secure | tail -10
echo "[5]"; grep -E 'COMMAND=|useradd|usermod|password changed' /var/log/secure | tail -15
echo "[6]"; grep -E 'REPLACE|END EDIT' /var/log/cron; ls -la /var/spool/cron/ /etc/cron.d/
        find /etc/systemd/system -name '*.service' -newermt '-7 days'; find /home /root -name authorized_keys -newermt '-7 days'
echo "[7]"; ausearch -m EXECVE -ts recent -i 2>/dev/null | tail -20

exec > >(tee ...) 는 조사자의 모든 출력을 기록합니다. 원본 로그는 읽기만 하며, 수집은 45편 절차(사본 + 해시)를 따릅니다.

6. 로그 예시

실제 실행 결과 — Rocky Linux 9.8 · root@rocky9-lab — 초동조사 1단계

위 이미지는 Rocky Linux 9.8 실습 환경에서 초동조사 1단계를 실제로 실행한 결과입니다.

7. 로그 필드 분석

초동조사 결과를 한 장으로 요약하는 템플릿:

항목결과근거 로그
로깅 가시성rsyslog ○ / auditd ○ / 영구 저널 ×systemctl is-active
의심 출발지203.0.113.45 (실패 42, 성공 1)/var/log/secure
탈취 계정deploy (password)Accepted password
권한 상승sudo /bin/bashsecure COMMAND
지속성root crontab REPLACE, 신규 계정 sysbackup/var/log/cron, secure
추가 확인audit EXECVE, 외부 연결audit.log

(표의 값은 이 시리즈 실습 시나리오의 가상 데이터 기준입니다.)

8. 보안관점

올바른 초동피해야 할 행동
기록하며 읽기 전용 확인원본 로그를 vim 으로 열기(스왑·백업 파일 생성)
휘발성 정보 먼저 저장서버 재부팅, 의심 프로세스 즉시 kill
사본 + 해시원본을 압축·이동
가설과 근거 분리 기록"로그가 없으니 삭제됨" 단정

9. SOC 관점

  • Triage 결과 보고: 초동조사 요약표를 티켓에 첨부 → 정탐/오탐/추가조사 판정.
  • Escalation: 권한 상승 + 지속성이 확인되면 침해사고 대응(IR) 단계로 격상.
  • Containment 협의: 네트워크 격리는 운영팀과 협의, 증거 보존 후 진행.

10. 실습 체크리스트

[ ] 조사 기록 파일 생성 후 시작
[ ] OS / 시간 / 로깅 상태 확인
[ ] 휘발성 정보(w, ps, ss) 우선 저장
[ ] 인증 → 권한 → 지속성 → 실행 순서로 확인
[ ] 초동조사 요약표 작성
[ ] 원본을 변경하는 명령 미사용 확인

11. 핵심 정리

  • 초동조사는 순서가 결과를 좌우한다: 기록 → 로깅 상태 → 휘발성 → 로그.
  • RHEL에서는 secure · cron · messages · audit.log 순으로 본다.
  • 조사자의 행위도 로그에 남으므로 접속 시각·계정을 먼저 기록한다.
  • 원본은 읽기만 하고, 수집은 사본 + 해시로 한다.
  • 초동 결과는 표로 요약해 Triage 판정과 격상 근거로 쓴다.

12. 다음 편 연결

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

0개의 댓글