535. Syslog (시스템 로그 프로토콜) - UDP 514

핵심 인사이트: 회사에 라우터가 100대, 리눅스 서버가 200대 있다. 이 장비들에 일일이 접속해서 에러 로그를 확인하는 건 불가능하다. Syslog는 모든 장비가 자신이 토해내는 로그(일기)를 중앙의 '기록 보관소(Syslog Server)'로 일제히 던져서, 한 곳에서 모든 장애를 통합 검색하게 해주는 로그계의 114다.

Ⅰ. Syslog (System Logging Protocol)의 개념

다양한 네트워크 장비, 운영체제(UNIX/Linux), 애플리케이션에서 발생하는 로그 메시지(이벤트, 에러, 경고 등)를 네트워크를 통해 중앙의 통합 로그 서버(Syslog Server)로 전송하기 위한 표준 프로토콜입니다. (RFC 5424)

Ⅱ. Syslog의 통신 방식과 구조

  • 포트 및 프로토콜: 기본적으로 빠르고 부하가 적은 UDP 514번 포트를 사용합니다. (최근에는 로그 유실 방지와 암호화를 위해 TCP 1468이나 TLS 기반 Syslog도 지원함)
  • 클라이언트-서버 모델: 로그를 발생시키는 장비(Client/Sender)가 로그 메시지를 생성하여, 중앙의 Syslog Daemon(Server/Receiver)에게 냅다 던지는(Push) 단방향 방식입니다.

Ⅲ. Syslog 메시지의 2가지 핵심 구성 요소 (Facility와 Severity)

Syslog가 쏘는 메시지 앞머리에는 항상 이 로그가 "어디서 발생했는지(Facility)"와 "얼마나 심각한지(Severity)"를 나타내는 번호표가 붙습니다.

1. Facility (로그 생성 출처 / 분류)

어떤 서브시스템에서 로그를 발생시켰는지 나타냅니다.

  • 0: kern (커널 메시지)
  • 3: daemon (시스템 데몬)
  • 4: auth (인증/보안 관련)
  • 16~23: local0 ~ local7 (관리자가 임의로 지정하는 커스텀 용도. 주로 라우터나 스위치 로그용으로 씀)

2. Severity (심각도 수준, 0~7) - 낮을수록 심각함 🌟

이 심각도 레벨을 기준으로 관리자는 "레벨 3 이하는 무시하고, 레벨 0~2만 관리자에게 알람을 보내라"라고 필터링을 걸어둡니다.

  • 0: Emergency (긴급) - 시스템 완전 패닉 상태 (즉시 조치 필요)
  • 1: Alert (경보) - 즉각 조치 필요 (예: DB 데이터베이스 손상)
  • 2: Critical (치명적) - 치명적 오류 (예: 하드디스크 불량)
  • 3: Error (에러) - 일반적인 에러 발생
  • 4: Warning (경고) - 당장 문제는 없으나 주의 요망
  • 5: Notice (알림) - 비정상적이지만 에러는 아님
  • 6: Informational (정보) - 정상적인 시스템 이벤트 정보
  • 7: Debug (디버그) - 프로그램 디버깅용 상세 정보 (가장 안 중요함)

Ⅳ. 실무 활용 (SIEM 연동)

현대 기업의 보안 관제 센터(SOC)에서는 Splunk, ELK(Elasticsearch, Logstash, Kibana) 같은 거대한 SIEM 장비가 Syslog 서버 역할을 대신 수행합니다. 수만 대의 장비에서 날아오는 Syslog를 수집, 파싱하여 해킹 시도나 징후를 실시간 대시보드로 시각화합니다.

📢 섹션 요약 비유: 전국에 1,000개의 편의점(장비)이 있습니다. 편의점 알바생들은 매일 퇴근할 때 "오늘 강도가 들었음(Severity 1)", "오늘 아이스크림이 잘 팔렸음(Severity 6)" 같은 일기를 써서 본사의 거대한 일기장 보관소(Syslog Server, UDP 514)로 택배를 보냅니다. 본사 사장은 그 보관소에서 "강도(Severity 1)" 키워드만 검색해 전국의 치안 상태를 한눈에 파악합니다.