Linux 로그 경로 정리 · 08/50 · Part 1. Linux 로그 기본 구조
선행 학습 → 07. 로그 메시지의 기본 구성
이번 글 → Syslog의 Facility와 Severity
이어서 → 09. Linux 로그와 보안 이벤트의 관계
"인증 로그만 중앙 서버로 보내라", "warning 이상만 Alert로 올려라" — 이런 정책은 모두 facility와 severity로 표현됩니다. 이 두 값은 rsyslog 규칙, journalctl 필터, SIEM 수집 정책의 공통 언어입니다.
핵심 요약
- facility = 어떤 종류의 로그인가 (auth, cron, mail …)
- severity = 얼마나 심각한가 (0 emerg ~ 7 debug, 숫자가 작을수록 심각)
authpriv.*처럼facility.severity선택자로 저장 위치가 결정된다.
| 코드 | 이름 | 용도 | 보안 관련성 |
|---|---|---|---|
| 0 | kern | 커널 | 방화벽 드롭, OOM, 모듈 로딩 |
| 1 | user | 일반 사용자 프로세스 (logger 기본값) | 위조 로그 주입 경로 |
| 2 | 메일 | 스팸 릴레이, SMTP 인증 | |
| 3 | daemon | 시스템 데몬 | 서비스 이상 |
| 4 | auth | 인증 (공개 가능 수준) | 로그인 |
| 9 | cron | cron/at | 지속성 |
| 10 | authpriv | 인증 (민감 정보 포함) | sshd, sudo, su — 가장 중요 |
| 16~23 | local0~local7 | 사용자 정의 | 앱·장비 로그 분리 (RHEL은 local7 → boot.log) |
| 값 | 이름 | 의미 | 예 |
|---|---|---|---|
| 0 | emerg | 시스템 사용 불가 | 커널 패닉 |
| 1 | alert | 즉시 조치 필요 | DB 손상 |
| 2 | crit | 치명적 | 하드웨어 오류 |
| 3 | err | 오류 | 서비스 기동 실패 |
| 4 | warning | 경고 | 디스크 부족 임박 |
| 5 | notice | 정상이나 주목할 만함 | 설정 변경 |
| 6 | info | 정보 | 로그인 성공/실패 대부분 |
| 7 | debug | 디버그 | 상세 추적 |
보안 이벤트는 severity가 낮게(info) 찍히는 경우가 많습니다. "warning 이상만 수집" 정책은 SSH 로그인 기록을 통째로 누락시킬 수 있습니다.

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:* (전체 사용자 터미널)
| 선택자 (기본 설정) | Rocky 9 | Ubuntu 24.04 |
|---|---|---|
authpriv.* | /var/log/secure | auth,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 설정을 실습 환경에서 직접 확인한 내용입니다.)
# 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

위 이미지는 Rocky Linux 9.8 실습 환경에서 실제로 실행한 severity 필터링 결과입니다.
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
| 필드 | 값 | 해석 |
|---|---|---|
| PRIORITY | 6 | info — 성공 로그인은 "정보" 등급 |
| SYSLOG_FACILITY | 10 | authpriv → secure/auth.log 로 분배 |
authpriv.none 이 추가되거나 authpriv.* 규칙이 사라짐 → 인증 로그 수집 차단 시도.user facility로 sshd 태그 로그가 들어옴 → logger 를 이용한 위조 가능성.| 정책 | facility/severity 표현 | 주의 |
|---|---|---|
| 인증 전량 수집 | authpriv.*;auth.* | severity로 거르지 말 것 |
| 시스템 장애 | *.err | 운영팀 연계 |
| cron 지속성 | cron.* | Ubuntu는 기본 파일 분리 안 됨 |
| 방화벽 드롭 | kern.warning (LOG 타깃 설정 시) | 양이 많아 샘플링 고려 |
Wazuh 룰 level(0~15)은 syslog severity와 별개의 체계입니다. info 등급 로그라도 상관분석으로 level 12 Alert가 될 수 있습니다(47편).
[ ] facility 주요 8종과 용도 설명
[ ] severity 0~7 순서 암기가 아닌 의미로 설명
[ ] PRI 계산 (authpriv.info = 86)
[ ] rsyslog 선택자로 저장 파일 추적
[ ] journalctl -p / --facility 필터 실행
[ ] "warning 이상만 수집" 정책의 위험 설명 가능
authpriv 이며 대부분 info 등급이다.facility.severity 선택자가 결정한다.| 구분 | 글 |
|---|---|
| ◀ 이전 글 | 07. 로그 메시지의 기본 구성 |
| ▶ 다음 글 | 09. Linux 로그와 보안 이벤트의 관계 |
| 시리즈 | Linux 로그 경로 정리 전체 보기 |
| 선행 시리즈 | 리눅스 시스템 기초 · 파일 · 권한 · 사용자 관리 · 서비스 · 프로세스 관리 · Linux 시스템 보안 기초 |