Linux 로그 경로 정리 · 20/50 · Part 2. RHEL / Rocky Linux 로그 경로
선행 학습 → 17. Rocky Linux 로그 경로 종합 정리 · 18. Rocky Linux 인증 이벤트 추적 · 19. Rocky Linux 서비스 이벤트 추적 · 기초 50. 보안관제 실습
이번 글 → Rocky Linux 로그 기반 초동조사
이어서 → 21. Ubuntu 주요 로그 경로
Alert를 받고 서버에 접속한 첫 10분이 조사의 품질을 결정합니다. 순서 없이 이것저것 열어보면 증거를 훼손(atime 변경, 로그 추가, 휘발성 정보 소실)하고 중요한 단서를 놓칩니다. Part 2의 마무리로 RHEL 초동조사 동선을 정리합니다.
핵심 요약
- 원칙: 보존 → 확인 → 분석. 먼저 기록하고, 원본은 읽기만 한다.
- 순서: 환경 → 로깅 상태 → 휘발성 정보 → 인증 → 권한 → 지속성 → 네트워크 → 수집
- 모든 명령과 출력은 조사자 기록으로 남긴다.
| 원칙 | 이유 | 실천 |
|---|---|---|
| 조사 행위도 로그를 남긴다 | 조사자의 로그인·sudo가 secure에 섞임 | 접속 시각·계정을 먼저 기록 |
| 휘발성 우선 | 프로세스·네트워크 연결은 재부팅·종료 시 사라짐 | ps, ss 결과를 먼저 저장 |
| 원본 불변 | vim, sed -i 는 원본 변경 | cp -a 후 사본 분석, 해시 기록 |
| 단정 금지 | 로그 공백·이상 = 가설 | 교차검증 후 판정 |

[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편)
| 단계 | 경로/도구 |
|---|---|
| 인증·권한 | /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 |
모든 출력을 조사 디렉터리에 저장합니다(원본 로그 디렉터리에 쓰지 않음).
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편 절차(사본 + 해시)를 따릅니다.

위 이미지는 Rocky Linux 9.8 실습 환경에서 초동조사 1단계를 실제로 실행한 결과입니다.
초동조사 결과를 한 장으로 요약하는 템플릿:
| 항목 | 결과 | 근거 로그 |
|---|---|---|
| 로깅 가시성 | rsyslog ○ / auditd ○ / 영구 저널 × | systemctl is-active |
| 의심 출발지 | 203.0.113.45 (실패 42, 성공 1) | /var/log/secure |
| 탈취 계정 | deploy (password) | Accepted password |
| 권한 상승 | sudo /bin/bash | secure COMMAND |
| 지속성 | root crontab REPLACE, 신규 계정 sysbackup | /var/log/cron, secure |
| 추가 확인 | audit EXECVE, 외부 연결 | audit.log |
(표의 값은 이 시리즈 실습 시나리오의 가상 데이터 기준입니다.)
| 올바른 초동 | 피해야 할 행동 |
|---|---|
| 기록하며 읽기 전용 확인 | 원본 로그를 vim 으로 열기(스왑·백업 파일 생성) |
| 휘발성 정보 먼저 저장 | 서버 재부팅, 의심 프로세스 즉시 kill |
| 사본 + 해시 | 원본을 압축·이동 |
| 가설과 근거 분리 기록 | "로그가 없으니 삭제됨" 단정 |
[ ] 조사 기록 파일 생성 후 시작
[ ] OS / 시간 / 로깅 상태 확인
[ ] 휘발성 정보(w, ps, ss) 우선 저장
[ ] 인증 → 권한 → 지속성 → 실행 순서로 확인
[ ] 초동조사 요약표 작성
[ ] 원본을 변경하는 명령 미사용 확인
secure · cron · messages · audit.log 순으로 본다.| 구분 | 글 |
|---|---|
| ◀ 이전 글 | 19. Rocky Linux 서비스 이벤트 추적 |
| ▶ 다음 글 | 21. Ubuntu 주요 로그 경로 |
| 시리즈 | Linux 로그 경로 정리 전체 보기 |
| 선행 시리즈 | 리눅스 시스템 기초 · 파일 · 권한 · 사용자 관리 · 서비스 · 프로세스 관리 · Linux 시스템 보안 기초 |