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

선행 학습 → 07. 로그 메시지의 기본 구성
이번 글 → Syslog의 Facility와 Severity
이어서 → 09. Linux 로그와 보안 이벤트의 관계

1. 들어가며

"인증 로그만 중앙 서버로 보내라", "warning 이상만 Alert로 올려라" — 이런 정책은 모두 facility와 severity로 표현됩니다. 이 두 값은 rsyslog 규칙, journalctl 필터, SIEM 수집 정책의 공통 언어입니다.

핵심 요약

  • facility = 어떤 종류의 로그인가 (auth, cron, mail …)
  • severity = 얼마나 심각한가 (0 emerg ~ 7 debug, 숫자가 작을수록 심각)
  • authpriv.* 처럼 facility.severity 선택자로 저장 위치가 결정된다.

2. 핵심 개념

Facility

코드이름용도보안 관련성
0kern커널방화벽 드롭, OOM, 모듈 로딩
1user일반 사용자 프로세스 (logger 기본값)위조 로그 주입 경로
2mail메일스팸 릴레이, SMTP 인증
3daemon시스템 데몬서비스 이상
4auth인증 (공개 가능 수준)로그인
9croncron/at지속성
10authpriv인증 (민감 정보 포함)sshd, sudo, su — 가장 중요
16~23local0~local7사용자 정의앱·장비 로그 분리 (RHEL은 local7 → boot.log)

Severity

값이름의미예
0emerg시스템 사용 불가커널 패닉
1alert즉시 조치 필요DB 손상
2crit치명적하드웨어 오류
3err오류서비스 기동 실패
4warning경고디스크 부족 임박
5notice정상이나 주목할 만함설정 변경
6info정보로그인 성공/실패 대부분
7debug디버그상세 추적

보안 이벤트는 severity가 낮게(info) 찍히는 경우가 많습니다. "warning 이상만 수집" 정책은 SSH 로그인 기록을 통째로 누락시킬 수 있습니다.

3. 로그 생성 구조

Facility × Severity = Priority

PRI = facility × 8 + severity
  authpriv.info  = 10×8 + 6 = 86   → <86>
  kern.warning   =  0×8 + 4 = 4    → <4>
  cron.info      =  9×8 + 6 = 78   → <78>

rsyslog 선택자:  facility.severity   action
  authpriv.*                          /var/log/secure        (모든 심각도)
  *.info;mail.none;authpriv.none;cron.none  /var/log/messages (info 이상, 일부 제외)
  *.emerg                             :omusrmsg:*            (전체 사용자 터미널)

4. 실제 로그 경로

선택자 (기본 설정)Rocky 9Ubuntu 24.04
authpriv.*/var/log/secureauth,authpriv.* → /var/log/auth.log
범용*.info;mail.none;authpriv.none;cron.none → messages*.*;auth,authpriv.none → syslog
cron.*/var/log/cron주석 처리(기본 비활성) → syslog에 포함
kern.*(messages에 포함)/var/log/kern.log
mail.*/var/log/maillog/var/log/mail.log
local7.*/var/log/boot.log해당 규칙 없음

(Rocky 9.8, Ubuntu 24.04 기본 rsyslog 설정을 실습 환경에서 직접 확인한 내용입니다.)

5. 명령어 실습

# rsyslog 선택자 확인
grep -vE '^\s*#|^\s*$' /etc/rsyslog.conf | grep -E '\.\*|\.info|\.emerg|none'
grep -rvE '^\s*#|^\s*$' /etc/rsyslog.d/ 2>/dev/null

# severity 로 필터 (0~3 = err 이상)
journalctl -p err -b --no-pager | tail -5
journalctl -p warning..err --since today --no-pager | tail -5

# facility 로 필터 (journalctl --facility: systemd 245+)
journalctl --facility=authpriv --since today --no-pager | tail -5
journalctl --facility=help     # 사용 가능한 facility 목록

# 테스트 메시지로 경로 검증 (운영 서버에서는 사전 공지 후)
logger -p authpriv.notice -t soc-test "facility routing test"
grep soc-test /var/log/secure /var/log/auth.log 2>/dev/null

6. 로그 예시

실제 실행 결과 — Rocky Linux 9.8 · root@rocky9-lab — severity 필터링

위 이미지는 Rocky Linux 9.8 실습 환경에서 실제로 실행한 severity 필터링 결과입니다.

7. 로그 필드 분석

journal에서 facility·severity가 보이는 방식 (예시 출력):

[예시 출력: journalctl -o verbose 일부]
    PRIORITY=6                 ← severity info
    SYSLOG_FACILITY=10         ← authpriv
    SYSLOG_IDENTIFIER=sshd
    _PID=4101
    MESSAGE=Accepted password for deploy from 203.0.113.45 port 51188 ssh2
필드값해석
PRIORITY6info — 성공 로그인은 "정보" 등급
SYSLOG_FACILITY10authpriv → secure/auth.log 로 분배

8. 보안관점

  • 정상: 인증 로그가 authpriv로 분리 저장되어 일반 사용자가 읽을 수 없는 파일에만 존재.
  • 의심:
    • rsyslog 규칙에 authpriv.none 이 추가되거나 authpriv.* 규칙이 사라짐 → 인증 로그 수집 차단 시도.
    • user facility로 sshd 태그 로그가 들어옴 → logger 를 이용한 위조 가능성.

9. SOC 관점

정책facility/severity 표현주의
인증 전량 수집authpriv.*;auth.*severity로 거르지 말 것
시스템 장애*.err운영팀 연계
cron 지속성cron.*Ubuntu는 기본 파일 분리 안 됨
방화벽 드롭kern.warning (LOG 타깃 설정 시)양이 많아 샘플링 고려

Wazuh 룰 level(0~15)은 syslog severity와 별개의 체계입니다. info 등급 로그라도 상관분석으로 level 12 Alert가 될 수 있습니다(47편).

10. 실습 체크리스트

[ ] facility 주요 8종과 용도 설명
[ ] severity 0~7 순서 암기가 아닌 의미로 설명
[ ] PRI 계산 (authpriv.info = 86)
[ ] rsyslog 선택자로 저장 파일 추적
[ ] journalctl -p / --facility 필터 실행
[ ] "warning 이상만 수집" 정책의 위험 설명 가능

11. 핵심 정리

  • facility는 종류, severity는 심각도다.
  • 인증 로그의 핵심 facility는 authpriv 이며 대부분 info 등급이다.
  • 저장 위치는 rsyslog facility.severity 선택자가 결정한다.
  • severity 기준 필터는 보안 이벤트를 누락시킬 수 있다.
  • SIEM의 Alert level은 syslog severity와 다른 체계다.

12. 다음 편 연결

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

0개의 댓글