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

선행 학습 → 04. Linux 로그 파일과 디렉터리 확인 방법 · 파일 · 권한 · 사용자 관리 시리즈
이번 글 → 로그 파일의 권한과 소유권
이어서 → 06. Linux 로그의 시간 정보 이해

1. 들어가며

로그는 공격자가 가장 먼저 지우고 싶어 하는 파일입니다. 동시에 비밀번호 오입력 문자열, 내부 IP, 사용자명 같은 민감 정보도 담고 있습니다. 그래서 로그 파일의 권한은 두 가지를 동시에 지켜야 합니다.

  • 기밀성: 아무나 읽을 수 없어야 한다.
  • 무결성: 아무나 쓰거나 지울 수 없어야 한다.

핵심 요약

  • Rocky: 대부분 root:root 0600 — root만 읽기.
  • Ubuntu: syslog:adm 0640 — adm 그룹이면 읽기 가능.
  • 저널: systemd-journal 그룹(및 adm/wheel 설정에 따라)이 전체 저널 열람 가능.

2. 핵심 개념

주체배포판의미
root공통모든 로그 읽기/쓰기/삭제 가능 → root 탈취 = 로그 신뢰도 하락
syslog (사용자)Ubuntursyslog가 권한을 낮춰($PrivDropToUser syslog) 파일을 기록
adm (그룹)Ubuntu 중심로그 열람용 그룹. 초기 설치 사용자가 기본 포함되는 경우가 많음
wheel (그룹)Rockysudo 권한 그룹. 로그 자체 권한과는 별개지만 sudo로 우회 가능
systemd-journal (그룹)공통전체 저널 읽기 권한. 미포함 사용자는 자신의 로그만 보임
서비스 계정공통apache, nginx, mysql 등이 자신의 로그 디렉터리에 기록

3. 로그 생성 구조

로그 파일 권한 모델

기록 주체                       파일                      열람 가능
─────────                       ────                      ─────────
rsyslogd(root)      ──▶  /var/log/secure (0600 root:root)   ──▶ root
rsyslogd(syslog)    ──▶  /var/log/auth.log (0640 syslog:adm) ──▶ root, adm
journald            ──▶  /var/log/journal/* (systemd-journal) ──▶ root, systemd-journal(, adm, wheel*)
auditd(root)        ──▶  /var/log/audit/audit.log (0600, log_group=root) ──▶ root
nginx(worker)       ──▶  /var/log/nginx/*.log (서비스 설정)    ──▶ root, adm(Ubuntu)
                                                      * 배포판 ACL 설정에 따라

4. 실제 로그 경로

경로Rocky 9 (기본 기대값)Ubuntu 24.04 (기본 기대값)
인증 로그/var/log/secure 0600 root:root/var/log/auth.log 0640 syslog:adm
시스템 로그/var/log/messages 0600 root:root/var/log/syslog 0640 syslog:adm
감사 로그/var/log/audit/audit.log 0600 root:root(auditd 설치 시) 동일
감사 설정/etc/audit/auditd.conf log_group = root동일

기대값은 기본 설치 기준입니다. 반드시 실제 서버에서 stat으로 확인합니다.

5. 명령어 실습

# 파일 권한/소유자
stat -c '%a %U:%G %n' /var/log/secure /var/log/messages /var/log/audit/audit.log 2>/dev/null   # Rocky
stat -c '%a %U:%G %n' /var/log/auth.log /var/log/syslog 2>/dev/null                           # Ubuntu

# 로그를 읽을 수 있는 그룹 구성원
getent group adm systemd-journal wheel

# 저널 파일 ACL (배포판별 추가 권한 확인)
getfacl /var/log/journal/*/ 2>/dev/null | grep -E 'group|user'

# 로그 디렉터리 안에서 비정상 권한 탐색
find /var/log -type f \( -perm -o+r -o -perm -o+w \) -printf '%m %u:%g %p\n'

6. 로그 예시

실제 실행 결과 — Ubuntu 24.04 · root@ubuntu-lab — 로그 권한/그룹 비교

위 이미지는 Ubuntu 24.04 실습 환경에서 실제로 실행한 결과로, syslog:adm 소유와 0640 권한을 확인할 수 있습니다.

아래는 판단 기준 설명용 예시 출력입니다.

[예시 출력 · 정상]  600 root:root   /var/log/secure
[예시 출력 · 정상]  640 syslog:adm  /var/log/auth.log
[예시 출력 · 위험]  666 root:root   /var/log/secure     ← 누구나 쓰기 가능
[예시 출력 · 위험]  644 deploy:deploy /var/log/secure   ← 일반 사용자 소유

7. 로그 필드 분석

확인 항목기대값벗어났을 때
other 권한---o+r → 정보 노출, o+w → 변조 가능
소유자root / syslog일반 사용자 → 해당 계정이 로그를 조작 가능
그룹root / admadm 구성원 목록을 확인 (불필요 계정 포함 여부)
저널 그룹systemd-journal비인가 사용자 포함 시 전체 시스템 로그 열람 가능

8. 보안관점

  • 정상: 설치 직후 권한 유지, adm/systemd-journal 구성원이 운영자로 한정.
  • 의심:
    • 로그 권한이 느슨해진 시점(ctime)이 침해 시간대와 겹친다.
    • adm 그룹에 최근 생성된 계정이 추가됨 → /var/log/secure(auth.log)에 usermod -aG adm 흔적 확인.
    • root 권한 획득 이후에는 로컬 권한만으로는 무결성을 보장할 수 없다 → 원격 전송·중앙 수집이 필요(36편, 43편).

9. SOC 관점

단계적용
DetectionWazuh FIM으로 /var/log 권한·소유자 변경 감시, usermod -aG adm 등 그룹 변경 룰
Triage권한 변경 Alert → 누가(auid) 변경했는지 audit 로그로 확인
Investigation권한 변경 이전/이후의 로그 크기·내용 비교
Response권한 원복, 그룹 구성원 정리, 원격 로그와 대조해 누락분 확인

10. 실습 체크리스트

[ ] 인증/시스템/감사 로그 권한과 소유자 확인
[ ] adm / systemd-journal / wheel 구성원 확인
[ ] /var/log 내 o+r, o+w 파일 탐색
[ ] 배포판별 기대 권한 차이 설명 가능
[ ] root 탈취 후 로컬 로그 신뢰도 한계 설명 가능
[ ] 권한 변경 시각(ctime)과 사고 시간대 비교

11. 핵심 정리

  • 로그 권한은 기밀성과 무결성을 동시에 지킨다.
  • Rocky는 root 전용(0600), Ubuntu는 adm 그룹 열람(0640)이 기본이다.
  • 저널은 systemd-journal 그룹 구성원이 전체를 볼 수 있다.
  • 권한·소유자 변경은 FIM과 audit으로 탐지한다.
  • root가 탈취되면 로컬 로그만으로는 부족하다 → 중앙 수집이 필수다.

12. 다음 편 연결

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

0개의 댓글